J1939协议理解

上传人:博****1 文档编号:551629538 上传时间:2023-04-10 格式:DOC 页数:6 大小:16.50KB
返回 下载 相关 举报
J1939协议理解_第1页
第1页 / 共6页
J1939协议理解_第2页
第2页 / 共6页
J1939协议理解_第3页
第3页 / 共6页
J1939协议理解_第4页
第4页 / 共6页
J1939协议理解_第5页
第5页 / 共6页
点击查看更多>>
资源描述

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

1、J1939协议理解 - 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: 组成一个完好信息的一系列有序的数据位。帧又被划分成

2、几个域,每个域包括了预定义类型的数据。 CAN 数据帧CAN Data Frame:组成CAN 协议帧所必需的有序位域,以帧起始SOF开场以帧完毕EOF结尾。 报文Message:指一个或多个具有一样参数组编号的PGN数据帧。也就是说只要一个或多个CAN数据帧具有一样的PGN号,那他们就是属于一个报文。 多包报文Multipacket Messages:当具有一样参数组编号的所有数据需要使用多个CAN 数据帧来传输时使用的一种J1939报文。每个CAN 数据帧拥有一样的标识符,但在每个包中数据不同。 协议数据单元PDU的格式 PDU是J1939传输数据的格式,它基于CAN协议的扩展帧传输方式。

3、即它的标识符是29位的。 优先级:最高0000设置到最低7111 。所有控制报文的缺省优先级是3011 。 扩展数据页EDP和数据页DP的关系: 什么是第0页PGN,什么是第1页PGN?作用有什么不同? 还不是太清楚 PDU 格式PF和PDU 特定域PS的关系 PDU 格式PF PF240 PF=240255 PDU格式 PDU 特定域PS PS是组扩展GE值 PDU1格式 PS是目的地址DA PDU2格式 PDU1和PDU2时的参数组编号PGN数目 EDP 0 EDP 0 DP 0或者1 PF 240-255共16个数 PS 组扩展值 0-255共256个数 PDU2时参数组编号 2X16X

4、256=8192 DP PF PS PDU1时参数组编号 2X240PF的值=480 0或者1 0-239 目的地址 在说说J1939的标识符合CAN协议的对应格式: J1939的29位标识符格式 CAN协议扩展帧格式 首先,J1939的标识符是29位的,所以它使用的是CAN协议的扩展帧格式来传输数据。29位的标识符在存放器中的存放位置,正好对应CAN的ID28-ID0的29位。我们主要在ID18和ID17直接有两个位,SRR和IDE要求是必须写1的,它不包括在我们的J1939的标识符,还有ID0的后一位RTR位也不包括在我们的标识符中,这一位是无效位,应该写0。 标识符对应的CAN扩展帧的位

5、数: 优先权3位-?ID28 ID27 ID26 扩展数据页EP-?ID25 数据页DP-?ID24 PDU格式PF- ?ID23ID16 PDU特定域PS-?ID15ID8 地址SA-?ID7ID0 假如ECU读回来一串数据怎么判断参数组编号PGN呢? 首先,把数据的前29个字节标识符提取出来。 然后进展解析,解析方式: 把ID28ID24提取出来组成一个字节对应优先权位、EP、DP 把ID23ID16提取出来组成一个字节对应PF的8位 把ID15ID8提取出来组成一个字节对应PS的8位 上述ID25ID8就组成了数据的PGN参数组编号 例如: 收到的前29个字节是 0x67,0x98,0x

6、1c,0xa2 看看它们的存储方式: IDR0 IDR1 IDR2 IDR3 BIT7 ID28 0 ID20 1 ID14 0 ID6 6 ID27 1 ID19 0 ID13 0 DI5 5 ID26 1 ID18 0 ID12 0 ID4 4 ID25 0 1 ID11 1 ID3 3 ID24 0 1 ID10 1 ID2 2 ID23 1 ID17 0 ID9 1 ID1 1 ID22 1 ID16 0 ID8 0 ID0 0 ID21 1 ID15 0 ID7 0 RTR 0x67 0x98 0x1c SRR=1 IDE=1 1 0 1 0 0 0 2 0 0xa2 把ID28ID

7、24提取出来,其中标识符只包括ID25和ID24,即PGN的第一个字节是00二进制, 把ID23ID16提取出来,组成二进制的:11110000PF字节的8位 把ID15ID8提取出来,组成00001110对应PS的8位 把上述3个字节连接起来组成一个二进制的数:00 11110000 00001110,把它转换成16进制就是0XF00E,转换成十进制是:61454,这就是它的PGN号。 3、 应用层 应用层为应用过程访问OSI 环境提供了一种方法,包括支持应用的管理功能和通用的机制。它以PGN和SPN的方式详细规定了车辆使用的每个参数的数据长度,数据类型,分辨率和数据范围等。 应用层报文使用

8、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 1,我们把这数放到字节1中就可以了。 4、 第 页 共 页

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 演讲稿/致辞

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号