KEA芯片MSCAN报文接收逻辑梳理

32bit滤波器组

  1. 第一个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.

KEA芯片MSCAN报文接收逻辑梳理

每当接收到报文时,会检测该报文是否能够通过过滤,同时会被放入激活的RxBG中。

KEA芯片MSCAN报文接收逻辑梳理

当接收到一帧有效报文时,MSCAN会将报文从RxBG中放入到FIFO中,设置RXF标志,并且设置中断。此刻用户需要从RxFG中读取报文并且将RXF标志重置,清除中断,释放RxFG缓冲区。接下来依次接收。

(仅供参考,详细介绍参考芯片使用手册)

上一篇:常见标签及使用


下一篇:「Kubernetes」- 日志 @20210414