摘要:首先研究和协议,提出一种基于MC9S12HZ256微控制器的总线式解决方案。详细介绍SAEJ1939协议的报文帧格式及应用层协议中发动机相关参数的定义,以及及其驱动和车速信号的处理方法。该数字仪表系统硬件平台由微处理器和信号采集和信息处理及显示等模块组成。软件设计部分编程实现了对CAN总线和各传感器数据的读取、处理。该系统能够实时反映车辆工况。
汽车仪表经历机械式、电气式、模拟电路电子式和全数字式的发展过程,日前正处在从模拟电路电子式转向全数字式的时期。带CAN总线接口的汽车仪表采集并处理传感器的车速、油量、油压等信号,并根据SAEJ1939协议读取发动机转速、水温等信息。陔型汽车仪表具有指示精度高、反应灵敏、结构简单、可靠性高等优点,代表汽车仪表的发展方向。
1CAN总线与SAEJ1939协议
1.1CAN总线与SAEJ1939协议简介
控制器局域网CAN(ControllerAreaNetwork)是用于众多控制单元、测试仪器之间实时数据交换而开发的一种串行通信协议,CAN2.0包括2.OA和2.0B两部分。CAN拓扑结构为总线式,所以也称CAN总线。SAEJ1939协议是以CAN2.0B作为网络核心协议,用于客车、货车、农业及建筑车辆的网络串行通信和控制协议。该协议通过对CAN扩展帧的29位标识符编码,用CAN数据帧封装其数据信息,从而形成独特的编码系统。作为车辆通讯标准,该协议明确规定汽车内部ECU的地址配置、命名、通讯方式以及报文发送优先级等,详细说明汽车内部具体ECU通讯内容。SAEJ1939协议标准更大限度地发挥CAN优异的性能,减少线束数量,实现车辆电子设备间高速数据传输。
1.2SAEJ1939协议下CAN通讯报文帧格式
CAN支持4种类型的报文帧传送信息:数据帧(DataFrame)、远程帧(RemoteFrame)、出错帧(ErrorFrame)和超载帧(OverloadFram-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位隐性电平组成帧结束。
J1939协议支持CAN2.0协议标准,使用扩展帧格式以报文为单位传送信息。协议数据单元(PDU)是J1939协议定义的一个框架,用以组织CAN数据帧中与J1939协议相关的关键信息。PDU由优先权域(P)、保留域(R)、数据页域(DP)、PDU格式域(PF)、组成标识符的PDU特定域(PS)和源地址域(SA),以及数据域(DataField)共7个位域组成。这些位域分别对应CAN扩展帧的29位标识符和数据域。其中PS是一个8位段,其定义取决于PF值。若PF值小于240,PS是目标地址(DA);若PF值在240~255之间,则PS为组扩展(GE)。CAN扩展帧格式和SAEJ1939信息帧格式标识符比较如表2所示。PDU的定义并未将CAN帧中的SOF(帧起始)、SRR(替代远程请求)、IDE(识别符扩展)、RTR(远程请求),部分控制域、CRC(校验域)、ACK(应答域)及EOF(帧结束)等控制域归入,因为这些域已由CAN2.0规范明确定义,并且当OSI模型高于数据链路层时它们是不可见的。
1.3SAEJ1939协议应用层
应用层定义J1939协议的数据长度、数据类型、分辨率、范同及参考标签等参数,并为每个参数分配1个编号(SPN)。由于J1939协议是以协议数据单元(PDU)的形式传输数据,而1个PDU可传输8个字节数据。所以,需要对参数进行组合传输。J1939应用层协议中定义参数组,并为每个参数组分配一个编号(PGN)作为该参数组的唯一标签。参数组内容包括该组参数的更新率、有效数据长度、数据页、PDU格式、PDU待定、默认优先级以及数据域的具体内容。以电子发动机控制器l(EECl)为例说明SAEJ1939协议标准下的CAN数据帧。J1939对电子发动机控制器1(EECl)定义如下:
评论
加载更多