目前有做了一套设备,一个协调器对一个终端设备,要求协调器50ms间隔时间发送数据给终端设备,但终端设备不能同时快速的接收到协调器发送到的数据。事实上协调器发送间隔设置成500ms以上时,终端设备接收是能同时接收到数据,但是发送间隔500ms以下就不理想了,接收快慢不定。
试过协调器端广播和短地址单播方式间隔500ms以下发送都不理想。
把终端设备改成路由设备来接收数据,接收效果会好些,但也没达到要求。
尝试过修改终端设备的-DPOLL_RATE; 协调器的BCAST_DELIVERY_TIME=10,MAX_BCAST=9,也没效果。
求能够在zigbee设备间快速通信数据的修改设置方式。
chengzi chen:
自己来解答下:
找了很多帖子,出现接收不稳定的原因大都是在这两个参数的设置上:BCAST_DELIVERY_TIME, MAX_BCAST。目前改了这两个值,间隔在100ms内发送,接收就不会出现丢包和快慢不定的现象了。
多次测试发现芯片在广播的时候发送时间短于300ms一次的话就会产生发送失败的现象,每9次失败几次,失败的原因为zBufferFull,而采用单播发送频率在30ms以下才会产生丢包问题,并且丢包问题不是因为zBufferFull,那么广播为什么会有300ms这么长的时间,再短就会发送失败?是不是有些参数可以配置修改?比如说MAX_BCAST、INT_HEAP_LEN、_NIB.BroadcastDeliceryTime等等之类的?
修改-DMAX_BCAST参数即可。默认为9,_NIB.BroadcastDeliceryTime=3000ms,-DMAX_BCAST=9,即3000ms内发送9个数据包,多余9个则发送失败,设置_NIB.BroadcastDeliceryTime=2000ms,-DMAX_BCAST=20,或者更多,则2000ms内发送20个数据包,最短间隔提高到100ms一次,修改的大一点即可。
user4787060:
回复 chengzi chen:
您好,
我现在协调器给终端发信息,终端有时候收的到,有时候收不到?这是什么原因?需要怎么做修改?
您说的这个参数_NIB.BroadcastDeliceryTime 在哪修改?小白,不懂,期待您的回复谢谢