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.

[参考译文] TMS570LC4357:CAN RTR 处理

Guru**** 2457760 points
Other Parts Discussed in Thread: HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1109167/tms570lc4357-can-rtr-handling

器件型号:TMS570LC4357
主题中讨论的其他器件:HALCOGEN

您好!

我们有一个项目、在该项目中、我们将实施 CAN 接口。 该接口的协议基于 PDO、SDOS 等的 CANopen 协议概念 我们有四个 TX PDO、我已在 HALCoGen 中将它们设置为四个单独的 TX 消息框、其中包含它们各自的 ID。 该协议要求器件通过发送全部四个 TX PDO 来响应在 TX PDO1上接收到的 RTR 帧。

但是、我注意到、RTR 在接收到 RTR 后由 CAN 模块自动处理、并且接收到的远程帧不会触发中断。 是否有任何方法可以禁用此自动响应并处理代码中的响应?

谢谢你。

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

    您好!

    远程帧的预期目的是请求从另一个节点传输数据。 远程帧会触发其他 CAN 节点开始传输
    匹配的数据帧。

    远程帧存储在接收对象而不是发送对象中。 设置接收对象的 TxRqst 位将导致带有接收对象标识符的远程帧的发送。  

    远程帧的报文对象应配置为“接收”(DIR=0):

    要接收远程帧、报文对象应配置为启用 RmtEN 的发送器。 在启用 RmtEN (远程)之前、应填写数据字段。

    当接收到远程帧时、必须考虑匹配报文对象的三种不同配置:

    27.8.8 TRM 远程帧的接收

    https://www.ti.com/lit/ug/spnu563a/spnu563a.pdf

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

    感谢您的快速响应。 我已经知道如何在 HALCoGen 中配置 RTR 支持。 我只是想知道我是否有办法接收 RTR 并通过代码自行处理它、而不是由 CAN 模块处理它。 您链接的部分非常有趣、具体而言:

    这是否会触发中断? 如果接收到远程帧将其置位、我希望我可以轮询 TxRqst、但它似乎会将其复位。

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

    是的、您可以接收远程帧并手动传输数据帧。

    如果 数据帧的 RmtEn = 0、则当接收到远程帧时、数据帧不会自动传输。