This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2530:ZStack 3.0.2会丢失射频帧

Guru**** 1561515 points
Other Parts Discussed in Thread: CC2530, CC2430, Z-STACK, SIMPLICITI, CC2538
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1170463/cc2530-zstack-3-0-2-loses-rf-frames

器件型号:CC2530
Thread 中讨论的其他器件: CC2430Z-stackSimpliciTICC2538

大家好、

我将 CC2530与 ZStack 3.0.2搭配用于包含多个路由器和一个协调器的项目。  通常、由于距离较远、它们单独工作(正在移动)、它们之间没有射频通信、但有时它们可以彼此靠近工作。 为了加入网络、每台路由器都会加入网络、并开始工作。 路由器和协调器始终处于唤醒状态、它们永远不会进入睡眠状态。 我还有终端设备、它们在特定条件下每140ms 发送一次射频帧。 我的问题是路由器丢失了来自 ED 的射频帧。 请参阅随附的图像。 通道1和2是当 ED 发送射频帧时激活的信号。 通道3是 MyApp_ProcessEvent (uint8 task_id、uint16 events)-> SYS_EVENT_MSG event (SYS_EVENT_MSG 事件)-> MSGpkt->HDR.event (afIncomingMSGPacket_t)-> AF_Incoming_MSG_CMD 事件中设置的切换引脚。 请注意、通道3切换的时间不超过800ms、最多会丢失5帧。 我需要了解 ED 帧的监听器捕获。

ED 设置为:CC2530、它们不使用 ZStack、它们使用 BasicRF、格式帧基于 CC2430 Zstack-1.4.3-1.2.1以实现兼容性、这种兼容性长达一年之久。  

我的问题是:

由于 ED 设置在基于   CC2430 ZStack-1.4.3-1.2.1的路由器上运行正常、  因此 ED 与 ZStack 3.0.2 Zigbee PRO 之间是否存在某种不兼容性?

2.是否有影响路由器丢失帧的网络参数?

3.我使用一些 OSAL 定时器,我尝试禁用所有这些定时器,因为根据第二幅图像,当射频帧丢失时会出现某种模式,但问题仍然存在。  

谢谢。

Joaquim。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Joaquim、

    因此、所有传入的数据包都是相同的(除了序列号)、但 CC2530 ZC 遗漏了一些数据包?  Z-Stack 3.0.2能够处理它能够接收的数据包?  根据这些信息、Z-Stack CC2530 ZC 似乎遇到了瓶颈、在处理其他缓冲区时、它超出了其可用的 RX 缓冲区并错过了数据包。  CC2530 在 RAM 中受到限制 并且之前有人建议 交错器件加入(例如)、因为 新的 Z-Stack 3.0功能 会为器件带来更多开销。  如果您能够将 此数据包频率限制为1秒、然后能够准确接收所有消息、则这种瓶颈将通过 Z-Stack 3.0和 CC2530来确认、这并不能帮助每140ms 广播一次消息。   

    此致、
    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ryan、

    是的、所有数据包都是相同的、并且处理正确。 我认为也有一些瓶颈。 我 将-DMAC_CGC_RX_MAX 参数(在 f8wRouter.cfg 文件中)从5增加到10、但它没有生效。  

    我按照您的建议保存 RAM、但问题已经存在。  

    我无法将时间增加到1秒或更长时间。 我需要快速发送、因为路由器正在移动。  

    我正在考虑迁移到 SimpliciTI、甚至是 MRFI、但我想继续使用 ZStack、因为我需要几乎从零写入我的代码...

    有什么关于如何处理和不丢失任何射频帧的想法?

    谢谢。

    Joaquim。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    缩短数据包间隔的建议旨在用于测试以证明数据包处理限制、而不是作为长期解决方案提出。  由于 Z-Stack 3.0.2涉及的开销、您可以尝试从 Z-stack-archive ( 例如 HA 或网状)评估较旧的"较简单"解决方案。  或者、如果可行、您可以尝试改用 CC2538或 SimpleLink CC26X2器件。  否则、对于如何使用 CC2530 Z-Stack 3.0.2完成此应用、我没有任何进一步的建议

    此致、
    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我已经尝试了网状网络、但行为是相同的。 我将寻找其他解决方案。  

    非常感谢你的帮助。

    此致。

    Joaquim。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ryan、

    我发现了问题、而不是 ZStack、它可以更快地接收70ms 或更多的帧!  

    问题出在 ED with Basic RF 中:当我构建帧以实现 IEEE 802.15.4帧格式兼容性时、SeqNumber (不知道确切原因)的计算公式如下:SeqNumber =(SeqNumber + 1)% 10;  增加1、最大允许值为9。 这 已经提醒了我、因为在监听器中、该值从0星到255星。 因此、我将计算更改为 SeqNumber =(SeqNumber + 1)% 255;并且没有帧丢失! 请参阅随附的图像。

    现在、我很清楚这不是 ZStack 问题、但由于我们有很多 ED 与此错误有关、无法进行远程升级、因此我正在调试路由器和协调器中的 ZStack 3.0.2代码、 调查控制 SeqNumber 的条件是什么、以便尝试找到解决方法、以及它如何影响帧接受。 但最后一个被调用的函数、我在收到帧时可以访问它(我假设它是从 Router-Pro.lib 中调用的)、在 AF.c 文件中是"afIncomingData"。  

    此外、我不明白为什么这个问题看起来对  CC2430 ZStack-1.4.3-1.2.1没有影响。 如何影响帧接收中的错误 SeqNumber?  

    请、您能帮我找到一些针对 SeqNumber 问题的解决方法吗? ZStack 中是否有任何地方可以修复它?

    非常感谢。

    Joaquim。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Joaquim、

    Z-Stack 已经从 1.4.3-1.2.1到3.0.2进行了多次更新、其中很可能包括根据序列号对传入的数据包进行更严格的检查和解析。  序列号从预构建的 Z-Stack 库进行处理、这些库无法通过 Z-Stack 的发布版本进行访问。  我将分别向您发送消息、以获取替代方案。

    此致、
    Ryan