一招吃透SAEJ1939-71数据解析

 面对SAEJ1939-71文档,如何根据该文档去解析我们想要获取到的数据呢?下面,4步就ok,只要你跟着走下来,基本可以一遍就掌握解析办法。

例如:

终端设备请求: 转速:请求帧:0x18EA00F9 0x04 0xF0 0x00 0x00 0x00 0x00 0x00 0x00

车子回复:           回复帧  0x18F00400 0x00 0x00 0x00 0x12 0x34 0x00 0x00 0x00

下面我们来仔细解释:

1,0x18EA00F9 的含义

     SAEJ1939是使用的29位CANID,这29位已经被明确定义各域代表的内容,很多博文讲这个,在这里我就不再细说。我们只关注里面重要的,而且是好多人都没有提及的。首先,18是优先级,保留位和数据页的组成;EA00,这个是大家问的最多的一个内容,它代表什么意思呢?

在SAEJ1939-21中,对这个EA00有专门的解释帮我们解决了这个疑问。该EA00为用于从一个或多个网络设备请求参数组。也就是这个是发送请求命令的专用PGN(参数组)。最后是F9,它代表的是源地址,也就是该请求设备的地址,含义为车外诊断服务工具#1的地址,SAEJ1939具体的源地址,目的地址定义,见我的另外一篇博文介绍

SAEJ1939协议记录(一)----SAE J1939源地址,目标地址定义列表_j1939源地址列表_qscdianzhi的博客-CSDN博客

3,0x18EA00F9 0x04 0xF0 0x00 0x00 0x00 0x00 0x00 0x00整体含义解析

      0x18EA00F9的含义我们上面已经解释清楚了,另外上面的表格也有介绍后面的CAN报文内容为参数组编号,那么0X04 0XF0,组合到一起就是F004(CAN报文里面最前面的为低字节)参数群编号F004代表什么意思呢?

在SAEJ1939-71文档里面直接搜索F004,即可定位到该参数组编号定义的位置。F004即为PGN,通过该详细介绍,我们可以看到第4,5字节代表转速。

    最后我们总结一下:0x18EA00F9 0x04 0xF0 0x00 0x00 0x00 0x00 0x00 0x00这条请求报文的整体含义是:外部设备地址为F9的车外诊断服务工具请求车辆发动机转速,转速的参数组编号为F004,也正是该F004参数组编号决定了这条报文是请求的发动机转速。

2,0x18F00400的含义

      18代表优先级和保留位以及数据页,这个无需过多讲解。

      F004这个转速所在的参数组的编号,意思是这个报文是F004参数组编号的数据项。

      00代表源地址,就是该报文是由地址为00的设备发出来的,00地址为发动机控制器--主机,具体地址定义见我另一篇博文介绍:

SAEJ1939协议记录(一)----SAE J1939源地址,目标地址定义列表_j1939源地址列表_qscdianzhi的博客-CSDN博客

4,0x18F00400 0x00 0x00 0x00 0x12 0x34 0x00 0x00 0x00整体含义解析

    见上面的F004的参数组解析,我们知道了字节4和字节5代表的是发动机转速响应,

那么具体这2个字节对应的转速解析算法如何计算呢?我们看后面的一栏,SPN栏,转速对应的SPN为190,接着我们再去搜索SPN190对应的解析。

该项很清楚的写到了,每一个bit位代表的是0.125转。也就是说车子回复的报文里面的第4,第5字节,组合到一起就是0X3412(报文的低字节在前,高字节在后),对应的十进制为是0X3412=13330,再结合每一个bit代表0.125转,所以13330对应的实际转速值为:13330*0.125=1666.25转每分钟。

  • 12
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值