基于CAN通讯的汽车报文解析及故障诊断方法与流程

文档序号:15198620发布日期:2018-08-19 02:39阅读:1498来源:国知局

本发明涉及汽车领域,尤其涉及基于can通讯的汽车报文解析及故障诊断方法。



背景技术:

随着新能源技术的成熟与逐渐推广,纯电动汽车的关注度和普及率越来越高。相对传统汽车,纯电动汽车车辆高低压电控元件增多,动力电池管理、驱动电机控制及整车控制等关键技术等电子电控技术要求增高。所以整车can总线上各节点数量增多,节点上交换和传递的信息也越来越复杂。若想了解车辆信息或车辆使用过程中出现电气故障,采用原始手工解析方式处理车辆诊断接口采集的原始报文计算量大、错误率高、效率低下。



技术实现要素:

本发明的技术方案是基于can通讯的汽车报文解析及故障诊断方法,应用于由数据库、处理器以及显示操作界面构成的测试装置上,所述方法包括步骤:

s1、通过can总线从车辆的车辆诊断接口中获取若干个电气节点的原始报文,存入数据库中;

s21、用户通过显示操作界面定义筛选条件后,以帧id作为关键字在所述原始报文中进行筛选,筛选出相应的记录,统计符合筛选条件的帧id数目;

s22、对筛选出的所述记录进行批量解析,获取每条记录对应的解析结果;

其中,所述原始报文在所述数据库中存储形成一个数据表,所述数据表由若干条所述记录构成,每条记录包括序号、时间标识、名称、帧id、格式、类型、数据长度及数据。

较佳的,上述对所述记录进行筛选的过程为:

在所述处理器存储中定义新的虚拟数据表,根据所述关键字对应的参数组信息,在虚拟数据表中添加相应字段;

利用循环函数提取数据库中数据表中每一条具有所述关键字的记录,将所述记录依次写入所述虚拟数据表中;

上述对记录进行解析的过程为:

将所述记录进行字节转化;

根据车型既定的整车can通讯协议,调取所述关键字对应的后台运算函数,把所述记录对应的所有信息解析出来;

把解析内容存入所述虚拟数据表中。

较佳的,于所述数据解析信息中包括删除重复报文命令时,在步骤s21中,调取与所述关键字对应的记录时,删除重复的所述记录记录。

较佳的,在步骤s22之后还包括步骤:

s23、于用户通过显示操作界面发出查询信息后,在显示操作界面上显示虚拟数据表的内容。

较佳的,在步骤s1之后还包括步骤:

s31、于所述测试装置接收到节点帧id后,判断所述数据库中是否有该节点帧id对应的报文信息,若有,执行步骤s32;否则,在所述显示屏上提示没有对应报文信息;

s32、统计该节点帧id对应的记录总是总数目,并根据节点帧id判断报文信息的字节数是否正确,于不正确时判定该报文信息错误,删除错误的报文信息。

较佳的,每个所述电气节点对应一个节点帧id。

较佳的,在步骤s1之后还包括步骤:

s41、于所述测试装置接收到帧id和记录后,所述处理器从所述数据库中查找是否存在该帧id及记录对应的报文信息,若存在,执行步骤s42;否则,判断该帧id和记录无效,在所述显示器上显示无效字节;

s42、解析该报文信息对应的解析结果,在显示屏上输出该解析结果。

较佳的,在步骤s1之后还包括步骤:

s51、于所述测试装置接收到电气节点信号或信息类型信号后,所述处理器查询该电气节点信号或信息类型信号对应的帧id,并根据该帧id获取所有的具有该帧id的报文信息;

s52、解析查询到的所有报文信息,获取解析结果。

较佳的,所述电气节点包括电池管理系统、整车控制器、电机及其电控系统以及电气附件。

较佳的,所述解析结果包括记录对应的信息类型、该信息类型的数据指标以及对应的电气节点是否故障。

上述技术方案具有如下优点或有益效果:通过上述基于can通讯的汽车报文解析及故障诊断方法,对用can卡采集到的原始报文可直接存入程序的数据库,前端界面即可解析读取的报文;完全面向用户设计,界面简洁美观,使用方便,可实现报文的单帧解析、批量解析,分类浏览,故障诊断等功能;整车can通讯节点,像bms、vcu等设置浏览界面,可根据不同的信息需求选择浏览条件,后台设置不同的数据库查询方式调取不同的数据,方便观察数据的实时变化;若节点发出的报文的为故障和报警信息,可通过在后台数据解析中若解析出不正常的情况,该结果显示时会在前台显示中进行标注,方便快速分析故障点处理汽车故障;系统主要使用sql语句结合ado.net实现数据库操作,可进行二次开发。

附图说明

参考所附附图,以更加充分的描述本发明的实施例。然而,所附附图仅用于说明和阐述,并不构成对本发明范围的限制。

图1为本发明基于can通讯的汽车报文解析及故障诊断方法的流程示意图一;

图2为本发明基于can通讯的汽车报文解析及故障诊断方法的流程示意图二;

图3为本发明基于can通讯的汽车报文解析及故障诊断方法的流程示意图三;

图4为本发明基于can通讯的汽车报文解析及故障诊断方法的流程示意图四。

具体实施方式

下面结合附图和具体实施例对本发明基于can通讯的汽车报文解析及故障诊断方法进行详细说明。

如图1所示,一种基于can通讯的汽车报文解析及故障诊断方法,应用于由数据库、处理器以及显示操作界面构成的测试装置上,包括步骤:

s1、通过can总线从车辆的车辆诊断接口中获取车辆若干个电器节点的原始报文,存入数据库中;

s21、用户通过显示操作界面定义筛选条件,以帧id作为关键字在原始报文中进行筛选,筛选出相应的记录,统计符合筛选条件的帧id数目;

s22、对筛选出的记录进行批量解析,获取每条记录对应的解析结果。

具体来说,在上述基于can通讯的汽车报文解析及故障诊断方法中,首先要通过can总线从车辆的车辆诊断接口中获取若干个电气节点中获取原始报文,即利用can总线将车辆中的原始报文存入至测试装置的数据库中,以便于后续测试装置对数据库中原始报文的查询、处理等。之后,如果用户通过显示操作界面定义筛选条件,则以帧id作为关键字在原始报文中进行筛选,以筛选出相应的记录,其中记录中包含需要的序号、时间标识、类型、数据等字段,同时统计符合筛选条件的帧id数目。通过这种方式,可以直接的将整车的报文统一采集并,用户可以直接通过测试装置对所需要的原始报文进行筛选,而不再需要在对某个电气节点检测时,都需要单独从车辆上采取该电气节点对应的原始报文。其中上述车辆诊断接口是用来采集整车的原始报文,该车辆诊断接口与若干杆电气节点连接,电气节点将每个节点的原始报文通过车辆诊断接口传递至测试装置中。

近一步来讲,上述步骤s1中,截取原始报文在数据库中存储为一个数据表,该数据表中由若干条记录构成,每一条记录包括序号、时间标识、名称、帧id、格式、类型、数据长度(dlc)、数据等信息,每个信息作为表中的一个字段,其中格式字段为数据帧,类型字段为扩展帧,dlc为8,即数据段的长度一般为8个字节。值得指出的是,利用序号为关键字以区分不同的记录。

近一步来讲,上述电气节点包括can通讯网络中的电池管理系统(bms)、整车控制器(vcu)、电机及其电控系统(mcu)以及电气附件,该电气附件包括仪表、充电机等。

近一步来讲,上述对记录进行筛选的过程为:

在处理器存储中定义新的虚拟数据表,根据关键字帧id对应的参数组信息,在虚拟数据表中添加相应字段;

利用循环函数提取数据库中数据表中每一条具有上述关键字id的记录,将记录依次写入该虚拟数据表中。

近一步来讲,对记录进行解析的过程为:

将记录进行字节或位的转化;

具体的,有些信息内容无需用一个字节(一个字节有八个位)来表示,甚至用两个位就可以表示出来如某些继电器触点的闭合断开状态;有些信息一个字节不能表示,表达的内容需要用几个字节来表示,如实时车速等;

根据车型既定的整车can通讯协议,设计帧id对应的后台运算函数,把记录对应的所有信息解析出来;

把解析内容存入定义的新的虚拟数据表中。

值得指出的是,在上述过程中,处理器从整车can通讯协议中查找相应帧id对应的参数组信息,即整车can通讯协议存储有所有帧id对应的参数组信息以及每种记录对应的解析结果,查询到参数组信息后才能够对虚拟数据表进行字段添加。此外,在将记录写入虚拟数据表中时,存储时应与虚拟数据表的字段名称对应。

之后,在步骤s22之后还包括过程:

s23、于用户通过显示操作界面发出查询信息后,在显示操作界面上显示虚拟数据表的内容。实际应用中,即用户如在窗口中输入具体帧id后点击“查询”按钮,后台触发程序运行,可实现对数据表的浏览。

近一步来讲,在步骤s1中,筛选条件中还包括删除重复报文命令时,在步骤s21中,调取与帧id对应的记录时,删除重复的记录,并把每种记录删除重复数目记录后的报文存入定义的新的虚拟数据表中,减少后续报文解析工作量。在实际应用中,由于报文采集频率高,记录数量多,利用该删除重复报文的方式,可以提高报文的可读性。此外,在最终显示每个报文对应的解析结果的同时,还能够显示重复报文的数目,以便用户的查看。

近一步来讲,如图2所示,在步骤s1之后还包括步骤:

s31、于测试装置接收到节点帧id后,判断数据库中是否有帧id对应的原始报文,若有,执行步骤s32;否则,在显示操作界面上提示没有对应节点原始报文;

s32、统计该节点帧id对应的记录总数目,并根据节点帧id判断原始报文的字节数是否正确,于不正确时判定该原始报文错误,删除错误的原始报文。

具体来说,若用户需要查询一特定电气节点的原始报文,则向测试装置发出该电气节点对应的节点帧id,处理器读取数据库中数据,判断是否有该节点帧id对应的节点原始报文,若有,统计相应数目。值得指出的是,在该过程中,为了保证最终原始报文的准确性,所以需要对搜索到的原始报文进行判断。该判断过程指的是,根据节点帧id判断原始报文的字节数是否正确,若不正确,则说明该原始报文错误及存到数据库过程中可能造成报文错误,删除错误的原始报文。值得指出的是,每个电气节点对应一个节点帧id。

近一步来讲,如图3所示,在步骤s1之后还包括步骤:

s41、于测试装置接收到帧id和记录后,处理器从数据库中查找是否存在该帧id及记录对应的原始报文,若存在,执行步骤s42;否则,判断该帧id和记录无效,在显示器上显示无效字节;

s42、解析该原始报文对应的解析结果,在显示操作界面上输出该解析结果。

具体来说,在操作界面中输入采集的原始报文的帧id和记录,直接输出该帧id和记录所包含的原始报文对应的解析结果,如输入帧id1818d0f3,记录“080600fdc9000000”,解析结果可浏览“电池组总电压、电池组总电流、soc和电池报警信息”。若存在无效字节,通过后台数据解析中与预设无效字节对比,若存在无效字节,可在相应位置显示处理。

近一步来讲,上述的解析结果包括该原始报文对应的信息类型、该信息类型的数据指标、对应的电气节点是否故障等。

近一步来讲,如图4所示,在步骤s1之后还包括步骤:

s51、于测试装置接收到电气节点信号或信息类型信号后,处理器查询该电气节点信号或信息类型对应的帧id,并根据该帧id获取所有的具有该帧id的原始报文;

s52、解析查询到的所有原始报文,获取解析结果。

具体来说,若需批量解析can网络中已知具体电气节点或具体的信息类型时,例如mcu(电机控制器)发给vcu(整车控制器)的信息等,可直接设定查询条件,解析出该报文数据帧包含的转速请求、转矩请求、电机运行方向、控制模式等信息。测试时间段内。所有的记录都显示批量解析出来。

通过上述基于can通讯的汽车报文解析及故障诊断方法,对用can卡采集到的原始报文可直接存入程序的数据库,前端界面即可解析读取的报文;完全面向用户设计,界面简洁美观,使用方便,可实现报文的单帧解析、批量解析,分类浏览,故障诊断等功能;整车can通讯节点,像bms、vcu等设置浏览界面,可根据不同的信息需求选择浏览条件,后台设置不同的数据库查询方式调取不同的数据,方便观察数据的实时变化;若节点发出的报文的为故障和报警信息,可通过在后台数据解析中若解析出不正常的情况,该结果显示时会在前台显示中进行标注,方便快速分析故障点处理汽车故障;系统主要使用sql语句结合ado.net实现数据库操作,可进行二次开发。控制单元之间的所有信息都通过两根数据线进行交换,这种数据线也叫can总线。接入网络的每一个节点都有名称和地址。can总线系统的应用大大简化了车身线路的布局,也提高了车身电控系统的稳定性。

对于本领域的技术人员而言,阅读上述说明后,各种变化和修正无疑将显而易见。因此,所附的权利要求书应看作是涵盖本发明的真实意图和范围的全部变化和修正。在权利要求书范围内任何和所有等价的范围与内容,都应认为仍属本发明的意图和范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1