1. CAN报文定义

CAN报文是指发送单元向接受单元传送数据的帧。我们通常所说的CAN报文是指在CAN线(内部CAN、整车CAN、充电CAN)上利用ECU和CAN卡接收到的十六进制报文

2. CAN协议中CAN报文种类

报文传输过程中有:数据帧远程帧错误帧过载帧帧间隔

3. CAN报文的组成

通常接收到的CAN报文由很多部分(图1)组成,解析报文时用到的主要是帧ID数据两部分。

3.1 帧ID的组成

接收到的十六进制的ID实际上是由 29 位标识符转换而来,目前大多数的通信协议中都直接给出了相应的帧ID,不需要换算。如表 1 所示。

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

3.2 数据段的组成

数据段一般由1 ~ 8个字节(Byte)组成,来代表通信协议中相应的含义。每个字节有2个字符,分为高4位和低4位。有的数据需要相邻的2个字节组合才能表示,则需要分为高字节和低字节。

例如 ,收到表2所示通信协议中需要的报文(ID:1818D0F3 ):
1818D0F3 ce 0d 00 7d 00 6d 11 00 。
第 1 个字节ce中的c为高 4 位,e为低 4 位。第 1 、 2字节表示总电压,而且注明Byte 1 为低字节,Byte 2 为高字节,那么解析时就应该为: 0dce。

4 CAN报文的解析

根据需要收到CAN报文之后,需要根据具体的通信协议解析,然后分析解析出的数据是否正确。下面进行报文实例解析。数据类型定义如表 4 所示。

报文内容如表2所示。收到的报文为:1818D0F3 ce 0d 00 7d 00 6d 11 00 。

  • 协议中规定报文的第一、二字节表示总电压,高字节在前,低字节在后。又总电压的单位为0.1 V。所以在上面的数据中 0 dce代表总电压,转为十进制为 3534,乘以0.1V的单位,则得到总电压值为353.4 V。
  • 协议中规定报文的第三、四字节表示总电流,又总电流的单位为 0.1A,偏移量为 32000 。所以在上面的数据中 7d00 代表总电流,转为十进制为32000 ,乘以 0.1 再减去 3200 的偏移量等于0 ,则说明此时电池组没有被充电或放电,电流为 0 。
  • 协议中规定报文的第六、七字节表示最高电池电压及位置。单体电池电压单位为0.01V。最高 4 位代表箱号。所以在上面的数据中116d 代表最高电池电压及位置,其中1代表箱号,即最高电池电压在第1 箱。 116 d代表最高电池电压,转为十进制为 365 ,乘以 0.01 A的单位,则得到最高电池电压为3.65 V。
5 CAN报文的解析—案例分析
5.1 江淮3代车仪表无SOC和电池总压
  • 首先找到相应的通信协议,如表5所示。
  • 然后通过整车CAN收到相应报文,如表6所示。
  • 接着找到ID: 180460F4的报文(180460F4数据帧扩展帧
    0x08 60 5f 00 07 0c 76 07 d0 )进行解析。
  1. 当前SOC=95(5f转换为十进制)×1%(分辨率)+ 0(偏移量)= 95%。
  2. 电池组电压=3190(0c76转换为十进制)× 0.1(分辨率)+ 0(偏移量)= 319 。
  • 最后得出结论:BMS已经正常发送SOC和电池总压至整车CAN,仪表未显示可能是仪表本身问题或者仪表连接整车CAN线路出了问题。

5.2 江淮 4 代车无法进行慢充
  • 首先插上充电枪后确认充电回路已形成(充电机直流输出端能测到电池电压)。
  • 再找到通信协议中BMS的慢充部分,如表 7 所示。
  • 然后通过整车CAN接收到报文,如表 8 所示。
  • 接着找到ID:403 ( 0 x 00000403 数据帧 标准帧 0x08 03 00 3c 0d 8e 00 00 00 )进行解析。
  1. 控制指令: 03 转换为二进制为 11 —充电器开启(11为二进制),说明BMS允许充电。
  2. 充电电流需求= 60 ( 003c转换为十进制)× 0.1 (分辨率)+ 0 (偏移量)= 6 A。
  3. 充电电压需求= 3470 (0d8e转换为十进制)×0.1(分辨率)+0(偏移量)= 347V。
  • 最后可以得出结论:在充电回路形成、BMS允许充电、充电需求正常的情况下,充电机仍然无输出,肯定是充电机本身有问题。

CAN报文解析—案例相关推荐

  1. 8583 报文解析过程

    一. 全局概述 1. <多渠道平台接入接口规范>这个标准规定了各种接入端(主要包括直联多渠道平台的终端, 包括这里主要关注的POS机)与中国银联多渠道平台之间进行联机交易时使用的报文接口, ...

  2. 8583报文解析1.0

    8583报文解析1.0 文章目录 8583报文解析1.0 一.规则 1.1:域规范简表 1.2:规范说明 1.2.1: 报文头 1.2.2: 操作类型 1.2.3: 位图:有效域明细 1.2.4:域规 ...

  3. 基于DPI(深度报文解析)的应用识别

    一.概述 1.DPI(Deep packet inspection,深度报文解析) 所谓"深度"是和普通的报文分析层次相比較而言的,"普通报文检測"仅分析IP包 ...

  4. hj212协议如何和php通讯,HJ212数据传输标准报文解析

    HJ212分为2005年(HJ/T212-2005)和2017年(HJ212-2017)的版本,略有不同. 网上没找到非常官方的渠道下载,在这贴一份2017年版本的下载地址 TCP/IP通讯包组成 名 ...

  5. 卡尔曼滤波器推导与解析 - 案例与图片

    李小铭 随笔- 5  文章- 2  评论- 13  </div><div id="mylinks"> 博客园  首页  新随笔  新文章  联系  管理   ...

  6. 双层json报文样例_json报文解析

    1.json字符串报文解析 for (Iterator> iterator = map.entrySet().iterator(); iterator.hasNext(); ) { Map.En ...

  7. 20201217-IP报文解析

    20201215-IP报文解析 {1}报文结构 ![图片.png](https://img-blog.csdnimg.cn/img_convert/718558a49aa5479c6049e1ea7f ...

  8. 第一章 银联8583报文解析

    1报文格式定义 POS终端上送POS中心的消息报文结构包括TPDU.报文头和应用数据三部分: -- TPDU说明:长度为10个字节, 压缩时用BCD码表示为5个字节长度的数值. -- 报文头说明:总长 ...

  9. DPI(Deep packet inspection,深度报文解析)

    DPI(Deep packet inspection,深度报文解析) 正好,有这么一个基于opendpi框架的深度报文分析的工具--ndpi ndpi是在opendpi的基础上编写而来的协议分析工具. ...

  10. 【通信原理】PC上调试MODBUS基本功能(附报文解析)

    目录 一 测试环境配置: 二 MODBUS概述: 三 MODBUS测试步骤: 四 MODBUS协议分析: 一 测试环境配置: 本文用到的测试工具如下: (1)Mthings:MThings是一款基于M ...

最新文章

  1. 走近webpack(0)--正文之前的故事
  2. ERROR LNK2019:无法解析的外部的符号 _sscanf或者_vsprintf
  3. boost::sort模块实现spreadsort 64 位整数排序示例
  4. springmvc 传对象报400_那么火的SpringMVC到底有什么过人之处呢
  5. 饿了么4年+阿里2年:研发路上的一些总结与思考
  6. 二叉树的字符图形显示程序_每个程序员都必须知道的8种通用数据结构
  7. 俯视排版类型海报|没思路?试试可临摹PSD分层模板设计吧!
  8. 蓝桥杯入门训练Fibonacci数列
  9. ajax如何向action发送数据的
  10. A. Is your horseshoe on the other hoof?
  11. RGB颜色过度,数值转颜色
  12. 第153章 SQL函数 UCASE
  13. 大数据Apache Druid(四):使用Imply进行Druid集群搭建
  14. cgroup driver: cgroupfs还是systemd
  15. 【C初阶】C初阶考试题
  16. 你还用60款下架侵害用户权益APP吗!!!!!
  17. 基于arduino uno 开发板制作的 智能书包项目
  18. 【视频理解】论文串讲
  19. 【图像超分辨率】Accurate Image Super-Resolution Using Very Deep Convolutional Networks
  20. java 手电筒 电池_android 手电筒的实现

热门文章

  1. 机器学习算法入门与编程实践
  2. python3之http.server模块
  3. 3d打印英语文献_3D打印模型在腹腔镜肝胆微创手术术前培训中的应用
  4. 5W1H、5W2H 分析法
  5. 浙大翁凯老师Java课堂学习记录(第三周)
  6. 好用的dns服务器工具有哪些?
  7. 傲腾内存简介 AEP 简介
  8. KYLO的Java基础知识总结(其二)
  9. IO、NIO和Netty
  10. js实现斗地主的算法 验证牌型 找大于上家的牌型