欢迎来到天天文库
浏览记录
ID:51922567
大小:152.50 KB
页数:4页
时间:2020-03-19
《关于CAN总线逆向工程的初步探讨.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、关于CAN总线逆向工程的初步探讨随着屮国汽车业的发展,汽车的后端市场也日趋繁荣,但由于各汽车生产厂家的技术壁垒,后端设备供应裔如GPS,车载音响,车载DVD,诊断仪等供应商很难得到原汽车厂家各乍型的报文定义,以使自己的产品完全和车载兼容。木文将以美国英特佩斯控制系统有限公司的产品(软件:VehicleSpy,帔件:neoVI)为例,探讨如何解码CAN总线报文。VehicleSpy产品是美国通用汽车的标准测试工具,可以同时支持HSCAN、MSCAN.ISO9141.J1850VPW.J1850PWM.LIN等多种总线协议、实
2、现车载网络诊断、节点/ECU仿真、数据采集、自动测试和车载网络总线监控等功能,相对于其它的总线工具,该产品注重用户使用的高效性和便捷性,易于用户学习和使用。VehicleSpy可以通过两种方式监控总线通信:通过车载的ODB接口监控汽车总线通信(图1)和宜接监控ECUZ间的通信(包括诊断仪和被诊断设备,图2)图1图2当设备连接正常并设置好正确的波特率后,打开VehicleSpy运行界面,无论是车载总线通信数据或是ECU间的总线通信数据都会被毫无遗漏的实时显示在监控界面上,图3显示的是监控的车载CAN总线数据,这些数据都是未经
3、解码的原始数据,接卜来我将介绍监控界血的各项:Q•■]■<•(Mt«"MWU*»■MSCM000000<-MlCM008QSMKM•0OH888888008MSCM88810<0MSCMoon^uBcnootest8・888888mon得s■SD)08888MSCM01IAXUK0BK3•d1)、图3中①所在的部分是滤波器,因为vspyW以同时监控多种网络数据,该滤波器基于网络类型滤波,例如,勾选HSCAN,则监控界血将只显示HSCAN类型网络数据。2)、图3屮②所指的栏为滤波栏,在该栏屮可以更灵活实现滤波功能,如根据报文
4、名称,ArblD等滤波,支持“?”等符号,比如现在我们只想监控ArbID为110和120的报文,则只需要在ArblD栏输入110,120则可,如图4所示:HOOOms8洒320「Cocr5、firIf^tentMonArbldiHMder16iOat』-auflBytesHetworkRt«rt二=亠-•丄■HOM)H5CAN$12©120K5CAN3)、图3屮③所指为进制切换按钮,只需简单点击即可将报文数据切换成其它进制(默认为16进制)°4)、图3中数据字节为蓝色背景的部分表示变化较慢的数据(④所指)5)、6、图3中数据字节为黑色背景的部分表示变化较快的数据(⑤所指)6)、图3中数据字节无背景颜色的部分表示出现过后在一段时间没有再出现的数据(该时间值是可以设定的)7)、整个监控界血实际上也是一个缓冲区,该缓冲区的数据可以随时保存,保存的数据可以用于以后冋放以分析数据,图3所其实就是在冋放数据文件,⑥所指为缓冲区进度条。8)、vspy的默认属性栏包含了报文数量统计,报文接收时间等属性,还有其他的属性用户可以在设置栏口己定义,这将非常有助于逆向分析。通过以上的介绍,相信有经验的工稈师已经看岀这款产品在总线数据解码方面的优越性。対于车7、载CAN总线,由于CAN报文的优先级取决于ArblD,ID值越小,优先级越高,这为我们揣测报文是来自于车载上的哪个ECU提供了依据,由于vspy可以实时无遗漏地监视总线通信报文变化并能以各种颜色來区分数据变化的快慢,因此我们可以通过反复动作车辆来观察报文变化情况,如开关车门,开和关会引起某个数据字节中的某位产生状态变化,由于这种变化是非连续性的快速变化数据,在监控界面中必然会以蓝色背景显示,因此我们可以在开关车门的时候在监控界曲查找有蓝色变化的报文,并将这些报文用上述的滤波功能过滤岀來以缩小监视范I韦I,然后反复动作车门以8、确定是哪条报文的某位随着车门动作在变化,这将很容易辨别,在得出结论以后,再将该位捉取出来并命名然后再动作车门以进行验证。当然,vspy捉供解析报文的功能,比如我们判定图3中ArblD为510的报文中第二字节第二位表示车门开关,则可将该位命名为doorcontrol,并将该条报文设置为其它颜色,以方便观察,解析的结果如图5所示,对解析的结果,vspy还可以将其保存为标准的DBC格式。对于岂接监视ECU之间的通信,则过程会简单的多。厂Changhg厂Recant炉Isaw」些&严宁ICcwtTxArbI4/^e^derLeoN9、etwork510曰■・•17500.000Mws^eHSCANI5108005F353CFOC9EF4AHSCAN眾doorccrArolTrue[I]当然,如果要解码ECU的所有报文,丁作量会非常大,如果是解码整个车辆的报文,那可能是需要团队来完成,本文只是对解码丁作做初步探讨,抛砖引玉,希望能与大
5、firIf^tentMonArbldiHMder16iOat』-auflBytesHetworkRt«rt二=亠-•丄■HOM)H5CAN$12©120K5CAN3)、图3屮③所指为进制切换按钮,只需简单点击即可将报文数据切换成其它进制(默认为16进制)°4)、图3中数据字节为蓝色背景的部分表示变化较慢的数据(④所指)5)、
6、图3中数据字节为黑色背景的部分表示变化较快的数据(⑤所指)6)、图3中数据字节无背景颜色的部分表示出现过后在一段时间没有再出现的数据(该时间值是可以设定的)7)、整个监控界血实际上也是一个缓冲区,该缓冲区的数据可以随时保存,保存的数据可以用于以后冋放以分析数据,图3所其实就是在冋放数据文件,⑥所指为缓冲区进度条。8)、vspy的默认属性栏包含了报文数量统计,报文接收时间等属性,还有其他的属性用户可以在设置栏口己定义,这将非常有助于逆向分析。通过以上的介绍,相信有经验的工稈师已经看岀这款产品在总线数据解码方面的优越性。対于车
7、载CAN总线,由于CAN报文的优先级取决于ArblD,ID值越小,优先级越高,这为我们揣测报文是来自于车载上的哪个ECU提供了依据,由于vspy可以实时无遗漏地监视总线通信报文变化并能以各种颜色來区分数据变化的快慢,因此我们可以通过反复动作车辆来观察报文变化情况,如开关车门,开和关会引起某个数据字节中的某位产生状态变化,由于这种变化是非连续性的快速变化数据,在监控界面中必然会以蓝色背景显示,因此我们可以在开关车门的时候在监控界曲查找有蓝色变化的报文,并将这些报文用上述的滤波功能过滤岀來以缩小监视范I韦I,然后反复动作车门以
8、确定是哪条报文的某位随着车门动作在变化,这将很容易辨别,在得出结论以后,再将该位捉取出来并命名然后再动作车门以进行验证。当然,vspy捉供解析报文的功能,比如我们判定图3中ArblD为510的报文中第二字节第二位表示车门开关,则可将该位命名为doorcontrol,并将该条报文设置为其它颜色,以方便观察,解析的结果如图5所示,对解析的结果,vspy还可以将其保存为标准的DBC格式。对于岂接监视ECU之间的通信,则过程会简单的多。厂Changhg厂Recant炉Isaw」些&严宁ICcwtTxArbI4/^e^derLeoN
9、etwork510曰■・•17500.000Mws^eHSCANI5108005F353CFOC9EF4AHSCAN眾doorccrArolTrue[I]当然,如果要解码ECU的所有报文,丁作量会非常大,如果是解码整个车辆的报文,那可能是需要团队来完成,本文只是对解码丁作做初步探讨,抛砖引玉,希望能与大
此文档下载收益归作者所有