CAN总线J1939协议报文的数据解析与换算

目录

1.数据段

2.CAN报文解析公式:

3.转速解析换算

4.冷却液温度和机油压力解析换算

5.机油压力解析换算


在现代汽车系统中,CAN(Controller Area Network)总线已成为连接各电子控制单元(ECU)的核心通信手段。其中,J1939协议作为CAN总线在汽车领域的一个重要应用标准,为重型车辆和移动机械提供了标准化的数据通信方法。J1939报文不仅承载着丰富的车辆状态信息,还通过特定的数据格式和解析方法,实现了对车辆性能的精准监控和诊断。本文将探讨CAN J1939报文的数据解析与换算过程,不讲理论,直接上方法,只是对数据段进行讲解。

1.数据段

数据段用于存放当前报文所要传输的数据。每一帧数据最大可以存放8个字节,共64个位的数据。这64个位可以包含好很多个信号,定义了每一个信号的起始位置、长度、分辨率、偏移量等。具体可以通过查询SAE J1939相关的PGN、SPN、SLOTS、源地址等信息查询表或者在SAEJ1939-71文档里面直接搜索,查看到相关信息后,代入下面公式计算。

2.CAN报文解析公式:

解析值=原值*分辨率+偏移量(用于接收)

原值=(解析值-偏移量)/分辨率(用于发送)

3.转速解析换算

在查询中搜索“61444”

SPN是190,对应Engine Speed,查看分辨率【Resoultion】每一个bit位代表的是0.125转,偏移量【Offset】是0,SPN在PGN的位置【SPN Position in PGN】是4-5,代表第4和第5字节代表转速【Engine Speed】,通过4-5位置来获取原值。用CAN分析仪采集到PNG是F004的数据帧是0x 00 7D 7D 30 2F 00 FF 7D

这2个字节对应的转速解析算法如何计算呢?报文的低字节在前,高字节在后,第4是0X30和第5字节0X2F,组合到一起就是0X2F30,对应的十进制是0X2F30=12,080,再结合每一个bit代表0.125转,所以2F30对应的实际转速值为:

转速解析值=原值*分辨率+偏移量=12,080*0.125+0=1510转每分钟。

类似地,再介绍冷却液温度和机油压力解析换算。

4.冷却液温度解析换算

冷却液温度的PGN是0xFEEE,SPN长度是1 byte,每一个bit位代表的是1 °C/bit ,偏移是-40 °C,范围是-40 to 210 °C,在PGN的位置是1,读取的数据是0X 70 FF 4C 2B FF FF FF FF ,取第一位是0X70,对应的十进制是0X70=112。

冷却液温度解析值=原值*分辨率+偏移量=112*1+(-40)=72°C

5.机油压力解析换算

机油压力的PGN是0xFEEF,SPN长度是1 byte,每一个bit位代表的是4 kPa/bit,偏移是0,范围是0 to 1000 kPa,在PGN的位置是4,读取的数据是0X 00 FF FF 80 FF FF FF 02 ,取第4位是0X80,对应的十进制是0X80=128。

机油压力解析值=原值*分辨率+偏移量=128*4+0=512kpa

单位转换 :512kpa = 5.12bar

其他数据类似方法,不再列举。

序号PGN(10进制)PGN(16进制)SPN NameSPNSPN Name(英文)SPN Position in PGNSPN Length(字节数)Resolution(分辨率)Offset(偏移)
161444F004转速190Engine speed4-52 bytes0.125 rpm per bit0
265271FEF7电池电压168battery voltage2 bytes0.05 V/bit0
365263FEEF机油压力100oil pressure41 byte4 kPa/bit0
465262FEEE冷却液温度110water temperature11 byte1 °C/bit-40 °C
565263FEEF机油温度175oil temperature2 bytes0.03125 °C/bit-273 °C
665276FEFC燃油液位96fuel level1 byte0.4 %/bit0
765266FEF2燃油消耗率183Fuel Rate2 bytes0.05 l/h per bit0
865262FEEE燃油温度174Fuel  temperature1 byte1 °C/bit-40 °C
965263FEEF燃油压力94Fuel Press1 byte4 kPa/bit0
1065263FEEF机油液位98Oil Level1 byte0.4 %/bit0
1165270FEF6涡轮压力102boost press(Engine Intake Manifold #1 Pressure)1 byte2 kPa/bit0
1265269FEF5大气压力108Barometric Press1 byte0.5 kPa/bit0
1365269FEF5环境温度171Ambient temperature2 bytes0.03125 °C/bit-273 °C
1465270FEF6进气歧管温度105Intake manifold temperature1 byte1 °C/bit-40 °C
1565270FEF6排气温度173Exhaust temperature2 bytes0.03125 °C/bit-273 °C
1665263FEEF冷却液位111Coolant Level1 byte0.4 %/bit0
1765257FEE9发动机本次油耗182Engine Trip Fuel4 bytes0.5 l/bit0
1865257FEE9发动机累计油耗250Engine Total Fuel Used4 bytes0.5 l/bit0
1965214FEBE发动机额定转速189Engine Rated Speed2 bytes0.125 rpm per bit0
2065214FEBE发动机额定功率166Engine Rated Power2 bytes0.5 kW/bit0
2161443F003负载百分比92Engine Percent Load At Current Speed1 byte1 %/bit0
2261444F004扭矩百分比513Actual Engine - Percent Torque1 byte1 %/bit-125%
2365247FEDF名义摩擦扭矩百分比514Nominal Friction - Percent Torque1 byte1 %/bit-125%
2465129FE69发动机冷却液温度21637Engine Coolant Temperature (High Resolution)2 bytes0.03125 °C/bit-273 °C
2565188FEA4发动机油温21135Engine Oil Temperature 22 bytes0.03125 °C/bit-273 °C
2665188FEA4发动机ECU温度1136Engine ECU Temperature2 bytes0.03125 °C/bit-273 °C

本内容仅供参考,衷心感谢每一位读者对本文的关注与宝贵支持。若您在阅读过程中有任何疑问、建议或需要进一步的帮助,请随时与我取得联系。同时,如果您觉得本文对您有所启发或帮助,非常欢迎您进行关注、评论与转发。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值