TI中文支持网
TI专业的中文技术问题搜集分享网站

zigbee协调器接连控制多个router子节点有时会丢包问题

请教一个问题,请帮忙看下:

        zigbee网络里有1个协调器和18个router子节点(灯光控制),接连控制(50ms时间间隔)18个节子点(全开全关模式),有时会丢一到两个数据(灯光没变化),通过

sniffer抓包发现是协调器没发出来,附件里是抓的协调器发出来的数据截图和原始数据,图中APS Couter直接从29到31,对应18个子节点有一个没能控制到

Harris Ren:

附件是抓包的原始数据,可用sniffer打开

Harris Ren:

大神呢? vv 呢?

天空:

我这边也遇见了这样的问题。

Harris Ren:

回复 天空:

谢谢回复!请问您怎么解决这个问题的?我现在在尝试在应用层加反馈

天空:

回复 Harris Ren:

是你发送数据的速度过快、导致的丢包。

延长2次数据的间隔试一下,比如500ms。

1秒的话,性能就好多了。

VV:

回复 天空:

抓包来看,发送数据的间隔太短了,有好几条数据包都是重发成功的。

Harris Ren:

回复 天空:

500ms也试过的,也有丢包,从做产品的角度,丢包用户体验很差,发送时间过慢,响应慢,体验也不好,我们现在做的是智能家居场景控制里的全开全关模式,不知道你们做什么应用,这方面要求高不高

Harris Ren:

回复 VV:

终于等来VV了,发数据给CC2530串口的时间间隔比较固定,刚开始是50ms,后来改为500ms也能测到丢数据现象,没发送成功的话APS Counter为什么会加1呢?我现在在应用层加了反馈,如果50ms内协调器没收到终端的返回数据,再发一次,(串口发过来的数据时间间隔改为80ms),这样有点效果,但还是能测到丢包,请问还有什么建议呢?看您抓的图,Time Deta一栏时间不固定,也跟我串口发过来的时间不太一样,什么原因呢?您用的工具是Packet Sniffer吗?跟我用的不太一样,网上可以下到吗?

VV:

回复 Harris Ren:

@Harries Ren,

你的意思是你的host每隔50ms发送串口数据CC2530,然后CC2530通过无线发送出去,对吗?

有没有测试过串口给CC2530发送一条命令,然后CC2530自己控制每隔50ms发送数据。 另外如果你要实现全开全关的功能的话,那直接发送广播不可以吗?

APS Counter增加是应用调用发送函数就会增加上去的。 

我用的是Ubiqua,是一个收费的抓包软件,你可以下载试用版的30天试用期。

谢谢!

Harris Ren:

回复 VV:

谢谢您的回复!

是这样的,是host每隔50ms发送串口数据CC2530,然后CC2530通过无线发送出去。

有测过,串口时间方面是没问题的,用示波器量了是对的。用广播的话有点限制,还有其他场景,只控制部分设备。

现在的问题好像在于:调用AF_DataRequest 函数后,协调器这时在接收数据(协调器发送完终端有返回数据),数据处理不过来,这时如果又有要发送的数据下来,就把原来的数据覆盖掉了,这样似乎可以解释抓包数据里APS Couter跳了一个数字(比如从22跳到24),同事没抓到相应APS Couter的数据。

还有AF_DataRequest函数的返回值似乎不大准确,发送失败也返回0,是不是因为我的协议栈(zstack-cc2530-2.3.0-1.4.0)太老了,还是本来就不准呢?

赞(0)
未经允许不得转载:TI中文支持网 » zigbee协调器接连控制多个router子节点有时会丢包问题
分享到: 更多 (0)