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.

[参考译文] CC113L:在接收第一个位置没有长度字节的可变长度数据包时、如何触发中断?

Guru**** 2511985 points
Other Parts Discussed in Thread: CC113L

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1558249/cc113l-how-to-trigger-an-interrupt-when-receiving-variable-length-packets-without-length-byte-in-the-first-position

部件号:CC113L


工具/软件:

您好:

我正在使用 CC113L
我的用例如下:

  • 我收到的射频帧 电感器

  • 帧的长度不包括在第一个字节中 (因此我不能使用 CC113L 的“可变数据包长度“模式)。

我想做的事情:

  • 将 CC113L 配置为 当接收到完整帧时触发中断(检测到曼彻斯特违例) 尽管我事先不知道它的长度。

  • 能够从 RX FIFO 可靠地收集不同大小的帧。

问题:

  1. 是否有办法将 CC113L 配置为在没有长度字段的情况下自动检测数据包的结束?

  2. 如果没有、则为推荐使用的方法 无限数据包长度模式 并在 MCU 中实现帧结束检测(使用超时或最大大小)?

  3. 有任何问题吗 最佳实践 来自 TI 的代码、用于处理事先不知道数据包长度的协议?

非常感谢您的帮助!

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

    如果长度不在数据包的第一个字节中、您有两个选项。

    1) 如果您知道没有数据包的长度超过 x 字节(其中 x 为 255 或更小)、则可以将器件编程为使用固定数据包长度模式。

    如果使用此方法、并且 x 长于 64 字节、以便完整的数据包不能放入 RX FIFO 中、则需要使用与 RXFIFO/RXFIFO 阈值关联的 GDO 信号、告诉 MCU 何时开始读取 FIFO、以避免 RXFIFO 溢出

    接收到最大字节数后、您 需要浏览接收到的数据以手动查找数据包结束(曼彻斯特违例)

    2) 如果数据包可以超过 255 字节、则需要使用无限数据包模式。

    您将需要使用与 RXFIFO/RXFIFO 阈值相关的 GDO 信号在接收期间读取数据、当检测到曼彻斯特违例时、通过发出边框选通手动退出 RX 模式。

    如果您的完整数据包不适合 RXFIFO、并且您需要在 RX 期间读取数据、请注意勘误表注释中所述的 RX FIFO 错误:

    https://www.ti.com/lit/swrz038

    BR

    Siri

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

    感谢您的回答。  

    如果我使用您的方法 1) 并将数据包的长度设置为 x 字节、但我收到的某些数据包小于 x 字节、CC113L 在收到其中一个数据包(长度< x)时不会产生任何中断、因此我将无法读取数据包、是这样吗?

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

    如果您使用固定的数据包长度并将长度设置为 x、对讲机将始终接收 x 字节(即使您的数据包较短)对讲机不知道什么属于您的数据包、它在同步后仅接收 x 字节(并在接收 x 字节后为您提供中断)、 而由应用程序检查接收到的数据确实会找到数据包的末尾、确定接收到的数据属于您发送的数据包的内容、以及之后接收到的噪声。

    如果 X 大于 RX FIFO 大小、则您需要在接收期间使用 FIFO 中断来读出 FIFO、以避免溢出。