FlexCAN模块初始化与CAN协议详解
需积分: 44 185 浏览量
更新于2024-08-08
收藏 778KB PDF 举报
"初始化/应用信息-pxi总线接口协议"
FlexCAN模块是微控制器中用于实现CAN(Controller Area Network)协议的一个通信控制器,特别针对CAN2.0B规范进行设计。CAN协议广泛应用于汽车电子系统,因为它具有实时性、抗干扰性、成本效益和带宽管理等优点。FlexCAN模块具备多个特性,如支持标准和扩展帧格式、可编程的波特率以及多种错误处理机制。
48.5.1 FlexCAN模块初始化序列
初始化FlexCAN模块通常涉及以下几个步骤:
1. **硬件复位**:MCU级别的硬件复位将重置所有内存映射寄存器,这个过程是异步的。
2. **软件复位**:MCU级别的软件复位同步复位特定内存映射寄存器,它涉及到内部的请求/确认过程,可能需要一定时间来完成。复位期间,SOFT_RST位保持置位,软件可以通过轮询此位来判断复位是否完成。值得注意的是,软件复位不适用于任何低功耗模式时钟关闭的情况。
3. **MCR寄存器的SOFT_RST位**:设置此位也会触发一个与软件复位相同的效果,复位过程同样需要时间来传播其影响。
FlexCAN模块的初始化还可能包括配置波特率、设置接收和发送缓冲区、定义接收掩码寄存器、启用接收队列以及设定中断和错误处理机制。波特率的设置通常通过可编程的CAN协议接口时钟源完成,它可以是总线时钟或者是外部晶振。
48.1.1 FlexCAN模块的组成部分
FlexCAN模块由多个子模块构成,包括:
- **消息缓冲区**:用于存储发送和接收的消息帧,其数量取决于具体MCU的配置。
- **Rx全局掩码寄存器和Rx私有掩码寄存器**:用于筛选接收到的消息,确保只有符合特定条件的数据帧被接收。
- **Rx先进先出队列**:自动管理接收消息的存储和处理。
- **Rx队列标识过滤器**:帮助确定哪些消息应被接收并放入队列。
48.1.2 FlexCAN模块的主要特点
FlexCAN模块的特点包括:
1. **CAN2.0B协议的完整支持**:涵盖标准数据帧和扩展数据帧,数据长度可变。
2. **灵活的消息缓冲区**:每个缓冲区可以作为发送或接收缓冲区,并能适应不同帧格式。
3. **接受掩码控制**:每个缓冲区有自己的接受掩码,增加了接收的灵活性。
4. **全功能接受队列**:自动处理内部指针,最多可存储6个帧。
5. **传输中止能力**:允许在传输过程中停止发送。
6. **可编程时钟源**:支持总线时钟或外部晶振。
7. **回环模式**:用于自测试。
8. **优先级机制**:可通过ID、缓冲区数量或优先级进行设置。
9. **时间戳机制**:基于16位自由运行定时器,用于时间同步。
10. **全局网络时间**:通过特殊帧同步网络时间。
11. **中断掩码**:允许选择性地屏蔽中断。
12. **独立传输媒介**:需要外部收发器进行物理层通信。
13. **优先级高的信息处理**:快速响应高优先级信息。
FlexCAN模块是实现CAN通信的核心组件,其丰富的功能和灵活的配置选项使其成为嵌入式系统中实现高效、可靠的CAN通信的关键。在初始化和应用中,理解并正确操作FlexCAN模块的各项特性和功能至关重要。
2013-09-08 上传
2008-11-24 上传
2020-12-13 上传
2009-12-18 上传
384 浏览量
点击了解资源详情
点击了解资源详情
点击了解资源详情
2024-10-25 上传
2024-11-15 上传
陆鲁
- 粉丝: 26
- 资源: 3884
最新资源
- Java集合ArrayList实现字符串管理及效果展示
- 实现2D3D相机拾取射线的关键技术
- LiveLy-公寓管理门户:创新体验与技术实现
- 易语言打造的快捷禁止程序运行小工具
- Microgateway核心:实现配置和插件的主端口转发
- 掌握Java基本操作:增删查改入门代码详解
- Apache Tomcat 7.0.109 Windows版下载指南
- Qt实现文件系统浏览器界面设计与功能开发
- ReactJS新手实验:搭建与运行教程
- 探索生成艺术:几个月创意Processing实验
- Django框架下Cisco IOx平台实战开发案例源码解析
- 在Linux环境下配置Java版VTK开发环境
- 29街网上城市公司网站系统v1.0:企业建站全面解决方案
- WordPress CMB2插件的Suggest字段类型使用教程
- TCP协议实现的Java桌面聊天客户端应用
- ANR-WatchDog: 检测Android应用无响应并报告异常