J1939协议理解.doc

上传人:scccc 文档编号:12487604 上传时间:2021-12-04 格式:DOC 页数:6 大小:217.50KB
返回 下载 相关 举报
J1939协议理解.doc_第1页
第1页 / 共6页
J1939协议理解.doc_第2页
第2页 / 共6页
J1939协议理解.doc_第3页
第3页 / 共6页
J1939协议理解.doc_第4页
第4页 / 共6页
J1939协议理解.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《J1939协议理解.doc》由会员分享,可在线阅读,更多相关《J1939协议理解.doc(6页珍藏版)》请在三一文库上搜索。

1、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数据帧(

2、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号

3、,那他们就是属于一个报文。多包报文(Multipacket Messages ):当具有相同参数组编号的所有数据需要使用多个 CAN数据帧来传输时使用的一种J1939报文。每个CAN数据帧拥有相同的标识符,但在每个包中数据不同。协议数据单元PDU的格式优丸机卩DU將丸册PEDPDPPFPSDATA31IS8BPDU*PGN4s舉输PDU是J1939传输数据的格式,它基于CAN协议的扩展帧传输方式。即它的标识符是29位的。优先级:最高0 ( 000 )设置到最低7( 111 )。所有控制报文的缺省优先级是3( 011 )。扩展数据页(EDP )和数据页(DP )的关系:什么是第0页PGN,什么是

4、第1页PGN ?作用有什么不同?还不是太清楚<EDP(DP)功能播述00SAE J1939 第0贞PGN01SAE J1939 第侦PGN10SAEJ1939 保留11定文为ISO 15765-3的报文PDU 格式(PF )和PDU 特定域(PS)的关系PDU 格式(PF)PDU格式PDU特定域(PS)PF<240PDU1格式PS是目标地址(DA)PF=240 "255PDU2格式PS是组扩展(GE) 值PDU1和PDU2时的参数组编号(PGN )数目If 觅PDU炼扎澡也址EDPDPPFPSDATAL LI8383字署PDUP匚忖一2 9咗标识轿EDPDPPFPSPDU

5、1时参数组编号00或者10-239目标地址2X240 (PF 的值)=480EDPDPPFPSPDU2时参数组编号00或者1240-255 共 16 个数组扩展值0-255 (共256个数)2X16X256=8192在说说J1939的标识符合 CAN协议的对应格式:J1939的29位标识符格式Rgwre B-24, Receive/Trflnsmit Message Buffer Extemde-J Identifier MppipingRegister NameBit 7654i21BIMOkDOXDr1DR0yyID2SID271D2SID25ID24ID23ID22ID21DKD0K1R

6、1DR1wID2DID19ID ISSRRt-1IDE ("ID17ID1BID15学血2RIIDRE怖ID 14ID131013iDU1010ID9IDSIO?0x00X3RI0R3训IDIDEID4ID3ID2ID1IDDRTRCAN协议扩展帧格式首先,J1939的标识符是29位的,所以它使用的是 CAN协议的扩展帧格式来传输数据。29位的标识符在寄存器中的存放位置,正好对应CAN的ID28-ID0的29位。我们主要在ID18和ID17直接有两个位,SRR和IDE要求是必须写1的,它不包括在我们的J1939的标识符,还有ID0的后一位RTR位也不包括在我们的标识符中,这一位是无效

7、位,应该写0。标识符对应的CAN扩展帧的位数:优先权3位扩展数据页EP-数据页DPPDU 格式 PF-PDU特定域PS源地址SAID28 ID27 ID26ID25ID24ID23ID16ID15ID8ID7ID0如果ECU读回来一串数据怎么判断参数组编号PGN呢?首先,把数据的前 29个字节(标识符)提取出来。然后进行解析,解析方式:把ID28ID24提取出来组成一个字节(对应优先权位、EP、DP)把ID23ID16提取出来组成一个字节(对应 PF的8位)把ID15ID8提取出来组成一个字节(对应 PS的8位) 上述ID25ID8就组成了数据的 PGN (参数组编号) 例如:收到的前 29个

8、字节是 0x67,0x98,0x1c,0xa2看看它们的存储方式:BIT76543210IDR0ID28ID27ID26ID25ID24ID23ID22ID21011001110x67IDR1ID20ID19ID18SRR=1IDE=1ID17ID16ID15100110000x98IDR2ID14ID13ID12ID11ID10ID9ID8ID7000111000x1cIDR3ID6DI5ID4ID3ID2ID1ID0RTR101000200xa2把ID28ID24提取出来,其中标识符只包括ID25和ID24 ,即PGN的第一个字节是 00 (二 进制),把ID23ID16 提取出来,组成二

9、进制的:11110000 ( PF字节的8位)把ID15ID8 提取出来,组成 00001110 (对应 PS的8位)把上述3个字节连接起来组成一个二进制的数:00 11110000 00001110 ,把它转换成16进制就是0XF00E,转换成十进制是:61454,这就是它的 PGN号。3、应用层应用层为应用过程访问OSI环境提供了一种方法,包括支持应用的管理功能和通用的机制。它以PGN和SPN的方式具体规定了车辆使用的每个参数的数据长度,数据类型,分辨率 和数据范围等。应用层报文使用 PGN作为一组参数的标号。一组参数称为“参数组” ( PG),PGN是其 唯一的标识号。参数组内有一个或多

10、个具体的参数, 每个具体参数都有一个唯一的标号, 称 为“怀疑参数编号”,即 SPN。以一个实例讲解 PGN的使用以PGN65213 为例,首先是它的J1939的协议定义:Transmisskm Repetition Rate:1 SLength:8Extended 口串恰 Page:0Data Page:0PDU Format:254PDU Specific:僦PGN Supporting InformationDefault Priority:Parameter Group Number:&5213(OxFEBD)Start PositionLengthParameter Name

11、11 byteEstimated Pe-rcenl Fan Speed2.14 bitsFan Drive Stale3-42 b/tesFan Speed5=62 bytesHydraulic Fan Motor Pressure71 byteFan Drive Bypass Commandl SlatusPGN 65213(R) Fan DriveSPN97S977163942114212假定我们只使用了协议中的前3个参数,预计风扇转速比,风扇驱动器状态,风扇转速。下面是这3个参数在字节中的存储方式,预计风扇转速比是一个字节的,它占用了 byte1的8位,风扇驱动器状态是 4个字节的,占用

12、了 byte2的后四位,风扇转速是 2字节的,占用的 byte3和byte4.其他没有使用的位要写1.他们每一个参数对应一个SPN,在SPN中都有它的斜率和分辨率的规定。PGN 65213 Fan Drive-FDData LengthzBStart PositionLengthParameter NameSPN11 byteEstimated Percerkt F自n Speed9752.14 bitsFan Drive State9773-42 bytesFan Speed1639Byte 1Byte 2Byte 3Byte 4S 7|6|5 43 2 107654 3 21376 5 4

13、 3 2 1& 16 5 4 3 2 1SPN 9751111SPN 977SPN 1639例如 第一个参数 Estimated Perce nt Fan Speed ,我们看它的 SPN号是975,我们再来查 看SPN975的内容,发现他是一个表示百分比的数,范围是 0%到100%,分辨率是0.4% , 偏移量是0。如果我们想写个 50%进去,怎么把50%转换为二进制数放到字节中呢,计算方式:50%/分辨率+偏移量=要写入的字节数,我们来计算下50%/0.4%+0=125 ,这个数是十进制的,把它转换为二进制就是:0111 1101,我们把这数放到字节1中就可以了。SPN 975Es

14、timated Percent Fan SpeedEslimaled fan sp&ed as a ratio of the fen drive eurnertt speed) to the fully engaged fan drive maximum fan speed). A (wo state fan off/on will use 0% and 1Q0% respeclively. A Ihrpe state fan toff/imterrnediate/on) will use 0%, 50% and 100% respectively. A variable speed

15、fan will use 0% to 100%. Multiple Fan systems will use Oto 100% to indicate tha percent codling capacity being provided.Nd怕 IhL tha intermediate fan speed of 丑 three state fan will vary with different fan dnvea. theretcire SO% is being used to indicate that th色 intarrrediate spMd is required from the fan drive.Dab Length:1 byteResolution:0.4 %/bit, 0 offsetData Range:0 to 100 %OperationalRange:sameasdatarangeTyp&:StatusSupporting informal ion:PGN6551$4、

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1