CAN(Controller Area Network)总线是一种广泛应用于汽车电子、工业自动化和嵌入式系统的通信协议,因其高效、可靠和实时性而备受青睐。飞思卡尔(现为NXP半导体的一部分)的S12系列微控制器集成有MSCAN模块,使得在这些微控制器上实现CAN通信变得简便。
CAN技术规范:
CAN协议主要由ISO 11898定义,分为CAN2.0A和CAN2.0B两个版本。CAN2.0A支持标准ID(11位),而CAN2.0B增加了扩展ID(29位),提供了更丰富的地址空间。CAN协议的核心特性包括:
1. **报文传输和帧结构**:CAN数据帧包含帧起始、仲裁场、控制场、数据场、CRC场、应答场和帧结束。仲裁场决定了报文的优先级,基于ID最小值的优先级最高原则。此外,还有远程帧用于请求数据,错误帧用于检测和报告网络错误,过载帧用于同步网络节点。
2. **位定时与同步**:CAN通信的位时间由同步段、相位段1、相位段2和传播段组成,确保了在不同的物理媒介上传输时的精确同步。
3. **错误处理**:CAN协议具有强大的错误检测和恢复机制,包括错误标志、错误计数和故障界定,以确保网络的稳定性和可靠性。
4. **多主机仲裁**:CAN网络上的多个节点可以同时发送数据,通过仲裁过程确定数据传输的优先级。
5. **报文滤波与优先级**:CAN节点可以通过报文滤波器筛选接收的数据,同时,基于ID的优先级设计允许优先处理关键数据。
飞思卡尔S12的MSCAN模块:
飞思卡尔S12微控制器集成的MSCAN模块是一个硬件实现的CAN控制器,它遵循CAN2.0A/BCAN2.0B标准。该模块的特性包括:
1. **兼容性**:完全符合CAN2.0协议,支持标准和扩展帧格式。
2. **灵活性**:可以编程设置位速率,最高可达1Mbps。
3. **数据处理能力**:支持0到8字节的数据长度,满足不同应用场景的需求。
4. **错误管理**:具备错误中断请求,能够及时响应网络错误。
5. **高效通信**:拥有55个FIFO(First In First Out)机制,用于接收和发送数据,提高通信效率。
6. **唤醒功能**:支持低功耗模式,通过唤醒中断请求实现从休眠状态快速恢复通信。
在实际应用中,使用HCS12微控制器设计嵌入式系统时,需要配置MSCAN模块的内存映射和寄存器,包括CAN时钟设置、波特率预分频、滤波器配置等,以实现有效的CAN网络通信。同时,通过示例中的自环通信实例,开发者可以了解并测试CAN通信的基本功能,确保系统在实际部署前的正确性。