ZigBee网络地址的分配
- 格式:doc
- 大小:13.50 KB
- 文档页数:2
zigbee的工作原理Zigbee是一种低功耗、短距离无线通信技术,主要用于物联网设备之间的通信。
它基于IEEE 802.15.4标准,并在其基础上添加了网络层和应用层协议。
Zigbee网络由一个协调器(Coordinator)和多个设备(Device)组成,协调器负责网络的管理和控制。
Zigbee的通信距离一般在几十米到几百米之间,传输速率较低,可达到250kbps。
它采用的是低功耗的射频技术,以确保设备的电池寿命较长。
此外,Zigbee使用的是mesh网状网络拓扑,设备之间可以通过多跳传输进行通信,提高了网络的覆盖范围和稳定性。
Zigbee的工作原理如下:1.设备加入网络:当设备加入Zigbee网络时,它会发送一个加入请求,协调器验证设备的身份后,将其分配给合适的网络节点。
设备可以是有源设备(Powered Device,PD)或无源设备(End Device,ED)。
有源设备可以直接与协调器通信,而无源设备需要通过其他设备进行中继。
2.建立网络拓扑:Zigbee网络采用mesh网状拓扑结构,其中每个设备都可以是路由器(Router),即可以进行中继的节点,或终端设备(End Device),即不能进行中继的节点。
设备之间可以通过多跳传输进行通信,数据可以沿着多个路径传递,提高了网络的可靠性和覆盖范围。
3.网络管理与路由选择:协调器负责网络的管理和控制,它会维护网络拓扑结构,并执行路由选择算法。
路由选择算法决定了数据传输的最佳路径,通过选择具有最佳信号强度和跳数的路由器进行数据传输,保证了数据的快速传递和可靠性。
4.数据传输和通信:设备之间可以通过两种方式进行通信,即直接通信和间接通信。
直接通信是指设备直接发送数据给目标设备,而间接通信是指设备通过中继节点进行数据传输。
设备可以根据需求选择合适的通信方式,以达到最佳的传输效果。
总的来说,Zigbee通过建立mesh网状网络拓扑,利用低功耗的射频技术实现设备之间的无线通信。
1、网络形成组网开始时,网络层首先向MAC层请求分配协议所规定的信道,或者由PHY层进行有效信道扫描,网络层管理实体等待信道扫描结果,然后根据扫描结果选择可允许能量水平的信道。
找到合适的信道后,为这个新的网络选择一个个域网标识符(PANID)。
PANID可由网络形成请求时指定,也可以随机选择一个PANID(除广播PANID固定为0xFFFF外),PANID 在所选信道中应该是唯一的。
PANID一旦选定,无线网关将选择16位网络地址0x0000作为自身短地址,同时进行相关设置。
完成设置后,通过MAC层发出网络启动请求,返回网络形成状态。
2、网络维护网络维护网络维护主要包括设备加入网络和离开网络过程。
当网络形成后,通过网络管理实体设定MAC层连接许可标志来判断是否允许其他设备加设备初始化为协调器入网络。
加入方式有联合方式和直接方式,在协议实现中采取直接加入网络方式。
这种方式下由待加入的设备发送请求加入信标帧,网关接收到后,网络管理实体首先判断这个设备是否已存在于网络。
存在,则使其加入网络;若不存在,则向设备发送信标帧,为这个设备分配一个网络中唯一的16位的短地址。
这里的信标帧是由网关无线协议MAC层生成作为PHY层载荷,它包含PANID、加入时隙分配等信息。
网内设备也可以请求断开网络。
当网关收到设备断开连接请求后,MAC层向网络层发送报告,开始执行断开流程,从设备列表中删除该设备相关信息。
网络层上层请求网络层发现当前在运行的网络:NLME NETWORK DISCOVERY.request(ScanChannels,ScanDuration)ScanChannels:高5为保留(b27~b31),低27为分别表示27个有效信道,该位为1,表示扫描;为0不扫描。
ScanDuration:扫描时间,aBaseSuperframeDuration*(2^n+1),n为ScanDuration值。
网络层在家收到该原语后,将通过检查ScanChannels参数发现网络,如果该设备为一个FFD 设备,则执行主动的扫描。
我们用的是TI的CC2530F256,结合的是黄金单元协议栈(Z-Stack™),而所谓协议栈呢,就是网络中各层协议的总和,由上层协议到底层协议,再由底层协议到上层协议。
CC2530芯片40pins,GND4个,AVDD6个,DVDD2个,DPIO有21个,分别是P0,P1,和P2.0~P2.4,其中P1.0和P1.1的输出驱动电流是20mA,其余IO是4mA;6-mm ×6-mm 的QFN40 封装,焊接有点难度。
VDD的范围是2v~3.6v,最高不超过3.9v。
CC2530 有8KBSRAM ,映射到DATA和XDATA;256KB闪存,映射到CODE和XDATA。
内部集成了一个增强型8051,每个指令周期是1个时钟(一般mcu-51是12个时钟)。
(1)MCU的存储器:CODE 用于存储程序的64KB只读存储器,DATA,可读可写的256byte 的数据存储器,XDATA,与CODE共享64KB的存储空间,可读可写的数据存储器;SFR,128Byte 可读可写寄存器存储空间;2(2)中断:有18个中断源,然后分为6个中断优先组,通过设置IP0_IPGX(X为0到5)和IP1_IPGX来设定优先级;(3)电源和时钟:有五种电源模式,主动模式、空闲模式、PM1,PM2和PM3。
空闲模式是CPU停止工作,主动模式是完全工作模式,PM1,PM2和PM3是部分休眠模式,32M 和16M晶振不开启,32k晶振运行,等待复位或者外部中断、定时器中断到了,便自动跳转到主动模式;(4)闪存有256kb,以页为单位,每页2048byte,共128页;一页是最小可擦除单元,地址是器FADDRH:FADDRL,16位地址;一字(32位)是最小可写单元,地址是通过寄存器FADDRH[7:1寻址;这个需要注意的;(5)IO:21个IO,每个都可独立使用,通过设置寄存器PXSEL来选择是IO口还是第二功能,然后PXDIR设置输入还是输出,0入1出;每当复位之后,所有21个引脚都是通用输入IO,然后每个IO都可以在设置为输入后用作中断,PXEN是中断使能,PXIFG是中断标志,(其中X是0,1,2);这些同MSP430是相似的设置。
1. Zigbee网络节点类型Zigbee网络有三类节点类型:即协调器Coordinator、路由器Router和终端设备EndDevice,其中协调器和路由器均为全功能设备,而终端设备选用精简功能设备。
2. Zigbee协议栈各层主要功能模块3. Zigbee网络节点地址Zigbee网络协议的每一个节点皆有两个地址:64位的IEEEMAC地址及16位网络地址.EUI-64(64-bit extended unique identifier)1)64-bit地址,又称为MAC地址或IEEE地址。
每个ZigBee节点都应该有全球唯一的64位IEEE地址。
这个地址需要向IEEE 组织申请才能使用。
通信时,将待发送的数据包的目的地址设为此64位IEEE 地址,从而实现数据包的正确投递。
2)16-bit地址,即网络地址,或称为短地址。
当一个ZigBee网络形成后,ZigBee 网络内的每个节点,都会分配到一个16位的网络地址。
通信时,将待发送的数据包的目的地址设为此16位网络地址。
4.Zigbee协议术语配置文件(profile):Zigbee协议的配置文件是对逻辑组件及其相关接口的描述,是面向某个应用类别的公约、准则.通常没有程序代码与配置文件相关联.属性(attribute):设备之间通信的每一种数据像开关的状态或温度计值等皆可称为属性.每个属性可得到唯一的ID值.簇(cluster):多个属性的汇集形成了簇,每个簇也拥有一个唯一的ID。
虽然个体之间传输的通常是属性信息,但所谓的逻辑组件的接口指的却是簇一级的操作,而非属性一级.终端(endpoint):每个支持一个或多个簇的代码功能块称为终端。
不同的设备通过它们的终端及所支持的簇来进行通信。
PAN IDs:PAN IDs是用来在逻辑上分离在同一领域内的多个节点组。
这样不同组之间节点通信就不会干扰,且可以在同一通道channel上(zigbee2007不行,因为它通信时可以改变频率的)Pan id是16位,范围是0x0000~03fff。
ZigBee技术的网络拓扑结构0000星型拓扑网络结构有一个叫做PAN主协调器的中央控制器和多个从设备组成,主协调器必须为一个完整功能的设备,从设备既可为完整功能设备也可为简化功能设备,在实际应用中,应根据具体应用情况,采用不同功能的设备,合理的构造通信网络。
在网络通信中,通常将这些设备分为起始设备或者终端设备,PAN主协调器既可作为起始设备、终端设备,也可以作为路由器,它是PAN网络的主要控制器。
在任何一个拓扑网络上,所有设备都有唯一的64位长地址码,该地址码可以在PAN中用于直接通信,或者当设备发起连接时,可以将其转变为16位的短地址码分配给PAN设备,因此,在设备发起连接时,应采用64位的长地址码,只有在连接成功后,系统分配了PAN的标识符后,才能采用16位的短地址进行连接,因此,短地址吗是一个相对地址码,长地址码是一个绝对地址码。
在ZigBee技术应用中,PAN主协调器是主要的耗能设备,而其他从设备均采用电池供电,ZigBee技术的星型拓扑结构通常在家庭自动化、PC外围设备、玩具、游戏以及个人健康检查等方面得到应用。
对等的拓扑网络机构中,同样也存在一个PAN主设备,但该网络不同于星型拓扑网络结构,在该网络中的任何一个设备只要是在它的通信范围内,就可以和其它设备进行通信。
对等拓扑网络结构能够构成较为复杂的网络结构,例如,网孔拓扑网络结构,这种对等拓扑网络结构在工业监测和控制、无线传感器网路偶、供应物资跟踪、农业智能化,以及安全监控等方面都有广泛的应用。
一个对等网络的路由协议可以是基于Adhoc技术的,也可以是自组织式的和自恢复的,并且,在网络中各个设备之间发送消息时,可通过多个中间设备中继的方式进行传输,即通常称为多跳的传输方式,以增大网络的覆盖范围。
其中,组网的路由协议,在ZigBee网络层中没有给出,这样为用户的使用提供了更为灵活的组网方式。
无论是星型拓扑结构,还是对对等拓扑网络结构,每个独立的PAN都有一个唯一的标识符,利用该PAN标识符,可采用16位的短地址码进行网络设备间的通信,并且可激活PAN网络设备间的通信。
树型路由机制包括配置树型地址和树型地址的路由。
当协调器建立一个新的网络,它将给自己分配网络地址0,网络深度Depth0=0。
如果节点(i)想要加入网络,并且与节点(k)连接,那么节点(k)将称为节点(i)的父节点。
根据自身的地址Ak和网络深度Depthk,节点(k)将为节点(i)分配网络地址Ai和网络深度Depthi=Depthk+1。
网络深度表示仅仅采用父子关系的网络中,一个传送帧传送到ZigBee协调器所传递的最小跳数。
ZigBee协调器自身深度为0,而它的子设备深度为1。
图3为ZigBee树型结构。
参数nwkMaxChildren(Cm)表示路由器或协调器在网络中允许拥有子设备数量的最大值。
参数nwkMaxRouters(Rm)表示子节点中路由器的最大个数,而剩下的设备数为终端设备数。
图3 ZigBee树型结构一个新的RFD节点(i),它没有路由能力,它与协调器连接作为协调器的第n个子节点。
根据它的深度d,父节点(k)将为子节点(i)分配网络地址:Ai=Ak+Cskip(d)·Rm+n 其中1≤n≤(Cm-Rm)如果是新的子节点FFD,它有路由能力,父节点(k)将给它分配网络地址:Ai=Ak+1+Cskip(d)·(n-1)其中,否则,参数nwkMaxDepth (Lm)表示网络的最大深度。
假设一个路由器向网络地址为D的目的地址发送数据包,路由器的网络地址为A,网络深度为d。
路由器将首先通过表达式:A <D<A + Cskip( d-1 )判断该目的节点是否为自己的子节点。
如果目的节点是自己的子节点,则下一跳节点的地址为:否则,下一跳节点是该路由器的父节点。
彻底明白Zigbee术语——群集(Cluster)、端点(EndPoint)等彻底明了Zigbee术语。
一、属性属性Attribute是一个反映物理数量或状态的数据值,比如开关值(On/Off)、灯的状态值(On/Off)、温度值、百分比等等二、群集,或称为簇群集Cluster是包含一个或多个属性(attribute)的群集。
容易的说,群集就是属性的集合。
每个群集都被分配一个唯一群集ID且每个群集最多有65536个属性。
比如一个群集包含了不怜悯况下的开关、不怜悯况下的灯、不怜悯况下的温度值、不怜悯况下的百分比等等三、设备描述设备描述Device Description是指一个大型目标应用的一部分,包括一个或多个群集四、端点端点EndPoint是协议栈应用层的入口,即入口地址,也可以理解应用对象(Application Object)存在的地方,它是为实现一个设备描述而定义的一组群集。
每个Zigbee设备可以最多支持240这样的端点,端口0用于囫囵Zigbee设备的配置和管理,应用程序可以通过端点0与Zigbee堆栈的其他层通信,从而实现对这些层的初始化和配置。
附属在端点0的对象被称为Zigbee设备对象(ZDO)。
端点255用于向全部端点的广播,端点241~254是保留端点。
五、配置文件配置文件Profile可以理解为共同促进交互式应用的多个设备描述项的集合。
定义了属性ID与群集(簇)ID,使之看起来就像设备的某种特性,以家庭智能控制系统为例,灯配置文件设定了远程控制设备的群集OnOffDRC含有一种属性OnOff,且该属性为无符号8位值,值0xFF 意味着"开",0x00为"关",0xF0则为无效。
通常,配置文件也为设备定义了,哪些群集是强制托管,哪些群集是可挑选的。
另外,配置文件还定义了一些可挑选的zigbee协议托管服务。
每一个应用都对应一个配置文件(Profile),配置文件内容包括:设备ID(Device ID)、群集ID(Cluster ID)、属性ID(Attribute ID),及AF(应用框架)用法何种服务类型等信息。
ZigBee⽹络配置低数据速率的WPAN中包括两种⽆线设备:全功能设备(FFD)和精简功能设备(RFD)。
其中,FFD可以和FFD、RFD通信,⽽RFD只能和FFD通信,RFD之间是⽆法通信的。
RFD的应⽤相对简单,例如在传感器⽹络中,它们只负责将采集的数据信息发送给它的协调点,并不具备数据转发、路由发现和路由维护等功能。
RFD占⽤资源少,需要的存储容量也⼩,成本⽐较低。
在⼀个ZigBee⽹络中,⾄少存在⼀个FFD充当整个⽹络的协调器,即PAN协调器,ZigBee中也称作ZigBee协调器。
⼀个ZigBee⽹络只有⼀个PAN协调器。
通常,PAN协调器是⼀个特殊的FFD,它具有较强⼤的功能,是整个⽹络的主要控制者,它负责建⽴新的⽹络、发送⽹络信标、管理⽹络中的节点以及存储⽹络信息等。
FFD和RFD都可以作为终端节点加⼊ZigBee⽹络。
此外,普通FFD也可以在它的个⼈操作空间(POS)中充当协调器(路由),但它仍然受PAN协调点的控制。
ZigBee中每个协调点最多可连接255个节点,⼀个ZigBee⽹络最多可容纳65535个节点。
ZigBee⽹络的拓扑结构ZigBee⽹络的拓扑结构主要有三种,星型⽹、⽹状(mesh)⽹和混合⽹。
星型⽹是由⼀个PAN协调点和⼀个或多个终端节点组成的。
PAN协调点必须是FFD,它负责发起建⽴和管理整个⽹络,其它的节点(终端节点)⼀般为RFD,分布在PAN协调点的覆盖范围内,直接与PAN协调点进⾏通信。
星型⽹通常⽤于节点数量较少的场合。
Mesh⽹⼀般是由若⼲个FFD连接在⼀起形成,它们之间是完全的对等通信,每个节点都可以与它的⽆线通信范围内的其它节点通信。
Mesh⽹中,⼀般将发起建⽴⽹络的FFD节点作为PAN协调点。
Mesh⽹是⼀种⾼可靠性⽹络,具有“⾃恢复”能⼒,它可为传输的数据包提供多条路径,⼀旦⼀条路径出现故障,则存在另⼀条或多条路径可供选择。
Mesh⽹可以通过FFD扩展⽹络,组成Mesh⽹与星型⽹构成的混合⽹。
彻底明白Zigbee术语——群集(Cluster)、端点(EndPoint)等在学习zigbee协议栈的时候经常看到应用程序、zigbee设备对象(ZDO)、节点、设备、端点、群集、属性、绑定、寻址等一下zigbee 术语,不知道这些zigbee术语是表示什么,是如何定义的,是如何区分的,是如何划分的以及他们之间有什么联系,一切的一切全不知道。
网上也有很多zigbee术语的讲解,不知道是自己的理解能力有问题,还是本身这个就是很难理解,太过于抽象呢?一、属性属性Attribute是一个反映物理数量或状态的数据值,比如开关值(On/Off)、灯的状态值(On/Off)、温度值、百分比等等二、群集,或称为簇群集Cluster是包含一个或多个属性(attribute)的群集。
简单的说,群集就是属性的集合。
每个群集都被分配一个唯一群集ID且每个群集最多有65536个属性。
比如一个群集包含了不同情况下的开关、不同情况下的灯、不同情况下的温度值、不同情况下的百分比等等三、设备描述设备描述Device DescripTIon是指一个大型目标应用的一部分,包括一个或多个群集四、端点端点EndPoint是协议栈应用层的入口,即入口地址,也可以理解应用对象(ApplicaTIon Object)存在的地方,它是为实现一个设备描述而定义的一组群集。
每个Zigbee设备可以最多支持240这样的端点,端口0用于整个Zigbee设备的配置和管理,应用程序可以通过端点0与Zigbee堆栈的其他层通信,从而实现对这些层的初始化和配置。
附属在端点0的对象被称为Zigbee设备对象(ZDO)。
端点255用于向所有端点的广播,端点241~254是保留端点。
五、配置文件配置文件Profile可以理解为共同促进交互式应用的多个设备描述项的集合。
定义了属性。
ZigBee专业术语解释
透传地址:仅在透传模式下有效,指的是数据发送的目的地址。
ZigBee 设备有两种地址类型:64 位的MAC 地址和16 位的网络地址。
设备的64 位的MAC 地址在全球上是唯一的,并且一直使用在设备的整个生命周期。
它通常在出厂时
就已经配置在设备中,这个地址是由IEEE 分配和维护的。
16 位的网络地址通常在设
备加入网络后分配得到的,并且在网络中得到使用。
它在网络中是唯一的。
它在网络
中起到了标识设备和进行发送接收数据的作用。
协调器的分节点网络地址(16位短地址)固定为0。
分节点网络地址:即16位短地址,指的是ZigBee节点的编号。
在同一个ZigBee网络中,不允许出现相同的分节点网络地址,会出现地址冲突问题。
与电脑的ip冲突类似。
厦门四信的ZigBee模块分节点网络地址既支持随机的方式,也支持预配置的方式。
节点处于同一个ZigBee网络的判断条件:同一空间中,如果2个节点的物理信道相同且网络号(PAN ID)相同,则这2个节点处于同一个ZigBee网络中。
ZigBee网络随机地址分配机制研究摘要:ZigBee网络的随机地址分配机制采用随机算法为节点分配地址,其具有逻辑复杂度低、实现方便、无需参数等优点,但同时会造成较大的通讯开销和时间消耗,且未能对重复地址做出有效清理。
对此,本文提出新型随机地址分配算法,能有效地控制通信开销和时间消耗,且能对重复地址信息进行清理。
最后在NS2软件上进行模拟仿真,测试数据证明了新提出的算法的有效性和可行性。
关键词:ZigBee;随机地址分配;地址冲突;NS21引言ZigBee技术是在IEEE802.15.4无线通信协议标准上建立的近距离无线组网通信技术[1][2],具有近距离、自组织、低功耗、低复杂度等特点[3],主要用于近距离低速率电子设备之间的数据传输以及典型的有周期性数据、间歇性数据传输需求的场景[4],包括汽车工业、家庭自动化、遥控遥测、定位系统等领域[5]。
ZigBee技术的地址分配有两种机制,分别是分布式地址分配机制(Distributed Address Assignment Mechanism,简称DAAM)和随机地址分配机制(Stochastic Address Assignment Mechanism,简称SAAM)。
DAAM强调“地址——位置”的对应关系,更确切地说是“子节点地址——父节点地址”的对应关系,该对应关系是树状路由的基础。
而SAAM采用逻辑上更简单的随机方式分配地址,该机制对应的是网状路由。
现有的随机地址分配算法(简称SAAM算法)虽能完成节点的入网地址分配工作,但时间消耗和通信开销较大,对于采用电池供电的ZigBee设备来讲,显然是技术弊端。
因此,本文在深入研究SSAM算法的基础上,提出新型的基于邻居确认的随机地址分配算法(Stochastic Address Assignment Mechanism based on the Confirm of the Neighbors,简称SAAMCN),以降低时间和通信开销,同时对重复地址做出有效清理。
我们知道ZigBee设备有两种地址。
一种是64位IEEE地址(物理),即MAC地址,另一种是16位网络地址。
64位地址使全球唯一的地址,设备将在它的生命周期中一直拥有它。
它通常由制造商或者被安装时设置。
这些地址由IEEE来维护和分配。
我们刚买到的调和上的IEEE地址应该是全部的F,我们可以通过TI的软件SmartRF Flash Programmer重新写入一个IEEE地址,这就像我们的PC上的物理地地类似,在全球范围内物理地址是唯一的。
不过在ZigBee设备中我们也可以更改这个地址,其实也就不确保全球唯一了,当然,在PC上也可以通过软件更改物理地址,不过只要在一个局域网中没有两个相同的物理地址,是一样可以连接互联网。
很多学校里的上网帐号就是和物理地址进行绑定的,分配给一台PC上的IP地址,是不可能在另一个PC上使用,除非修改PC的物理地址。
说多了,其实也就是你应该必须保证在你组成的网络中,不可以写入相同的IEEE地址。
16为网络地址是当设备加入网络后由协调器或路由器分配的。
它在网络中是唯一的,用来在网络中鉴别设备和发送数据。
在这个版本的中Z-Stack-1.4.3-1.2.1中,可以看到下面typedef enum{afAddrNotPresent = AddrNotPresent, //绑定afAddr16Bit = Addr16Bit,//短地址afAddrGroup = AddrGroup, //组发送afAddrBroadcast = AddrBroadcast //广播发送} afAddrMode_t;typedef struct{union{uint16 shortAddr;} addr;afAddrMode_t addrMode;byte endPoint;} afAddrType_t;这里的地址模式只有4种,而没有IEEE地址的什么事,不过可以想像,在一个ZigBee 网络中,当ZigBee的协调器建立网络成功以后,终端设备或者路由器设备打开电源开关加入网络时,网络成功后协调如何知道它管辖的表具号呢?这时会分配一个16位的短地址,当加入网络时终端会发送一个响应给协调器,协调器的短地址是知道的因为是0x0000,当设备加入成功后,会产生一个ZDO_STATE_CHANGE_EVT事件,这个事件就是设备加入网络成功后,并在网络中的身份确定后产生的一个事件,我们可以在这里处理,一些初始化,比如可以发送终端的短地址,IEEE地址等,这里协调器接收到以后,可以提取出终端的短地址,其实在终端给协调器发送的每个数据包中,都含有其自身的短地址,如下面的结构体当中的afAddrType_t srcAddr;协调器在接收到短地址后,就可以知道自己下面管辖的终端结点,或者路由结点有那些了,协调器提取到的短地址可以存放到一个非易失性的存储器中,这时如果要使用直接地址模式,也就是单播的话,就可以在这个表中查找,当然这要和上位机的软件结合起来,起码应该让用户看到这些短地址,这种短地址再和某种应用中的属性对应起来。
1、PANID:个域网ID号,有效值:0~0xFFFE。
如果为0xFFFF则网络层将选择PANID 供网络使用!?配置文件中为0xFFFF2、扫描的频道,11~26。
(11)3、NLME_GetShortAddr()4、网络形成:/why_question_how/blog/item/c4a8800862f42f20b1351d12.html绑定的应用:/Article/MSP430/ZigBee/201104/33114.html5、第一类是IEEE地址,也叫做扩展地址。
这是一个64位的地址,由设备商固化到设备中,地址由IEEE发配,当然我们现在买到的开发板芯片上的IEEE地址一般应该为全F,这是一个无效地址,就是说这个芯片还没有分配地址拉。
可以用Ti的flash编程软件烧写一个IEEE地址。
6、第二类地址是所谓的网络地址,也就叫做短地址。
这是一个16位的地址,其中有几个特殊的地址:【1】0xFFFF -这是一个对全网络中设备进行广播的广播地址【2】0xFFFD -如果在命令中将目标地址设为这个地址的话那么只对打开了接收的设备进行广播【3】0xFFFC -广播到协调器和路由器【4】0xFFFE -如果目的地址为这个地址的话,那么应用层将不指定目标设备,而是通过协议栈读取绑定表来获得相应目标设备的短地址7、一旦在源节点上建立了绑定,其应用服务即可向目标节点发送数据,而不需指定目标地址了(调用zb_SendDataRequest(),目标地址可用一个无效值0xFFFE代替)。
这样,协议栈将会根据数据包的命令标识符,通过自身的绑定表查找到所对应的目标设备地址。
在绑定表的条目中,有时会有多个目标端点。
这使得协议栈自动地重复发送数据包到绑定表指定的各个目标地址。
同时,如果在编译目标文件时,编译选项NV_RESTORE被打开,协议栈将会把绑定条目保存在非易失性存储器里。
因此当意外重启(或者节点电池耗尽需要更换)等突发情况的发生时,节点能自动恢复到掉电前的工作状态,而不需要用户重新设置绑定服务。
TaskID,PANID,ClusterID,16位短地址ZigBee 2009-11-27 15:53:02 阅读72 评论0字号:大中小今天在网上逛了一下博客,看到了PADID这个概念,一下子是我想到了16位短地址,这下把我搞糊涂了,在qq群好友,谢大哥等的帮助下,弄明白了点,写下来用于加深印象。
TaskID:这个是任务id是,os负责分配的也就是对一个事件作一个唯一的编码,在每一个任务的初始化函数中,必须完成的功能是要得到设置任务的任务ID。
他就相当于一个任务的标识,这样才能区分运行过程中不同任务中的不同事件。
我是这么认为的,ID 说白了就是给该任务取了各名字,就向人名字一样,区分不同的人,就是一个代号。
人名可以重复,重复了有时候叫起来就容易混淆;所以才程序中为了避免这种混淆,就强制性的规定任务ID 不能重复。
PANID:PANID的出现一般是伴随在,确定信道以后的。
PANID其全称是Personal Area Network ID,网络的ID(即网络标识符),是针对一个或多个应用的网络,一般是mesh或者cluster tree两种拓扑结构之一。
所有节点的panID唯一,一个网络只有一个PANID,它是由pan协调器生成的,PANID是可选配置项,用来控制ZigBee路由器和终端节点要加入那个网络。
文件f8wConfg.cfg中的ZDO_CONFIG_PAN_ID 参数可以设置为一个0~0x3FFF 之间的一个值。
协调器使用这个值,作为它要启动的网络的PAN ID。
而对于路由器节点和终端节点来说只要加入一个已经用这个参数配置了PAN ID的网络。
如果要关闭这个功能,只要将这个参数设置为0xFFFF。
要更进一步控制加入过程,需要修改ZDApp.c 文件中的ZDO_NetworkDiscoveryConfirmCB 函数。
当然了,如果ZDAPP_CONFIG_PAN_ID被定义为0xFFFF,那么协调器将根据自身的IEEE地址建立一个随机的PANID(0~0x3FFF),XXX经过试验发现,这个随机的PANID并非完全随机,它有规律,与IEEE地址有一定的关系:要么就是IEEE地址的低16位,要么就是一个与IEEE 地址低16位非常相似的值。
ZigBee网络地址的分配一、ZigBee 有两种类型的地址:一种是64 位IEEE 地址,即MAC 地址,另一种是16 位的网络地址。
(1)64 位的IEEE地址是一个全球唯一的地址,一经分配就将跟随设备一生。
它通常由制造商或者被安装时设置。
这些地址由IEEE 组织来维护和分配。
问题:用Z-stack 协议栈编程,64位IEEE地址是否是芯片自带的,还是需要在编程时给予赋值?这点需要继续深入研究后找出答案(2)16 位网络地址是当设备加入网络后分配的,它在网络中是唯一的,用来在网络中鉴别设备和发送数据。
二、网络地址的分配(1)ZigBee使用分布式寻址方案来分配网络地址。
这个方案保证整个网络中所有分配出去的地址都是唯一的,同时,这个寻址算法本身的分布特性保证设备只能与它的父辈设备通讯来接收一个唯一的网络地址。
(2)在每个路由加入之前,寻址方案需要知道和配置一些参数,这些参数是:MAX_DEPTH,MAX_ROUTERS,MAX_CHILDREN。
这些参数是协议栈的一部分,在ZigBee2006中MAX_DEPTH = 5,MAX_ROUTERS = 6,MAX_CHILDREN = 20。
(a)MAX_DEPTH 决定了网络的最大深度,协调器位于深度0 ,其子设备位于深度1,其子子设备位于深度2(b)MAX_CHILDREN 决定了一个路由或者一个协调器节点可以处理的子节点的最大个数(c)MAX_ROUTERS 决定了一个路由或者协调器节点可以处理的具有路由功能的子节点的最大个数,这个参数是MAX_CHILDREN 的一个子集。
(3)如果开发时想改变这些值,需完成以下几个步骤:(a)首先要保证这些参数的新植要合法,整个地址空间不能超过2 ,这就限制的参数能设置的最大值。
可以使用project\ZStack\tools文件夹下的CSkip.xls文件来确认这些值是否合法。
当表格中设置的数据不合法时,就会出现错误提示。
ZigBee网络地址的分配
一、ZigBee 有两种类型的地址:一种是64 位IEEE 地址,即MAC 地址,另一种是16 位的网络地址。
(1)64 位的IEEE地址是一个全球唯一的地址,一经分配就将跟随设备一生。
它通常由制造商或者被安装时设置。
这些地址由IEEE 组织来维护和分配。
问题:用Z-stack 协议栈编程,64位IEEE地址是否是芯片自带的,还是需要在编程时给予赋值?这点需要继续深入研究后找出答案
(2)16 位网络地址是当设备加入网络后分配的,它在网络中是唯一的,用来在网络中鉴别设备和发送数据。
二、网络地址的分配
(1)ZigBee使用分布式寻址方案来分配网络地址。
这个方案保证整个网络中所有分配出去的地址都是唯一的,同时,这个寻址算法本身的分布特性保证设备只能与它的父辈设备通讯来接收一个唯一的网络地址。
(2)在每个路由加入之前,寻址方案需要知道和配置一些参数,这些参数是:MAX_DEPTH,MAX_ROUTERS,MAX_CHILDREN。
这些参数是协议栈的一部分,在ZigBee2006中MAX_DEPTH = 5,MAX_ROUTERS = 6,MAX_CHILDREN = 20。
(a)MAX_DEPTH 决定了网络的最大深度,协调器位于深度0 ,其子设备位于深度1,其子子设备位于深度2
(b)MAX_CHILDREN 决定了一个路由或者一个协调器节点可以处理的子节点的最大个数
(c)MAX_ROUTERS 决定了一个路由或者协调器节点可以处理的具有路由功能的子节点的最大个数,这个参数是MAX_CHILDREN 的一个子集。
(3)如果开发时想改变这些值,需完成以下几个步骤:
(a)首先要保证这些参数的新植要合法,整个地址空间不能超过2 ,这就限制的参数。