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.

[参考译文] CC1352R:如何增加重复数据请求之间的延迟?

Guru**** 2554770 points
Other Parts Discussed in Thread: Z-STACK, SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1020367/cc1352r-how-to-increase-delay-between-data-request-repeats

器件型号:CC1352R
Thread 中讨论的其他器件:Z-stackSysConfig

如果未收到 ACK、如何增加数据请求之间的延迟?

延迟约为70-75 ms。

是否可以增加延迟? 它是什么参数?

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

    请添加更多信息。 问题会增加上下文、您是否使用自己的协议、 其中一个协议栈等?  

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

    实际上是的、它是自己的协议。 问题不在于延迟的确切时间。

    让我们在 Z-Stack 中讨论一下它。 行为是相同的。 例如、如果我们连接了 ZED 和 ZC、然后关闭 ZC、那么 ZED 将发送数据请求、如果它没有从 ZC 获取 ACK (因为 ZC 已关闭)、ZED 将发送几个重复的数据请求。

    因此、问题是:

    1.我们如何更改重复数据请求之间的时间段? 如何降低速度?

    2.什么参数定义重复数据请求的数量? ZED 将发送多少次数据请求? (我看到12次)

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

    嘿 Alex、

    以 Z-Stack 为例:

    1、重发送延迟由 NWK_ADANDICADANGED 决定、可按此进行修改。

    重试在 SysConfig -> Z-Stack -> Advanced -> Packet Sending 中配置、其中  MAC 帧重试(ZMAC_MAX_FRAME_RETESS)是 允许的最大 MAC 帧传输尝试次数(即相同的 MAC 序列号) Nwk 数据重试(NWK_MAX_DATA_RETESS)是查找消息的下一跳地址的尝试次数(再次尝试时、它将增加 MAC 序列号)。  因此、数据包将在 递增 MAC 序列号和重 试次数之前尝试 ZMAC_MAX_FRAME_RETESS + 1次、直到 Nwk_MAX_DATA_RETESS 次数。  因此,公式为(ZMAC_MAX_FRAME_RETESS_+1) x (Nwk_MAX_DATA_RETESS_1),对于默认值,该公式为(3+1) x (2+1), 等于  12.

    此致、
    Ryan

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

    非常感谢、这是非常有用的信息!

    我还有另一个问题。

    在 mac_cfg.c 中

    {offsetof (macPib_t、maxFrameTotalWaitTime)、sizeof (uint16)、0x00、0xFF}、           /* MAC_MAX_FRAME_RESPONSE_TIME */

    这意味着参数的最大值为255。

    但在同一文件中、结构为"const macPib_t macPibDefaults{..}"

    使用以下参数初始化:Mac_DEFAULT_FRAME_WAIT_TIME、               // maxFrameTotalWaitTime *

    mac_api.h 中的默认值为8000

    #define MAC_DEFAULT_FRAME_WAIT_TIME            8000   //默认 maxFrameTotalWaitTime 为50kbps 和5kbps *

    但是、由于最大值为0xFF (255)、因此值8000将不起作用、并降至255。

    我是否理解正确? 这是一个错误吗?

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

     与 eBeaconOrderNBPAN/MAC_EBEACON_ORT_NBPAN 相同、uint16的两个字节都用0xFF 填充、因此最大值为65535 (0xFFFF)。  不管怎样、最大值主要用于 uint8。  您可以在此 E2E 帖子中找到符号计算的说明。

    此致、
    Ryan

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

    参数

    {offsetof (macPib_t、transactionPersistenceTime)、sizeof (uint16)、0、0}、            /* MAC_TRANSACESS_Persistence_Time */

    默认值为1000

    0、0是否意味着没有限制?

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

    这意味着不会检查它们、如 macPibTbl 上方注释中所述  

    /* PIB access and min/max table.  min/max of 0/0 means not checked; if min/max are
     * equal, element is read-only
     */
    const macPibTbl_t macPibTbl[] =
    {

    此致、
    Ryan