2 SAE J1939协议简介
SAE J1939协议是美国汽车工程师协会SAE(Societyof Automotive Engineer)发布的以CAN2.0B作为网络核心协议的车辆网络串行通信和控制协议。SAE J1939协议使用CAN的数据帧封装其数据信息,对CAN扩展帧的29位标识符编码,形成独特的编码系统作为车辆通讯标准。该协议明确规定了汽车内部ECU的地址配置、命名、通讯方式以及报文发送优先级等,详细说明了汽车内部具体的ECU通讯内容。实现车辆电子设备间高速数据传输,减少线路数量,最大限度利用CAN总线优越性能。
2.1 SAE J1939报文格式
SAE J1939数据帧是以PDU(协议数据单元)为单位,共由优先权(P)、保留位(R)、数据页(DP)、PDU格式(PF)、PDU细节(PS)、源地址(SA)及数据域(Date Field)等7个域组成。除了数据域外的PDU对应于CAN扩展帧的29位标识符,其对应关系如表1所列。其中PS是一个8位段,其定义取决于PF值。若PF值小于240,PS是目标地址(DA)。若PF值介于240和255之间,则PS为组扩展(GE)。
2.2 SAE J1939应用层
应用层详细定义了SAE J1939协议中使用的每个参数,包括数据长度、数据类型、结果、范围以及参数组编号(PGN)等。这些参数分为控制参数、动力传动系统状态参数、动力传动系统控制参数、动力传动系统配置参数、信息参数以及信息状态参数。SAE J1939使用参数组编号(PGN)作为一参数组的唯一标签。该标签包括:保留位(R),数据页(DP)、PDU格式域(PF 8位)和组扩展域(GE 8位)。另外,PF值小于240时,PGN低字节位置0。参数组中的每个参数都能用ASCII码表示,其状态量最少可用两个位表示。文字数字数据采用最高位在前的传输方式,其他包括两个或多个数据字节的参数则采用最低位在前的传输方式。除此之外,应用层中还详细定义了参数组属性。该参数组属性包括:优先权、更新率、参数组的协议数据单元格式、参数组编号,参数组的数据参数号及其在参数组中的位置。
3 基于CAN总线的汽车数字仪表系统设计
3.1 硬件电路设计
该汽车数字仪表系统由信号采集和处理显示等模块组成,如图l所示。通过模拟量信号分压,滤波整形脉冲信号,CAN总线信号通过收发器发送至中央处理器,然后再将处理后的信号通过步进电机控制器控制步进电机,驱动LCD液晶屏显示。其中信号采集模块包含CAN总线数据采集和传感器数据采集。在实际的车载环境中,该系统设计遵循SAE J1939协议在CAN总线上获取发动机转速、水温和故障代码,而其他信息包括车速、油量、机油压力、制动气压则从相应传感器以模拟量和脉冲量形式读取。通过测量车速传感器脉冲信号获取车速信号,油量传感器的信号经分压后直接发送给中央处理器内A/D转换器处理。
图2给出信号采集模块电路。图中,采用带隔离的通用CAN收发器CTM825lT接收CAN总线信号。CTM8251T内部集成所有必需的CAN隔离及CAN收发器,可实现CAN节点的收发与隔离功能,从而替代了传统设计中采用光电耦合器、DC-DC隔离、CAN收发器等元件实现的具有隔离功能的CAN收发电路。该模块电路可将CAN控制器的逻辑电平转换为CAN总线的差分电平,并具有直流2 500 V的隔离功能。该模块电路设计体积小,集成度高,可取代PCA82C25l等传统的CAN总线收发器及其外围电路,从而降低了系统设计成本。传感器模拟量信号经分压传输至中央处理器,图中的VD40和C40两元件可对微控制器LM3S2948的引脚提供过压保护。