如何优化双向通信测试时的丢包率
双向通信时,如果一方发送过于频繁和密集,容易造成另一方过多处于接收状态,导致发送的机会减小,发送的成功率下降,这时需要通过优化来达到更好的平衡效果。通常您可以根据您的数据模型来做一些对比测试,以达到更好的效果。为了了解什么样的配置有利于实际拉距测试,我们可以在实验室的条件下,先做一些基本测试。为了在实验室内测试远距通信的效果,可以采取降功率,不加天线等方式,来模拟实际应用场景。我们需要先在实验室内调试到最好的效果,再去进行拉距测试,以减少实验次数和降低复杂性。
数据模型1
数据模型:P2MP模式(TO=40),A模块40Bytes/40ms, B模100Bytes/120ms,长时间发送得到一组数据
SX固件优化测试
SX固件支持Digimesh,固件版本号是90XX。我们先用默认值来做一组测试:
固件类别 | 版本号 | 波特率 | A模块配置 | B模块配置 | A发 | B收 | B发 | A收 | A2B丢包率 | B2A丢包率 |
---|---|---|---|---|---|---|---|---|---|---|
XBP9X-DM | 9004 | BD=115.1K,BR=110k | 广播,MT=3 | 广播,MT=3 | 699960 | 663280 | 656500 | 620767 | 5.24% | 5.44% |
XBP9X-DM | 9004 | BD=115.1K,BR=110k | 广播,MT=3 | 单播,RR=4 | 939400 | 933202 | 882800 | 865943 | 0.66% | 1.9% |
XBP9X-DM | 9004 | BD=115.1K,BR=110k | 单播,RR=4 | 广播,MT=3 | 951840 | 924352 | 894100 | 852546 | 2.9% | 4.6% |
XBP9X-DM | 9004 | BD=115.1K,BR=110k | 单播,RR=4 | 单播,RR=4 | 615160 | 608579 | 577200 | 425748 | 1% | 26.2% |
从上面的测试结果可以看出:在双向密集发送时,将更密集发送的一方配置为广播,另一方配置为单播,可以有效地降低丢包率。
XTC固件优化测试
XTC固件兼容Xtend协议,采用16bit寻址,因此理论上,在数据包较小的情况下,较有优势。XTC固件中可以配置RN和TT参数,来改善密集发送时的随机延迟和收发切换,对于不熟悉的用户容易造成困扰,这里用测试数据来说明: 我们将A模块的地址设置为MY=A,将B模块的地址设置为MY=B,在实验室里去掉天线,发射功率降低,以模拟拉距测试,分别用单播和广播测试长时间工作的丢包率。
固件类别 | 版本号 | 波特率 | A模块配置 | B模块配置 | A发 | B收 | B发 | A收 | A2B丢包率 | B2A丢包率 |
---|---|---|---|---|---|---|---|---|---|---|
XBP9XT | 2004 | BD=115.1K | 广播,MT=3,RN=0,TT=0 | 广播,MT=3,RN=0,TT=0 | 602680 | 517363 | 565100 | 303521 | 14.2% | 46.3 % |
XBP9XT | 2004 | BD=115.1K | 广播,MT=3,RN=0,TT=0 | 单播,RR=4,RN=0,TT=0 | 600640 | 528889 | 559900 | 341771 | 11.9% | 39% |
XBP9XT | 2004 | BD=115.1K | 单播,RR=4,RN=0,TT=0 | 广播,MT=3,RN=0,TT=0 | 606280 | 523917 | 568400 | 325667 | 13.6% | 42.7% |
XBP9XT | 2004 | BD=115.1K | 单播,RR=4,RN=0,TT=0 | 单播,RR=4,RN=0,TT=0 | 605800 | 516975 | 568000 | 303132 | 14.7% | 46.6% |
上面结果可以看出,如果只改发送模式,也是更密集一方单播,另一方广播效果好,但单纯改动发送模式效果提升并不明显,我们需要对RR和TT进行调整,这两个参数在SX固件中是软件自适应的,在XTC/Xtend中却需手动配置,如果配置不合量,会导致效果很差。实验结果表明,TT,RN和历史数据有关,所以配置后需重上电,TT并无明显效果,主要需更改RN,使RN=1~2。
固件类别 | 版本号 | 波特率 | A模块配置 | B模块配置 | A发 | B收 | B发 | A收 | A2B丢包率 | B2A丢包率 |
---|---|---|---|---|---|---|---|---|---|---|
XBP9XT | 2004 | BD=115.1K | 广播,MT=3,RN=2,TT=0 | 广播,MT=3,RN=2,TT=0 | 56640 | 55240 | 48000 | 42800 | 2.5% | 10.8% |
XBP9XT | 2004 | BD=115.1K | 广播,MT=3,RN=2,TT=0 | 单播,RR=4,RN=2,TT=0 | 50480 | 47530 | 47800 | 41188 | 5.8% | 13.8% |
XBP9XT | 2004 | BD=115.1K | 单播,RR=4,RN=2,TT=0 | 广播,MT=3,RN=2,TT=0 | 47400 | 42638 | 41500 | 28800 | 10 % | 30.6% |
XBP9XT | 2004 | BD=115.1K | 单播,RR=4,RN=2,TT=0 | 单播,RR=4,RN=2,TT=0 | 45320 | 43120 | 42400 | 38396 | 4.9% | 9.4% |
数据模型1结论:采用SX固件,更密集发送方广播模式,另一方单播模式,丢包率最低。
数据模型2
数据模型:双向100Bytes/100ms对发,双向50ms对发测试
SX固件
SX固件双向100B/100ms测试
固件类别 | 版本号 | 波特率 | A模块配置 | B模块配置 | A发 | B收 | B发 | A收 | A2B丢包率 | B2A丢包率 |
---|---|---|---|---|---|---|---|---|---|---|
XBP9X-DM | 9004 | BD=115.1K,BR=110k | 广播,MT=3 | 广播,MT=3 | 253100 | 233252 | 253200 | 235899 | 7.8% | 6.8% |
XBP9X-DM | 9004 | BD=115.1K,BR=110k | 单播,RR=4 | 广播,MT=3 | 251100 | 246600 | 250800 | 247947 | 1.8% | 1.14% |
XBP9X-DM | 9004 | BD=115.1K,BR=110k | 单播,RR=4 | 单播,RR=4 | 256300 | 256200 | 256400 | 256200 | 0% | 0% |
SX固件双向100B/50ms测试
固件类别 | 版本号 | 波特率 | A模块配置 | B模块配置 | A发 | B收 | B发 | A收 | A2B丢包率 | B2A丢包率 |
---|---|---|---|---|---|---|---|---|---|---|
XBP9X-DM | 9004 | BD=115.1K,BR=110k | 广播,MT=3 | 广播,MT=3 | 252400 | 205541 | 252700 | 200712 | 18.6% | 20.6% |
XBP9X-DM | 9004 | BD=115.1K,BR=110k | 单播,RR=4 | 广播,MT=3 | 285700 | 261887 | 285200 | 227515 | 8.3% | 20.2% |
XBP9X-DM | 9004 | BD=115.1K,BR=110k | 单播,RR=4 | 单播,RR=4 | 253600 | 199594 | 253500 | 192847 | 21.3% | 23.9% |
XBP9X-DM | 9004 | BD=115.1K,BR=250k | 单播,RR=4 | 单播,RR=4 | 239200 | 239100 | 239100 | 239100 | 0% | 0% |
XBP9X-DM | 9004 | BD=230.4K,BR=110k | 单播,RR=4 | 单播,RR=4 | 210000 | 48585 | 210100 | 50094 | 76.9% | 76.0% |
从上面看到,BD增大并没有对丢包率有提升,但双向都很密集时,需提升空中波特率,以在信号足够的情况下不丢包,不过需注意的是,增大BR,本身会导致通信距离下降。 建议根据自己的数据模型来做类似测试,以达到优化效果。
XTC固件
XTC 双向100B/50ms优化测试
固件类别 | 版本号 | 波特率 | A模块配置 | B模块配置 | A发 | B收 | B发 | A收 | A2B丢包率 | B2A丢包率 |
---|---|---|---|---|---|---|---|---|---|---|
XBP9XT | 2004 | BD=115.2K,BR=250k,TT=600B,RN=3 | 单播,RR=4 | 单播,RR=4 | 132200 | 88444 | 132300 | 88464 | 33.1% | 33.1% |
XBP9XT | 2004 | BD=115.2K,BR=110k,TT=600B,RN=3 | 单播,RR=4 | 广播,MT=3 | 131700 | 98296 | 131700 | 101164 | 25.4% | 23.2% |
从上面可以看出,新版SX的固件完全可以替代XTC,不仅配置简单,而且实现更远的距离和更少的丢包论。在实验室内上述各种条件下,均有零丢包率的配置。
注意Digi XBee PRO SX模块和XBee XTC模块硬件完全相同,您可以订购出厂对应固件的模块,也可以自行用XCTU切换固件。