我是靠谱客的博主 甜甜巨人,最近开发中收集的这篇文章主要介绍zigbee单播丢包测试(CC2530,ZSTACK),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

之前写过一个zigbee数据测试,由于当时对zigbee理解的很浅,所以写的代码丢包严重。最近为了提高数据传输的可靠性,改进了一下通信的方式,结果还不错。 
  之前:协调器+普通终端节点,协调器广播,节点接收广播消息。 
  现在:协调器+路由节点,协调器记录路由的网络短地址进行点播(单播)。 
  这样改进的原因是: 
  1.如果普通终端节点接收数据,那么由于节点默认会定期进入休眠,所以会在休眠唤醒的时候向父节点发送Data Request来看一看在休眠期间有没有发给自己的数据,如此便会增加父节点的通信负担,也会造成更多的CSMA/CA的避让,因此改为路由节点并且不休眠。 
  2.单播比广播稳定,原因是单播可以使用ZSTACK自带的数据重传机制。协调器通过单播的方式把数据发给路由节点之后,那么路由节点会在几毫秒的时间内就发送一个MAC ACK。如果协调器没有收到MAC ACK,就会自动以5毫秒左右的间隔进行多次(默认为8次)数据重传。MAC ACK跟APS ACK相比,速度更快。 
  本次测试的设备连接: 
PC串口助手—-通过串口线定时给————-协调器发送数据 
协调器———-通过zigbee网络给———–路由节点发送数据 
路由节点——-通过串口线把数据发送给—–另一个PC串口助手 
  如此一来就可以根据串口助手统计收和发数据的数量,来测试丢包率。 
  注,由于真正测试丢包只需要看节点收到多少数据,而这个方法还会通过串口这样多余的路径,所以实际上更苛刻。 
  两个节点距离90厘米,天线全功率(0xF5),无干扰,有效16个字节,结果如下: 
1000ms间隔: 
  发31584字节,收31024字节,包接收率98.2% 
500ms间隔: 
  发18992字节,收18720字节,包接收率98.6%(比1000ms还高,,,,不太理解) 
总的来说,单播的通信方式还是比较可靠的。 

附,路由回复的MAC ACK,与在路由掉线时的协调器数据自动重传抓包: 






最后

以上就是甜甜巨人为你收集整理的zigbee单播丢包测试(CC2530,ZSTACK)的全部内容,希望文章能够帮你解决zigbee单播丢包测试(CC2530,ZSTACK)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部