汽车诊断方法和装置
文献发布时间:2023-06-19 11:08:20
技术领域
本发明涉及汽车检测技术领域,具体涉及一种汽车诊断方法和装置。
背景技术
随着工业水平的进步和人们生活水平的提高,汽车的普及率也越来越高。同时,汽车的功能也越来越丰富。
现有检测汽车的方式一般是通过检测设备采集汽车上ECU的数据,然后根据采集的数据判断。但是,由于现有汽车上ECU的通信协议种类繁多,从而需要针对不同类型通信协议的ECU使用不同的检测设备,导致现有检测方式较为繁琐。
发明内容
本发明的主要目的在于提供一种汽车诊断方法,以解决现有检测设备通用性较差的技术问题。
为实现上述目的,本发明提出一种汽车诊断方法,该汽车诊断方法包括:
提供配置界面供用户设置配置类型,所述配置类型包括高速CAN、单线CAN、容错CAN、Kline NORMAL、脉宽、PWM、VPM、J1708、RS232-双、RS232-单、KWP2000、ISO9141和BOSCH中的一种或多种;
待选取对应的配置类型后,获取ECU记录的行车数据并进行显示。
优选地,汽车诊断方法还包括:
提供过滤设置界面供用户设置过滤类型,所述过滤类型包括包含法过滤和排除法过滤;
提供过滤样式设置区以供用户根据所述过滤类型设置过滤样式。
优选地,所述获取ECU记录的行车数据并进行显示的步骤包括:
读取所述行车数据;
按照预设规则解析所述行车数据以生成解析数据;
将所述解析数据进行显示。
优选地,在所述将所述解析数据进行显示的步骤之后还包括:
将所述解析数据按照预设规则拆解为各个功能段;
计算同一所述功能段间隔变化的频率数据;
根据所述频率数据更改所述功能段的显示颜色。
优选地,在获取ECU记录的行车数据并进行显示的步骤之后还包括:
将所述行车数据写入存储设备。
优选地,汽车诊断方法还包括:
提供协议设置界面供用户选择通信协议,所述通信协议包括KWP、BOSCH、ISO9141、PWM、VPM、CAN、TP20、J1708、RS232、KNORMALH和VCL-NORMAL中的一种或多种;
向下位机发送请求指令;
接收所述下位机根据所述请求指令发送的应答数据;
根据预设颜色规则同步显示所述请求指令和所述应答数据。
基于上述汽车诊断方法,本发明进一步提出一种汽车诊断装置,该汽车诊断装置包括:
配置类型调用模块,用于根据汽车类型调用高速CAN、单线CAN、容错CAN、KlineNORMAL、脉宽、PWM、VPM、J1708、RS232-双、RS232-单、KWP2000、ISO9141和BOSCH;
采集显示模块,用于待选取对应的配置类型后,获取ECU记录的行车数据并进行显示。
优选地,汽车诊断装置还包括:
过滤类型调用模块,用于选择包含法过滤和排除法过滤;
过滤样式设置模块,用于供用户根据所述过滤类型设置过滤样式。
优选地,所述采集显示模块包括:
读取单元;用于读取所述行车数据;
解析单元,用于按照预设规则解析所述行车数据以生成解析数据;
显示单元,用于将所述解析数据进行显示。
优选地,汽车诊断装置还包括:
数据拆解模块,用于将所述解析数据按照预设规则拆解为各个功能段;
频率计算模块,用于计算同一所述功能段间隔变化的频率数据;
颜色更改模块,用于根据所述频率数据更改所述功能段的显示颜色。
本发明实施例提供的汽车诊断方法,通过预设设置多种配置类型,从而便于用户根据被测汽车的类型选择对应的配置类型,以方便多不同类型的汽车进行诊断。
附图说明
图1为本发明中汽车诊断方法一实施例的流程示意图;
图2为本发明中很诊断设备、VCI盒子和被测汽车的连接示意图;
图3为本发明实施例中配置界面的示意图;
图4为本发明实施例中显示界面和过滤界面的示意图;
图5为本发明中诊断功能的逻辑示意图;
图6为图5中所示解协议的逻辑示意图;
图7为本发明中解协议界面的示意图;
图8为本发明中双通道显示的示意图;
图9为本发明中协议设置界面的示意图;
图10为本发明中模拟显示界面的示意图;
图11为本发明中模拟功能的逻辑示意图;
图12为图11中所示匹配算法的逻辑示意图;
图13为本发明中汽车诊断装置一实施例的流程示意图。
具体实施方式
下面详细描述本发明的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提出一种汽车诊断方法,如图1所示,该汽车诊断方法包括:
步骤S10,提供配置界面供用户设置配置类型,配置类型包括高速CAN、单线CAN、容错CAN、Kline NORMAL、脉宽、PWM、VPM、J1708、RS232-双、RS232-单、KWP2000、ISO9141和BOSCH中的一种或多种。
本步骤中,如图2所示,首先在诊断终端上配置适用该诊断方法的软件,然后通过VCI盒子将诊断终端与被测汽车通信连接,其中优选VCI盒子与被测汽车通过总线交互,VCI盒子与诊断终端通过USB接口交互。如图3所示,该诊断软件可在操作界面提供配置界面,以供用户根据骑着类型选择不同的配置类型,以进行数据通信。
步骤S20,待选取对应的配置类型后,获取ECU记录的行车数据并进行显示。
本步骤中,如图4所示,采集的数据可显示在操作界面对应的区域,同时,操作界面上还配置有清空列表、隐藏、暂停、保存、采数关闭和采数等操作虚拟按键。其中,具体采集的方式可参照图5进行。
本实施例中,通过预设设置多种配置类型,从而便于用户根据被测汽车的类型选择对应的配置类型,以方便多不同类型的汽车进行诊断。
在一较佳实施例中,优选汽车诊断方法还包括:
提供过滤设置界面供用户设置过滤类型,过滤类型包括包含法过滤和排除法过滤;
提供过滤样式设置区以供用户根据过滤类型设置过滤样式。
本步骤中,此时上述操作界面上提供过滤设置界面,如图4所示,过滤设置界面内设置有包含法过滤选项和排除法过滤选项,以及还设置有载入过滤按键和关闭过滤按键,还设置有过滤样式键入区,以供用户自定义过滤的样式。如软过滤:分为包含法过滤和排除法过滤。包含法过滤指,包含该数据格式的数据就保存下来,否则丢弃;而排除法过滤指,若是该格式数据就丢弃,不是该格式的数据就保存下来。过滤基本格式如下:帧过滤开始匹配字节+匹配多少字节(过滤)+具体过滤字节。其中一组过滤数据和另一组过滤数据,组组之前以分号隔开。如:01 02 03 04;00 01 02其中字节必须为两位,故1要写成01。01 02 0304说明,从数据组下标为1的字节开始匹配2字节,这两字节为03和04。而00 01 02表示从数据帧下标为0的字节开始,匹配1字节,该字节为02。两组之前有个分号隔开。
在一较佳实施例中,优选获取ECU记录的行车数据并进行显示的步骤包括:
读取行车数据;
按照预设规则解析行车数据以生成解析数据;
将解析数据进行显示。
本步骤中,如图4所示,在通过VCI盒子获取被测汽车上ECU的数据后,通过一定的规则进行解析,如帧格式:
帧头>:固定为55AA;
<序号>:从0x0000递增;
<长度>:<保留字节>+<数据个数>+<命令字>+<参数>总字节数;
<~长度>:<长度>^0xffff;
<保留字节>:数据单元个数;
<数据个数>:<命令字>+<参数>总字节数;
<命令字>:见表XXX;
<参数>:若没有参数,则命令中不含此项;
<校验位>:前面所有字节的异或(^)校验;
注意:数据帧的最大长度为1038字节,而数据单元最大为1024字节。
在一较佳实施例中,优选在将解析数据进行显示的步骤之后还包括:
将解析数据按照预设规则拆解为各个功能段;
计算同一功能段间隔变化的频率数据;
根据频率数据更改功能段的显示颜色。
本实施例中,如图7所示,在操作界面通过对解析数据进行接协议,实现了在高速采集数据的同时支持协议解析的能力,并灵活方便的显示各项协议数据的变化,变化次数和颜色。如图6所示,如USB读取线程A(采集线程A)启动后,会先读取USB数据帧,并且解析上下位机协议交互帧,解析完毕后,获取原始协议数据帧以及时间、帧间隔时间等,原始帧协议通过软过滤队列过滤后,存储到日志队列中,把需要显示信息存储到内存队列中(只会记录最新的定量数据帧),若存在CAN解协议,还需要把数据稍微处理后存储到CAN协议map队列中,只记录差异和当前变更的数值,同一时刻一个CAN ID只记录一条信息。即此时在操作界面上配置有解协议虚拟按键,点击CAN解协议功能,此时会让采集线程A,按照特定数据规则把CAN协议帧存储到MAP内存队列中。主线程通过定时器来触发,回触发数据计算,计算完后显示到CAN解协议界面上去,并按照变更帧时间、变更频率、变更ID显示不同颜色,同一ID数据帧变更越快的字节背景色将显示灰色,变更慢的显示蓝色背景,不变的一直是白色背景,可以动态筛选出观察帧,对观察帧进行动态单独观察数据帧字节变化情况。
在一较佳实施例中,优选在获取ECU记录的行车数据并进行显示的步骤之后还包括:
将行车数据写入存储设备。
本实施例中,在将解析数据进行显示的同时,还将解析数据进行保存,具体步骤可参照现有日志的保存方式。具体的,如图5所示,对于写日志线程,USB连接上后会先设置写日志线程日志文件路径(临时文件路径)并设置线程为休眠状态。当配置采数参数的时候(假设通道一),此时配置日志线程状态为启动状态。在启动状态下,当调用写日志接口的时候,会启动写日志线程,启动线程会先打开临时日志文件句柄,接着把启动状态改成运行状态,运行状态就是将采集配置参数及采集数据(包含数据、时间、间隔时间)写入日志中。实际运行是USB读取数据线程A处理完数据后,调用日志存储接口,把数据存储到内存队列中。当运行到一定的时间以后,日志线程会把采集线程A的存储日志队列数据交换给日志存储队列,让日志线程批量写入日志信息到日志中,写完后刷写缓存,接着继续等待一下个周期,依次循环,直到人为关闭采数功能,此时会把线程设置为休眠状态,此状态下,日志临时句柄会关闭,线程进入休眠状态。此时就可以保存日志了,因为日志已在缓存日志中,直接拷贝就可以使用。当采数期间点击清除列表的时候,会清除列表的同时清除临时日志,清除临时日志只需要设置日志清除状态就行,写日志线程会自动清除该缓存日志,并重新生成临时日志文件。如图6所示将行车数据进行保存,以便于用户查询。
此时,本发明采数功能主要有3个线程处理各类数据,一个线程是接收USB数据线程,一个是界面显示及操作线程,一个线程是写日志线程(其实日志是双线程,对应双通道日志,一个通道对应一个写日志线程),日志线程需要用到双通道的时候才使用双线程,一般情况下都使用单个线程。
当启动诊断软件的时候,起初程序自动搜索匹配USB,自动连接上USB设备并绑定该设备。当设备断开,或者重新连接上时,程序能自动识别,并显示是否已连接。当设备断开,并重新插入另一个新设备的时候,程序可以自动解绑并重新绑定新设备(不重新插入不解绑);当有两个设备同时插入电脑,再启动程序时,程序会随机选择一个设备并绑定。一个程序只能和一个VCI设备绑定,绑定后,其他程序不能再绑定。
此时主界面线程可以配置采集协议各个参数(配置协议参数的时候会触发日志线程从睡眠状态变成准备状态),配置完协议的各个参数后,可以点击确定,此时会把协议各个参数配置到下位机,并且开启采数模式(USB数据读取线程A一直运行并以阻塞的方式读取),采集到数据后放入缓存中,定时去显示到主界面上,此时也可以动态设置软过滤,让采集线程A过滤满足条件的数据。
进一步地,本产品从硬件设计(双芯片STM32F4和STM32F1)、各种协议参数配置设计(齐全)、多线程设计(处理、显示、存储分离)、日志存储设计(线程、内存交互)、显示设计(虚拟列表)、解析数据设计(数据结构map/队列)等多方面巧妙设计避免了上述问题的发生。目前最大可支持双通道1M波特率的高速CAN协议采集并且稳定可靠,若需要,可以支持更高波特率更快的数据采集。鉴于目前市面上对汽车协议所有信息未知的情况下需要借助多个采集数据的工具才能分析原始数据具体协议的问题,如:确定汽车用的什么协议,什么波特率、什么引脚、进入系统方式是什么、上层协议是什么等等这些问题。要确定协议波特率、引脚、数据位、校验位等等信息,可能要用到一个示波器或者携带一套特定的逻辑分析仪、再用检测软件分析具体的协议,最后采集具体的协议数据等等操作。但本软件只要先用自带的脉宽采集(软件自动计算波特率并显示出来)、Kline NORMAL采集就能根据采集到的信息断定上层协议是KWP2000、ISO9141、BOSCH或者特殊K线协议中的哪种,并以指定协议继续采集需要的数据帧,非常简单方便,一气呵成的获取协议各类有效信息。在使用采集工具的时候,有时候想动态的过滤一些特定的数据帧,本软件提供了动态进行软件过滤;而且本软件包含自由隐藏显示显示的动态数据,自动记录对应协议配置、断电自动恢复等大量实用性功能。如图8所示,本产品使用双通道设计保证设备可以同时监听2个通道数据(即可以同时监听4个引脚的数据收发)收发,解决了业内一个工具最多只能采集2个引脚协议的问题。并且本产品性能稳定可靠,在高速采集CAN线数据的基础上,可以方便启动CAN解协议功能,该功能会解析CAN线数据及统计各项数值,并灵活的显示给用户有多少个CAN ID,每个CAN ID相对同一ID的上一帧变化的字节及其变化的时间,以及该ID总共出现的次数、变化的次数等各种信息,变化字节以不同颜色显示,稳定好用,支持双通道,非常适合汽车左右大灯、左右门等等分左右双协议的实车协议诊断分析。
在一较佳实施例中,优选汽车诊断方法还包括:
提供协议设置界面供用户选择通信协议,通信协议包括KWP、BOSCH、ISO9141、PWM、VPM、CAN、TP20、J1708、RS232、KNORMALH和VCL-NORMAL中的一种或多种;
向下位机发送请求指令;
接收下位机根据请求指令发送的应答数据;
根据预设颜色规则同步显示请求指令和应答数据。
本实施例中,如图9至图11所示,诊断软件还具备采集模拟数据的功能,如选中模拟配置文件,接着点击开启模拟功能,此时会弹出加载的配置协议的参数,可以修改协议配置的各项参数,也可以直接点击确定,此时会先加载模拟动态库(用来收发数据或者自定义收发),接着会把模拟协议信息配置到下位机,最后开启接收数据功能,当获取数据成功后,解析出原始协议帧,并且自行判断是否有匹配帧,若存在匹配帧,把对应的回复数据封装好了发送给下位机,这样形成一个闭环。
模拟功能界面主要有文件树和收发显示框和匹配容器框和其他小功能按钮组成。
其中文件树是显示模拟回复文件,可以改变根目录的方式来改变显示的文件树内容。文件树只显示文件夹和TXT文件。双击文件树上的模拟回复文件,此时可以把模拟回复文件的数据加载到匹配容器框内。右键可以选择打开该回复文件,也可以选择刷新当前文件树。
收发显示框,是显示系统接收什么数据和发送什么数据。可以通过右键来选择拷贝或者删除显示数据。也可以用ctr+A和ctr+c来全拷贝显示的数据。
匹配容器框是显示载入系统的模拟回复文件的数据,可以选择不同的Key(Req)来显示不同的回应。载入系统的Key(Req)是不能改变的,而回复(Ans)是可以改变的。可以通过右键点击匹配容器框,显示的菜单中,选择删除、新增、批量新增、拷贝当前行、拷贝全部。
来操作各种功能。其中删除功能,必须右键点击有数据的行才会删除回复数据;新增功能,若右键点击有数据行会新增复制当前行数据,并且添加进入新行中,若右键点击没数据的行,则添加默认新行数据。批量新增,可以同时添加多行回复数据。注意:匹配容器框中修改的任何数据,在当前模拟状态下是立即生效的,但修改的数据不会保存到模拟回复文件中。上述简写流程中有二个核心,一个是数据帧获取设计方案,一个是匹配算法。这两个核心功能将在下面详细说明。
具体的,整个框架的设计主要有这几个优势,单个线程处理数据接收是为了能使程序高速、不丢帧的把所有数据完整的收上,收完后放入缓存队列中,该线程主要保障接收数据不丢帧。动态库线程可以同时调用接收接口来接收数据,解析数据,并且匹配具体数据帧,匹配完后调用接口把要显示的信息放入虚拟列表存储队列中,把需要发送的数据直接发送,该线程是协议处理的主要功能处理线程,并且可以根据开放的c++接口,让其他诊断工程师字节写收发数据处理过程及其需要实现的特殊功能等。虚拟列表显示线程,是控制列表新增数据、变更数据、移动滚动条、删除队列数据、刷写列表数据等等操作,该线程主要是让界面显示稳定不影响主线程用户操作,以及不影响其他线程运行速度;而主程序事件触发或者用户操作控制、修改回复数据帧、定位收发数据帧等等功能,主要作为主控线程作用。这样子的设计是保障模拟工装功能多样并且快速稳定运行的关键。
如图12所示,本程序在处理协议匹配的时候,主导思路是走key-value字典查询法,不对具体协议进行解析,而是接受到Req按照智能匹配原则自动匹配上数据,所以只会对特定协议特殊处理,如:TP20协议的第三字节前4位组合为1、2、B,那么后4位会设置为0;Bosch协议长度大于3字节的协议的第二字节全设置为0等等特殊处理。目前是让Key不会随系统计数改变,简述存储Key值的容量,也减少了书写难度。本程序主要通过双字典查询法,对于多个Req或者多个Req/Ans合并的组进行简单的字典查询,再用锁定模糊匹配遍历查询,锁定指当成查询的Req将为下一次Req查询提供信息支持,包含开始遍历序号、是否多帧、多组、此块匹配是否结束等等,可以说是一个人工智能匹配算法,自动锁定下个匹配周期,匹配性能良好,经过大量的模拟ECU实测验证该功能快捷可靠。匹配法主要思想是用map匹配法匹配,这样减少一定量的匹配后,再用遍历法进行模糊遍历,利用锁定法,锁定遍历起始位置,不用每次从零开始遍历。Map匹配法可以分为一级Key、二级Key等等扩展发,目前做法是因为实际数据帧一般前面几帧就会出现差异,所有key的深度可以控制在4次以内,目前是弄的二次,但是可以扩展。因为Key的层级深度太深的话,内存会占用很大,所有二级Key值后是用遍历法来查询,当需要模糊查询的时候匹配数据的时候用的是模糊数据匹配法。因为遍历比较耗时,所有用了锁定法,就是从第一组进行匹配,知道匹配上记录该匹配序号,下次匹配从该起点开始匹配。若有模糊查询,当第一次map全部都查询不到后,Key将进入到模拟查询队列,此时会把Key按照格式匹配,匹配上后,用新的格式Key重新走流程。
其中,配置协议参数文档可以参考《说明.TXT》文档。具体字段定义下面将详细说明。参数说明对采数和模拟参数配置都有效。
一、协议配置域:
[SETTING];协议配置域表明配置参数开始
1、PROT=UDS;协议类型:(只包含一下协议类型)
KWP、BOSCH、ISO9141、VPW、PWM、TP20、UDS、RS232、J1708。
其中kwp指kwp2000
Tp20和uds是Can的协议。Rs232是指两脚Rs232.
2、THREAD=;调用线程编号,自定义线程库,可以根据平台提供的API自己编写各个协议收发处理。
3、PARAM=;参数列表,不同协议有不同的说明;对于K线慢速进入来说,地址码进入参数列表:PARAM=17,55,20,8A,~KW2,~ADDR(类型协议:PROT=KWP,ISO,BOSCH等)。数值都是十六进制。其中0x17表示地址码;;0x55用于计算波特率,这里以BPS=N的波特率发给诊断设备;关键值:KEYWORD(0x20,0x8A);~KW2表示ECU等待设备发KW2的取反;~ADDR表示ECU地址码取反发给诊断设备。对于K线快速进入来说,PARAM=19,19表示拉高25ms(0x19),拉低25ms(0x19)进入系统。
注意:CAN协议该参数作为过滤参数,其他协议是作为地址码进入参数。CAN协议ID过滤设置共两种方法:一种是穷举过滤,一种是掩码过滤。穷举过滤过滤格式:ID和ID之间以逗号隔开,列如标准ID:0xAA,0x12,0xcc.扩展ID:0x185f521,0x6f54212。
掩码过滤过滤格式:组和组之间用{}隔开,组中ID用逗号隔开,列如:{AA,12,CC}{BA,1900FAB9,1900FAFB}
4、PIN-H=14;高通信引脚若只有一个的,只写PIN-H引脚即可,若只需要一个通信引脚的,只需要配置PIN-H引脚就行
5、PIN-L=6;低通信引脚
6、BPS=500K;波特率设置,CAN的可以设置为:1M,500K,250K,125K,100K,33K3,50K。其他的协议可直接写波特率数值(十进制数值)
7、LOGIC=+//+正逻辑,-负逻辑//PIN-H引脚对应的正负逻辑,如:TX引脚对应TX正负逻辑
8、LOGIC-L=+//+正逻辑,-负逻辑//PIN-L引脚对应的正负逻辑,如:RX引脚对应RX正负逻辑
其中4、5一般和7、8配对使用的。
9、FILTER=;参数配置:F-CAN、S-CAN、H-CAN//只有CAN协议才需要的参数,CAN协议类型区分字段
;Fault tolerant CAN=>F-CAN 容错can
;Single line CAN=>S-CAN 单线can
;High speed CAN=>H-CAN 高速Can
10、CANFILER=穷举//CAN过滤类型:穷举和掩码。是以穷举方式过滤还是以掩码方式过滤数据,该字段和PARAM=字段数据是关联的。
11、IDTYPE=标准ID//CAN ID类型:标准ID、扩展ID。该参数表示选择扩展CAN协议,还是标准CAN协议。
注意:9、10、11参数一般是只有CAN会使用到
12、CHECKBIT=PB-NONE//校验位:PB-NONE、PB-ODD、PB-EVEN、PB-ALL-0、PB-ALL-1。目前比较常用的三种数据位校验是->
PB-NONE表示无校验,PB-ODD表示奇校验,PB-EVEN表示偶校验.还有两种不经常用到的PB-ALL-1表示全为1,PB-ALL-0表示全为0
13、DATABIT=LENGTH-8B//数据位:LENGTH-7B、LENGTH-8B、LENGTH-9B
分表表示数据位7位、8位、9位。一般的协议是8位的。目前数据位支持:8个数据位、9个数据位。
14、STOPBIT=0.5//停止位:0.5、1、1.5、2分别对应半个停止位,一个停止位、一点五个停止位,两个停止位。一般使用一个停止位就行
注意:12、13、14参数一般是K线(如KWP、BOSH、ISO9141)、J1708、RS232协议用到。
15、VOLTAGE=5V//电压:5V、8V、12V,一般K线会使用,表示通信电压是5V还是8V,还是12V。
16、CS=;校验类型:ADD累加和,ADD-REVERSE累加和取反,ADD-COMPLEMENT累加和取补,XOR异或,CRC校验,1281和BOSCH结束字符03,ADD-HL双字节累加和,高位字节在前,ADD-LH双字节累加和,高位字节在后。主要用于一帧的最后字节计算校验的方式。
17、P1=25;接收帧字节间最大间隔时间 一般25ms
18、P2=55;接收帧最大等待时间 一般55ms
19、P3=20;发送帧时间间隔 一般20ms
20、P4=5;发送帧字节间间隔 一般0到25ms
21、P5=5000;发送数据包时间间隔(系统自动退出时间)一般5000ms
2、广播命令域:(命令字:TRB)
广播命令格式:时间(4字节)+数据(N字节)
[RADBRO]//广播命令字段其实
TRB:00 00 00 0a F1 11 33 22//00 00 00 0a=10ms,而F1 23 33 22表示数据
TRB:00 00 00 0a F1 22 33 22
TRB:00 00 00 0a F1 33 33 22 88
3、命令配置域
[COMIN];命令配置域
书写原则
;1.因为是Key、Value查询方式,所以尽量保持一个Req或者一个Req块(Key)唯一
;2.若有大量的Req块,尽量减少Req块的第一个Req相同程度,即编写块时,尽量增加Req块头帧不一致性。(可以提升匹配速度)
;3.多组Req关联成一组的情况,请用ReqG,并且该组中的每个Req必须为ReqG命令字段,请减少用ReqG或者多个Req组成一组的,尽量使用一个Req
;4.若命令配置域的命令好多Req命令重复并且模拟的时候有顺序的重复执行,请每次模拟的时候点击“重置模拟”,这样可以把顺序和数值重置为开始模拟的初始状态值
;5.两块(Req和Ans组合成块)数据段之间尽量添加一个空行,方便定位问题,而且有且只有ReqG命令字也可以用空行作为识别另一组。
;一个Req对应一个Ans
Req:F1 56 00 B9
Ans:F1 56 00 B9
;多个Req对应一个Ans
Req:F1 57 0D 01 AA 66 81
Req:F1 57 0D 01 AA
Ans:F1 59 0D 01 11 11 86
;一个Req对应多个Ans
Req:F1 5A 0D 02 01 3C FA 6F
Ans:F1 58 0D 02 AA FE
Ans:F1 58 0D 02 AA 58 0D 02 AA FE
;多个Req对应多个Ans
Req:F1 57 0D 01 AA 66 81
Req:F1 57 0D 01 AA 66 82
Req:F1 57 0D 01 33 66 82
Ans:F1 58 0D 02 AA FE
Ans:F1 58 0D 02 AA 58 0D 02 AA FE
Ans:F1 58 0D 02 AA 56 0D 02 AA FE
;多Req关联成一组的情况ReqG
;ReqG表示要合并成一段,从开始合并的Req开始就必须使用ReqG,组结束以空行或者下一组为Req作为组结束
/////组开始
ReqG:07 E0 08 02 21 C6 00 00 00 00 00
Ans:07 E8 08 10 32 61 C5 00 00 00 00
ReqG:07 E0 08 30 08 0A 00 00 00 00 00
Ans:07 E8 08 21 01 00 00 00 00 00 00
Ans:07 E8 08 22 02 00 00 00 00 00 00
Ans:07 E8 08 23 03 00 00 00 00 00 00
Ans:07 E8 08 24 04 00 00 00 00 00 00
Ans:07 E8 08 25 05 00 00 00 00 00 00//组结束以空行或者Req作为组结束
//因为下一个是Req,所以该组到这里结束
Req:F1 57 0D 01 AA 66 81//正常的req
Ans:F1 58 0D 02 AA FE
ReqG:07 E0 08 02 21 C1 00 00 00 00 00//新组开始
Ans:07 E8 08 10 32 61 C5 00 00 00 00
ReqG:07 E0 08 30 08 09 00 00 00 00 00
Ans:07 E8 08 21 01 00 00 00 00 00 00
Ans:07 E8 08 22 02 00 00 00 00 00 00//组结束
基于上述汽车诊断方法,如图13所示,本发明进一步提出一种汽车诊断装置,该汽车诊断方法装置包括:
配置类型调用模块10,用于根据汽车类型调用高速CAN、单线CAN、容错CAN、KlineNORMAL、脉宽、PWM、VPM、J1708、RS232-双、RS232-单、KWP2000、ISO9141和BOSCH;
采集显示模块20,用于待选取对应的配置类型后,获取ECU记录的行车数据并进行显示。
在一较佳实施例中,优选汽车诊断装置还包括:
过滤类型调用模块,用于选择包含法过滤和排除法过滤;
过滤样式设置模块,用于供用户根据过滤类型设置过滤样式。
在一较佳实施例中,采集显示模块包括:
读取单元21;用于读取行车数据;
解析单元22,用于按照预设规则解析行车数据以生成解析数据;
显示单元23,用于将解析数据进行显示。
在一较佳实施例中,优选汽车诊断装置还包括:
数据拆解模块,用于将解析数据按照预设规则拆解为各个功能段;
频率计算模块,用于计算同一功能段间隔变化的频率数据;
颜色更改模块,用于根据频率数据更改功能段的显示颜色。
在一较佳实施例中,优选汽车诊断装置还包括:
第二通道模块,用于显示第二组采集的行车数据,本产品使用双通道设计保证设备可以同时监听2个通道数据(即可以同时监听4个引脚的数据收发)收发,解决了业内一个工具最多只能采集2个引脚协议的问题。并且本产品性能稳定可靠,在高速采集CAN线数据的基础上,可以方便启动CAN解协议功能,该功能会解析CAN线数据及统计各项数值,并灵活的显示给用户有多少个CAN ID,每个CAN ID相对同一ID的上一帧变化的字节及其变化的时间,以及该ID总共出现的次数、变化的次数等各种信息,变化字节以不同颜色显示,稳定好用,支持双通道,非常适合汽车左右大灯、左右门等等分左右双协议的实车协议诊断分析。
在一较佳实施例中,优选汽车诊断装置还包括:
日志存储模块,用于将行车数据写入存储设备。
在一较佳实施例中,优选汽车诊断装置还包括:
通信协议设置模块,用于供用户选择KWP、BOSCH、ISO9141、PWM、VPM、CAN、TP20、J1708、RS232、KNORMALH和VCL-NORMAL;
请求指令下发模块,用于向下位机发送请求指令;
应答数据接收模块,用于接收下位机根据请求指令发送的应答数据;
模拟显示模块,用于根据预设颜色规则同步显示请求指令和应答数据。
由于上述各个功能模块均基于上述汽车诊断方法中的各个步骤一一对应提出,各个功能模块的实现方式以及有益效果在此不作描述。
以上的仅为本发明的部分或优选实施例,无论是文字还是附图都不能因此限制本发明保护的范围,凡是在与本发明一个整体的构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明保护的范围内。
- 一种汽车诊断方法、汽车诊断装置及汽车网关
- 电动汽车故障诊断方法、装置和电动汽车