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.

[参考译文] TMS570LS1114:CAN 通信问题

Guru**** 2392095 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1087428/tms570ls1114-can-communication-issue

部件号:TMS570LS1114

大家好,团队

客户提出的问题可能需要您的帮助:

CAN 通信,CAN ID 可以设置为11位或29位。 使用11位 CAN ID 时通信良好。 但是,一旦使用了29位 CAN ID,接收到数据时就会出现错误接收。

错误地将来自11位末尾相同 CAN ID 的信息接收到 CANID 中。 例如:ID (0x0CF094A7)和 ID (0x0CFB74A7)的最后11位都是4A7。 因此,0x0CF094A7的数据可能被误解为数据读取0x0CFB74A7。 客户还测试了,只要 ID 11位的末尾是4A7,就会被解释为0x0CFB74A7删除 ID (0x0CFB74A7),并且正确接收 ID (0x0CF094A7)中的数据。

客户想知道原因是什么以及如何解决。 请帮您检查此案例? 谢谢。

此致,

樱桃

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

    你好,Cherry,

    具有11位 ID 和29位 ID 的消息可以在 CAN 总线上共存。 11位标识符的优先级高于29位标识符(前11位相同)。

    如果同时传输2条 ID 为0x0CF094A7和 ID 为0x0CFB74A7的消息,并且两条消息都使用扩展 ID (IDE=1), 则 ID=0x0CF094A7应赢得仲裁。 如果 ID 为0x0CFB74A7的消息使用标准 ID (IDE=0),则此消息将赢得仲裁。

    请检查这两条消息的 IDE 值

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

    您好,王

    感谢你的帮助。 请让我澄清:

    不存在同时具有11位 ID 和29位 ID 的消息;不会同时发送 ID=0x0CF094A7和 ID=0x0CFB74A7的消息。

    情况类似:当发送0x0CF094A7消息,但未发布0x0CFB74A7消息时,0x0CF094A7消息被解释为0x0CFB74A7消息。

    谢谢,此致,

    樱桃

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

    你好,Cherry,

    假设 CAN 网络中有两个节点:节点 A 和节点 B。节点 A 传输 ID 为0x0CF094A7的消息。 节点 B 接收 CAN 消息,两个邮箱配置为接收消息: 一个邮箱(假设邮箱1)用于0x0CFB74A7的消息 ,一个邮箱(邮箱2)用于标识为0x0CF094A7的消息。 但节点 B 将收到的 ID 为0x0CF094A7的消息存储到邮箱1,而不是邮箱2。 我的理解是否正确?

    当传入消息的仲裁和控制位(标识符+ IDE + RTR + DLC) 完全转移到 CAN 核心的移位寄存器中时,消息处理程序开始扫描 消息 RAM 以查找匹配的有效消息对象(首先是 mailbox1,然后是 mailbox2):

    1. 验收筛选单元加载 CAN 核心移位寄存器 的仲裁位:0x0CF094A7
    2. 然后,消息邮箱1的仲裁和掩码位( ID=0x0CFB74A7,掩码=?) 加载到验收过滤单元中,并与#1中的仲裁位进行比较   

        3.如果 mask=0x7FF,则只有前11位用于接受筛选,因此匹配发生,消息将被复制到邮箱1。 扫描已停止。

        4.如果掩码=0xFFFFFFF,则所有29位都用于验收筛选, 0x0CF094A7与 mailbox1 (0x0CFB74A7)的 ID 不匹配。 将扫描 mailbox2。

        5,与3号相同

      节点 B (ID 和掩码)的 mailbox1和 mailbox2的配置是什么?