SAE J1939 是一个广泛应用于重型车辆和商用车辆领域的通信协议,它由美国汽车工程师协会(Society of Automotive Engineers)制定。这个协议主要目的是实现车辆内部不同电子控制单元(ECUs)之间的数据交换,以提高车辆的性能、可靠性和可维护性。SAE J1939 的全集包含了一系列文档,详细阐述了该协议的各个方面。 1. **协议概述** SAE J1939 协议基于控制器局域网络(CAN)技术,但针对商用车辆进行了优化,支持高达250Kbps的传输速率。它定义了通信架构、报文格式、地址分配以及错误处理机制,确保了不同制造商的设备在车辆网络中的无缝集成。 2. **通信架构** SAE J1939 网络通常包括多个节点,如发动机控制器、变速器控制器、仪表盘等。每个节点都有一个唯一的29位物理地址,其中7位用于功能地址,22位用于制造商特定的网络地址。这种地址结构支持最多254个通信节点。 3. **报文结构** 报文是 J1939 协议中的基本信息单元,由数据字段和控制字段组成。数据字段携带实际的车辆状态或控制信息,而控制字段指示报文的类型、优先级和目的地址。J1939 支持多种报文类型,如周期性报文、请求报文和事件触发报文。 4. **协议栈** SAE J1939 协议栈分为多个层次:应用层、表示层(PDU)、会话层、传输层、数据链路层和物理层。每一层都负责不同的功能,从高层的应用逻辑到底层的物理信号传输。 5. **参数组(PGNs)** 参数组是 J1939 中的一种概念,它定义了一组相关数据,如发动机转速、油压等。每个 PGN 都有一个唯一编号,用于确定报文携带的数据内容。通过 PGN,车辆各部件可以互相传递所需的信息。 6. **传输层** J1939 传输层处理数据的分段和重组,确保长数据能够通过 CAN 总线的短帧结构进行有效传输。它包括单帧、多帧和确认帧,以适应不同长度和实时性的需求。 7. **错误检测与恢复** 协议中包含了错误检测机制,如CRC校验,以确保数据的完整性和准确性。当网络出现错误时,J1939 提供了错误恢复策略,如重新发送和错误通告。 8. **应用** SAE J1993 在卡车、客车、农业机械、建筑设备等多个行业中广泛应用。它支持诊断、故障警告、远程监控等功能,有助于实现更高效、安全的车辆管理。 9. **实施** 实施 J1939 协议需要理解其规范并编写兼容的软件代码,这可能涉及硬件接口设计、网络管理算法以及通信协议栈的实现。 10. **学习资源** "SAE J1939-全集-英文" 包含了详细的官方文档,对理解和实现该协议至关重要。这些文档通常涵盖了协议的每一个细节,包括报文结构、网络管理、地址分配等,是开发 J1939 应用的基础。 通过深入学习和理解 SAE J1939,工程师能够有效地构建和集成车辆电子系统,提高车辆的整体性能,并降低维护成本。对于从事商用车辆电子系统开发的人来说,掌握 J1939 协议是必不可少的专业技能。
2025-07-31 17:46:19 8.46MB SAE-J1939 官方英文版
1
### SAE-J1939中的PGN和SPN,以及多包传输 #### SAE J1939概述 SAE J1939是一种广泛应用于商用汽车行业的开放式网络和通信标准。这一标准旨在定义如何让电子控制单元(ECU)通过控制器局域网(CAN)总线进行有效通信。它几乎涵盖了所有类型的商用车辆,包括但不限于公交车、大型卡车等,并且在农业、军事及海洋运输领域也有应用。 SAE J1939的工作速率通常为250kbps(部分新协议支持500kbps),使用29位的CAN标识符来确保数据的准确传输。 #### SAE J1939法规文件结构 SAE J1939提供了一系列规范文档,其命名结构有助于用户理解不同部分的功能和用途。 #### 协议数据单元(PDU) PDU由七个主要部分构成: - **优先级**:定义了数据传输的紧急程度。 - **扩展数据页**:用于标识数据页的类型。 - **数据页**:包含实际的数据信息。 - **PDU格式**:指示数据的具体格式。 - **PDU特定域**:可以作为目标地址、组扩展或特定于特定应用。 - **源地址**:发送方的标识。 - **数据场**:包含实际传输的数据。 每个PDU都会被封装在一个或多个CAN数据帧中,通过物理媒介传输至其他网络设备。每个CAN数据帧只能承载一种PDU。 #### J1939报文类型 SAE J1939定义了五种基本的报文类型: 1. **命令**:此类消息允许从特定源地址向特定目的地或全局目的地发送命令,以触发特定动作。 2. **请求**:用于从全局范围或特定目标地址请求信息。 3. **广播/响应**:既可以用作主动广播也可以作为命令或请求的响应。 4. **确认**:分为两种形式——基于CAN协议的确认和应用层确认。 5. **组功能**:用于一组特殊功能,如网络管理功能等。 #### PGN与SPN - **PGN(Parameter Group Number)**:参数组号。它是对一组相关的SPN进行分组并定义其在消息中的布局和顺序的标识。PGN不仅用于识别消息的优先级和数据格式,还帮助结构化地传输和解析参数。 - **SPN(Suspect Parameter Number)**:参数号。每个SPN代表了一个特定的参数,如发动机转速、车速等,它提供了一种标准化的方式来描述和识别不同参数。 ##### PGN的组成 PGN由CAN ID中的扩展数据页(EDP)、数据页(DP)、PF(PDU格式)、GE(PDU特定域)加上六个0位组成,总共24位。当PF小于240时,GE默认为0;当PF大于等于240时,GE取正常值。例如,对于报文ID 0x18FECA17: - 第一个字节是18(二进制为0001 1000),优先级为6,EDP=0,DP=0; - 第二个字节是PF=FE(十进制254>240); - 第三个字节是GE=CA(由于PF>240,GE取正常值); - 第四个字节及之后的部分用于标识具体的PGN。 #### 多包传输 在J1939协议中,某些PGN可能包含大量数据,这可能导致单个CAN数据帧不足以容纳全部信息。此时就需要采用多包传输的方式,即把数据分成多个CAN数据帧进行传输。例如,对于多包PGN,一个请求可能会触发一系列CAN数据帧的响应,每帧包含一部分数据。这种机制确保了即使是非常大的数据集也能被有效地传输和处理。 总结而言,SAE J1939是一种强大的通信标准,它通过PGN和SPN的概念实现了复杂数据的有效管理和传输。通过理解和掌握这些核心概念,可以帮助开发者和工程师更好地利用这一标准,提高系统的互操作性和可靠性。
2025-06-30 16:28:28 6.52MB J1939
1
SAE-J1939-21,数据链路层,中文版,翻译那是杠杠的,整理了排版,看起来舒服,独家真传,欢迎下载
2022-05-13 23:39:16 548KB SAE-J1939-21  数据链路层   中文
1
SAE-J1939-71,车辆应用层,中文版,翻译那是杠杠的,整理了排版,看起来舒服,独家真传,欢迎下载
2022-02-22 15:35:17 3.23MB SAE-J1939-71 车辆应用层 中文
1
SAE-J1939-81,网络管理,中文版,翻译那是杠杠的,整理了排版,看起来舒服,独家真传,欢迎下载
2022-02-11 09:54:23 474KB SAE-J1939-81 网络管理 中文
1
SAE-J1939-11(中文)part1 SAE-J1939-13(中文)part2 SAE-J1939-15(中文)part3 SAE-J1939-21(中文)part4 SAE-J1939-71(中文)part5 SAE-J1939-73(中文)part6 SAE-J1939-81(中文)part7
2022-01-25 14:10:04 7.46MB J1939中文
1
中文版SAEJ1939-21,介绍了车辆总线的网络应用,数据链路层的管理,PDU的格式定义,清晰介绍了通信规则!
2022-01-24 14:46:24 587KB SAEJ1939
1
开箱即用,将github Open SAE J1939资源https://github.com/DanielMartensson/Open-SAE-J1939 移植到了STM32F103 并添加了串口打印功能,压缩包里面包含该仓库
2022-01-12 19:03:43 20.4MB CAN SAEJ1939 J1939 STM32J1939
1
SAE-J1939-73,诊断应用层,中文版,翻译那是杠杠的,整理了排版,看起来舒服,独家真传,欢迎下载
2021-11-25 17:42:49 499KB SAE-J1939-73   诊断应用层   中文
1
SAE-J1939标准整理.pdf
2021-11-15 21:35:56 1.63MB SAE-J1939
1