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.

[参考译文] TMS320F280049:F280049能否识别 ID 为0xFF 的 CAN 广播帧?

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/780189/tms320f280049-can-f280049-identify-can-broadcasting-frame-with-id-0xff

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

大家好、

通常、在 CAN 通信协议中、我们使用 ID 0xFF 来表示广播帧。

但是、如果标识符配置为实现点对点 CAN 通信。 然后广播帧(ID 0xFF)也将被阻止。

因此,我的问题是:如何同时接收点对点 CAN 通信和广播帧?

我是否必须使用2个邮箱并将一个设置为接收点对点帧、将另一个设置为接收广播帧?

谢谢!  

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

    您好、Weiki、

    CAN 通信协议不 会为广播帧分配特定 ID。  您是否可能使用 HLP (更高级别的协议) 来过滤 来自节点 ID 0xFF 的消息?

    谢谢、

    Joseph  

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

    您好、Joseph、

    我必须承认、这是我第一次学习 HLP。 这是280049中的一个函数吗? 请您分享更多详细信息吗?

    我们的目标是使280049能够实现点对点 CAN 通信(具有标识符和掩码)、并且能够接收广播 CAN 帧(ID:0xFF)。

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

    没问题。 在某些情况下、 大多数的用户可以使用额外的软件层来管理消息事务和过滤、从而使其终端应用的功能更高效、因为使用本机 CAN 协议可能需要他们编写几行代码来执行筛选特定的简单任务 ID。 例如、用户必须浏览寄存器文档以确定要对哪些位和寄存器进行编程以启用接受过滤。 为了简化此任务、用户可以使用 HLP、例如 CANopen (我们目前在 C2000中不支持该软件)或其他一些自行开发以执行此类任务的软件、以便简化 CAN 函数、而不是处理寄存器事务。 这就是我所说的。 也许您的应用中的 HLP 会设置接受过滤并阻止 CAN 接受来自节点 ID 0xFF 的消息。

    CAN 是一个多主机网络、在该网络中、一次可以有多个节点进行传输。 如果在两个节点之间正确定义了接受过滤、则可以将其用作点对点通信、因此这些节点将是唯一在其他节点执行任务时相互接收消息的节点。 在 F28004x 中、如果"umask"设置为"1"、并且"msask"位设置为忽略最后2个字节(如果消息 ID (0xFF00))、则节点可以接受 ID 0xFF、并且必须在寄存器级别对此进行编程。 不过、C2000Ware 中也提供了这种功能。 请参阅函数 CAN_setupMessageObject()。 您可以设置函数的参数(msgIDMask 和 flags)以正确设置接受过滤。

    希望这能让您了解验收滤波的工作原理。

    此致、
    Joseph