首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

STM32之CAN ---CAN ID过滤器分析(2)

STM32之CAN ---CAN ID过滤器分析(2)

2.5 过滤器优先级规则                                                                                根据过滤器的不同配置,有可能一个报文标识符能通过多个过滤器的过滤;在这种情况下,存放在接收邮箱中的过滤器匹配序号,根据下列优先级规则来确定:
● 位宽为32位的过滤器,优先级高于位宽为16位的过滤器
● 对于位宽相同的过滤器,标识符列表模式的优先级高于屏蔽位模式
● 位宽和模式都相同的过滤器,优先级由过滤器号决定,过滤器号小的优先级高                       
                                                        如下图:                       
                                                                               
                                                                                                                                        图3                       
                                                                       如上图,在接收一个报文时,其标识符首先与配置在标识符列表模式下的过滤器相比较;如果匹配上,报文就被存放到相关联的FIFO中,并且所匹配的过滤器的序号(这时为4)被存入过滤器匹配序号中。如同例子中所显示,报文标识符跟#4标识符匹配,因此报文内容和FMI4被存入FIFO。                       
                                                                      如果没有匹配,报文标识符接着与配置在屏蔽位模式下的过滤器进行比较。
              如果报文标识符没有跟过滤器中的任何标识符相匹配,那么硬件就丢弃该报文,且不会对软件有任何打扰。                       
                                                        3 与过滤器相关的寄存器                                                                                3.1 CAN 过滤器主控寄存器 (CAN_FMR)                                                                                地址偏移量: 0x200                       
                                                        复位值: 0x2A1C 0E01                       
                                                        注: 该寄存器的非保留位完全由软件控制。                       
                                                                               
                                                                                                                                                                            图4                       
                       
                                               
                                                                位31:1                                                                                                                        保留位,强制为复位值。                                                       
                                                                位0                                                                                                                        FINIT : 过滤器初始化模式
针对所有过滤器组的初始化模式设置。
0: 过滤器组工作在正常模式;
1: 过滤器组工作在初始化模式。                                                       
                                                                                3.2 CAN 过滤器模式寄存器 (CAN_FM1R)                                                                                地址偏移量: 0x204
复位值: 0x0000 0000
注: 只有在设置CAN_FMR(FINIT=1),使过滤器处于初始化模式下,才能对该寄存器写入。                       
                                                                               
                                                                                                                                                             图5                       
                       
                                               
                                                                位31:14                                                                                                                        保留位,硬件强制为0                                                       
                                                                位13:0                                                                                                                        FBMx : 过滤器模式
过滤器组x的工作模式。
0: 过滤器组x的2个32位寄存器工作在标识符屏蔽位模式;
1: 过滤器组x的2个32位寄存器工作在标识符列表模式。                                                       
                                                                                3.3 CAN 过滤器位宽寄存器 (CAN_FS1R)                                                                                地址偏移量: 0x20C
复位值: 0x0000 0000
注: 只有在设置CAN_FMR(FINIT=1),使过滤器处于初始化模式下,才能对该寄存器写入。                       
                                                                               
                                                                                                                                                                      图6                       
                       
                                               
                                                                位31:14                                                                                                                        保留位,硬件强制为0                                                       
                                                                位13:0                                                                                                                        FSCx : 过滤器位宽设置
过滤器组x(13~0)的位宽。
0:过滤器位宽为2个16位;
1:过滤器位宽为单个32位。                                                       
                                                                                3.4 CAN 过滤器FIFO关联寄存器 (CAN_FFA1R)                                                                                地址偏移量: 0x214
复位值: 0x0000 0000
注: 只有在设置CAN_FMR(FINIT=1),使过滤器处于初始化模式下,才能对该寄存器写入。                       
                                                                               
                                                                                                                                                                 图7                       
                       
                                               
                                                                位31:14                                                                                                                        保留位,硬件强制为0。                                                       
                                                                位13:0                                                                                                                        FFAx : 过滤器位宽设置
报文在通过了某过滤器的过滤后,将被存放到其关联的FIFO中。
0:过滤器被关联到FIFO0;
1:过滤器被关联到FIFO1。                                                       
继承事业,薪火相传
返回列表