FlexCAN模块初始化与CAN协议详解

需积分: 44 101 下载量 195 浏览量 更新于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模块的各项特性和功能至关重要。