J1939协议理解
- 格式:doc
- 大小:371.50 KB
- 文档页数:5
J1939数据协议的格式理解
(一)J1939数据包的格式。
见“图表1”
图表 1
格式定义:
P:优先级
R:保留位
DP:数据页
PF:PDU数据格式域,(8位的数据域)当数据大小低于240时为PDU1格式;当大于240
时为PDU2格式。
PS:PDU细节,为一个8位的数据域,在PDU1数据格式下PS表示的是一个地址;在PDU2
数据格式下,PS表示的是一个组扩展值。
SA:源地址
Data Field:数据域为0-8字节的数据。
参数组的计算:
通常我们只用到PDU1的数据格式,其参数组号(PGN)的计算方法为:
PGN=PF*256+PS
例如:PF=240;PS=4则PGN=240*256+4=61444 “614444”为J1939协议的数据参数组号,根据协议可以查到该参数组号的详细描述。
图表 2
可以在J1939协议中查找数据参数组号为61444的数据信息也可以在具体的发动机的数据表中来查询该书剧组编号的信息。
J1939故障诊断协议本协议旨在明确在J1939通讯协议下,故障诊断过程中各方的责任、权利和义务,以确保故障诊断的准确性和高效性。
本协议适用于采用J1939通讯协议进行故障诊断的所有相关方。
一、协议范围本协议适用于使用J1939通讯协议进行故障诊断的车辆、设备和系统,包括但不限于商用车、工业设备和农业机械等。
二、术语定义1.J1939通讯协议:一种用于车辆通信的网络协议,广泛应用于商用车、工业设备和农业机械等领域。
2.故障诊断:通过对车辆、设备和系统的运行状态进行监测和分析,识别并定位故障的过程。
3.故障码:用于标识特定故障的一组代码,便于故障诊断和维修。
三、协议内容1.故障诊断流程(1)相关方应遵循J1939通讯协议的标准和规范进行故障诊断。
(2)在故障诊断过程中,相关方应确保数据的准确性和完整性,并及时共享必要的信息。
(3)故障诊断完成后,相关方应提供详细的故障报告和维修建议。
— 1 —2.故障码管理(1)相关方应建立统一的故障码管理体系,确保故障码的准确性和一致性。
(2)相关方应及时更新和维护故障码数据库,以便在故障诊断过程中快速准确地识别故障。
3.技术支持和培训(1)相关方应提供必要的技术支持和培训,确保故障诊断人员具备相应的技能和能力。
(2)相关方应定期评估故障诊断人员的技能水平,并提供必要的培训和提高计划。
四、协议执行和监督1.本协议的执行和监督由相关方共同负责。
2.相关方应定期评估协议的执行情况,并对存在的问题进行及时改进和优化。
3.对于违反本协议规定的行为,相关方有权采取相应的措施予以纠正和处理。
五、附则1.本协议未尽事宜可由相关方另行协商补充。
2.本协议的修改和终止应由相关方共同协商决定。
3.本协议自签署之日起生效,有效期为______年。
到期后可根据实际情况进行续签或修改。
— 2 —。
j1939协议J1939协议是一种用于重型商用车辆之间通信的协议。
该协议基于CAN总线,旨在提供一种标准化的数据通信方式,以便不同设备之间可以相互交换信息。
J1939协议定义了一套规范,包括消息格式、数据结构和网络管理等方面的内容。
它为商用车辆提供了一种灵活的通信方式,使不同的设备可以通过CAN总线发送和接收信息。
J1939协议的消息格式是基于CAN数据帧的,由一个11位的标识符和一个8字节的数据字段组成。
标识符用于标识不同类型的消息,而数据字段则用于传输实际的数据。
在J1939协议中,有一些预定义的消息格式,如DM1、DM2和TPDT等。
这些消息格式包含了与车辆故障诊断和数据传输相关的信息。
通过这些消息格式,设备可以向车辆发送警告信息,并接收来自车辆的故障诊断数据。
除了消息格式外,J1939协议还定义了一套数据结构和网络管理规则。
数据结构用于描述不同类型的数据,在传输过程中保持一致性和可靠性。
而网络管理规则用于管理CAN总线的通信,包括网络初始化、错误处理和带宽分配等。
J1939协议在重型商用车辆中有广泛的应用。
例如,它可以用于车辆的故障诊断系统,通过发送故障码来检测和诊断车辆的故障。
它还可以用于车辆的监控系统,通过传输车辆状态数据来实时监测车辆的性能。
此外,J1939协议还支持数据传输和实时控制。
通过发送和接收数据报文,设备可以实现实时的数据传输和控制功能。
例如,它可以用于车辆的制动系统,通过发送制动指令来控制车辆的制动力。
总体而言,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 错误处理机制:错误处理机制应能够检测和处理数据传输过程中的错误,包括但不限于传输错误、接收错误和校验错误等。
saej1939标准介绍
SAE J1939标准是一种用于商用车辆和重型设备之间进行通信的控制器局域网络(CAN)协议。
这个标准由SAE国际制定,旨在提供一种统一的通信协议,以便不同制造商的电子控制单元(ECU)能够相互通信,实现数据交换和系统集成。
SAE J1939标准涵盖了许多方面,包括物理层、数据链路层、网络层和应用层。
物理层定义了电气特性和连接器规范,以确保不同设备之间的互操作性。
数据链路层负责错误检测和纠正,网络层管理数据包的路由和优先级,而应用层定义了通信的参数和消息格式。
这个标准广泛应用于卡车、拖车、农业和建筑设备等商用车辆领域,用于实现发动机控制、传感器监测、车辆诊断、车载通信和其他功能。
通过采用SAE J1939标准,不同制造商的设备可以更容易地集成到统一的车辆系统中,提高了设备的互操作性和可靠性。
总的来说,SAE 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:传送协议Th Hold Time:保持时间Tr Response Time:响应时间un Undefined:没有定义CAN2.0B包含两种格式的说明:标准格式和扩展格式。
J1939协议理解 今天读了 J1939协议的介绍文档,下面主要说说我的理解: 1、网络应用分为几个层 物理层 SAE J1939-11 数据链路层SAE J1939-21 网络层 SAE J1939-31 应用层 SAE J1939-71 故障诊断SAE J1939-73 网络管理层SAE J1939-81 2、下面主要说说数据链路层和应用层 数据链路层:为物理连接之间提供可靠的数据传输。
包括发送 步、顺序控制、 出错控制和流控制。
CAN 数据帧所必需的同首先要明白几个概念PGN :参数组编号 帧(Frame ):组成一个完整信息的一系列有序的数据位。
帧又被划分成几个域,每个 域包括了预定义类型的数据。
CAN 数据帧(CAN Data Frame ):组成 开始以帧结束(EOF )结尾。
标准帧(Standard Frame ):CAN2.0A 扩展帧(Extended Frame ):CAN2.0 BCAN 协议帧所必需的有序位域, 以帧起始(SOF )规范中定义的使用 11位标识符的CAN 数据帧。
规范中定义的使用 29位标志符的CAN 数据帧。
当一条报文包含参数组的数据长度包(Packet ):一个单一的 CAN 数据帧就是一个包。
小于等于8个字节时,这样的报文也称为包。
报文(Message ):指一个或多个具有相同参数组编号的(PGN )数据帧。
也就是说只要一个或多个 CAN 数据帧具有相同的 PGN 号,那他们就是属于一个报文。
):当具有相同参数组编号的所有数据需要使用多个 J1939报文。
每个CAN 数据帧拥有相同的标识符,多包报文(Mult ip acket Messages CAN 数据帧来传输时使用的一种 但在每个包中数据不同。
协议数据单元PDU 的格式it■kPDU 1PDUy■ M 嶋1 EDP0P PFDATAL L13时t 伽」PGN25仪苛歆幷PDU是J1939传输数据的格式,它基于CAN协议的扩展帧传输方式。
j1939协议
J1939协议是一种面向车辆电子控制系统的通信协议。
它是由美国卡车制造商和发动机制造商联合制定,主要用于汽车、卡车和工程机械等领域中各种电子设备之间的通讯。
J1939协议采用了CAN总线通讯方式,并且在CAN 数据
帧中设置有特定的标识符和数据格式,以保证各个设备之间的通讯与协同。
J1939协议可应用于各种车辆控制系统中的所有
功能,例如:发动机控制、变速器控制、制动系统、显示器、灯光控制等。
通过J1939协议,一个设备可以与其他设备进行双向通信。
J1939协议定义了许多参数集(PGN)和服务集(SPN)。
PGN包含协议中的所有信息,是通信的最小单位,用于定义消
息的内容和分区。
例如,PGN65265(0x00FEE1)是汽车接近传感器信息的标准信息,包含了车辆的距离、速度和车道信息。
而SPN则是一个16位的数字,用于表示参数的识别号。
它指
定了每个参数的编码方式、数据格式和范围等信息。
例如,SPN100(0x0064)表示刹车踏板信号的实际值。
J1939协议在实际应用中具有广泛的应用,例如车辆故障诊断、车辆远程监控、车辆自动驾驶等。
通过使用J1939协议,车辆控制系统中的各个设备可以高效地协同工作,有效地提高了汽车的安全性和可靠性。
同时,也为汽车制造商提供了更多的数据和故障诊断信息,促进了汽车制造和维修的进一步发展。
J1939协议协议名称:J1939协议一、引言J1939协议是一种用于重型商用车辆和柴油发动机之间通信的标准协议。
它定义了数据通信、电气连接和网络管理的规范,以实现不同设备之间的互操作性和数据交换。
本协议旨在提供一种统一的通信标准,以便各种设备能够有效地进行数据交换和协同工作。
二、范围本协议适用于重型商用车辆、柴油发动机及其相关设备,包括但不限于卡车、挖掘机、拖拉机、发电机组等。
它涵盖了数据通信、网络拓扑、通信速率、传输协议、数据格式和故障诊断等方面的规范。
三、术语和定义3.1 J1939:指J1939协议的简称。
3.2 数据链路层:指协议栈的一部分,负责提供可靠的数据传输和错误检测。
3.3 物理层:指协议栈的一部分,负责定义电气连接和传输介质的规范。
四、数据通信4.1 数据格式4.1.1 数据帧:J1939协议使用数据帧进行数据传输,每个数据帧包含一个标识符和一个数据字段。
4.1.2 标识符:数据帧的唯一标识,用于区分不同的数据源和数据类型。
4.1.3 数据字段:数据帧中的有效数据,用于传输实际的信息内容。
4.2 数据传输4.2.1 数据链路层:J1939协议使用数据链路层提供可靠的数据传输,包括数据帧的发送和接收、错误检测和纠正等功能。
4.2.2 物理层:J1939协议定义了多种物理层规范,包括CAN总线、RS-485等,用于实现数据的物理传输。
五、网络管理5.1 地址分配5.1.1 节点地址:J1939协议使用29位的节点地址进行设备的唯一标识,节点地址由网络管理器进行分配。
5.1.2 功能地址:J1939协议定义了一些特殊的功能地址,用于广播和特定功能的通信。
5.2 网络拓扑5.2.1 单总线拓扑:J1939协议支持单总线拓扑,即所有设备通过一个总线进行通信。
5.2.2 多总线拓扑:J1939协议还支持多总线拓扑,即多个总线之间通过网关进行通信。
六、故障诊断6.1 DTC码6.1.1 DTC码:指故障诊断码,用于标识设备故障的类型和位置。
SAEJ1939协议解析[SAE J1939]
使
⽤
指
南
硬件版本:V2.00
软件版本:V1.41
固件版本:V2.10
⼴东中⼭四海电⼦科技
⼀、SAE J1939接收说明:
如上图中,列表框⼀些项的意义,具体如下:1、P:报⽂的优先级;
R:保留位
DP:数据页
PF:PUD格式
DA:⽬标地址
GE:组扩展
SA:源地址
PGN(Hex):参数组的⼗六进制表⽰
PGN(Dec):参数组的⼗进制表⽰
PDU1:当PF<240 时,为PDU1格式
PDU2:当PF=240~255时,为PDU2格式
其中GE只对PDU2有效,DA只对PDU1有效
⼆、SAE J1939发送说明:
1、帧ID:
填⼊⼗六进制的帧ID,软件会⾃动为它解析出P、R、DP、PF、PS、SA、PGN各项的数值2、DLC:
数据长度:范围是0~8
3、数据:从左到右分别是DA TA0、DATA1、DATA2、DA TA3、DATA
4、DATA
5、DATA
6、DATA7
4、超时ms:
表⽰发送SAE J1939帧时的超时时间。
5、帧发送间隔ms:
只在<按列表发送>时有效
6、循环次数
只在<按列表发送>时有效,表⽰列表框中数据发送的次数
7、<保存列表数据>:将列表中的数据保存下来,以便下次使⽤
8、<载⼊列表数据>:将配置⽂件读⼊,避免重复的⼯作
9、<更新>:选择列表框中的数据,修改后,再点击<更新>就可以更改当前列表框选择中的数据。
J1939协议理解
今天读了J1939协议的介绍文档,下面主要说说我的理解:
1、网络应用分为几个层
物理层 SAE J1939-11
数据链路层 SAE J1939-21
网络层 SAE J1939-31
应用层 SAE J1939-71
故障诊断 SAE J1939-73
网络管理层 SAE J1939-81
2、下面主要说说数据链路层和应用层
数据链路层:为物理连接之间提供可靠的数据传输。
包括发送CAN 数据帧所必需的同步、顺序控制、
出错控制和流控制。
首先要明白几个概念
PGN:参数组编号
帧(Frame): 组成一个完整信息的一系列有序的数据位。
帧又被划分成几个域,每个域包括了预定义类型的数据。
CAN 数据帧(CAN Data Frame):组成CAN 协议帧所必需的有序位域,以帧起始(SOF)开始以帧结束(EOF)结尾。
标准帧(Standard Frame):CAN2.0A规范中定义的使用11 位标识符的CAN 数据帧。
扩展帧(Extended Frame):CAN2.0 B规范中定义的使用29 位标志符的CAN 数据帧。
包(Packet):一个单一的CAN 数据帧就是一个包。
当一条报文包含参数组的数据长度小于等于8个字节时,这样的报文也称为包。
报文(Message):指一个或多个具有相同参数组编号的(PGN)数据帧。
也就是说只要一个或多个CAN数据帧具有相同的PGN号,那他们就是属于一个报文。
多包报文(Multipacket Messages):当具有相同参数组编号的所有数据需要使用多个CAN 数据帧来传输时使用的一种J1939报文。
每个CAN 数据帧拥有相同的标识符,但在每个包中数据不同。
协议数据单元PDU的格式
PDU是J1939传输数据的格式,它基于CAN协议的扩展帧传输方式。
即它的标识符是29位的。
优先级:最高0(000)设置到最低7(111 )。
所有控制报文的缺省优先级是3(011 )。
扩展数据页(EDP)和数据页(DP)的关系:
什么是第0页PGN,什么是第1页PGN?作用有什么不同?还不是太清楚
PDU 格式(PF)和PDU 特定域(PS)的关系
PDU 格式(PF)PDU格式PDU 特定域(PS)
PF<240 PDU1格式PS是目标地址(DA)
PF=240‾255 PDU2格式PS是组扩展(GE)
值
PDU1和PDU2时的参数组编号(PGN)数目
EDP DP PF PS PDU1时参数组编号
0 0或者1 0-239 目标地址2X240(PF的值)=480
EDP DP PF PS PDU2时参数组编号
0 0或者1 240-255共16个
数
组扩展值0-255(共256个
数)
2X16X256=8192
在说说J1939的标识符合CAN协议的对应格式:
J1939的29位标识符格式
CAN协议扩展帧格式
首先,J1939的标识符是29位的,所以它使用的是CAN协议的扩展帧格式来传输数据。
29位的标识符在寄存器中的存放位置,正好对应CAN的ID28-ID0的29位。
我们主要在ID18和ID17直接有两个位,SRR和IDE要求是必须写1的,它不包括在我们的J1939的标识符,还有ID0的后一位RTR位也不包括在我们的标识符中,这一位是无效位,应该写0。
标识符对应的CAN扩展帧的位数:
优先权3位-----------------→ID28 ID27 ID26
扩展数据页EP-------------→ID25
数据页DP-------------------→ID24
PDU格式PF------------- →ID23~ID16
PDU特定域PS----------→ID15~ID8
源地址SA-----------------→ID7~ID0
如果ECU读回来一串数据怎么判断参数组编号PGN呢?
首先,把数据的前29个字节(标识符)提取出来。
然后进行解析,解析方式:
把ID28~ID24提取出来组成一个字节(对应优先权位、EP、DP)
把ID23~ID16提取出来组成一个字节(对应PF的8位)
把ID15~ID8提取出来组成一个字节(对应PS的8位)
上述ID25~ID8就组成了数据的PGN(参数组编号)
例如:
收到的前29个字节是0x67,0x98,0x1c,0xa2
看看它们的存储方式:
BIT7 6 5 4 3 2 1 0
IDR0 ID28 ID27 ID26 ID25 ID24 ID23 ID22 ID21
0 1 1 0 0 1 1 1 0x67 IDR1 ID20 ID19 ID18 SRR=1 IDE=1 ID17 ID16 ID15
1 0 0 1 1 0 0 0 0x98 IDR
2 ID14 ID1
3 ID12 ID11 ID10 ID9 ID8 ID7
0 0 0 1 1 1 0 0 0x1c IDR3 ID6 DI5 ID4 ID3 ID2 ID1 ID0 RTR
1 0 1 0 0 0
2 0 0xa2 把ID28~ID24提取出来,其中标识符只包括ID25和ID24,即PGN的第一个字节是00(二进制),
把ID23~ID16提取出来,组成二进制的:11110000(PF字节的8位)
把ID15~ID8提取出来,组成00001110(对应PS的8位)
把上述3个字节连接起来组成一个二进制的数:00 11110000 00001110,把它转换成16进制就是0XF00E,转换成十进制是:61454,这就是它的PGN号。
3、应用层
应用层为应用过程访问OSI 环境提供了一种方法,包括支持应用的管理功能和通用的机制。
它以PGN和SPN的方式具体规定了车辆使用的每个参数的数据长度,数据类型,分辨率和数据范围等。
应用层报文使用PGN作为一组参数的标号。
一组参数称为“参数组”(PG),PGN是其唯一的标识号。
参数组内有一个或多个具体的参数,每个具体参数都有一个唯一的标号,称为“怀疑参数编号”,即SPN。
以一个实例讲解PGN的使用
以PGN65213为例,首先是它的J1939的协议定义:
假定我们只使用了协议中的前3个参数,预计风扇转速比,风扇驱动器状态,风扇转速。
下面是这3个参数在字节中的存储方式,预计风扇转速比是一个字节的,它占用了byte1的8位,风扇驱动器状态是4个字节的,占用了byte2的后四位,风扇转速是2字节的,占用的byte3和byte4. 其他没有使用的位要写1.
他们每一个参数对应一个SPN,在SPN中都有它的斜率和分辨率的规定。
例如第一个参数Estimated Percent Fan Speed,我们看它的SPN号是975,我们再来查看SPN975的内容,发现他是一个表示百分比的数,范围是0%到100%,分辨率是0.4%,偏移量是0。
如果我们想写个50%进去,怎么把50%转换为二进制数放到字节中呢,
计算方式:50%/分辨率+偏移量=要写入的字节数,我们来计算下50%/0.4%+0=125,这个数是十进制的,把它转换为二进制就是:0111 1101,我们把这数放到字节1中就可以了。
4、。