技术领域
[0001] 本
发明涉及一种监控系统,特别是一种车载CAN总线监控系统。
背景技术
[0002] 目前,
汽车运行过程中的状态只有有限的信息通过车载仪表面板显示,仍有很多重要的信息无法直观地显示,如故障报警信息等。随着汽车
电子技术的不断发展,汽车总线技术作为一种
计算机网络技术和工业
现场总线控制技术的结合,成为现代汽车发展过程的主要技术成果。它的出现精简了
线束、细化了各系统电控单元的作用,汽车上可搭载越来越多的ECU模
块,使得整车网络的功能日益复杂化。与此同时,车辆正常使用过程中,其车况随行驶里程的增加不断发生变化,其可靠性、动
力性、安全性也会不断地下降,故障率显著提升,对车辆的安全行驶造成了很大的隐患。因此,对于测试人员而言,能通过既定的诊断协议完成汽车诊断服务功能测试,同时又能及时准确地诊断出汽车存在的当前故障,并能对其发生的原因进行合理地排查,成为现代汽车诊断技术的发展趋势。
发明内容
[0003] 本发明要解决的技术问题是:提供一种车载CAN总线监控系统。
[0004] 解决上述技术问题的技术方案是:一种车载CAN总线监控系统,包括CAN总线分析仪和监控
节点,CAN总线分析仪分别与监控节点和汽车的车载诊断仪连接,所述监控节点包括
控制器、光
电隔离模块、CAN收发器、电源模块及显示模块,所述电源模块的输出端与控制器连接,显示模块的输入输出端分别与控制器连接,光电隔离模块的输入输出端分别与控制器连接,CAN收发器的输入输出端分别与光电隔离模块连接,CAN收发器的输入输出端分别与CAN总线分析仪连接。
[0005] 本发明的进一步技术方案是:CAN总线分析仪通过PC与监控节点连接,CAN总线分析仪通过CANPro和CANoe与监控节点连接,CAN总线分析仪通过OBDⅡ与车载诊断仪连接。
[0006] 车载诊断仪和CAN总线分析仪构成汽车物理参数的协议数据获取工具,通过CANPro获取抓取和显示协议数据
帧,分析并解析出该参数通信协议;根据该参数通信协议,搭建CANoe
半实物仿真平台,用于验证该参数通信协议的准确性;监控节点根据该参数通信协议,通过CAN总线
接口与汽车车载OBDⅡ的CAN线连接,实现对汽车ECU进行物理参数
申请,并获取物理参数协议数据帧,解析后获得物理参数,进行实时监控。
[0007] CAN总线分析仪对CAN总线数据进行分析,汽车通过OBD接口快速与CAN总线网络连接起来,CANpro将车载CAN总线上的数据帧进行抓取和显示,通过分析数据帧的ID域、数据域、数据长度等信息,跟汽车物理参数进行对比分析,从而解析出汽车物理参数的通信协议。
[0008] 通过CANoe搭建半实物仿真模型,通过OBDⅡ接口直接与汽车ECU通信,获取汽车物理参数,并显示出来;从而验证前面解析出的汽车物理参数的通信协议。
[0009] OBDⅡ接口用于与车辆电脑连接,根据接收到的指令采集车辆电脑中的参数数据,并发送至CAN收发器。
[0010] 由于采用上述技术方案,本发明之一种车载CAN总线监控系统,具有以下有益效果:本发明主要以CAN总线协议为
基础,设计了一种基于CANoe开发坏境工具的汽车诊断测试系统,能获取汽车各ECU的参数数据并直观地显示出来,以便对汽车状态进行监测和故障诊断,这对于实现车辆的安全运行具有重要的作用。本发明不但可以对CAN总线上的ECU模块进行诊断测试,同时也为测试人员能够快速准确地确认ECU模块的故障原因提供了一种途径,对汽车行业具有良好的应用前景和非常可观的现实意义。
[0011] 下面,结合
说明书附图和具体
实施例对本发明之一种车载CAN总线监控系统的技术特征作进一步的说明。
附图说明
[0012] 图1: CAN总线监控系统的系统原理
框图。
[0013] 图2:监控节点的构成原理框图。
具体实施方式
[0014] 一种车载CAN总线监控系统,包括CAN总线分析仪和监控节点,CAN总线分析仪分别与监控节点和汽车的车载诊断仪连接,所述监控节点包括控制器(芯片)、光电隔离模块、CAN收发器、电源模块及显示模块,所述电源模块的输出端与控制器连接,显示模块的输入输出端分别与控制器连接,光电隔离模块的输入输出端分别与控制器连接,CAN收发器的输入输出端分别与光电隔离模块连接,CAN收发器的输入输出端分别与CAN总线分析仪连接。CAN总线分析仪通过PC(计算机)与监控节点连接,CAN总线分析仪通过CANPro和CANoe与监控节点连接,CAN总线分析仪通过OBDⅡ与车载诊断仪连接。CAN总线分析仪通过CAN总线和CAN接口分别与监控节点和车载诊断仪连接。车载诊断仪和CAN总线分析仪构成汽车某物理参数的协议数据获取工具,通过CANPro获取抓取和显示协议数据帧,分析并解析出该参数通信协议;根据该参数通信协议,搭建CANoe半实物仿真平台,用于验证该参数通信协议的准确性;监控节点根据该参数通信协议,通过CAN接口与汽车车载OBDⅡ的CAN连接,实现对汽车ECU进行物理参数申请,并获取物理参数协议数据帧,解析后获得物理参数,进行实时监控。
[0015] 车载诊断仪的作用是通过OBDⅡ接口,向汽车ECU发出汽车物理参数数据
请求指令。CAN总线分析仪的作用是对CAN总线数据进行分析,采用CAN总线分析仪,汽车通过OBD接口快速与CAN总线网络连接起来,CANpro将车载CAN总线上的数据帧进行抓取和显示,通过分析数据帧的ID域、数据域、数据长度等信息,跟汽车物理参数进行对比分析,从而解析出汽车物理参数的通信协议。CANoe的作用是搭建半实物仿真模型,通过CANoe搭建半实物仿真模型,通过OBDⅡ接口直接与汽车ECU通信,获取汽车物理参数,并显示出来;从而验证前面解析出的汽车物理参数的通信协议。OBDⅡ接口的作用是OBDⅡ接口用于与车辆电脑连接,根据接收到的指令采集车辆电脑中的参数数据,并发送至CAN收发器。光电隔离器的作用是对控制器与CAN收发器之间的数据传输中产生的干扰进行隔离。CAN收发器的作用是中转OBDⅡ接口与控制器之间的数据传输。
[0016] 控制器的作用是将汽车物理参数的请求指令经光电隔离、CAN收发器和CAN总线向汽车ECU提出参数申请,汽车ECU收到申请指令后,向CAN总线上发送包含物理参数的协议数据帧;控制器经CAN总线、CAN收发器和光电隔离接收该协议数据帧,根据前面解析出协议,获取物理参数,并在显示器显示。显示器用于将控制器发来的解析结果进行显示。电源模块的作用是提供控制器所需电源。
[0017] 控制器芯片型号为 LPC1768。CAN收发器的芯片型号为TJA1051。光电隔离器的型号为6N137。显示模块为显示器,显示器为DMT10600T070_A2W 7寸串口电容
触摸屏。CAN总线分析仪型号为CANalyst-II。车载诊断仪型号为ISCANCAR。
[0018] 应用实例:下面以获取大众汽车
发动机转速为例,描述汽车参数的获取和分析过程。大众汽车CAN总线应用层协议采用标准帧格式,所以以标准帧格式对斯柯达汽车CAN数据进行提取和解析。
[0019] 1、CAN数据的提取方案:利用CAN总线分析仪和车载诊断仪ISCANCAR VAG对斯柯达轿车的CAN通信数据进行采集。将汽车诊断仪通过OBD-II接口接入大众汽车的CAN总线,启动汽车,然后将汽车诊断仪上切换到007通道,请求读取
发动机转速。将CAN总线分析仪的CAN接口与OBD-II接口中的CAN总线引脚连接,将CAN总线分析仪的CANPro计算机端
软件的CAN波特率配置为500kbps;CANPro协议分析平台就可获取到数据流通道号为07的发动机转速的协议数据。
[0020] 2、CAN数据解析:对CAN总线分析仪获取的由汽车诊断仪申请发动机转速的数据进行解析:(1)对于序号为0和序号为1的这两帧数据表示成功进入汽车发动机(Engine)系统,握手成功。在这两帧数据块中:发送:01 C0 00 10 00 03 01,接收:00 D0 00 03 40 07 01。
在发送这行的第0个字节“01” 表示的是发动机系统的触发
地址码,在接收帧的第五个字节和第六个字节“07 01” 表示的是发动机系统的系统地址码。
[0021] (2)序号为2和序号为3这两数据帧是空闲帧,表示的是在等待读取数据流或者其它任务的执行。
[0022] (3)序号为4的帧是CAN总线分析仪发出的申请发动机07组参数的请求帧,其中“02 21”表示命令字;“07”表示的是参数组编号。
[0023] (4)序号为6到9和序号为12到15的帧ID为0x300表示的是汽车发动机ECU的响应帧,接收的第6帧和第12帧的最后两个字节“01 13”和“02 13”就是发动机的转速数据。将接收ECU帧的数据提取出来,转速的计算公式为:(buf[6]* buf[7])/5。
[0024] 3、仿真系统搭建:仿真系统包含
发动机控制单元节点(Engine)、控制节点(control)、发送节点(Send)3个节点。发动机控制单元节点用于解析发动机转速数据协议帧,并将转速数据在
显示面板上显示。发送节点用于定时发送发动机转速参数的请求帧,向ECU申请发动机转速数据,ECU收到请求后,发送发动机转速数据协议帧。控制节点用于在全仿真方式下,模拟汽车ECU在收到发动机转速参数申请帧后,发送转速数据帧。在CANoe半实物仿真方式下,监控系统的OBDII接口直接与车载CAN总线连接,替代控制节点,此时发送节点向汽车ECU发送发动机转速参数请求帧。
[0025] CANdb++是一种集成在CANoe开发环境中的
数据库操作工具,它包含了整个系统的各个节点、环境变量、消息的设定以及
信号在消息中的相对
位置的配置。通过使用数据库编辑工具CANdb++把汽车CAN应用层协议定义的各个参数和报文信息编辑到一个数据库中,以消息的形式定义报文数据帧,再以信号的形式定义各个参数,最终把建立好的数据库DBC文件导入仿真系统中。根据前面分析出的汽车发动机转速协议数据制作下表。
[0026] 表1 数据库编辑应用表在创建完网络节点、消息、信号和环境变量,并且相互之间关联后,基本上构成了一个网络数据库,对数据库里的网络、节点、消息和信号建立属性,采用在CANoe软件中自带的Panel Designer工具来编辑面板。
[0027] CAPL语言编程建立好了的网络数据库和显示面板的设计,但各节点还没进行相互通信,对发出的报文无法做出响应及处理,因此需对各节点进行CAPL语言的编程从而实现相应的功能。编程时用到了系统事件(on start)、CAN消息事件(on message)、时间事件(on time)和环境变量事件(on envVar)等。
[0028] 发动机系统节点Engine,用于从CAN总线上获取汽车发动机转速的协议数据帧,解析出转速后在显示面板上显示:on message Enginemsg
{
If(this.byte(7)==0x13)
{
putValue(EnvEngineSpeedMeter,this.EngineSpeed.phys);
}
else
{
this.EngineSpeed=0;
}
}
发送节点Send,用于定时发送发动机转速请求数据帧,定时时间为200ms:
variables
{
Messagesendmsgmsg1; msTimertimer2;
}
on start
{
setTimer(timer2,200);}
on timer timer2 {
setTimer(timer2,200);
msg1.byte(0)=0x12;msg1.byte(1)=0x00;
msg1.byte(2)=0x02;msg1.byte(3)=0x21;
msg1.byte(4)=0x07;
output(msg1);
}
4、仿真系统的运行结果分析:根据得到的发动机转速数据及仪表显示的结果。从CANoe软件的Trace
跟踪窗口可以查看仿真系统中进行通信时,能正常发送与接收的报文,可以验证该仿真系统是可以正常通信的。跟踪窗口中记录了获取发动机转速参数的报文,同时通过在CANoe中的显示面板上显示出相应的发动机转速值。
[0029] 实验得到使用汽车诊断仪获取斯柯达汽车的发动机转速值。仿真系统获得发动机转速与汽车诊断仪所是一致的。从而验证了所解析出来的发动机系统转速参数的协议的准确性。
[0030] 5、监控节点:监控节点控制器经光电隔离和CAN收发器和CAN总线向汽车ECU提出汽车物理参数申请,汽车ECU收到申请指令后,向CAN总线上发送包含物理参数的协议数据帧;控制器经CAN总线、CAN收发器和光电隔离接收该协议数据帧,根据前面解析出协议,获取物理参数,并在显示器显示。
[0031] 在监控系统上,以同样的
数据采集和解析的方法,可以获取汽车运行过程中的主要参数和报警信息,并实时显示这些参数,使汽车运行状态参数
可视化,有利于驾驶者了解汽车运行状态,提高行车安全性。