admin 管理员组

文章数量: 1086019


2024年3月12日发(作者:createprocessasuser管理员权限)

关键词:CAN网络;车辆故障;诊断软件

随着汽车产业的迅猛发展,汽车的电子控制系统智能化程度越来越高,所使用的电子控制单

元越来越多,也越来越复杂。系统中任何一个部件的故障,都可能导致整个系统的故障。电

子控制系统的故障通常由CAN总线发出,总线上的信息都是以二进制为基础。当车辆出现

故障时,汽车维修人员需要具备一定的专业知识,才能解读和定位车辆的故障。因此,开发

一款有针对性的车辆故障诊断软件在汽车的维修服务中非常重要[1]。本文所开发的车辆故

障诊断软件能够自动完成故障数据采集、问题判断及故障描述等功能,能够降低维修人员的

工作复杂度,提高工作效率。

1基本方案

基本方案由标准总线设备(CAN工具)和故障诊断软件两部分组成。其基本构架如图1所示。

标准总线设备通过车辆的OBD接口接入车载CAN网络,主要负责电脑和车辆之间不同数据

帧的封装和信号转换[2]。故障诊断软件安装在电脑上,通过USB接口与标准总线设备连

接,主要负责向车辆控制单元发送指令,同时处理应答的数据;记录下每次的故障信息及维

修人员的维修记录,建立维修记录文件。目前车辆上的电控模块都使用CAN总线进行通信,

因此汽车故障诊断系统主要针对CAN总线通信协议进行开发,通过连接车辆OBD口实现。

系统软件的通信流程如下:1)故障诊断系统通过专用的CAN工具与车辆CAN总线进行连接;

若连接不成功,则进行提示,并且在一定时间内循环连接,直至成功为止。2)连接成功后,

对CAN进行特定波特率(250kbps)设置,完成初始化。3)设置总线信息的过滤机制,对于CAN

总线而言,总线上传输着大量的数据,通过CANID的过滤,筛选出需要的数据传给上位机,

避免上位机对繁多的数据进行处理。4)根据通信协议中故障位的范围对总线上相应的CAN

信息进行取值,再进行一定的数据处理。5)处理后的数据如是车辆的故障码,则查询软件中

存入的故障描述表,将对应的故障描述显示出来。6)将每次出现的故障进行记录,同时记录

下解决此次故障的方法。7)收集数据形成数据文件,若再出现相同故障时,可调出之前处理

的维修记录,提示维修人员。8)故障处理完成后,断开故障诊断系统和总线的连接,此次故

障诊断结束[3]。

2系统软件设计

车辆故障诊断平台开发使用MicrosoftVisualStu-dio的开发工具集,基于NETFramework4,采

用C#语言编写,适用于主流的MicrosoftWindows系统。根据诊断系统需求分析,采用分层

的设计思路,将软件架构从下到上分为4层:底层———驱动层,次中层———数据层,中层

———逻辑层,上层———表示层[4]。1)驱动层。驱动层主要通过调用CAN工具提供的DLL

库为接口,实现对CAN工具的开启、配置、初始化、收发数据和关闭等功能。其主要负责

标准接口函数的调用,将其封装成功能函数,供数据层调用,实现数据层和接口函数的连接。

接口函数主要包括:建立总线连接、断开总线连接、发送/接收数据、过滤接收CANID、读取

车辆模块信息、CAN连接过程中错误提示、更新/清除数据缓存区[5]。2)数据层。数据层

主要是对数据的处理,包括对数据进行发送、接收、记录与调用。其建立在驱动层上,通过

驱动层封装的函数,设计以下功能程序:向CAN总线发送诊断请求、接收ECU反馈回来的数

据、收集数据信息、从数据记录文件里查询相应的信息[6]。3)逻辑层。逻辑层主要负责对

CAN总线指令生成。当用户对车辆故障诊断软件进行操作时,逻辑层对操作进行解析,转化

成一定的数据,再通过数据层和驱动层,发送到CAN总线上。当逻辑层接收到CAN总线上

的车辆反馈数据时,将从反馈的数据中提取所需信息,根据通讯协议解析为有效数据,在表

示层上和用户进行交互[7]。逻辑层负责车辆故障诊断平台系统功能的实现,主要包括故障

诊断功能、故障维修帮助功能和软件其他功能:①故障诊断功能通过将车辆的模块发送出来

的数据进行解析,从而得到故障码,进而对车辆实现故障诊断;②维修诊断帮助功能是通过

访问诊断数据文件,从诊断文件中查询相应的维修帮助内容并调用[8];③软件其他功能

包括软件激活、用户认证、密码登录、软件升级等。4)表示层。表示层主要功能包括数据的

显示和用户操作入口两个方面。软件界面主要包括标题区、工作区和状态显示区3个部分:

标题区可以实现不同界面之间的切换和软件的关闭;工作区包括用户的操作入口和结果的显

示;状态显示区包括总线连接状态、动态接收数据状态和总线负载状态[9]。

3系统测试及结果

以某车辆为测试对象,其核心电控模块包括ECU、ABS、ASR、EBS等,故障诊断平台工具

通过车辆OBD接口连接车载总线网络,测试人员通过PC端的车辆故障诊断软件进行整车的

故障诊断功能测试。车辆故障诊断软件显示的故障及描述如图2所示。当车辆压力故障灯亮

时,维修人员使用故障诊断软件读到故障码,描述为压力传感器,初步判断为发动机的压力

传感器电压数据故障,意味着压力传感器并未工作。根据软件的维修诊断帮助排查,检查压

力传感器,对传感器进行维修,重新读取车辆的数据,压力传感部分恢复正常。故障码被清

除,故障灯熄灭,故障被排除。

4结束语

基于OBD的汽车故障诊断系统适用于标准的诊断接口工具,同时使用主流的车载CAN网络

通信协议,具有良好的通用性。软件模块化的开发思路,具有良好的扩展性。将现代的软件

技术和汽车故障诊断技术相结合,实现故障诊断的智能化,从而更加便捷地诊断汽车电子控

制系统的故障[10]。


本文标签: 车辆 数据 故障 总线 软件