车载测试-can报文解析规则实例

报文解析

报文组成

一般报文主要有以下几个参数(比较全的情况下)

解析报文时主要用到的是帧ID帧数据

帧ID

接收到的帧ID是十六进制的形式,由29位标识符转换的,目前大多数的通信协议中都直接给出了相应的帧ID,不需要换算

标识符PGN:

PRDPPFPSSA
311888
  • P:优先级,有3位,可以有8个优先级(0~7)
  • R:保留位,有 1位,固定为0
  • DP:数据页,有1位,固定为0
  • PF:报文的代码,有8 位
  • PS:报文的目标地址(也就是报文的接收方),有8位
  • SA:报文的源地址(也就是报文的发送方),有8位

 

BMS与VCU之间的29位标识符PGN

PRDPPFPSSA
3002551243
011001111 11110111 11000000 0011

以上29位标识符 二进制 转换为 十六进制 为 ID=0x0CFF7C03

帧数据

帧数据一般由8个字节组成,根据相关通信协议来对应其中的含义,比如BMS发送的报文,byte3对应电流的低字节,byte4对应电流高字节

BMS与VCU之间的报文

OUTINIDT位置数据备注
电池管理系统整车控制器PGN=65404100ms1byte
2byte
3byte
4byte
5byte
6byte
7byte
8byte
电池总压低字节
电池总压高字节
电流低字节
电流高字节
soc
保留
保留
保留
电池总压
分辨率:0.1V/bit;偏移0;范围:0~1000V
电流
分辨率:0.1A/bit;偏移:-1000A;范围-1000~1000A
荷电状态
分辨率:0.4%/bit;偏移:0;范围:0%~100%
保留
保留
保留

报文解析

CAN报文解析就是用帧数据中相应的字节,根据具体的通信协议解析,计算出对应的物理信号的值

数据类型的定义

数据类型比例偏移量字节数
电流0.1A/bit-10002byte

value = recv(byte)*scale+offset

例:

帧ID=0x0CFF7C03

帧数据:12 34 12 34 12 FF FF FF

电流 = 3412*0.1-1000=333A

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小赖同学啊

跟着大师走,路不会太差

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

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

打赏作者

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

抵扣说明:

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

余额充值