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.

[参考译文] TMS320F28075:CAN 通信使用

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1194179/tms320f28075-can-communication-usage

器件型号:TMS320F28075
主题中讨论的其他器件:C2000WARE

大家好、

客户有一些问题需要您的帮助:

在 CAN 通信中、有几个名词、它们在不同的地方是不同的、这有点令人困惑。

28075中有两个完全相同的 CAN 模块、CAN A 和 CAN B。CAN A 和 B 中有32个邮箱、邮箱也称为按摩对象。  当使用时、这32个邮箱需要从0到31进行编号(如果它们没有按顺序设置、例如设置33的邮箱、这是错误的?) 这种理解是否正确?

有各种类型的标识符、例如 CAN 标识符、消息标识符、CAN ID 和消息 ID (它们是前两个的短写代码、对吧?)、并且有  MSGID、MsgVal、 消息程序对象 ID、 消息程序对象 ID 号、如何区分它们? 标识符和 ID 是相同的吗?

每个节点设备是否需要 ID、每个节点设备是否需要 ID、每个节点 ID 是否需要邮箱的 ID、以及每个节点邮箱发送的消息是否需要 ID?  

CAN 模块内有两个优先级比较: 当来自不同节点的多个器件同时向总线发送数据时、消息标识符用于确定优先级、邮箱编号用于在同一器件需要传输多个数据时确定优先级。 不知道这是否正确?  

在当前例程中、固定消息标识符的数据主要通过 CANA 发送、而通过 CANB 接收相同消息标识符的数据。 这相对简单、因为消息标识符是相同的。 但是、在实际应用中、需要传输几种不同类型的变量数据、因此为每个数据设置唯一的消息标识符是很自然的。 这是接收器需要使用消息标识符来确定接收到的数据是什么变量的时间。 如何设置此多消息标识符以传输多个数据? 此时是否有可引用的例程?  

6.CAN_setupMessageObject 函数用于设置哪个邮箱发送哪个 MSGID 数据、那么如何实现发送多个不同 MSGID 数据的同一邮箱? 连续使用多个 CAN_setupMessageObject 函数是否不会导致以后覆盖上一个函数?  

CAN_setupMessageObject (CANB_BASE、RX_MSG_OBJ_ID、0x955555、
CAN_MSG_FRAME_EXT、CAN_MSG_OBJ_TYPE_RX、0、
CAN_MSG_OBJ_RX_INT_ENABLE、MSG_DATA_LENGTH);

您可以帮助检查此案例吗?

此致、(&H)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="534511" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1194179/tms320f28075-can-communication-usage ]1.28075中有两个完全相同的 CAN 模块、CAN A 和 CAN B。CAN A 和 B 中都有32个邮箱、邮箱也称为按摩对象。  当使用时、这32个邮箱需要从0到31进行编号(如果它们没有按顺序设置、例如设置33的邮箱、这是错误的?) 这种理解是否正确?[/引述]

    F28075中有两个 CAN 模块。 两个模块完全相同彼此完全独立。 消息对象(或邮箱)的编号为1至32 (而不是0至31)。 此编号是固定的。 没有邮箱33、34等

    [引用 userid="534511" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1194179/tms320f28075-can-communication-usage。存在各种标识符、例如 CAN 标识符、消息标识符、CAN ID 和消息 ID (它们是前两个字符的缩写、对吗?)、并且有  MSGID、MsgVal、 报文器对象 ID、 报文器对象 ID 号、如何区分它们? 标识符和 ID 是相同的?

    没有“CAN 标识符”或“CAN ID”之类的内容。 存在“消息标识符”、“消息 ID”、“MSGID”或“ARB ID”等内容。 它们都是相同的、并引用帧中的标识符。 “消息对象 ID”或“消息对象 ID 号”是指使用的消息对象(1到32)。 不应将其与前面解释的“消息 ID”混淆。

    “ID”只是“标识符”的简短形式

    [引用 userid="534511" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1194179/tms320f28075-can-communication-usage。每个节点设备是否需要 ID、每个节点设备是否需要 ID、每个节点 ID 是否需要邮箱的 ID、每个节点 ID 是否需要 ID、以及每个节点邮箱发送的消息是否需要 ID?  [/报价]

    每个报文对象(非节点)都需要一个 ID。 在总线上传输的任何消息都需要一个标识符。

    [引用 userid="534511" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1194179/tms320f28075-can-communication-usage ]4.CAN 模块内有两个优先级比较: 当来自不同节点的多个器件同时向总线发送数据时、消息标识符用于确定优先级、邮箱编号用于在同一器件需要传输多个数据时确定优先级。 不知道这是否正确?  [/报价]

    是的、您的理解是正确的。 如果不同的节点试图同时发送数据、那么哪一个节点赢得总线取决于传输帧的 MSGID。 在给定节点中,如果同时标记了多个报文对象进行传输,则报文对象的传输顺序取决于“报文对象 ID 号”

    [引用 userid="534511" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1194179/tms320f28075-can-communication-usage ]5.在当前例程中,固定消息标识符的数据主要通过 CANA 发送,而通过 CANB 接收同一消息标识符的数据。 这相对简单、因为消息标识符是相同的。 但是、在实际应用中、需要传输几种不同类型的变量数据、因此为每个数据设置唯一的消息标识符是很自然的。 这是接收器需要使用消息标识符来确定接收到的数据是什么变量的时间。 如何设置此多消息标识符以传输多个数据? 此时是否有可引用的例程?  [/报价]

    C2000ware 示例只是向您展示如何发送和接收的起点。 使用示例中显示的方法、您可以根据需要频繁地重新配置发送对象(即、更改 MSGID)。 您还可以将接收对象配置为仅接收一个 MSGID、一组 MSGID 或任何 MSGID,最后两个选项需要消息过滤。 请参阅 www.ti.com/lit/SPRACE5、其中我展示了一个滤波示例。

    [引用 userid="534511" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1194179/tms320f28075-can-communication-usage ]6..CAN_setupMessageObject 函数用于设置哪个邮箱发送哪个 MSGID 数据、那么如何实现发送多个不同 MSGID 数据的同一邮箱? 连续使用多个 CAN_setupMessageObject 函数是否不会导致以后覆盖上一个函数?  [/报价]

    每次要更新 MSGID 时都需要执行该函数。 是的、它将覆盖以前的值。

    TRM 章节介绍了 MCU 中的 CAN 协议实现。 即、它解释了各种寄存器/位的功能。 但是、它并未解释协议本身。 有关协议信息、请参阅以下精彩视频:

    https://training.ti.com/automotive-can-overview

    https://training.ti.com/ti-precision-labs-canlinsbc-can-and-can-fd-protocol?context=1139747-1138099-1139707-1138111

    https://training.ti.com/ti-precision-labs-canlinsbc-can-and-can-fd-overview?context=1139747-1138099-1139707-1138109

    https://training.ti.com/ti-precision-labs-canlinsbc-can-physical-layer?context=1139747-1138099-1139707-1138110