=====如何优化双向通信测试时的丢包率===== 双向通信时,如果一方发送过于频繁和密集,容易造成另一方过多处于接收状态,导致发送的机会减小,发送的成功率下降,这时需要通过优化来达到更好的平衡效果。通常您可以根据您的数据模型来做一些对比测试,以达到更好的效果。为了了解什么样的配置有利于实际拉距测试,我们可以在实验室的条件下,先做一些基本测试。为了在实验室内测试远距通信的效果,可以采取降功率,不加天线等方式,来模拟实际应用场景。我们需要先在实验室内调试到最好的效果,再去进行拉距测试,以减少实验次数和降低复杂性。 =====数据模型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切换固件。