280049_CAN 模块

本文详细阐述了CAN总线中CPU与MessageRAM之间的交互,包括数据帧的接收与读取,通过接口寄存器(IFx)进行读写操作,中断处理在数据传输中的作用,以及CAN模块初始化和数据发送过程。同时提到了数据过滤和错误处理机制,强调了中断标志的清除和接收过滤器的设置对数据通信的影响。
摘要由CSDN通过智能技术生成

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. 紧急记录

  1. CAN数据发送不出去可能是因为中断标志没有清除…
    比如将发送中断使能
    在这里插入图片描述
    那么在中断中需要将对应的标志位清零
    在这里插入图片描述

  2. CAN数据接收过滤器屏蔽,所有帧都接收
    在这里插入图片描述
    将过滤器使能然后msgIDMask = 0

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值