CN110402428B - 车载控制装置、及程序更新软件 - Google Patents
车载控制装置、及程序更新软件 Download PDFInfo
- Publication number
- CN110402428B CN110402428B CN201880016086.3A CN201880016086A CN110402428B CN 110402428 B CN110402428 B CN 110402428B CN 201880016086 A CN201880016086 A CN 201880016086A CN 110402428 B CN110402428 B CN 110402428B
- Authority
- CN
- China
- Prior art keywords
- program
- unit
- execution program
- differential
- memory
- 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.)
- Active
Links
- 230000015654 memory Effects 0.000 claims abstract description 134
- 230000006837 decompression Effects 0.000 claims abstract description 42
- 238000003745 diagnosis Methods 0.000 claims description 18
- 238000000034 method Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 7
- 230000006870 function Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 37
- 238000012545 processing Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000009467 reduction Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 230000008672 reprogramming Effects 0.000 description 7
- 230000002159 abnormal effect Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 238000002360 preparation method Methods 0.000 description 5
- 230000005856 abnormality Effects 0.000 description 4
- 230000006835 compression Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- 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/658—Incremental updates; Differential 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/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
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
- B60W50/02—Ensuring safety in case of control system failures, e.g. by diagnosing, circumventing or fixing failures
- B60W50/0205—Diagnosing or detecting failures; Failure detection models
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
- B60W50/02—Ensuring safety in case of control system failures, e.g. by diagnosing, circumventing or fixing failures
- B60W50/0225—Failure correction strategy
-
- 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
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
- B60W2050/0062—Adapting control system settings
- B60W2050/0075—Automatic parameter input, automatic initialising or calibrating means
- B60W2050/0083—Setting, resetting, calibration
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2510/00—Input parameters relating to a particular sub-units
- B60W2510/10—Change speed gearings
- B60W2510/1005—Transmission ratio engaged
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C5/00—Registering or indicating the working of vehicles
- G07C5/08—Registering or indicating performance data other than driving, working, idle, or waiting time, with or without registering driving, working, idle or waiting time
- G07C5/0808—Diagnosing performance data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Transportation (AREA)
- Mechanical Engineering (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
本发明提高程序更新的安全性。另外,简化程序的版本管理。具备:解压还原部,其在被输入了新的执行用程序与特定程序的差分数据的情况下,对压缩后的特定程序进行解压还原,并将执行用程序改写为特定程序;以及差分还原部,其根据差分数据和特定程序来差分还原新的执行用程序,并将特定程序改写为新的执行用程序。另外,具备:差分还原部,其在被输入了新的执行用程序与特定程序的差分数据的情况下,根据该差分数据和存储器部的执行用程序来差分还原新的执行用程序,并将存储器部的执行用程序改写为新的执行用程序;以及解压还原部,其对压缩后的特定程序进行解压还原,并将新的执行用程序改写为特定程序。
Description
技术领域
本发明涉及车载控制装置、及程序更新软件。
背景技术
车载控制装置的重编程经由低速的CAN(Controller Area Network控制器局域网络)将作为写入工具的PC(Personal Computer个人电脑)或车载写入装置和车载控制装置(ECU:Electric Control Unit电子控制单元)连接起来,一边分割传输所有二进制数据(新程序)一边写入ECU的闪存。
因此,即使在相对于旧程序的新程序的更新部分较小的情况下,也经由CAN传输整个新程序,并进行整个新程序的写入。
因此,会有写入花费时间的问题。对此,目前提出了基于差分的重编程的观点(例如,参照专利文献1)。即,在专利文献1的段落[0019]中,记载了“以块为单位生成新旧程序的差分数据的单元”来作为改写方式的一种。进一步地,在段落[0064]中,将更新对象块的旧程序传输至SDRAM,使用差分数据和旧程序将新程序还原到SDRAM,并在擦除更新对象块后写入新程序。
在专利文献2中,在段落[0006]中,记载了通过少量的RAM使用量实现差分更新的单元。不是将更新对象块的旧程序传输至RAM,而是传输至闪存的其他块中的方法。做法如下:在传输之后,擦除更新对象块,使用差分数据和传输后的旧程序来还原新程序,并将新程序写入至更新对象块。通过对所有的更新对象块反复进行该处理,可以将新程序写入闪存。但是,在其他块中还存在要写入的新程序的情况下,由于旧程序已经被擦除,因此执行使用了全文数据的现有的更新。
像这样,开发了实现基于差分的重编程的技术。
现有技术文献
专利文献
专利文献1:日本专利特开2012-190075号公报
专利文献2:日本专利特开2011-81561号公报
专利文献3:日本专利特开2016-118879号公报
发明内容
发明要解决的问题
基于差分的重编程存在若干问题。以下,详细地进行说明。对第1个问题进行说明。车载控制装置大多通过由数兆字节的非易失性存储器和1兆字节以下的较小的易失性存储器构成的存储装置来构成。这是为了通过仅凭内置于微机的存储器来实现控制从而实现低价的车载控制装置。因此,以非易失性存储器中存储的旧程序和差分数据作为输入,通过差分还原软件对新程序进行差分还原,并将新程序写入非易失性存储器,从而实现软件更新。
然而,需要诊断还原后的新程序能否正确地还原。例如,从所述写入工具、车载写入装置接收整个新程序的和值、哈希值等,并对车载控制装置自己所还原的新程序的和值、哈希值进行计算,通过校验是否与接收到的值一致,由此能够进行诊断。
第1个问题是,如果在诊断结果为异常的情况下,由于非易失性存储器中已经不存在旧程序,因此基于差分的重编程变得不可能这样的问题。第1个问题是提供低价且安全地解决该问题的单元。
在专利文献3中,未提及基于差分更新(基于差分的重编程)的程序改写单元,但公开了如下的单元:始终对前一版本的程序进行压缩并将其存储在第2存储器中,在第1存储器的旧程序的重编程存在异常的情况下,通过对第2存储器的压缩数据进行解压并将前一版本的程序写入第1存储器,从而能够使微机工作。专利文献3中还记载了如下内容:但是由于需要将前一版本的程序以压缩后的状态储存在第2存储器中,因此车载控制装置需要压缩单元。
接下来对第2个问题进行说明。差分更新一般根据新程序和前一版本来生成差分数据。然而,考虑到数百万台的召回事例,很难认为所有的车辆均搭载了前一版本的程序。在驾驶员未对拥有的车感到异常的情况下,由于召回而未进行程序更新的情况、因为去经销商麻烦等理由而未更新的情况很多。因此,差分更新需要准备与多个版本的差分数据。因此有版本管理变得复杂的问题。
第2个问题是提供简化该版本管理的复杂度的单元。
用于解决问题的技术手段
为了解决上述问题,作为一例,本发明具备:存储器部,其具有可改写的执行用程序和压缩后的特定程序;解压还原部,其在被输入了新的所述执行用程序与所述特定程序的差分数据的情况下,对压缩后的所述特定程序进行解压还原,并将所述执行用程序改写为所述特定程序;以及差分还原部,其根据所述差分数据和所述存储器部的所述特定程序来差分还原新的所述执行用程序,并将所述存储器部的所述特定程序改写为新的所述执行用程序。
另外,具备:存储器部,其具有可改写的执行用程序和压缩后的特定程序;差分还原部,其在被输入了新的所述执行用程序与所述特定程序的差分数据的情况下,根据该差分数据和所述存储器部的所述执行用程序来差分还原新的所述执行用程序,并将所述存储器部的所述执行用程序改写为新的所述执行用程序;以及解压还原部,其对压缩后的所述特定程序进行解压还原,并将新的所述执行用程序改写为所述特定程序。
发明的效果
根据本发明,能够提高程序更新的安全性。另外,能够简化程序的版本管理。
附图说明
图1是示出本发明的实施方式的车辆的整体构成的示意图。
图2是示出图1所示的车载控制装置的SRAM内部的构成的示意图。
图3是示出图1所示的车载控制装置的闪存内部的构成的示意图。
图4是本发明的第1实施例的更新软件的整体构成图。
图5A是示出图1的车载写入装置和车载控制装置的通信命令的种类的图。
图5B是程序写入装置发送图5A的通信命令的流程图。
图6是在图4和图10中使用的通信软件的流程图。
图7是在图4和图10中使用的差分还原软件的流程图。
图8是在图4和图10中使用的诊断软件的流程图。
图9是在图4和图10中使用的解压软件的流程图。
图10是本发明的第2实施例的更新软件的整体构成图。
图11是本发明的第2实施例的通信软件的流程图。
图12是作为本发明的第2实施例的变形例的更新软件1200的流程图。
具体实施方式
对第1解决手段进行说明。
车载控制装置在第1非易失性存储器中配置更新对象程序,在第2非易失性存储器中以压缩后的状态(压缩数据)配置特定程序(例如,紧急时用程序)。接下来,使用差分还原单元、利用根据旧程序和新程序生成的差分数据以及第1非易失性存储器的旧程序来差分还原新程序。接下来,使用诊断单元对还原后的新程序进行诊断。诊断后的结果是,在正常的情况下能够正确地更新,因此程序更新处理结束。另一方面,在异常的情况下,使用解压单元对压缩数据进行解压,并将解压后的特定程序写入第1非易失性存储器。
通过运行该特定程序,能够使车辆正常行驶。
根据第1解决手段,即使在差分更新失败了的情况下,也能凭借对压缩数据进行解压后的特定程序(例如,紧急时用程序)来使车辆处于能够行驶的状态。进一步地,由于特定程序能够限定为行驶所需的功能,因此能够设为更小的程序大小。因此,由于该压缩数据变为更小的大小,就结果来说,具有能够缩小备份用非易失性存储器(第2非易失性存储器)的容量的效果。
接下来,对第2解决手段进行说明。
在差分更新开始前,车载控制装置使用解压单元对第2非易失性存储器的压缩数据进行解压,并将特定程序写入第1非易失性存储器。接下来,使用差分还原单元、利用根据特定程序和新程序生成的差分数据以及第1非易失性存储器内的特定程序来差分还原新程序。将还原后的新程序写入第1非易失性存储器。
像这样,由于本解决手段在车载控制装置内的第1非易失性存储器中配置特定程序后再进行差分还原,因此只要仅准备特定程序和新程序的差分数据,就能对所有的车辆进行差分更新。
本解决手段组合解压单元和差分还原单元来实现。然而并不是简单地组合。原本,只要仅使用解压单元来还原新程序,就能简单地将第1非易失性存储器变更为新程序。然而,压缩数据多数情况下会是差分数据的10倍以上的大小。因此,车载写入装置与车载控制装置间的通信时间会增加,就结果来说会导致软件更新时间的增加。另一方面,在本实施例中,压缩数据的解压处理通过车载控制装置内的存储器间的处理来完成。因此,解压处理在短时间内完成。另外,在差分更新前执行解压单元来将第1非易失性存储器变更为特定程序的情况是通常无法想到的概念。那是因为,存在于第1非易失性存储器中的旧程序多数情况下是比特定程序新的版本。
因此,在首先改写为比旧程序更旧的版本的特定程序后,再进一步进行差分更新的概念是通常无法想到的概念。
进一步地,有第2解决手段的改善手段。
解决所述第2个问题的手段在使用解压单元将特定程序写入第1非易失性存储器后,根据差分数据和特定程序来差分还原新程序,并将新程序写入第1非易失性存储器。因此,在第1非易失性存储器中会发生2次写入。
改善手段是通过1次写入来实现的手段。首先,解压单元从第2非易失性存储器的压缩数据中解压特定程序的一部分,并写入易失性存储器。接下来,差分还原单元使用特定程序的所述一部分与新程序的一部分的差分数据、以及易失性存储器的特定程序的一部分,来对新程序的所述一部分进行差分还原。接下来,将还原后的新程序的一部分写入第1非易失性存储器。通过仅反复进行该一部分的解压处理和差分还原处理,来将整个新程序写入第1非易失性存储器。就结果来说,第1非易失性存储器通过1次写入而实现。
根据第2解决手段以及改善手段,由于是使用特定程序(例如,紧急时用程序)而非车载控制装置内的旧程序(第1非易失性存储器),所以差分数据根据特定程序和新程序而生成。即,即使是以不同版本的程序工作的车载控制装置,仅凭借本解决手段的差分数据也能对所有的车载控制装置进行差分更新。
像这样,通过本解决手段以及改善手段,不用管理与多个版本的程序的差分数据,因此能够简化程序的版本管理。
以下,使用附图对包含本发明的实施方式的车载控制装置的车辆的构成及动作进行说明。
车辆具备车载写入装置100(网关)和多个车载控制装置200(2001~200n)。车载写入装置100与车载控制装置200互相经由车载网络CAN进行通信。
车载控制装置200具备微机201、与每个车载控制装置200的用途对应的各种IC(Integrated Circuit,集成电路)204、CAN收发器等通信装置205。微机201内置SRAM202(易失性存储器)、闪存203(非易失性存储器)。
此外,车载写入装置100的构成也与车载控制装置200的构成基本相同,但还具备与车辆外部的网络的协议对应的通信装置。即,车载写入装置100具备微机101、各种IC104、CAN收发器等通信装置105、与车辆外部的网络的协议对应的通信装置106。微机101内置SRAM102、闪存103。
接下来,使用图2对车载控制装置200的SRAM202的构成进行说明。图2是示出图1所示的SRAM202内部的构成的示意图。
SRAM202具备接收区域202a、还原区域202b,该接收区域202a用于暂时地存储发送自车载写入装置100的差分数据,该还原区域202b用于暂时地存储使用差分数据差分还原后的还原程序。
接下来,使用图3对闪存203的构成进行说明。图3是示出图1所示的闪存203内部的构成的示意图。闪存203由多个大小的块B#n(n=1~B)和BOOT构成。这里,储存更新对象程序(二进制数据)的第1非易失性存储器302是块B#n(n=1~7)的区域。另外,储存本实施例的紧急时用程序的压缩数据的第2非易失性存储器303是块B#n(n=8~B)的区域。在本实施方式中,作为一例,将闪存203的大小设为2MB。这里,块B#n是可擦除的最小大小。例如,在将数据写入块B#n的情况下,需要擦出整个块B#n后再写入数据。
如图3所示,在闪存203中,在起始的块中与车载写入装置100进行通信,实现差分更新的更新软件301被搭载于BOOT。
(第1实施例)
接下来使用示出第1实施例的整体构成的图4对更新软件301的动作进行说明。
更新软件301使通信软件401运行,将接收自车载写入装置100的差分数据暂时地存储于SRAM202的接收区域202a。
接下来,使差分还原软件402运行,使用接收区域202a的差分数据和第1非易失性存储器302的旧程序(二进制数据)来进行差分还原,并将其结果储存到SRAM202的还原区域202b。接下来,通过擦除第1非易失性存储器302的块B#n(n=1~7)来删除旧程序,并将还原区域202b的还原程序复制到第1非易失性存储器302中。由此,新程序能够储存到第1非易失性存储器302中。接下来,使诊断软件403运行,对新程序是否正确地还原并且正确地写入进行诊断。若诊断结果为正常,则基于差分更新的软件更新结束。另一方面,若诊断结果为异常,则使解压单元404运行,对第2非易失性存储器303的压缩数据进行解压,并将作为其结果的紧急时用程序储存到SRAM202的还原区域202b。接下来,通过擦除第1非易失性存储器302的块B#n(n=1~7)来删除还原程序,并将还原区域202b的紧急时用程序复制到第1非易失性存储器302中。由此,紧急时用程序能够储存到第1非易失性存储器302。
像这样,即使在作为第1个问题的差分还原失败了的情况下,通过使用紧急时用程序的压缩数据,组合运行差分还原单元、诊断单元、解压单元,也能使车载控制装置安全地运行。
以下,使用图5~图9对通信单元、差分还原单元、诊断单元、解压单元的详情进行说明。
图5A是发送自车载写入装置100的通信命令。使用该通信命令将差分数据发送到车载控制装置200。
通信命令$10 500是向车载控制装置200通知开始发送差分数据的命令。车载控制装置通过接收该命令,从而能够将差分数据储存到接收区域202a。
通信命令$20 510是指定差分还原对象区域命令。对第1非易失性存储器302进行指定。附属的MA是起始地址,MS是大小。
通信命令$30 520是附属有差分数据的命令。DATA是差分数据。
通信命令$40 530是表示结束发送差分数据的命令。
通信命令$50 540是开始诊断命令。附属的MA是起始地址,MS是大小。车载控制装置从指定的起始地址MA中计算大小MS的区域的和值,并诊断其与储存于第1非易失性存储器302内规定的地址的和值一致的情况。
图5B是程序写入装置100向车载控制装置200发送通信命令的流程图。
550是通信命令,发送开始发送差分数据$10。
560是通信命令,发送指定差分还原对象区域$20。
570是通信命令,发送差分还原对象区域的差分数据$30。
580是通信命令,发送结束发送差分数据$40。
590判断是否发送完了所有块的差分数据,如果"是”就执行595,如果"否”就返回560并反复执行560~590。
595是通信命令,发送开始诊断$50。
以上,程序写入装置100将所有块的差分数据发送到了车载控制装置200。
图6示出车载控制装置200的通信软件401的动作在接收到图5的通信命令时的动作。
在600中,从车载写入装置100接收命令A。
在610中,判定命令A是否为$10,如果"是"就执行615,如果"否"就执行620。
在610中,初始化接收区域202a和还原区域202b来进行差分更新的准备。
在620中,判定命令A是否为$20,如果"是"就执行625,如果"否"就执行630。
在625中,存储差分还原对象区域的起始地址MA、大小MS。
在630中,判定命令A是否为$30,如果"是"就执行635,如果"否"就执行640。
在635中,将差分数据DATA存储到接收区域202a。
在640中,判定命令A是否为$40,如果"是"就执行645和646,如果"否"就执行650。
在645中,执行差分还原单元402,并将还原后的程序储存到还原区域202b。
在646中,从第1非易失性存储器302的地址MA中擦除大小MS的区域,并将还原区域202b复制到第1非易失性存储器302。
在650中,判定命令A是否为$50,如果"是"就执行655和656,如果"否"就结束。
在655中,执行诊断单元403,如果诊断结果为正常就结束。然而,如果诊断结果为异常,就执行解压单元404,并将解压后的紧急时用程序储存到还原区域202b。
在656中,从第1非易失性存储器302的差分还原对象区域的起始地址MA中擦除大小MS的区域,并将还原区域202b的紧急时用程序复制到第1非易失性存储器302。
以上,即使在差分更新后进行的诊断的结果存在异常的情况下,车载控制装置200也能使用紧急时用程序来工作。
图7是示出差分还原软件402的动作的流程图。
首先,对差分生成/差分还原软件进行说明。差分生成软件在差分提取处理等中,从旧程序中检索并找到与新程序的部分命令列类似的部分命令列,将该部分命令列替换为短的符号并使其附属于复制命令。
另一方面,在未找到类似的部分命令列的情况下,使该部分命令列附属于追加命令。该复制命令和追加命令的队列为差分数据。像这样,差分数据并不是单纯地从新程序中减去旧程序所得的结果,而是由将类似部分名列替换为短符号后的复制命令、追加命令等的队列构成。
根据以上的准备,对差分还原软件402的动作进行说明。
在700中,从接收区域202a的差分数据中读出差分命令。
在710中,对差分命令进行解析。
在720中,判定差分命令是否为复制命令,如果"是"就执行725,如果"否"就执行730。
在725中,将第1非易失性存储器302的旧程序的部分命令列从附属于命令的符号中写入还原区域202b。
在730中,判定差分命令是否为追加命令,如果"是"就执行735,如果"否"就执行740。
在735中,将附属于追加命令的数据(部分命令列)追加写入至还原区域202b。
在740中,判定是否读出了接收区域202a的所有差分数据,如果"是"则差分还原处理结束。如果"否"则返回700并反复进行处理。
以上,差分还原后的还原程序储存到了还原区域202b。
图8是诊断软件403的流程图。
在800中,将储存于第1非易失性存储器302的特定地址的更新程序的和值设定为变量SUM。
在810中,将从起始地址MA到大小MS为止的区域的数据(第1非易失性存储器302的程序)以4字节为单位相加后所得的值设定为变量S。
在820中,进行变量SUM与变量S的一致判定,如果"是"就执行825,如果"否"就执行830。
在825中,诊断结果为正常,因此软件更新正常结束。
在830中,诊断结果为异常,因此执行解压软件404。
图9是解压软件404的流程图
首先,对压缩/解压软件进行说明。压缩软件从程序中检索并找到与程序中的部分命令列类似的部分命令列,将该部分命令列替换为短符号并使其附属于复制命令。另一当面,在未找到类似的部分命令列的情况下,使该部分命令列附属于追加命令。该复制命令和追加命令的队列为压缩数据。像这样,压缩数据由将类似部分名列替换为短符号后的复制命令、追加命令等的队列构成。
根据以上的准备,对解压软件404的动作进行说明。
在900中,读出第2非易失性存储器303的压缩数据。
在910中,对压缩命令进行解析。
在920中,判定压缩命令是否为复制命令,如果"是"就执行925,如果"否"就执行930。
在925中,将压缩数据内的部分命令列从附属于命令的符号写入至还原区域202b。
在930中,判定压缩命令是否为追加命令,如果"是"就执行935,如果"否"就执行940。
在935中,将附属于追加命令的数据(部分命令列)追加写入至还原区域202b。
在940中,判定是否从第2非易失性存储器303中读出了所有压缩数据,如果"是"则压缩数据已被解压到还原区域202b,因此结束。另一当面,如果"否"则返回900并反复进行处理。
以上,使用图4~图9对第1实施例进行了说明。即,通过将第1非易失性存储器302的旧程序和差分数据作为输入的差分还原单元402进行差分更新来还原新程序,在诊断单元403得出的诊断结果为异常的情况下,通过解压单元对配置在第2非易失性存储器303中的紧急时用程序的压缩数据进行解压并写入第1非易失性存储器302,从而能够使车载控制装置200工作。
(第2实施例)
接下来,以作为第2实施例的方式,使用图10说明实现软件版本管理的简化的实施例。
图10的更新软件1000由通信软件1100、解压软件404、差分还原软件402以及诊断软件403构成。
图11是通信软件1100的流程图
在1110中,从车载写入装置100接收通信命令A。
在1120中,判定通信命令A是否为$10,如果"是"就执行1125,如果"否"就执行1130。
在1125中,初始化接收区域202a和还原区域202b,执行解压软件404来对第2非易失性存储器303的紧急时用程序的压缩数据进行解压并将紧急时用程序储存到还原区域202b。接下来,在擦除第1非易失性存储器302后,将还原区域202b的紧急时用程序写入第1非易失性存储器302。
以上,第1非易失性存储器302被更新为紧急时用程序。
在1130中,判定通信命令A是否为$20,如果"是"就执行1135,如果"否"就执行1140。
在1135中,存储被写入第1非易失性存储器302的紧急时用程序的差分还原对象区域的起始地址MA、大小MS。
在1140中,判定通信命令A是否为$30,如果"是"就执行1145,如果"否"就执行1150。
在1145中,将差分数据DATA储存到接收区域202a。
在1150中,判定通信命令A是否为$40,如果"是"就执行1155和1156,如果"否"就执行1160。
在1155中,执行差分还原软件402,使用接收区域202a的差分数据和第1非易失性存储器302的紧急时用程序(二进制数据)来进行差分还原,并将其结果储存到SRAM202的还原区域202b。
在1156中,通过擦除作为第1非易失性存储器302的差分还原对象区域的块B#n(n=1~7)来删除紧急时用程序,并将还原区域202b的还原程序复制到第1非易失性存储器302的差分还原对象区域。由此差分还原对象区域的新程序被储存到了第1非易失性存储器302的差分还原对象区域。
在1160中,判定通信命令A是否为$50,如果"是"就执行1165和1166,如果"否"则结束处理。根据图5A可知,$50是在所有块的差分更新完成后发出的通信命令。
在1165中,执行诊断软件403,对新程序是否被正确地还原并且是否被正确地写入进行诊断。若诊断结果为正常,则基于差分更新的软件更新结束。另一方面,若诊断结果为异常,则再次执行解压单元404,并将解压后的紧急时用程序储存到SRAM202的还原区域202b。
在1166中,擦除第1非易失性存储器302,并将还原区域202b的紧急时用程序再次复制到第1非易失性存储器302。由此紧急时用程序被储存到了第1非易失性存储器302中。解压软件404、差分还原软件402、诊断软件403的动作说明已经使用图7~图9说明了,因此省略。
像这样,如本实施例所示,作为第2个问题的软件版本的差分更新时的复杂度只要在第2非易失性存储器303中配置特定程序的压缩数据,并在差分更新前进行解压并写入第1非易失性存储器,就能仅使用所述特定程序与新程序的差分数据进行简化。
接下来,以图12对第2实施例进行说明。
基本的想法是,对第1非易失性存储器的每个块解压压缩数据,将块的还原后的紧急时用程序写入SRAM的第2还原区域,使用差分还原单元并根据该块的新程序与紧急时用程序的差分数据、以及第2还原区域的数据来进行还原,将还原后的新程序写入还原区域202b,随后将还原区域202b的数据写入第1非易失性块。通过反复进行该每个块的处理来实现。
图12是更新软件1200的流程图。
在1210中,如前所述,由于对每个块反复进行处理,因此设定第1非易失性存储器的第N块来作为准备。即,将第N块的起始地址MA(N)设定为起始地址MA,将第N块的大小MS(N)设定为大小MS。
在1220中,通过解压单元从第2非易失性存储器内的压缩数据中仅对第N块用的紧急时用程序进行解压,并将解压还原后的紧急时用程序写入SRAM的第2还原区域。
在1230中,通过差分还原单元并根据第N块的新程序与紧急时用程序的差分数据、以及第2还原区域的数据来还原第N块的新程序,并写入还原区域202b。
在1240中,将还原区域202b的新程序写入第1非易失性存储器的第N块。
在1250中,判定是否还原了所有的块,如果"是"则结束,如果"否"就执行1260。
在1260中,为了还原下一个的第(N+1)块,将第(N+1)块的起始地址设定为MA,将第(N+1)块的大小设定为MS,并执行1220。
以上,完成了对每个块进行解压还原和差分还原,并将其结果写入第1非易失性存储器的每个块。其结果,实现了通过1次将第1非易失性存储器更新为新程序。
符号说明
100…车载写入装置(网关)、101…微机(运算装置)、102…SRAM(易失性存储器)、103…闪存(非易失性存储器)、104…各种IC、105…通信装置(CAN协议)、106…通信装置(车辆外部的网络的协议)、200…车载控制装置(ECU)、201…微机(运算装置)、202…SRAM(易失性存储器)、203…闪存(非易失性存储器)、204…各种IC、205…通信装置(CAN协议)、202a…接收区域、202b…还原区域、301…BOOT中储存的实现第1个问题的更新软件、302…第1非易失性存储器(旧程序等更新对象程序储存区域)、303…第2非易失性存储器(紧急时用程序的压缩数据储存区域)、401…实现通信单元的通信软件、402…实现差分还原单元的差分还原软件、403…实现诊断单元的诊断软件、404…实现解压单元的解压软件、500…开始发送差分数据通信命令、510…指定差分还原对象区域的通信命令、520…差分数据发送用通信命令、530…结束发送差分数据的通信命令、540…指示开始诊断的通信命令、1000…BOOT中储存的实现第2个问题的更新软件、1100…BOOT中储存的实现第2个问题的通信软件、1200…BOOT中储存的实现第2个问题的改善手段的更新软件。
Claims (10)
1.一种车载控制装置,其特征在于,具备:
存储器部,其具有可改写的执行用程序和压缩后的特定程序;
解压还原部,其在被输入了新的所述执行用程序与所述特定程序的差分数据的情况下,对压缩后的所述特定程序进行解压还原,并将所述执行用程序改写为所述特定程序;以及
差分还原部,其根据所述差分数据和所述存储器部的所述特定程序来差分还原新的所述执行用程序,并将所述存储器部的所述特定程序改写为新的所述执行用程序,
所述特定程序为与所述执行用程序不同的、限定为行驶所需的功能的紧急时用程序。
2.根据权利要求1所述的车载控制装置,其特征在于,具备:
诊断部,其对新的所述执行用程序进行诊断,
所述解压还原部根据所述诊断的结果,将新的所述执行用程序改写为所述特定程序。
3.根据权利要求2所述的车载控制装置,其特征在于,
所述存储器部包含存储所述执行用程序的第1存储器区域和存储压缩后的所述特定程序的第2存储器区域,
所述解压还原部对所述第2存储器区域的压缩后的所述特定程序进行解压还原,并将所述第1存储器区域的所述执行用程序改写为所述特定程序,
所述差分还原部根据所述差分数据和所述第1存储器区域的所述特定程序来差分还原新的所述执行用程序,并将所述第1存储器区域的所述特定程序改写为新的所述执行用程序。
4.根据权利要求2所述的车载控制装置,其特征在于,
在车辆的变速档位处于P档位置的情况下,使用所述解压还原部和差分还原部,将所述执行用程序改写为新的所述执行用程序。
5.根据权利要求1至4中的任一项所述的车载控制装置,其特征在于,
所述解压还原部和所述差分还原部对程序的每个块反复进行处理。
6.一种非易失性存储器,在所述非易失性存储器中存储有车载控制装置的程序更新软件,该车载控制装置具备存储器部,所述存储器部具有可改写的执行用程序和压缩后的特定程序,
所述非易失性存储器的特征在于,所述车载控制装置的程序更新软件具备:
解压还原部,其在被输入了新的所述执行用程序与所述特定程序的差分数据的情况下,对压缩后的所述特定程序进行解压还原,并将所述执行用程序改写为所述特定程序,以及
差分还原部,其根据该差分数据和所述存储器部的所述特定程序来差分还原新的所述执行用程序,并将所述存储器部的所述特定程序改写为新的所述执行用程序,
所述特定程序为与所述执行用程序不同的、限定为行驶所需的功能的紧急时用程序。
7.根据权利要求6所述的非易失性存储器,其特征在于,所述车载控制装置的程序更新软件具备:
诊断部,其对新的所述执行用程序进行诊断,
所述解压还原部根据所述诊断的结果,将新的所述执行用程序改写为所述特定程序。
8.根据权利要求7所述的非易失性存储器,其特征在于,
所述存储器部包含存储所述执行用程序的第1存储器区域和存储压缩后的所述特定程序的第2存储器区域,
所述解压还原部对所述第2存储器区域的压缩后的所述特定程序进行解压还原,并将所述第1存储器区域的所述执行用程序改写为所述特定程序,
所述差分还原部根据所述差分数据和所述第1存储器区域的所述特定程序来差分还原新的所述执行用程序,并将所述第1存储器区域的所述特定程序改写为新的所述执行用程序。
9.根据权利要求7所述的非易失性存储器,其特征在于,
在车辆的变速档位处于P档位置的情况下,使用所述解压还原部和所述差分还原部,将所述执行用程序改写为新的所述执行用程序。
10.根据权利要求6至9中的任一项所述的非易失性存储器,其特征在于,
所述解压还原部和差分还原部对程序的每个块反复进行处理。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017-058395 | 2017-03-24 | ||
JP2017058395 | 2017-03-24 | ||
PCT/JP2018/010158 WO2018173911A1 (ja) | 2017-03-24 | 2018-03-15 | 車載制御装置、及び、プログラム更新ソフトウェア |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110402428A CN110402428A (zh) | 2019-11-01 |
CN110402428B true CN110402428B (zh) | 2024-01-30 |
Family
ID=63584331
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880016086.3A Active CN110402428B (zh) | 2017-03-24 | 2018-03-15 | 车载控制装置、及程序更新软件 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11263001B2 (zh) |
EP (1) | EP3611614A4 (zh) |
JP (1) | JP6719020B2 (zh) |
CN (1) | CN110402428B (zh) |
WO (1) | WO2018173911A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10387139B2 (en) * | 2017-07-25 | 2019-08-20 | Aurora Labs Ltd. | Opportunistic software updates during select operational modes |
WO2021131754A1 (ja) * | 2019-12-24 | 2021-07-01 | 京セラ株式会社 | 通信機器及びプログラム |
CN112346773A (zh) * | 2020-11-05 | 2021-02-09 | 经纬恒润(天津)研究开发有限公司 | Ecu升级方法及装置 |
JP2023088703A (ja) * | 2021-12-15 | 2023-06-27 | キヤノン株式会社 | 情報処理装置、その制御方法、及びプログラム |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1926513A (zh) * | 2004-03-02 | 2007-03-07 | 西门子公司 | 用于通过数据传输更新计算机程序的方法和数据处理设备 |
CN101334736A (zh) * | 2007-06-28 | 2008-12-31 | 索尼爱立信移动通信日本株式会社 | 软件更新方法和便携式终端设备 |
CN103154900A (zh) * | 2010-10-15 | 2013-06-12 | 株式会社日立解决方案 | 编入程序更新方法、编入程序更新程序、电子设备、网络系统 |
CN103701930A (zh) * | 2014-01-07 | 2014-04-02 | 浙江大学 | 一种移动应用程序的实时更新方法及系统 |
JP2014067215A (ja) * | 2012-09-26 | 2014-04-17 | Kyocera Document Solutions Inc | 省電力システム及び画像形成装置 |
CN104025047A (zh) * | 2012-01-05 | 2014-09-03 | 三菱电机株式会社 | 信息处理装置、信息处理方法以及计算机程序 |
WO2014148003A1 (ja) * | 2013-03-19 | 2014-09-25 | 株式会社デンソー | 車載電子制御装置のプログラム書換システム及び車載中継装置 |
CN104133227A (zh) * | 2013-05-03 | 2014-11-05 | 天津市天堰医教科技开发有限公司 | 一种急救车的车载导航系统 |
JP2016170740A (ja) * | 2015-03-16 | 2016-09-23 | 日立オートモティブシステムズ株式会社 | ソフト更新装置、ソフト更新方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6836657B2 (en) | 2002-11-12 | 2004-12-28 | Innopath Software, Inc. | Upgrading of electronic files including automatic recovery from failures and errors occurring during the upgrade |
JP2007080034A (ja) * | 2005-09-15 | 2007-03-29 | Sony Corp | 情報処理システムおよび方法、受信装置および方法、データ生成装置および方法、プログラム、並びに情報処理装置 |
WO2007039907A2 (en) * | 2005-10-06 | 2007-04-12 | Red Bend Ltd. | Methods and systems for updating content including a compressed version |
JP4859465B2 (ja) * | 2006-01-11 | 2012-01-25 | ソニー・エリクソン・モバイルコミュニケーションズ株式会社 | ソフトウェア更新方法および移動端末装置 |
JP2007323488A (ja) * | 2006-06-02 | 2007-12-13 | Seiko Epson Corp | データ格納装置及びデータアクセス方法 |
JP2011081561A (ja) | 2009-10-06 | 2011-04-21 | Canon Inc | 情報処理装置 |
JP5653259B2 (ja) | 2011-03-08 | 2015-01-14 | クラリオン株式会社 | 更新差分データ作成装置、データ更新システムおよび更新差分データ作成プログラム |
US9075686B2 (en) * | 2013-02-25 | 2015-07-07 | GM Global Technology Operations LLC | System and method to improve control module reflash time |
US9430220B2 (en) * | 2014-07-22 | 2016-08-30 | GM Global Technology Operations LLC | Method, medium, and apparatus for re-programming flash memory of a computing device |
JP6354566B2 (ja) | 2014-12-19 | 2018-07-11 | 株式会社デンソー | マイクロコンピュータ |
EP3252605B1 (en) | 2015-01-26 | 2022-04-06 | Hitachi Astemo, Ltd. | Vehicle-mounted control device, program writing device, program generating device and program |
DE102015014049A1 (de) * | 2015-10-30 | 2017-05-04 | Audi Ag | Steuergeräte-Update im Kraftfahrzeug |
-
2018
- 2018-03-15 US US16/477,787 patent/US11263001B2/en active Active
- 2018-03-15 CN CN201880016086.3A patent/CN110402428B/zh active Active
- 2018-03-15 WO PCT/JP2018/010158 patent/WO2018173911A1/ja unknown
- 2018-03-15 JP JP2019507607A patent/JP6719020B2/ja active Active
- 2018-03-15 EP EP18771815.0A patent/EP3611614A4/en active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1926513A (zh) * | 2004-03-02 | 2007-03-07 | 西门子公司 | 用于通过数据传输更新计算机程序的方法和数据处理设备 |
CN101334736A (zh) * | 2007-06-28 | 2008-12-31 | 索尼爱立信移动通信日本株式会社 | 软件更新方法和便携式终端设备 |
CN103154900A (zh) * | 2010-10-15 | 2013-06-12 | 株式会社日立解决方案 | 编入程序更新方法、编入程序更新程序、电子设备、网络系统 |
CN104025047A (zh) * | 2012-01-05 | 2014-09-03 | 三菱电机株式会社 | 信息处理装置、信息处理方法以及计算机程序 |
JP2014067215A (ja) * | 2012-09-26 | 2014-04-17 | Kyocera Document Solutions Inc | 省電力システム及び画像形成装置 |
WO2014148003A1 (ja) * | 2013-03-19 | 2014-09-25 | 株式会社デンソー | 車載電子制御装置のプログラム書換システム及び車載中継装置 |
CN104133227A (zh) * | 2013-05-03 | 2014-11-05 | 天津市天堰医教科技开发有限公司 | 一种急救车的车载导航系统 |
CN103701930A (zh) * | 2014-01-07 | 2014-04-02 | 浙江大学 | 一种移动应用程序的实时更新方法及系统 |
JP2016170740A (ja) * | 2015-03-16 | 2016-09-23 | 日立オートモティブシステムズ株式会社 | ソフト更新装置、ソフト更新方法 |
Non-Patent Citations (2)
Title |
---|
Incremental Update Method for Resource-Constrained In-vehicle ECUs;Hidetoshi Teraoka et.al;《 2016 IEEE 5TH GLOBAL CONFERENCE ON CONSUMER ELECTRONICS》;全文 * |
LZW压缩算法在终端程序远程更新中的应用;刘德伟等;《单片机与嵌入式系统应用》;20100501(第05期);第50-52页 * |
Also Published As
Publication number | Publication date |
---|---|
EP3611614A4 (en) | 2020-12-23 |
US11263001B2 (en) | 2022-03-01 |
WO2018173911A1 (ja) | 2018-09-27 |
JP6719020B2 (ja) | 2020-07-08 |
JPWO2018173911A1 (ja) | 2020-01-16 |
CN110402428A (zh) | 2019-11-01 |
EP3611614A1 (en) | 2020-02-19 |
US20190339963A1 (en) | 2019-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110402428B (zh) | 车载控制装置、及程序更新软件 | |
CN108027753B (zh) | 车载控制装置、程序更新系统以及保存有程序更新软件的存储介质 | |
CN107077396B (zh) | 车载控制装置、程序写入装置、程序生成装置以及方法 | |
CN110244958B (zh) | 用于更新车辆的标定数据的方法和装置 | |
US20070250254A1 (en) | On-vehicle control apparatus | |
US11449329B2 (en) | Vehicle control device and program update system | |
US7904896B2 (en) | Program rewriting system, boot loader, storage medium, and electronic control unit | |
JP2018160207A (ja) | 車載制御装置、及び、プログラム更新ソフトウェア | |
JP2023166016A (ja) | 制御装置、方法、プログラム、及び車両 | |
EP2709073A2 (en) | Electronic control unit of vehicle | |
CN114844874B (zh) | Ota管理器、更新控制方法、非暂时性存储介质及车辆 | |
JP6838714B2 (ja) | 車載制御装置 | |
JP2018160208A (ja) | 車載制御装置、及び、プログラム更新ソフトウェア | |
WO2023175752A1 (ja) | 車載プログラム更新システム、車載プログラム更新方法 | |
US20220204008A1 (en) | Arithmetic processing device, vehicle control device, and update method | |
KR102705918B1 (ko) | Ota 마스터, 센터, 시스템, 갱신 방법, 비일시적 기억 매체 및 차량 | |
JP6782654B2 (ja) | 車載制御装置、及び、プログラム更新ソフトウェア | |
US20230143921A1 (en) | Electronic control system, storage medium storing data structure of software package, and storage medium storing computer program | |
CN117178254A (zh) | 有效存储数据的方法 | |
KR19980084401A (ko) | 플레쉬 메모리에 다운로드된 데이터의 오류검사방법 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Ibaraki Applicant after: Hitachi astemo Co.,Ltd. Address before: Ibaraki Applicant before: HITACHI AUTOMOTIVE SYSTEMS, Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |