通信交互方法、装置、设备及存储介质与流程

文档序号:33349816发布日期:2023-03-04 04:36阅读:34来源:国知局
通信交互方法、装置、设备及存储介质与流程

1.本技术涉及通信领域,尤其涉及通信交互方法、装置、设备及存储介质。


背景技术:

2.随着汽车行业飞速的发展、科技的进步和人们的高需求,汽车电子技术不断更新,汽车上安装的电子控制单元(electronic control unit,ecu)的数量增多,用以实现不同的控制功能。
3.ecu具有故障自诊断和保护功能,当系统产生故障时,ecu能在随机存储器(random access memory,ram)中自动记录故障代码并通过点亮仪表盘上的故障灯进行提示。ecu中保存的故障信息可以通过汽车诊断仪来读取,汽车诊断仪可以与汽车的车载诊断系统(on board diagnostics,obd)接口与汽车连接,并通过obd接口与汽车中的ecu进行通信,以获取汽车中的所有故障信息并进行解析,得到当前故障原因、故障描述、故障状态等信息。目前,汽车诊断仪与汽车的ecu是基于串行通信的方式,即汽车诊断仪逐个与ecu进行通信,在待与上一个ecu之间的所有通信命令逐个交互结束后,才进行与下一ecu之间的逐个通信命令交互,耗时较长,诊断效率低。


技术实现要素:

4.本技术提供通信交互方法、装置、设备及存储介质,以解决汽车诊断仪与汽车的ecu通信耗时较长技术问题。
5.第一方面,提供一种通信交互方法,包括:
6.在获取到目标车辆的车辆识别码(vehicle identification number,vin)的情况下,根据所述车辆识别码,获取所述目标车辆中的多个电子控制单元和多个通信参数,所述多个通信参数包括所述多个电子控制单元中的每个电子控制单元对应的通信参数;
7.根据所述多个通信参数,为所述多个电子控制单元创建至少一个通信链路,其中,一个通信链路对应一种通信参数;
8.通过所述至少一个通信链路中的各个通信链路,分别与所述各个通信链路对应的电子控制单元进行并行通信命令交互。
9.在该技术方案中,在获取到车辆的车辆识别码之后,先根据车辆的车辆识别码获取车辆中的多个电子控制单元和多个电子控制单元的通信参数;然后根据多个电子控制单元各自对应的通信参数,为车辆中的多个电子控制单元创建通信链路,一个通信链路对应一种通信参数,实现了对车辆中的电子控制单元的分类,将通信参数相同的电子控制单元分配到一组,便于通信传输;最后通过创建的通信链路,与车辆中的多个电子控制单元进行并行通信命令交互,车辆中的多个电子控制单元的通信命令交互相互不存在依赖,从而可以减少通信命令交互的时长,提高与车辆中的电子控制单元进行通信的效率。
10.结合第一方面,所述通过所述至少一个通信链路中的各个通信链路,分别与所述各个通信链路对应的电子控制单元进行并行通信命令交互,包括:根据目标通信链路对应
的各个电子控制单元的通信命令,生成所述各个电子控制单元对应的通信命令队列,所述目标通信链路为所述至少一个通信链路中的任意一个通信链路,一个通信命令队列包括所述目标通信链路对应的一个电子控制单元的所有通信命令;通过所述目标通信链路,并行传输和处理所述各个电子控制单元对应的通信命令队列中的通信命令。通过将电子控制单元的通信命令排列形成通信命令队列,使得通信命令交互能够有序进行;通过通信链路并行传输和处理各个通信命令队列中的通信命令,并且电子控制单元相互之间的通信命令交互互不干扰,可以提高通信命令交互的效率。
11.结合第一方面,在一种可能的实现方式中,所述根据目标通信链路对应的各个电子控制单元的通信命令,生成所述各个电子控制单元对应的通信命令队列之后,所述方法还包括:在获取到第一电子控制单元的第一通信命令的情况下,将所述第一通信命令插入第一通信命令队列,所述第一电子控制单元为目标通信链路对应的任意一个电子控制单元,所述第一通信命令为新增的通信命令,所述第一通信命令队列为所述第一电子控制单元对应的通信命令队列。当检测到针对于电子控制单元的新增的通信命令时,将新增的通信命令插入到对应的通信命令队列中,使得新增的通信命令能够得到处理,并且电子控制单元对应的通信命令能够有序进行。
12.结合第一方面,在一种可能的实现方式中,所述将所述第一通信命令插入第一通信命令队列,包括:
13.根据所述第一通信命令与所述第一通信命令队列中的通信命令之间的时序先后关系,将所述第一通信命令插入到所述第一通信命令队列中与所述第一通信命令的时序对应的位置。
14.结合第一方面,在一种可能的实现方式中,所述通过所述目标通信链路,并行传输和处理所述各个电子控制单元对应的通信命令队列中的通信命令,包括:将所述第一通信命令队列中的第i个通信命令,通过所述目标通信链路发送给第一电子控制单元,所述第一电子控制单元为所述第一通信命令队列为对应的电子控制单元,所述第一电子控制单元为所述目标通信链路对应的任意一个电子控制单元,1≤i≤n,n为所述第一通信命令队列中的通信命令的总数量;在接收到所述第一电子控制单元发送的所述第i个通信命令对应的第i个应答响应的情况下,处理所述第i个应答响应,并将所述第一通信命令队列中的第(i+1)个通信命令,通过所述目标通信链路发送给所述第一电子控制单元。通过依次处理通信命令队列中的通信命令,能够实现通信命令的有序交互。
15.结合第一方面,在一种可能的实现方式中,所述方法还包括:在接收到所述第一通信命令队列中的最后一个通信命令对应的应答响应之后,根据所述第一通信命令队列对应的所有应答响应的处理结果,生成所述第一电子控制单元的通信命令处理结果。在处理完一个通信命令队列中的通信命令后,根据通信命令队列对应的所有的应答响应的处理结果,生成电子控制单元的通信命令处理结果,实现了对通信命令交互结果的及时反馈。
16.结合第一方面,在一种可能的实现方式中,所述将所述第一通信命令队列中的第i个通信命令,通过所述目标通信链路发送给第一电子控制单元,包括:基于第一线程,将所述第一通信命令队列中的第i个通信命令,通过所述目标通信链路发送给第一电子控制单元;所述处理所述第i个应答响应,并将所述第一通信命令队列中的第(i+1)个通信命令,包括:基于第二线程,处理所述第i个应答响应,并基于所述第一线程,将所述第一通信命令队
列中的第(i+1)个通信命令,通过所述目标通信链路发送给所述第一电子控制单元,所述第二线程与所述第一线程为不同的线程。通过不同的线程来完成通信命令的收发和数据处理,能够提升通信命令交互的效率。
17.结合第一方面,在一种可能的实现方式中,所述通信命令用于获取所述目标车辆的故障信息;所述方法还包括:在所述各个通信链路对应的通信命令队列中的通信命令均传输处理完毕之后,根据基于已传输的所有通信命令获取到的所有故障信息,生成所述目标车辆对应的故障检测报告。在所有的通信命令处理完后,生成车辆的故障检测报告,有利于用户了解车辆的全部故障信息。
18.第二方面,提供一种通信交互装置,包括:
19.配置获取模块,用于在获取到目标车辆的车辆识别码的情况下,根据所述车辆识别码,获取所述目标车辆中的多个电子控制单元和多个通信参数,所述多个通信参数包括所述多个电子控制单元中的每个电子控制单元对应的通信参数;
20.链路创建模块,用于根据所述多个通信参数,为所述多个电子控制单元创建至少一个通信链路,其中,一个通信链路对应一种通信参数;
21.并行交互模块,用于通过所述至少一个通信链路中的各个通信链路,分别与所述各个通信链路对应的电子控制单元进行并行通信命令交互。
22.第三方面,提供一种计算机设备,包括存储器以及一个或多个处理器,所述存储器连接至所述一个或多个处理器,一个或多个处理器用于执行存储在存储器中的一个或多个计算机程序,一个或多个处理器在执行一个或多个计算机程序时,使得该计算机设备实现上述第一方面的通信交互方法。
23.第四方面,提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,上述程序指令当被处理器执行时使上述处理器执行上述第一方面的通信交互方法。
24.本技术可以实现如下技术效果:减少通信命令交互的时长,提高与车辆中的电子控制单元进行通信的效率。
附图说明
25.图1为本技术实施例提供的一种汽车通信系统的系统架构示意图;
26.图2为本技术实施例提供的一种通信交互方法的流程示意图;
27.图3为本技术实施例汽车诊断仪的上层应用与核心通信模块之间的交互示意图;
28.图4a-图4d为本技术实施例提供的通信命令队列的示意图;
29.图5为本技术实施例提供的一种在通信链路上传输和处理一个通信命令队列中的通信命令的流程示意图;
30.图6是本技术实施例提供的一种通信交互装置的结构示意图;
31.图7是本技术实施例提供的一种计算机设备的结构示意图。
具体实施方式
32.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
33.本技术的技术方案可适用于汽车通信场景,具体适用于汽车诊断仪与车辆进行通
信的场景。为便于理解,首先介绍本技术的通信架构。参见图1,图1为本技术实施例提供的一种汽车通信系统的系统架构示意图,如图1所示,汽车通信系统10包括汽车诊断仪101、车辆通信接口(vehicle communication interface,vci)模块102和车辆103,汽车诊断仪101通过vci模块102与车辆103连接。其中,汽车诊断仪101又可以称为汽车解码器,用于通过控制器局域网络(controller area network,can)通信模块或本地互联网络(local interconnect network,lin)通信模块等通信模块与车辆103内的ecu进行通信,传输车辆103的故障代码和发动机状态信息,以实现对车辆103的故障扫描检测;汽车诊断仪101还可以用于对车辆103进行车辆ecu定位、车辆ecu数据备份与数据还原等。vci模块102是汽车通信连接工具,用于与车辆103的obd接口连接,构建汽车诊断仪101与车辆103之间的通信连接。vci模块102可以通过蓝牙、通用串行总线(universal serial bus,usb)、wifi等方式与汽车诊断仪101连接。vci模块102通过诊断主线与车辆的obd接口连接。车辆103包括多个ecu,ecu由微控制器(microcontroller unit,mcu)、ram、只读存储器(read only memory,rom)、输入输出接口等集成电路组成,不同ecu可设置在车辆的不同机械装置处,用于检测不同机械装置的运行情况,以及记录不同机械装置的故障情况。具体地,ecu可以设置在车辆103的发动机、防抱死系统等机械装置上。
34.基于图1所示的系统架构,可以实现对汽车故障信息的检测。在目前的一些方案中,汽车诊断仪101与车辆103中的ecu是通过串行通信的方式进行故障检测,即汽车诊断仪101按先后顺序逐个与ecu进行通信命令交互,逐个发送通信命令并接收通信命令的应答响应,在接收到上一个通信命令的应答响应后再发送下一个通信命令,在与上一个ecu通信交互结束并获得该上一个ecu中记录的故障信息后,再与下一ecu进行通信交互获得下一个ecu中记录的故障信息。车辆103中的ecu的数量较多,此种方式获得车辆103中的所有的故障信息所需时间较长,通信效率低。
35.有鉴于此,本技术提出了一种通信交互方法,按车辆中的ecu的通信参数对车辆的ecu进行分组,将通信参数相同的ecu划分到一组,并创建与ecu的通信参数相匹配的通信链路,用于传输通信参数相同的ecu的通信命令;在同一通信链路中,对该通信链路对应的ecu的通信命令进行并行传输交互,使得ecu的通信命令交互互不干扰,减少通信交互时间,提高通信效率。
36.以下具体介绍本技术的技术方案。
37.参见图2,图2为本技术实施例提供的一种通信交互方法的流程示意图,该方法可应用在前述的汽车诊断仪101上,如图2所示,该方法包括如下步骤:
38.s201,在获取到目标车辆的车辆识别码的情况下,根据目标车辆的车辆识别码,获取目标车辆中的多个电子控制单元和目标车辆的多个通信参数。
39.其中,目标车辆为已经通过vci模块与汽车诊断仪建立物理连接的车辆。在与目标车辆建立物理连接后,vci模块可以打开目标车辆的点火钥匙,启动目标车辆的发动机等功能器件,使得汽车诊断仪与目标车辆之间建立通信连接,从而获取到目标车辆的车辆识别码。
40.目标车辆中的多个电子控制单元是指当前执行某种任务需与之进行通信的多个电子控制单元。例如,汽车诊断仪当前执行对目标车辆的故障扫描,故障扫描的对象是目标车辆中的所有电子控制单元,则多个电子控制单元是指目标车辆中的所有电子控制单元。
又如,汽车诊断仪当前执行对目标车辆中的部分电子控制单元进行数据备份,则多个电子控制单元是指目标车辆中需进行数据备份的电子控制单元。电子控制单元的数量取决于当前需执行的任务。
41.目标车辆的多个通信参数包括目标车辆中的多个电子控制单元中的每个电子控制单元对应的通信参数。电子控制单元对应的通信参数是指与电子控制单元通信所需采用/遵循的参数,电子控制单元对应的通信参数可包括与电子控制单元通信所采用的通信协议、通信引脚、波特率、时间参数、通信命令填充格式等。
42.具体地,在获取到目标车辆的车辆识别码的情况下,可以根据目标车辆的车辆识别码解析得到目标车辆的型号,然后根据目标车辆的型号查询预设的诊断数据库,以得到目标车辆的全部系统集合和系统配置,然后从全部系统集合中获取电子控制单元列表,以得到多个电子控制单元,并从系统配置中获取多个电子控制单元的通信参数。
43.s202,根据目标车辆的多个通信参数,为目标车辆中的多个电子控制单元创建至少一个通信链路。
44.其中,一个通信链路对应一种通信参数,不同通信链路对应的通信参数不同。如果目标车辆中的多个电子控制单元的通信参数相同,则多个电子控制单元共享同一通信链路。为目标车辆中的多个电子控制单元创建至少一个通信链路的目的在于对目标车辆中的多个电子控制单元进行分组,并为同一组别的电子控制单元构建通信所需的环境。
45.其中,为目标车辆创建通信链路的过程可包含对ecu的过滤,对于至少一个通信链路中的任意一个目标通信链路,需设置允许接收该目标通信链路对应的ecu发送的通信消息,即对于一个通信链路,其用于接收通信参数与该通信链路对应的通信参数相同的ecu发送的通信消息。
46.具体实现中,可以从目标车辆中的多个电子控制单元中选择一个电子控制单元作为目标电子控制单元,根据目标电子控制单元的通信参数,创建与该目标电子控制单元的通信参数匹配的目标通信链路;然后根据目标车辆中的其他电子控制单元的通信参数,确定与该目标电子控制单元的通信参数相同的电子控制单元,与目标电子控制单元组成第一电子控制单元组合;最后将目标通信链路设置为允许接收第一电子控制单元组合中的电子控制单元发送的通信消息,以此得到一个通信链路。按照同样的方式为目标车辆中还未分配到电子控制单元组合中的电子控制单元创建通信链路,直至目标车辆中的所有电子控制单元均对应有通信链路,可得到一个或多个通信链路。应理解的是,同一电子控制单元组合中的各个电子控制单元除了请求地址和应答地址不同外,其他通信参数均相同。
47.需要说明的是,本技术创建通信链路的方式与汽车诊断仪与车辆进行串行通信创建通信链路的原理基本相同,不同之处在于,汽车诊断仪与车辆进行串行通信时创建的一个通信链路同时只允许接收一个电子控制单元的消息;本技术由于创建了多个通信链路,并且每个通信链路同时允许接收多个电子控制单元的消息,因而同时与目标车辆中的所有控制单元进行通信交互。
48.s203,通过至少一个通信链路中的各个通信链路,分别与各个通信链路对应的电子控制单元进行并行通信命令交互。
49.其中,通过通信链路,与通信链路对应的电子控制单元进行并行通信命令交互,是指对于创建的每一个通信链路,通过通信链路并行传输对应于该通信链路的所有电子控制
单元的通信命令。各个电子控制单元的通信命令可以由汽车诊断仪中执行某种任务的上层应用获取得到,汽车诊断仪的上层应用获取得到各个电子控制单元的通信命令后,可以将各个电子控制单元的通信命令发送给汽车诊断仪的核心通信模块。例如,汽车诊断仪当前执行的是对宝马汽车的故障扫描任务,则上层应用可以是指汽车诊断仪中的宝马诊断软件。汽车诊断仪中的核心通信模块例如可以为多通道通信模块。
50.以汽车诊断仪执行车辆故障扫描业务为例,如图3所示,汽车诊断仪的上层应用q1在遍历得到目标车辆的全部ecu(ecu1、ecu2、ecu3

ecun)后,分别获取每个ecu的进入命令、定位命令、读码命令以及退出命令,提供给核心通讯模块q2。
51.每个通信链路并行传输对应于通信链路的所有电子控制单元的通信命令的方式相同。在一种可行的方式中,对于其中一个通信链路,可以将该通信链路对应的各个ecu的命令按顺序形成队列的方式,完成对各个ecu的通信命令的并行传输。
52.具体地,可以通过如下步骤a1-a2实现通信链路上的并行传输。
53.a1、根据目标通信链路对应的各个电子控制单元的通信命令,生成目标通信链路对应的各个电子控制单元对应的通信命令队列。
54.其中,目标通信链路可以为前述步骤s201中创建的至少一个通信链路中的任意一个通信链路。
55.一个通信命令队列包括目标通信链路对应的一个电子控制单元的所有通信命令。
56.具体地,可以将目标通信链路对应的各个电子控制单元的通信命令,按命令执行的先后顺序排列为通信命令队列。
57.仍以汽车诊断仪执行车辆故障扫描业务为例,假设图3中的ecu1、ecu2以及ecu3的通信参数相同,为ecu1、ecu2以及ecu3创建的通信链路为通信链路a,则生成的通信链路a对应的通信命令队列可以如图4a所示。
58.通过对每一个通信链路对应的电子控制单元均进行步骤a1的处理,可得到每一个通信链路对应的通信命令队列。
59.仍以汽车诊断仪执行车辆故障扫描业务为例,假设根据图3中的ecu的通信参数,一共创建了m个通信链路,则m个通信链路对应的通信命令队列可以如图4b所示。
60.在一些可能的情况中,汽车诊断仪的上层应用还可以给电子控制单元的核心通信模块新增通信命令。上述步骤a1之后,还可以包括:在获取到第一电子控制单元的第一通信命令的情况下,将第一通信命令插入第一通信命令队列。
61.其中,第一电子控制单元为目标通信链路对应的任意一个电子控制单元,第一通信命令为新增的通信命令,第一通信命令队列为第一电子控制单元对应的通信命令队列,新增的通信命令一般不在第一通信命令队列中。
62.具体地,可以根据第一通信命令与第一通信命令队列中的通信命令之间的时序先后关系,将第一通信命令插入到第一通信命令队列中与第一通信命令的时序对应的位置。
63.例如,可参见图4c,假设第一电子控制单元为图4c中的ecu(d),根据ecu(d)的通信命令为ecu(d)创建的通信命令队列如图4c中的d1所示;假设在ecu(d)的进入命令通过通信链路(d)发送给ecu(d)之后,上层应用向核心通信模块发送了ecu(d)的读码命令,由于读码命令的时序在定位命令的时序之后,则将ecu(d)的读码命令插入到定位命令之后的位置,即插入到通信命令队列的队尾。将读码命令插入到ecu(d)的通信命令队列的队尾后,ecu
(d)的通信命令队列如图4c中的d2所示。
64.又如,可参见图4d,假设第一电子控制单元为图4d中的ecu(e),根据ecu(e)的通信命令为ecu(e)创建的通信命令队列如图4c中的e1所示;假设上层应用向核心通信模块发送了ecu(e)的读码命令,读码命令的时序在定位命令的时序之后,并在命令e的时序之前,则将读码命令插入到读码命令之后,命令e之前。将读码命令插入到ecu(e)的通信命令队列后,ecu(e)的通信命令队列如图4c中的e2所示。
65.应理解的是,新增通信命令可以在汽车诊断仪与目标车辆进行并行通信命令交互的任意一个阶段发生。将新增的通信命令插入到对应的通信命令队列中,使得新增的通信命令能够得到处理,并且电子控制单元对应的通信命令能够有序进行。
66.a2、通过目标通信链路,并行传输和处理目标通信链路对应的各个电子控制单元对应的通信命令队列中的通信命令。
67.其中,并行传输和处理目标通信链路对应的各个电子控制单元对应的通信命令队列中的通信命令:是指依次发送目标通信链路对应的各个电子控制单元对应的命令队列中的通信命令,并分别接收目标通信链路对应的各个电子控制单元对应的命令队列中的应答响应。各个命令队列中的通信命令的发送和应答响应的接收互不干扰。
68.以目标通信链路为前述图4a的通信链路(a)为例,并行传输和处理目标通信链路对应的各个电子控制单元对应的通信命令队列中的通信命令的过程如下:依次向ecu1、ecu2以及ecu3发送进入命令,在接收到ecu1发送的进入应答响应时,则向ecu1发送定位命令;在接收到ecu2发送的进入应答响应时,则向ecu2发送定位命令
……
直至ecu1~ecu3的退出命令均已发送,并接收到ecu1~ecu3的退出命令对应的应答响应。
69.其中,对于目标通信链路对应的一个通信命令队列,在目标通信链路上传输和处理通信命令队列的具体流程可参考图5,图5为本技术实施例提供的一种在通信链路上传输和处理一个通信命令队列中的通信命令的流程示意图,如图5所示,可包括如下步骤:
70.301、将第一通信命令队列中的首个通信命令作为第i个通信命令。
71.其中,第一通信命令队列为第一电子控制单元对应的通信命令队列,第一电子控制单元为目标通信链路对应的任意一个电子控制单元对应的通信命令队列。
72.302、将第i个通信命令通过目标通信链路发送给第一电子控制单元。
73.303,判断是否接收到第i个通信命令对应的第i个应答响应。
74.在接收到第i个通信命令对应的第i个应答响应的情况下,执行步骤304和步骤307;在未接收到第i个通信命令对应的第i个应答响应的情况下,继续执行步骤303。
75.304,判断i是否等于n。
76.其中,n为第一通信命令队列中包含的通信命令的总数量。
77.当i等于n时,说明已经接收到第一通信命令队列中的最后一个通信命令对应的应答响应,执行步骤306;当i不等于n时,说明第一通信命令队列中还有通信命令未发送,执行步骤305。
78.305,将i加1,返回执行步骤302。
79.306,确定第一通信命令队列中的通信命令处理完毕。
80.307,处理第i个应答响应。
81.具体地,可以从第i个应答响应中获取响应数据并进行分析以完成对第i个应答响
应的处理。
82.按上述步骤301~307分别处理各通信链路对应的各通信命令队列,可以完成与电子控制单元之间的通信命令交互。
83.通过依次处理通信命令队列中的通信命令,能够实现通信命令的有序交互。
84.在一些可能的情况中,上述步骤301~306均可以通过第一线程执行;上述步骤307可以通过第二线程执行,第一线程和第二线程是两个不同的线程。通过不同的线程来完成通信命令的收发和处理,能够提升通信命令交互的效率。
85.在一些可能的情况中,还可以通过不同的线程完成不同通信命令队列中的通信命令的处理。
86.在一些可能情况中,在上述步骤306之后,还可以包括:根据第一通信命令队列对应的所有应答响应的处理结果,生成第一通信命令队列对应的电子控制单元的通信命令处理结果。
87.其中,通信命令处理结果是指针对于第一通信命令队列对应的电子控制单元执行某种任务的结果。以汽车诊断仪执行车辆故障扫描业务为例,第一通信命令队列对应的电子控制单元的通信命令处理结果是指第一通信命令队列对应的电子控制单元的故障信息。
88.在处理完一个通信命令队列中的通信命令后,根据通信命令队列对应的所有的应答响应,生成电子控制单元的通信命令处理结果,实现了对通信命令交互结果的及时反馈。
89.在上述图1对应的技术方案中,在获取到车辆的车辆识别码之后,先根据车辆的车辆识别码获取车辆中的多个电子控制单元和多个电子控制单元的通信参数;然后根据多个电子控制单元各自对应的通信参数,为车辆中的多个电子控制单元创建通信链路,一个通信链路对应一种通信参数,实现了对车辆中的电子控制单元的分类,将通信参数相同的电子控制单元分配到一组,便于通信传输;最后通过创建的通信链路,与车辆中的多个电子控制单元进行并行通信命令交互,车辆中的多个电子控制单元的通信命令交互相互不存在依赖,从而可以减少通信命令交互的时长,提高与车辆中的电子控制单元进行通信的效率。
90.在一些具体实施场景中,上述图1的方案中的通信命令可以是用于获取目标车辆的故障信息的通信命令。上述图1的方法还可以包括:在各个通信链路对应的通信命令队列中的通信命令均传输处理完毕之后,根据基于已传输的所有通信命令获取到的目标车辆的所有故障信息,生成目标车辆对应的故障检测报告。
91.其中,各个通信链路对应的通信命令队列中的通信命令均传输处理完毕,是指接收到所有的通信命令对应的应答响应并完成所有的应答响应的处理。所有的通信命令是指所有的通信命令队列中的通信命令。以图3为例,所有的通信命令包括ecu1~ecun的通信命令。
92.具体地,可以根据所有的通信命令对应的应答响应中包含的故障信息,得到目标车辆的所有故障信息,以生成目标车辆对应的故障检测报告。
93.在并行传输和处理每个电子控制单元的通信命令后,生成车辆的故障检测报告,有利于用户了解车辆的全部故障信息。
94.在另一些可能的情况中,在目标车辆中的电子控制单元支持广播指令的情况下,对于上述图1中的步骤s203,也可以通过各个通信链路向各个电子控制单元发送广播指令,并接收各个电子控制单元响应该广播指令发送的指令响应,以实现与各个电子控制单元之
间的并行通信命令交互,从而获取到目标车辆中的各个电子控制单元的数据。
95.上述介绍了本技术的方法,下面介绍本技术的装置。
96.参见图6,图6是本技术实施例提供的一种通信交互装置的结构示意图,该通信交互装置可以为前述提到的汽车诊断仪101。如图6所示,该通信交互装置40包括:
97.配置获取模块401,用于在获取到目标车辆的车辆识别码的情况下,根据所述车辆识别码,获取所述目标车辆中的多个电子控制单元和多个通信参数,所述多个通信参数包括所述多个电子控制单元中的每个电子控制单元对应的通信参数;
98.链路创建模块402,用于根据所述多个通信参数,为所述多个电子控制单元创建至少一个通信链路,其中,一个通信链路对应一种通信参数;
99.并行交互模块403,用于通过所述至少一个通信链路中的各个通信链路,分别与所述各个通信链路对应的电子控制单元进行并行通信命令交互。
100.在一种可能的设计中,上述并行交互模块403具体用于:根据目标通信链路对应的各个电子控制单元的通信命令,生成所述各个电子控制单元对应的通信命令队列,所述目标通信链路为所述至少一个通信链路中的任意一个通信链路,一个通信命令队列包括所述目标通信链路对应的一个电子控制单元的所有通信命令;通过所述目标通信链路,并行传输和处理所述各个电子控制单元对应的通信命令队列中的通信命令。
101.在一种可能的设计中,上述并行交互模块403还用于:在获取到第一电子控制单元的第一通信命令的情况下,将所述第一通信命令插入第一通信命令队列,所述第一电子控制单元为目标通信链路对应的任意一个电子控制单元,所述第一通信命令为新增的通信命令,所述第一通信命令队列为所述第一电子控制单元对应的通信命令队列。
102.在一种可能的设计中,上述并行交互模块403具体用于:根据所述第一通信命令与所述第一通信命令队列中的通信命令之间的时序先后关系,将所述第一通信命令插入到所述第一通信命令队列中与所述第一通信命令的时序对应的位置。
103.在一种可能的设计中,上述并行交互模块403具体用于:将所述第一通信命令队列中的第i个通信命令,通过所述目标通信链路发送给第一电子控制单元,所述第一电子控制单元为所述第一通信命令队列为对应的电子控制单元,所述第一电子控制单元为所述目标通信链路对应的任意一个电子控制单元,1≤i≤n,n为所述第一通信命令队列中的通信命令的总数量;在接收到所述第一电子控制单元发送的所述第i个通信命令对应的第i个应答响应的情况下,处理所述第i个应答响应,并将所述第一通信命令队列中的第(i+1)个通信命令,通过所述目标通信链路发送给所述第一电子控制单元。
104.在一种可能的设计中,上述并行交互模块403还用于:在接收到所述第一通信命令队列中的最后一个通信命令对应的应答响应之后,根据所述第一通信命令队列对应的所有应答响应的处理结果,生成所述第一电子控制单元的通信命令处理结果。
105.在一种可能的设计中,上述并行交互模块403具体用于:基于第一线程,将所述第一通信命令队列中的第i个通信命令,通过所述目标通信链路发送给第一电子控制单元;基于第二线程,处理所述第i个应答响应,并基于所述第一线程,将所述第一通信命令队列中的第(i+1)个通信命令,通过所述目标通信链路发送给所述第一电子控制单元,所述第二线程与所述第一线程为不同的线程。
106.在一种可能的设计中,所述通信命令用于获取所述目标车辆的故障信息;上述装
置还包括报告生成模块404,用于在所述各个通信链路对应的通信命令队列中的通信命令均传输处理完毕之后,根据基于已传输的所有通信命令获取到的所有故障信息,生成所述目标车辆对应的故障检测报告。
107.需要说明的是,图6对应的实施例中未提及的内容可参见前述方法实施例的描述,这里不再赘述。
108.上述装置,在获取到车辆的车辆识别码之后,先根据车辆的车辆识别码获取车辆中的多个电子控制单元和多个电子控制单元的通信参数;然后根据多个电子控制单元各自对应的通信参数,为车辆中的多个电子控制单元创建通信链路,一个通信链路对应一种通信参数,实现了对车辆中的电子控制单元的分类,将通信参数相同的电子控制单元分配到一组,便于通信传输;最后通过创建的通信链路,与车辆中的多个电子控制单元进行并行通信命令交互,车辆中的多个电子控制单元的通信命令交互相互不存在依赖,从而可以减少通信命令交互的时长,提高与车辆中的电子控制单元进行通信的效率。
109.参见图7,图7是本技术实施例提供的一种计算机设备的结构示意图,该计算机设备可以为前述的汽车诊断仪101。该计算机设备50包括处理器501、存储器502以及通信接口503。存储器502和通信接口503连接至处理器501,例如通过总线连接至处理器501。
110.处理器501被配置为支持该计算机设备50执行上述方法实施例中的方法中相应的功能。该处理器501可以是中央处理器(central processing unit,cpu),网络处理器(network processor,np),硬件芯片或者其任意组合。上述硬件芯片可以是专用集成电路(application specific integrated circuit,asic),可编程逻辑器件(programmable logic device,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complex programmable logic device,cpld),现场可编程逻辑门阵列(field-programmable gate array,fpga),通用阵列逻辑(generic array logic,gal)或其任意组合。
111.存储器502用于存储程序代码等。存储器502可以包括易失性存储器(volatile memory,vm),例如随机存取存储器(random access memory,ram);存储器502也可以包括非易失性存储器(non-volatile memory,nvm),例如只读存储器(read-only memory,rom),快闪存储器(flash memory),硬盘(hard disk drive,hdd)或固态硬盘(solid-state drive,ssd);存储器502还可以包括上述种类的存储器的组合。
112.通信接口503用于在处理器501的指示下发送通信命令,或者,接收通信命令对应的应答响应。通信接口503可以为硬件接口,如为usb接口等;通信接口503也可以为软件接口,如为蓝牙接口、wifi接口等。不限于这里的限制。
113.处理器501可以调用所述程序代码以执行以下操作:
114.在获取到目标车辆的车辆识别码的情况下,根据所述车辆识别码,获取所述目标车辆中的多个电子控制单元和多个通信参数,所述多个通信参数包括所述多个电子控制单元中的每个电子控制单元对应的通信参数;
115.根据所述多个通信参数,为所述多个电子控制单元创建至少一个通信链路,其中,一个通信链路对应一种通信参数;
116.通过所述至少一个通信链路中的各个通信链路,分别与所述各个通信链路对应的电子控制单元进行并行通信命令交互。
117.本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有
计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时使所述计算机执行如前述实施例所述的方法。
118.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random access memory,ram)等。
119.以上所揭露的仅为本技术较佳实施例而已,当然不能以此来限定本技术之权利范围,因此依本技术权利要求所作的等同变化,仍属本技术所涵盖的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1