J1939
J1939
一、J1939 介绍
J1939 是美国汽车工程师协会(SAE)制定的用于商用车的一种串行通信标准。它是基于控制器局域网(CAN)技术的应用层协议,就像是一套大家都遵守的“语言规则”,使得不同的电子控制单元(ECU)之间能够在车辆这个复杂的“小社会”里顺畅地交流信息。通过 J1939 协议,车辆上的发动机、变速器、制动系统等各个部件的 ECU 可以准确地交换数据,从而实现车辆的整体控制和管理,提高车辆的性能、安全性和可靠性。
二、发展历史
J1939 协议的发展有着明确的时代背景和行业需求。在早期,商用车上的电子设备逐渐增多,各个设备之间需要一种高效、可靠的通信方式。最初的 CAN 总线技术虽然提供了基本的通信物理层和数据链路层,但缺乏统一的应用层协议,不同厂家的设备之间难以实现互操作性。
为了解决这个问题,SAE 在 20 世纪 90 年代开始制定 J1939 协议。经过不断的完善和发展,J1939 逐渐成为商用车领域的主流通信标准。如今,它已经广泛应用于全球的商用车行业,包括卡车、客车、工程车辆等各种类型的车辆。
三、技术原理
(一)物理层
J1939 基于 CAN 总线的物理层,通常采用两根线(CAN_H 和 CAN_L)进行差分信号传输。这种差分传输方式具有很强的抗干扰能力,能够保证在车辆复杂的电磁环境下可靠地传输数据。CAN 总线的传输速率一般为 250kbps 或 500kbps,不同的速率可以根据车辆的实际需求进行选择。
(二)数据链路层
J1939 采用了 CAN 总线的数据链路层协议,它规定了数据的帧格式和传输规则。在 J1939 中,主要使用的是扩展帧格式,其标识符(ID)长度为 29 位。这 29 位的标识符包含了优先级、保留位、数据页、PDU 格式、PDU 特定参数和源地址等信息,用于区分不同的消息和确定消息的发送和接收对象。
(三)应用层
应用层是 J1939 的核心部分,它定义了各种参数组(PGN)和消息格式。参数组是一组相关的数据,例如发动机的转速、温度等。每个参数组都有一个唯一的 PGN 编号,通过 PGN 可以准确地识别和解析不同的数据。J1939 协议还规定了消息的发送周期、发送方式(广播或点对点)等规则,确保各个 ECU 之间能够有序地交换数据。
以下是一个简单的 J1939 消息示例: 假设我们要发送一个包含发动机转速信息的消息。首先,我们需要确定该消息对应的 PGN 编号,假设为 61444。然后,将发动机转速数据按照 J1939 规定的格式进行编码,放入消息的数据字段中。最后,将 PGN 等相关信息填入标识符中,通过 CAN 总线发送出去。接收方的 ECU 接收到该消息后,根据标识符中的 PGN 编号,解析出发动机转速数据。
四、应用场景
(一)商用车动力系统控制
在商用车的动力系统中,J1939 协议起着至关重要的作用。发动机控制单元(ECU)通过 J1939 与变速器、燃油喷射系统等其他部件的 ECU 进行通信,实现发动机的最佳运行状态。例如,发动机 ECU 可以根据车辆的行驶状态、负载情况等信息,通过 J1939 向变速器 ECU 发送换挡请求,以实现合理的换挡操作,提高燃油经济性和动力性能。
(二)车辆诊断系统
J1939 协议为车辆诊断系统提供了统一的标准。维修人员可以通过诊断设备连接到车辆的 CAN 总线,利用 J1939 协议读取各个 ECU 中的故障码和运行数据。这些数据可以帮助维修人员快速准确地定位车辆故障,提高维修效率。例如,当发动机出现故障时,诊断设备可以通过 J1939 协议获取发动机 ECU 中的故障码,了解故障的具体原因,如传感器故障、喷油器故障等。
(三)车辆远程监控
随着物联网技术的发展,J1939 协议在车辆远程监控方面也得到了广泛应用。通过在车辆上安装远程信息处理终端,利用 J1939 协议采集车辆的各种运行数据,如位置、速度、油耗、发动机状态等,并通过无线通信网络将这些数据传输到远程监控中心。车队管理者可以通过监控中心实时了解车辆的运行情况,进行调度管理和故障预警,提高车队的运营效率和安全性。
(四)工程车辆自动化
在工程车辆领域,J1939 协议支持车辆的自动化控制。例如,在挖掘机、装载机等工程车辆中,各个工作部件的 ECU 之间通过 J1939 协议进行通信,实现协同工作。操作人员可以通过控制终端向各个 ECU 发送指令,控制车辆的动作。同时,车辆的传感器数据也可以通过 J1939 协议反馈给控制终端,实现闭环控制,提高工程车辆的作业精度和效率。