关于CAN总线逆向工程的初步探讨
随着中国汽车业的发展,汽车的后端市场也日趋繁荣,但由于各汽车生产厂家的技术壁垒,后端设备供应商如GPS,车载音响,车载DVD,诊断仪等供应商很难得到原汽车厂家各车型的报文定义,以使自己的产品完全和车载兼容。本文将以美国英特佩斯控制系统有限公司的产品(软件:Vehicle Spy,硬件:neoVI)为例,探讨如何解码CAN总线报文。
Vehicle Spy产品是美国通用汽车的标准测试工具,可以同时支持HS CAN、MS CAN、ISO9141、J1850VPW、J1850PWM、LIN等多种总线协议、 实现车载网络诊断、节点/ECU仿真、数据采集、自动测试和车载网络总线监控等功能,相对于其它的总线工具,该产品注重用户使用的高效性和便捷性,易于用户学习和使用。
Vehicle Spy可以通过两种方式监控总线通信:通过车载的ODB接口监控汽车总线通信(图1)和直接监控ECU之间的通信(包括诊断仪和被诊断设备,图2)
当设备连接正常并设置好正确的波特率后,打开Vehicle Spy运行界面,无论是车载总线通信数据或是ECU间的总线通信数据都会被毫无遗漏的实时显示在监控界面上,图3显示的是监控的车载CAN总线数据,这些数据都是未经解码的原始数据,接下来 我将介绍监控界面的各项:
1)、图3中①所在的部分是滤波器,因为vspy可以同时监控多种网络数据,该滤波器基于网络类型滤波,例如,勾选HSCAN,则监控界面将只显示HSCAN类型网络数据。
2)、图3中②所指的栏为滤波栏,在该栏中可以更灵活实现滤波功能,如根据报文名称,ArbID等滤波,支持“?”“*”等符号,比如现在我们只想监控Arb ID为110和120的报文,则只需要在ArbID栏输入110,120则可,如图4所示:
3)、图3中③所指为进制切换按钮,只需简单点击即可将报文数据切换成其它进制(默认为16进制)。
4)、图3中数据字节为蓝色背景的部分表示变化较慢的数据(④所指)
5)、图3中数据字节为黑色背景的部分表示变化较快的数据(⑤所指)
6)、图3中数据字节无背景颜色的部分表示出现过后在一段时间没有再出现的数据(该时间值是可以设定的)
7)、整个监控界面实际上也是一个缓冲区,该缓冲区的数据可以随时保存,保存的数据可以用于以后回放以分析数据,图3所其实就是在回放数据文件,⑥所指为缓冲区进度条。
8)、vspy的默认属性栏包含了报文数量统计,报文接收时间等属性,还有其他的属性用户可以在设置栏自己定义,这将非常有助于逆向分析。
通过以上的介绍,相信有经验的工程师已经看出这款产品在总线数据解码方面的优越性。对于车载CAN总线,由于CAN报文的优先级取决于ArbID,ID值越小,优先级越高,这为我们揣测报文是来自于车载上的哪个ECU提供了依据,由于vspy可以实时无遗漏地监视总线通信报文变化并能以各种颜色来区分数据变化的快慢,因此我们可以通过反复动作车辆来观察报文变化情况,如开关车门,开和关会引起某个数据字节中的某位产生状态变化,由于这种变化是非连续性的快速变化数据,在监控界面中必然会以蓝色背景显示,因此我们可以在开关车门的时候在监控界面查找有蓝色变化的报文,并将这些报文用上述的滤波功能过滤出来以缩小监视范围,然后反复动作车门以确定是哪条报文的某位随着车门动作在变化,这将很容易辨别,在得出结论以后,再将该位提取出来并命名然后再动作车门以进行验证。当然,vspy提供解析报文的功能,比如我们判定图3中ArbID为510的报文中第二字节第二位表示车门开关,则可将该位命名为door control,并将该条报文设置为其它颜色,以方便观察,解析的结果如图5所示,对解析的结果,vspy还可以将其保存为标准的DBC格式。对于直接监视ECU之间的通信,则过程会简单的多。
当然,如果要解码ECU的所有报文,工作量会非常大,如果是解码整个车辆的报文,那可能是需要团队来完成,本文只是对解码工作做初步探讨,抛砖引玉,希望能与大家交流。
关键字:CAN总线 逆向工程
引用地址:
关于CAN总线逆向工程的初步探讨
推荐阅读最新更新时间:2024-05-02 23:40
例举CAN总线网络应用
CAN总线网络 CAN采用多主工作方式,节点之间不分主从,但节点之间有优先级之分,通信方式灵活,可实现点对点、一点对多点及广播方式传输数据,无需调度。也就是说,它可向系统中的所有节点进行报文发送广播,即CAN系统中的每个节点均同时接收到同样的数据。缺省情况下,CAN是基于报文而非地址的。系统采用分布式控制实现方法集成了多节点(见图1a所示分布式网络)。这种拓扑结构的好处之一是,节点的增加和去除非常简单,对软件的影响也很小。CAN网络要求每个节点均具备智能,但智能化水平可根据节点所承载的任务进行调整。因此CAN系统中使用的单片机通常较简单并且引脚数也较少。图1a进一步显示了CAN网络可实现分布式网络,从系统中增加或
[嵌入式]
光纤CAN总线通信技术研究
引言 CAN 控制器局域网(Controller Area Network)起源于德国 Bosch 公司,由于其独特的多主非破坏逐位仲裁机制、高可靠的数据传输、良好的开放性、较高的性价比、国际范围的标准化和广泛的器件来源,迅速在众多工业自动化领域得到了广泛应用,成为发展最快、最具前途的现场总线之一。 CAN 总线作为一种应用越来越广泛的现场总线,一直以来都是采用金属双绞屏蔽线作为组网传输介质,尽管采用差分方式传输的 CAN 总线已经具有较好的抗干扰能力,但是,对于一些特殊场合,如:电磁环境恶劣、高电压、强磁场等应用场合,金属双绞屏蔽线的 CAN 网络就无法适应了。近年来,随着光纤通信技术的快速发展,光纤作为新兴的信息传输介质,具
[嵌入式]
CAN总线在程控交换机中的应用设计
在电话程控交换机中,控制系统由前端处理、主控制和维护管理三级处理系统构成。
主控制机与前端处理机之间有通信处理机,它主要完成通信功能,将从各从节点传来的信息整理打包传往主控单元,并将从主控单元发送来的命令分配发往各从节点。其中,前端处理机与主控机连接的电路结构如图1所示。 主控制机与6个通信处理机之间通过双口RAM,以中断方式传送数据,每个通信处理机与前端处理机都采用具有HDLC协议的8044芯片,各前端机不能主动发起与通信控制机的通信,必须等待通信控制机询问该节点时才能向它发送数据。 对于图1的应用,本文采用CAN总线技术来实现,大大减化了软硬件设计,降低了成本。 CAN总线设计关键点
[嵌入式]
基于CAN总线的汽车组合仪表盘的设计
1. 概述
控制器局域网(Controller Area Network, 简称CAN) 是一种支持分布式和实时控制的串行通信网络,其主要特点是采用多主方式工作, 基于报文ID 并采用非破坏总线仲裁技术进行优先权仲裁,串行通信,事件触发型,大大减少线束的数量。CAN总线协议最初是由德国BOSCH公司于20世纪80年代提出并用于汽车的,1993年形成国际标准ISO 11898-1。由于其高性能、高可靠性及独特的设计,CAN越来越受到人们的重视,已经广泛应用于汽车电子控制,目前已经成为整车网络中的主要通信方式。
在为某公司开发的汽车仪表盘控制系统中,由于整车网络信息化的需要,希望采用总线方式,将仪表盘挂接在通信
[嵌入式]
基于SHARC DSP与SJA1000的CAN总线接口设计
引言 当前,有一些微处理器将CAN控制器嵌入到系统之中,但是仍有大量人们比较熟悉的微处理器并不带有CAN控制器。采用微处理器和CAN控制器组合的设计成为必要,而且,CAN控制器具有完成CAN总线通信协议所要求的全部必要功能,因此,CAN控制器与其它微处理器的接口设计成为设计CAN总线系统的首要工作。本文重点介绍以SHARC DSP为核心的、基于SJA1000的CAN总线接口设计。
SJA1000简介
SJA1000是一种独立的CAN控制器,用于移动目标和一般工业环境中的控制器局域网络(CAN)。它是Philips公司早期CAN控制器PCA82C200(Basic CAN)的替代品,而且增加了一种新的工作模式
[嵌入式]
采用模块化编程设计的基于CAN总线的智能继电器研究
为解决电气系统中控制距离短,开关响应实时性不强,一般智能节点容易受到外界干扰,系统掉电后数据丢失等一些列问题,结合微电子技术、微处理器的特点,以及CAN总线的优势,对以AT89C51和SJA1000为控制核心,采用模块化编程设计的基于CAN总线的智能继电器进行了研究。研究结果表明,能更进一步提高系统的控制距离,有效检测系统中的大电流,并及时通断开关,对突发性电源故障能进行可靠检测,并及时保存重要数据,提高了系统的抗干扰性,也可以接入CAN总线网络,使得对继电器的控制变得更为灵活。 过去的几十年里,在很多电气设备中,比如车辆、舰船、飞机等中的电气用电设备,它们一直采用保险丝盒断路器等被动防护装置,致使无法故障预警,故障诊
[单片机]
基于CAN总线的87C196CA在单片机串行通讯的应用
1 前言
CAN 是国际上应用很广泛的一种现场总线,MCS96 系列单片机是目前在工业界推广应用较广泛的嵌入式控制器,其87C196CA 单片机内核本身带有CAN 控制器,支持标准和扩展的信息帧,即遵循CAN2.0A 和CAN2.0B 协议。由此而构成的CAN 总线支持分布式控制和实时控制,其串行通信方式灵活可靠,传输距离较远。由于CAN 总线具有通信速率高、工作可靠性高、现场抗干扰能力强、网络连接方便和性能价格比高等优点,在汽车发动机控制部件、汽车抗滑系统、工业自动化、机床、电梯控制等领域得到了较为广泛的应用。
2 硬件构成
2. 1 CAN 总线连接
基于CAN 总线的两个87C196 单片机网络联
[嵌入式]
基于CAN总线的机电式自动调平控制系统
英硕自动调平系统目前主要国内外大中型雷达天线座车、通讯车以及工程机械的机电、液压式支腿调平控制中。 调平时间:含支腿自动架设在内时小于1.5分钟;半自动立即调平时小于0.5分钟 支腿承重:2~8吨 调平精度:1~3’ 调平模式:“一键式”全自动调平、半自动立即调平 系统操作温度:-40℃~70℃ 该系统具有如下显著特点: a) 采用“升降平衡”的闭环式调平策略,单腿结构受力状况良好,调整过程平稳光滑; b) 调平过程中保证座车中心高不变; c) 调平速度快,精度高; d) 可实现动态水平调整,自动跟踪消除偏差; e) 科学合理的调平策略确保无“虚腿”产生;
[嵌入式]