### SAE J1939协议详解 #### 一、J1939协议基础知识 SAE J1939是一种广泛应用于商用车辆、农业机械、工程机械等领域的车载网络通信协议,它基于Controller Area Network (CAN)技术。该协议不仅定义了数据交换的标准,还规范了车辆电子系统之间的通信方式,确保不同制造商生产的设备之间能够实现互操作。 ##### 1.1 CAN2.0B消息格式规范 - **标准帧**:由11位标识符组成,适用于早期CAN网络中的简单通信需求。 - **扩展帧**:由29位标识符构成,提供更大的地址空间,增强了网络的灵活性和功能性。 根据SAE J1939协议的要求,所有设备必须使用扩展帧格式进行通信。虽然标准帧格式可以在网络中存在,但其使用方式需符合文档中规定的特定条件。 #### 二、协议数据单元(PDU) SAE J1939协议数据单元(PDU)由以下七个关键组成部分构成: - **优先级**:3位,用于优化报文的传输延迟。优先级范围从0(最高)至7(最低),默认情况下控制报文优先级设置为3,其余报文则设置为6。 - **保留位**:1位,默认值为0,目前未分配具体用途。 - **数据页**:1位,当已分配所有参数组时,其值为0。 - **PDU格式**:8位,用于区分两种PDU格式——PDU1和PDU2。PDU1用于向特定目的地址或全局地址发送数据,而PDU2用于向全局地址发送全局广播。 - **PDU特定域**:8位,其含义由PDU格式决定。对于PDU1格式,这部分表示目标地址(DA);对于PDU2格式,则表示组扩展值(GE)。 - **源地址**:8位,标识发送节点,确保标识符的唯一性。 - **数据域**:存储0至8字节的数据。当需要传输超过8字节的数据时,需要使用传输协议。 ##### 2.1 PGN计算规则 - 当PDU格式(PF)<240时,PGN=0x00PF00,此时PDU特定域(PS)被设为0。 - 当PDU格式(PF)>=240时,PGN=0x00PFPS,其中PS为组扩展值,用于区分不同的参数组。 通过这种方式,SAE J1939协议能够支持高达8672个参数组符号(PGN),极大地丰富了网络中的数据类型和应用场景。 #### 三、报文传输 SAE J1939中的报文遵循小端模式传输,即先发送低字节。报文主要分为以下几类: - **命令报文**:从某一源地址向特定目标地址或全局目标地址发送命令的参数组。 - **请求报文**:请求从全局或特定目标地址获取信息。 - **广播/响应报文**:最常用的报文类型,用于大多数总线数据交互场景。 - **确认报文**:用于确认消息接收或发送的状态。 - **组功能报文**:用于执行特定的功能或指令。 #### 四、应用层面的理解 在SAE J1939的应用层面,PGN和SPN的概念非常重要: - **PGN(Parameter Group Number)**:参数组编号,是24位的值,包括保留位(R)、数据页(DP)、PDU格式(PF)以及PDU特定域(PS)。 - **SPN(Signal Parameter Number)**:参数组下的具体参数编号。 PGN可以理解为一组按照特定方法分类的参数集合,而每个具体的参数都有其独立的SPN编号。 #### 五、多帧传输 对于需要传输超过8字节数据的情况,SAE J1939引入了多帧传输机制: - **请求发送(RTS)**:控制字节为16,用于指定目标地址并发起传输请求。报文中还包括整个报文的字节数、数据包个数等信息。 - **准许发送(CTS)**:控制字节为17,用于指示接收方准备好接收数据。包含可发送的数据包数量和当前数据包编号等信息。 - **报文结束应答(EOT)**:用于表示传输结束。 通过这种机制,SAE J1939能够高效地处理大容量数据传输任务,提高了车载网络的灵活性和可靠性。
2025-09-20 09:50:32 390KB J1939
1
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英文全集.zip
2024-04-01 11:58:49 8.52MB J1939
1
SAE J1939_14_2022 Physical Layer, 500 kbit-s.pdf
2023-07-04 22:29:42 1.05MB SAE
路面车辆推荐操作规程(被采纳为美国国家标准)SAE J1939-71:车辆应用层。 本系列 SAE 推荐操作规程是由卡车及客车电子电气委员会所属的卡车及客车控制及通 信小组委员会制定的。该小组委员会的目标是针对电控单元的需求、设计和使用,提交消息 报告、制定推荐操作规程。这些电控单元在汽车部件之间传递着电子信号和控制信息。本规 程的使用不限于卡车和客车应用,其对于其他的应用也可以提供直接的支持,正如已在建筑 及农业设备和固定式的动力系统。
2022-12-14 17:09:21 1.2MB J1939 CAN 汽车
1
总结分析SAEJ1939乘用车网络总线协议,完成分析和总结了J1939-81 对网络管理功能详细的描述
2022-12-05 19:55:38 909KB SAE J1939 商用车 网络总线
1
SAE J1939协议中英文合集
2022-11-24 10:17:37 15.34MB 汽车电子 J1939 商用车通讯协议
1
当前文件包括了SAE J1939协议中所有的PGN,并且具体到每个PGN对应的SPN,并包含对应的解析信息;其中还分别详细分类介绍协议ID对应的车辆控制器名称;
2022-11-15 09:24:22 3.75MB 文档资料
SAE J1939-71-2020 英文
2022-09-25 18:19:26 753KB
1