《诊断协议解析J1939.docx》由会员分享,可在线阅读,更多相关《诊断协议解析J1939.docx(18页珍藏版)》请在第一文库网上搜索。
1、J1939诊断协议解析目录目录21范围31.1 文档说明31.2 文档范围32规范性引用文件33术语和定义及缩写33.1术语定义33.2英文缩写64协议定义64.1 总体架构64.2 数据链路层64.2.1 消息/帧格式64.2.2 协议数据单元(PDU)7423消息类型94.2.4 传输协议功能94.3 应用层诊断11431诊断故障码定义114.3.2激活状态的诊断故障码DM112附录161范围1.1 文档说明针对每个模块的诊断功能的开发,除了本文档以外可能还需要另一个单独针对此模块的文档XX模块诊断内容,这个文档定义了DM1服务中的故障码,以及其他需要单独说明的内容。即:1) 一个电器模块
2、的诊断功能开发需要的全部文档包括一一本文档以及XX模块诊断内容1.2 文档范围2规范性引用文件下列文件中的条款通过本协议的引用而成为本协议的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本协议,然而,鼓励根据本协议达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本协议。SAE1939-21:2001商用车控制系统局域网络(CAN)通信协议第四部分数据链路层SAE1939-73:2004商用车控制系统局域网络(CAN)通信协议第六部分应用层诊断3术语和定义及缩写本协议引用SAEJ1939-21及SAEJ1939-73中
3、术语及定义。本协议涉及到的英文缩写:3.1 术语定义 帧Frame组成一个完整消息的一系列数据位。帧又被划分成几个域,每个域包括了预定义类型的数据。 CAN数据帧CANDataFrame组成传输数据的CAN协议帧所必需的有序位域,以帧起始(SOF)开始以帧结束(EOF)结尾。 扩展帧ExtendedFrameCAN2.0规范中定义的使用29位标志符的CAN数据帧; 标准帧StandardFrameCAN2.0b规范中定义的使用11位标识符的CAN数据帧; 包Packet一个单一的CAN数据帧就是一个包。当一条消息包含参数组的数据长度小于等于8个字节时,这样的消息也称为包。消息Message指一
4、个或多个具有相同参数组编号的“CAN数据帧1 参数组ParameterGroup(PG)在一消息中传送参数的集合。参数组包括:命令、数据、请求、应答和否定应答等。不论是单包消息还是多包消息,参数组都被看作数据。因为参数组与源地址无关,因此可以从任何源地址发送任意的参数组。 参数组编号ParameterGroupNumber(PGN)3字节,24位,包括保留位、数据页、PDU格式和组扩展域等。参数组编号唯一标识一个参数组; 协议数据单元Protoco1DataUnit(PDU)协议数据单元是一种特定的CAN数据帧格式。 协议数据单元格式PrOtOCoIDataUnitFormat(PF)29位标
5、识符中的一个8位数据域,用于识别协议数据单元的格式,并且全部或部分用作参数组的标号。另外,它还是PGN的一个域。 特定协议数据单元PDUSpecific(PS)29位标识符中的一个8位数据域,其具体定义由协议数据单元格式(PF)的值决定。该域可能是表示目标地址(DA),也可能是组扩展(GE)。另外,它还是PGN的一个域。 1型协议数据单元PDU1Format用于发送到指定目标地址(DA)的消息。特定协议数据单元(PS)中包含了目标地址(特定或全局); 2型协议数据单元PDU2Format用于发送使用组扩展技术的消息。这种协议数据单元不包含目标地址。对于这种格式的协议数据单元,特定协议数据单元(
6、PS)域表示组扩展; 标识符IdentifierCAN仲裁域的标识部分 数据域DataFie1dCAN数据帧中包含应用层定义的0-64位数据; 数据页DataPageCAN数据帧标识符中用来选择两页参数组编号中一页的一个位。它为参数组编号将来的扩展提供了可能。另外,它还是PGN的一个域。 目标地址DestinationAddress,DA29位CAN标示符中的PS域,表明需要接收该消息ECU的地址。帧起始StartofFrame(SOF)CAN数据帧中用来表示帧开始的第一个数据位; 帧结束EndofFrame,EOF标志CAN数据帧结束的7位的域; 组扩展GroupExtension(GE)C
7、AN数据帧PDU中的一个域,是决定参数组编号时必不可少的信息; 优先权Priority在标识符中一个3位的域,设置了传输过程中的仲裁优先级。最高优先级为0,最低优先级为7。 保留位ReservedBit在29位标识符中为将来定义而保留的一个数据位。另外,它还是PGN的一个域。 肯定应答Acknow1edgement,ACK确认所请求的动作已经被理解并完成; 否定应答Negative-Acknow1edgmentNACK表明某个设备不能理解一个消息或者无法实现一个请求操作。节点Node将电控单元与网络相连的硬件。一个节点在网络中可能拥有多个地址; 地址Address8位位域”用于决定消息源(或者
8、目标)。 位填充BitStuffing用于保证发送或接收的消息具有保持最小数量的显性位或隐性位跳变的处理程序,进而实现CAN数据帧中的位流正确的再同步。更详细的讨论参见CAN的说明; 仲裁Arbitration解决一个或多个ECU在获取对共用总线的访问权时冲突的过程。 多包消息Mu1tipacketMessages当具有相同参数组编号的所有数据需要使用多个CAN数据帧来传输时使用的一种J1939消息。每个CAN数据帧拥有相同的标识符,但在每个包中数据不同。广播Broadcast不必请求即可按标准定期发送的消息。某些情况下,广播可能会正常中断,被请求后可继续发送,直到被请求关闭。诊断故障代码Di
9、agnOStiCTroub1eCode一种用以识别故隙类型、相关故障模式以及它的发生次数的4字节数值。故隙指示灯(MI1)Ma1functionIndicator1amp用以报告与排放相关故障代码的发生。非排放相关的故障代码的发生不会点亮故隙指示灯。3.2英文缩写4协议定义4.1 总体架构本协议可以作为一个通讯协议,描述了外部设备(主要指诊断仪)和车用电器模块之间的通讯过程,它基于ISO七层网络模型,并简化而来,这里我们所关心的网络模型层包括:数据链路层、网络层、应用层。数据链路层规定了通讯的报文结构、建立通讯的方式,参数组等关于报文传输的细节。由于本协议使用扩展CAN报文帧,其物理层的细节完
10、全符合SAEJI939,详细请参阅此国际标准,本协议里不再赘述。网络层规定了应用层数据利用单帧、多帧方式发送的报文结构、控制信息(PC1)描述、时间参数。应用层规定了具体的诊断服务,它使得外部设备(主要指诊断仪)和车用电器模块之间能够按照本标准所约定的交互“语言”来沟通。本协议的核心是应用层诊断内容。4.2 数据链路层4.2.1 消息/帧格式消息格式遵循CAN规范。本标准参考的CAN规范是1991年9月的“CAN2.0B”。但本标准只针对扩展帧格式定义了一套标准化通信策略。采用本标准的设备必须使用扩展帧格式。CAN扩展帧的格式如图1所示,包含一个单(个)一的协议数据单元(PDU)。PDU包含7
11、个域。这些域的信息由应用层提供,包括优先级、保留位、数据页、PDU格式、特定PDU(目标地址、组扩展或专用)、源地址和数据域。PDU将被封装在一个或多个CAN数据帧中,通过物理介质传输到其他网络设备。B.CAN扩展帧格式4.2.2 节点1节点54.2.3 协议数据单元(PDU)协议数据单元由七部分组成,分别是优先级,保留位,数据页,PDU格式,特定PDU(可作为目标地址、组扩展或专用),源地址和数据域。PDU被封装在一个或多个CAN数据帧中,通过物理介质传送到其他网络设备。每个CAN数据帧只能有一个PDU。需要指出的是,有些参数组编号定义需要多个CAN数据帧才能发送其数据。注:某些CAN数据帧
12、的域不是在PDU中定义,它们完全由CAN规范决定,对OS1数据链路层以上的层是不可见的。它包括S0F,SRR,IDE,RTR,控制域部分,CRC域,ACK域和EoF域。这些域由CAN协议定义的,木标准不作修改。这七个PDU域如图2所示。J1939PDUIIPRDPIIIIIIIPFI1111IIPSIIIIIIISAIIII数据段3118880-61P是优先级,R是保留位,DP是数据页,PF是PDU格式,PS是特定PDU,SA是源地址图2协议数据单元(PDU)PDU格式如图2所示。共定义了两种PDU格式:PDU1格式(PS为目标地址)和PDU2格式(PS为组扩展)。PDU1格式实现CAN数据帧
13、定向到特定目标地址(设备)的传输。PDU2格式仅用于不指向特定目标地址(设备)的CAN数据帧的传输。使用两种PDU格式,不但能实现定向到特定目标地址的通信,还能提供尽可能多的参数组编号组合。已定义的专用参数组能够使用这两和IPDU格式进行通信。在专用通信中采用一套标准的方法,这样可以防止在标识符的使用上可能产生的冲突。4.2.3.1 优先级(P)这三位仅在总线传输中用来优化消息延迟,接收机必须对其做全局屏蔽(即忽略)。消息优先级可从最高0(OOO2)设置到最低7(1112)o所有控制消息的缺省优先级是3(O112)O其他所有信息、专用、请求和ACK消息的缺省优先级是6(I1O2)。当定义新的参
14、数组编号,或总线上通信量变化时,优先级可以升高或降低。当消息被添加到应用层,将给出一个推荐的优先级。OEM可以对网络做相应调整,优先级域应当是可重编程的。4.2.3.2 保留位(R)保留此位以备今后开发使用。不能将此位与CAN保留位混淆。所有消息应在传输中将SAE保留位置0。今后新的定义可能扩展PDU格式域,定义新的PDU格式,扩展优先级段或增加地址空间。4.2.3.3 数据页(DP)数据页位选择参数组描述的辅助页。在分配页一的PGN之前,先分配完页零的可用PGN。4.2.2.4PDU格式(PF)PF域,8位。确定PDU的格式,也是确定数据域对应参数组编号的域之一。参数组编号用来确定或标识命令
15、、数据、请求、确认和否定等。参数组编号所确定或标识的信息需要一个或多个CAN数据帧进行通信。若消息长于8字节,必须将消息分包发送。如消息长小等于8字节,则使用单个CAN数据帧。参数组编号可以包含一个或多个参数,这里参数是指如发动机转速之类的数据。尽管一个参数组编号可以只包含一个参数,我们推荐对多个参数进行组合以利用数据域的全部8字节。已经定义好了两种专有参数组编号,允许使用PDUI和PDU2两种格式(共定义了两种IPDU格式:PDU1格式和PDU2格式)。专有信息的解释因制造商而异。例如,即使两个不同的发动机使用同一个源地址,制造商A的专用通信极可能与制造商B不同。4.2.2.5 特定PDU(PS)特定PDU是一个8位域,它的定义取决于PDU格式,根据PDU格式它可能是目标地址或者组扩展。若PDU格式(PF)域的值小于240,特定PDU域是目标地址。若PF域的值在240和255之间,特定PDU包含组扩展(GE)值。a.目标地址(DA)这个域定义了消息发送的特定