主题中讨论的其他器件:HALCOGEN
您好!
我需要使用接受过滤在同一消息框中接收多个消息 ID (0x123、0x120)。 下面我附上了一条 RX 消息的 Halcogen 配置- 0x123 (消息框2)。如何在 Halcogen 中配置具有相同消息框的两个消息 ID。
谢谢,
此致、
Shanfiya H
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.
您好!
我需要使用接受过滤在同一消息框中接收多个消息 ID (0x123、0x120)。 下面我附上了一条 RX 消息的 Halcogen 配置- 0x123 (消息框2)。如何在 Halcogen 中配置具有相同消息框的两个消息 ID。
谢谢,
此致、
Shanfiya H
尊敬的 Shanfiya:
您可以参考以下主题:
(+) TMS570LC4357:如何设置 CAN 的验收滤波、以及需要配置哪些寄存器-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛
我在这里清楚地说明了如何在滤波中设置屏蔽位。
--
谢谢。此致、
Jagadish。
尊敬的 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。