CN114625393A - 电子控制单元的刷写方法、装置、设备以及存储介质 - Google Patents

电子控制单元的刷写方法、装置、设备以及存储介质 Download PDF

Info

Publication number
CN114625393A
CN114625393A CN202210166151.9A CN202210166151A CN114625393A CN 114625393 A CN114625393 A CN 114625393A CN 202210166151 A CN202210166151 A CN 202210166151A CN 114625393 A CN114625393 A CN 114625393A
Authority
CN
China
Prior art keywords
target ecu
data
uds
ecu
command
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.)
Granted
Application number
CN202210166151.9A
Other languages
English (en)
Other versions
CN114625393B (zh
Inventor
江芳庆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apollo Intelligent Technology Beijing Co Ltd
Original Assignee
Apollo Intelligent Technology Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Apollo Intelligent Technology Beijing Co Ltd filed Critical Apollo Intelligent Technology Beijing Co Ltd
Priority to CN202210166151.9A priority Critical patent/CN114625393B/zh
Publication of CN114625393A publication Critical patent/CN114625393A/zh
Application granted granted Critical
Publication of CN114625393B publication Critical patent/CN114625393B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本公开提供了一种电子控制单元的刷写方法,涉及计算机技术领域,尤其涉及车辆控制、自动驾驶领域。具体实现方案为:解析目标电子控制单元ECU的配置文件得到目标ECU的配置信息;根据目标ECU的配置信息,获取目标ECU的刷写流程;按照目标ECU的刷写流程,对目标ECU进行刷写。根据本公开实施例,能够利用目标ECU的配置信息对目标ECU采用合适的刷写流程进行刷写。

Description

电子控制单元的刷写方法、装置、设备以及存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及车辆控制、自动驾驶领域。
背景技术
OTA(Over-the-Air Technology,空中下载技术)管理器(Master),在刷写整车电子控制单元(ECU)时,只能在程序中固定好某种刷写方式。如果ECU的刷写方式发生改变或者主机厂变更,需要重新修改代码编译发版。
发明内容
本公开提供了一种电子控制单元的刷写方法、装置、设备以及存储介质。
根据本公开的一方面,提供了一种电子控制单元的刷写方法,包括:
解析目标电子控制单元(ECU)的配置文件得到目标ECU的配置信息;
根据目标ECU的配置信息,获取目标ECU的刷写流程;
按照目标ECU的刷写流程,对目标ECU进行刷写。
根据本公开的另一方面,提供了一种电子控制单元的刷写装置,包括:
第一解析模块,用于解析目标ECU的配置文件得到目标ECU的配置信息;
获取模块,用于根据目标ECU的配置信息,获取目标ECU的刷写流程;
刷写模块,用于按照目标ECU的刷写流程,对目标ECU进行刷写。
根据本公开的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与该至少一个处理器通信连接的存储器;其中,
该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行本公开中任一实施例的方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,该计算机指令用于使该计算机执行根据本公开中任一实施例的方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现根据本公开中任一实施例的方法。
根据本公开实施例,能够利用目标ECU的配置信息对目标ECU采用合适的刷写流程进行刷写。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开一实施例的电子控制单元的刷写方法的流程示意图;
图2是根据本公开另一实施例的电子控制单元的刷写方法的流程示意图;
图3是根据本公开另一实施例的电子控制单元的刷写方法的流程示意图;
图4是根据本公开另一实施例的电子控制单元的刷写方法的流程示意图;
图5是根据本公开另一实施例的电子控制单元的刷写方法的流程示意图;
图6是根据本公开另一实施例的电子控制单元的刷写方法的流程示意图;
图7是根据本公开一实施例的电子控制单元的刷写装置的结构示意图;
图8是根据本公开另一实施例的电子控制单元的刷写装置的结构示意图;
图9是根据本公开另一实施例的电子控制单元的刷写装置的结构示意图;
图10是根据本公开另一实施例的电子控制单元的刷写装置的结构示意图;
图11是用于刷写整车ECU的OTA管理器框架的结构示意图;
图12是ECU升级流程的示意图;
图13是可以用来实施本公开的实施例的示例电子设备的示意性框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本公开一实施例的电子控制单元的刷写方法的流程示意图,包括:
S101、解析目标电子控制单元ECU的配置文件得到该目标ECU的配置信息;
S102、根据该目标ECU的配置信息,获取该目标ECU的刷写流程;
S103、按照该目标ECU的刷写流程,对该目标ECU进行刷写。
在本公开实施例中,每个ECU可以具有对应的配置文件。ECU的配置文件中可以包括该ECU实现刷写所需的基本的配置信息。需要进行刷写的ECU可以称为目标ECU。刷写也可以称为数据刷写。在对目标ECU进行刷写的过程中,可以通过通信网络例如CAN(ControllerArea Network,控制器局域网络)总线或以太网等,向目标ECU发送数据,实现目标ECU数据的管理和更新。例如,在OTA管理器(Master)中可以设置配置文件解析模块,解析目标ECU的配置文件可以得到该目标ECU的各种配置信息,例如逻辑地址、IP地址、ECU类型、通信方式等,解析完配置文件得到的结果可以供OTA管理器的其他模块使用。再如,在OTA管理器中可以设置刷写流程控制模块,根据目标ECU的配置信息获取该目标ECU的刷写流程后,可以按照目标ECU的刷写流程,控制目标ECU和OTA管理器之间的刷写命令。
在本公开实施例中,能够利用目标ECU的配置信息对目标ECU采用合适的刷写流程进行刷写。例如,与需要重新编写代码的方式相比,本公开实施例的方案仅需要修改配置文件中配置信息即可实现对不同ECU的刷写。
图2是根据本公开另一实施例的电子控制单元的刷写方法的流程示意图,该实施例的方法包括上述电子控制单元的刷写方法实施例的一个或多个特征。在一种可能的实施方式中,该目标ECU的配置信息包括该目标ECU的类型,其中,S102根据该目标ECU的配置信息,获取该目标ECU的刷写流程,包括:S201、获取与该目标ECU的类型对应的目标ECU的刷写流程。
在本公开实施例中,ECU的类型可以包括多种,例如,MCU(Microcontroller Unit,微控制单元)类型的ECU、带文件系统的ECU以及支持AB分区的ECU等。不同类型的ECU的刷写流程可能不同。例如,MCU类型的ECU可以先擦再写。再如,带文件系统的ECU的处理器较大,可以采用特定命令进行刷写。再如,支持AB分区的ECU,可以将升级包的数据写入ECU的B分区。在解析目标ECU的配置文件得到目标ECU的类型后,可以确定目标ECU的类型对应的目标ECU的刷写流程。例如,MCU类型的ECU对应的刷写流程为引导加载程序(Bootloader),带文件系统的ECU对应的刷写流程为MCU上的引导加载程序(bootloaderOnMPU),支持AB分区的ECU对应的刷写流程为AB交换(ABSwap)。如果目标ECU的类型为带文件系统的ECU,则目标ECU的刷写流程为引导加载程序(Bootloader)。
在本公开实施例中,可以支持对不同类型的目标ECU进行刷写,有利于快速添加不同类型的目标ECU。
图3是根据本公开另一实施例的电子控制单元的刷写方法的流程示意图,该实施例的方法包括上述电子控制单元的刷写方法实施例的一个或多个特征。在一种可能的实施方式中,该目标ECU的配置信息包括该目标ECU的通信方式,其中,S103按照该目标ECU的刷写流程,对该目标ECU进行刷写,包括:
S301、按照该目标ECU的刷写流程,并采用该目标ECU的通信方式与该目标ECU通信;
S302、在每次通信过程中,解析UDS(Unified diagnostic services,统一诊断服务)命令,直至该目标ECU的刷写流程结束。
在本公开实施例中,ECU的通信方式可以包括多种,例如:CAN、CANFD(CAN withFlexible Data-Rate,带灵活数据速率的CAN)、DoIP(Diagnostic communication overInternet Protocol,通过网络协议进行诊断通信)等。如果通信方式为CAN,刷写装置例如OTA管理器(Master)可以采用CAN协议与目标ECU通信,OTA管理器和目标ECU之间的交互的数据为CAN数据。如果通信方式为CANFD,刷写装置例如OTA管理器(Master)可以采用CANFD协议与目标ECU通信,OTA管理器和目标ECU之间的交互的数据为CAN数据。如果通信方式为DoIP,刷写装置例如OTA管理器(Master)可以采用DoIP与目标ECU通信,OTA管理器和目标ECU之间的交互的数据为以太网数据。在物理层,基于CAN或CANFD的CAN数据通过CAN总线收发,基于DoIP的以太网数据通过以太网收发。
在刷写过程中,OTA管理器(Master)与目标ECU通信,在每次通信过程中,需要解析UDS命令。UDS命令可以包括多种,例如UDS请求(request)、UDS确认(positive)、UDS否定(negative)等命令。可以根据目标ECU的主机厂提供的文件例如ODX.html解析UDS命令。
如果OTA管理器需要向目标ECU发送数据,可以将需要发送的数据携带在UDS请求中,并利用该UDS对应的通信协议对该UDS进行封装得到CAN数据或以太网数据。然后,OTA管理器再向目标ECU发送该CAN数据或以太网数据。OTA管理器可以先将该CAN数据或以太网数据发送至网关,再由网关发送给目标ECU。OTA管理器也可以直接将该CAN数据或以太网数据发送给目标ECU。
如果OTA管理器接收到来自网关或目标ECU的CAN数据或以太网数据,可以从该CAN数据或以太网数据中解析得到UDS数据。然后再解析该UDS数据以确定其中的UDS命令是UDS肯定命令还是UDS否定命令。如果是UDS肯定命令,可以表示该OTA管理器的UDS请求命令被成功执行。如果是UDS否定命令,可以表示该OTA管理器的UDS请求命令被拒绝执行。
例如,如果目标ECU是MCU类型的ECU,其刷写流程可以包括先擦再写等步骤。OTA管理器可以先向目标ECU发送擦除某段存储地址的UDS请求命令。目标ECU收到该UDS请求命令后,如果成功删除该段存储地址内存储的数据,可以向OTA管理器返回UDS确认命令;如果不能成功删除该段存储地址内存储的数据,可以向OTA管理器返回UDS否定命令。然后,OTA管理器可以先向目标ECU发送写入某段分数据的UDS请求命令。目标ECU收到该UDS请求命令后,如果成功写入这段数据,可以向OTA管理器返回UDS确认命令;如果不能成功写入这段数据,可以向OTA管理器返回UDS否定命令。如果需要写入多段数据,可以重复执行写入的步骤,直至将所有所需的数据写入目标ECU后,该目标ECU的刷写流程结束。
在本公开实施例中,可以按照该目标ECU的刷写流程和通信方式,在每次通信过程中,解析UDS命令,从而自动地完成对目标ECU刷写流程,能够适用于多种通信方式和多种类型ECU。
在一种可能的实施方式中,该方法还包括:解析升级包中的配置文件,得到升级包中的该第一数据。
在本公开实施例中,升级包可以包括目标ECU升级所需要的程序文件。解析升级包得到的第一数据,需要通过刷写流程添加到目标ECU中或者替换目标ECU中的部分或全部数据。例如,在OTA管理器中可以设置解析升级包模块,用于按照升级包中的配置文件来解析升级包,得到特定格式的比如Hex、S19或者其他自定义格式的第一数据。
在本公开实施例中,通过解析升级包中的配置文件,可以得到需要向ECU中写入的数据,能够实现快速升级,减少升级所需的人力物力。
在一种可能的实施方式中,如图4所示,在S302中,在每次通信过程中,解析UDS命令,包括:
S401、根据待发送的第一数据生成UDS命令;
S402、按照该目标ECU的通信方式对应的通信协议将该UDS命令打包,得到打包的数据;
S403、向该目标ECU发送该打包的数据。
例如,解析升级包得到第一数据后,需要将第一数据发送给目标ECU。OTA管理器可以根据第一数据生成UDS请求命令。如果第一数据的数据量较大,可以分段发送,每次生成一个UDS请求命令。接着,利用通信协议将UDS请求命令打包得到CAN数据或以太网数据。然后按照刷写流程向目标ECU发送(或通过网关向目标ECU发送)该打包的CAN数据或以太网数据。如果需要分段发送,可以多次发送携带UDS请求命令CAN数据或以太网数据。
在本公开实施例中,在发送数据的情况下,可以按照目标ECU的通信方式对应的通信协议将包括第一数据的UDS命令打包,再发送到打包的数据。这样,可以支持向目标ECU发送基于各种通信协议生成的数据,有利于适用于更加丰富的场景。
在一种可能的实施方式中,如图5所示,在S302中,在每次通信过程中,解析UDS命令,包括:
S501、接收来自于目标ECU的第二数据;
S502、按照该目标ECU的通信方式对应的通信协议对该第二数据进行解析;
S503、从解析结果中提取出UDS命令。
例如,OTA管理器从目标ECU或网关收到目标ECU的第二数据后,可以按照该目标ECU的通信方式对应的通信协议对该第二数据进行解析。收发数据使用的通信协议可以相同。例如,如果发送第一数据时采用了CAN协议,那么解析第二数据时也采用CAN协议。利用通信协议对该第二数据进行解析后,可以从解析结果中突起UDS命令。然后基于UDS命令的UDS数据部分,可以确定该UDS命令是UDS肯定命令还是UDS否定命令。
在本公开实施例中,在接收数据的情况下,可以按照目标ECU的通信方式对应的通信协议解析包括UDS命令的第二数据,从而提取出UDS命令。这样,可以支持从目标ECU接收基于各种通信协议生成的数据,以确定刷写结果是否成功,不仅有利于适用于更加丰富的场景,还可以获取刷写过程的动态。
在一种可能的实施方式中,该UDS命令包括UDS请求命令、UDS确认命令、UDS否定命令的至少之一。通过解析各种UDS命令可以控制执行目标ECU的刷写流程。例如,在OTA管理器中可以设置解析UDS命令模块,用于解析具体的UDS命令,包括请求(request)、确认(positive)、否定(negative)等命令。
图6是根据本公开另一实施例的电子控制单元的刷写方法的流程示意图,该实施例的方法包括上述电子控制单元的刷写方法实施例的一个或多个特征。
在一种可能的实施方式中,该方法还包括:
S601、向该目标ECU发送种子(seed)信息,该种子信息用于表示身份信息;
S602、接收与该种子信息对应的校验信息;
S603、按照第一算法对该校验信息进行计算得到第一键(key)信息;
S604、向该目标ECU发送该第一键信息,以在该目标ECU校验收到的该第一键信息与自身按照该第一算法计算的第二键信息是否一致。
在本公开实施例中,可以包括身份校验的流程。身份校验通过后再执行刷写流程。例如,在S102或S103之前,可以先执行S601。OTA管理器可以通过某个UDS命令例如UDS命令27向目标ECU发送种子(seed)信息。该种子信息可以表示该OTA管理器或操作者等的身份信息。目标ECU根据种子信息可以向OTA管理器返回几个字节例如4字节的校验信息。OTA管理器可以采用设定的第一算法对该校验信息进行计算,得到第一键信息(例如key1)。OTA管理器可以通过某个UDS命令例如UDS命令28将第一键信息发送给目标ECU。目标ECU也按照第一算法对发送给OTA管理器的校验信息进行计算得到第二键信息(key2)。目标ECU收到第一键信息后,可以比较收到的第一键信息和自己计算的第二键信息是否一致。如果一致,可以表示身份校验通过,可以开始进行后续的刷写流程。如果不一致,可以表示身份校验不同,不允许进行后续的刷写流程。可以重新进行身份校验,也可以认为刷写失败。在身份校验过程中,通过目标ECU的通信协议对OTA管理器与目标ECU之间交互的种子信息、校验信息、第一键信息、第二键信息等进行打包或解包。通过身份校验,能够保证刷写流程的安全性。
在一种可能的实施方式中,该方法还包括以下至少之一:
在向该目标ECU发送数据之后,请求该目标ECU返回CRC码,以进行CRC(CyclicRedundancy Check,循环冗余校验)校验;
在向该目标ECU发送数据之后,发送CRC码,以在该目标ECU中进行CRC校验。
在本公开实施例中,可以包括数据校验的流程。具体可以包括CRC校验的流程。
在一种方式中,可以在OTA管理器中进行CRC校验。例如,OTA管理器向该目标ECU发送数据,并可以请求目标ECU返回CRC码。在目标ECU中可以根据收到的数据计算CRC码,并将该CRC码返回OTA管理器。OTA管理器可以根据自己计算的CRC码与收到的CRC码进行比较。如果二者一致,可以表示CRC校验成功;如果二者不一致,可以表示CRC校验失败。
在另一种方式中,可以在目标ECU中进行CRC校验。例如,OTA管理器向该目标ECU发送数据,并可以向目标ECU发送该数据对应的CRC码。在目标ECU中可以根据收到的数据计算CRC码,并将自己计算的CRC码与收到的CRC码进行比较。如果二者一致,可以表示CRC校验成功;如果二者不一致,可以表示CRC校验失败。
在本公开实施例中,通过数据校验,能够保证刷写结果的准确性。
图7是根据本公开一实施例的电子控制单元的刷写装置的结构示意图,该装置包括:
第一解析模块701,用于解析目标电子控制单元ECU的配置文件得到该目标ECU的配置信息;
获取模块702,用于根据该目标ECU的配置信息,获取该目标ECU的刷写流程;
刷写模块703,用于按照该目标ECU的刷写流程,对该目标ECU进行刷写。
图8是根据本公开另一实施例的电子控制单元的刷写装置的结构示意图,该实施例的装置包括上述电子控制单元的刷写装置实施例的一个或多个特征。在一种可能的实施方式中,该目标ECU的配置信息包括该目标ECU的类型,该获取模块702用于获取与该目标ECU的类型对应的目标ECU的刷写流程。
在一种可能的实施方式中,该目标ECU的配置信息包括该目标ECU的通信方式,该刷写模块703,包括:
通信子模块801,用于按照该目标ECU的刷写流程,并采用该目标ECU的通信方式与该目标ECU通信;
解析子模块802,用于在每次通信过程中,解析统一诊断服务UDS命令,直至该目标ECU的刷写流程结束。
在一种可能的实施方式中,该解析子模块802,包括:
生成子模块8021,用于根据待发送的第一数据生成UDS命令;
打包子模块8022,用于按照该目标ECU的通信方式对应的通信协议将该UDS命令打包,得到打包的数据;
发送子模块8023,用于向该目标ECU发送该打包的数据。
在一种可能的实施方式中,该解析子模块802,包括:
接收子模块8024,用于接收来自于目标ECU的第二数据;
数据解析子模块8025,用于按照该目标ECU的通信方式对应的通信协议对该第二数据进行解析;
提取子模块8026,用于从解析结果中提取出UDS命令。
在一种可能的实施方式中,该UDS命令包括UDS请求命令、UDS确认命令、UDS否定命令的至少之一。
图9是根据本公开另一实施例的电子控制单元的刷写装置的结构示意图,该实施例的装置包括上述电子控制单元的刷写装置实施例的一个或多个特征。在一种可能的实施方式中,该装置还包括:
第二解析模块901,用于解析升级包中的配置文件,得到升级包中的该第一数据。
图10是根据本公开另一实施例的电子控制单元的刷写装置的结构示意图,该实施例的装置包括上述电子控制单元的刷写装置实施例的一个或多个特征。在一种可能的实施方式中,该装置还包括:
第一发送模块1001,用于向该目标ECU发送种子信息,该种子信息用于表示身份信息;
接收模块1002,用于接收与该种子信息对应的校验信息;
计算模块1003,用于按照第一算法对该校验信息进行计算得到第一键信息;
第二发送模块1004,用于向该目标ECU发送该第一键信息,以在该目标ECU校验收到的该第一键信息与自身按照该第一算法计算的第二键信息是否一致。
在一种可能的实施方式中,该装置还包括以下至少之一:
请求模块1005,用于在向该目标ECU发送数据之后,请求该目标ECU返回循环冗余校验CRC码,以进行CRC校验;
第三发送模块1006,用于在向该目标ECU发送数据之后,发送CRC码,以在该目标ECU中进行CRC校验。
本公开实施例的电子控制单元的刷写装置的各模块、子模块的具体功能和示例的描述,可以参见上述电子控制单元的刷写方法实施例中对应步骤的相关描述,在此不再赘述。
相关技术中,OTA管理器(Master)在刷写整车ECU时,不能针对升级包类型、通信方式、刷写时序等做动态适配。OTA Master在刷写目标ECU时,如果升级包类型、通信方式或刷写时序等变更,需要重新修改代码编译并发版。对于OTA管理器来说,无法在各个主机厂项目中用同一套方案。升级包类型、通信方式、刷写时序中的至少一种,每次变更都需要修改大量代码,耗时耗力,不利于OTA管理器项目中OTA模块的移植。此外,OTA管理器的整个升级模块划分不合理、耦合度高,所需投入的人力物力更大。
本公开实施例提供的ECU的刷写方法中,可以提出一种刷写ECU的模型,用于帮助OTA管理器(Master)划分各个功能模块,能够实现各种类型的ECU的动态适配。例如,该模型可以支持适配S19、HEX等多种格式的升级包解析,可适配升级对象包括MCU类型的ECU、带文件系统的ECU以及支持AB分区的ECU等。另外也可适配CAN、CANFD、DoIP等多种通信方式,各个功能模块均支持扩展。
该模型包括用于刷写整车ECU的OTA管理器(Master)框架。参见图11,该框架包括配置文件解析模块1101、刷写流程控制模块1102、收发数据模块1103、解析UDS命令模块1104、解析升级包模块1105、其他模块。各个模块可以相互独立且可扩展。因此,如果添加新的ECU,只要底层接口没有变化,则只需要修改配置文件即可,无需重新修改代码编译发版,降低了开发成本。该框架中各个模块功能介绍如下:
配置文件解析(ParseConfigFile)模块1101:该模块配置了ECU的各种信息,比如逻辑地址、IP地址、ECU类型、通信方式等,解析完配置文件例如Config.json的结果供后续模块使用。
刷写流程控制(ProcessFlashProgram)模块1102:该模块控制了整个刷写流程,主要是控制目标ECU和OTA Master之间的刷写命令。
收发数据模块1103:该模块主要负责将发送数据(SendData)和/或接收数据(ReceiveData)。比如收发数据模块将CAN数据或以太网数据发送给外部。收发的数据包括:基于CAN的UDS(UDSOnCAN)、基于CANFD的UDS(UDSOnCANFD)、基于DoIP的UDS(UDSOnDoIP)等。
解析UDS命令模块1104:该模块主要用于解析具体的UDS命令,包括request、positive、negative命令。例如,解析UDS命令模块根据主机厂提供的文件例如ODX.html,可以解析UDS请求命令(ParseUDSRequestComma nd)、解析UDS确定命令(ParseUDSPositiveCommand)、解析UDS否定命令(ParseUDSNegativeCommand)等。
解析升级包(ParseUpdatePackage)模块1105:该模块负责解析升级包,按照升级包中的配置文件来解析,比如Hex、S19或者其他自定义格式。
其他模块:比如用于27/28UDS命令的种子/键(seed/key)值计算接口、计算CRC(CalculateCRC)、计算签名(CalculateSignature)等其他小的功能模块。
刷写单个ECU升级流程大致如图12所示:
S1201、最初OTA Master收到升级某个ECU的指令。
S1202、然后OTA Master开始解析该ECU对应的配置文件例如Config.json得到配置信息。
S1203、随后OTA Master开始解析升级包,得到S19、Hex等各种格式的数据。
S1204、升级包解析完成后,开始初始化收发数据模块。初始化成功后按照该ECU对应的刷写流程开始通信。通信方式可以包括CAN、CANFD或DoIP等。
S1205、每次通信都需要解析UDS命令例如请求(request)、确认(positive)、否定(negative)等命令,直到整个刷写流程结束。
按照配置文件中配置的特定刷写流程发送数据/接收数据。例如,MCU类型的ECU的刷写流程为引导加载程序(Bootloader)、带文件系统的ECU的刷写流程为MCU上的引导加载程序(bootloaderOnMPU)、支持AB分区的ECU的刷写流程为AB交换(ABSwap)。
如果是发送数据,需要按相应的通信协议将UDS数据打包并发出;如果是接收数据,则需要按相应的通信协议将数据解析并提取出UDS数据部分。
按照该模型开发的OTA Master刷写框架,可以快速添加不同类型的目标ECU,且对于各个子模块均可适配、可扩展。为OTA Master刷写ECU开发节省了大量成本,且因为子模块耦合度极低,也有利于节省后期维护成本。
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图13示出了可以用来实施本公开的实施例的示例电子设备1300的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图13所示,设备1300包括计算单元1301,其可以根据存储在只读存储器(ROM)1302中的计算机程序或者从存储单元1308加载到随机访问存储器(RAM)1303中的计算机程序,来执行各种适当的动作和处理。在RAM1303中,还可存储设备1300操作所需的各种程序和数据。计算单元1301、ROM 1302以及RAM 1303通过总线1304彼此相连。输入/输出(I/O)接口1305也连接至总线1304。
设备1300中的多个部件连接至I/O接口1305,包括:输入单元1306,例如键盘、鼠标等;输出单元1307,例如各种类型的显示器、扬声器等;存储单元1308,例如磁盘、光盘等;以及通信单元1309,例如网卡、调制解调器、无线通信收发机等。通信单元1309允许设备1300通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1301可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1301的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1301执行上文所描述的各个方法和处理,例如电子控制单元的刷写方法。例如,在一些实施例中,电子控制单元的刷写方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1308。在一些实施例中,计算机程序的部分或者全部可以经由ROM1302和/或通信单元1309而被载入和/或安装到设备1300上。当计算机程序加载到RAM 1303并由计算单元1301执行时,可以执行上文描述的电子控制单元的刷写方法的一个或多个步骤。备选地,在其他实施例中,计算单元1301可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行电子控制单元的刷写方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (21)

1.一种电子控制单元的刷写方法,包括:
解析目标电子控制单元ECU的配置文件得到所述目标ECU的配置信息;
根据所述目标ECU的配置信息,获取所述目标ECU的刷写流程;
按照所述目标ECU的刷写流程,对所述目标ECU进行刷写。
2.根据权利要求1所述的方法,其中,所述目标ECU的配置信息包括所述目标ECU的类型,根据所述目标ECU的配置信息,获取所述目标ECU的刷写流程,包括:
获取与所述目标ECU的类型对应的目标ECU的刷写流程。
3.根据权利要求2所述的方法,其中,所述目标ECU的配置信息包括所述目标ECU的通信方式,按照所述目标ECU的刷写流程,对所述目标ECU进行刷写,包括:
按照所述目标ECU的刷写流程,并采用所述目标ECU的通信方式与所述目标ECU通信;
在每次通信过程中,解析统一诊断服务UDS命令,直至所述目标ECU的刷写流程结束。
4.根据权利要求3所述的方法,其中,在每次通信过程中,解析UDS命令,包括:
根据待发送的第一数据生成UDS命令;
按照所述目标ECU的通信方式对应的通信协议将所述UDS命令打包,得到打包的数据;
向所述目标ECU发送所述打包的数据。
5.根据权利要求3或4所述的方法,其中,在每次通信过程中,解析UDS命令,包括:
接收来自于目标ECU的第二数据;
按照所述目标ECU的通信方式对应的通信协议对所述第二数据进行解析;
从解析结果中提取出UDS命令。
6.根据权利要求4或5所述的方法,其中,所述UDS命令包括UDS请求命令、UDS确认命令、UDS否定命令的至少之一。
7.根据权利要求4所述的方法,还包括:
解析升级包中的配置文件,得到升级包中的所述第一数据。
8.根据权利要求1至7中任一项所述的方法,还包括:
向所述目标ECU发送种子信息,所述种子信息用于表示身份信息;
接收与所述种子信息对应的校验信息;
按照第一算法对所述校验信息进行计算得到第一键信息;
向所述目标ECU发送所述第一键信息,以在所述目标ECU校验收到的所述第一键信息与自身按照所述第一算法计算的第二键信息是否一致。
9.根据权利要求1至8中任一项所述的方法,还包括以下至少之一:
在向所述目标ECU发送数据之后,请求所述目标ECU返回循环冗余校验CRC码,以进行CRC校验;
在向所述目标ECU发送数据之后,发送CRC码,以在所述目标ECU中进行CRC校验。
10.一种电子控制单元的刷写装置,包括:
第一解析模块,用于解析目标电子控制单元ECU的配置文件得到所述目标ECU的配置信息;
获取模块,用于根据所述目标ECU的配置信息,获取所述目标ECU的刷写流程;
刷写模块,用于按照所述目标ECU的刷写流程,对所述目标ECU进行刷写。
11.根据权利要求10所述的装置,其中,所述目标ECU的配置信息包括所述目标ECU的类型,所述获取模块用于获取与所述目标ECU的类型对应的目标ECU的刷写流程。
12.根据权利要求11所述的装置,其中,所述目标ECU的配置信息包括所述目标ECU的通信方式,所述刷写模块,包括:
通信子模块,用于按照所述目标ECU的刷写流程,并采用所述目标ECU的通信方式与所述目标ECU通信;
解析子模块,用于在每次通信过程中,解析统一诊断服务UDS命令,直至所述目标ECU的刷写流程结束。
13.根据权利要求12所述的装置,其中,所述解析子模块,包括:
生成子模块,用于根据待发送的第一数据生成UDS命令;
打包子模块,用于按照所述目标ECU的通信方式对应的通信协议将所述UDS命令打包,得到打包的数据;
发送子模块,用于向所述目标ECU发送所述打包的数据。
14.根据权利要求12或13所述的装置,其中,所述解析子模块,包括:
接收子模块,用于接收来自于目标ECU的第二数据;
数据解析子模块,用于按照所述目标ECU的通信方式对应的通信协议对所述第二数据进行解析;
提取子模块,用于从解析结果中提取出UDS命令。
15.根据权利要求13或14所述的装置,其中,所述UDS命令包括UDS请求命令、UDS确认命令、UDS否定命令的至少之一。
16.根据权利要求13所述的装置,所述装置还包括:
第二解析模块,用于解析升级包中的配置文件,得到升级包中的所述第一数据。
17.根据权利要求10至16中任一项所述的装置,所述装置还包括:
第一发送模块,用于向所述目标ECU发送种子信息,所述种子信息用于表示身份信息;
接收模块,用于接收与所述种子信息对应的校验信息;
计算模块,用于按照第一算法对所述校验信息进行计算得到第一键信息;
第二发送模块,用于向所述目标ECU发送所述第一键信息,以在所述目标ECU校验收到的所述第一键信息与自身按照所述第一算法计算的第二键信息是否一致。
18.根据权利要求10至17中任一项所述的装置,所述装置还包括以下至少之一:
请求模块,用于在向所述目标ECU发送数据之后,请求所述目标ECU返回循环冗余校验CRC码,以进行CRC校验;
第三发送模块,用于在向所述目标ECU发送数据之后,发送CRC码,以在所述目标ECU中进行CRC校验。
19.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-9中任一项所述的方法。
20.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-9中任一项所述的方法。
21.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-9中任一项所述的方法。
CN202210166151.9A 2022-02-23 2022-02-23 电子控制单元的刷写方法、装置、设备以及存储介质 Active CN114625393B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210166151.9A CN114625393B (zh) 2022-02-23 2022-02-23 电子控制单元的刷写方法、装置、设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210166151.9A CN114625393B (zh) 2022-02-23 2022-02-23 电子控制单元的刷写方法、装置、设备以及存储介质

Publications (2)

Publication Number Publication Date
CN114625393A true CN114625393A (zh) 2022-06-14
CN114625393B CN114625393B (zh) 2023-06-23

Family

ID=81900281

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210166151.9A Active CN114625393B (zh) 2022-02-23 2022-02-23 电子控制单元的刷写方法、装置、设备以及存储介质

Country Status (1)

Country Link
CN (1) CN114625393B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104281469A (zh) * 2014-08-26 2015-01-14 东风电子科技股份有限公司 实现电子控制单元程序刷写的方法及系统
US20190138296A1 (en) * 2017-11-06 2019-05-09 Toyota Jidosha Kabushiki Kaisha Updating system, electronic control unit, updating management device, and updating management method
CN112947961A (zh) * 2021-02-09 2021-06-11 上汽大通汽车有限公司 基于可视化图形配置的车辆刷写方法及设备
CN113448596A (zh) * 2020-03-24 2021-09-28 上海汽车集团股份有限公司 一种车辆控制器刷写系统、方法及相关设备
CN113741936A (zh) * 2021-08-31 2021-12-03 重庆长安汽车股份有限公司 一种基于uds协议的并行刷写方法、装置、车辆及计算机可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104281469A (zh) * 2014-08-26 2015-01-14 东风电子科技股份有限公司 实现电子控制单元程序刷写的方法及系统
US20190138296A1 (en) * 2017-11-06 2019-05-09 Toyota Jidosha Kabushiki Kaisha Updating system, electronic control unit, updating management device, and updating management method
CN113448596A (zh) * 2020-03-24 2021-09-28 上海汽车集团股份有限公司 一种车辆控制器刷写系统、方法及相关设备
CN112947961A (zh) * 2021-02-09 2021-06-11 上汽大通汽车有限公司 基于可视化图形配置的车辆刷写方法及设备
CN113741936A (zh) * 2021-08-31 2021-12-03 重庆长安汽车股份有限公司 一种基于uds协议的并行刷写方法、装置、车辆及计算机可读存储介质

Also Published As

Publication number Publication date
CN114625393B (zh) 2023-06-23

Similar Documents

Publication Publication Date Title
US10705808B2 (en) Software defined network controller
US10169203B2 (en) Test simulation for software defined networking environments
CN113656227A (zh) 一种芯片验证方法、装置、电子设备及存储介质
CN109753300B (zh) 一种算法升级方法、计算任务发送方法及相关装置
CN112527281B (zh) 基于人工智能的算子升级方法、装置、电子设备及介质
CN112835616A (zh) 一种版本升级方法、装置、电子设备及存储介质
US10075477B2 (en) Method, system and server for self-healing of electronic apparatus
CN110825412A (zh) 基于LabVIEW的控制器程序的刷写系统及方法
CN111026439A (zh) 应用程序的兼容方法、装置、设备及计算机存储介质
CN113760332A (zh) 软件升级方法和电子设备
CN114064091A (zh) Ota升级控制方法、装置、电子设备及自动驾驶车辆
CN113468067B (zh) 应用程序的调试方法、装置、电子设备和计算机可读介质
CN116450184B (zh) 一种系统升级方法、装置、电子设备及存储介质
CN113254045A (zh) 软件初始化方法、系统及计算机可读存储介质
CN112948018A (zh) 用于小程序的动态库加载方法、装置、设备及介质
CN114625393B (zh) 电子控制单元的刷写方法、装置、设备以及存储介质
CN116301916A (zh) 服务部署方法、装置、电子设备及存储介质
CN115391204A (zh) 自动驾驶服务的测试方法、装置、电子设备及存储介质
CN113760356B (zh) 程序产品的差异化配置方法、装置、设备和介质
CN115600323B (zh) 航空系统仿真方法、系统、电子设备及可读存储介质
CN115102850B (zh) 配置比对方法、装置、电子设备及存储介质
CN113204478B (zh) 测试单元的运行方法、装置、设备和存储介质
CN115188190A (zh) 交通数据处理模式的更新方法、装置和车路协同系统
CN116383284A (zh) 数据接入方法、装置、设备及存储介质
CN113315816A (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
GR01 Patent grant
GR01 Patent grant