280049_CAN 模块

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

### TI DSP 280049 CAN 编程与故障排除 对于TI的TMS320F28004x系列微控制器中的CAN模块编程,主要涉及初始化配置、消息发送接收以及错误处理等方面。该系列器件支持标准CAN协议(ISO 11898),并提供灵活的消息对象管理和中断机制来简化应用开发。 #### 初始化设置 为了使能CAN通信,在程序启动阶段需完成如下操作: - 配置系统时钟源及时序参数以满足波特率需求。 - 设置全局控制寄存器位,启用CAN功能。 - 定义接受滤波条件,决定哪些ID的数据包可以被接收到。 ```c // 假设已经定义好了相应的宏和结构体 void Init_CAN(void){ // ...其他必要的硬件初始化... // 设定CAN工作模式为正常模式 CANTBIM.bit.CCE = 1; /* Enable configuration change */ CANTCTL.bit.FRZ = 0; /* Unfreeze the CAN module */ CANTCTL.bit.INIT = 1; /* Enter initialization mode */ // 调整比特定时参数 (此处仅为示意) CANTBIT.reg = CalculateBitTiming(500);/* Set bit timing to achieve desired baud rate*/ // 启动CAN总线监听 CANTCTL.bit.INIT = 0; } ``` #### 数据传输流程 当准备向网络上传输数据时,应先装载待发信息至指定邮箱中,并触发发送请求;而接收方则通过查询特定状态标志得知是否有新到来的信息等待读取[^1]。 #### 故障诊断指南 针对可能出现的问题及其解决方案列举如下: - **无法建立连接**:确认物理层连线无误,检查终端电阻是否匹配规定阻值范围; - **丢帧现象严重**:调整节点间距离减少电磁干扰影响,适当降低通讯速率提高稳定性; - **报文解析失败**:仔细核对双方约定好的格式规范,确保一致性和兼容性。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值