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.

[参考译文] AWR1843AOPEVM:AWR1843AOPEVM 上 MRR 中 CAN 数据传输的最大消息周期

Guru**** 2455560 points
Other Parts Discussed in Thread: AWR1843AOPEVM

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1493421/awr1843aopevm-maximum-message-periodicity-for-can-data-transfer-in-mrr-on-awr1843aopevm

器件型号:AWR1843AOPEVM

工具/软件:

您好:

我正在使用 AWR1843AOPEVM 并使用 中距离雷达(MRR)应用 通过 CAN 传输雷达数据。 MRR 应用为 CAN 数据传输提供两个选项:

  1. 传统 CAN 格式

  2. CAN FD 格式

我想了解 最大周期 可以在发送消息之间配置的主要部分 而不影响雷达在这两种选项下的性能。

谢谢

Mitesh  

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

    您好、Mitesh、

    为什么雷达性能取决于您尝试传输的 CAN 消息的周期?
    您需要根据点云生成的速率配置 CAN。 而不是相反的方向。

    此致、
    Saswat Kumar

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

    您好、Saswat、

    希望您做得好。

    mss_main.c该文件中Can_Transmit_Schedule、在函数内、数据包数据通过 CAN 发送。 我想在每次 CAN 消息传输之间实现1ms 的周期。

    您能指导我如何实现这一目标吗? 此外、如果您能告诉我确切地修改代码以实现该时序、我将不胜感激。

    感谢您的支持。

    此致、
    Mitesh

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

    您好、Mitesh、

    在应用中、我们以用户的身份发送 TLV、您是否希望每个 TLV 之间保持1ms?
    您只需在需要禁止任务的位置添加 TASK_SLEEP。

    此致、
    Saswat Kumar

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

    您好、saswat、

    是否希望每个 TLV 之间保持1ms?


    "没有

    我以500kbps 的速率在传统 CAN 帧上传输数据、并且需要每个 CAN 消息之间具有1ms 的周期。 我想确保在对 Can_Transmit_Schedule ()的一次调用中、多条 CAN 消息之间保持1毫秒的周期。

    谢谢
    Mitesh

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

    您好、Mitesh、

    这不是那么简单。
    您必须衡量您现在获得消息的频率、之后当您不想获取消息时、将任务置于休眠状态。
    您也可以将其创建为任务、并每1ms 调用一次、但这取决于您如何对任务进行编程及其优先级。

    此致、
    Saswat Kumar

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

    您好、Saswat、

    您必须衡量您现在获得消息的频率、之后当您不想获取消息时、将任务置于休眠状态。

    Task_sleep(1)while(len > 8U)循环内部添加了用于处理 CAN 经典帧传输的内容。 但是、进行此修改后、我观察到雷达停止通过 CAN 传统帧发送数据。

    有趣的是、Task_sleep(1)块处理 CAN FD (CANFD_MCANFrameType_FD)中已经使用了相同的方法、并且没有任何问题。

    为什么Task_sleep(1)在传统 CAN 传输路径中引入延迟会导致数据停止、而 CAN FD 路径中的相同延迟可以很好地工作而不影响传输?



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

    您好、Mitesh、

    这需要在你的最后通过了解当你添加睡眠它是否是填充缓冲区,那么它是否阻塞了另一条路径。 但同样、正如我提到的、实际为1ms 计时的最佳方法是实际编程每1ms 调用一次任务。

    此致、
    Saswat Kumar

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

    您好、Saswat Kumar、

    感谢您的意见。

    虽然我熟悉 RTOS 的一般概念、但我不熟悉 TI-RTOS。

    您能否分享任何文档、演示或示例、来说明如何使用 TI-RTOS API 创建任务并在1ms 内安排任务?

    提供参考信息确实有助于我了解在此特定平台上创建任务和配置计时的正确方法。

    感谢您的支持。

    此致、
    Mitesh

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

    您好、Mitesh、

    您正在使用的演示本身在示例中创建了一个任务。 您可以引用相同的结构并编写它。
    您可以从以下位置了解 TI RTOS: TI-RTOS-MCU 操作系统(OS)|德州仪器 TI.com

    此致、
    Saswat Kumar