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:网络中包含10多台路由器的 ZNP crashs

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1124353/cc2530-znp-crashs-in-the-network-with-more-than-10-routers

器件型号:CC2530
Thread 中讨论的其他器件: Z-stackCC2520CC2538

大家好、

我正在  CC2530上使用最新版本的 Z-STACK-HOME 1.2.2a ZNP (使用路径文件修改的默认版本)。 当我在拥有10台以上路由器的大型网络中使用 ZNP 时、我面临一个新问题。 ZNP 突然停止工作、并且不响应任何串行命令。 有时我应该使用 RESET 引脚对其进行复位、并且我应该多次对其进行重新刷写。  

由于它没有获得调试日志、我找不到它崩溃的原因。 可以帮帮我吗?  

编辑:

如上所示、自高亮显示行后、ZNP 突然停止工作。

在另一项测试中、ZNP 继续使用未知的加密密钥!

(过滤数据:仅源地址为0x00的数据)

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

    您可以联系 Zigbee2MQTT 论坛 、了解有关修改后的固件的特定问题。  您还可以主动调试 CC2530、以便在崩溃状态期间暂停并尝试通过调用堆栈确定原因。  如果使用 故障的 NWK 密钥重新启动或需要重新刷写器件、则表明 NV 存储器损坏。  您应该确定 CC2530是否已正确通电、并确保闪存写入不会低于2.2V。 这可以通过更少的加入 ZRS 来复制、还是始终是完全相同的数字?  这可能有助于确定固件中需要更改的内容。

    此致、
    Ryan

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

    您好、Ryan

    感谢你的答复。

    是的、我已经与 Koen Kanters 进行了检查。 与路由相关的修改仅在 preinclude.h 文件中完成、如下所示:

    #define APS_MAX_GROUPS 1
    
    #define NWK_MAX_BINDING_ENTRIES 1
    
    #define MULTICAST_ENABLED FALSE
    
    #define BCAST_DELIVERY_TIME 20
    
    #define MAX_BCAST 12
    
    #define CONCENTRATOR_ENABLE TRUE
    
    #define CONCENTRATOR_DISCOVERY_TIME 60
    
    #define CONCENTRATOR_ROUTE_CACHE TRUE
    
    #define MAX_RTG_SRC_ENTRIES 40
    
    #define MAX_RTG_ENTRIES 40
    
    #define MAX_NEIGHBOR_ENTRIES 16
    
    #define SRC_RTG_EXPIRY_TIME 0
    
    #define HAL_UART_DMA_RX_MAX 128
    
    #define NWK_MAX_DEVICE_LIST 5
    
    #define MAXMEMHEAP 3189

    根据我的测试、当路由器数量较高但我没有任何确切的数量时、就会出现崩溃问题。  

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

    事实上、您使用的是具有有限 RAM 可用性的 CC2530: https://www.ti.com/lit/swra635 

    您还应检查已知的 Z-Stack CC253X 问题 :https://e2e.ti.com/f/1/t/902631 

    此致、
    Ryan

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

    谢谢、Ryan。
    我已经完成了更多测试并找到了导致 CC2530崩溃的特定方法。
    在大约有20台路由器的大型网络中,我同时关闭了13台路由器。 打开后、路由器开始向 CC2530发送"route request"命令、并崩溃。
    您是否更喜欢更改上述参数的值以防止崩溃?

    在下面的日志中、突出显示的蓝色消息是当我打开13台路由器并开始发送"路由请求"且 CC2520崩溃时的消息。 以下消息中提到的 MAC 地址是我的 CC2530 Mac 地址。

    我重复测试、CC2530再次崩溃。

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

    您应该遵循 E2E 帖子中已知问题和修复的建议 、这些建议也适用于 Z-Stack HA 1.2.2a。  例如、交错器件加入开始时间、以便 ZC 不会被链路状态和路由/地址请求消息淹没。

    此致、
    Ryan

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

    好的、Ryan、我在 z-stack 中相对较新。

    您能解释得更多吗?  

    我认为大量请求同时导致 CC2530崩溃。 我想限制处理请求的能力。

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

    无法延迟传入数据包的处理、因为有些数据包的响应时间窗口有限。  由于 CC2530具有较小的 RAM 大小、因此它非常有限。  可能 会在 nwk_globals.c 中增加 NWK_MAX_DATABUFS_*,但最佳解决方案是升级到 CC2538器件。

    此致、
    Ryan

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

    谢谢你。

    是的、你是对的。 但我想找到 CC2530支持的最大器件/路由器数量。  

    我已检查 nwk_globals.h 文件。  

    1- NWK_MAX_DEVICE_LIST 是否确定整个网络中的最大设备数(路由器+终端设备)或协调器的直接子级?

    2- Nwk_MAX_NEWTERRATAS 是否确定整个网络中的最大路由器数量?

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

    NWK_MAX_DEVICE_LIST 定义 协调器允许直接关联的子项数、 MAX_ANEL_ entries 控制每台路由器的邻居项数。  NWK_MAX_NEWTERs 不应影响可加入网络的路由器总数,但它用于在设备的关联表中为路由器保留空间。   您可以查看 swra427 、但请注意、它是使用 Z-Stack HA 1.2.2a 的自定义版本和 CC2538 ZC 开发的。

    此致、
    Ryan