提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、用CANTest在线读取报文信息
  • 二、报文解析说明
  • 总结

前言

CAN 最早出现在 80 年代末的汽车工业中,由德国 Bosch 公司最先提出,全称是“Controller Area Network”,即控制器局域网,是国际上应用最广泛的现场总线之一。随着汽车电子装置越来越多,它们之间的通信的控制也越来越复杂,CAN总线在汽车上的应用也越来越多。做为汽车电器开发人员或是汽车检修人员,很有必要掌握CAN的相关知识,本系列将重点介绍CAN通信解析方面的内容,通过读取报文,知道各电子装置的工作状态。


一、用CANTest在线读取报文信息

1、硬件连接:将CAN分析仪的2个通道分别接到要测试的CAN网络中,USB线接到电脑上。
2、打开CANTest,点选“选择设备”菜单下的“USBCAN2”,打开下一窗口。

3、选择“同时打开全部CAN通道”,即可打开设备的2个通道,同时侦测。在“波特率”标签后选择CAN网络的实际波特率值,再点击“确定并启动CAN”,即可启动测试。

4、窗口左上部的通道0和通道1,用于两个通道之间的切换。主窗口显示接收和发送的报文信息,包括时间、ID、帧格式、类型、数据长度、实时数据等。下半部分的“基本操作”,用于向CAN网络发送一条报文。也可点击左下角的“高级操作”标签,切换到发送报文的高级模式。

5、在“高级操作”模式下,可同时设置多条报文内容,再控制发送模式。

6、将一段时间内的报文信息保存到文件中:点击“实时保存”,弹出“另存为”窗口,依次选择保存位置,输入文件名,选择文件类型,再点击保存。其中文件类型最好选择“ASC File(*.asc)”,以便于用CANalyzer软件离线分析,其它格式一般只能看文件。

7、要结束保存文件时,点击“停止保存”即可,上述定义的报文文件就生成完了。

8、窗口中的报文正常是实时滚动,按“暂停”可以停止滚动显示,便于查看当前数据。按“继续显示”就恢复继续滚动显示。

9、按上图中的“DBC”按钮,打开DBC查看窗口,点选“加载协议”,选择DBC文件加载,点开每行最左侧的“+”号,即可展开显示出各个信号的状态。

二、报文解析说明

1、一般情况下,一条报文消息包含8个字节的数据,共64位。
比如上图第一行中,ID为0x18FFC5A9的消息数据是:05 00 01 09 00 00 00 08,数据格式是16进制数,从左到右是第一个字节到第八个字节,也有称为每0个字节到第7个字节的。
2、8个字节数据的布局图如下:每一行代表一个字节,每个单元格代表一个位。第一个字节包含bit0bit7,第二个字节包含bit8bit15,依此类推。

3、比如第一个字节数据0x05,转换到布局图上的值是下图:

4、当一个信号的数据比较大时,超过8位,这就出现了跨字节的情况,这时就存在两种数据方向的类型。一种叫Intel格式,另一种叫做Motorola格式。
(1)Intel格式
假设上面举例中:05 00 01 09 00 00 00 08的第三、第四字节代表的是转速数据,格式是Intel格式,分辨率是1,偏移量是0。
数据的解码计算方法:实际值 = 数字量分辨率 + 偏移量
数字量:报文中的实际数值,一般要转换成十进制数;
分辨率:单位数值代表的实际值;
偏移量:数值为0时的实际值;
本例中:十六进制数字量即为0x0901,转换成十进制数是2305,所以转速 = 2305
1+0=2305。数据按位排列如下图所示:

(2)Motorola格式
Motorola格式的数据方向与Intel格式相反,如下图:
同样为上述数据,十六进制数字量变为0x0109,转换成10进制数是265,所以转速 = 265*1+0=265。

由以上两图可以看出,如果信号在同一个字节内,两种格式的方向是一样的。


总结

本篇介绍了用CANTest在线读报文方法,以及报文的数据解析方法。

汽车CAN通信解析(二)相关推荐

  1. 不同Vlan之间的PC相互通信(二)

    不同Vlan之间的PC相互通信(二) 本次实验:使用hybrid的端口实现两个二层交换机上属于不同Vlan的PC互通. 预备知识 详见上一篇笔记:不同Vlan之间的PC相互通信(一) 解析: hybr ...

  2. Android BLE与终端通信(二)——Android Bluetooth基础科普以及搜索蓝牙设备显示列表

    Android BLE与终端通信(二)--Android Bluetooth基础搜索蓝牙设备显示列表 摘要 第一篇算是个热身,这一片开始来写些硬菜了,这篇就是实际和蓝牙打交道了,所以要用到真机调试哟, ...

  3. Android BLE与终端通信(二)——Android Bluetooth基础搜索蓝牙设备显示列表

    Android BLE与终端通信(二)--Android Bluetooth基础搜索蓝牙设备显示列表 摘要 第一篇算是个热身,这一片开始来写些硬菜了,这篇就是实际和蓝牙打交道了,所以要用到真机调试哟, ...

  4. asp.net C#生成和解析二维码代码

    类库文件我们在文件最后面下载 [ThoughtWorks.QRCode.dll 就是类库] 使用时需要增加: using ThoughtWorks.QRCode.Codec; using Though ...

  5. Android10.0 Binder通信原理(二)-Binder入门篇

    摘要:本节主要来讲解Android10.0 Binder的设计原理,如何设计一个Binder通信 阅读本文大约需要花费15分钟. 文章首发微信公众号:IngresGe 专注于Android系统级源码分 ...

  6. C语言文件操作解析(二)【转载】

    http://www.cnblogs.com/dolphin0520/archive/2011/10/05/2199598.html C语言文件操作解析(二) C语言中对文件进行操作必须首先打开文件, ...

  7. 进程通信之二 管道技术第二篇 匿名管道

    上一篇<进程通信之二 管道技术第一篇 输入输出的重定向>示范了增加若干程序代码来完成程序输入输出的重定向,并提出了如果没有程序源代码,只有程序文件如何来完成重定向.本篇就介绍如何使用匿名管 ...

  8. C语言文件操作解析(二)

    C语言文件操作解析(二) C语言中对文件进行操作必须首先打开文件,打开文件主要涉及到fopen函数.fopen函数的原型为 FILE* fopen(const char *path,const cha ...

  9. java生成二维码/java解析二维码

    二维码的优缺点 优点:1. 高密度编码,信息容量大:2.编码范围广:3.容错能力强:4.译码可靠性高:5.可引入加密措施:6.成本低,易制作,持久耐用. 缺点:1.二维码技术成为手机病毒.钓鱼网站传播 ...

最新文章

  1. SQL与NoSQL区别
  2. UA MATH636 信息论9 有限域简介
  3. Jena+fuseki安装配置教程
  4. 在php中构造函数的作用,php构造函数的作用
  5. 分布式锁RedLock的java实现Redisson
  6. php sslbug,PHP错误抑制符(@)导致引用传参失败Bug的分析
  7. 386bsd 0.0
  8. 关于spark写入文件至文件系统并制定文件名之自定义outputFormat
  9. 【BZOJ1061/3265】[Noi2008]志愿者招募/志愿者招募加强版 单纯形法
  10. 排序总结---常用的排序算法总结,java和js实现
  11. 大数据分析平台安全问题
  12. ExtJS新手调试过程
  13. 图书管理系统(C语言实现)
  14. python随机出题_什么软件可以自制题库随机出题?怎么操作
  15. Spring Tool Suite4安装和配置
  16. G_分包具体详情及处理
  17. HTCVIVE无线套装安装后unityvr项目无法在头盔中显示
  18. Qt软件开发交流群分享
  19. v-model是什么?怎么使用?
  20. Zotero-word中引用跳转到参考文献/建立超链接-引用格式(Xie et al 2021, Achanta et al 2012)

热门文章

  1. 算法 - 递归实现汉诺塔(The Tower of Hanoi)
  2. lisp pl线线段数_编写lisp程序多条多段线连接成一条多段线
  3. 大数据中心显示大屏幕用液晶拼接屏还是led显示屏?
  4. 端午节,我用Python画了一盘粽子
  5. 随笔---Beego中的routers包个人的理解
  6. ppt转换成pdf格式转换器怎么使用
  7. 黑苹果检测_苹果技术进行情绪检测
  8. 前端导出excel自定义样式(行高除外)
  9. access通过身份证号提取性别_Access计算根据身份证号码字段计算年龄和性别的表达式,最好是还能确定户籍地址,该在什么地方输入?...
  10. html语言如何排版,html语言,使用table排版.docx