由于Zigbee协议栈规定的,在Zigbee中,广播数据不适合单播数据连续发送;
Zigbee的广播机制:
广播数据在发出后,其余有广播能力的节点如rouer在收到后会转发这个广播包,如此一层层往后跳以保证整个网络都能收到这个广播。同时,任何一个节点在发送或转发这个广播包的时候会监听自己的邻居有没有进行转发,如有没进行转发的,说明该邻居可能没有收到,会进行重发。
如此,一旦网络规模大了整个广播包会在空中存在较长时间,所以Zigbee联盟设定了nwkBroadcastDeliveryTime这个属性,用来说明一个广播包最多有效的时间。而在这段时间内,发起者都会保留这个广播包放在一个table中。比如这个table默认最多能存10个这样的包,所以连续发送的话,发送10个时候这个table就存满了,新的包就不能发送了,必须等待有数据过期后才有新的数据能发出。
总结:
因此ZigBee联盟规定为了保证网络的稳定性,9秒内最多发送8个广播,超过8个广播包其他的数据包将被舍去。
ZigBee系列产品建议周期性的组播和广播数据发送周期大于等于1000ms,小于1000ms会存在数据阻塞(或舍去)的情况。
领取专属 10元无门槛券
私享最新 技术干货