zigbee终端节点接收80帧数据后,不能成功接收数据
时间:10-02
整理:3721RD
点击:
协调器每30ms向终端节点发送一帧数据,当终端节点接收到80帧数据后,就不能成功接收数据。需要间隔很长时间才能恢复接收。
通过SmartRF Packet Sniffer抓包测试,发现协调器是能够正常发送数据的,而且所有的数据都被SmartRF Packet Sniffer接收到。没有出现发送80帧数据,就失败的情况。
我修改过,_NIB.BroadcastDeliceryTime、_NIB.PassiveAckTimeout、_NIB.MaxBroadcastRetries和-DMAX_BCAST四个参数,现在参数值是7,1,0和40。也就是说,现在是700ms能发送40个数据包,发送失败不会重发。
经过试验,我把-DMAX_BCAST改成30后,失败频率变为60帧数据失败一次。所以我判断失败次数和-DMAX_BCAST有关系。
多谢阅读我的问题,期待问题的解答。
你给终端设备发送数据是不是用广播发送的?
在ZigBee协议里面规定(具体可以参考标准文档),每个设备的单位时间的广播数据发送量是有限制的,防止网络内有大量的广播数据转发。
这也是为什么你修改-DMAX_BCAST会有效果。
建议把终端设备类型改成路由器,然后用单播的方式去发。
是通过广播的方式发送的。
因为现在这个系统需要发送的数据量比较大,而且要把数据同时发给每一个终端,所以如果采用单播的方式发送,就要多次发送,占用很多时间。
因为抓包实验时,能把数据包都抓到,所以我想问一下能不能通过修改终端节点的某些参数,使得终端节点也能收到数据包?
您好,这个贴里面的问题我也遇到了,您解决了吗