1. Block Diagram
2. 数据字节进入CAN Core的顺序
3. CPU对于邮箱(Message RAM)数据的读取
CPU把CAN 邮箱(Message RAM中的Message objects)中的数据读取出来分几步?
大致理解为2步
NOTE: 对于Message RAM的读/写CPU都无法直接操作(Test Mode除外),都要借助IFx(接口寄存器)来间接读写.
过程分析
Message RAM =读取数据=> Interface Reg
补充:
Reception of Data Frames
接收到数据并读取Message object数据后CPU应该reset the NewDat bit.
4. Message RAM 和 CPU的数据传输
5. 中断
6. Module Initialization
NOTE: CAN模块提供了3个接口寄存器,IF1/IF2可以对Message RAM进行读写,IF3对于Message RAM只读。
因为IF1和IF2都可以对Message RAM进行读写,所以比较好的做法是:
一个专门用来写一个专门用来读
补充:
7. CAN_ES.LEC 的复位机制
8.数据发送过程分析
9. 紧急记录
-
CAN数据发送不出去可能是因为中断标志没有清除…
比如将发送中断使能
那么在中断中需要将对应的标志位清零
-
CAN数据接收过滤器屏蔽,所有帧都接收
将过滤器使能然后msgIDMask = 0