CN114144759A - 用于更新车辆的车载计算机的软件的更新方法和更新装置,所述车载计算机包括执行存储器、备份存储器和检查存储器 - Google Patents
用于更新车辆的车载计算机的软件的更新方法和更新装置,所述车载计算机包括执行存储器、备份存储器和检查存储器 Download PDFInfo
- Publication number
- CN114144759A CN114144759A CN202080053253.9A CN202080053253A CN114144759A CN 114144759 A CN114144759 A CN 114144759A CN 202080053253 A CN202080053253 A CN 202080053253A CN 114144759 A CN114144759 A CN 114144759A
- Authority
- CN
- China
- Prior art keywords
- memory
- software
- computer
- updating
- request
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, restoring, recovering or retrying at system level during software upgrading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种用于更新车辆的软件的更新方法,所述车辆包括执行存储器(ME)、备份存储器(MS)和检查存储器(MC),所述更新方法包括以下步骤:‑发射请求以控制向所述检查存储器(MC)中写入至少一个经更新软件区块(B',C'),‑发射请求以控制检验经存储在所述检查存储器(MC)中的所述至少一个经更新软件区块(B',C'),‑发射请求以控制从所述执行存储器(ME)向所述备份存储器(MS)复制所述多个区块(A,B,C),‑发射请求以控制从所述检查存储器(MC)向所述执行存储器(ME)复制所述至少一个经更新软件区块(B',C'),‑发射请求以控制检验所述执行存储器(ME)的软件区块(A,B',C')的完整性。
Description
技术领域
本发明涉及由诊断工具远程实施的对机动车辆的一个或多个计算机的软件更新,该软件更新还称为OTA(即Over The Air)更新。
背景技术
在本说明书的下文中,当待下载文件包含指令或软件的可执行代码时,还称之为软件的下载。
车载电子功能的日益复杂引起装配在机动车辆上的电子盒(或计算机)的倍增。
为了限制由此产生的多样性,已决定在可能时把硬件的多样性转加到软件上,并实施这些计算机的下载。该操作借助于连接到车辆的诊断插座上的非车载工具来实施,并且能够在一个或多个计算机的存储器中编程软件,所述软件确保了所述车辆通过考虑到该车辆所固有的特征(机动性、选项)而产生的合适运行。
在所述工具与所述一个或多个计算机之间的通信通常使用现有技术已知的CAN500kbps技术或目前广泛应用在机动车世界中的Ethernet 100Mbits/s技术,以便转移待编程数据。
在现有技术中,例如专利文件FR-A-2719924中所述,已知一些用于把文件下载到机动车辆的车载计算机中的下载方法和下载系统。该专利文件详细说明了在车辆的组装期间或在制造商的售后网络中在通过文件交换实施更正服务时所使用的程序的接连的不同步骤。
然而,为了使车辆对于其客户来说总是更加安全的,机动车制造商考虑可直接在最终客户处实施一些更新,就如在例如PC或智能手机的消费领域中已经存在的现象那样。事实上,车辆中存在的连接部件已经能够与外部交换大量的信息(交通信息、导航信息、维修所需的数据或保险公司所需的数据等),且这些交换正在扩展。这由此导致增加的对于客户数据保护的需求以及考虑到网络攻击的可能性和遭受的道路安全风险而增加的对于这些车辆的重大保护的需求。事实上,当检测到该类型的攻击并检测到能够由此删除或降低所述风险的更正性“补丁(patch)”(软件或软件模块)的可用性时,安装该更正所可能的速度无疑是一重要方面。在该情况下,相较于有组织地把车辆召回到经授权的或独立的网点维修站中,OTA更新可能够节省大量时间。
不过,为了可直接在最终客户处实施该类型的操作,应考虑到会增加该操作的复杂性的多个方面。
在一些情况下,对机动车的计算机的软件更新可能导致所述机动车不可用、又或引起对于车辆乘员和车辆环境的严重后果。这就是为什么,一些计算机、特别是与车辆动力性相关联的计算机的OTA式更新需要称为回滚(Rollback)(或向后返回,又或返回到之前状态)的机制,该机制能够使得在检测到在所述车辆的一个或多个计算机的软件更新期间发生问题的情况下返回到在前软件配置。
该类型的问题可例如发生在目的地计算机尝试向例如损坏的存储单元上写入值的情况下、或在例如由于电磁场导致的传输错误的情况下、又或在其它情况下。
这种类型的问题通常由目的地计算机(例如借助于在错误接收的情况下检验CRC(即Cyclic Redoundancy Check(循环冗余校验)))检测出。在该情况下,信息传输到主计算机以要求执行回滚进程。
例如由专利文件US20190057214描述了一种更新控制装置,所述更新控制装置包括第一通信单元、第二通信单元和控制单元。所述第一通信单元配置用于通过逐个区块(bloc)地使用数据库上的补丁数据来向经更新终端中接收每个软件区块的补丁数据以及每个软件认证区块的第一认证数据。
所述控制单元配置用于要求所述终端在接收到指示出第M区块(M>1)认证失败的更新结果的情况下通过使用补丁数据来执行回滚以从第一区块至第M-1区块复原。
尽管采取了所有这些预防措施和所有这些验证系统,仍可能地,在OTA更新之后,一些不良运行情况不能够被检测出。
发明内容
本发明的目的在于提供一种解决方案以特别是在更新文件损坏时使车辆计算机迅速地恢复在软件更新之前的状态。
本发明特别地涉及一种用于更新车辆的车载计算机的软件的更新方法,所述车载计算机包括执行存储器(ME)、备份存储器(MS)和检查存储器(MC),所述执行存储器中存储有多个当前软件区块(A,B,C),其特征在于,所述更新方法包括以下步骤:
-发射(312)请求以控制向所述检查存储器(MC)中写入至少一个经更新软件区块(B',C'),
-发射(313)请求以控制检验经存储在所述检查存储器(MC)中的所述至少一个经更新软件区块(B',C'),
-发射(322)请求以控制从所述执行存储器(ME)向所述备份存储器(MS)复制所述多个当前软件区块(A,B,C),
-发射(332)请求以控制从所述检查存储器(MC)向所述执行存储器(ME)复制(332)所述至少一个经更新软件区块(B',C'),
-发射(333)请求以控制检验所述执行存储器(ME)的软件区块(A,B',C')的完整性,
并且,当检测到错误时,则:
-发射(400)请求以控制返回到在所述更新之前的状态,所述返回包括从所述备份存储器(MS)向所述执行存储器(ME)复制(403)所述多个当前软件区块(A,B,C)。
本发明的优点在于,当对于经接收数据的完整性测试以失败为结果时,能够无延迟地中断安装程序并立刻再发起初始软件,因为所述执行存储器(Executing Memory)尚未经修改。
因此,本发明提供了时间的节省以及经加强的安全性,因为本发明消除了在现有技术的解决方案中不可避免地与当前软件区块的接连生成操作有关的数据的额外损坏风险。
通过使用额外的检验存储器,需执行回滚的概率相较于现有技术中已知的其它解决方案更小。这显著降低了在执行返回到所述车辆的n-1配置的执行期间的失败风险。
有利地,根据本发明的用于更新计算机软件的更新方法还包括:在发射请求以控制向所述检查存储器中写入至少一个经更新软件区块之前,用于发射请求以控制所述计算机擦除所述检查存储器的发射步骤。
有利地,根据本发明的用于更新计算机软件的更新方法还包括:在发射请求以控制从所述执行存储器向所述备份存储器复制所述多个当前软件区块之前,用于发射请求以控制所述计算机擦除所述备份存储器的发射步骤。
有利地,根据本发明的用于更新计算机软件的更新方法还包括:用于发射请求以控制所述计算机检验所述备份存储器中的多个当前软件区块的完整性的发射步骤。
有利地,根据本发明的用于更新计算机软件的更新方法还包括:用于发射请求以控制所述计算机从所述执行存储器擦除待更新软件区块的发射步骤。
有利地,用于返回到在所述更新之前的状态的返回步骤还包括:用于预先擦除所述计算机的执行存储器的预先擦除步骤,以及,用于检验所述执行存储器中的多个当前软件区块的完整性的检验步骤。
有利地,用于返回到在所述更新之前的状态的返回步骤还包括:用于停止更新的停止步骤,所述停止步骤包括控制由所述更新关系到的其它计算机返回到在所述更新之前的状态。
本发明还涉及一种用于更新计算机软件的更新装置,所述装置包括与至少一个处理器相关联的存储器,所述至少一个处理器配置用于实施根据本发明的方法的步骤。
本发明还涉及一种车辆,其特征在于,所述车辆包括根据本发明的用于更新计算机软件的更新装置。
附图说明
通过阅读本发明下文中的非限制性的实施例的详细说明和附图,本发明的其它特征和优点将更加清楚,在所述附图中:
-图1示意性地示出了根据本发明具体实施例的系统;
-图2示意性地示出了根据本发明具体实施例的计算机;
-图3示意性地示出了根据本发明具体实施例的更新方法。
-图4示意性地示出了根据本发明具体实施例的用于恢复至在所述更新之前的状态的恢复步骤的子步骤。
-图5示出了在更新过程中计算机存储器的接连状态的示例。
具体实施方式
本发明尤其旨在提供一种方法,所述方法能够经由有线通信或无线通信更新配备有外部存储器的车载计算机,该外部存储器具有双倍于执行存储器的容量。在软件更新操作期间发生失败的情况下,所述程序设置了回滚操作,该回滚操作能够返回到版本n-1以使得车辆可重获自身的功用性。
参考图1,根据本发明的系统包括车辆101,该车辆与远程更新服务器102连接。
车辆101包括多个计算机ECU1、ECU2、ECU3,所述多个计算机的车载通信单元借助于无线连接与服务器102通信。通常,所述无线连接或联接是无线电波式连接(3G、4G等)。
计算机ECU1、ECU2、ECU3彼此之间借助于数据总线104(例如CAN类型的数据总线)通信。
非车载服务器102例如是包括至少一个存储器和处理器的一般计算机。
车辆101和非车载服务器102经由广域网105(或WAN,即“Wide Area Network”)通信,所述广域网例如是固定通信网络103(例如车辆通过无线联接(3G、4G等)所连接至的Internet网络)。
允许计算机ECU2至ECU3的更新的计算机ECU1(还称为更新管理计算机(又或FOTA(即Full Over-The-Air)主机))为此布置有能够把接收到的数据文件转移到目的地计算机ECU2、ECU3所期待的帧中的机制以安装其软件。要注意到,在车辆中起到FOTA主机作用的计算机可能是或可能并不是与布置有无线通信功能的计算机相同的计算机。
操作员可经由终端107实施检验并且向车辆101远程传输指令。这些指令通过波通道传输至车辆101,所述波通道可以是4G、WIFI或任何其它未来无线通信技术。
计算机ECU1、ECU2、ECU3可在维修站中实施更新。在维修站中的软件更新响应于特定程序(图1的情况1),在该特定程序过程中,操作员需对经委托给他的车辆负责。鉴于此,该操作员在通过经接通在车辆101的专用插座108上的工具106发起该操作之前把所述车辆放置到“安全可靠”的环境中。然后,一旦该操作结束,该操作员执行一些检查以便确保该操作的良好运行。在检测到问题的情况下,在所述程序开展期间或在所述更新之后,技术员在把车辆归还给客户之前采取更正异常所需的措施(新尝试、更换零件等)。因此,维修员是安全链中的一个重要环节,但还负责确保经实施的操作的质量。
在客户处实施OTA更新时(图1的情况2),这一切不可能,并因此应在每个计算机中添加能够在发生问题的情况下返回到在前版本的机制。
为了实施该专利提案中所描述的操作,所述FOTA主机与所述目标计算机经由所述车辆中可用的通信网络(例如CAN、Ethernet或其它)通信。为此,所述FOTA主机使用专用通信协议,例如,UDS协议(ISO14229标准),其通常运用于实施对于机动车辆中的车载计算机的诊断或软件下载。
参考图2,根据本发明的计算机200包括:
-配备有Flash存储器ME的微控制器201,所述Flash存储器具有给定尺寸N,用于执行经下载软件,并且经命名为执行存储器ME(英文为“Executing Memory”),
-备份存储器MS(英文为“Backup Memory”),所述备份存储器具有至少等于所述给定尺寸N的尺寸,并且用作能够使得在安装期间在发生问题的情况下返回到所述软件的之前版本的备份存储器,
-检查存储器MC(英文为“Checking Memory”),所述检查存储器具有至少等于所述给定尺寸N的尺寸,并且用于检验由有线方式或OTA方式接收的新软件的完整性,甚至是在发起对于所述执行存储器的内容的任何修改之前。
根据本发明的第一变型,所述备份存储器MS和所述检查存储器MC属于具有至少两倍于所述给定尺寸N的尺寸的外部Flash存储器205。
所述外部Flash存储器与所述微控制器例如通过总线206SPI(即SerialPeripheral Interface)连接,但这也可以使用另一数据联接。
该总线可由(其数据交换流量足以使得新软件的安装需实施在客户视为合理的延迟之后的)任何其它通信总线技术替代。有利地,在内部存储器与外部存储器之间交换的数据经加密,以便改善所述更新的安全性。
根据本发明的第二变型,所述备份存储器MS和所述检查存储器MC可集成在微控制器201的存储器中。该变型的优点在于,在从一个存储器向另一存储器复制时不需要加密数据。而且,该变型能够省去用于管理与外部存储器的通信的额外组件。但是,该变型要求使用布置有内部存储器的微控制器,该内部存储器具有至少两倍于所述软件的最大化尺寸的尺寸。
现在将参考图3和图5描述根据本发明的方法,图3示出了所述方法的步骤,图5示出了所述方法的实施例。
在图5的示例中,待更新计算机200或目标计算机在自身的执行存储器ME中布置有软件。该软件由3个数据区块A、B和C组成。
根据本发明的方法包括:
第一阶段310,在该阶段过程中:经包含在待下载的文件中的更新数据(在该示例中,区块B'和C')(经由有线通信或无线通信)传输至目标计算机200并放置到所述检查存储器MC中,以便检验所述更新数据的完整性。这能够避免篡改当前处在所述执行存储器ME中的软件。
第二阶段320,在该阶段过程中:所述执行存储器ME的整个内容经拷贝到所述备份存储器MS中,以便保留原始软件的副本。
第三阶段330,在该阶段过程中:经包含在所述检查存储器MC中的数据区块(在该示例中,区块B'和C')经再复制到所述执行存储器ME中,以便替代前软件区块(在该示例中,区块B和C)。不由所述更新关系到的数据区块(在该示例中,区块A)未经修改。
第四阶段,该阶段称为回滚并且在安装失败的情况下执行,在该阶段过程中,所述备份存储器MS的整个内容经再复制到所述执行存储器ME中,以便返回到初始软件。
有利地,在目标计算机更新之前,所述FOTA主机通过使用用于请求在再编程会话中输入的输入请求来把计算机200放置到专用于编程的专用状态中(其中,功用被停用)。目标计算机200仅在满足安全条件(例如:车辆停止、传动链被停用等)时才接受执行该请求。
在再编程会话中,所述FOTA主机与目标计算机200的引导软件直接通信。根据由所述FOTA主机发送的请求,所述计算机的引导软件可在自身所布置有的三个存储器(执行存储器ME、备份存储器MS或检查存储器MC)的其中之一上执行不同操作(写入、复制、完整性检查)。图3描述了待由所述FOTA主机实施以把新软件安装到所述目标计算机200中的一系列动作。
在执行根据本发明的更新方法之前,目标计算机200处在称为初始状态的第一状态501中,其中:所述执行存储器ME包括三个当前软件区块。
有利地,第一阶段310包括以下步骤:
在第一步骤311中,所述FOTA主机发送请求以要求所述目标计算机擦除所述检查存储器MC。
在第二步骤312中,所述FOTA主机借助于专用请求向所述目标计算机200的检查存储器MC中写入(通过有线通信或无线通信)从所述远程服务器接收的数据。对于每个待更新数据区块重复该操作。
在所述检查存储器MC处在外部存储器205中的实施例中,由目标计算机的引导软件对所述FOTA主机透明地管理经实施在通信总线206(例如SPI类型的通信总线)上的在微控制器201与自身的外部存储器205之间的交换。
在第三步骤313中,所述FOTA主机发送请求以要求所述目标计算机200检查经复制到所述检查存储器MS中的数据的完整性。该检验可借助于CRC(即Cyclic RedoundancyCheck)或现有技术已知的任何其它方式(例如:借助于散列函数对于经下载到所述目标计算机中的数据内容的“散列”的计算以及对于结果与由所述FOTA主机预先传输的参考值的比较)实施。当所述存储器由多个数据区块组成时,每个区块布置有自身所固有的完整性检查机制(其基于相同方式或不同方式)。
在第一步骤311、第二步骤312或第三步骤313的其中之一期间发生失败的情况下,所述FOTA主机从目标计算机200接收到否定回复。在该情况下,所述FOTA主机放弃安装程序的正常开展,以执行用于停止安装的停止程序314。
在第一阶段310结束后,目标计算机200处在第二状态502中,其中:所述执行存储器ME包括三个当前软件区块A、B、C,并且,所述检查存储器MC包括来自于更新文件510的经更新软件区块B'、C'。
有利地,第二阶段320包括以下步骤。
在第四步骤321中,所述FOTA主机发送请求以要求计算机200擦除整个备份存储器MS。
在第五步骤322中,所述FOTA主机发送请求以要求所述目标计算机200把所述执行存储器ME的整个内容复制到所述备份存储器MS中。
在第六步骤323中,所述FOTA主机发送请求以要求所述目标计算机200检查经复制到所述备份存储器MS中的数据的完整性。该检验有利地通过与第三步骤313相同的方式实施。
在第四步骤321、第五步骤322或第六步骤323的其中之一期间发生失败的情况下,目标计算机200把否定回复再发送至所述FOTA主机。所述FOTA主机由此执行用于停止安装的停止程序314。
在第二阶段320结束后,目标计算机200处在第三状态503中,其中:所述执行存储器ME包括三个当前软件区块A、B、C,所述检查存储器MC包括来自于更新文件510的经更新软件区块B'、C',并且,所述备份存储器MS包括三个当前软件区块A、B、C。
根据本发明的特征,仅当已预先地成功实施了第一阶段310和第二阶段320时才执行第三阶段330。从该阶段起始,目标计算机200的引导软件使存在于所述执行存储器ME中的应用软件无效化,因为该应用软件极可能通过后续的操作修改。为此,该应用软件可例如把变量(或标志)存储到非易失性存储器中,该变量(或标志)在计算机200的每个初始化时经测试以检验经加载到所述执行存储器ME中的应用软件是否可经执行。
有利地,第三阶段330包括以下步骤。
在第七步骤331中,所述FOTA主机发送尽可能多的请求以要求所述目标计算机200擦除所述执行存储器ME中的所有待更新数据区块。所述待更新数据区块的列表经由下载文件提供至所述FOTA主机。
在第八步骤332中,所述FOTA主机发送尽可能多的请求以要求所述目标计算机200从所述检查存储器MC向所述执行存储器ME复制每个待更新数据区块。
在第九步骤333中,所述FOTA主机发送尽可能多的请求以要求所述目标计算机检查所述执行存储器ME中的每个经更新数据区块的数据的完整性。该检验有利地通过与第三步骤313相同的方式实施。
在第三阶段330结束后,目标计算机处在第四状态504中,其中:所述执行存储器ME包括一个当前软件区块A和两个经更新软件区块B'、C';所述检查存储器MC包括来自于更新文件510的经更新软件区块B'、C';并且,所述备份存储器MS包括三个当前软件区块A、B、C。
在第七步骤331、第八步骤332或第九步骤333的其中之一期间发生失败的情况下,目标计算机200把否定回复再发送至所述FOTA主机。所述FOTA主机由此执行用于返回到在所述更新(回滚)之前的状态的返回操作。
当第三阶段333已正确执行时,则所述计算机的引导软件宣布应用软件是有效的(并因此修改对应的变量)。经新下载的软件因此在下一次再初始化期间自动地由计算机200执行,该再初始化或是由来自所述FOTA主机的请求引起,或是由断电然后恢复供电引起。
仅在第三阶段330之前安装失败的情况下才执行用于停止安装的停止程序314。
根据由操作员初始设置的干预类型区分出两个情况:(情况1)仅目标计算机经更新,或(情况2)多个计算机由所述更新关系到。
所述FOTA主机确定是否是多个计算机由所述更新关系到。
当仅计算机由所述更新关系到时,所述FOTA主机发送消息以建议操作员或是再发起安装、或是放弃安装。在放弃的情况下,由于所述执行存储器ME的内容在所述操作的该阶段尚未经修改,计算机200自下一次重启起就是有效的,而无需回滚操作。
当多个计算机由所述更新关系到时,特别是当需确保所述车辆的不同计算机的软件版本之间的一致性时:
-当在发生错误的时刻上仅目标计算机200开始自身的更新时,则所述FOTA主机如同第一情况那样进行(把消息发送至操作员,并且在放弃时不存在回滚),
-当在发生错误的时刻上所述车辆中的其它计算机已经更新时,所述FOTA主机在所述车辆的所有计算机中触发回滚过程,所述计算机需要所述回滚进程直到在所述车辆的其它计算机中重获在所述更新之前的状态。
如上文所述,在第七步骤331、第八步骤332或第九步骤333的其中之一期间发生失败的情况下,则所述FOTA主机执行用于返回到在所述更新(回滚)之前的状态的返回操作。
参考图4,所述回滚步骤400包括以下子步骤。
有利地,所述FOTA主机把消息传输401至IHM以通知操作员回滚操作正实施在所述车辆的一个或多个计算机上。
所述FOTA主机发送402请求以要求所述目标计算机200擦除整个执行存储器ME。
所述FOTA主机发送403请求以要求所述目标计算机200把所述备份存储器MS的整个内容复制到所述执行存储器ME中。
所述FOTA主机发送404请求以要求所述目标计算机检查经复制到所述执行存储器ME中的数据的完整性。该检验有利地通过与第三步骤313相同的方式实施。
在回滚操作结束后,所述计算机可在自身再初始化之后以自身的初始软件重新运行,所述再初始化或是由所述FOTA主机的请求引起,或是由断电然后恢复供电引起。
在回滚操作400结束后,目标计算机处在第五状态505中,其中:所述执行存储器ME包括三个当前软件区块A、B、C,所述检查存储器MC包括来自于更新文件510的经更新软件区块B'、C',并且,所述备份存储器MS包括三个当前软件区块A、B、C。
第二实施例。
在另一实施例中,本发明还旨在提供一种方法,所述方法能够经由有线通信或无线通信更新配备有外部存储器的车载计算机,该外部存储器具有等同于执行存储器的容量。在软件更新操作期间发生失败的情况下,所述程序设置了回滚操作,该回滚操作能够返回到版本n-1以使得车辆可重获自身的功用性。
车辆包括多个计算机,所述多个计算机的车载通信单元借助于无线连接与服务器102通信。通常,所述无线连接或联接是无线电波式连接(3G、4G等)。
计算机彼此之间借助于数据总线(例如CAN类型的数据总线)通信。
非车载服务器例如是包括至少一个存储器和处理器的一般计算机。
车辆和非车载服务器经由广域网(或WAN,即“Wide Area Network”)通信,所述广域网例如是固定通信网络(例如车辆通过无线联接(3G、4G等)所连接至的Internet网络)。
允许计算机ECU2至ECU3的更新的计算机ECU1(还称为更新管理计算机(又或FOTA(即Full Over-The-Air)主机))为此布置有能够把接收到的数据文件转移到目的地计算机所期待的帧中的机制以安装其软件。要注意到,在车辆中起到FOTA主机作用的计算机可能是或可能并不是与布置有无线通信功能的计算机相同的计算机。
操作员可经由终端实施检验并且向车辆远程传输指令。这些指令通过波通道传输至车辆,所述波通道可以是4G、WIFI或任何其它未来无线通信技术。
计算机可在维修站中实施更新。在维修站中的软件更新响应于特定程序,在该特定程序过程中,操作员需对经委托给他的车辆负责。鉴于此,该操作员在通过经接通在车辆的专用插座上的工具发起该操作之前把所述车辆放置到“安全可靠”的环境中。然后,一旦该操作结束,操作员执行一些检查以便确保该操作的良好运行。在检测到问题的情况下,在所述程序开展期间或在所述更新之后,技术员在把车辆归还客户之前采取更正异常所需的措施(新尝试、更换零件等)。因此,维修员是安全链中的一个重要环节,但还负责确保经实施的操作的质量。
在客户处实施OTA更新时,这一切不可能,并因此应在每个计算机中添加能够在发生问题的情况下返回到在前版本的机制。
为了实施该专利提案中所描述的操作,所述FOTA主机与所述目标计算机经由所述车辆中可用的通信网络(例如CAN、Ethernet或其它)通信。为此,所述FOTA主机使用专用通信协议,例如,UDS协议(ISO14229标准),其通常运用于实施对于机动车辆中的车载计算机的诊断或软件下载。
根据本发明的计算机包括:
-配备有Flash存储器的微控制器,所述Flash存储器具有给定尺寸N,用于执行经下载软件,并且经命名为执行存储器(英文为“Executing Memory”),
-备份存储器(英文为“Backup Memory”),所述备份存储器具有至少等于所述给定尺寸N的尺寸,并且用作能够使得在安装期间在发生问题的情况下返回到所述软件的之前版本的备份存储器,
根据本发明的第一变型,所述备份存储器属于具有至少等于给定尺寸N的尺寸的外部Flash存储器。
所述外部Flash存储器与所述微控制器例如通过总线206SPI(即SerialPeripheral Interface)连接,但这也可以使用另一数据联接。
该总线可由(其数据交换流量足以使得新软件的安装需实施在客户视为合理的延迟之后的)任何其它通信总线技术替代。有利地,在内部存储器与外部存储器之间交换的数据经加密,以便改善所述更新的安全性。
根据本发明的第二变型,所述备份存储器MS可集成在微控制器的存储器中。该变型的优点在于,在从一个存储器向另一存储器复制时不需要加密数据。而且,该变型能够省去用于管理与外部存储器的通信的额外组件。但是,该变型要求使用布置有内部存储器的微控制器,该内部存储器具有至少两倍于所述软件的最大化尺寸的尺寸。
待更新计算机或目标计算机在自身的执行存储器中布置有软件。该软件由3个数据区块A、B和C组成。
根据本发明的方法包括:
第一阶段,在该阶段过程中:所述执行存储器的整个内容经拷贝到所述备份存储器中,以便保留所述原始软件的复制。
第二阶段,在该阶段过程中:经包含在待下载的文件中的待更新数据(在该示例中,区块B'和C')传输至目标计算机并且经写入到所述执行存储器中,以替换前软件区块(在该示例中,区块B和C)。不由所述更新关系到的数据区块(在该示例中,区块A)未经修改。
第三阶段,该阶段称为回滚并且在安装失败的情况下执行,在该阶段过程中,所述备份存储器的整个内容经再复制到所述执行存储器中,以便返回到初始软件。
有利地,在目标计算机更新之前,所述FOTA主机通过使用用于请求在再编程会话中输入的输入请求来把计算机放置到专用于编程的专用状态中(其中,功用被停用)。目标计算机仅在满足安全条件(例如:车辆停止、传动链被停用等)时才接受执行该请求。
在再编程会话中,所述FOTA主机与目标计算机的引导软件直接通信。根据由所述FOTA主机发送的请求,所述计算机的引导软件可在自身所布置有的两个存储器(执行存储器ME或备份存储器MS)的其中之一上执行不同操作(写入、复制、完整性检查)。
根据实施例,在执行根据本发明的更新方法之前,目标计算机处在称为初始状态的第一状态中,其中:所述执行存储器ME包括三个当前软件区块A、B、C。
有利地,第一阶段包括以下步骤:
在第一步骤中,所述FOTA主机发送请求以要求所述目标计算机200擦除所述备份存储器MS。
在第二步骤中,所述FOTA主机发送请求以要求所述目标计算机把所述执行存储器ME的整个内容复制到所述备份存储器MS中。
在第三步骤中,所述FOTA主机发送请求(j)以要求所述目标计算机检查经复制到所述备份存储器(Backup Memory)中的数据的完整性。该检验可借助于CRC(即CyclicRedoundancy Check)或现有技术已知的任何其它方式(例如:借助于散列函数对于数据内容的“散列”的计算以及对于结果与由所述FOTA主机预先传输的参考值的比较)实施。当所述存储器由多个数据区块组成时,每个区块布置有自身所固有的完整性检查机制(其基于相同方式或不同方式)。
在第一步骤、第二步骤或第三步骤的其中之一期间发生失败的情况下,所述FOTA主机从计算机接收到否定回复。在该情况下,所述FOTA主机放弃安装程序的正常开展,以执行用于停止安装的停止程序。
在第一阶段结束后,目标计算机处在第二状态502中,其中:所述执行存储器ME包括三个当前软件区块A、B、C,并且,所述备份存储器MS包括三个当前软件区块A、B、C。
根据本发明的特征,仅当已预先地成功实施了第一阶段时才执行第二阶段。从该阶段起始,目标计算机的引导软件使存在于所述执行存储器中的应用软件无效化,因为该应用软件极可能通过后续的操作修改。为此,该应用软件可例如把变量(或标志)存储到非易失性存储器中,该变量(或标志)在计算机的每个初始化时经测试以检验经加载到所述执行存储器中的应用软件是否可经执行。
有利地,第二阶段包括以下步骤。
在第四步骤中,所述FOTA主机发送请求以要求所述目标计算机擦除所述执行存储器ME中的所有待更新数据区块。所述待更新数据区块的列表经由下载文件提供至所述FOTA主机。
在第五步骤中,所述FOTA主机借助于一个或多个请求向所述目标计算机的执行存储器ME中写入(从所述服务器通过有线通信或无线通信)接收到的数据。对于每个待更新数据区块重复该操作。
在第六步骤中,所述FOTA主机发送请求以要求所述目标计算机200检查所述执行存储器ME中的每个经更新数据区块的数据的完整性。该检验有利地通过与第三步骤相同的方式实施。
在第二阶段结束后,目标计算机处在第三状态中,其中:所述执行存储器包括一个当前软件区块A和两个经更新软件区块B'、C',并且,所述备份存储器包括三个当前软件区块A、B、C。
在第四步骤、第五步骤或第六步骤的其中之一期间发生失败的情况下,目标计算机把否定回复再发送至所述FOTA主机。所述FOTA主机由此执行用于返回到在所述更新(回滚)之前的状态的返回操作。
当第二阶段已正确执行时,则所述计算机的引导软件宣布应用软件是有效的。经新下载的软件因此在再初始化期间自动地由计算机执行,该再初始化或是由来自所述FOTA主机的请求引起,或是由所述目标计算机的断电然后恢复供电引起。
仅在第三阶段之前安装失败的情况下才执行用于停止安装的停止程序。
根据由操作员初始设置的干预类型区分出两个情况:(情况1)仅目标计算机经更新,或(情况2)多个计算机由所述更新关系到。
所述FOTA主机确定是否是多个计算机由所述更新关系到。
当仅计算机由所述更新关系到时,所述FOTA主机发送消息以建议操作员或是再发起安装、或是放弃安装。在放弃的情况下,由于所述执行存储器的内容在所述操作的该阶段尚未经修改,计算机自下一次重启起就是有效的,而无需回滚操作。
当多个计算机由所述更新关系到时,特别是当需确保所述车辆的不同计算机的软件版本之间的一致性时:
-当在发生错误的时刻上仅目标计算机开始自身的更新时,则所述FOTA主机如同第一情况那样进行(把消息发送至操作员,并且在放弃时不存在回滚),
-当在发生错误的时刻上所述车辆中的其它计算机已经更新时,所述FOTA主机在所述车辆的所有计算机中触发回滚过程,所述计算机需要所述回滚进程直到在所述车辆的其它计算机中重获在所述更新之前的状态。
如上文所述,在第四步骤、第五步骤或第六步骤的其中之一期间发生失败的情况下,则所述FOTA主机执行用于返回到在所述更新(回滚)之前的状态的返回操作。
所述回滚步骤包括以下子步骤。
有利地,所述FOTA主机把消息传输401至IHM以通知操作员回滚操作正实施在所述车辆的一个或多个计算机上。
所述FOTA主机发送请求以要求所述目标计算机擦除整个执行存储器。
所述FOTA主机发送请求以要求所述目标计算机把所述备份存储器的整个内容复制到所述执行存储器中。
所述FOTA主机发送请求以要求所述目标计算机检查经复制到所述执行存储器中的数据的完整性。该检验有利地通过与第三步骤相同的方式实施。
在回滚操作结束后,所述计算机可在自身再初始化之后以自身的初始软件重新运行,所述再初始化或是由所述FOTA主机的请求引起,或是由断电然后恢复供电引起。
在回滚操作结束后,目标计算机处在第四状态中,其中:所述执行存储器包括三个当前软件区块A、B、C,并且,所述备份存储器包括三个当前软件区块A、B、C。
本发明特别地涉及一种用于更新车辆的车载计算机的软件的更新方法,所述车载计算机包括执行存储器和备份存储器,所述执行存储器中存储有多个当前软件区块(A,B,C),其特征在于,所述更新方法包括以下步骤:
-发射请求以控制从所述执行存储器向所述备份存储器复制所述多个当前软件区块(A,B,C),
-发射请求以控制向所述执行存储器中写入至少一个经更新软件区块,
-发射请求以控制检验经存储在执行存储器中的所述至少一个经更新软件区块,
并且,当检测到错误时,则:
-发射请求以控制返回到在所述更新之前的状态,所述返回包括从所述备份存储器向所述执行存储器复制所述多个当前软件区块。
本发明的优点在于,当对于经接收数据的完整性测试以失败为结果时,能够无延迟地中断安装程序并迅速地再发起初始软件,因为该初始软件经备份在所述备份存储器中。
因此,本发明提供了时间的节省以及经加强的安全性,因为本发明消除了在现有技术的解决方案中在回滚阶段过程中不可避免地与软件区块的接连生成操作有关的数据的额外损坏风险。
有利地,根据本发明的用于更新计算机软件的更新方法还包括:在发射请求以控制从所述执行存储器向所述备份存储器复制所述多个当前软件区块之前,用于发射请求以控制所述计算机擦除所述备份存储器的发射步骤。
有利地,根据本发明的用于更新计算机软件的更新方法还包括:用于发射请求以控制所述计算机检验所述备份存储器中的多个当前软件区块的完整性的发射步骤。
有利地,根据本发明的用于更新计算机软件的更新方法还包括:用于发射请求以控制所述计算机从所述执行存储器擦除待更新软件区块的发射步骤。
有利地,用于返回到在所述更新之前的状态的返回步骤还包括:用于预先擦除所述计算机的执行存储器的预先擦除步骤,以及,用于检验所述执行存储器中的多个当前软件区块的完整性的检验步骤。
有利地,根据本发明的用于更新计算机软件的更新方法还包括:用于停止更新的停止步骤,所述停止步骤包括控制由所述更新关系到的其它计算机返回到在所述更新之前的状态。
本发明还涉及一种用于更新计算机软件的更新装置,所述装置包括与至少一个处理器相关联的存储器,所述至少一个处理器配置用于实施根据本发明的方法的步骤。
本发明还涉及一种车辆,其特征在于,所述车辆包括根据本发明的用于更新计算机软件的更新装置。
Claims (9)
1.一种用于更新车辆的车载计算机的软件的更新方法,所述车载计算机包括执行存储器(ME)、备份存储器(MS)和检查存储器(MC),所述执行存储器中存储有多个当前软件区块(A,B,C),其特征在于,所述更新方法包括以下步骤:
-发射(312)请求以控制向所述检查存储器(MC)中写入至少一个经更新软件区块(B',C'),
发射(313)请求以控制检验经存储在所述检查存储器(MC)中的所述至少一个经更新软件区块(B',C'),
发射(322)请求以控制从所述执行存储器(ME)向所述备份存储器(MS)复制所述多个当前软件区块(A,B,C),
发射(332)请求以控制从所述检查存储器(MC)向所述执行存储器(ME)复制(332)所述至少一个经更新软件区块(B',C'),
发射(333)请求以控制检验所述执行存储器(ME)的软件区块(A,B',C')的完整性,
并且,当检测到错误时,则:
发射(400)请求以控制返回到在所述更新之前的状态,所述返回包括从所述备份存储器(MS)向所述执行存储器(ME)复制(403)所述多个当前软件区块(A,B,C)。
2.根据权利要求1所述的用于更新计算机软件的更新方法,所述更新方法还包括:在发射(312)请求以控制向所述检查存储器(MC)中写入至少一个经更新软件区块(B',C')之前,用于发射(311)请求以控制所述车载计算机控制擦除所述检查存储器(MC)的发射步骤。
3.根据上述权利要求中任一项所述的用于更新计算机软件的更新方法,所述更新方法还包括:在发射(322)请求以控制从所述执行存储器(ME)向所述备份存储器(MS)复制所述多个当前软件区块(A,B,C)之前,用于发射(321)请求以控制所述车载计算机擦除所述备份存储器(MS)的发射步骤。
4.根据上述权利要求中任一项所述的用于更新计算机软件的更新方法,所述更新方法还包括:用于发射(323)请求以控制所述车载计算机检验所述备份存储器(MS)中的多个当前软件区块(A,B,C)的完整性的发射步骤。
5.根据上述权利要求中任一项所述的用于更新计算机软件的更新方法,所述更新方法还包括:用于发射(331)请求以控制所述车载计算机从所述执行存储器(ME)擦除待更新软件区块(B,C)的发射步骤。
6.根据上述权利要求中任一项所述的用于更新计算机软件的更新方法,其中,用于返回到在所述更新之前的状态的返回步骤还包括:用于预先擦除所述车载计算机的执行存储器的预先擦除步骤(402),以及,用于检验所述执行存储器(ME)中的多个当前软件区块(A,B,C)的完整性的检验步骤(404)。
7.根据上述权利要求中任一项所述的用于更新计算机软件的更新方法,其中,用于返回到在所述更新之前的状态的返回步骤还包括:用于停止更新的停止步骤(314),所述停止步骤包括控制由所述更新关系到的其它计算机返回到在所述更新之前的状态。
8.一种用于更新计算机软件的更新装置,所述更新装置包括与至少一个处理器相关联的存储器,所述至少一个处理器配置用于实施根据权利要求1至7中任一项所述的更新方法的步骤。
9.一种车辆,其特征在于,所述车辆包括根据权利要求8所述的用于更新计算机软件的更新装置。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1908402 | 2019-07-24 | ||
FR1908402A FR3099264B1 (fr) | 2019-07-24 | 2019-07-24 | Procédé et dispositif de mise à jour d’un logiciel d’un calculateur embarqué d’un véhicule, comportant une mémoire d’exécution et une mémoire de sauvegarde |
FR1908403 | 2019-07-24 | ||
FR1908403A FR3099265B1 (fr) | 2019-07-24 | 2019-07-24 | Procédé et dispositif de mise à jour d’un logiciel d’un calculateur embarqué d’un véhicule, comportant une mémoire d’exécution, une mémoire de sauvegarde et une mémoire de contrôle |
PCT/FR2020/051149 WO2021014064A1 (fr) | 2019-07-24 | 2020-07-01 | Procédé et dispositif de mise à jour d'un logiciel d'un calculateur embarqué d'un véhicule, comportant une mémoire d'exécution, une mémoire de sauvegarde et une mémoire de contrôle |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114144759A true CN114144759A (zh) | 2022-03-04 |
Family
ID=71786985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080053253.9A Pending CN114144759A (zh) | 2019-07-24 | 2020-07-01 | 用于更新车辆的车载计算机的软件的更新方法和更新装置,所述车载计算机包括执行存储器、备份存储器和检查存储器 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP4004712A1 (zh) |
CN (1) | CN114144759A (zh) |
WO (1) | WO2021014064A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4290396A1 (en) * | 2022-06-07 | 2023-12-13 | Valeo Internal Automotive Software Egypt, a limited liability company | Updating software of an electronic circuit for a vehicle |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2719924B1 (fr) | 1994-05-11 | 1996-08-14 | Peugeot | Procédé de déverrouillage de l'accès d'un outil de téléchargement d'un fichier, à un calculateur. |
EP3405923B1 (en) * | 2016-01-22 | 2023-10-11 | BlackBerry Limited | Updating a controller unit in a vehicle |
JP2019036238A (ja) | 2017-08-21 | 2019-03-07 | 株式会社東芝 | 更新制御装置、端末、更新制御方法およびプログラム |
-
2020
- 2020-07-01 WO PCT/FR2020/051149 patent/WO2021014064A1/fr active Application Filing
- 2020-07-01 EP EP20746261.5A patent/EP4004712A1/fr not_active Withdrawn
- 2020-07-01 CN CN202080053253.9A patent/CN114144759A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2021014064A1 (fr) | 2021-01-28 |
EP4004712A1 (fr) | 2022-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170139778A1 (en) | Relay apparatus, relay method, and computer program product | |
JP7280412B2 (ja) | ゲートウェイ装置、車載ネットワークシステム及びファームウェア更新方法 | |
US8539472B2 (en) | Method and system of updating shared memory | |
CN103218569B (zh) | 用以替换引导加载器公共密钥的方法 | |
TWI839587B (zh) | 用於管理軟體更新之方法及裝置,以及非暫時性電腦可讀儲存媒體 | |
CN115220796A (zh) | 安全引导设备 | |
CN113656056A (zh) | 充电座和充电座升级的方法、装置、设备、存储介质 | |
EP4073630A1 (en) | Package-based remote firmware update | |
CN114428629A (zh) | 车载控制器ota升级方法 | |
JP7484791B2 (ja) | Otaマスタ、更新制御方法、及び更新制御プログラム | |
CN114144759A (zh) | 用于更新车辆的车载计算机的软件的更新方法和更新装置,所述车载计算机包括执行存储器、备份存储器和检查存储器 | |
CN115280280A (zh) | 用于朝向车辆的车载计算机的存储器更新包括物理地址的软件的更新方法和更新装置 | |
CN115982710A (zh) | 一种基于以太网ota安全升级方法 | |
US20230333838A1 (en) | Method and device for updating software of an onboard computer in a vehicle, comprising a runtime memory, a backup memory and a control memory | |
CN112925546B (zh) | 一种防止车载ecu刷新出错的多级校验方法及系统 | |
CN114270310A (zh) | 用于更新车辆的车载计算机的软件的更新方法和更新装置,所述车载计算机包括执行存储器和备份存储器 | |
CN113672258A (zh) | 车辆的系统升级方法、装置、计算机设备和存储介质 | |
CN116909609B (zh) | 车载智能设备的软件升级方法、装置及车载智能设备 | |
WO2021166603A1 (ja) | 情報処理装置、プログラム更新システム、及びプログラム更新方法 | |
KR102384966B1 (ko) | 충전기 메모리의 이원화를 통한 전기자동차 충전기 고속 부팅 및 업그레이드 방법 | |
CN117972712B (zh) | 固件更新方法、装置、计算机设备和计算机存储介质 | |
US20240311247A1 (en) | Electronic control unit and storage medium storing software redundancy establishing program | |
CN114064086B (zh) | 多级处理器系统及其升级方法 | |
CN118444955A (zh) | 一种车载设备安全升级方法、装置、电子设备和存储介质 | |
CN118605914A (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 |