<3>字节6~13为数据帧的实际数据,远程帧时无效。
2 系统总体方案设计
该系统以摩托罗拉16位单片机MC9S12DP256为中央控制器,并含有CAN通信模块、LIN通信模块、数据采集模块及数据存储模块等。发动机及底盘部分通过CAN总线与中央控制器相连,仪表板部分及车身模块通过LIN总线与中央控制器相连,本文重点介绍的是CAN通信模块的设计。
2.1 CAN通信模块硬件设计
中央控制器MC9S12DP256内部带有5路CAN控制器,msCAN是Motorola Scaleable CAN的缩写,而msCAN12模块则是在MC9S12系列MCU上的具体实现。它服从CAN2.0A/B 协议,集成了除收发器外CAN总线控制器的所有功能。
msCAN12基本特点如下[2]:
(1) 模块化结构
(2) 实现了CAN2.0A/B协议,支持标准和扩展帧格式
(3) 支持远程请求帧
(4) 双缓冲接收存储方案
(5) 带有本地优先级排队机制的三缓冲区发送存储方案
(6) 可屏蔽、可重组标识符验收过滤器
(7) 内置低通滤波器的可编程唤醒功能
(8) 可编程环路检测模式支持模块自检
(9) 时钟源可程控选择CPU总线时钟或晶体振荡器时钟
采用msCAN12的CAN总线系统如图1所示:
图1 含有MC9S12及其他节点的典型CAN总线网络系统
CAN收发器采用摩托罗拉的CAN通信物理接口芯片MC33388,它的主要特点是:
● 静态电流低至15uA;
● 波特率范围为10~125 kbps;
● 发生总线错误时可自动调整至单线模式,错误消失后可自动恢复正常状态;
● 支持单总线传输模式;
● 总线对地、电源具有短路保护功能;
● 具有总线驱动器过热保护功能;
● 支持无遮蔽双绞线传输;
● 无功节点不影响总线状态;
● 工作温度范围为-40℃~125℃。
MC33388与MCU应用电路如图2所示: