32bit滤波器组
- 第一个ID接收寄存器组(IDARn) 接收到的和用户定义做比较
扩展帧包括:REIDR0~REIDR3(对于扩展帧来说,所有四个接收和屏蔽寄存器被使用)
标准帧包括:RSIDR0~RSIDR1(只有CANIDAR0/1,CANIDMR0/1被运用)
2.第二个ID接收寄存器组(IDARn)
扩展帧包括:REIDR0~REIDR3(对于扩展帧来说,所有四个接收和屏蔽寄存器被使用)
标准帧包括:RSIDR0~RSIDR1(只有CANIDAR4/5,CANIDMR4/5被运用)
1.第一个屏蔽寄存器组(IDMRn)
在32bit过滤模式下:编程寄存器CANIDMR1,CANIDMR5中的最后3位为don’t care。
在16bit过滤模式下:编程寄存器CANIDMR1,CANIDMR3,CANIDMR5,CANIDMR7中的最后3位为don’t care。
2.第二个屏蔽寄存器组(IDMRn)
在32bit过滤模式下:编程寄存器CANIDMR1,CANIDMR5中的最后3位为don’t care。
在16bit过滤模式下:编程寄存器CANIDMR1,CANIDMR3,CANIDMR5,CANIDMR7 中的最后3位为don’t care。
接收到的报文ID与IDAR中用户设置的数据按位对比,其中IDMRn寄存器中按位决定了是否忽略对比结果。
关于Filter 0 hit解释。
The MSCAN sets these flags to indicate an identifier acceptance hit. The IDHIT indicators are always related to the message in the foreground buffer (RxFG). When a message gets shifted into the foreground buffer(RxFG) of the receiver FIFO the indicators are updated as well. |
每当接收到报文时,会检测该报文是否能够通过过滤,同时会被放入激活的RxBG中。
当接收到一帧有效报文时,MSCAN会将报文从RxBG中放入到FIFO中,设置RXF标志,并且设置中断。此刻用户需要从RxFG中读取报文并且将RXF标志重置,清除中断,释放RxFG缓冲区。接下来依次接收。
(仅供参考,详细介绍参考芯片使用手册)