摘要:首先研究CAN总线和SAE J1939协议,提出一种基于MC9S12HZ256微控制器的总线式汽车数字仪表解决方案。详细介绍SAE J1939协议的报文帧格式及应用层协议中发动机相关参数的定义,以及步进电机及其驱动和车速信号的处理方法。该数字仪表系统硬件平台由微处理器和信号采集和信息处理及显示等模块组成。软件设计部分编程实现了对CAN总线和各传感器数据的读取、处理。该系统能够实时反映车辆工况。
关键词:汽车数字仪表;MC9Si2HZ256;步进电机;CAN总线;SAE J1939
汽车仪表经历机械式、电气式、模拟电路电子式和全数字式的发展过程,日前正处在从模拟电路电子式转向全数字式的时期。带CAN总线接口的汽车仪表采集并处理传感器的车速、油量、油压等信号,并根据SAE J1939协议读取发动机转速、水温等信息。陔型汽车仪表具有指示精度高、反应灵敏、结构简单、可靠性高等优点,代表汽车仪表的发展方向。
1 CAN总线与SAE J1939协议
1.1 CAN总线与SAE J1939协议简介
控制器局域网CAN(Controller Area Network)是用于众多控制单元、测试仪器之间实时数据交换而开发的一种串行通信协议,CAN2.0包括2.OA和2.0B两部分。CAN拓扑结构为总线式,所以也称CAN总线。SAE J1939协议是以CAN2.0B作为网络核心协议,用于客车、货车、农业及建筑车辆的网络串行通信和控制协议。该协议通过对CAN扩展帧的29位标识符编码,用CAN数据帧封装其数据信息,从而形成独特的编码系统。作为车辆通讯标准,该协议明确规定汽车内部ECU的地址配置、命名、通讯方式以及报文发送优先级等,详细说明汽车内部具体ECU通讯内容。SAE J1939协议标准更大限度地发挥CAN优异的性能,减少线束数量,实现车辆电子设备间高速数据传输。
1.2 SAE J1939协议下CAN通讯报文帧格式
CAN支持4种类型的报文帧传送信息:数据帧(Data Frame)、远程帧(Remote Frame)、出错帧(Error Frame)和超载帧(Overload Fram-e)。CAN有2类消息帧:标准帧和扩展帧,其本质的差别在于标识符(ID)的长度,标准帧的ID有11位,扩展帧则有18位。表1为CAN扩展格式数据帧结构。
CAN数据帧分为以下位场:起始场(SOF)、仲裁场、控制场、数据场、循环冗余校验场(CRC)、应答场(ACK)和帧结束(EOF)。控制场由6位组成,包括数据长度码(DLC)和2个保留位r1、r0,在数据帧里这2位必须为显性位。DLC为4位,指出数据场里的字节数目,编码为0~8。循环冗余校验CRC场由15位CRC序列及CRC边界符组成。CRC范围包括帧起始、仲裁场、控制场和数据场。应答场(ACK)长度为2位,包含应答间隙和应答界定符。在应答场中,发送器发送这2位为隐性位。当接收器正确接收到有效报文时,会在应答间隙期间向发送器发送一显性位以示应答。每一数据帧均由7位隐性电平组成帧结束。