1.3 SAE J1939协议应用层
应用层定义J1939协议的数据长度、数据类型、分辨率、范同及参考标签等参数,并为每个参数分配1个编号(SPN)。由于J1939协议是以协议数据单元(PDU)的形式传输数据,而1个PDU可传输8个字节数据。所以,需要对参数进行组合传输。J1939应用层协议中定义参数组,并为每个参数组分配一个编号(PGN)作为该参数组的唯一标签。参数组内容包括该组参数的更新率、有效数据长度、数据页、PDU格式、PDU待定、默认优先级以及数据域的具体内容。以电子发动机控制器l(EECl)为例说明SAE J1939协议标准下的CAN数据帧。J1939对电子发动机控制器1(EECl)定义如下:
PGN 61444 电子发动机控制器1
发动机相关参数:
传输循环速度:依发动机转速决定;数据长度:8个字节;数据页:0;PDU格式(PF):240;PDU待定(PS):3;默认优先级:3;参数组编号(PGN):61444(0xF004)
起始位置 长度 参数名 SPN
……
4-5 2字节 发动机转速 190
……
根据SAE J1939协议的定义,参数EECl的PDU编码应为“OC FO 04 00 XX XX XX XX XX XX XX XX(XX表示任意数据)”,其中前4个字节为29位标识符,后8个字节为数据域,其中数据域中第4、5字节表示发动机转速。若收到来自发动机控制单元的数据为OC F0 04 00 XX XX XX 5D CO XX XX XX,根据这2个字节的数值及SPNl90中的定义可算得发动机转速:
发动机转速=原始数×分辨率+偏移量=24 000(0x5DC0)×0.125+0=3 000 r/m。
同样,根据J1939的定义还可以计算出汽车仪表所需的其他数据。然后交由仪表ECU处理并驱动显示部件准确显示当前的车辆状态。
2 数字仪表系统设计
该汽车数字仪表系统由信号采集和处理显示等模块组成,图l为应用MC9S12HZ256微控制器的总线式汽车数字仪表组成框图。