Zigbee网络中的消息传输方式
1、广播
广播是zigbee网络中的一种数据传输方式,它是由网络中的一个节点向其它节点发送消息的过程。
在zigbee网络中协调器,路由器和macRxO
Whe
Idle域值为TRUE的终端设备可以参与广播转发,其余
节点不参与。能够接受广播帧的目的节点由广播帧中的目的地址来确定,不同的广播地址及其对应接收
节点类型如下表所示:
广播地址
目的组
0xffff
PAN中所有节点
0xfffe
预留
0xfffd
macRxO
Whe
Idle值为TRUE的设备
0xfffc
所有的路由器和协调器
0xfffb
低功耗路由器
0xfffa0xfff8
预留
在所有参与广播的节点中都需要维护一个包含若干条广播事务记录(BroadcastTra
sactio
Rcord,BTR)的广播事务表(BroadcastTra
sactio
Table,BTT),该表用来记录哪些节点已经成功
转发了广播帧。
一个节点接收到一个广播帧时首先检查帧中的目的地址和自己的设备类型是否相符。不相符则丢
弃;相符的话设备从本地BTT中查找相应的BTR,若干存在,则对其进行更新;若不存在,则检查BTT
中是否有空的或者过期的BTR项。如果没有,则丢弃广播帧;若有则添加新的BTR项并将广播帧提交到
高层进行处理。若节点属性中radius值不为0或者该设备不是终端设备则转发该帧。BTT表中每个BTR
都有有效期,在有效期过后,设备会将该BTR定义为失效以便后续写入新的BTR。MACPIB属性
macRxO
Whe
Idle值为FALSE的zigbee路由器接收到广播帧后将会以单播的形式将该帧发送到其邻居节
点。如果一个节点接收到一个广播帧后节点查找BTT中的广播帧序列号发现其另外一个邻居已经广播了
该帧,则节点将忽略该广播帧。为了方便重发广播帧,每个zigbee路由器的NWK层至少能够缓存1帧
数据。Zigbee中广播的主要用于路由发现。广播过程如下图所示:
f2、组播组播就是针对zigbee网络的某个固定群组进行消息传送。在zigbee网络中将多个节点在同一个GroupID下注册,从而使其逻辑上形成一个群组。当针对该组传送数据帧,只有组内的所有节点都能够接收该帧。只有数据帧可以使用组播方式进行传送,命令帧不能。组播消息可以由终端节点发起,但是不能被发送到属性macRxO
Whe
Idle为FALSE的节点。参与组播的每个节点中都需要维护一个
wkGroupIDTable记录,其中标示哪个节点及其所属的组。组播消息分为“成员模式”组播和“非成员模式”组播。前者是指组播消息由组内成员发起;后者指组播消息由非组内成员发起。当消息由组内成员发起时,设备就使用广播方式将消息发出,其它接收到的节点也会以广播的方式将接收到的帧进行转发。广播r