CN114326674A - Ecu刷写的方法、装置、电子设备及存储介质 - Google Patents
Ecu刷写的方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114326674A CN114326674A CN202111636741.5A CN202111636741A CN114326674A CN 114326674 A CN114326674 A CN 114326674A CN 202111636741 A CN202111636741 A CN 202111636741A CN 114326674 A CN114326674 A CN 114326674A
- Authority
- CN
- China
- Prior art keywords
- flash
- target
- ecu
- session
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000003860 storage Methods 0.000 title claims abstract description 26
- 230000001680 brushing effect Effects 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 17
- 230000008569 process Effects 0.000 description 12
- 238000012360 testing method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 230000003993 interaction Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013523 data management Methods 0.000 description 2
- 238000003745 diagnosis Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002405 diagnostic procedure Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请适用于汽车电子技术领域,提供了一种ECU刷写的方法、装置、电子设备及存储介质,所述方法,包括:获取目标ECU的刷写文件,所述目标ECU为待刷写的ECU;基于所述刷写文件,利用第一容器对象中进行检索,确定目标刷写会话,所述第一容器对象中包含刷写文件和刷写会话的对应关系;基于所述目标刷写会话创建刷写作业;执行所述刷写作业,对所述目标ECU进行数据刷写。本申请实施例从第一容器对象中检索刷写对应的目标刷写会话,因为第一容器对象中包含刷写文件和刷写会话的对应关系;利用容器对象进行检索的检索速度要高于在诊断数据包中检索刷写文件对应的目标刷写会话,缩短了创建刷写作业的等待时间过长,提升了用户体验。
Description
技术领域
本申请属于汽车技术领域,尤其涉及一种ECU刷写的方法、装置、电子设备及存储介质。
背景技术
电子控制单元(Electronic Control Unit,ECU)刷写又称ECU数据灌装。ECU数据刷写的基本原理是采用外部数据刷写工具通过ECU通信网络向ECU发送数据信息,实现ECU数据的管理和更新。
在ECU刷写的操作过程中,存在用户选择需要刷写的目标ECU后,刷写工具创建刷写作业(Job)的等待时间过长的问题,造成用户体验不佳。
发明内容
本申请实施例提供了一种ECU刷写的方法、装置、电子设备及存储介质,可以解决创建作业(Job)的等待时间过长的问题,提升用户体验。
第一方面,本申请实施例提供了一种ECU刷写的方法,包括:
获取目标ECU的刷写文件,所述目标ECU为待刷写的ECU;
基于所述刷写文件,利用第一容器对象中进行检索,确定目标刷写会话,所述第一容器对象中包含刷写文件和刷写会话的对应关系;
基于所述目标刷写会话创建刷写作业;
执行所述刷写作业,对所述目标ECU进行数据刷写。
可选的,所述刷写文件和刷写会话的对应关系为,刷写文件的关键字与刷写会话的对应关系;
所述基于所述刷写文件,利用第一容器对象中进行检索,确定目标刷写会话,包括:
提取所述刷写文件的关键字;
基于所述关键字,利用所述第一容器进行检索,确定所述目标刷写会话。
可选的,所述第一容器对象通过以下步骤获得:
获取目标数据包;
解析所述目标数据包,获取各个ECU的刷写文件和刷写会话对应关系;
基于所述对应关系生成所述第一容器对象。
可选的,获取各个ECU的刷写文件和刷写会话对应关系,包括:
针对每个ECU的每个刷写会话,解析所述刷写会话的短名称引用关系,确定所述刷写会话对应的关键字;所述关键字与刷写文件具有一一对应关系。
可选的,执行所述刷写作业,对所述目标ECU进行数据刷写,包括:
针对所述目标ECU的每个刷写文件,解析刷写文件获得刷写数据;
根据所述目标ECU的存储地址从高到低的顺序,将所述刷写数据分段进行刷写。
第二方面,本申请实施例提供了一种数据处理的方法,所述方法包括:
基于目标数据包生成目标容器对象;所述目标容器对象包含刷写文件和刷写会话的对应关系;所述目标容器对象用于确定目标ECU的刷写文件的对应的目标刷写会话;所述目标刷写会话用于创建刷写作业,对所述目标ECU进行数据刷写。
第三方面,本申请实施例提供了一种ECU刷写的装置,包括:
刷写文件获取模块,用于获取目标ECU的刷写文件,所述目标ECU为待刷写的ECU;
目标刷写会话确定模块,用于基于所述刷写文件,利用第一容器对象中进行检索,确定目标刷写会话,所述第一容器对象中包含刷写文件和刷写会话的对应关系;
刷写作业创建模块,用于基于所述目标刷写会话创建刷写作业;
ECU刷写模块,用于执行所述刷写作业,对所述目标ECU进行数据刷写。
可选的,所述刷写文件和刷写会话的对应关系为,刷写文件的关键字与刷写会话的对应关系;
目标刷写会话确定模块,包括:
关键字提取模块,用于提取所述刷写文件的关键字;
检索模块,用于基于所述关键字,利用所述第一容器进行检索,确定所述目标刷写会话。
可选的,所述ECU刷写的装置通过以下模块获得:
目标数据包获取模块,用于获取目标数据包;
对应关系获取模块,用于解析所述目标数据包,获取各个ECU的刷写文件和刷写会话对应关系;
第一容器对象生成模块,用于基于所述对应关系生成所述第一容器对象。
可选的,对应关系获取模块,具体用于:
针对每个ECU的每个刷写会话,解析所述刷写会话的短名称引用关系,确定所述刷写会话对应的关键字;所述关键字与刷写文件具有一一对应关系。
可选的,ECU刷写模块,包括:
刷写数据获取模块,用于针对所述目标ECU的每个刷写文件,解析刷写文件获得刷写数据;
分段刷写模块,用于根据所述目标ECU的存储地址从高到低的顺序,将所述刷写数据分段进行刷写。
第四方面,本申请实施例提供了一种数据处理的装置,包括:
目标容器对象生成模块,用于基于目标数据包生成目标容器对象;所述目标容器对象包含刷写文件和刷写会话的对应关系;所述目标容器对象用于确定目标ECU的刷写文件的对应的目标刷写会话;所述目标刷写会话用于创建刷写作业,对所述目标ECU进行数据刷写。
第五方面,本申请实施例提供了一种电子设备,包括:
存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述第一方面及其可选实施方式所述的方法步骤,和第二方面及其可选实施方式所述的方法步骤
第六方面,本申请实施例提供了一种计算机可读存储介质,包括:所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面及其可选实施方式所述的方法步骤,和第二方面及其可选实施方式所述的方法步骤
第七方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述第一方面及其可选实施方式所述的方法步骤,和第二方面及其可选实施方式所述的方法步骤
应理解,本申请实施例从第一容器对象中检索刷写对应的目标刷写会话,因为第一容器对象中包含刷写文件和刷写会话的对应关系;利用容器对象进行检索的检索速度要高于在诊断数据包中检索刷写文件对应的目标刷写会话,缩短了创建刷写作业的等待时间过长,提升了用户体验。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的ECU刷写系统示意图;
图2是本申请一实施例提供的ECU刷写的方法的流程示意图;
图3是本申请一实施例提供的ECU刷写的方法的流程示意图;
图4是本申请一实施例提供的数据处理的方法的流程示意图;
图5是本申请一实施例提供的ECU刷写的方法的流程示意图;
图6是本申请实施例提供的ECU刷写的装置的结构示意图;
图7是本申请实施例提供的数据处理的装置的结构示意图;
图8是本申请实施例提供的电子设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
在说明本申请实施例提供的ECU刷写的方法之前,为方便对本申请实施例的理解,下面结合图1对本申请实施例提供的ECU刷写的方法原理以及本申请实施例中涉及的相关概念进行说明。
容器(container),用于存放数据的类模板。可变长数组、链表、平衡二叉树等数据结构在STL中都被实现为容器。程序员使用容器时,即将容器类模板实例化为容器类时,会指明容器中存放的元素是什么类型的。容器中可以存放基本类型的变量,也可以存放对象。
map,计算机科学中的关联数组,是一个抽象的数据结构,它包含着类似于(键key,值value)的不重复有序对,按照键key排序,键是唯一的。例如map<string,int>MyObject2TypeMap,map中存储的是一系列pair<string,int>对象。
multimap和map的区别是multimap中的key可以重复,而map的key是唯一的。
开放式测试序列交换格式(Open Test sequence eXchange,OTX)是一种标准化的交换格式,在ISO 13209中进行了标准化,用于形式化描述自动化诊断序列,例如系统测试或指导性调试。
诊断序列基于XML,可以在具有不同平台和诊断测试器的流程合作伙伴之间交换。每当车外测试设备对具有诊断能力的汽车部件或功能进行诊断,测试,重新编程或初始化时,都会使用诊断测试序列。
诊断序列中的测试顺序定义了用户(即车间或装配线工作人员),诊断应用程序(测试设备)和车辆通信接口之间的交互顺序,以及必须执行的任何计算和决策。这些测试序列就像流程图中的一系列节点按照一定次序组成的流程。
开放式诊断数据交换格(Open diagnostic data exchange,ODX)是自动化及测量系统标准协会(Association for Standardisation of Automation and MeasuringSystems,ASAM)制定的标准架构诊断仪(MVCI,Modular Vehicle CommunicationInterface)所使用的数据文件。ODX是格式标准化的诊断文件,在诊断不同的车,或者不同的ECU时,只需要加载适配这个车型或ECU的ODX文件即可,而无需对诊断仪做任何改变。ODX统一了诊断文件的格式,所以诊断文件在研发、测试、生产、售后等部门中传递交换的时候,不需要进行格式转换。
电子控制单元(Electronic Control Unit,ECU)数据刷写又称ECU数据灌装。ECU刷写的基本原理是采用外部数据刷写工具通过ECU通信网络向ECU发送数据信息,实现ECU数据的管理和更新。
ECU刷写,又称为刷ECU、刷汽车电脑板,主要有三方面应用:一是发动机/汽车下线出厂时进行数据封装,二是汽车维修站进行ECU更新、维修,三是发动机改装应用。发动机ECU在软件设计时将程序和数据进行单独管理,在单片机的Flash物理空间中是分开的。ECU数据根据控制任务的不同性质,可分为多个数据区域,例如零部件信息配置区域、动力参数区、排放参数区、故障诊断区等。
在ECU进行数据刷写时,为避免对ECU进行破坏性拆装,多通过OBD接口,基于CAN通信协议(多为ISO15765)与ECU进行数据交互。ECU内部包含应用程序和可引导程序两个软件包,进而保证应用程序更新时不会崩溃。
包含EUC刷写数据和/或刷写程序的文件通常称为ECU刷写文件。
ECU在线刷写是基于开放式测试序列交换格式(Open Test sequence eXchange,OTX)的一种刷写方式。
目前,基于OTX标准的一般在线刷写流程是,汽车厂家将刷写流程涉及到的作业(Job)相关参数配置到OTX文件,将基于ODX标准配置好的汽车诊断数据包括所有ECU基本功能、特殊功能、动作测试、刷写功能以及实现好的刷写流程的JAR包,打包成PDX文件,上传到指定服务器。ECU刷写设备从汽车厂家服务器上在线获取汽车PDX源文件和刷写文件,对需要进行刷写的ECU进行刷写操作。
在ECU数据刷写的操作过程中,本申请的申请人发现,存在用户选择需要刷写的目标ECU后,刷写工具创建刷写作业(Job)的等待时间过长的问题,造成用户体验不佳。通过对ECU刷写流程的分析和研究,本申请的申请人发现,造成等待时间过长的问题的原因是,用户选择目标ECU开始刷写,需要创建Job(作业)。每一个刷写会话对应一个Job(作业),同时也对应一个刷写文件。
在创建每个刷写Job的时候,需要根据刷写文件在ODX诊断文件中查找对应的路径,进而获得匹配的刷写会话。每对一个ECU进行刷写,就需要重复一次这样的查找和匹配的过程。如此反复在ODX文件中查找,造成用户等待时长较长的结果。
图1示出的是本申请实施例提供的一种ECU刷写系统10。该系统10包括:刷写设备110,在线服务器120。
在一些实施例中,刷写设备110可以是车辆诊断设备,还可以是配置有ECU通信的接口的计算设备,例如膝上型电脑、掌上电脑或智能手机等设备。
在一些实施例中,在线服务器120可以是汽车厂商或刷写文件服务提供商用于存储诊断数据包和刷写文件。在线服务器120还可以是提供刷写交互服务的服务器。
在一些实施例中,刷写设备110与在线服务器120通过有线和/或无线通信网络通信。
图2示出了本申请实施例提供的ECU刷写的方法,应用于上述图1所示的ECU刷写系统10中的刷写设备110,可由所述刷写设备110的软件和/或硬件实现。如图2所示,该方法包括步骤S110至S140。各个步骤的具体实现原理如下:
S110,获取目标ECU的刷写文件,所述目标ECU为待刷写的ECU。
在一些实施例中,刷写设备在线获取目标ECU的刷写文件,在线(On-line)通常指电子设备处在网络连接状态。在本申请的实施例中,在线是指刷写设备110与在线服务器120通过网络连接通信的状态。
在一些实施例中,刷写文件可以是刷写文件包的形式,刷写文件包为包含一个或多个ECU刷写文件的文件包。
在一些实施例中,刷写设备在获取刷写文件的同时,还可以在线获取诊断数据包。诊断数据包为包含车辆诊断数据文件的文件包,诊断数据包可以是上述PDX文件包。该诊断数据包用于解析刷写文件和刷写会话的对应关系,生成第一容器对象。
S120,基于所述刷写文件,利用第一容器对象中进行检索,确定目标刷写会话,所述第一容器对象中包含刷写文件和刷写会话的对应关系。
在一些实施例中,所述刷写文件和刷写会话的对应关系可以为,刷写文件的关键字与刷写会话的对应关系。具体的,刷写文件的关键字可是诊断文件,例如ODX文件,中定义的与刷写文件对应的通配符。
在一些实施例中,第一容器对象可以是map类型的容器。具体的,第一容器对象可以是multimap类型的容器。
在一些具体的示例中,将刷写文件的关键字作为第一容器对象的键key,指向会话的指针作为第一容器对象的值value。例如,multimap<string,otxFlashSession*>mmFlashFileKeyWord2Session。
在一些实施例中,第一容器对象可以是刷写设备生成的,也可以是从在线服务器获取的,还可以是从第三方设备获取的。第三方设备可以是提供第一容器的服务商提供的在线连接设备,还可以是一种存储设备,该存储设备用于存储第一容器对象。具体第一容器的生成方法,可以参考下述实施例。
在一些实施例中,基于所述刷写文件,利用第一容器对象中进行检索,确定目标刷写会话,可以是基于刷写文件的文件名中的关键字,利用所述第一容器进行检索,确定所述目标刷写会话。具体的,关键字可以是刷写文件通配符。
例如,一刷写文件的文件名为“123ASW0123.bin”,第一容器对象中的包含关键字(通配符)和刷写会话的对应关系,利用刷写文件在容器对象中查找文件名匹配的关键字,找到配符“*ASW0*.*”,此通配符对应的刷写会话即为刷写文件“123ASW0123.bin”对应的刷写会话。
S130,基于所述目标刷写会话创建刷写作业。
在一些实施例中,刷写作业又称Job,是执行刷写任务的宏,或者说命令组合。刷写设备根据所述刷写会话描述列表创建刷写作业,对所述目标ECU进行刷写。
在一个具体的示例中,循环遍历刷写会话描述,获取各个ECU具体的刷写会话,创建刷写Job。具体的,先刷驱动,再刷应用。根据ODX文件排序,其顺序是:预刷写,刷写,写后Job。
S140,执行所述刷写作业,对所述目标ECU进行数据刷写。
在一些实施例中,刷写文件中包含刷写数据和刷写文件的描述信息。刷写设备通过解析刷写文件的描述信息,提取出刷写文件中包含的刷写数据。刷写设备将刷写数据按Job的流程刷写目标ECU.
在一些具体的示例中,执行所述刷写作业,对所述目标ECU进行数据刷写,包括:针对所述目标ECU的每个刷写文件,解析刷写文件获得刷写数据;根据所述目标ECU的存储地址从高到低的顺序,将所述刷写数据分段进行刷写。
目标ECU的<ECU-MEM>对象中的<PHYS-MEMS>节点下包含的<PHYS-SEGMENT>节点,用于描述ECU物理内存的地址排列,例如ECU内存实际的FlashDriver段、Code段、DataA段、DataB段的物理起始地址分别是多少。
在刷写时,刷写设备根据<PHYS-SEGMENT>节点的描述,将刷写数据从目标ECU的存储地址从高到低的顺序,将所述刷写数据分段进行刷写。
在对一些车辆的进行ECU刷写时,会出现刷写失败的情况。在对失败的原因进行研究和分析后,本申请的申请人发现,这些进行ECU刷写失败的原因是其写入ECU刷写数据的顺序没有得到控制。因此,本申请针对这一问题,增加了ECU刷写数据的顺序控制流程,提高了刷写成功率。
应理解,本申请的申请人发现,造成等待时间过长的问题的原因是,用户选择目标ECU开始刷写,需要创建Job(作业)。每一个刷写会话对应一个Job(作业),同时也对应一个刷写文件。在创建每个刷写Job的时候,需要根据刷写文件查找对应的路径,进而获得匹配的刷写会话。每对一个ECU进行刷写,就需要重复一次这样的查找和匹配的过程。如此反复在ODX文件中查找,造成用户等待时长较长的结果。
由此,本申请实施例中,预先将刷写文件和刷写会话之间的对应关系保存在第一容器对象中。这样,在第一容器对象中检索刷写对应的目标刷写会话,因为第一容器对象中包含刷写文件和刷写会话的对应关系;利用容器对象进行检索的检索速度要高于在诊断数据包中检索刷写文件对应的目标刷写会话,缩短了创建刷写作业的等待时间过长,提高了响应速度,提升了用户体验。
还应理解,使用map作为第一容器,将刷写文件的关键字作为第一容器对象的键key,指向会话的指针作为第一容器对象的值value。由于map检索采用的是平衡二叉树检索,因此,其检索速度会进一步的提高。
也行理解,使用multimap类型的容器,由于其可以使用重复键值,因此,可以应用在关键字,如通配符,会出现重复的场景中。
在上述图2所示的ECU刷写的方法的实施例的基础上,所述第一容器对象通过以下步骤S310至S330获得,如图3所示,包括:
S310,获取目标数据包。
在一些实施例中,目标数据包可以是包含描述ECU的刷写会话的数据交换数据,例如XML数据、JSON数据等数据。具体可以是基于ODX协议的诊断数据。
在一些实施例中,获取目标数据包可以是,从在线服务器获取诊断数据包,诊断数据包为包含车辆诊断数据文件的文件包,车辆诊断数据文件可以是ODX协议的车辆诊断数据描述文件。
在一些具体的示例中,诊断数据包可以是包含一个或多个ODX文件的PDX文件包。
S320,解析所述目标数据包,获取各个ECU的刷写文件和刷写会话对应关系。
在一些实施例中,获取各个ECU的刷写文件和刷写会话对应关系,包括:针对每个ECU的每个刷写会话,解析所述刷写会话的短名称引用关系,确定所述刷写会话对应的关键字;所述关键字与刷写文件具有一一对应关系。
ODX数据中针对ECU的定义了一个用于开发、工厂和客户之间传输的刷写数据节点<ECU-MEM>。
<ECU-MEM>聚合了2个主要的子节点:<MEMs>和<PHYS-MEMs>。
<MEM>又聚合了3个子节点:<SESSIONS>,<DATABLOCKS>和<FLASHDATAS>。
<MEM>的3个子节点对应关系如下:每个Session就是一次刷写会话,一个Session会索引到一个或多个数据块(DataBlocks),一个DataBlock又会索引到一个闪存数据(FlashData),其中FlashData对象包含刷写文件的通配符。
解析所述诊断数据包,通过上述<ECU-MEM>节点间索引(引用)关系,可以获得目标ECU的目标会话对应的通配符。由于通配符是刷写文件的匹配条件。建立刷写会话与通配符的对应关系,就相当于是建立了建立刷写会话与刷写文件的对应关系。
S330,基于所述对应关系生成所述第一容器对象。
在一些实施例中,第一容器对象可以是map类型的容器。具体的,第一容器对象可以是multimap类型的容器。
在一些具体的示例中,基于所述对应关系生成所述第一容器对象,包括:使用map作为第一容器,将刷写文件的关键字作为第一容器对象的键key,指向会话的指针作为第一容器对象的值value。
需要指出的是,执行图3所示是实施例各个步骤的执行主体,可以是上述刷写设备,也可以是上述在线服务器,还可以是第三方设备。第三方设备可以是提供第一容器的服务商提供的在线连接设备,还可以是一种存储设备,该存储设备用于存储第一容器对象。
在一些实施例中,执行图3所示是实施例各个步骤的执行主体为上述刷写设备。
在刷写设备中定义了ECU和ECU-MEM两个类,在两个类中分别定义一个multimap<string,otxFlashSession*>mmFlashFileKeyWord2Session容器对象。其中,ECU-MEM类用于解析ODX数据,ECU类用于执行对ECU的刷写操作。
在解析诊断数据环节,直接将刷写会话及其关联到的刷写块中引用到的刷写文件模糊匹配的关键字,模糊匹配的关键字即为通配符,建立关联存储至ECU-MEM的multimap容器对象中。
在解析完ECU诊断数据后,将ECU-MEM对象中的multimap容器对象转移到ECU对象中的multimap容器对象。具体的,可在响应用户选择目标ECU操作时,将ECU-MEM对象中的multimap容器对象转移到ECU对象中的multimap容器对象,并在刷写目标ECU后销毁ECU对象中的multimap容器对象,以便将用户数据与底层数据进行隔离。
在一些实施例中,执行图3所示是实施例各个步骤的执行主体为上述在线服务器或第三方设备。此种情况下,刷写设备在线获取刷写文件包的同时,也从在线服务器或第三方设备获取第一容器对象。在是使用该第一容器对象时,也可以将第一容器对象转移到ECU对象中的multimap容器对象,并在刷写目标ECU后销毁ECU对象中的multimap容器对象,以便将用户数据与底层数据进行隔离。
本申请实施例提供一种数据处理的设备,该数据处理设备可以是上述刷写设备,也可以是上述在线服务器,还可以是第三方设备。所述第三方设备可以是具备数据处理功能的计算机。图4示出了本申请实施例提供的数据处理的方法,应用于上述的数据处理的设备,可由所述数据处理的设备的软件和/或硬件实现。如图4所示,该方法包括步骤S410。各个步骤的具体实现原理如下:
S410,基于目标数据包生成目标容器对象;所述目标容器对象包含刷写文件和刷写会话的对应关系;所述目标容器对象用于确定目标ECU的刷写文件的对应的目标刷写会话;所述目标刷写会话用于创建刷写作业,对所述目标ECU进行数据刷写。
在一些实施例中,基于目标数据包生成目标容器对象,包括,获取目标数据包;解析所述目标数据包,获取各个ECU的刷写文件和刷写会话对应关系;基于所述对应关系生成所述目标容器对象。
在一些实施例中,获取各个ECU的刷写文件和刷写会话对应关系,包括:针对每个ECU的每个刷写会话,解析所述刷写会话的短名称引用关系,确定所述刷写会话对应的关键字;所述关键字与刷写文件具有一一对应关系。
图4所示实施例的具体实施方式可参考上述图3所示的实施例。
可以理解的是,上述各个示例可以合逻辑的组合和增减。作为示例而非限定,本申请提供一个具体的示例,以便更好的理解本申请实施例的实现方式。
如图5所示:
第一步,扩展ECU和ECU-MEM两个类中的ODX数据类型,分别在两个类中定义multimap容器对象。
第二步,连接车厂服务器,在线获取车厂提供的PDX文件包和刷写文件包。
第三步,解析PDX文件包,获取ECU列表。
第四步,解析刷写诊断数据。
第五步,将刷写文件模糊匹配的关键字跟刷写会话建立关联,存储至ECU-MEM的multimap容器对象。刷写文件模糊匹配的关键字为刷写文件通配符。
第六步,ECU-MEM的multimap容器对象转移到ECU对象的multimap容器对象。
第七步,提取在线获取的ECU刷写文件的关键字,即通配符。
第八步,从multimap容器对象中检索出刷写文件对应的刷写会话。
第九步,为刷写会话创建刷写Job。
第十步,执行刷写作业,解析刷写文件获得刷写数据。
第十一步,根据目标ECU的存储地址从高到低的顺序,将刷写数据分段,
第十二步,逐个文件对所选ECU进行分段刷写。
应理解,由于在解析刷写诊断数据时,就将刷写文件模糊匹配的关键字跟刷写会话建立关联,存储至ECU-MEM的multimap容器对象。使得在为刷写会话创建刷写Job不需要在包含诊断数据ODX文件中查找刷写文件模糊匹配的关键字对应刷写会话,只需要在ECU对象的multimap容器对象中就可以快速匹配到对应的刷写会话,从而提高了响应速度,提升了用户体验。
对应于上述图2所示的ECU刷写的方法,图6示出的是本申请实施例提供的一种ECU刷写的装置M100,包括:
刷写文件获取模块M110,用于获取目标ECU的刷写文件,所述目标ECU为待刷写的ECU;
目标刷写会话确定模块M120,用于基于所述刷写文件,利用第一容器对象中进行检索,确定目标刷写会话,所述第一容器对象中包含刷写文件和刷写会话的对应关系;
刷写作业创建模块M130,用于基于所述目标刷写会话创建刷写作业;
ECU刷写模块M140,用于执行所述刷写作业,对所述目标ECU进行数据刷写。
可选的,所述刷写文件和刷写会话的对应关系为,刷写文件的关键字与刷写会话的对应关系;
目标刷写会话确定模块,包括:
关键字提取模块,用于提取所述刷写文件的关键字;
检索模块,用于基于所述关键字,利用所述第一容器进行检索,确定所述目标刷写会话。
可选的,所述ECU刷写的装置通过以下模块获得:
目标数据包获取模块,用于获取目标数据包;
对应关系获取模块,用于解析所述目标数据包,获取各个ECU的刷写文件和刷写会话对应关系;
第一容器对象生成模块,用于基于所述对应关系生成所述第一容器对象。
可选的,对应关系获取模块,具体用于:针对每个ECU的每个刷写会话,解析所述刷写会话的短名称引用关系,确定所述刷写会话对应的关键字;所述关键字与刷写文件具有一一对应关系。
可选的,ECU刷写模块,包括:
刷写数据获取模块,用于针对所述目标ECU的每个刷写文件,解析刷写文件获得刷写数据;
分段刷写模块,用于根据所述目标ECU的存储地址从高到低的顺序,将所述刷写数据分段进行刷写。
可以理解的是,以上实施例中的各种实施方式和实施方式组合及其有益效果同样适用于本实施例,这里不再赘述。
对应于上述图4所示的数据处理的方法,图7示出的是本申请实施例提供的一种数据处理的装置M200,包括:
目标容器对象生成模块M210,用于基于目标数据包生成目标容器对象;所述目标容器对象包含刷写文件和刷写会话的对应关系;所述目标容器对象用于确定目标ECU的刷写文件的对应的目标刷写会话;所述目标刷写会话用于创建刷写作业,对所述目标ECU进行数据刷写。
可以理解的是,以上实施例中的各种实施方式和实施方式组合及其有益效果同样适用于本实施例,这里不再赘述。
图8为本申请一实施例提供的电子设备的结构示意图。该电子设备用于实现上述示例中的刷写设备,或上述示例中的数据处理设备。如图8所示,该实施例的电子设备D10包括:至少一个处理器D100(图8中仅示出一个)处理器、存储器D101以及存储在所述存储器D101中并可在所述至少一个处理器D100上运行的计算机程序D102,所述处理器D100执行所述计算机程序D102时实现上述任意各个方法实施例中的步骤。
在一些实施例中,所述处理器D100执行所述计算机程序D102时,实现以下步骤:获取目标ECU的刷写文件,所述目标ECU为待刷写的ECU;基于所述刷写文件,利用第一容器对象中进行检索,确定目标刷写会话,所述第一容器对象中包含刷写文件和刷写会话的对应关系;基于所述目标刷写会话创建刷写作业;执行所述刷写作业,对所述目标ECU进行数据刷写。
可选的,所述刷写文件和刷写会话的对应关系为,刷写文件的关键字与刷写会话的对应关系;所述处理器D100执行所述计算机程序D102时,实现所述基于所述刷写文件,利用第一容器对象中进行检索,确定目标刷写会话,具体实现:提取所述刷写文件的关键字;基于所述关键字,利用所述第一容器进行检索,确定所述目标刷写会话。
可选的,所述处理器D100执行所述计算机程序D102时,实现获得所述第一容器对象的步骤,具体包括:获取目标数据包;解析所述目标数据包,获取各个ECU的刷写文件和刷写会话对应关系;基于所述对应关系生成所述第一容器对象。
可选的,所述处理器D100执行所述计算机程序D102时实现获取各个ECU的刷写文件和刷写会话对应关系的步骤,具体实现以下步骤:针对每个ECU的每个刷写会话,解析所述刷写会话的短名称引用关系,确定所述刷写会话对应的关键字;所述关键字与刷写文件具有一一对应关系。
可选的,所述处理器D100执行所述计算机程序D102时实现执行所述刷写作业,对所述目标ECU进行数据刷写的步骤,具体实现以下步骤:针对所述目标ECU的每个刷写文件,解析刷写文件获得刷写数据;根据所述目标ECU的存储地址从高到低的顺序,将所述刷写数据分段进行刷写。
在一些实施例中,所述处理器D100执行所述计算机程序D102时,实现以下步骤:
基于目标数据包生成目标容器对象;所述目标容器对象包含刷写文件和刷写会话的对应关系;所述目标容器对象用于确定目标ECU的刷写文件的对应的目标刷写会话;所述目标刷写会话用于创建刷写作业,对所述目标ECU进行数据刷写。
所述电子设备D10可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该电子设备可包括,但不仅限于,处理器D100、存储器D101。本领域技术人员可以理解,图8仅仅是电子设备D10的举例,并不构成对电子设备D10的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所称处理器D100可以是中央处理单元(Central Processing Unit,CPU),该处理器D100还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器D101在一些实施例中可以是所述电子设备D10的内部存储单元,例如电子设备D10的硬盘或内存。所述存储器D101在另一些实施例中也可以是所述电子设备D10的外部存储设备,例如所述电子设备D10上配备的插接式硬盘,智能存储卡(Smart MediaCard,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器D101还可以既包括所述电子设备D10的内部存储单元也包括外部存储设备。所述存储器D101用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器D101还可以用于暂时地存储已经输出或者将要输出的数据。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行时可实现上述各个方法实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种ECU刷写的方法,其特征在于,包括:
获取目标ECU的刷写文件,所述目标ECU为待刷写的ECU;
基于所述刷写文件,利用第一容器对象中进行检索,确定目标刷写会话,所述第一容器对象中包含刷写文件和刷写会话的对应关系;
基于所述目标刷写会话创建刷写作业;
执行所述刷写作业,对所述目标ECU进行数据刷写。
2.如权利要求1所述的方法,其特征在于,所述刷写文件和刷写会话的对应关系为,刷写文件的关键字与刷写会话的对应关系;
所述基于所述刷写文件,利用第一容器对象中进行检索,确定目标刷写会话,包括:
提取所述刷写文件的关键字;
基于所述关键字,利用所述第一容器进行检索,确定所述目标刷写会话。
3.如权利要求1所述的方法,其特征在于,所述第一容器对象通过以下步骤获得:
获取目标数据包;
解析所述目标数据包,获取各个ECU的刷写文件和刷写会话对应关系;
基于所述对应关系生成所述第一容器对象。
4.如权利要求3所述的方法,其特征在于,获取各个ECU的刷写文件和刷写会话对应关系,包括:
针对每个ECU的每个刷写会话,解析所述刷写会话的短名称引用关系,确定所述刷写会话对应的关键字;所述关键字与刷写文件具有一一对应关系。
5.如权利要求1所述的方法,其特征在于,执行所述刷写作业,对所述目标ECU进行数据刷写,包括:
针对所述目标ECU的每个刷写文件,解析刷写文件获得刷写数据;
根据所述目标ECU的存储地址从高到低的顺序,将所述刷写数据分段进行刷写。
6.一种数据处理的方法,其特征在于,所述方法包括:
基于目标数据包生成目标容器对象;所述目标容器对象包含刷写文件和刷写会话的对应关系;所述目标容器对象用于确定目标ECU的刷写文件的对应的目标刷写会话;所述目标刷写会话用于创建刷写作业,对所述目标ECU进行数据刷写。
7.一种ECU刷写的装置,其特征在于,包括:
刷写文件获取模块,用于获取目标ECU的刷写文件,所述目标ECU为待刷写的ECU;
目标刷写会话确定模块,用于基于所述刷写文件,利用第一容器对象中进行检索,确定目标刷写会话,所述第一容器对象中包含刷写文件和刷写会话的对应关系;
刷写作业创建模块,用于基于所述目标刷写会话创建刷写作业;
ECU刷写模块,用于执行所述刷写作业,对所述目标ECU进行数据刷写。
8.一种数据处理的装置,其特征在于,包括:
目标容器对象生成模块,用于基于目标数据包生成目标容器对象;所述目标容器对象包含刷写文件和刷写会话的对应关系;所述目标容器对象用于确定目标ECU的刷写文件的对应的目标刷写会话;所述目标刷写会话用于创建刷写作业,对所述目标ECU进行数据刷写。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并能够在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项,或权利要求6所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项,或权利要求6所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111636741.5A CN114326674A (zh) | 2021-12-29 | 2021-12-29 | Ecu刷写的方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111636741.5A CN114326674A (zh) | 2021-12-29 | 2021-12-29 | Ecu刷写的方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114326674A true CN114326674A (zh) | 2022-04-12 |
Family
ID=81017591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111636741.5A Pending CN114326674A (zh) | 2021-12-29 | 2021-12-29 | Ecu刷写的方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114326674A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010143686A1 (ja) * | 2009-06-12 | 2010-12-16 | ルネサスエレクトロニクス株式会社 | 自動車用制御システム及び電子制御ユニット |
CN110515373A (zh) * | 2019-09-29 | 2019-11-29 | 潍柴动力股份有限公司 | Ecu数据刷写的方法及装置 |
CN113312322A (zh) * | 2021-04-21 | 2021-08-27 | 厦门芯泰达集成电路有限公司 | Stdf文件的读写方法、介质、设备及装置 |
CN113625683A (zh) * | 2021-07-23 | 2021-11-09 | 深圳市元征未来汽车技术有限公司 | 车辆诊断方法、装置、电子设备及存储介质 |
-
2021
- 2021-12-29 CN CN202111636741.5A patent/CN114326674A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010143686A1 (ja) * | 2009-06-12 | 2010-12-16 | ルネサスエレクトロニクス株式会社 | 自動車用制御システム及び電子制御ユニット |
CN110515373A (zh) * | 2019-09-29 | 2019-11-29 | 潍柴动力股份有限公司 | Ecu数据刷写的方法及装置 |
CN113312322A (zh) * | 2021-04-21 | 2021-08-27 | 厦门芯泰达集成电路有限公司 | Stdf文件的读写方法、介质、设备及装置 |
CN113625683A (zh) * | 2021-07-23 | 2021-11-09 | 深圳市元征未来汽车技术有限公司 | 车辆诊断方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
周洋: "发动机标定数据管理系统开发", 《中国优秀硕士学位论文全文数据库信息科技辑(月刊)》, no. 2, pages 53 - 72 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110515366B (zh) | 一种故障诊断方法及装置 | |
CN113127338A (zh) | 一种固件测试方法、服务器及计算机可读存储介质 | |
CN110554958B (zh) | 图数据库测试方法、系统、设备和存储介质 | |
US8161449B2 (en) | Improving test pattern coverage through parallel discard, flow control, and quality metrics | |
CN111813095A (zh) | 一种车辆诊断方法、装置及介质 | |
US10990510B2 (en) | Associating attribute seeds of regression test cases with breakpoint value-based fingerprints | |
CN108984393A (zh) | 一种单元测试代码自动生成方法及装置 | |
CN112948233A (zh) | 一种接口测试方法、装置、终端设备及介质 | |
Radlak et al. | Organization of machine learning based product development as per ISO 26262 and ISO/PAS 21448 | |
CN113835729A (zh) | 升级方法、装置、终端设备及计算机可读存储介质 | |
CN103888460B (zh) | 基于状态空间搜索的控制器局域网协议验证方法 | |
CN114488997B (zh) | Ecu刷写的方法、装置、电子设备及存储介质 | |
CN112255548B (zh) | 电池管理系统测试方法及其系统 | |
CN114326674A (zh) | Ecu刷写的方法、装置、电子设备及存储介质 | |
CN114329090A (zh) | 路径寻参的方法、装置、电子设备及存储介质 | |
CN108763127B (zh) | 源数据与目标数据相互转换的Modbus适配器的实现方法 | |
CN115840707A (zh) | 一种刷写测试方法、装置及介质 | |
CN114879630A (zh) | 车辆故障诊断方法、装置、设备及可读存储介质 | |
CN114625106A (zh) | 车辆诊断的方法、装置、电子设备及存储介质 | |
CN110177006B (zh) | 基于接口预测模型的节点测试方法及装置 | |
Shaout et al. | Automotive embedded systems-model based approach review. | |
CN114356685A (zh) | 路径寻参的方法、装置、电子设备及存储介质 | |
CN112445797B (zh) | 车辆诊断数据引用方法、装置、终端设备及存储介质 | |
CN112306032A (zh) | 一种汽车开放系统的一致性测试方法、装置及系统 | |
CN112104766B (zh) | 诊断协议重构方法、装置、终端设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |