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.

[参考译文] CC2652R:ZNP 不为某些器件发送传入消息。

Guru**** 2465360 points
Other Parts Discussed in Thread: CC2652R, SYSCONFIG, SIMPLELINK-CC13XX-CC26XX-SDK

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1183516/cc2652r-znp-not-sending-incoming-messages-for-some-devices

器件型号:CC2652R
主题中讨论的其他器件: SysConfigSIMPLELINK-CC13XX-CC26XX-SDK

您好!

我们设置了通过 UART 进行通信的 ZNP。  

对于 ZNP 上的大型网络、我们观察到了一些奇怪的情况。
某些器件的传入功能命令会被接收、但不会通过 ZNP UART 发送。 我了解到收到这些命令是因为有一个 MAC 层确认被发送回发送器件。

近似网络详细信息
具有大约150多个器件的 CC2652R ZNP。

有关这种情况发生的原因或我如何进行调试的任何输入都非常有用。

谢谢
Akhilesh

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

    您好、Akhilesh、

    我想详细了解所描述的行为。  这些消息未被处理时、是否有大量的网络和 UART 活动?  丢失的命令是否总是来自相同的设备,或者是否会发生在网络上的任何设备上?  您以前是否能够正确接收类似的消息?  您可以尝试从 NWK_globals.c 中增加 NWK_MAX_DATABIFS_*、SysConfig UART2模块中的 RX/TX 环缓冲区大小以及 npi_tl_uart.h 中的 NPI_UART_BR

    此致、
    Ryan

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

    您好、Ryan、

    此时没有与 ZNP 关联的活动、也没有 UART。 但是、网络上有一组链路状态消息正在运行(链路状态间隔设置为60s)。

    丢失的命令发生在网络上的随机设备上。 另一个观察结果是、如果我对 ZNP 进行下电上电并重试、则该器件工作正常、但稍后另一个器件也会发生同样的情况。 最初、我们怀疑 RSSI 较低的器件发生了这种情况、但事实并非如此、即使将器件移到更近的位置后、也会发生相同的问题。

    我们将尝试调整缓冲区并进行检查。 这也在较旧的 SDK (4.40)上、将使用最新的 SDK 进行尝试。

    谢谢
    Akhilesh

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

    到目前为止、您对默认 ZNP 做出了哪些更改、您使用的是哪个 SIMPLELINK-CC13XX-CC26XX-SDK?  请务必增加 NV 内存分配(可以在较旧的 SDK 中静态分配)。  当问题发生时、ZNP 是否无法从特定设备接收任何消息?  您能否 通过单个设备连续发送数据包或 需要大型网络进行复制?  您是否还能够调试 ZNP 以确定它是否接收(但从未完全处理)传入消息?

    此致、
    Ryan

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

    您好!

    SDK 为4.40。 更改将在末尾添加
    我们没有对堆进行任何更改。

    当问题发生时、ZNP 是否无法从特定设备接收任何消息?  
    器件仅响应来自 ZNP 的请求、是的、这些请求均不会被处理。 将尝试为此获取监听器日志。

    您能否 通过单个设备连续发送数据包或 需要大型网络进行复制?
    如果数据包已经在响应、则不会连续发送数据包。 仍然不确定、但在更大的网络中很容易重现。

    您是否还能够调试 ZNP 以确定它是否接收(但从未完全处理)传入消息?
    我们将在某个时候对其进行设置和调试。 将更新

    谢谢
    Akhilesh

    P.S. 配置设置

    // Save memory
    #undef NWK_MAX_BINDING_ENTRIES
    #define NWK_MAX_BINDING_ENTRIES 1
    #undef APS_MAX_GROUPS
    #define APS_MAX_GROUPS 1

    // Increase NV pages to 3 to allow for bigger device tables
    #undef NVOCMP_NVPAGES
    #define NVOCMP_NVPAGES 3

    // Disabling MULTICAST is required in order for proper group support.
    // If MULTICAST is not disabled, the group adress is not included in the APS header
    #define MULTICAST_ENABLED FALSE

    // Increase the max number of boardcasts, the default broadcast delivery time is 3 seconds
    // with the value below this will allow for 1 broadcast every 0.15 second
    #define MAX_BCAST 30

    /**
     * Enable MTO routing
     */
    #define CONCENTRATOR_ENABLE TRUE
    #define CONCENTRATOR_DISCOVERY_TIME 250
    #define CONCENTRATOR_ROUTE_CACHE TRUE
    #define MTO_RREQ_LIMIT_TIME 5000
    #define MAX_RTG_SRC_ENTRIES 200
    #define SRC_RTG_EXPIRY_TIME 0
    #define ROUTE_EXPIRY_TIME 0

    /**
     * Scale other device tables appropriately
     */
    #define NWK_MAX_DEVICE_LIST 100
    #define ZDSECMGR_TC_DEVICE_MAX 200
    #define MAX_NEIGHBOR_ENTRIES 100
    #define MAX_RTG_ENTRIES 100

    // nwk link status repeat interval
    #define NWK_LINK_STATUS_PERIOD 60

    // number of failed messages before it marks the neighbor as inactive
    #define LINK_DOWN_TRIGGER 12

    // neighbor table marking neighbors are unstable very fast
    #define NWK_ROUTE_AGE_LIMIT 15

    // route request radius needs to be adjusted to limit the discovery storm in worst case scenario
    #define DEFAULT_ROUTE_REQUEST_RADIUS 15

    // disable frequency agility
    #define ZDNWKMGR_MIN_TRANSMISSIONS 0

    /**
     * Reduce the APS ack wait duration from 6000 ms to 1000 ms (value * 2 = value in ms).
     * This will make requests timeout quicker, in practice the default timeout of 6000ms is too long.
     */
    #define APSC_ACK_WAIT_DURATION_POLLED 500

    // From www.ti.com/.../swra650b.pdf
    #define DEF_NWK_RADIUS 15
    #define ROUTE_DISCOVERY_TIME 13

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

    如果是静态分配的、我建议增加堆空间。  监听器日志将有助于进一步了解帧计数器或网络安全是否存在问题。   如果要增加  NVOCMP_NVPAGES、请确保同时改变 SysConfig 中的区域基础和大小-> NVS -> NVINTERNAL 以及命令链接器文件(取决于所使用的 SDK 版本、分配可能不会自动 更改)。  如果可能、您可能会尝试增加到总共四个 NV 闪存页。  我还建议评估最新的 SDK、以确定是否有明显的改进。  TI 的研发团队每季度评估一个包含~100个节点的大型网络设置、以确认一个可靠而稳健的解决方案。

    此致、
    Ryan