SAEJ1939-21DataLinkLayer2010-9-4阚予平主要内容:概述报文格式协议数据单元参数组编号报文类型传输协议功能※SAEJ1939对OSI模型的应用节点节点应用层(Priority,EDP,DP,PF,PS,SA,Data)(Priority,EDP,DP,PF,PS,SA,Data)应用层网络层网络层数据链路数据链路逻辑链路控制1个或多个PDU1个或多个PDU逻辑链路控制媒体访问控制1个或多个数据帧1个或多个数据帧媒体访问控制物理层物理层概述概述数据链路层保证数据在物理层上可靠的传送。包括:CAN数据场必要的同步发送、顺序控制、错误控制和流控制。流控制由一致的报文/帧格式来完成。※技术要求主要内容:概述报文格式协议数据单元参数组编号报文类型传输协议功能报文格式报文格式遵循1991年9月发行的CAN2.0B规范。CAN规范不使用节点地址。为了防止多个节点使用相同的CAN标识符,SAEJ1939采用了节点地址。CAN2.0B规定了两种帧格式:标准帧和扩展帧。SAEJ1939仅使用CAN扩展帧帧格式定义了通信标准。CAN标准帧CANDataFrame帧起始仲裁场控制场数据场CRC场应答场帧结束SOFidentifierRTRIDEr0DLCDataFieldCRCDELACKEOF11111140-6415127报文格式CAN扩展帧CANDataFrame帧起始仲裁场控制场数据场CRC场应答场帧结束SOFIDSRRIDEExtendedIDRTRr1r0DLCDataFieldCRCDELACKEOF111111811140-6415127报文格式J1939PDU映射到CAN数据帧CANDataFrame111111811140-6415127SOFIDSRRIDEExtendedIDRTRr1r0DLCDataFieldCRCDELACKEOFIDExtendedIDDataFieldPEDPDPPF8PF7PF6PF5PF4PF3PF2PF1PSSADataFieldPEDPDPPFPSSADataField3118880-64SAEJ1939PDU报文格式主要内容:概述报文格式协议数据单元参数组编号报文类型传输协议功能J1939PDUPEDPDPPFPSSADataField3118880-64※ABBREVIATIONSPDUProtocolDataUnitPPriorityEDPExtendedDataPageDPDataPagePFPDUFormatPSPDUSpecificSASourceAddress协议数据单元协议据单元J1939PDUPEDPDPPFPSSADataField3118880-64※PDU-协议数据单元应用层或网络层,提供一串被称作协议数据单元的信息。协议数据单元提供一个组织信息的框架,它是要发送的每个CAN数据帧的关键。协议数据单元由7个场组成:优先权、扩展数据页、数据页、PDU格式、PDU细节(可以是目的地址,组扩展或专用)、源地址和数据场。PDU被打包成一个或多个数据帧通过物理介质发送给其他网络设备。协议数据单元J1939PDUPEDPDPPFPSSADataField3118880-64※PDU-协议数据单元每一个CAN数据帧中只有一个PDU。有些PGN需要多个CAN数据帧来发送。CAN数据帧中的一些场没有考虑PDU的定义,因为它们完全由CAN规范来控制,并且它们在高于数据链路层的其它OSI层上不可见。它们包括:SOF、SRR、IDE、RTR、控制场的一部分、CRC场、ACK场和EOF场。这些场是CAN协议定义的,并且SAEJ1939未作修改。协议数据单元J1939PDUPEDPDPPFPSSADataField3118880-64※P-优先级这三个优先级位用于优化报文反应时间,并且仅用于发送到网络时。接收器应该全面屏蔽(忽略)它们。任何报文的优先权都可以设置为0(最高)到7(最低)。所有控制报文的缺省优先级都是3(0112)。其它的所有的报告、专用、请求、应答报文的缺省优先级都是6(1102)。OEM可以通过对优先级场的重新编程来做网络调整。协议数据单元J1939PDUPEDPDPPFPSSADataField3118880-64※EDP-扩展数据页EDP与DP联合使用,用来确定CAN数据帧。传送时,所有的J1939报文都应该将EDP设置为0。2006年6月修订版的1939-21将该位定义为EDP,以前的版本该位为保留位(R)。只是定义,还没有使用,将来的版本有可能使用到。EDPDP说明00SAEJ1939页0PGN01SAEJ1939页1PGN10SAEJ1939保留11ISO15765-3定义协议数据单元J1939PDUPEDPDPPFPSSADataField3118880-64※DP-数据页数据页用于选择一个参数组描述的辅助页。只有在页码0上所有可用的PGN全部被分配使用完毕后,才可以使用页码1。当EDP和DP设置为“11”时,表示这是一个ISO15765-3报文。这意味着CAN标识符剩余的部分的设置与SAEJ1939不同。该格式的CAN数据帧在SAEJ1939规范里没有描述。协议数据单元J1939PDUPEDPDPPFPSSADataField3118880-64※PF-PDU格式用于确定PDU的两种格式。PGN的场之一。PDU1格式的报文既可以发送到特定地址,也可以发送到全局地址。PDU2格式的报文只能发送到全局地址。PFPDU类型0-239PDU1格式240-255PDU2格式协议数据单元J1939PDUPEDPDPPFPSSADataField3118880-64※PS-PDU细节由PF决定PS是一个目的地址还是一个组扩展。DA指定报文发送的目的地址。全局地址(255)要求所有的设备都收听并作出反应。GE与PF的低四位相关联,向每个数据页提供4096个参数组。PFPSPDU1格式0-239DAPDU2格式240-255GEDADestinationAddressGEGroupExtension※ABBREVIATIONS协议数据单元J1939PDUPEDPDPPFPSSADataField3118880-64※SA-源地址网络上的一个SA只可以匹配一个设备。SA保证了CAN标识符的唯一性。SA的管理和分配在SAEJ1939-81中有详细的描述。SA的分配请参照J1939附录B中的表B2到表B9。协议数据单元J1939PDUPEDPDPPFPSSADataField3118880-64※DataField当参数组的“数据长度”值为8或更少时,就用CAN数据长度码(DLC)来定义。否则,当参数组的“数据长度”值为9或更多时,CAN数据长度码(DLC)设定为8。当需要用9到1785个字节的数据来描述一个给定的参数组时,这些数据的通信由多个CAN数据帧来完成。当一个特定的参数组要传送9个或更多个数据字节时,就使用“传输协议功能”。存在特例。主要内容:概述报文格式协议数据单元参数组编号报文类型传输协议功能参数组编号用于唯一标识参数组的号码。24位数字,由应用层定义。与PDU中的某些域场存在对应关系。应用层中定义的与某个ECU相关的具有相同控制功能的若干个参数的组合。※参数组※参数组编号参数组编号J1939PDUPEDPDPPFPSSADataField3118880-64000000EDPDPPFPDU1:0x00PDU2:GE888第一字节第二字节第三字节PGN※参数组编号与PDU的对应关系参数组编号※参数组的数量与PGN000000EDPDPPFPDU1:0x00PDU2:GE888PGN2(页)×(240+16×256)=8672240=每个数据页拥有的PDU格式域数量(例如:PDU1格式,PS场相当于目的地址)16=每个扩展组对应的PDU格式值的数量(例如:PDU2格式)256=组扩展可能值的数量(例如:PDU2格式)2=数据页状态的数量(两种PDU格式都有)※参数涵义总数量:其中:使用PDU1格式的参数组:2×240=480使用PDU2格式的参数组:2×16×256=8192参数组编号※参数组的分配PDU1PDU2专用※参数组模板右图主要内容:概述报文格式协议数据单元参数组编号报文类型传输协议功能报文类型※命令Commands※请求Requests※广播/响应Broadcasts/Responses※应答Acknowledgment※组功能GroupFunctions注意:在J1939报文中,RTR位(在CAN协议中为远程帧定义的)使用隐性状态(逻辑1)。因此,在SAEJ1939中,不可以使用远程发送请求(RTR=1)。报文类型※命令命令报文的参数组将一个命令传送到一个特定的地址或全局地址。目的地(设备)将根据接收到的命令报文的类型执行特定的动作。PDU1格式和PDU2格式都可以用作命令报文。命令报文的例子:“传动控制”,“地址请求”和“扭矩/转速控制”等。报文类型※请求请求报文由PGN来识别,它从一个特定的地址或全局地址请求信息。参数组名称请求定义用于向网络设备请求一个参数组更新速率根据用户需要,一般推荐请求每秒不超过2次或三次数据长度3字节(DLC应设置为3)DP0PF234PSDA(全局或特定)缺省优先级6PGN59904(00EA0016)字节1、2,3被请求的参数组的PGN报文类型※广播/响应广播报文-设备主动发动的报文。响应报文-对命令或请求响应的报文。报文类型※应答应答形式有两种:第一种由CAN协议提供。它由一个确认报文至少被一个节点接收的“帧内”应答组成。由CAN错误帧的缺席来做进一步的应答。错误帧的缺席表明了所有其它在线设备都正确的接收了报文。第二种应答形式是对“常态广播”的回复,或是来自对应用层的一个特殊的命令或请求的”ACK”或”NACK”。应答参数组的定义在图9中有详述。表D1分配了这类报文的参数的SPN。对一些参数组的应答定义在应用层。报文类型※应答报文名称应答定义应答参数组为发送节点和接收节点提供一个握手机制更新速率由接收到的需要做出应答的PGN确定数据长度8个字节EDP0DP0PF232PS255(全局地址)缺省优先级6PGN59392(00E80016)报文类型※应答应答报文的参数数据范围控制字节0到3见下页表格4到255SAE保留组功能值0到250由PGN确定251到255J1939-71定义报文类型肯定的应答(ACK):控制字节=0字节1控制字节=0,肯定的应答(ACK)2组功能值3-4SAE保留(应使用FF16填充)5做出应答的地址6-8被请求的PGN否定的应答(NACK):控制字节=1字节1控制字节=1,否定的应答(NACK)2组功能值3-4SAE保留(应使用FF16填充)5做出否定应答的地址6-8被请求的PGN拒绝应答:控制字节=2字节1控制字节=2,拒绝应答(PGN支持但拒绝访问)2组功能值3-4SAE保留(应使用FF16填充)5做出应答的地址6-8被请求的PGN※应答无法应答:控制字节=3字节1控制字节=3,拒绝应答(PGN支持但ECU忙,无法应答)2组功能值3-4SAE保留(应使用FF16填充)5繁忙的ECU的地址6-8被请求的PGN报文类型※组功能这类报文用于特殊功能的组(例如:专用功能、网络管理功能,多包传输功能等)。每个组功能由它指派的PGN来识别。在数据结构(典型的在数据场的第一字节)中对功能进行了定义。在接下来的部分,对专用的组功能和传输协议有更详细的解释。专用组功能提供了传输专用报文的一个方式,这种方式可以消除不同制造商之间的CAN标识符的使用冲突。使用PGN59904请求可以得知一个组功能类型报文的专用参数组是否被支持。报文类型※请求2参数组名称请求2定义用于向网