Advertisement

配置优化CAN滤波器参数

阅读量:

在配置CAN模块时,有一项无法回避的设置内容即为CAN过滤器。其主要功能是剔除不需要接收的CAN消息,实现这一目标的方式是依据CAN消息的ID进行筛选:
MASK & MSG_ID == MASK & FILTER_CODE
当接收到的CAN消息满足上述条件时,将被允许接收,否则将被丢弃。
其中MASK代表一个掩码,从上述等式可以看出,若MASK中某一位为0,则分别与MSG_ID和FILTER_CODE进行按位与运算后,对应位的结果必定为0。由此可知,在MASK中为0的位置上,无论MSG_ID和FILTER_CODE对应位为何值,都不会对表达式结果产生影响。因此,在MASK中为0的位置才是我们真正需要关注的部分;
FILTER_CODE必须与MASK配合使用。如果希望接收的MSG_ID中某一位必须为0,则对应的MASK位应设为1,而FILTER_CODE对应位需设为0;若希望接收的MSG_ID中某一位必须为1,则对应的MASK位应设为1,而FILTER_CODE对应位也需设为1。由此可以得出结论:FILTER_CODE实际上是在我们对所接收CAN消息ID中的某一位有特定要求(即设定为0或1)时所设置的具体值。

从以上分析可以看出,过滤器的配置与所有需要接收的消息ID中每一位的具体数值密切相关。因此可以得出以下三个结论:

  1. 若所有需要接收的消息ID中某一位均

全部评论 (0)

还没有任何评论哟~