一:转发链接
“目前网络上看到CAN过滤器讲得最详细的文章”
二:CAN过滤器是CAN总线系统中的一种设备,它用于过滤和选择总线上的数据帧。
在CAN总线系统中,每个设备都可以发送和接收数据帧。然而,在某些情况下,我们可能只对某些特定的数据帧感兴趣,而忽略其他数据帧。CAN过滤器可以帮助我们实现这一目标,可以过滤掉我们不感兴趣的数据帧,只接收我们感兴趣的数据帧。这可以减少CPU的处理负担,提高系统的效率。
此外,CAN过滤器还可以对接收到的数据帧进行过滤和排序。例如,如果多个设备同时发送数据帧,CAN过滤器可以根据优先级或ID对它们进行排序,确保数据帧按照正确的顺序被接收和处理。
总之,CAN过滤器是CAN总线系统中非常重要的设备,它可以帮助我们过滤掉不感兴趣的数据帧,提高系统的效率和可靠性。
三:CAN过滤器有两种模式:列表模式和掩码模式。
CAN过滤器的列表模式:
在列表模式下,过滤器配置了两个32位寄存器,用于存储指定的ID。具体来说,每个ID占用32位,这意味着过滤器可以接收与指定ID完全匹配的数据帧。
此外,列表模式还分为16位模式和32位模式。在16位模式下,每个ID占用16位,最多可以存储4个ID。这种模式通常用于标准帧,其中ID的高11位被存储。而在32位模式下,每个ID占用32位,最多可以存储2个ID。这种模式通常用于扩展帧,其中ID的高29位被存储。
CAN过滤器的掩码模式:
在掩码模式下,过滤器由两个单元组成:匹配ID和掩码。被过滤的ID号和匹配ID号会和掩码进行按位与运算后再进行匹配。只有对应的掩码为1的位才会被匹配。这意味着,通过指定一个掩码,可以过滤掉不符合特定条件的数据帧。
需要注意的是,过滤器的位宽也有所不同,包括16位过滤器和32位过滤器。每个过滤器可以绑定一个CAN接收中断,经过过滤器过滤的帧会进入该过滤器绑定的接收中断对应的FIFO。
————————————————
版权声明:本文为CSDN博主「嵌入式小宁」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_53592457/article/details/134986987
|