前言:想要写出一篇引人入胜的文章?我们特意为您整理了CAN网络下的车辆故障诊断软件设计范文,希望能给你带来灵感和参考,敬请阅读。
摘要:设计一种应用于电脑端的车辆故障诊断软件,将不易理解的二进制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]。
参考文献:
[1]颜伏伍,王攀,胡杰,等.基于车载总线的PC式汽车故障诊断系统[J].武汉理工大学学报(信息与管理工程版),2011,33(5):758-762.
[2]郭刚,王励明,卢明.基于MVCI、ODX的诊断标准研究[J].制造业自动化,2010,32(14):15-16.
[3]仇雅莉.汽车故障诊断技术发展研究[J].交通标准化,2010(11):223-225.
[4]蔡浩.汽车故障诊断系统的设计与开发[D].上海:上海交通大学,2009.
[5]柳燕子.基于本体的汽车故障诊断知识建模与推理研究[J].现代国企研究,2018(4):136-137.
[6]胡杰,盛祥政,李洪飞,等.基于智能手机的汽车故障诊断系统研究与开发[J].汽车技术,2011(9):4-10.
[7]叶仁满.《汽车故障诊断》课堂的思考与探索[J].汽车维护与修理,2018(8):34-35.
[8]韩杰.现代汽车故障诊断技术探究[J].时代农机,2018,45(9):208.
[9]邱霖,尹少峰.电控汽车故障诊断中如何用好诊断设备[J].中国高新技术企业,2016(12):76-77.
[10]伍辨学.在汽车维修中不应忽略传统诊断的应用[J].广东科技,2007(8):84.
作者:胡洋 李韧 常圣 单位:安徽安凯汽车股份有限公司