J1939简介
SAE J1939(以下简称J1939)是美国汽车工程协会(SAE)的推荐标准,用于为中重型道路车辆上电子部件间的通讯提供标准的体系结构。它由“卡车与大型客车电气与电子委员会”(Track & Bus Electrical & Electronics Committee)下属的“卡车与大型客车控制和通讯网络附属委员会”(Track & Bus Control and Communications Network Subcommittee)开发编写。
J1939基于德国Bosch公司(Robert Bosch GmbH)开发的控制器局域网络(CAN:Controller Area Network),可达到250Kbps的通讯速率。它描述了重型车辆现场总线的一种网络应用,包括CAN网络物理层定义、数据链路层定义、应用层定义、网络层定义、故障诊断和网络管理。在SAE J1939协议中,不仅仅指定了传输类型、报文结构及其分段、流量检查等,而且报文内容本身也做了精确的定义。J1939是在商用车辆、舰船、轨道机车、农业机械和大型发动机中应用最广泛的应用层协议。
J1939主要特性
- J1939协议是基于CAN的应用层协议,所有J1939报文都使用29位标志符。
- J1939协议通讯速率稳定在250kbps
- J1939协议应用于重型车辆
J1939技术规范
CAN报文是基于ID的,J1939是基于PGN的,这是最主要的一点。CAN使用29位标识符区分不同报文,PGN是将29位标识符拆分成不同的部分,对不同部分进行某种计算,如果运算结果(PGN)一致,则认为是相同报文。
报文包含单个协议数据单元(PDU)。PDU由七个预定义字段组成,这些字段从应用层提供的信息中获得。字段包括:
Priority (P)
Extended Data Page (EDP)
Data Page (DP)
PDU Format (PF)
PDU Specific (PS, which can be a Destination Address or Group Extension)
Source Address (SA)
Data
这些字段被打包成一个或多个CAN数据帧,并通过物理介质发送到其他网络设备。某些参数组编号定义需要一个以上的CAN数据帧来发送其信息。
表1显示了以下消息格式的仲裁和控制字段:CAN CEFF格式消息的29位标识符;SAE J1939消息的29位标识符;CAN CBFF格式消息的11位标识符;以及SAE J1939兼容性的11位标识符。在定义SAE J1939协议数据单元的章节中可以找到每个SAE J1939位字段分配的完整定义。在本文中,can数据帧的数据字段以字节1至8的形式进行讨论。字节1的最高有效位(位8)是发送的第一位,最接近DLC字段。字节8的最低有效位(位1)是要发送的最后一个数据位,最接近CRC字段。
EDP等于1且DP等于1的消息是ISO 11992-4中定义的牵引车与一辆或多辆牵引车之间的通信消息。因此,CAN数据帧的处理将不遵循SAE J1939技术规范提供的定义。应参考ISO 11992-4:2014规范。
EDP等于1且DP等于0的消息保留供SAE J1939委员会将来分配。SAE J1939数据链路上使用这些值的任何信息都需要独特的处理规则,因为SAE J1939-21中规定的规则不适用于这些信息。当SAE J1939委员会定义了使用这些值的消息时,将在SAE J1939-21文件的未来版本中指定处理规则。