1 / 18
文档名称:

ZStck 的开发指南学习指导.doc

格式:doc   大小:314KB   页数:18页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

ZStck 的开发指南学习指导.doc

上传人:jianjian401 2017/9/3 文件大小:314 KB

下载得到文件列表

ZStck 的开发指南学习指导.doc

相关文档

文档介绍

文档介绍:北京康拓科技开发总公司
2008
Z-Stack开发指南
中文版
topeak
北京市海淀区中关村知春路61号
ZigBee
设备类型(Device Types)
在ZigBee网络中存在三种逻辑设备类型:Coordinator(协调器),Router(路由器)和End-Device(终端设备)。ZigBee网络由一个Coordinator以及多个Router和多个End_Device组成。
上图是一个简单的ZigBee网络示意图。其中黑色节点为Coordinator,红色节点为Router,白色节点为End-Device。
Coordinator(协调器)
协调器负责启动整个网络。它也是网络的第一个设备。协调器选择一个信道和一个网络ID(也称之为PAN ID,即Personal work ID),随后启动整个网络。
协调器也可以用来协助建立网络中安全层和应用层的绑定(bindings)。
注意,协调器的角色主要涉及网络的启动和配置。一旦这些都完成后,协调器的工作就像一个路由器(或者消失go away)。由于ZigBee网络本身的分布特性,因此接下来整个网络的操作就不在依赖协调器是否存在。
Router(路由器)
路由器的功能主要是:允许其他设备加入网络,多跳路由和协助它自己的由电池供电的儿子终端设备的通讯。
通常,路由器希望是一直处于活动状态,因此它必须使用主电源供电。但是当使用树群这种网络模式时,允许路由间隔一定的周期操作一次,这样就可以使用电池给其供电。
End-Device(终端设备)
终端设备没有特定的维持网络结构的责任,它可以睡眠或者唤醒,因此它可以可以是一个电池供电设备。
通常,终端设备对存储空间(特别是RAM的需要)比较小。
注意:在Z-Stack (ZDO_COORDINATOR 和RTR_NWK)确定。所有的应用例子都提供独立的项目文件来编译每一种设备类型。
栈配置(Stack Profile)
栈参数的集合需要被配置为一定的值,连同这些值在一起被称之为栈配置。ZigBee联盟定义了这些由栈配置组成的栈参数。
网络中的所有设备必须遵循同样的栈配置。
为了促进互用性这个目标,ZigBee联盟为ZigBee2006规范定义了栈配置。所有遵循此栈配置的设备可以在其他开发商开发的遵循同样栈配置的网络中。
寻址(Addressing)
地址类型(Address types)
ZigBee设备有两种类型的地址。一种是64位IEEE地址,即MAC地址,另一种是16位网络地址。
64位IEEE地址是一个全球唯一的地址,并且一经分配就将跟随设备一生。它通常由制造商或者被安装时设置。这些地址由IEEE组织来维护和分配。
16位网络地址是当设备加入网络后分配的。它在网络中是唯一的,用来在网络中鉴别设备和发送数据。
work address assignment)
ZigBee使用分布式寻址方案来分配网络地址。这个方案保证在整个网络中所有分配出去的网络地址是唯一的。这一点是必须的,因为这样才能保证一个具体的数据包能够发送到它指定的设备,而不出现混乱。同时,这个寻址算法本身的分布特性保证设备只能与他的父辈设备通讯来接收一个唯一的网络地址。不需要整个网络范围内通讯的地址分配,这有助于网络的可测量性。
在每个路由加入网络之前,寻址方案需要知道和配置一些参数。这些参数是MAX_DEPTH,MAX_ROUTERS和MAX_CHILDREN。这些参数是栈配置的一部分,ZigBee2006协议栈已经规定了这些参数的值:MAX_DEPTH = 5,MAX_ROUTERS = 6和MAX_CHILDREN = 20。
MAX_DEPTH决定了网络的最大深度。协调器(Coordinator)位于深度0,它的儿子位于深度1,他的儿子的的儿子位于深度2,以此类推。MAX_DEPTH参数限制了网络在物理上的长度。
MAX_CHILDREN决定了一个路由(Router)或者一个协调器节点可以处理的儿子节点的最大个数。
MAX_ROUTER决定了一个路由(Router)或者一个协调器(Coordinator)节点可以处理的具有路由功能的儿子节点的最大个数。这个参数是MAX_CHILDREN的一个子集,终端节点使用(MAX_CHILDREN – MAX_ROUTER)剩下的地址空间。
如果开发人员想改变这些值,则需要完成以下几个步骤:
首先,你要保证赋给这些参数的新值要合法。即整个地址空间不能超过216,这就限制了参数能够设置的最大值。可以使用projects\ZStack\