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]。
版权声明:本文标题:CAN网络下的车辆故障诊断软件设计 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1710195292a561855.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论