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.

[参考译文] TMS570LS1224:需要使用 Halcogen 中的接受过滤在单个邮箱中配置多个消息 ID

Guru**** 2387080 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/1357808/tms570ls1224-need-to-configure-multiple-message-id-in-single-mailbox-using-acceptance-filtering-in-halcogen

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

您好!  

我需要使用接受过滤在同一消息框中接收多个消息 ID (0x123、0x120)。 下面我附上了一条 RX 消息的 Halcogen 配置- 0x123 (消息框2)。如何在 Halcogen 中配置具有相同消息框的两个消息 ID。

谢谢,

此致、

Shanfiya H



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

    尊敬的  Shanfiya:

    您可以参考以下主题:

    (+) TMS570LC4357:如何设置 CAN 的验收滤波、以及需要配置哪些寄存器-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    我在这里清楚地说明了如何在滤波中设置屏蔽位。

    --
    谢谢。此致、
    Jagadish。

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

    您好!  

    感谢您提供的信息。 我将在 can_init 函数中编写用于验收过滤的表并更新表信息。

    在表中,第1列是 maskvalue,第2列是 CanId,第3列是 DLC,第4列是 Direction。

     但问题是、我可以从0X120接收到0x12F 的消息、也可以从0X331接收消息。 如何拒绝此表配置的 CAN ID 之外的 ID。

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

    尊敬的 Shanfiya:

    我不明白您确切地想对配置的每一行执行什么操作、但我将说明该配置会发生什么情况。

    我再次从我之前的线程中向您指出以下数据:

    如果一个屏蔽位1意味着标识符的相应位将被用于接受过滤、如果您写入0意味着按摩标识符中的相应位将不会被用于接受过滤。

    基于上述数据、例如、如果你将0x120配置为消息框1的屏蔽位、那么这意味着只有你的原始 ID 的位5和位8将被用于验收过滤、并且将忽略它们的其余部分。

    这意味着、当您将 ID 配置为0x128时、ID 中的第5位是什么、它是1、对吧? 相似地、此消息 ID 中的第8位也是1。 因此、如果接收到一条消息、则只会验证这两位匹配、如果这两位匹配、则会将其移至此消息框。

    因此、您的考核将如下所示:

    如果接收到的消息 ID 字段设置了第5位和第8位、则它将忽略所有其他位并将相应的消息移入框中。

    我不知道您要做什么、我将根据掩码值提供一些示例。

    示例1:

    屏蔽值= 0x1FFFFFFF

    ID 值= 0x128

    在这种情况下、只有0x128会被移至消息框。

    示例2:

    屏蔽值= 0x1FFFFFFE

    ID 值= 0x128

    在这种情况下、 ID 的位0将被忽略、并且所有其他 ID 位都应匹配、这意味着0x128和0x129将移动到消息框中、并且此处所有其他 ID 都将被忽略。

    示例3:

    屏蔽值= 0x1FFFFFFC

    ID 值= 0x128

    在这种情况下、 0位和 ID 之一将被忽略、并且所有其他 ID 位应该匹配、这意味着0x128 到0x12B 将被移动到消息框、所有其他 ID 都将在此处被忽略。

    示例4:

    屏蔽值= 0x1FFFFFF8

    ID 值= 0x128

    在这种情况下、  ID 的0位到2位将被忽略、并且所有其他 ID 位应该匹配、这意味着0x128 到 0x12F 将被移动到消息框、所有其他 ID 将在这里被忽略。

    示例5:

    屏蔽值= 0x1FFFFFF0

    ID 值= 0x128

    在这种情况下、  ID 的0到3位将被忽略、并且所有其他 ID 位应该匹配、这意味着0x120到0x12F  将被移动到消息框、所有其他 ID 将在这里被忽略。

    这就是验收过滤的工作方式、因此您可以在此基础上进行配置并进行检查。

    --
    谢谢。此致、
    Jagadish。