王昊 吴勇
1.山东信息职业技术学院 山东省潍坊市 261061 2.山东海事职业学院 山东省潍坊市 261108
传统的汽车故障诊断方法借助“看、听、摸、嗅”等手段,配合基本的检测设备,只能大致地确定汽车的性能状况,对故障的检测主要依赖于技术人员的经验判断。现代汽车装备了大量的电子元件,可以实时、动态地对发动机运行状况进行检测,催生出现代化的汽车检测诊断方法。本文从职业院校的教学实际出发,借助成熟的CAN总线分析仪,利用LabVIEW虚拟仪器平台开发出一套汽车发动机在线检测系统,具有一定的教学应用价值。
为了便于对车辆排放进行检测,汽车车载诊断(OBD)系统中对基于CAN总线的网络各层所使用的标准进行了规定,如表1所示。
本课题所设计的汽车发动机测控教学系统主要借助于通用OBD诊断协议中的应用层协议即ISO 15031-5协议,实现汽车在线检测与故障诊断模块。
本课题设计开发的汽车发动机测控系统使用CANalyst-II分析仪采集卡采集4G15T型发动机各传感器在运行过程中产生的各种信号,通过CAN数据采集卡采集汽车CAN总线实时数据,利用USB接口传递到PC机,经过分析,借助于Labview虚拟仪器软件进行系统登录,数据显示等功能硬件连接如图1所示。
数据采集卡用来采集汽车CAN总线的数据并通过USB接口传输到PC机,本文选用的是珠海创芯光电科技有限公司生产的CANalyst-II 分析仪。它配备了2个通道CAN接口,支持CAN2.0A和CAN2.0B协议,支持标准帧和扩展帧。通过USB接口连接电脑,便可以实现数据的获取与传输。
表1 基于OSI模型汽车CAN总线各层的诊断协议
图1 硬件连接示意图
为了能动态检测发动机运行时的各项数据,本程序主要设计了设备的打开与初始化,发送请求报文,接收响应报文并处理显示这三个部分。为了与CANalyst-II分析仪的硬件配置相结合,在软件设计时主要是采用调用库函数节点的方法来实现。首先要调用设备打开与初始化函数,使CAN分析仪工作并将相应通道初始化。
在CAN总线通信中,请求报文最终是以数组的方式来发送的,所以采用LabVIEW的创建数组函数来创建CAN报文。按照CAN报文的格式来创建数组,VCI_CAN_OBJ结构体总共是24个字节,每个字节长度是8位,其中只有Data中的8个字节是请求报文的内容。将创建的数组经过VCI_Transmit函数进行发送,使用VCI_Receive函数从指定的设备CAN通道的接收缓冲区中读取数据。
对于获取到的数据,首先对其ID进行判定,通常ECU返回的地址为“0x7E8”。然后使用索引数组函数将指定ID的数据进行拆分,拆分为8个字节。大部分OBD指令长度只有一个字节或2个字节。使用条件结构对响应报文的PID代码进行判定,然后提取相应字节的数据进行不同的显示。以PID 0C为例,其代表发动机转速的数据,在报文数据第3、4字节表示发动机转速的数值,换算关系为((A*256)+B)/4。
根据不同的PID代码,分别设置不同的换算关系,我们就可以得到车速、冷却液温度、进气温度、节气门开度等其他数据了。相应数据的接收与数据显示的程序框图如图2所示:
将硬件线路连接到实验车辆的OBD诊断座上,然后运行我们所设计的汽车发动机测控教学系统软件,进入发动机运行数据显示界面。启动车辆,使发动机在怠速状态下运行,在软件面板中设置好总线的波特率,点击“打开设备”按钮,可以看到面板上出现了动态的实车运行数据。
图2 CAN响应报文数据接收与显示程序框图
图3 汽车发动机测控系统实时监测系统运行界面
可以看到,系统显示的数据动态变化,可以通过数值、仪表、波形等多种方式进行显示,实时性好。将本系统应用于汽车检测相关专业的教学实践中,可以极大降低设备采购成本,易于进行二次开发,功能丰富而且实用,具有较高的推广价值。