APP下载

基于KWP2000的PC式汽车发动机诊断系统设计

2018-06-13吕霞付杨江宁陈建杨晗

汽车零部件 2018年5期
关键词:诊断系统串口总线

吕霞付,杨江宁,陈建,杨晗

(重庆邮电大学,重庆 400065)

0 引言

目前,要将汽车故障诊断数据从ECU(Electronic Control Unit,电子控制单元)中读出,最主流的途径就是通过诊断仪来实现汽车诊断。

便携式汽车发动机故障诊断仪由于体积小、携带方便,一度受到人们追捧;然而随着时代的发展,汽车发动机上电控单元(ECU)所监控以及获取的数据越来越多,便携式的汽车发动机诊断仪开始显现出不能对电控单元进行编程、在线查看诊断报告内容和智能化的修理诊断指导等问题,已经不能胜任现代汽车发动机故障诊断的发展要求。而基于PC机的诊断系统依靠平台强大、高效的数据处理能力,逐渐流行起来。

文中采用通信硬件与PC诊断软件结合的方式,利用强大的PC机的数据处理能力,对故障诊断软件采用面向对象的方式进行结构化与模块化的程序设计,通过通信硬件完成物理层、数据链路层;结合关系数据库系统通过PC应用诊断软件,完成应用层要求。

1 故障诊断协议

1.1 KWP2000通信协议

KWP2000协议是基于K线的诊断协议标准,在国内普遍使用,它是针对汽车ECU和诊断设备之间的数据交换而制定。并且对串行通信的通用要求进行了规定。在诊断系统硬件与软件结构中,通信模块是重要组成部分之一,决定了通信质量的好坏。

1.2 物理层

KWP2000协议物理层以ISO9141标准为基础,对网络结构、电气参数等相关内容进行了详细规定,用以实现诊断服务,并将总线上电池电压小于Vb的20%~30%时定义为逻辑“0”,大于Vb的70%~80%时定义为“1”。设计了K线到RS232转换电路来实现物理层串行通信服务。

1.3 数据链路层

数据链路层主要包括两方面,一方面定义报文的结构。报文格式如表1所示。

表1 KWP2000报文格式定义

帧头是由3~4个字节构成,包含报文的格式、目标地址、源地址及数据段长度等相关信息。数据段中的第一个字节规定为服务类型标识码。完整的数据段最大长度是255 Byte,校验字节插在信息块的末尾,定义为除校验字节之外的信息中所有字节的8位简单求和。

另一方面,该层建立通信连接时的一系列服务操作。在诊断开始之前诊断设备须对ECU进行初始化处理,初始化之后ECU会返回关键字,而ECU所支持的帧头和定时参数则都包含在关键字里面,例如ECU通信波特率、源地址、帧头格式等信息。

2 系统设计

2.1 系统总体设计

系统采用基于K总线的ISO14230诊断协议,因此系统诊断实现和K总线通信的设计分别依据ISO14230协议中的应用层和数据链路层的规定。诊断系统的设计主要分为PC诊断软件模块和诊断通信硬件模块两部分。诊断系统总体框架图如图1所示。

图1 系统诊断总体框图

2.2 基于K总线的通信硬件设计

由TL718协议转换电路、USB通信电路、K线通信电路以及扩展功能电路组成的硬件电路原理图如图2所示。其中,采用电脑USB接口提供5 V电源供电,汽车ECU提供24 V电源供电。

图2 通信硬件电路图

2.3 通信连接软件设计

软件开发环境利用了Java JDK1.8,多线程编程。首先,开始运行主线程则显示人机交互界面并识别出虚拟串口、匹配波特率等信息,用于实现诊断软件跟ECU的串口通信。通信连接时发送TL718芯片设置命令与ECU通信连接命令。

2.3.1 TL718芯片设置流程

(1)发送ATSP5选择采用K总线通信协议;

(2)发送ATST03设置ECU应答时间12 ms;

(3)发送ATSW19设置TL718空闲等待握手时间500 ms;

(4)使用ATSH81 10 F1设置报文头,其中10表示发动机ECU地址。

2.3.2 汽车ECU连接指令

TL718有两种命令格式:第一种是以AT开头的内部命令;另一种是OBD连接命令(即只包含16进制的ASCII码)。只有发送OBD命令的时候,与车辆连接通信。当向发动机ECU发送OBD命令10 81时,开始建立连接通信,其中10是启动通信服务标识,81是启动通信请求服务标识,如表2所示。

表2 请求报文

通信连接流程图如图3所示。

图3 通信连接程序流程图

连接ECU功能整体程序如下:

private void 连接(object sender, EventArgs e)

{

SerialPort_Configure(); //扫描串口,初始化出口配置函数

SerialPort_Open(); // 打开串口函数

Ecu_Connect(); //连接到ECU函数

}

3 诊断软件设计

3.1 诊断应用软件开发

诊断软件贯彻了软件工程的设计原则,分为视图层、诊断服务层、串口通信层3个层次。软件总体结构如图4所示。

图4 软件总体架构

视图层提供友好人机交互界面接口。诊断服务层通过实现与诊断数据库之间的交互,提供包括读取ECU内存放的关于ECU版本相关信息、汽车故障码、汽车行程记录、参数测量等功能服务。串口通信层保证诊断软件与ECU之间的通信。

3.2 系统运行结果

通过运行汽车诊断系统获得PC诊断应用软件的诊断界面,诊断结果界面如图5所示。

在一开始初始化主界面时,汽车发动机诊断系统软件就已建立与汽车电控单元的通信连接,如图5(a)所示。通过读取故障码功能,在新窗口表格中显示故障码的数量及每个故障码的详细信息,读取故障码之后,可以通过Excel保存于本地文件中,以供之后出现类似故障时作为参考信息,如图5(b)所示。在使用清除故障码功能后,用户可以继续操作其他诊断功能。使用汽车发动机的行驶记录以及参数测量功能分别如图5(c)、(d)所示。

图5 PC诊断应用软件运行界面

4 结论

此次开发的PC式汽车发动机故障诊断系统是某公司针对其EDC17系列新型汽车发动机进行研制的,可以采集试验台发动机ECU中的数据。经测试,文中所设计的系统方案可用,诊断数据符合实际工况,诊断结果满足用户需求。

参考文献:

[1]颜伏伍,王攀,胡杰,等.基于车载总线的PC式汽车故障诊断系统[J].武汉理工大学学报(信息与管理工程版),2011,33(5):758-762.

YAN F W,WANG P,HU J,et al.PC-style Car Fault Diagnosis System Based on On-board Bus[J].Journal of Wuhan University of Technology(Information & Management Engineering),2011,33(5):758-762.

[2]蔡浩.汽车故障诊断系统的设计和开发[D].上海:上海交通大学,2009.

[3]蒋红枫,贾民平.汽车发动机故障诊断专家系统的研究[J].公路与汽运,2005(5):15-18.

[4]彭富明.汽车发动机故障检测与诊断系统设计[J].计算机测量与控制,2005,13(12):1351-1353.

PENG F M.Design of the Fault Detection and Diagnosis System for Engine[J].Computer Measurement & Control,2005,13(12):1351-1353.

[5]王奎洋.汽车发动机检测与诊断系统的开发和研究[D].南京:南京理工大学,2005.

[6]赵牧原,冯金芝.基于集成化的汽车故障诊断技术研究[J].制造业自动化,2014,36(3):24-28.

ZAHO M Y,FENG J Z.Research of an Integrated Automobile Fault Diagnosis System[J].Manufacturing Automation,2014,36(3):24-28.

[7]过锡隽,周文华.KWP2000诊断通信模块的开发[J].江南大学学报(自然科学版),2007,6(5):547-550.

GUO X J,ZHOU W H.Development of Diagnostic Communication Module on KWP2000[J].Journal of Jiangnan University(Natural Science Edition),2007,6(5):547-550.

猜你喜欢

诊断系统串口总线
关于CAN总线的地铁屏蔽门控制思路论述
基于EM9000工控板高性能双串口通信模型设计与实现
MCS—51单片机中的多串口通讯技术的应用
基于故障树分析的液压挖掘机的故障诊断探索
断路器检测系统与诊断系统研究
数控机床故障诊断系统的设计与实现
微机串口的测试诊断
Q&A热线
PCI9030及其PCI总线接口电路设计
基于VC串口通信的实现