在 S32K144 上,对于过滤表中超过 1 个 ID 元素,我无法让 CAN Rx FIFO 正常工作。
我使用 R2022a 为 S32K144EVB (EVB) 创建了一个简单模型来演示该问题。在此模型中,CAN Rx FIFO ID 过滤器表包含 4 个有效的 CAN ID。当我将 EVB CAN 连接到 CAN-USB 接口 (PCAN-USB Pro) 并将 CAN 消息发送到 EVB 时,只有 ID 与过滤表的第一个元素匹配的消息才会被识别。不识别 ID 与过滤表中其他位置的元素匹配的消息。当然,我希望 ID 与过滤表中的任何元素匹配的消息都能被识别,而不管匹配元素在过滤表中的顺序如何。
为了证明过滤表元素的顺序很重要,我系统地将所有 ID 元素旋转到第一个位置,发现唯一识别的 Rx CAN 消息是那些 ID 与过滤表中的第一个元素匹配的消息。
我转向示例项目寻求指导。我寻找了一个在过滤表中有 2 个或更多有效 ID 的地方使用 CAN Rx FIFO 的地方。我不能。我找到了一个使用 Rx FIFO 的示例项目,但它在过滤器表 (flexcan_echo_s32k14x.mdl) 中只有一个 ID。
如何为 S32K144 设置模型,以便当过滤器表中有超过 1 个有效 ID 时 CAN Rx FIFO 正常工作?