一种基于Android平台的汽车故障诊断系统的制作方法
【专利摘要】本发明提供一种基于Android平台的汽车故障诊断系统,包括电子控制单元ECU、CAN总线,还包括数据转换模块、汽车故障解码模块和汽车故障专家分析模块,所述数据转换模块一端与CAN总线相连接,另一端与蓝牙模块无线连接,所述蓝牙模块与汽车故障解码模块连接,所述汽车故障解码模块与汽车故障专家分析模块相连接;本发明降低汽车故障诊断成本,使诊断过程更加方便,提高汽车维修效率。
【专利说明】一种基于Android平台的汽车故障诊断系统
【技术领域】
[0001]本发明涉及汽车电子领域,具体为一种基于Android平台的汽车故障诊断系统。【背景技术】
[0002]现有的汽车故障诊断系统,可以将汽车E⑶中的故障码读出、显示、存储和处理,能够简便、准确地检测出汽车故障,有利于汽车运行状况检测和汽车故障维修。当前国内外设计的汽车故障诊断仪方案主要有两种:基于PC机的故障诊断仪和基于单片机/FPGA(Field Programmable Gate Array,即现场可编程门阵列)的手持式故障诊断仪。这两种方案的硬件成本都比较高,而且基于PC机的诊断仪不方便携带,另外考虑到维修人员即使通过汽车故障诊断仪诊断出了汽车出现的故障,但是想要准确地判断出故障原因,还需要查询维修手册等资料,导致维修过程中汽车维修人员花费大量时间去查资料,工作效率比较低。
[0003]为了解决当前基于PC机的诊断仪的外出作业携带不便和基于单片机/FPGA的手持式诊断仪的硬件成本较高的不足。中国专利申请号为:201310023184.9的中国发明专利提供了一种利用移动终端(手机/平板)对汽车进行故障诊断的方法,所述的方法包括如下步骤:将下位机通过诊断接口跟汽车电控单元连接,采集汽车电控单元内的信号;用户利用上位机(移动终端)来显示下位机传输的数据,并且向下位机、汽车电控单元发送指令,上位机与下位机之间通过无线方式传送接收信号。该专利所记载的利用移动终端读取汽车故障码来帮助维修人员找到故障原因的技术存在以下弊端:
所设计的汽车故障诊断仪只能读取汽车ECU内的故障码进行显示,但是考虑到汽车故障诊断仪从ECU中获得的信息有限和汽车维修人员专业知识和经验的差异性,普通的维修人员即使通过汽车故障诊断仪诊断出了汽车出现了什么故障,但是想要准确地判断出故障原因,还需要查询维修手册等资料,导致维修过程中汽车维修人员花费大量时间去查资料,工作效率比较低。
[0004]因此,本发明引入了汽车故障诊断专家系统来帮助和指导汽车维修人员以及提供决策性建议。中国专利申请号为:201210499356.5的中国发明专利提供了一种基于维修资料和专家系统的汽车故障诊断方法,所述的方法包括如下步骤:建立一个基于互联网的汽车维修资料数据库,在该网络服务器上创建一个专家系统,将汽车故障诊断仪和汽车上的诊断座连接,读取汽车E⑶内的数据并打包成实时数据,发送到位于网络服务器的维修资料数据库中,服务器根据实时数据调取相应的维修资料数据后再通过网络发送给汽车故障诊断仪;当启动汽车故障诊断仪的专家功能时,基于网络的专家系统会根据知识库中的内容、实时数据推理出诊断结果,再通过网络发送给汽车故障诊断仪。该专利所记载的基于维修资料和专家系统的汽车故障诊断方法的技术存在以下几个弊端:
1.诊断过程必须依赖网络,只适合在有网络覆盖的地方使用,如果工作场所没有网络覆盖,将会导致汽车故障诊断仪不能使用,使汽车故障诊断仪的便携性受到限制;
2.需要一台稳定运行的服务器来支持所有的手持终端正常工作,只适合在维修厂使用,如果出现网络故障或者服务器故障等现象,将导致汽车故障诊断仪不能使用,而且也增加了系统成本;
3.需要设计一个专用的手持终端,与服务器配合使用,用于故障码读取、与服务器通信、故障信息显示等,增加了硬件成本和开发难度,导致诊断仪成本偏高。
【发明内容】
[0005]针对以上现有技术中的不足,本发明的目的在于提供一种降低诊断仪成本,使诊断过程更加方便,提高汽车维修效率的汽车故障诊断系统,为达到上述目的,本发明的技术方案是:
一种基于Android平台的汽车故障诊断系统,包括Android手机或平板电脑、设置于汽车内部网络的电子控制单元E⑶、与所述电子控制单元E⑶相连接的控制器局域网络CAN总线,还包括数据转换模块、Android手机或平板中还包括汽车故障解码模块和汽车故障专家分析模块;
所述数据转换模块通过总线与汽车内部网络内部的控制器局域网络CAN总线相连接,还通过蓝牙通讯的方式与Android手机或平板电脑上的蓝牙模块无线连接;
所述Android手机或平板电脑上的汽车故障解码模块连接,所述汽车故障解码模块与汽车故障专家分析模块相连接;
在所述Android手机或平板电脑上启动汽车故障解码模块和汽车故障专家分析模块,所述汽车故障解码模块生成汽车故障诊断请求报文,并通过蓝牙模块无线传输给数据转换模块,数据转换模块将发送来的汽车故障诊断请求报文转换成控制器局域网络CAN数据帧请求报文并通过CAN总线传输给所述电子控制单元ECU,所述电子控制单元ECU响应请求并产生响应报文,通过控制器局域网络CAN总线将响应报文发送给数据转换模块转换成蓝牙数据帧请求报文,通过蓝牙模块传输给汽车故障解码模块,汽车故障解码模块解析出响应报文的故障码并传输给汽车故障专家分析模块,故障诊断专家分析模块对故障码进行查询并得出故障类别与维修建议。
[0006]进一步的,所述汽车故障代码解码模块包括诊断功能选择模块、UDS诊断服务、XML诊断数据库、XML解析器,所述诊断功能选择模块用于对待诊断车辆的诊断类别进行选择,并根据诊断类别调用UDS诊断报文发生器产生诊断请求报文,发送给车辆电子控制单元ECU,电子控制单元ECU发送响应报文给XML解析器,XML解析器调用XML诊断数据库对响应报文进行解析,得出故障码并传输给故障诊断专家分析模块。
[0007]进一步的,所述汽车故障专家分析模块包括推理诊断模块和存储有推理诊断用规则的知识库,所述推理诊断模块接收来自汽车故障代码解码模块的XML解析器发送来的故障码,并调用知识库中的故障码对应的维修知识,得出故障类别与维修建议。
[0008]本发明的优点及有益效果如下:
本发明提出了一种基于Android平台的汽车故障诊断系统,此系统既有基于PC机的专家系统的推理、诊断功能,也有基于单片机/FPGA的手持式诊断仪方案的外出作业携带方便等优点。由于汽车故障诊断系统是基于移动终端设计的,使得其适用人群更加广泛,并且节省了硬件设计的环节与成本,用户只需要在自己的手机或平板上安装故障诊断应用程序,就能使自己的手机或平板变成专业的汽车故障诊断仪,使诊断仪成本更低、系统维护更加简单、诊断过程更加方便。此外本发明中将汽车故障诊断专家系统引入到安卓平台上,使得查找故障原因更加方便,并且降低了对用户的要求,与已有的“云诊断”方式相比,本系统的诊断过程不需要服务器,不依赖网络,独立性和适用性更强。
[0009]【专利附图】
【附图说明】
图1为本发明优选实施例基于Android平台的汽车故障诊断系统的系统框图;
图2为汽车故障解码模块的结构框图;
图3为汽车故障解码模块的工作流程图;
图4为汽车故障专家分析模块的结构框图;
图5为汽车故障专家分析模块的工作流程图。
【具体实施方式】
[0010]下面结合附图给出一个非限定性的实施例对本发明作进一步的阐述。
[0011]本发明提供一种基于Android平台的汽车故障诊断系统,本发明通过移动终端来读取汽车ECU内的故障码,并利用汽车故障专家分析模块推理出故障产生的原因,本发明解决当前基于PC机的诊断仪的外出作业携带不便和基于单片机/FPGA的手持式诊断仪的硬件成本较高、系统维护和升级较麻烦的不足,而且提高了汽车维修人员的工作效率。
[0012]如图1所示为本发明的系统框图:
移动终端1,支持蓝牙功能的Android手机或平板,用于运行汽车故障诊断应用程序(APP);
人机交互模块2,为移动终端的触摸显示屏,用户可以通过触摸显示屏查看汽车信息,并且可以向系统输入相关信息;
汽车故障解码模块3,用于汽车故障码读取和解析,可以读取汽车ECU内的故障码、清除故障码、读取动态数据流、写入VIN码;
汽车故障专家分析模块4,用于推理故障产生原因,根据汽车故障解码模块从ECU内读取到的故障码,结合知识库,按照一定规则进行推理,最终得出结论;
蓝牙模块5,为移动终端自带的蓝牙模块,本系统通过蓝牙模块来收发数据;
汽车内部网络6,汽车内部多个E⑶主要通过CAN总线连接,主要包括:
B⑶61,电池管理单元;
HCU62,整车控制器;
IPU63,集成组合动力装置;
数据转换模块7,一方面用来接收移动终端发来的命令并将其转换成CAN数据帧格式,发送给汽车ECU,另一方面接收汽车ECU的CAN报文并将其通过蓝牙发送给移动终端。
[0013]本发明一个非限定性的实施例是:例如飞思卡尔S12系列ECU,只要E⑶内运行UDS服务,就可以通过本系统进行诊断;
数据转换模块7,主要由串口蓝牙模块(HC05)、微控制器(STM32)、CAN通信电路(TJA1050)三部分组成,可以完成CAN与蓝牙之间的数据转换。
[0014]如图2所示,本实施例提供了一种基于Android平台的汽车故障码解析模块,该模块主要包括:
人机交互模块2,用于获取诊断过程中所需要的信息,并显示诊断结果; 汽车故障专家分析模块4,接收故障解码模块发送的故障码,并对接收到的故障码进行推理,帮助用户找到故障发生的原因;
数据转换模块7,用于接收诊断仪发送的命令并转换成标准CAN报文,与汽车ECU进行通信,读取ECU内的故障码,并将ECU的响应报文通过蓝牙转发给移动终端;
XML诊断数据库81,根据各车厂定义的故障代码表(故障码与故障信息对应表),用XML语言将一条故障码与对应的故障信息填写在一行XML语句中,依次将故障代码表中的内容全部用XML语言填写到存储故障匹配信息txt文件中,用于对读取到的故障码进行解析;诊断功能选择模块82,选择诊断对象的具体车型,针对该车型进行的诊断功能,包括:读取故障码、清除故障码、读取动态数据流、写入VIN码;
XML解析器83,当诊断仪接收到响应报文后,调用解析数据流信息算法,从SD卡中查询在XML文件中存储的数据相关的信息,从而解析并计算出数据流所对应的信息,并显示最终结果;
UDS诊断服务84,为统一诊断服务,诊断仪通过调用UDS诊断服务向汽车内部ECU (主要包括B⑶、HCU和IPU)发送诊断服务请求报文;
蓝牙通信模块85,用于与数据转换模块进行通信,传输移动终端发送的命令并且接收数据转换模块的响应数据。
[0015]如图3所示,本实例提供了一种基于Android平台的汽车故障诊断方法。当用户在进行汽车诊断功能之前,需要先将手机/平板与数据转换模块进行连接,然后选择相应的车型、部件,读取故障信息,该方法包括以下步骤:
Sll:用户在诊断仪主界面选择“连接设备”的功能;
该步骤具体为:首先用户要将数据转换模块插在汽车OBD接口上,然后在移动终端(手机/平板)上安装本发明提供的汽车故障诊断应用程序(APP),运行该应用程序,进入故障诊断程序的主界面。
[0016]S12:打开手机蓝牙进行匹配;
该步骤具体为:选择“连接设备”功能,系统会提示用户是否打开蓝牙功能,选择“确定”,系统会自动搜索附近的蓝牙设备,找到数据转换模块,选中该设备进行连接,输入密码进行匹配,例如在搜索到的蓝牙设备中选中名称为“Diagnosis”的数据转换模块,连接该设备,系统会提示用户输入密码,输入“ 12345”(默认的匹配密码)进行匹配。
[0017]S121:连接成功后系统会提示用户“连接成功”,在诊断仪主界面上显示连接的状态(包括:“连接成功”、“连接失败,再次尝试连接”、“尝试连接超时,放弃连接”)。
[0018]S13:选择相应的汽车类型;
该步骤具体为:用户在诊断仪主界面上选择“汽车诊断”功能,系统跳转至车系选择界面,在车系选择界面中,系统从SD卡上读取车系文件并解析文件内容,在完成解析工作后,在车系选择界面上显示支持的车系名称,例如用户可以在车系选择界面中选择“中国车系”,系统将根据用户选择的车系跳转至车厂选择界面,在车厂选择界面中,从SD卡上读取车厂文件并解析文件内容,在完成解析工作后,在车厂选择界面上显示支持的车厂名称,例如用户可以在车厂选择界面中选择“长安”,系统根据用户所选的车厂跳转至车型选择界面,然后用户根据自己实际的车辆类型选择相对应的车系,例如用户可以在车系选择界面中选择“长安奔奔mini”然后系统跳转至部件选择界面; S14:选择相应的汽车部件;
该步骤具体为:在部件选择界面中,系统从SD卡上读取部件文件并解析,在完成解析工作后,在部件选择界面显示支持的部件名称,用户根据自己汽车型号支持的部件(主要包括:BCU、HCU和IPU),可以分别对各个部件分别进行故障诊断,例如用户选择“BCU (电池控制单元)”选项,跳转至诊断功能选择界面。
[0019]S15:选择相应的诊断功能;
该步骤具体为:在诊断功能选择界面中,我们看以看到此部件支持的诊断功能,例如用户之前选的BCU包括:读取全部故障码、读取版本信息、清除故障码、读取动态数据流、写入VIN码、读取当前故障码和读取历史故障码共7个诊断功能,系统将根据用户所选的诊断功能跳转至对应的诊断结果显示界面,然后通过手机/平板的蓝牙向数据转换模块发送诊断服务请求报文,数据转换模块接收到数据后向汽车ECU发送相应的诊断服务请求报文;汽车ECU根据请求服务,响应请求,并通过CAN总线发送响应报文给数据转换模块,数据转换模块接收到数据后,再通过蓝牙把响应报文发送给手机/平板的蓝牙;诊断结果显示界面,根据汽车ECU的响应报文,调用对应的UDS诊断服务解析算法,解析出响应报文的数据,并显示出诊断信息,从而完成对汽车ECU的故障诊断功能。
[0020]S151:清除故障码功能,用户点击此诊断功能后,将清除ECU存储的所有故障码,包括当前和历史故障码。
[0021]S152:读取故障码解析并显示,用户点击此诊断功能后,将读取ECU存储的所有故障码,包括当前和历史故障码。
[0022]S153:读取动态数据流功能,当选择读取动态数据流功能后,诊断仪将读取ECU中存储的实时的汽车运行参数。
[0023]如图4所示,本实施例还提供了一种汽车故障专家分析系统,采用的是EclipseJava EE IDE for Web Developers开发环境,编译以后直接生成的APK文件,就可以装在手机上运行了。该系统主要包括:
知识库8,用于存放推理所需的规则等信息,包括常规知识和专家独有的经验性知识,是专家领域知识的集合,采用安卓系统自带的SQLite来进行存储和维护;
推理诊断模块9,所述推理诊断模块9包括:
推理机91,是专家系统的组织控制机构,利用知识库中存储的规则,采用正向推理策略,由原始数据出发向结论方向的推理,最终得出结论,例如对动力电池进行故障诊断时,推理机依次读取动态数据库中的每个电池的使用状态数据,并依次用知识库中的电池症状隶属度函数来计算该电池状态数据所对应的各个症状隶属度a,然后进行模糊运算,得到电池的故障隶属度3= 最后计算电池失效程度和电池健康状况,确认电池故障信息;
动态数据库92,是推理机动态读取知识库中的信息以及诊断过程中产生的一些中间数据,包括电池组总电压、总电流、剩余电量、电池温度等;
诊断结果93,存放推理机得到的结果;
知识处理模块10,所述知识处理模块10包括:
知识获取模块101,主要采用产生式规则来描述领域专家的经验知识并存储到知识数据库中; 知识库维护模块102,主要解决对知识库的维护问题,包括对知识的添加、修改、更新等操作。
[0024]在图2所述的读取汽车ECU内故障码的基础之上,还提供了一种利用汽车故障专家分析模块对故障码产生的原因进行推理的方法,指导用户一步一步找到故障发生的原因。具体的流程如图5所示,该方法包括:
521:获取故障码;
该步骤具体为:用户读取到汽车故障码后,启用推理功能,故障诊断仪将解析出的故障码发送给故障诊断专家系统;
522:针对该故障码询问用户对应故障产生的现象,通过人机交互,获取相关信息;
523:推理机从知识库中查询与检索故障类别;
524:对比当前的故障与知识库中的故障类别;
525:当前故障现象是否与知识库中的故障类别匹配;
5251:匹配到故障类别,得出结论,并给出相关建议;
5252:如果没有找到匹配的故障类别,则继续询问用户故障信息。
[0025]以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。
【权利要求】
1.一种基于Android平台的汽车故障诊断系统,包括Android手机或平板电脑(I)、设置于汽车内部网络(6)的电子控制单元ECU、与所述电子控制单元ECU相连接的控制器局域网络CAN总线,其特征在于:还包括数据转换模块(7)、Android手机或平板(I)中还包括汽车故障解码模块(3)和汽车故障专家分析模块(4); 所述数据转换模块(7)通过总线与汽车内部网络¢)内部的控制器局域网络CAN总线相连接,还通过蓝牙通讯的方式与Android手机或平板电脑(I)上的蓝牙模块(5)无线连接; 所述Android手机或平板电脑(I)上的汽车故障解码模块(3)连接,所述汽车故障解码模块(3)与汽车故障专家分析模块(4)相连接; 在所述Android手机或平板电脑(I)上启动汽车故障解码模块(3)和汽车故障专家分析模块(4),所述Android手机或平板电脑(I)上汽车故障解码模块(3)生成汽车故障诊断请求报文,并通过蓝牙模块(5)无线传输给数据转换模块(7),数据转换模块(7)将发送来的汽车故障诊断请求报文转换成控制器局域网络CAN数据帧请求报文并通过CAN总线传输给所述电子控制单元ECU,所述电子控制单元ECU响应请求并产生响应报文,通过控制器局域网络CAN总线将响应报文发送给数据转换模块(7)转换成蓝牙数据帧请求报文,通过蓝牙模块(5)传输给汽车故障解码模块(3),汽车故障解码模块(3)解析出响应报文的故障码并传输给汽车故障专家分析模块(4),故障诊断专家分析模块(4)对故障码进行查询并得出故障类别与维修建议并在Android手机或平板电脑(I)上显示。
2.根据权利要求1所述的基于Android平台的汽车故障诊断系统,其特征在于:还具有分别与汽车故障解码模块(3)和汽车 故障专家分析模块(4)相连接的人机交互模块(2)。
3.根据权利要求1所述的基于Android平台的汽车故障诊断系统,其特征在于:所述汽车故障代码解码模块(3)包括诊断功能选择模块(31)、UDS诊断服务(34)、XML诊断数据库(32)、XML解析器(33),所述诊断功能选择模块(31)用于对待诊断车辆的诊断类别进行选择,并根据诊断类别调用UDS诊断报文发生器(34)产生诊断请求报文,发送给车辆电子控制单元ECU,电子控制单元E⑶发送响应报文给XML解析器(33),XML解析器(33)调用XML诊断数据库(32)对响应报文进行解析,得出故障码并传输给故障诊断专家分析模块⑷。
4.根据权利要求1所述的基于Android平台的汽车故障诊断系统,其特征在于:所述汽车故障专家分析模块(4)包括推理诊断模块(15)和存储有推理诊断用规则的知识库(16),所述推理诊断模块(15)接收来自汽车故障代码解码模块(3)的XML解析器(33)发送来的故障码,并调用知识库(16)中的故障码对应的维修知识,得出故障类别与维修建议。
【文档编号】G05B23/02GK103455025SQ201310355523
【公开日】2013年12月18日 申请日期:2013年8月15日 优先权日:2013年8月15日
【发明者】黄智宇, 陈志方, 陈倍新, 蒲小华, 彭熙 申请人:重庆邮电大学