SAE J1939 协议简介(大结局)
SAEJ1939协议_v2
山东理工大学 马超 mcskku85@
SAE J1939协议
-2-
• SAEJ1939协议简介 • 物理简介 • 数据链路层
• 消息/帧格式 • 协议数据单元 • 协议数据单元格式 • 消息类型 • 传输协议功能
• 应用层
• 通信参数定义
• 故障诊断 • 网络管理
• SAEJ1939通信方式
• 扩展帧(Extended Frame):CAN2.0B规范中定义的使用29 位标识符的CAN数据帧。
• 报文(Message):指一个或多个具有相同参数组编号的CA N数据帧。
• 包(Packet):一个单一的CAN数据帧就是一个包。当一条 报文包含参数组的数据长度小于等于8个字节时,这个样的 报文也成为包。
-10-
物理层简介
连接器 • 九芯连接器如下所示,主要用于诊断接口,通常安装在驾驶 室内易于进行接入操作的位臵
-11-
物理层简介
连接器 • 九芯连接器引脚定义如下表所示
-12-
• SAEJ1939协议简介 • 物理层简介 • 数据链路层
• 消息/帧格式 • 协议数据单元 • 协议数据单元格式 • 消息类型 • 传输协议功能
SAEJ1939是基于CAN总线的协议,波特率可达250kb/s,是一 种传输率较高的C类通信网络协议。它支持分布在整个车辆中 的电子控制系统间的实时性闭环控制及其通信。
SAEJ1939的物理层和数据链路层是以CAN2.0B协议为基础的, 因此它和CAN网络一样,任何节点在总线空闲时可向总线上 传输报文,每个报文都包含标识符,采用CSMA/CD非破坏性 仲裁机制解决冲突。
PS
SA DATA
位
3
1
J1939协议
J1939协议一、协议目的本协议旨在规范和定义J1939协议的通信规则和数据格式,以便确保各种车辆和设备之间的互操作性和数据交换的一致性。
二、协议范围本协议适用于使用J1939协议进行通信的各种车辆和设备,包括但不限于商用车辆、农业机械、建筑设备、发电机组、船舶和工业自动化设备等。
三、术语和定义1. J1939协议:一种用于车辆和设备之间的通信的协议,基于CAN总线技术。
2. 数据帧:J1939协议中的数据传输单元,包含源地址、目标地址、数据内容等信息。
3. 参数组:J1939协议中的一种数据结构,用于封装和传输特定的数据项。
4. PGN:参数组号码(Parameter Group Number),用于唯一标识一个参数组。
5. SPN:信号参数号码(Suspect Parameter Number),用于唯一标识一个参数组中的一个信号。
四、协议规则1. 数据帧格式1.1 数据帧由CAN总线上的标准帧组成,帧格式为11位标识符。
1.2 数据帧包含11位标识符、数据长度代码(DLC)、数据字节和CRC校验码。
1.3 数据帧的标识符中包含源地址、优先级、数据页、PGN等信息。
1.4 数据帧的DLC定义了数据帧中数据字节的数量。
1.5 数据帧的CRC校验码用于验证数据的完整性。
2. 参数组格式2.1 参数组由一个PGN和一个或多个SPN组成。
2.2 PGN由18位标识符的前3个字节组成。
2.3 SPN由16位标识符的后两个字节组成。
2.4 参数组中的数据按照大端字节序排列。
3. 数据传输3.1 数据传输通过CAN总线进行。
3.2 数据帧的发送和接收由源地址和目标地址进行控制。
3.3 数据传输的优先级由数据帧的标识符中的优先级字段确定。
3.4 数据传输的频率和时序由应用层协议定义。
4. 错误处理4.1 错误帧:当接收到错误的数据帧时,应立即发送错误帧作为响应。
4.2 错误处理机制:错误处理机制应能够检测和处理数据传输过程中的错误,包括但不限于传输错误、接收错误和校验错误等。
J1939协议应用设计编程说明
J1939协议应用设计编程说明一、J1939协议简介J1939协议是目前在大型汽车中应用最广泛的应用层协议,可达到250Kbit/s的通讯速率。
J1939协议由美国SAE( Society of Automotive Engineer)组织维护和推广。
J1939协议具有如下特点:(1)以CAN2.0B协议为基础,物理层标准与ISO11898规范兼容并采用符合该规范的CAN 控制器及收发器。
通讯速率最高可达到250Kbit/s。
(2)采用PDU( Protocol Data Unit协议数据单元)传送信息,每个PDU相当于CAN协议中的一帧。
由于每个CAN帧最多可传输8个字节数据,因此PDU的传输具有很高的实时性。
(3)利用CAN2.0B扩展帧格式的29位标志符定义每一个PDU的含义及该PDU的优先级。
(4)J1939协议主要作为汽车中应用的通讯协议,对汽车中应用到的各类参数都进行了规定。
参数的规定符合ISO11992标准。
二、J1939协议通讯报文内容解析J1939协议实质是将CAN扩展帧格式中未明确定义的11位ID,18位扩展ID进行了明确定义,紧随ID的是8个字节的数据。
为了实现J1939协议报文的正确接收,必须首先明确其仲裁场(如上所示)是如何确定的。
下面将逐一介绍:优先级:29位标志符的前3位用于在仲裁过程中决定报文的优先级P。
值000是最高的优先级。
高的优先级用于高速要求的报文。
低的优先级用于时间要求不紧迫的数据。
标志符位(R):保留位。
在传输报文时此位置为0。
此位留作将来SAF委员会定义其它目的使用。
数据页( DP)位:DP位用于选择两页参数组中的其中一页。
0页包含现在被定义的所有报文。
1页预备将来额外的扩展能力。
在0页用完后才被分配。
PDU格式(PF):PDU代表协议数据单元。
PF场识别能被传送的两个PDU格式。
SRR和IDE位:在CAN 2. 0B己被详细定义。
它们被置为隐性位。
saej1939标准介绍
saej1939标准介绍
SAE J1939标准是一种用于商用车辆和重型设备之间进行通信的控制器局域网络(CAN)协议。
这个标准由SAE国际制定,旨在提供一种统一的通信协议,以便不同制造商的电子控制单元(ECU)能够相互通信,实现数据交换和系统集成。
SAE J1939标准涵盖了许多方面,包括物理层、数据链路层、网络层和应用层。
物理层定义了电气特性和连接器规范,以确保不同设备之间的互操作性。
数据链路层负责错误检测和纠正,网络层管理数据包的路由和优先级,而应用层定义了通信的参数和消息格式。
这个标准广泛应用于卡车、拖车、农业和建筑设备等商用车辆领域,用于实现发动机控制、传感器监测、车辆诊断、车载通信和其他功能。
通过采用SAE J1939标准,不同制造商的设备可以更容易地集成到统一的车辆系统中,提高了设备的互操作性和可靠性。
总的来说,SAE J1939标准是一种重要的通信协议,它促进了商用车辆和重型设备之间的数据交换和系统集成,为整个行业带来了许多便利和效益。
SAE J1939协议
SAE J1939协议吉林大学汽车动态模拟国家重点实验室底盘控制研究室丁海涛杨建森2008年10月30日大纲)SAE J1939概述)物理层(SAE J1939-11))数据链路层(SAE J1939-21) )网络层(SAE J1939-31))应用层(SAE J1939-71))故障诊断(SAE J1939-73) )网络管理层(SAE J1939-81) )应用实例SAE J1939协议概述)SAE J1939协议:是由美国汽车工程师协会(SAE)制定的主要针对商用车的CAN总线通讯协议)基础: CAN 2.0B协议)对象:客车和载重货车;船舶、农业机械等非路面设备SAE J1939协议文档结构)SAE J1939 车辆网络串行通信的控制总标准Revised 2007-10-9 )SAE J1939/01 卡车及客车等路面控制及信息网络Issued 2000-09-1 )SAE J1939/02 农业设备等非路面控制及信息网络Issued 2006-08-23 )SAE J1939/05 发动机故障诊断方面的应用Issued 2008-2-21 )SAE J1939/11 物理层,250K 比特/秒,屏蔽双绞线Revised 2006-9-18 )SAE J1939/13 物理层,非车载诊断连接器Revised 2004-3-11 )SAE J1939/15 物理层,250K 比特/秒,非屏蔽双绞线Revised 2008-8-21 )SAE J1939/21 数据链路层Revised 2006-12-22 )SAE J1939/31 网络层Revised 2004-4-2 )SAE J1939/71 车辆应用层Revised 2008-1-28 )SAE J1939/73 诊断应用层Revised 2006-9-8 )SAE J1939/74 应用层信息配置Revised 2006-11-21 )SAE J1939/75 应用层设置及工业化Revised 2007-06-21 )SAE J1939/81 网络管理层Revised 2003-5-8 )SAE J1939/82 相容性-卡车和客车Issued 2008-8-11CAN的发展概况)20世纪80年代,Bosch的工程人员开始研究用于汽车的串行总线系统)1986年,Bosch在SAE(汽车工程师协会)大会上提出了CAN)1987年,INTEL就推出了第一片CAN控制芯片—82526;随后Philips半导体推出了82C200。
SAE_J1939介绍
2、格式简述 消息格式遵循CAN 规范。本标准参考的 CAN 规范是1991 年9 月的“CAN2.0B”。 但本标准与CAN 规范有一定的差别。 “CAN 2.0B”包括两种消息格式:标准帧 (11位)和扩展帧(29位)。采用本标准的设备 必须使用扩展帧格式。
3、格式
3.1、消息/帧格式
3.2参数组编号(PGN)
3.3协议数据单元(PDU)
定义:P 是优先级,R 是保留位,DP 是数据页,PF 是 PDU 格式,PS 是特定PDU,SA 是源地址。
注:当PF<240时(PDU1) :PS为目标地址(DA) 当PF≥240时(PDU2) :PS为组扩展域(GE)
PDU就是帧的仲裁段,见下图:
3.4诊断故障代码(DTC)
在识别CAN 数据帧的数据域属于哪个参数组时, 需要一个24 位的值。包括:高6位固定为0(6 位)、保留位R(1位)、数据页位DP(1位)、 PDU 格式域PF(8 位)和组扩展域PS(8位)。 名称:固定为0 位: 23-18 R 17 DP PF 16 15-8 PS 7-0
注:当PF<240时:PS为0 当PF≥240时:PS为组扩展域
二、数据链路层 1、符号缩写的含义
ACK BAM CAN CRC CTS DA DLC DP EOF ID IDE LLC LSB MAC MF MSB NA 确认 广播公告消息 控制器局域网 循环冗余码校验 清除发送 目标地址 数据长度码 数据页 帧结束 标识符 标识符扩展位 逻辑链路控制 最低有效字节或位 介质访问控制 制造商 最高有效字节或位 禁用 NACK P PDU PF PGN PS GE DA R RTR SA SOF SRR TP Th Tr un 否定 优先级 协议数据单元 PDU 格式 参数组编号 特定PDU 组扩展 目标地址 保留 远程传输请求 源地址 帧起始 代用远程请求 传输协议 保持时间 响应时间 未定义
SAE J1939-11协议
路面车辆推荐操作规程(被采纳为美国国家标准)SAEJ1939-11:物理层,250K比特/秒,屏蔽双绞线前言本系列SAE推荐操作规程是由卡车及客车电子电气委员会所属的卡车及客车控制及通信小组委员会制定的。
该小组委员会的目标是针对电控单元的需求、设计和使用,提交信息报告、制定推荐操作规程。
这些电控单元在汽车部件之间传递着电子信号和控制信息。
本规程的使用不限于卡车和客车应用,其对于其他的应用也可以提供直接的支持,正如已在建筑及农业设备和固定式的动力系统。
本推荐操作规程的最终目标是形成工业标准,因此可能为适应实际应用和技术进步作出经常性的调整。
目录前言 (1)1 目标 (4)2 参考 (4)2.1 应用出版物 (4)2.1.1 SAE出版物 (4)2.1.2 ISO出版物 (4)2.1.3 军用出版物 (4)2.2 相关出版物 (5)2.2.1 (5)3 网络物理层描述 (5)3.1 物理层 (5)3.2 物理介质 (5)3.3 差动电压 (5)3.4 总线电平 (6)3.5 仲裁期间的总线电平 (6)3.6 一般模式总线电压范围 (6)3.7 总线终端 (6)3.8 内部电阻 (6)3.9 差动内部电阻 (7)3.10 内部电容 (7)3.11 差动内部电容 (7)3.12 位时间 (7)3.13 内部延迟时间 (10)3.14 CAN位时序请求 (11)4 功能性描述 (13)5 电气特性 (13)5.1 子数据 (13)5.1.1 电子控制单元 (13)5.1.1.1 绝对最大额定值 (14)5.1.1.2 直流参数 (14)5.1.1.3 交流参数 (15)5.1.2 总线电压——操作的 (15)5.1.3 静电放电器(ESD) (15)5.1.4 物理层示例电路 (15)5.2 物理媒介参数 (16)5.2.1 总线 (17)5.2.2布局 (17)5.2.3 终端电阻 (17)5.2.4 屏蔽终端 (18)5.3 连结器规定 (18)5.3.1 连接器电子性能要求 (19)5.3.2 连接器机械性要求 (19)6 一致性测试 (20)6.1 ECU的隐性输出 (20)6.2 V CAN-H和V CAN-l的内部电阻 (21)6.3 内部不同电阻 (21)6.4 ECU的隐性输入的阀限 (21)6.5 ECU的显性输出 (22)6.6 ECU的显性输出阀限 (22)6.7 内部延迟时间 (23)7 总线错误的讨论 (23)7.1 网络连接失败 (23)7.2 接点能量或地丢失 (24)7.3 断开遮蔽 (24)7.4 开放和短错误 (24)8 注意 (25)8.1 旁注 (25)附录A 物理层电路范例 (26)A.1 物理层例1 (26)A.2 物理层例2 (26)A.3 物理层例3 (27)附录B 推荐的电缆终端制造过程 (29)B.1 推荐的电缆终端制造过程 (29)附录C 推荐的电缆接合工序 (30)C.1 推荐的电缆接合工序 (30)附录D 推荐的电缆修复工序 (32)D.1 推荐的电缆修复工序 (32)附录: (33)理论基础 (33)SAE标准和ISO标准之间的关系 (33)应用 (33)参考文件 (33)1目标本推荐规程供轻型、中型或重型的车辆或者合适的使用车辆派生部件(如发动机组)的固定设施使用。
SAEJ1939标准整理
SAE J1939协议整理目录1.背景介绍 (3)2.SAE J1939标准明细 (3)3.与OSI模型关系 (3)4.SAE J1939标准分层 (4)4.1.物理层 (4)4.2.数据链路层 (6)4.3.网络层 (12)4.4.应用层 (13)4.5.故障诊断 (16)4.6.网络管理 (23)4.7.SAE J1939应用实例 (28)1.背景介绍of Automotive Engineers)制SAE J1939协议是由美国汽车工程师协会(SAE:Society定的主要针对商用车的CAN总线通信协议。
1)基于CAN2.0B协议制定(CAN2.0B是德国Bosch制定的通信协议,采用扩展帧)2)主要应用对象为客车、载重货车、船舶农业机械等非路面设备3)J1939的通信速率可达250Kpbs2.SAE J1939标准明细标准号标准名称修改日期SAE J1939车辆网络串行通信的控制总标准Revised2007-10-9SAE J1939/01卡车及客车等路面控制及信息网络Issued2000-09-1SAE J1939/02农业设备等非路面控制及信息网络Issued2006-08-23SAE J1939/05发动机故障诊断方面的应用Issued2008-2-21SAE J1939/11物理层,250K比特/秒,屏蔽双绞线Revised2006-9-18SAE J1939/13物理层,非车载诊断连接器Revised2004-3-11SAE J1939/15物理层,250K比特/秒,非屏蔽双绞线Revised2008-8-21SAE J1939/21数据链路层Revised2006-12-22SAE J1939/31网络层Revised2004-4-2SAE J1939/71车辆应用层Revised2008-1-28SAE J1939/73诊断应用层Revised2006-9-8SAE J1939/74应用层信息配置Revised2006-11-21SAE J1939/75应用层设置及工业化Revised2007-06-21SAE J1939/81网络管理层Revised2003-5-8SAE J1939/82相容性-卡车和客车Issued2008-8-113.与OSI模型关系System Interconnection)。
SAEJ1939
SAEJ1939协议更大程度地发挥了CAN优异的性能。
(二)SAEJ1939报文帧格式
J1939的信息是以PDU(Protocol Data Unit协议数据单元)的形式进行传输的,PDU的封装在应用层中完成。PDU提供了组织信息的框架,这一点对于每一个要发送的CAN数据帧来说是至关重要的。
车速、发动机转速、冷却水温度、燃油油量采用步进电机(VID29-02)驱动指针指示,里程信息采用里程表专用段式LCD模块LCM1010显示,各开关和报警信号则采用LED指示灯。
二、CAN总线及SAEJ1939协议分析
(一)CAN总线及SAEJ1939协议介绍
CAN(Controller Area Network)总线是德国Bosch公司在80年代初为解决数据可靠交换而开发的一种串行数据通信总线,它强调了实时性,又具有极高的可靠性和独特的设计,在现代汽车中已经成为必备装置。为进一步减少车身线束,方便故障诊断,满足主要电控单元和系统间大量数据信息实时交换的需要,使汽车各方面性能趋于最佳状态,基于CAN总线的C类网络被应用于车内数据通讯。CAN总线有效地将发动机电控系统、驱动防滑系统、自动巡航系统等连接成为一个综合控制系统,使整车性能得以大幅提高。
对于现代汽车而言,汽车仪表是汽车信息的中心,集中、直观、迅速地反映了汽车在行驶过程中的各种动态指标,如行驶速度、里程、电系状况、制动、压力、发动机转速、冷却液温度、油量、及各种危险报警。
汽车仪表已成为体现汽车高精尖技术的主要部分。
本文所述的总线式汽车仪表一方面具有传统仪表的数据采集功能,另一方面利用CAN总线技术,使该仪表成为车身网络的一部分,集中处理来自其他电控单元的数据,且其通讯符合SAEJ1939协议,可以与汽车上其他按照此协议工作的电控单元进行通讯。
SAE-J1939-11协议
路面车辆推荐操作规程(被采纳为美国国家标准)SAEJ1939-11:物理层,250K比特/秒,屏蔽双绞线前言本系列SAE推荐操作规程是由卡车及客车电子电气委员会所属的卡车及客车控制及通信小组委员会制定的。
该小组委员会的目标是针对电控单元的需求、设计和使用,提交信息报告、制定推荐操作规程。
这些电控单元在汽车部件之间传递着电子信号和控制信息。
本规程的使用不限于卡车和客车应用,其对于其他的应用也可以提供直接的支持,正如已在建筑及农业设备和固定式的动力系统。
本推荐操作规程的最终目标是形成工业标准,因此可能为适应实际应用和技术进步作出经常性的调整。
目录前言 (1)1 目标 (6)2 参考 (6)2.1 应用出版物 (6)2.1.1 SAE出版物 (6)2.1.2 ISO出版物 (7)2.1.3 军用出版物 (7)2.2 相关出版物 (7)2.2.1 (7)3 网络物理层描述 (8)3.1 物理层 (8)3.2 物理介质 (8)3.3 差动电压 (8)3.4 总线电平 (8)3.5 仲裁期间的总线电平 (9)3.6 一般模式总线电压范围 (9)3.7 总线终端 (9)3.8 内部电阻 (9)3.9 差动内部电阻 (10)3.10 内部电容 (10)3.11 差动内部电容 (10)3.12 位时间 (10)3.13 内部延迟时间 (13)3.14 CAN位时序请求 (15)4 功能性描述 (17)5 电气特性 (18)5.1 子数据 (18)5.1.1 电子控制单元 (18)5.1.1.1 绝对最大额定值 (19)5.1.1.2 直流参数 (19)5.1.1.3 交流参数 (21)5.1.2 总线电压——操作的 (21)5.1.3 静电放电器(ESD) (21)5.1.4 物理层示例电路 (21)5.2 物理媒介参数 (21)5.2.1 总线 (22)5.2.2 布局 (22)5.2.3 终端电阻 (23)5.2.4 屏蔽终端 (24)5.3 连结器规定 (24)5.3.1 连接器电子性能要求 (25)5.3.2 连接器机械性要求 (26)6 一致性测试 (27)6.1 ECU的隐性输出 (27)6.2 V CAN-H和V CAN-l的内部电阻 (28)6.3 内部不同电阻 (29)6.4 ECU的隐性输入的阀限 (29)6.5 ECU的显性输出 (30)6.6 ECU的显性输出阀限 (30)6.7 内部延迟时间 (31)7 总线错误的讨论 (32)7.1 网络连接失败 (32)7.2 接点能量或地丢失 (32)7.3 断开遮蔽 (32)7.4 开放和短错误 (32)8 注意 (35)8.1 旁注 (35)附录A 物理层电路范例 (36)A.1 物理层例1 (36)A.2 物理层例2 (37)A.3 物理层例3 (38)附录B 推荐的电缆终端制造过程 (40)B.1 推荐的电缆终端制造过程 (40)附录C 推荐的电缆接合工序 (41)C.1 推荐的电缆接合工序 (41)附录D 推荐的电缆修复工序 (44)D.1 推荐的电缆修复工序 (44)附录: (45)理论基础 (45)SAE标准和ISO标准之间的关系 (45)应用 (46)参考文件 (46)1目标本推荐规程供轻型、中型或重型的车辆或者合适的使用车辆派生部件(如发动机组)的固定设施使用。
诊断协议解析-J1939
J1939诊断协议解析目录目录 (2)1 范围 (3)1.1 文档说明 (3)1.2 文档范围 (3)2 规范性引用文件 (3)3 术语和定义及缩写 (3)3.1术语定义 (3)3.2英文缩写 (6)4 协议定义 (6)4.1总体架构 (6)4.2数据链路层 (6)4.2.1消息/帧格式 (6)4.2.2 协议数据单元(PDU) (7)4.2.3消息类型 (9)4.2.4传输协议功能 (9)4.3应用层——诊断 (11)4.3.1诊断故障码定义 (11)4.3.2激活状态的诊断故障码DM1 (12)附录 (16)1 范围1.1 文档说明针对每个模块的诊断功能的开发,除了本文档以外可能还需要另一个单独针对此模块的文档——《XX模块诊断内容》,这个文档定义了DM1 服务中的故障码,以及其他需要单独说明的内容。
即:1) 一个电器模块的诊断功能开发需要的全部文档包括——本文档以及《XX模块诊断内容》1.2 文档范围2 规范性引用文件下列文件中的条款通过本协议的引用而成为本协议的条款。
凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本协议,然而,鼓励根据本协议达成协议的各方研究是否可使用这些文件的最新版本。
凡是不注日期的引用文件,其最新版本适用于本协议。
SAE 1939-21:2001 商用车控制系统局域网络(CAN)通信协议第四部分数据链路层SAE 1939-73:2004 商用车控制系统局域网络(CAN)通信协议第六部分应用层-诊断3 术语和定义及缩写本协议引用SAE J1939-21及SAE J1939-73中术语及定义。
本协议涉及到的英文缩写:3.1术语定义●帧Frame组成一个完整消息的一系列数据位。
帧又被划分成几个域,每个域包括了预定义类型的数据。
●CAN 数据帧CAN Data Frame组成传输数据的CAN 协议帧所必需的有序位域,以帧起始(SOF)开始以帧结束(EOF)结尾。
浅析J1939协议附下载
浅析J1939协议附下载SAE J1939协议是基于CAN2.0B协议之上的应⽤层协议,但是SAE J1939协议并不仅仅是个应⽤层协议,她对物理层,数据链路层,⽹络层,应⽤层,故障诊断,⽹络层管理层等都做了详细的规定,只不过这其中很多规定都跟CAN2.0B⼀致。
我们这⾥只介绍J1939的应⽤层,对软件开发来说已经⾜够。
对熟悉CAN2.0B协议的⼩伙伴来说,其实只要掌握下⾯⼏个关键点,J1939就瞬间不再神秘。
J1939协议是基于CAN2.0B的应⽤层协议,所有J1939报⽂都是使⽤29位标志符。
CAN报⽂中我们有11位标志符的标准帧也有29位标志符的扩展帧,在J1939协议中,我们所有报⽂都是29位标志符, 数据域则跟CAN报⽂的数据没有区别。
CAN报⽂是基于ID的,⽽J1939协议是基于PGN的。
这⼀点⼏乎就是J1939协议的全部内容。
CAN2.0B使⽤29位的标志符来区分不同的报⽂,J1939对这29标志符进⾏了重新的分类和解释。
打个不是很恰当的⽐⽅,以前CAN2.0B协议根据⼈的体重来区分不同的⼈,只要⼀样重(ID)就认为是相同的⼈群,体重越瘦的就越是受CAN2.0B协议喜欢(优先级越⾼),现在J1939也是测量体重,只不过是把⼈的脑袋,躯⼲,双⼿,双腿分别测量,然后对这⼏个重量进⾏某种运算(⽐如脑袋重量的平⽅,躯⼲重量与双⼿重量乘积,以及双腿重量这三个数字之和), 只要运算的结果(PGN)⼀致,就认为这些⼈是⼀个⼈群。
也就是说,J1939对CAN2.0B中的29位标志进⾏了重新解释,我们使⽤下⾯这张图来说明⼀下:J1939对CAN ID进⾏了重新划分,加上最多8个字节的数据域,构成了J1939 的协议数据单元(Protocol Data Unit, PDU),其中前3位表⽰优先级位(Priority, P),之后是扩展数据页位(Extended Data Page, EDP),数据页位(Data Page,DP), PDU格式位(PDU Format, PF), PDU特定域位(PDU Specific, PS), 源地址位(Source Address,SA) 以及数据域(Data Filed)。
sae1939协议的架构
sae1939协议的架构SAE J1939协议是一种用于车辆和重型机械设备之间进行通信的协议。
它是一种基于控制器局域网络(CAN)的协议,旨在提供可靠的数据交换和通信。
SAE J1939协议的架构可以从以下几个方面来进行说明:1. 物理层,SAE J1939协议使用CAN总线作为物理层的通信介质。
CAN总线是一种串行通信协议,可以用于多个节点之间的数据传输。
2. 数据链路层,在SAE J1939协议中,数据链路层负责将数据分成较小的数据包,并添加必要的校验和和控制信息。
这些数据包被称为Protocol Data Units(PDU),并且可以通过CAN总线进行传输。
3. 网络层,SAE J1939协议的网络层定义了节点之间的通信规则和协议。
每个节点在网络中都有唯一的地址,并且可以通过广播或点对点方式进行通信。
网络层还定义了一些重要的参数,如数据传输速率、消息优先级和节点状态等。
4. 传输层,传输层负责确保数据的可靠传输。
它使用一种称为Transport Protocol(TP)的机制来处理大型数据包的分段和重组。
传输层还提供了错误检测和纠正的功能,以确保数据的完整性。
5. 应用层,SAE J1939协议的应用层定义了一套标准的数据格式和消息类型,用于不同节点之间的数据交换。
这些消息类型包括车辆状态、传感器数据、控制命令等。
应用层还定义了一些标准的参数和参数组,用于描述和识别不同的数据和功能。
总体而言,SAE J1939协议的架构是一个分层的结构,每一层都有不同的功能和责任。
它提供了一种标准化的方式,使得车辆和重型机械设备之间可以进行可靠的数据交换和通信。
这种协议的使用可以提高设备的互操作性和系统的可靠性,同时也方便了设备的维护和故障排除。
ABS SAE J1939通讯协议
发生故障的部件
1 轴左轮速传感器 1 轴右轮速传感器 2 轴左轮速传感器 2 轴右轮速传感器 3 轴左轮速传感器 3 轴右轮速传感器 1 轴左压力调节阀
1 轴右压力调节阀
2 轴左压力调节阀
2 轴右压力调节阀
3 轴左压力调节阀
3 轴右压力调节阀
E2PROM 电源
5
五.ABS 系统 J1939 相关信息体
JIAET ABS 系统 SAE J1939 通讯诊断协议
济南开发区捷特汽车电子研究所 2006 年 3 月 29 日
1
一.概述
众所周知 ABS 是车辆防抱制动系统作为一个实际控制系统,它很重要的一个功能是具有
故障诊断系统,ABS 是一种安全部件,所以它就有完善的诊断系统,以便发生故障时及时通
知驾驶员,使他能够及时发现问题进行维修,或及时解除 ABS 系统,以免系统发生误动作。
长度
SPN 定义
1.1
2位
ASR 发动机控制激活
1.3
2位
ASR 制动控制激活
1.5
2位
防抱系统(ABS)激活
1.7
2位
EBS 制动开关
2
1 字节 制动踏板位置
3.1
2位
ABS 越野开关
3.3
2位
ASR 越野开关
3.5
2位
ASR“斜坡保持”开关
3.7
2位
牵引控制强制开关
4.1
2位
加速踏板互锁开关
4.3
ABS 控制器主要与发动机和变速器有关,下面为 ABS 控制器发送和接收信息。
表 6 ABS 控制器发送和接收信息列表
辩识位 18 F0 01 0B 0C F0 04 00 18 F0 00 10 18 F0 00 0F 18 F0 00 29 0C 00 00 0B 0C 00 10 0B
SAEJ1939协议
SAEJ1939协议_综述(转载)发表于2007/10/26 11:16:06SAE J1939协议是由美国汽车工程师协会——卡车和公共汽车电气电子委员会下的卡车和公共汽车控制和通讯网络分委员会制定的高层CAN网络通讯协议。
它主要用于为重型道路车辆上电子部件间的通讯提供标准的体系结构[1]。
1 SAEJ1939协议构成文件SAEJ1939协议包括如下几部分内容:SAE J1939-11 物理层,250 Kbits/s,屏蔽双绞线SAE J1939-13 物理层,离线诊断连接器SAE J1939-15 简化的物理层,250 Kbits/s,非屏蔽双绞线SAE J1939-21 数据链路层SAE J1939-31 网络层SAE J1939-71 车辆应用层SAE J1939-73 应用层-诊断SAE J1939-81 J1939网络管理协议-----------------------------------------------------------------------------------2 各层协议的功能2.1 物理层SAEJ1939的物理层规范包含SAE J1939-11(物理层,250 Kbits/s,屏蔽双绞线)、SAE J1939-15(简化的物理层,250 Kbits/s,非屏蔽双绞线)和SAE J1939-13(物理层,离线诊断连接器)三部分。
其中SAE J1939-11和SAE J1939-15给出了物理层为屏蔽双绞线和非屏蔽双绞线时的网络物理描述、功能描述、电气规范、兼容性测试、总线错误讨论。
而SAE J1939-13(物理层,离线诊断连接器)则定义了离线诊断连接器的通用需求、性能需求和物理需求。
2.2数据链路层SAEJ1939的数据链路层在物理层之上提供了可靠的数据传输功能。
通过数据链路层的组织,发送的CAN数据帧具有必需的同步、顺序控制、错误控制和流控制等功能。
其中,流控制是通过一致的信息帧格式完成[2]。
第五章 SAE J1939
备注
地址即源地址,唯一标识网络上的一个设备 地址功能 • 保证报文ID的唯一 • 确定报文的来源 两个特殊的地址 • 254——空地址
– 仅用于源地址域(SA),仅用于网络管理
• 255——全局地址
– 仅用于目标地址(DA)
报文格式
D
P RP
PF
3 11
8
J1939 PDU
PS
SA
8
8
... J1939简介
SAE J1939是一种支持闭环控制的在 多个ECU间高速通信的网络协议;主 要应用于货车和客车,及农、林业 运输机械上;以CAN2.0B为网络核心, 是其应用层的具体实现。
备注:CAN2.0B和1939的关系, 1939是CAN2.0B的具体应用。 乘用 车不用,各自有标准
CRC 界定
符
应答 间歇
应答 界定 符
7位帧结束
报文格式
PDU
J1939通过PDU定义了一个框架,用来组织数 据帧中J1939协议相关的信息
PDU由数据帧中的ID 和数据场组成
Arbitration Field
Control Field
Data Field:0-64
S O F
11 bit IDENTIFIER
PF
PS
SA
数据场
PDU 3 1 1
8
8
8
0~64
PF-PDU格式
用来确定PDU的2种格式
8位
0-239(00-EF)表示PDU1
240-255(F0-FF)表示PDU2
PGN的一部分
PDU1格式报文——向特定或全局地址发送
PDU2格式报文——向全局地址发送
报文格式
J1939协议简介
J1939协议简介缩写ACK Acknowledgment:应答BAM Broadcast Announce Message:广播通知消息CAN ontroller Area Network:控制器局域网CRC Cyclic Redundancy Check:循环冗余校验CTS Clear-To-Send:清除发送DA Destination Address:目标地址DLC Data Length Code:数据长度代码DP Data Page:数据页EOF End of Frame:框架结束或帧结束ID Identifier:标志符IDE Identifier Extension Bit:标志符扩展位LLC Logical Link Control:逻辑连接控制LSB Least Significant Byte or Least Significant Bit:最小有意义位或字节MAC Medium Access Control:媒体通道控制MF Manufacturer:制造商MSB Most Significant Byte or Most Significant Bit:最大有意义位或字节NA not Allowed:不应答NACK Negative-Acknowledgment:错误应答P Priority:优先级PDU Protocol Data Unit:协议数据单元PF PDU Format:协议数据单元格式PGN Parameter Group Number:参数组代码PS PDU Specific:协议数据单元细节GE Group Extension:组扩展DA Destination Address:目标单元地址R Reserved:保留RTR Remote Transmission Request:远程传输请求RTS Request-To-Send:发送请求SA Source Address:原地址SOF Start of Frame:帧开始SRR Substitute Remote Request:替代远程请求TP Transport Protocol:传送协议T h Hold Time:保持时间T r Response Time:响应时间un Undefined:没有定义CAN2.0B包含两种格式的说明:标准格式和扩展格式。
j1939协议
j1939协议J1939协议是一种用于车辆通信的标准协议。
它是由SAE (美国汽车工程师协会)制定的一种协议,旨在为汽车电子控制系统提供统一的通信标准,以实现不同厂商制造的车辆控制器之间的交互和协调。
J1939协议已经被广泛应用于汽车、重型车辆、农业机械、工程机械等领域。
J1939协议的设计使其适用于各种应用场合,并提供了一些基本的功能。
例如,它支持多种物理层接口,包括CAN和其他现有的数据总线;它提供了一系列标准的报文格式,允许通信的控制器进行简单的数据交换;它还提供了一些必要的通信保障和错误处理机制,以确保通信的可靠性和正确性。
在J1939协议中,每一个控制器被称作“节点”,每个节点都有唯一的标识符。
这个标识符是一个29位的数值,在J1939协议中称为“源地址”(SA)。
当一个节点需要发送数据时,它首先要选择一个接收方,然后构建一个符合J1939协议格式的报文,并将其发送出去。
接收方在接收到报文后,将会根据协议规定的方式对报文进行解析和处理。
J1939协议的报文格式分为四个部分:先导字节、ID、数据段和CRC。
其中,ID部分是最重要的部分,它可以用来描述报文的类型、发送方和接收方等信息。
数据段则包含了实际的数据,可以是控制命令、传感器数据或者是故障信息等内容。
CRC部分则用来检验报文的正确性,以保证传输的设备是正常的。
J1939协议中,每个节点都有不同的功能和角色。
例如,某些节点可能负责采集数据,将其传输到其他节点;某些节点可能负责接收控制命令,并将其转发到系统中的其他节点。
为了让这些不同的节点能够协同工作,J1939协议规定了一些标准的数据格式和交互方式。
除了基本的通信功能之外,J1939还提供了一些高级的功能,如故障诊断和管理。
在汽车电子控制系统中,各个控制器可能会出现各种故障,为了避免这些故障对整个系统造成影响,J1939协议定义了一套故障诊断和管理系统。
通过这个系统,各个控制器可以及时地发现和处理故障,保证整个系统的可靠性和安全性。
J1939应用层协议详细描述
J1939应用层协议详细描述了用于J1939网络的每个参数,包括其数据长度、数据类型、分辨率、范围及参考标签,并为每个参数分配了一个编号(SPN)。
由于J1939协议是以协议数据单元(PDU)的形式进行传输,而一个PDU包含8个字节数据,因此,需要对这些参数进行组合。
在J1939应用层协议中还详细定义了参数组,包括每组参数的更新率、有效数据长度、数据页、PDU格式、PDU细节、默认优先权及参数组的内容,并为每个参数组分配一个参数组编号(PGN)。
PGN(parameter group number)是一个24位的值,包括保留位、数据页位、PF(PDU格式场)和PS(群扩展场)等要素。
SPN(SPN: Suspect Parameter Number)是PG(参数组)下面的具体参数的一个编号,而PGN是参数组编号,可以理解为一个PGN包含了按一定方法分类的一组参数,而每个具体参数又有它自己的编号(就是SPN)。
SAE J1939的应用层以PGN和SPN的方式具体规定了车辆使用的每个参数的数据长度,数据类型,分辨率和数据范围等。
18 EB 00 F9 是一个报文的29位标示符,70 E3 FF FF FF FF FF FF是后面的数据域。
18EB00F9化成2进制就是 110 00 1110 1011 0000 0000 1111 1001把这个按照PDU的格式代进去就知道这条报文的意思了。
后面的数据域含义可以通过前面得到的PFPS知道PGN,然后查看J1939应用层关于该PGN的数据位就能知道这个数据的含义。
在各个位转化到PGN的过程中,如果PF的值小于240(十进制)时,PGN的低字节置零(个人理解当PF的值小于240时,PS的置0)。
举一个例子:请求PGN的数据页位(DP)=0;PF=234(#EA)那么她的参数群编号PGN=#00EA00。
因为PF=234<240,所以PS=#00注:PF(PDU格式场)和PS(群扩展场)都是八位CAN通讯协议中PGN的计算数据链路层通过协议数据单元(PDU)组织数据帧中的协议相关信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SAE J1939 协议简介(大结局)
由于应用层会根据不同的行业和需求有所不同,所以应用层的开发可以参考标准自行研究,关于这个系列,今天是最后一集,我们来讲讲J1939的网络管理层(J1939/81)。
其实任何一种协议单看协议文件都是很枯燥的,但是其实协议软件的开发流程图就隐含在这协议描述中,多看几遍,多读几遍,多琢磨琢磨,在找些参考资料,相信你一定会理解协议中的需求,为你的后续开发扫平障碍。
肯定有人会问,总线上有那么多节点,总线上的那么多节点是如何管理和通信的呢?
网络管理层就是解决这些问题的。
先来讲讲什么叫控制器应用程序。
控制器应用程序(CA)Controller Application(CA)
控制器为电控单元(ECU) 内执行一种特殊控制功能的软件和硬件。
控制器里的软件称为“控制
器应用程序”(CA)。
一个ECU 可以执行一个或多个控制功能,因此可以包括一个或多个CA。
为了能够在本标准网络上进行通信,每个CA都必须有一个地址以及一个和它联系在一起的名字。
网络管理层为唯一识别网络上的CA、管理地址分配和网络错误提供必要的定义和程序。
每个CA应能提供唯一的64位名字(8个字节).CA必须首先声明地址成功,然后才能向网络发送,如果CA按地址声明过程声明地址失败,必须按标准方式进行处理并向网络报告。
在采用
J1939标准的网络中,地址用于保证消息标识符的唯一性以及表明消息的源地址。
地址声明消息包括地址和名字,用于把名字和网络中的某个地址关联在一起。
每个CA在开始正常的网络通信之前,必须有一个名字并且成功声明了一个地址。
名字有两个用途:
其一用于表示CA的功能描述(如发动机1,发动机2)
其二,作为一个数值,用于地址仲裁。
把一个地址与唯一的名字相关联,也就把一个地址和一个CA关联起来。
ECU的制造商和网络
集成商必须保证所有在一个网络上传输消息CA的名字是唯一的。
网络上的每个CA都应有一个名字,这样CA可以根据它的主要功能被唯一标识。
当多个CA试着声明同一个地址时,名字
的所有8 个字节作为一个数值用于仲裁过程,这样进一步增强了标识符的唯一性,网络上的每
个CA依次得到一个唯一的地址,能够正确地和其它ECU仲裁CAN数据帧。
关于64位名字各
个域的描述和使用,大家可以在开发的时候根据自己的系统或工程按照标准的要求填写,不用死记硬背这些域的定义.
总之一句话,用地址和名字来保证节点的唯一识别性。
在发送任何应用层的消息之前,必须先进行地址声明,地址声明PGN(60928)。
每个CA 在完成上电自检(POST)后,发送其它通信消息之前,要通过地址声明消息获得一个网络中唯一的源地址。
成功声明源地址的过程:首先发送一个地址声明消息声明地址;其后没有收到竞争该地址的地址声明消息。
地址在0-127 和248-253 范围内,有单一地址的CA,可以在发送地址声明信息后立即开始正常的网络通信。
对于其它的CA在使用地址之前要允许仲裁地址,因此要等到发送地址声明消息250ms 后才可以开始或恢复正常的网络通信。
对于接收到地址声明请求消息如何处理
接收到地址声明消息请求后,CA必须发送地址声明消息。
消息包括:CA已经声明到并正在使用的地址、CA还没有声明过但它想声明的地址及空地址(CA已经声明过但没有成功).没有尝试地址声明的CA不能参与网络通信直至它尝试声明了一个源地址。
CA在没有尝试地址声明之前不能发送不能声明地址消息或其它任何消息。
如果你一时半会不能理解这里的简介也没有关系,只要记住,每个节点必须用地址和名字来保持自己的唯一性。
所以在上电后,必须先完成地址声明才能开始通信。
在具体开发时候可以在找J1939(81)的详细文档仔细琢磨研究。