差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
digi:rf-wireless:xbee:zigbee:antai-debug [2021/06/24 16:32] – [2021-6-24] robin | digi:rf-wireless:xbee:zigbee:antai-debug [2021/07/07 13:36] (当前版本) – [20210701 log] robin | ||
---|---|---|---|
行 153: | 行 153: | ||
数据分析: \\ | 数据分析: \\ | ||
- | coordinator端常见failure包: | + | coordinator端常见failure包,出现不多: \\ |
72 unknown: \\ | 72 unknown: \\ | ||
该节点有数据的三分钟时间内2次 \\ | 该节点有数据的三分钟时间内2次 \\ | ||
行 170: | 行 170: | ||
delivery status: 24 (Address not found) | delivery status: 24 (Address not found) | ||
</ | </ | ||
+ | |||
+ | 结论:主动下行发数据似乎还行,出错概率小! | ||
+ | |||
+ | 上行数据测试 \\ | ||
+ | 外接个模块,40秒定时发心跳包:\\ | ||
+ | 发送100个中,有54个Network ACK Failure \\ | ||
+ | < | ||
+ | 发送:7E0019110100000000000000000000E8E80011C10500002D00000BCD41 | ||
+ | 正常反馈包:7E00078B01000000000073 | ||
+ | Network ACK Failure: 7E00078B01000000210052 有54个 | ||
+ | Network ACK Failure:7E00078B01000000210250 | ||
+ | 两种差别在:Discovery Status,少的这种是02(route discovery),多数是:00 (No discovery overhead) | ||
+ | 可见上发是主要问题,最常见错误是Network ACK Failure, 00 (No discovery overhead) | ||
+ | </ | ||
+ | |||
+ | test module to coord:{{ : | ||
+ | |||
+ | cord received:{{ : | ||
+ | |||
+ | withack module to cord: {{ : | ||
+ | |||
+ | withack cord: {{ : | ||
+ | |||
+ | ====20200628-log==== | ||
+ | |||
+ | 192节点 测试重包情况 \\ | ||
+ | 测试模块手动发10个包,每个包带不同的序号作为payload,查看目标丢包和收到包的详细数据 \\ | ||
+ | 首先测ACK没禁用的默认情况: \\ | ||
+ | 有MTO时一般挺好的,当出现ACK Failure时有多收或丢包情况,此时一般没MTO,可能是路径有变化MTO没来有影响?\\ | ||
+ | 挑一段发送不成功的时间段记录如下,都是NetWork ACK Failure的错误,反馈包一般都是发送后5秒才有,虽然反馈包显示错误,但实际上有些协调器是成功收到的。\\ | ||
+ | |||
+ | 01包:发1个,收到2个。\\ | ||
+ | 发:[2021-06-28 14: | ||
+ | 收:[2021-06-28 14: | ||
+ | |||
+ | 02包:发1收1,正常 \\ | ||
+ | 发:[2021-06-28 14: | ||
+ | 收:[2021-06-28 14: | ||
+ | |||
+ | 03包:发1收1,正常 \\ | ||
+ | 发:[2021-06-28 14: | ||
+ | 收:[2021-06-28 14: | ||
+ | |||
+ | 04包:发1收1正常 | ||
+ | 发:[2021-06-28 14: | ||
+ | 收:[2021-06-28 14: | ||
+ | 05包:发1收1正常 | ||
+ | 发:[2021-06-28 14: | ||
+ | 收:[2021-06-28 14: | ||
+ | 06包:发1收1正常 \\ | ||
+ | 发:[2021-06-28 14: | ||
+ | 收:[2021-06-28 14: | ||
+ | 07包:丢 | ||
+ | 08包:丢 | ||
+ | 09包:发1收1正常 \\ | ||
+ | 发:[2021-06-28 14: | ||
+ | 收:[2021-06-28 14: | ||
+ | |||
+ | 10包: 发1收3 | ||
+ | 发:\\ | ||
+ | [2021-06-28 14: | ||
+ | 收:\\ | ||
+ | [2021-06-28 14: | ||
+ | [2021-06-28 14: | ||
+ | [2021-06-28 14: | ||
+ | |||
+ | |||
+ | 结论: Network ACK Failure在测试环境实际上成功率约80%,如果关掉这个,可以减少重发的包,增强可靠性。\\ | ||
+ | 为什么会发生Network ACK Failure的情况呢,猜测是上行通的,下行ACK丢了,因为数据包用0x21,但ACK并没有实许source routing,为了验证这个,发10个keepalive, | ||
+ | |||
+ | 不仅ACK丢,MTO也会丢,有时会长时间没收到MTO。 | ||
+ | 当network ack failure时,发送keepalive包大多要等1分~3分钟才收到响应包,也就是缓冲区满了,CTS拉高,所以协调器没有发送时机,**缓冲区是0x11独占的,还是0x21也要占用缓冲区?ACK呢,它是否也占缓冲区?** | ||
+ | 考虑到现在节点是192个,数据量还是有点大:协调器每秒处理14.4个包,相当于69ms就有一个包要处理。 | ||
+ | |||
+ | |||
+ | 可能的改时:想办法让目标组在发送前收到MTO,看看有什么指令可以产生,ATDN?这个可能只能有路径不可用时产生,不够也许也有用。 | ||
+ | |||
+ | ====20210701 log==== | ||
+ | 上午主要测试60/ | ||
+ | 共191nodes \\ | ||
+ | 14:20改为41/ | ||
+ | |||
+ | 测试时间:14: | ||
+ | 测得0xA1=5134 | ||
+ | 0xA1(MTO_AR)=5*191=955 | ||
+ | 实际0xA1=5134-955=4179 | ||
+ | RRI per second=4.49 | ||
+ | RRI per minute = 269 \\ | ||
+ | 估计没代表意义。30分钟再抓一次。 | ||
+ | |||
+ | 测试2:改后一小时 | ||
+ | 测试时间:15: | ||
+ | 测得0xA1=5207 | ||
+ | 0xA1(MTO_AR)=5*191=955 | ||
+ | 实际0xA1=5207-900=4307 | ||
+ | RRI per second=4.78 | ||
+ | RRI per minute = 287 \\ | ||
+ | |||
+ | RRI在上电半小时和1小时后,有些增幅,需要再测一次,如果趋势保持,说明稳态后没法消除协调器要发的数据大于能处理的数据,需要进行减少密集发送的行动,也就是增大间隔。 \\ | ||
+ | |||
+ | 测试3: | ||
+ | |||
+ | 测试时间:16: | ||
+ | 测得0xA1=5556 | ||
+ | 0xA1(MTO_AR)=5*191=955 | ||
+ | 实际0xA1=5556-955=4601 | ||
+ | RRI per second=4.73 | ||
+ | RRI per minute = 284 \\ | ||
+ | |||
+ | |||
+ | |||
+ | **附:07-01测试结果** | ||
+ | |||
+ | 今天主要做了Disable ACK的测试,效果远好于默认开ACK的方式。考虑到你们昨天晚上有临时开一下ACK效果不佳的情况,很可能是种意外,可进一步观察。\\ | ||
+ | 测试的目标是观察RRI指标是否可以在某种调节模式下变好,也即RRI不会越来越差,这样CTS才有可能避免拉高。\\ | ||
+ | |||
+ | 今天的测试结果和指标:\\ | ||
+ | 共191个节点,Disable ACK在35/ | ||
+ | |||
+ | |||
+ | **抓包指标分析** | ||
+ | 14:20改为41/ | ||
+ | 测试时间:14: | ||
+ | 测得0xA1=5134 | ||
+ | 0xA1(MTO_AR)=5*191=955 | ||
+ | 实际0xA1=5134-955=4179 | ||
+ | RRI per second=4.49 | ||
+ | RRI per minute = 269 \\ | ||
+ | |||
+ | **这个抓包在更改后不到10分钟开始,因此意义不大,过30分钟再抓一次。** | ||
+ | |||
+ | 测试2:改后一小时\\ | ||
+ | 测试时间:15: | ||
+ | 测得0xA1=5207 | ||
+ | 0xA1(MTO_AR)=5*191=955 | ||
+ | 实际0xA1=5207-900=4307 | ||
+ | RRI per second=4.78 | ||
+ | RRI per minute = 287 \\ | ||
+ | |||
+ | RRI在上电半小时和1小时后,有些增幅,需要再测一次,如果趋势保持,说明稳态后没法消除协调器要发的数据大于能处理的数据,需要进行减少密集发送的行动,也就是增大间隔。 \\ | ||
+ | |||
+ | 测试3: | ||
+ | 测试时间:16: | ||
+ | 测得0xA1=5556 | ||
+ | 0xA1(MTO_AR)=5*191=955 | ||
+ | 实际0xA1=5556-955=4601 | ||
+ | RRI per second=4.73 | ||
+ | RRI per minute = 284 \\ | ||
+ | |||
+ | 可见,在有外部小干扰时,RRI指标仍减少,也就是网络拥堵不会进一步恶化,流控CTS事件不会发生。 | ||