工具/软件:
我目前正在使用 CC1311P3 简化版原理图 uartbridge 示例。 我已经修改了射频内核以在其下运行 连续 RX 模式 使用runcmd rx/rxAdv命令。 在此设置中、我使用读取传入的射频数据 部分缓冲区读取 在每个 RX_DONE 中断时(63 字节)。
-
系统配置为 连续射频接收 。
-
传入数据存储在中 循环缓冲器 。
-
在每个 RX_DONE 中断时、我都想 通过 UART 发送接收到的数据 使用。
UART_write -
但是、由于连续 RX 模式、我观察到这一点 不会切换到主线程的上下文 、并且我无法直接在 RX 中断中通过 UART 发送数据。
-
为了处理这个问题、我创建了一个 软件中断 (SWI) 和 A 时钟计时器回调 。
-
计时器定期发布 SWI、在这里我检查循环缓冲区并启动
UART_write。 -
UART 的工作频率 75000 波特 、基于 DMA 的典型写入需要 63 字节 6ms (使用 DMA 完成回调测量)。
-
RX_DONE 中断周期约为 26.7ms 。
观察到的行为:
-
当时钟计时器配置为采用时 35ms 或 45ms 间隔 我观察到 数据完整性问题 在 UART 输出中(数据丢失或损坏)。
-
但是、如果我将计时器间隔增加到 300ms 、则 UART 输出数据完整性正确。
-
何种应用 时间敏感 而且我们不能承受 UART 写入之间如此长的延迟。
什么是 推荐/最佳方法 抖动要大得多 连续射频 RX 数据接收 和 及时的 UART 传输 (没有数据丢失或损坏)、前提是:
-
射频内核正在运行 连续 RX 模式 。
-
UART 写入需要频繁发生 (~每 26ms–35ms)。
-
射频内核引起的上下文切换或延迟似乎会阻止及时的 UART 运行。
有任何关于改善数据完整性、优化 UART 写入时序或结构调整以满足实时要求的建议会非常有用?
谢谢、
专题 B