SAE J1939是基于CAN(Controller Area Network,控制器局域网)的通信协议,广泛用于各类商用车。该协议对车辆中连接CAN的电子组件及其附加设备之间的通信进行了标准化。
SAE J1939协议
SAE(Society of Automotive Engineers,国际自动机工程师学会)J1939协议是基于CAN的高层协议,用于商用车和工程机械中电子控制单元的通信。SAE J1939制定于1980年代中期,旨在实现不同制造商的电子控制单元之间的标准化通信。SAE J1939主要用于柴油发动机以及与变速箱、制动器或减速器(发动机制动器)等的通信。
SAE J1939和CAN
SAE J1939协议使用CAN(控制器局域网、ISO 11998-1和ISO 11998-2)作为物理层。CAN协议在车载网络中发挥着重要作用,是ECU之间实现位串行通信的一种常用方法。典型的ECU如下:发动机、变速器和制动器ECU,以及仪表盘和车门ECU。
J1939概览
J1939协议包括典型的CAN功能和一些全新属性:
- 使用29位的扩展CAN标识符;
- CAN波特率标准化为250 kbits/s和500 kbits/s
- 点对点寻址(节点寻址)和全局寻址(报文寻址);
- 使用传输协议最多可传输1785个字节;
- 通过专用网络管理控制总线访问;
- 采用标准化报文进行全车通信;
- 允许制造商自定义报文;
- 定义专用诊断接口。
规范
SAE J1939衍生了大量规范。这些规范遵循J1939的基本描述,通常只在数据定义和物理层方面有所不同。
-
ISO 11783 - 农林拖拉机和机械 - 串行控制和通信
此协议定义了农用车辆中的通信。具体来说,指拖拉机与附加设备(即所谓的工具)之间的通信。ISO 11783标准规定了应用层的服务,例如,通过虚拟终端控制附加设备。附加设备本身会引入控制所需的所有图形元素,而虚拟终端可以显示这些图形元素。其他应用组件如下:拖拉机ECU、任务控制器、文件服务器和顺序控制。ISO 11783扩展了SAE J1939定义的多包协议。此外,还采用了工作集机制。
-
NMEA 2000® - 船用电子设备的串行数据网络
此协议定义了海上交通工具之间的ECU通信,并使用了多包协议的扩展协议-快速包(Fast Packet)协议。
-
ISO 11992 - 拖车和挂车之间的数字信息互换
此协议规定了拖车与挂车之间的报文交换。ISO 11992基于J1939的报文格式,但采用的是波特率仅为125 kbits/s的物理层配置。
-
FMS - 车队管理系统
FMS(Fleet Management System,车队管理系统)标准定义了J1939网络与FMS之间的网关。
层级
J1939协议是高层通信协议。首先了解什么是层级。ISO建立了一种参考模型,用于描述七个抽象层上相同或不同技术系统的通信。物理层是最低层,应用层则是最高层。CAN协议涉及最低的两层,并由CAN控制器和收发器以硬件形式实现。
软件协议
J1939在CAN的基础之上定义了一组以软件实现的规则。因此,如果CAN总线节点由收发器、控制器和主机构成,则J1939总线节点通过软件的形式实现附加协议的内容并由主机执行。
SAE
整个J1939规范分为多个文档和章节,可以从SAE网站单独下载或以压缩包形式下载所有文档。
下载J1939规范需收费。各部分的内容大致依据前面提到的ISO/OSI模型系统划分。也有例外,例如J1939-8中的内容在OSI模型中无对应描述。 Numbering scheme图中显示了各章节的编排方案。
大纲
除已编排的文档及其附录外,还有一个不带编号扩展的文档。该文档是J1939核心总览性文档,简要概述了协议的所有重要特征。该文档的附录相当重要,列出了所有参数组、信号、预留节点地址、制造商代码和工业组,供用户快速概览。
右表列出了现有的章节和文档。
标识
主动参与J1939通信(例如:需发送报文)的每个ECU都需要具备一个全球唯一的64位长度名称(NAME)。根据标准定义,NAME描述了设备的标识、编号、来源(生产商)以及功能相关等信息。除了标识功能、产品序列号,在动态地址分配期间,可以使用设备名称确定ECU的优先级(请参阅网络管理章节)。
J1939 NAME的组成如图64-bit ECU Name Fields所示。
节点寻址
CAN协议只定义了报文寻址方式,不存在节点寻址信息。这意味着所有信息都由标识符标记,并基于此报文标识符进行数据场信号提取和解析。除报文寻址以外,J1939使用节点地址寻址,其报文标识符中包含有8位发送节点的有效地址,这使得点对点通信成为可能。因此J1939网段中的每个发送节点都必须具备一个有效的节点地址。
网络类型
在J1939网络中发送数据的每个ECU都需要有效地址。节点地址由8个位的值构成,并且可以一次性永久分配到节点(静态网络),也可以在网络中由节点独立搜索分配(动态网络)。使用哪一种网络取决于各自的应用。
静态
如果在卡车的传动系统中以经典方式应用J1939协议,通常会发现一个在车辆出厂时已指定了网络拓扑结构和地址的静态网络。在此类网络中,地址分配和拓扑结构在车辆的整个生命周期内保持不变。
动态
在动态网络中,网络的拓扑结构可能会在运行期间发生更改,可能会添加已知和未知的网络节点。网络中甚至可能存在多个同一类型的ECU。动态网络的典型应用是在农业工程中使用的ISO 11783协议,该协议描述了拖拉机与其附加设备