欢迎来到天天文库
浏览记录
ID:38221486
大小:38.64 KB
页数:15页
时间:2019-06-07
《ZigBee快速入门》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2.ZigBee2.1设备类型(DeviceTypes)在ZigBee网络中存在三种逻辑设备类型:Coordinator(协调器),Router(路由器)和End-Device(终端设备)。ZigBee网络由一个Coordinator以及多个Router和多个End_Device组成。上图是一个简单的ZigBee网络示意图。其中黑色节点为Coordinator,红色节点为Router,白色节点为End-Device。2.1.1Coordinator(协调器)协调器负责启动整个网络。它也是网络的第一个设备。协调器选择
2、一个信道和一个网络ID(也称之为PANID,即PersonalAreaNetworkID),随后启动整个网络。协调器也可以用来协助建立网络中安全层和应用层的绑定(bindings)。注意,协调器的角色主要涉及网络的启动和配置。一旦这些都完成后,协调器的工作就像一个路由器(或者消失goaway)。由于ZigBee网络本身的分布特性,因此接下来整个网络的操作就不在依赖协调器是否存在。2.1.2Router(路由器)路由器的功能主要是:允许其他设备加入网络,多跳路由和协助它自己的由电池供电的儿子终端设备的通讯。通常,路由
3、器希望是一直处于活动状态,因此它必须使用主电源供电。但是当使用树群这种网络模式时,允许路由间隔一定的周期操作一次,这样就可以使用电池给其供电。2.1.3End-Device(终端设备)终端设备没有特定的维持网络结构的责任,它可以睡眠或者唤醒,因此它可以可以是一个电池供电设备。通常,终端设备对存储空间(特别是RAM的需要)比较小。注意:在Z-Stack1.4.1中一个设备的类型通常在编译的时候通过编译选项(ZDO_COORDINATOR和RTR_NWK)确定。所有的应用例子都提供独立的项目文件来编译每一种设备类型。2
4、.2栈配置(StackProfile)栈参数的集合需要被配置为一定的值,连同这些值在一起被称之为栈配置。ZigBee联盟定义了这些由栈配置组成的栈参数。网络中的所有设备必须遵循同样的栈配置。为了促进互用性这个目标,ZigBee联盟为ZigBee2006规范定义了栈配置。所有遵循此栈配置的设备可以在其他开发商开发的遵循同样栈配置的网络中。3.寻址(Addressing)3.1地址类型(Addresstypes)ZigBee设备有两种类型的地址。一种是64位IEEE地址,即MAC地址,另一种是16位网络地址。64位地址
5、使全球唯一的地址,设备将在它的生命周期中一直拥有它。它通常由制造商或者被安装时设置。这些地址由IEEE来维护和分配。16为网络地址是当设备加入网络后分配的。它在网络中是唯一的,用来在网络中鉴别设备和发送数据。3.2网络地址分配(Networkaddressassignment)ZigBee使用分布式寻址方案来分配网络地址。这个方案保证在整个网络中所有分配的地址是唯一的。这一点是必须的,因为这样才能保证一个特定的数据包能够发给它指定的设备,而不出现混乱。同时,这个寻址算法本身的分布特性保证设备只能与他的父辈设备通讯来
6、接受一个网络地址。不需要整个网络范围内通讯的地址分配,这有助于网络的可测量性。在每个路由加入网络之前,寻址方案需要知道和配置一些参数。这些参数是MAX_DEPTH,MAX_ROUTERS和MAX_CHILDREN。这些参数是栈配置的一部分,ZigBee2006协议栈已经规定了这些参数的值:MAX_DEPTH=5,MAX_ROUTERS=6和MAX_CHILDREN=20。MAX_DEPTH决定了网络的最大深度。协调器(Coordinator)位于深度0,它的儿子位于深度1,他的儿子的的儿子位于深度2,以此类推。MA
7、X_DEPTH参数限制了网络在物理上的长度。MAX_CHILDREN决定了一个路由(Router)或者一个协调器节点可以处理的儿子节点的最大个数。MAX_ROUTER决定了一个路由(Router)或者一个协调器(Coordinator)节点可以处理的具有路由功能的儿子节点的最大个数。这个参数是MAX_CHILDREN的一个子集,终端节点使用(MAX_CHILDREN–MAX_ROUTER)剩下的地址空间。如果开发人员想改变这些值,则需要完成以下几个步骤:首先,你要保证这些参数新的赋值要合法。即,整个地址空间不能超过
8、216,这就限制了参数能够设置的最大值。可以使用projectsZStacktools文件夹下的CSkip.xls文件来确认这些值是否合法。当在表格中输入了这些数据后,如果你的数据不合法的话就会出现错误信息。当选择了合法的数据后,开发人员还要保证不再使用标准的栈配置,取而代之的是网络自定义栈配置(例如:在nwk_globals.h文件中将STACK_PR
此文档下载收益归作者所有