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 具体的源地址,目的地址定义。

2,0x18EA00F9 0x04 0xF0 0x00 0x00 0x00 0x00 0x00 0x00 整体含义解析 0x18EA00F9 的含义我们上面已经解释清楚了,另外上面的表格也有介绍后面的 CAN 报文内容为参数组编号,那么 0X040XF0,组合到一起就是 F004(CAN 报文里面最前面的为 低字节)参数群编号 F004 代表什么意思呢?
在这里插入图片描述

在 SAEJ1939-71 文档里面直接搜索 F004,即可定位到该参数组编号定义的位置。F004 即为 PGN,通过该详细介绍,我们可以看到第 4,5 字节代表转速。
最后我们总结一下:0x18EA00F9 0x04 0xF0 0x00 0x00 0x00 0x00 0x00 0x00 这条请求报文 的整体含义是:外部设备地址为 F9 的车外诊断服务工具请求车辆发动机转速,转速的参数 组编号为 F004,也正是该 F004 参数组编号决定了这条报文是请求的发动机转速。
3,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 转每分钟。

  • 6
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yhwang-hub

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值