一招吃透SAEJ1939-71数据解析

文章介绍了如何根据SAEJ1939-71文档解析CANID,重点在于29位CANID的结构,如优先级、参数组编号(PGN)和源地址。通过示例详细解释了请求和回复帧的含义,特别是如何从参数组编号F004获取发动机转速信息,并展示了转速值的计算方法,涉及SPN和bit位的转换。
摘要由CSDN通过智能技术生成
 面对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具体的源地址,目的地址定义。
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地址为发动机控制器–主机。
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转每分钟。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值