1、J1939协议简介型号: PXF0945J1939协议简介缩写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:标志符
2、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 Pr
3、iority:优先级 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:帧开始 SR
4、R Substitute Remote Request:替代远程请求 TP Transport Protocol:传送协议 Th Hold Time:保持时间 Tr Response Time:响应时间 un Undefined:没有定义 CAN2.0B包含两种格式的说明:标准格式和扩展格式。SAE J1939 必须使用扩展格式。在 CAN网络上也可以有标准格式 图 1:标准格式图 2:扩展格式SAE J1939信息框架格式CAN 扩展格式信息,如图 2所示,包含了一个协议数据单元(PDU)。PDU 包含 7个预先定义的部分:优先级、保留位、数据页、PDU格式、PDU 细节、原地址和数据部分。
5、表 1:29位标志符CAN29位标志符J1939位的位置11位标志符CAN11位标志符J1939(1)SOF SOF(2) 1 SOF SOF(2)ID28 P3 2 ID11 P3DI27 P2 3 ID10 P2ID26 P1 4 ID9 P1ID25 R1 5 ID8 SA8ID24 DP 6 ID7 SA7ID23 PF8 7 ID6 SA6ID22 PF7 8 ID5 SA5ID21 PF6 9 ID4 SA4ID20 PF5 10 ID3 SA3ID19 PF4 11 ID2 SA2ID18 PF3 12 ID1 SA1SRR(r) SRR(r) (2) 13 RTR(x) RTR
6、(2)(d)IDE(r) IDE(r) (2) 14 IDE(d) IDE(2)ID17 PF2 15 r 0 r 0(2)ID16 PF1 16 DLC4 DLC4ID15 PS8 17 DLC3 DLC3ID14 PS7 18 DLC2 DLC2ID13 PS6 19 DLC1 DLC1ID12 PS5 20 ID11 PS4 21 ID10 PS3 22 ID9 PS2 23 ID8 PS1 24 ID7 SA8 25 ID6 SA7 26 ID5 SA6 27 ID4 SA5 28 ID3 SA4 29 ID2 SA3 30 ID1 SA2 31 ID0 SA1 32 RTR(r) R
7、TR(r)(2)(d) 33 r 1 r 1(2) 34 r 0 r 0(2) 35 DLC4 DLC4 36 DLC3 DLC3 37 DLC2 DLC2 38 DLC1 DLC1 39 1. 11位标志位要求的格式2. CAN定义位,在 SAE J1939里面没有改变3. 注释:SOF - Start of Frame Bit :框架开始位 ID# - Identifier Bit #n :标志符位SRR - Substitute Remote Request :替代远程请求 RTR - Remote Transmission Request Bit :远程传送请求 IDE - Ident
8、ifier Extension Bit :标志符扩展位 r# - CAN Reserved Bit #n :CAN 保留位 DLC# - Data Length Code Bit #n :数据长度代码位 (d) - dominant bit :显性位 (r) - recessive bit :影性位 (x) - bit state dependent on message :位状态,有信息决定P# - SAE J1939 Priority Bit #n :SAE J1939 优先级位 R# - SAE J1939 Reserved Bit #n :SAE J1939 保留位 SA# - SAE
9、 J1939 Source Address Bit#n :SAE J1939 原地址位DP - SAE J1939 Data Page :SAE J1939 数据页 PF# - SAE J1939 PDU Format Bit #n :SAE J1939 PDU 格式位 PS# - SAE J1939 PDU Specific Bit #n :SAE J1939 PDU 详细位表 1 显示了 29位标志符 CAN、J1939,11 位标志符的 CAN、J1939 仲裁和控制字段。在 5。2 章节里面定义了每一个 SAE J1939的完整定义。参数组代码:PGN。在 CAN数据框架内有必要标志一
10、个参数组,参数组代码用 24位表示。PGN 参数组代码是一个 24位的值,由如下要素组成:保留位、数据页位、PDU 格式域和组扩展域。将域位转换成 PGN参数组代码有如下规格。如果 PF的值小于240(F0),PGN 的低字节设置为 0。注意并不是所有的 131071个组合都是可用的。表 2:PGN 参数组代码PGNBYTE1PGN BYTE1PGNBYTE1PGNBYTE 2PGNBYTE3Bits 8-3RBit2DPBit1PFBits 8-1PSBits 8-1PGNDec10PGNHex160 0 0 0 0 0 000000 SAE00023806092800EE00239 239
11、0 0 0 239 0 61184 00EF00 1 240 MF0 0 0 240 0 61440 0F000 SAE0002542556527900FEFF3840 40800 0 0 255 0 65280 00FF00 0002552556553500FFFF256 4336MF0 0 1 0 0 65536 010000 001239012672001EF00240 4576SAE0 0 1 240 0 126976 01F000 00125525513107101FFFF4096 8672SAE8672 8672 Protocol Data Unit (PDU):协议数据单元 应用
12、层或网络层会对 PDU进行处理。SAE J1939 协议数据单元由 7部分组成,他们分别是优先级、保留位、数据页、PDU 格式、PDU 细节(可以是目标单元地址、组扩展或所有权)、原地址和数据段。这 7个部分会被封装成一个或多个CAN数据框架并且通过物理层发送给其他的网络设备。每一个 CAN数据框架只有一个 PDU。需要注意的是一些 PGN定义需要多个 CAN数据框架去发送相应的数据。 CAN数据框架中的一些段并没有定义在 PDU里面,因为他们是由 CAN规格定义的,对于数据链接层之上的 OSI层是不可见的。这些字段是由 CAN协议定义的在 SAE J1939里面没有改变。这些字段包括:SOF
13、、SRR、IDE、RTR、CRC、ACK、EOF。在图 3中显示了这 7个字段。在 PDU中的每一个字段在后来的应用中都有定义。图 3P:优先级R:保留位DP:数据页PF:PDU 格式PS:PDU 细节SA:原地址Date Field:数据字段P优先级:有三个位用来表示信息发送到总线的优先级。对于接收者来说这三个位应该都认为 0,被忽略掉。信息的优先级可以设置为 0,最高,或者 7,最低。所有控制信息默认的优先级是 3,所有的其他的优先级默认为 6。R保留位:SAE 为了以后应用保留下来的,暂时无意义。DP数据页:对于参数组描述选色一个辅助的页。请参考图 4。PDU Format(PF):协议
14、数据单元格式。PF 是一个 8位的字段,由这 8个位决定了 PDU的格式。这 8个位是决定 PGN参数组代码字段的一部分。PGN 参数组代码是用来确定或者标志命令、数据、一些请求、应答或不应答。PGN 参数组代码确定或标志的信息要求一个或多个 CAN数据框架发送这些信息。如果多于 8个字节的需要描述的话就需要发送多个 CAN数据。如果是 8个或者少于 8个字节可以描述的信息,则只需要一个 CAN 数据即可。一个 PGN参数组代码可以描述一个或多个参数信息。当然一个 PGN参数组信息可以只描述一个参数,但是推荐尽可能将一个 CAN数据的 8个字节全都用上。PDU Specific(PS)协议数据
15、单元细节:PS 是一个 8个位字段描述,它由 PDU FORMAT格式决定。由 PF决定 PS是目的单元地址还是组扩展。如果 PF字段的值小于 240,PS 字段表示的是目的单元地址。如果 PF字段的值是240255,PS 字段表示组扩展值。见表 3,参考图 4 PGN参数组代码范围。表 3:PDU SPECIFICPDU Format(PF) Field PDU Specified(PS) FieldPDU1 Format 0239 Destination AddressPDU2 Format 240255 Group ExtensionDestination Address(DA)目的单元
16、地址:这个字段定义了信息发送的特殊地址。注意所有其他的设备应该忽略这个字段。全局目的单元地址(255)要求所有接收到这个信息的设备都必须相应这个信息。DP = Date Page(1 bit) GE=Group Extension(8bits)PF = PDU Format (8bits) P=PriorityPS = PDU Specific(8bits) NA=Not AllowedDA = Destination Address(8bits) un=UndefinedPGN =Parameter Group Number(3bytes)图 4:SAE J1939 PARAMETER GR
17、OUP NUMBER TEMPLATEGroup Extension(GE)参数组扩展:参数组扩展字段,由 PF字段的高四位决定(当 PF高四位都为 1后,PS 字段就为 GE)。每一页有 4096个参数组。这些4096个参数组只能用 PDU2格式。另外使用 PDU1格式每一页可以有 240个参数组提供。总共有 8672个参数组是可以使用的。可以使用的参数组的数目可以通过一下发放计算:(240+(16 * 256)*2=8672240 =每一页可以使用的 PDU格式的数据(例如 PDU1格式,PS 字段表示为目的单元地址)16 每一个组扩展值的 PDU格式的值(例如 PDU2格式)256所有可
18、以使用的组扩展值的个数(例如 PDU2格式)2数据页的状态(两种 PDU格式)Source Address(SA)原地址:8 位。在一个网络里面每一个设备应该有一个唯一的原地址。原地址保证了 CAN通讯标志符的是唯一的。原地址的管理和分配在 SAE J1939-81里面有描述。Date Field:数据字段。当 8个或者小于 8个的字节可以描述一个给定的参数组,一个 CAN数据框架的 8个字节都可以使用。当描述一个给定的参数组需要91785 个字节时,需要多个 CAN数据框架描述。Protocol Data Unit(PDU)Formats:在图 5中介绍了可用的 PDU格式。有两种PDU格式
19、定义:PDU1 格式(PS目的单元地址)和 PDU2格式(PS组扩展)。图 5:AVAILABLE PDU FORMATSPDU1格式:这种格式允许参数组发送特殊的或者全局的目的单元。PS 字段表示DA目的单元地址。PDU1 格式可以用作要求或发送一个未被请求的信息。PDU1格式是由 PF字段决定的。当 PF字段的值 0239,表示这个信息是 PDU1格式。PDU2格式:这种格式只能将参数组做为全局信息来通讯。PDU2 格式的信息可以用作要求或发送未被请求的信息。PDU2 格式是由 PF决定的,当 PF的值在240255 之间,表示这个信息是 PDU2格式。信息类型:当前能够提供 5中信息类型:命令、请求、广播/相应,应答和组功能。这些特殊的信息类型可以由相关的 PGN参数组。命令:这种参数类型将那些命令一个特殊或全局目的但于的参数组加以分类。目的单元根据接收的命令信息执行特殊的动作。PDU1 和 PDU2格式都可以用做命令格式。例如命令类型的信息包括:发送控制、地址请求、扭矩/速度控制等等。