CN107077396B - 车载控制装置、程序写入装置、程序生成装置以及方法 - Google Patents

车载控制装置、程序写入装置、程序生成装置以及方法 Download PDF

Info

Publication number
CN107077396B
CN107077396B CN201680003606.8A CN201680003606A CN107077396B CN 107077396 B CN107077396 B CN 107077396B CN 201680003606 A CN201680003606 A CN 201680003606A CN 107077396 B CN107077396 B CN 107077396B
Authority
CN
China
Prior art keywords
data
block
program
difference
compressed data
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
Application number
CN201680003606.8A
Other languages
English (en)
Other versions
CN107077396A (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.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Automotive Systems 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 Hitachi Automotive Systems Ltd filed Critical Hitachi Automotive Systems Ltd
Publication of CN107077396A publication Critical patent/CN107077396A/zh
Application granted granted Critical
Publication of CN107077396B publication Critical patent/CN107077396B/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/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • B60R16/023Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements for transmission of signals between vehicle parts or subsystems
    • B60R16/0231Circuits relating to the driving or the functioning of the vehicle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Abstract

提供能够高速且容易地进行重新编程的车载控制装置、程序写入装置、程序生成装置以及程序。ECU(300)具备微型计算机(301)、SRAM(302)、闪速存储器(303)、通信装置(305)。闪速存储器(303)由多个块构成,存储旧程序。通信装置(305)接收包括块数据、块数据的种类以及写入块数据的块的地址的帧(S205)。微型计算机(301)根据块数据种类(S255、S260)从块数据将新程序恢复到SRAM(302)(S260),将恢复后的一些新程序写入与地址对应的块(S265、S270)。

Description

车载控制装置、程序写入装置、程序生成装置以及方法
技术领域
本发明涉及车载控制装置、程序写入装置、程序生成装置以及方法。
背景技术
在现有的重新编程中,经由低速的CAN(Controller Area Network:控制器局域网)将作为写入工具的PC(Personal Computer:个人电脑)与车载控制装置(ECU(EngineControl Unit:发动机控制单元))连接,一边分割传输加载模块(新程序)一边写入到ECU的闪速存储器。
另外,即使在相对于旧程序的新程序的更新部分小的情况下,也经由CAN传输新程序整体,进行新程序整体的写入。
因此,会有写入花费时间的问题。对此,目前提出差异(差分)重新编程的想法(例如参照专利文献1)。即,在专利文献1的段落[0020]中记载“差异重写”作为重写方式的一种。
现有技术文献
专利文献
专利文献1:日本特开2011-081604号公报
发明内容
发明要解决的问题
在专利文献1公开的技术中,一般发送新程序整体与旧程序整体的差异。
但是,在ECU的微型计算机中,存储程序的闪速存储器的大小(size)较大,但是作为工件存储器而使用的SRAM(Static Random Access Memory静态随机存取存储器)的大小较小。因此,将新程序整体与旧程序整体的差异存储在SRAM中,难以恢复新程序整体。
本发明的目的为提供能够高速且容易地进行重新编程的车载控制装置、程序写入装置、程序生成装置以及程序。
用于解决课题的手段
为了达到上述目的,本发明的基本想法基本为,着眼于由多个块(block)构成内置在ECU的微型计算机中的闪速存储器这点,将新程序和旧程序分割为块单位,将压缩了该块的新程序与多个块的旧程序之间的差异而得的差异压缩数据传输给车辆控制装置,将在车辆控制装置侧接收到的差异压缩数据解压并使用闪速存储器的多个块的旧程序来恢复新程序,对各个块重复向闪速存储器的该块的写入。由此,进一步压缩差异,所以即使是小的SRAM也能够通过恢复为块单元而恢复新程序整体。当然,如果SRAM的大小有富余,则新程序也能够以多个块单位生成差异压缩数据,而恢复。另外,本发明的目的为,不是缩短新旧程序的简单的差异的写入时间,而是缩短将差异压缩而得的差异压缩数据的写入时间。
基于上述的基本想法,本发明具备:非易失性存储器(FLASH),其由多个块构成,存储旧程序;易失性存储器(SRAM);通信装置,其接收包括块数据、上述块数据的种类以及非易失性存储器(闪速存储器)的上述块的地址的帧,上述块数据的结构为,包括以每个上述块的大小进行分割并生成该块的新程序和多个块的旧程序之间的差异后进行压缩而得的差异压缩数据或者压缩该块的新程序而得的压缩数据;以及运算装置,其根据上述块数据的种类,将该块的新程序从上述块数据和多个块的旧程序恢复到易失性存储器(SRAM)中,或将该块的新程序从上述块数据恢复到易失性存储器(SRAM)中,将恢复后的该块的新程序写入到与上述地址对应的该块中。
发明的效果
根据本发明,能够高速且容易地进行重新编程。通过以下实施方式的说明能够明确上述以外的课题、结构以及效果。
附图说明
图1是表示发明的实施方式的系统整体结构的示意图。
图2是图1所示的PC的结构图。
图3是图1所示的车载系统的结构图。
图4是表示图3所示的ECU的SRAM的内部结构的示意图。
图5是表示图3所示的闪速存储器的内部结构的示意图。
图6是差异压缩数据生成软件的结构图。
图7是压缩数据生成软件的结构图。
图8是带选择功能的差异压缩数据生成软件的结构图。
图9是带限制功能的差异压缩数据生成软件的结构图。
图10是表示图1的PC处理的带选择功能的差异压缩数据生成软件的流程图。
图11是表示图1的PC处理的带限制功能的差异压缩数据生成软件的流程图。
图12是小变更的新程序中的块选择的概要。
图13是追加了大程序的新程序中的块选择的概要。
图13A是追加了大程序的新程序中的多个旧块选择的概要。
图13B是删除了大程序的新程序中的多个旧块选择的概要。
图14是块选择的流程图。
图14A是追加了大程序的新程序中的多个旧块选择时的流程图。
图14B是删除了大程序的新程序中的多个旧块选择时的流程图
图15是表示图1所示的服务器处理的流程图。
图16是表示图3所示的网关处理的流程图。
图17是网关所生成的帧的结构图的一例。
图18是恢复软件的结构图。
图19是与带选择功能的差异压缩数据生成软件和带限制功能的差异压缩数据生成软件对应的ECU的恢复软件的结构。
图20是与带选择功能的差异压缩数据生成软件对应的ECU的闪速存储器写入处理流程图。
图21是与带限制功能的差异压缩数据生成软件对应的ECU的闪速存储器写入处理流程图。
具体实施方式
以下,使用附图说明本发明实施方式的包括车载控制装置的系统结构以及动作。
最初,使用图1说明系统的整体结构。图1是表示发明的实施方式的系统整体结构的示意图。
本系统具备程序生成装置100、车载系统3。
程序生成装置100根据新程序和车载系统3所包括的车载控制装置中存储的旧程序来生成数据,将生成的数据发送给车载系统3。另外,使用图8~图15在后面说明其细节。
程序生成装置100具备PC1、服务器2。PC1例如经由LAN(Local Area Network:局域网)与服务器2连接。另外,也可以使用十字电缆直接将服务器2与PC1连接。
程序生成装置100通过无线与车载系统3进行通信。例如经由英特网、移动电话网、无线LAN等进行通信。另外,图1中,为了容易观察附图,未显示路由器、接入点等中继设备。
车载系统3从程序生成装置100接收数据,根据接收到的数据来更新车载系统3中包括的车载控制装置的程序。另外,在后面使用图16~图21说明其细节。
接着,使用图2说明PC1的结构。图2是图1所示的PC1的结构图。
PC1具备CPU(Central Processing Unit:中央处理单元)等运算装置210、键盘以及鼠标等输入装置202、LCD(Liquid Crystal Display:液晶显示器)等显示装置203、NIC(Network Interface Card:网络接口卡)等通信装置204、RAM(Random Access Memory:随机存取存储器)、ROM(Read Only Memory:只读存储器)、HDD(Hard Disk Drive:硬盘驱动器)等存储装置205。运算装置201、输入装置202、显示装置203、通信装置204与总线连接。
存储装置205存储与车载系统3所包括的车载控制装置的闪速存储器中存储的程序相同的旧程序以及将旧程序更新后的新程序。
另外,图1所示的服务器2的结构与PC1的结构相同。即,服务器2具备运算装置201S、输入装置202S、显示装置203S、通信装置204S、存储装置205S。
接着,使用图3说明车载系统3的结构。图3是图1所示的车载系统3的结构图。
车载系统3具备一个网关310(程序写入装置)、多个ECU300(3001~300n)。网关310以及ECU300经由车载网络CAN相互通信。
网关310在认证成功时,在车辆外部的网络和车辆内部的CAN之间中继数据。
ECU300具备微型计算机301、与每个ECU300的用途对应的各种IC(IntegratedCircuit:集成电路)304、CAN收发器等通信装置305。微型计算机301内置SRAM302(易失性存储器)、闪速存储器303(非易失性存储器)。
另外,网关310的结构也和ECU300的结构基本相同,但是还具备与车辆外部的网络协议对应的通信装置。即,网关310具备微型计算机311、各种IC314、CAN收发器等通信装置315、与车辆外部的网络协议对应的通信装置316。微型计算机311内置SRAM312、闪速存储器313。
接着,使用图4说明ECU300的SRAM302的结构。图4是表示图3所示的SRAM302的内部结构的示意图。
SRAM302具备用于暂时存储数据的第一区域302a、用于恢复第一区域302a中存储的数据的第二区域302b。
在本实施方式中,作为一例,SRAM302的大小是96kB,第一区域302a的大小是16kB,第二区域302b的大小是64kB。
接着,使用图5说明闪速存储器303的结构。图5是表示图3所示的闪速存储器303的内部结构的示意图。
闪速存储器303由多个大小的块构成。在本实施方式中,作为一例,闪速存储器303的大小为2MB。闪速存储器303由8kB、64kB两种块构成。这里,块是擦除数据的最小单位。例如,在将4kB的数据写入8kB的块中时,擦除8kB的数据后写入4kB的数据。
如图5所示,闪速存储器303在8kB、8kB、64kB、64kB、64kB、64kB、64kB的块中存储旧程序。
另外,闪速存储器303存储所谓恢复软件,即根据暂时存储在SRAM302的第一区域302a中的数据种类,能够从第一区域302a的数据和已经存在于闪速存储器303中的旧程序在SRAM302的第二区域302b中恢复新程序,或者解压第一区域302a的压缩数据来恢复新程序。
接着,使用图6说明差异压缩数据生成软件的概要。另外,PC1的运算装置201通过执行差异压缩数据生成软件600来执行以下的处理。
运算装置201(差异压缩数据生成软件600)将旧程序610和新程序620作为输入来生成差异数据630。差异生成部601生成旧程序和新程序的差异,压缩部602压缩该差异并生成差异压缩数据630。这样差异压缩生成软件600不仅简单生成差异,也进行压缩来生成更小的差异压缩数据。
接着,使用图7说明压缩数据生成软件的概要。另外,PC1的运算装置201通过执行压缩数据生成软件700来执行以下的处理。
运算装置201(压缩数据生成软件700)将新程序620作为输入来生成压缩数据730。压缩部701具有压缩程序的功能。这样压缩数据生成软件简单地进行压缩输入程序来生成压缩数据的动作。
接着使用图8说明本发明的一个带选择功能的差异压缩数据生成软件800。
一般如果比较新旧程序的差异压缩数据和新程序的压缩数据的大小,则差异压缩数据变小。这是由于差异压缩数据能够活用旧程序的信息,所以能够更加紧凑。但是,当新旧程序为完全不同的程序时,相反有时不同的部分过多因此差异变得过大,压缩数据变小。进一步,当ECU300内的闪速存储器中没有存储旧程序时(最初写入的情况),不能够生成差异压缩数据。
因此着眼于该点说明所发明的图8的带选择功能的差异压缩数据生成软件800的结构及其动作。带选择功能的差异压缩数据生成软件800的结构为,除了差异生成部810和压缩部820,还追加了输入判定部830和选择部840。即,输入判定部830通过判定831判定是输入旧程序610和新程序620还是只输入新程序620。当存在旧程序610和新程序620时(831:是),通过差异生成部810生成差异,通过压缩部820生成压缩差异而得的差异压缩数据841并交给选择部840。
在判定842中如果差异压缩数据841的大小为基准值(阈值)以下(842:是),则选择部840将差异压缩数据841作为输出数据850输出。如果比基准值大(842:否),则经由815对压缩部820进行压缩新程序620的指示。压缩部820生成压缩数据843,暂时保持在选择部840中。选择部840通过选择单元844选择差异压缩数据841和压缩数据843的大小较小的一方并输出给输出数据850。
该结果为能够得到更小的差异压缩数据或压缩数据。另一方面当在输入判定部830的判定831为否的情况下,经由815将新程序620交给压缩部820,生成压缩数据843。选择部840通过选择单元844选择压缩数据843并输出给输出数据850。
这样,带选择功能的差异压缩数据生成软件800能够生成比差异压缩数据生成软件600更小的大小的输出数据。进一步即使在不存在旧程序的情况下也能够压缩新程序并输出。但是,也考虑稍微简略化的结构。例如在生成843的压缩数据时,可以不进行选择单元844进行的大小比较而将压缩数据843作为输出数据850。这是因为在判定842中已经判断为差异压缩数据为基准值以上所以认为不需要选择单元844。另外,成为输入的新程序可以是被分割为多个块的一个块中的新程序,旧程序可以是被分割为多个块的若干块中的旧程序。
接着使用图9说明本发明的一个带限制功能的差异压缩数据生成软件900的结构及其动作。
最初说明限制功能的必要性。如果差异压缩数据、压缩数据被发送给ECU300,则在ECU300的第一区域302a中接收。但是如果差异压缩数据、压缩数据的大小比第一区域302a更大,则不能够接收全部该数据而作为结果不能够恢复。这是限制的必要性。
因此带限制功能的差异压缩数据生成软件900的结构为,除了输入判定部910、差异生成部950、压缩部960以及选择部970还附加了限制部980。说明以下的处理动作。输入中有ECU300的第一区域大小1S(925),是由限制部980使用的信息。
首先,输入判定部910通过判定911判定是输入了旧程序610和新程序620还是只输入了新程序620,如果存在旧程序610和新程序620(911:是),则差异生成部950生成差异,压缩部960生成压缩差异而得的差异压缩数据971。在判定972中如果差异压缩数据大小为基准值以下,则选择部970将差异压缩数据971作为选择数据981交给限制部980。
如果差异压缩数据971的大小比基准值大(972:否),则经由915对压缩部960进行压缩新程序620的指示。压缩部960压缩新程序629而生成压缩数据973。选择部970的选择单元974将差异压缩数据971和压缩数据973的大小较小的一方作为选择数据981交给限制部980。
限制部980在限制单元982中比较选择数据981的大小(SS)和第一区域大小(1S),如果选择数据981小(SS≤1S),则将选择数据981作为输出数据930输出。这里选择数据981为差异压缩数据971或压缩数据973。另一方面如果选择数据981的大小(SS)比第一区域大小(1S)大(SS>1S),则输出数据930成为新程序。
如果是新程序,则能够在擦除闪速存储器的该块之后分割发送给第一区域并分成多次写入到该块中。
接着使用图10说明PC1使用图8的带选择功能的差异压缩数据生成软件800生成差异压缩数据或压缩数据,并发送给服务器2为止的流程图。
基本的想法在于如下方面,即不是针对旧程序和新程序整体生成差异压缩数据、压缩数据,而是将新旧程序分割为多个块,生成配置在一个块中的新程序和配置在ECU300的闪速存储器303的一个或多个块中的旧程序的差异压缩数据或压缩数据。
PC1的运算装置201首先在步骤S10检查是否存在旧程序。如果不存在(S10:否),则在步骤S40将新程序分割为ECU300的闪速存储器303的块B(J)(J=1、2、……、N)的大小。在步骤S45选择块B(J),重复进行处理到步骤S60为止。在步骤S50使用带选择功能的差异压缩数据生成软件800压缩选择出的块B(J)的新程序而生成压缩数据。另外也存储压缩数据的大小。
接着,在步骤S55将B(J)的压缩数据发送给服务器2。在步骤S60检查是否处理完了所有的块,如果J=N(S60:是),则结束处理。如果J≠N则作为J=J+1返回步骤S45,重复执行。
当在步骤S10存在旧程序时(S10:是),则在步骤S15按照ECU300的闪速存储器303的块B(I)(I=1、2、……、N)的每个大小分割新程序和旧程序。这里,PC1的存储装置205存储ECU300的闪速存储器303的每一个块B(I)的大小、块B(I)的地址以及ECU300的ID(标识符)。
PC1的运算装置201进行与块B(I)相关的循环的初始设定(I=1)(步骤S20)。PC1的运算装置201在步骤S25输入块B(I)的新程序和I个块B(I)、B(I-1)、B(I-2)、……、B(1)的旧程序并执行带选择功能的差异压缩数据生成软件800。其结果为,生成块B(I)的差异压缩数据或压缩数据。另外也存储其大小。接着在步骤S30将块B(I)的差异压缩数据或压缩数据发送给服务器2。接着在步骤S35检查是否处理了所有的块,如果是I=N则结束。如果是I≠N则设为I=I+1并返回步骤S20,重复执行。
以上能够按照ECU300的闪速存储器303的每个块大小将差异压缩数据或压缩数据、该数据大小、块的大小、块的地址发送给服务器2。
接着使用图11说明另一个发明即PC1使用图9的带限制功能的差异压缩数据生成软件900将差异压缩数据或压缩数据或新程序发送给服务器2为止的流程图。同样,基本想法在于如下方面,即不是生成新旧程序整体的差异压缩数据、压缩数据,而是将新旧程序分割为多个块,生成配置在一个块中的新程序和配置在ECU300的闪速存储器303的一个或多个块中的旧程序的差异压缩数据或压缩数据。
PC1的运算装置201在步骤S70检查是否存在旧程序。如果不存在(S70:否),则在步骤S100以后的处理进行将新程序分割为块并将压缩数据或新程序发送给服务器2的处理。
首先在步骤S100将新程序分割为ECU300的闪速存储器303的块B(J)(J=1、2、……、N)的大小。在步骤S105选择块B(J),重复进行处理到步骤S120为止。在步骤S110中输入选择出的块B(J)的新程序和第一区域大小1S(图9的925)并执行带限制功能的差异压缩数据生成软件900。
其结果为,输出块B(J)的压缩数据或新程序。另外也存储该数据大小。接着在步骤S115中将B(J)的压缩数据或新程序发送给服务器2。在步骤S120检查是否处理完了所有的块,如果是J=N(S120:是),则结束处理。如果是J≠N则设为J=J+1并返回步骤S105,重复执行。
当在步骤S70存在旧程序时(S70:是),则在步骤S75按照ECU300的闪速存储器303的每个块B(I)(I=1、2、……、N)的大小分割新程序和旧程序。这里,PC1的存储装置205存储ECU300的闪速存储器303的每一个块B(I)的大小、块B(I)的地址以及ECU300的ID(标识符)。PC1的运算装置101进行与块B(I)相关的循环的初始设定(I=1)(步骤S80)。
PC1的运算装置201在步骤S85中输入配置在块B(I)中的新程序和配置在I个块B(I)、B(I-1)、B(I-2)、……、B(1)中的旧程序以及第一区域大小1S(图9的925)并执行带限制功能的差异压缩数据生成软件900。其结果,输出B(I)的差异压缩数据或压缩数据或新程序,所以在步骤S90中发送给服务器2。接着在步骤S95检查是否处理了所有的块B(I)(I=1~N),如果是I=N则结束。如果是I≠N则设为I=I+1并返回步骤S80,重复执行。
以上能够按照ECU300的闪速存储器303的每个块大小将差异压缩数据或压缩数据或新程序、该数据大小、块的大小、块的地址发送给服务器2。
以上所述的图10、图11的PC1的处理流程为,将新旧程序分割为ECU300的闪速存储器的相同块B(I)单位,根据配置在分割后的一个块中的新程序和配置在多个块中的旧程序来生成差异压缩数据。使用图12、图13、图13A、图13B来说明其理由。
图12的OL10表示将旧程序分割为ECU的闪速存储器的块B(1)~B(7)的结构。另一方面,N10表示将新程序分割为ECU的闪速存储器的块B(1)~B(7)的结构。新程序的V10是追加/变更的场所。即,是追加/变更了旧程序的部分。
另一方面,R10、R20、R30表示随着V10的追加/变更而变更了对V10内的变量的参照地址后的微型计算机的命令串。即由于V10的追加/变更,变量的地址被变更,因此伴随此,之前的变量地址也变更,所以同时R10~R30的参照地址也变更。因此,新程序N10的块B(3)由于V10产生追加/变更,块B(5)由于R10和R20产生变更,块B(6)由于R30产生变更。
这里应该关注的是真正的变更只是V10一个地方,R10~R30的变更是尽管会随着V10的变更而产生派生的变更,但是从新程序整体观察则没有太大的变更这点。因此,在这样的小变更时,即使将新旧程序以相同的块B(I)为单位而生成差异压缩数据,其数据大小也大多为基准值以下。
因此,在进行以软件不良为原因的程序更新时,即使将新旧程序分割为块,在相同的块间生成差异压缩数据也能够得到充分小的差异压缩数据。
另一方面,图13是表示旧程序OL20和存在大变更的新程序N20的图。这里N20的B(4)中有大的追加变更部分AD10。R100、R110、R120、R130、R140、R150表示伴随AD10的追加/变更的参照变量的地址变更。这里N20的块B(3)的新程序没有变更场所,因此与旧程序OL20的B(3)相同,但是N20的块B(4)的新程序与OL20的块B(4)的旧块当然完全不同。
接着的N20的块B(5)的新程序与OL20的块B(5)的旧程序有很大不同,大多与OL20的块B(4)的旧程序类似。这是由于考虑了通过AD10的追加OL20的B(4)的旧程序移动到N20的B(5)的新程序部分。因此,知道最适合生成差异压缩数据的块的选择方法不是简单地在相同块之间进行即可的情况。
这里,图13的CP100表示在B(3)的新旧程序之间生成差异压缩数据更好。另一方面,图13的CP110表示B(5)的新程序与B(4)的旧程序类似,图13的CP120表示B(6)的新程序与B(5)的旧程序类似。作为结果,表示由B(4)的旧程序和B(5)的新程序生成差异压缩数据,而由B(5)的旧程序和B(6)的新程序生成差异压缩数据的一方能够减少差异压缩数据大小。
如以上所述,详细地说明了选择最适合块B(K)(K=1~N)的新程序的块B(I)的旧程序的概要。
但是,说明了只选择一个最适合新程序的块(K)的旧程序B(I)的概要,旧程序B(I)也可以是多个。
图13A是概要说明了在对新程序N20追加了大的程序时,选择对新块B(K)来说最适合的多个旧块B(I)(I=1~K)的图。即已经说明了如果对新程序B(4)追加了大的程序AD10,则与新块B(5)对应的旧块B(4)为最适合,但是反过来说,选择包括旧块B(4)的多个旧块B(1)~B(4)即可。
一般差异生成算法找出旧块的类似二进制码,生成差异,所以更大的旧程序能够生成更小的差异。因此,最适合新块B(6)的多个旧块是通过图13A的CP100A指示的B(1)~B(6)的6个旧块,最适合新块B(5)的多个旧块是通过图13A的CP110A指示的B(1)~B(5),最适合新块B(4)的多个旧块是通过图13A的CP120A指示的B(1)~B(4)。
这样,在追加了大程序时,重要的是按照块的编号从大到小的顺序生成差异压缩数据、与新程序的块对应的多个旧块的选择从该块开始按照从小到大编号的块的顺序选择多个。如果这样选择旧程序的块,即使将块改写为新程序,也能够选择在恢复时使用的旧程序。
图13B是概要说明了在从旧程序OL20删除了大的程序时,选择对新程序的块B(K)来说最合适的旧程序的多个块B(I)(I=N~K)的图。
新程序N20的块B(4)表示删除了大的程序AD10B。其结果,是表示其内容为接近旧程序OL20的块B(5)的内容的图。其结果认为对于N20的块B(5),OL20的块B(6)是最佳。因此,最适合N20的块B(5)的旧程序的块选择包括OL20的块B(6)的多个块B(5)~B(7)即可。一般差异生成算法找出旧块中的类似二进制码,生成差异,所以更大的旧程序能够生成更小的差异。
因此,最适合N20的块B(4)的OL20的多个块是通过CP100B指示的B(4)~B(7)这4个旧块,最适合N20的块B(5)的OL20的多个块是通过CP110B指示的B(5)~B(7),最适合N20的块B(6)的OL20的多个块是通过CP120B指示的B(6)~B(7)。这样,当删除了大的程序时,重要的是按照块编号从小到大的顺序生成差异压缩数据、与新块对应的多个旧块的选择从该块开始按照从大到小的编号的块的顺序选择多个。这样,如果选择旧程序的块,则即使将块改写为新程序也能够选择在恢复时使用的旧程序。
图14、图14A、图14B表示按照以上所述的图13、图13A、图13B的概要通过PC1选择最适合新程序的块B(K)的旧程序的块B(I)或多个旧块的流程图。这样,能够选择最适合生成差异压缩数据的旧块或多个旧块。
最初,图14表示选择最适合图13的块B(K)(K=1~N)的新程序的块B(I)的旧程序的处理流程。
PC1的运算装置201在步骤S130将新程序分割为ECU300的闪速存储器303的块B(K)(K=1~N)。接着在步骤S135选择块B(K)(K=1:初始值)的新程序。在步骤S140将旧程序分割为ECU300的闪速存储器303的块B(I)(I=1~N)。在步骤S145选择块B(I)(I=1:初始值),在步骤S150生成B(K)与B(I)的差异压缩数据。接着在步骤S155比较差异压缩数据大小和基准值,当差异压缩数据大小为基准值以下时(步骤S155:是),在步骤S170选择块B(I)的旧程序。相反,当差异压缩数据大小比基准值大时(步骤S155:否),在步骤S160中设为I=I+1返回步骤S145,重复处理。如果在步骤S155比较了所有的块B(I)的旧程序的结果为否时,在步骤S160中I=N,所以执行步骤S165,并选择无块(选择B(K)的压缩)。接着在步骤S175检查所有的B(K)(K=1~N)的处理是否结束,如果K=N则处理结束。如果K≠N,则设为K=K+1返回步骤S135,重复处理。
以上能够选择最适合每个B(K)(K=1~N)的块的旧程序。
图14A是选择追加了大的程序的新程序中的多个旧块时的流程图。
PC1的运算装置201在步骤S130A将新程序分割为ECU300的闪速存储器303的块B(K)(K=N~1)。接着在步骤S135A选择块B(K)(K=N:初始值)的新程序。在步骤S140A将旧程序分割为ECU300的闪速存储器303的块B(I)(I=1~N)。
在步骤S145A选择K个块BB(BB=B(1)~B(K))的旧程序,在步骤S150A生成B(K)的新程序与BB的旧程序的差异压缩数据。接着在步骤S155A比较差异压缩数据大小和基准值,当差异压缩数据大小为基准值以下时(步骤S155A:是),在步骤S170A选择块B(1)至块B(K)的旧程序。相反,当差异压缩数据大小比基准值大时(步骤S155A:否),在步骤S165A中选择无块(压缩B(K)的新程序),在步骤S175A中作为K=K-1返回步骤S135A,重复处理。另外,在K=1处理结束。这样,从最后的块编号N的块B(N)的新程序开始,选择与B(K)的新程序对应的多个块的旧程序(B(1)~B(K)),生成该差异压缩数据。
另外,从差异压缩数据和旧程序开始解码的顺序也从最后的块开始即可。
图14B是选择删除了大的程序的新程序中的多个旧块时的流程图。
PC1的运算装置201在步骤S130B将新程序分割为ECU300的闪速存储器303的块B(K)(K=1~N)。接着在步骤S135B选择块B(K)(K=1:初始值)的新程序。在步骤S140B将旧程序分割为ECU300的闪速存储器303的块B(I)(I=1~N)。
在步骤S145B选择多个块BB(BB=B(K)~B(N))的旧程序,在步骤S150B生成B(K)的新程序与BB的旧程序的差异压缩数据。接着在步骤S155B比较差异压缩数据大小和基准值,当差异压缩数据大小为基准值以下时(步骤S155B:是),在步骤S170B选择块B(K)至块B(N)的旧程序。相反,当差异压缩数据大小比基准值大时(步骤S155B:否),在步骤S165B中选择无块(压缩B(K)的新程序),在步骤S175B中设为K=K+1返回步骤S135B,重复处理。另外,在K=N处理结束。这样,从最初的块编号1的块B(1)的新程序开始,选择与B(K)的新程序对应的多个块的旧程序(B(K)~B(N)),生成该差异压缩数据。
另外,从差异压缩数据和旧程序开始解码的顺序也从最初的块开始即可。
以上详细说明了选择最适合块的新程序的多个块的旧程序的方法。另外,在图14A以及图14B所说明的例子中,差异压缩数据是将与多个块对应的第一数据(旧程序)和与一个块对应的第二数据(新程序)的差异进行压缩而得的数据。这里,第一数据至少包括一个通过将旧程序分割为块大小而得到的数据,第二数据包括一个通过将新程序分割为块大小而得到的数据。
接着,使用图15说明服务器2的动作。图15是表示图1所示的服务器2的处理的流程图。
服务器2的运算装置201S响应PC1的请求,由通信装置204从PC1接收块B(K)(K=1~N)的数据(差异压缩数据或压缩数据或新程序)(步骤S180)。服务器2的运算装置201S将从PC1接收到的数据存储在存储装置205中(步骤S185)。这里,服务器2的运算装置201S对所有块B(K)(K=1~N)进行从步骤S180到步骤S185的处理。
接着,服务器2的运算装置201S将预定的事件作为触发,将存储在存储装置205中的B(K)(K=1~N)的数据发送给网关310(步骤S190)。预定的事件例如是来自预定定时的网关310的请求、用户执行预定的操作而引起的来自网关310的请求等。
接着,说明网关310的动作。图16是表示图3所示的网关310的处理的流程图。
网关310的微型计算机311响应服务器2的请求,经由通信装置316接收块B(K)(K=1~N)的数据(差异压缩数据或压缩数据或新程序)(步骤S200)。网关310的微型计算机311将从服务器2接收到的数据存储在闪速存储器313中(步骤S205)。接着网关310的微型计算机311对所有块B(K)(K=1~N)执行从步骤S200到步骤S205的处理。
网关310的微型计算机311判定将存储在ECU300的闪速存储器303中的程序进行更新的条件是否成立(步骤S210)。例如,在预定的运转状态下,当用户进行了预定的操作时,判定为满足更新程序的条件。
当满足更新程序的条件时(步骤S210:是),网关310的微型计算机311根据存储在ECU300的闪速存储器313中的数据生成帧(步骤S215)。
详细地说,网关310的微型计算机311如图17所示生成帧,该帧包括对ECU300的命令f1、块数据的种类f2、块数据的大小f3、写入块数据的块地址f4、由恢复处理而参照的旧程序的块的地址f5、块数据f6。
这里命令f1设定指示写入的命令。块数据是块B(K)的差异压缩数据或压缩数据或新程序。块数据的种类f2表示块数据是差异压缩数据、压缩数据、新程序中的任意一个。程序数据的大小f3表示差异压缩数据大小、压缩数据大小、新程序的大小中的任意一个。
这样,网关310(程序写入装置)的微型计算机311(运算装置)生成将块数据的种类f2附加到块数据f6中的帧。
另外,在图17中,虽然没有图示,但帧包括发送节点的ID、接收节点的ID。这里,发送节点是网关310的ID,接收节点是ECU300的ID。
返回图16,网关310的微型计算机311将生成的帧经由通信装置316发送给ECU300(步骤S220)。
接着,说明配置在ECU300的闪速存储器303中的恢复软件。图18是恢复软件的结构。另外,ECU300的运算装置301通过执行恢复软件1800来执行以下的处理。
向运算装置301(恢复软件1800)的输入是差异压缩数据1810和旧程序1820。恢复软件1800由将压缩后的差异压缩数据进行解压的解压部1840、根据解压部1840的输出即差异和旧程序1820来恢复新程序1830的差异恢复部1850构成。这样恢复软件1800由解压部和差异恢复部构成。
另一方面,为了处理带选择功能的差异压缩数据、带限制功能的差异压缩数据,不仅需要恢复差异压缩数据也需要恢复压缩数据。图19表示与带选择功能的差异压缩数据生成软件800(图8)和带限制功能的差异压缩数据生成软件900(图9)对应的新恢复元件1900的结构。另外,ECU300的运算装置301通过执行恢复软件1900来执行以下的处理。
首先向运算装置301(恢复软件1900)的输入是块数据1910和旧程序1920。块数据1910是差异压缩数据或压缩数据。通过后述的图21说明新程序,但是不通过本恢复软件1900进行处理。因此成为本恢复软件1900的输入的块数据1910设为差异压缩数据或压缩数据。
恢复元件1900的特征为,除了解压部1940和差异恢复部1950外,还具备数据种类判定部1960。如果输入了块数据1910则解压部1940生成将块数据1910解压后的数据。如果数据种类判定部1960在判定1961判定解压后的数据种类是差异,则将差异交给差异恢复部1950。差异恢复部1950将差异和旧程序1920输入而生成新程序1930。另一方面当在判定1961判定解压后的数据种类为新程序时,将新程序输出给1930。
这样,恢复软件1900具有在1900内部判定差异或新程序的功能。在图8的带选择功能的差异压缩数据生成软件800的输出数据850中记载有能够判别是差异压缩数据还是压缩数据的信息,同样图9的带限制功能的差异压缩数据生成软件900的输出数据930中也记载有表示是差异压缩数据或压缩数据或新程序的判别信息。
接着使用图20说明将通过带选择功能的差异压缩数据生成软件800发送来的块数据(图10)恢复并更新ECU300的闪速存储器303的流程图。
ECU300如果在步骤S230接收到帧,则在步骤S235将该块数据和ECU300内的闪速存储器的块的旧程序输入给恢复软件1900并执行恢复软件1900。其结果为将新程序恢复到SRAM的第二区域。接着在步骤S240擦除ECU300的地址f4的闪速存储器的块,并设为能够写入的状态。最后在步骤S245将SRAM的第二区域的新程序写入块,结束处理。
以上能够以块单位来更新新程序。为了更新所有程序,通过接收所有的帧(步骤S230),写入各个块的新程序来实现。
接着使用图21说明将通过带限制功能的差异压缩数据生成软件900发送来的块数据(图11)进行恢复并更新ECU300的闪速存储器303的流程图。
ECU300如果在步骤S250接收到帧,则在步骤S255根据块数据的种类f2区分为差异压缩数据或压缩数据、新程序这2种情形。差异压缩数据或压缩数据的情形为在步骤S260将该块数据和ECU300内的闪速存储器的块的旧程序输入给恢复软件1900并执行恢复软件1900。
其结果为将新程序恢复到SRAM的第二区域。接着在步骤S265擦除ECU300的地址f4的闪速存储器的块,并设为能够写入的状态。接着在步骤S270将SRAM的第二区域的新程序写入块,结束处理。另一方面在步骤S255如果块数据的种类f2是新程序的情形,则在步骤S265擦除ECU300的地址f4的闪速存储器的块,并设为能够写入的状态。接着在步骤270将新程序写入块,结束处理。
以上能够以块单位来更新新程序。为了更新所有程序,接收所有的帧(步骤S250),并写入各个块的新程序,由此能够实现。
如以上说明那样,根据本实施方式能够高速且容易地进行编程。另外,用户能够不把车辆带到经销商而在任何地方都能够进行编程。
另外,本发明不限定于上述的实施方式而包括各种变形例。例如,上述实施方式是为了容易理解地说明本发明而进行了详细说明,不限定于必须具备所说明的所有结构。另外,能够将某个实施方式的结构的一部分置换为其他实施方式的结构,另外,也能够对某个实施方式的结构增加其他实施方式的结构。另外,关于各个实施方式的结构的一部分能够进行其他结构的追加/删除/置换。
在上述实施方式中,程序生成装置100由2台计算机(PC1以及服务器2)构成,计算机的台数是任意的。
在上述实施方式中,以块单位从PC1发送给服务器2,但是如果PC1或服务器2的存储器容量充分则也可以汇总多个块来发送差异压缩数据、压缩数据。另外从服务器2对网关310的发送依赖于网关310的SRAM312和闪速存储器313的容量。如果SRAM312和闪速存储器313的大小充分,则可以汇总地发送。
另一方面从网关310经由CAN对ECU300的发送由于ECU的SARAM容量302小,所以应该以一个或多个块单位进行发送。在本实施例中,作为恢复所需要的SRAM大小为一个块大小,但是也可以根据SRAM302的大小以多个块单位来生成差异压缩数据和压缩数据。可以根据SRAM302的大小来决定该选择。
在上述实施方式中,闪速存储器303由2种大小的块构成,但是也可以由3个以上不同大小的块构成。另外,闪速存储器313也可以由1种大小的块构成。
另外,上述各个结构、功能等例如也可以通过由集成电路设计等由硬件来实现它们的一部分或全部。另外,上述各个结构、功能等可以由处理器解释并执行实现各功能的程序而由软件来实现。实现各个功能的程序、表、文件等信息能够放置在存储器、硬盘、SSD(Solid State Drive:固态硬盘)等记录装置或IC卡、SD卡、DVD等记录介质中。
另外,本发明的实施方式也可以是以下的方式。
(第一方式)
一种车载控制装置,其特征在于,在块数据的种类是差异压缩数据的情况下,运算装置根据块数据和与地址对应的块中存储的旧程序来恢复新程序,将恢复后的新程序写入到块的写入地址中。
(第二方式)
一种车载控制装置,其特征在于,在块数据的种类是压缩数据的情况下,运算装置根据块数据来恢复新程序,将恢复后的新程序写入到块的写入地址中。
(第三方式)
一种车载控制装置,其特征在于,非易失性存储器至少由2个不同大小的块构成。
(第四方式)
一种车载控制装置,其特征在于,非易失性存储器是闪速存储器。
(第五方式)
易失性存储器是SRAM。
(第六方式)
一种车载控制装置,其特征在于,运算装置是微型计算机,易失性存储器和非易失性存储器被内置在微型计算机中。
(第七方式)
一种差异压缩数据生成程序,具备判定有无第一数据的输入的输入判定工序,选择工序包括在通过输入判定工序判定为没有第一数据的输入时,输出将第二数据进行压缩而得的压缩数据。
(第八方式)
一种差异压缩数据生成程序,具备判定有无第一数据的输入的输入判定工序,选择工序包括在通过输入判定工序判定为有第一数据的输入并且差异压缩数据的大小比基准值小时,输出差异压缩数据。
附图标记的说明
1:PC、2:服务器、3:车载系统、100:程序生成装置、101:运算装置、102:输入装置、103:显示装置、104:通信装置、105:存储装置、201:运算装置、202:输入装置、203:显示装置、204:通信装置、205:存储装置、300:ECU(车载控制装置)、301:微型计算机(运算装置)、302:SRAM(易失性存储器)、302a:SRAM的第一区域、302b:SRAM的第二区域、303:闪速存储器(非易失性存储器)、304:各种IC、305:通信装置、310:网关(程序写入装置)、311:微型计算机、312:SRAM、313:闪速存储器、314:各种IC、315:通信装置(CAN协议)、316:通信装置(车辆外部的网络协议)、600:差异压缩数据生成软件、700:压缩数据生成软件、800:带选择功能的差异压缩数据生成软件、900:带限制功能的差异压缩数据生成软件、1800:差异压缩数据恢复软件、1900:新的差异压缩数据恢复软件。

Claims (16)

1.一种车载控制装置,具备:
非易失性存储器,其由多个块构成,存储旧程序;
易失性存储器;
通信装置,其接收包括块数据、上述块数据的种类以及上述块的写入地址的帧,其中,上述块数据包含将第一数据和第二数据的差异压缩后的差异压缩数据或者将上述第二数据压缩而得的压缩数据,上述第一数据包括至少一个通过将上述旧程序分割为上述块的大小而得到的数据,上述第二数据包括一个通过将新程序分割为上述块的大小而得到的数据;以及
运算装置,其根据上述块数据的种类将上述第二数据恢复到上述易失性存储器,将恢复后的上述第二数据写入上述块的写入地址,
该车载控制装置的特征在于,
上述差异压缩数据是将不同块的上述第一数据与上述第二数据的差异进行压缩而得的数据。
2.根据权利要求1所述的车载控制装置,其特征在于,
上述差异压缩数据的大小为基准值以下。
3.一种车载控制装置,具备:
非易失性存储器,其由多个块构成,存储旧程序;
易失性存储器;
通信装置,其接收包括块数据、上述块数据的种类以及上述块的写入地址的帧,其中,上述块数据包含将第一数据和第二数据的差异压缩后的差异压缩数据或者将上述第二数据压缩而得的压缩数据,上述第一数据包括至少一个通过将上述旧程序分割为上述块的大小而得到的数据,上述第二数据包括一个通过将新程序分割为上述块的大小而得到的数据;以及
运算装置,其根据上述块数据的种类将上述第二数据恢复到上述易失性存储器,将恢复后的上述第二数据写入上述块的写入地址,
该车载控制装置的特征在于,
上述差异压缩数据是将与多个上述块对应的上述第一数据和与一个块对应的上述第二数据的差异进行压缩而得的数据。
4.根据权利要求3所述的车载控制装置,其特征在于,
上述第一数据由配置在从最初的块到上述一个块为止的多个块中的旧程序构成。
5.根据权利要求3所述的车载控制装置,其特征在于,
上述第一数据由配置在从上述一个块到最后的块为止的多个块中的旧程序构成。
6.一种程序写入装置,具备:
运算装置,其生成将块数据的种类附加给上述块数据后的帧,上述块数据包括将第一数据与第二数据的差异进行压缩而得的差异压缩数据或将上述第二数据进行压缩而得的压缩数据,上述第一数据包括至少一个通过将存储在由多个块构成的车辆控制装置的非易失性存储器中的旧程序分割为上述块的大小而得到的数据,上述第二数据包括一个通过将新程序分割为上述块的大小而得到的数据;以及
通信装置,其将上述帧发送给车载控制装置,
该程序写入装置的特征在于,上述差异压缩数据是将不同块的上述第一数据与上述第二数据的差异进行压缩而得数据。
7.一种程序写入装置,具备:运算装置,其生成将块数据的种类附加给上述块数据后的帧,上述块数据包括将第一数据与第二数据的差异进行压缩而得的差异压缩数据或将上述第二数据进行压缩而得的压缩数据,上述第一数据包括至少一个通过将存储在由多个块构成的车辆控制装置的非易失性存储器中的旧程序分割为上述块的大小而得到的数据,上述第二数据包括一个通过将新程序分割为上述块的大小而得到的数据;以及
通信装置,其将上述帧发送给车载控制装置,
该程序写入装置的特征在于,
上述差异压缩数据是将与多个上述块对应的上述第一数据和与一个块对应的上述第二数据的差异进行压缩而得的数据,
上述第一数据由配置在从最初的块到一个上述块为止的多个块中的旧程序构成。
8.一种程序写入装置,具备:
运算装置,其生成将块数据的种类附加给上述块数据后的帧,上述块数据包括将第一数据与第二数据的差异进行压缩而得的差异压缩数据或将上述第二数据进行压缩而得的压缩数据,上述第一数据包括至少一个通过将存储在由多个块构成的车辆控制装置的非易失性存储器中的旧程序分割为上述块的大小而得到的数据,上述第二数据包括一个通过将新程序分割为上述块的大小而得到的数据;以及
通信装置,其将上述帧发送给车载控制装置,
该程序写入装置的特征在于,
上述差异压缩数据是将与多个上述块对应的上述第一数据和与一个块对应的上述第二数据的差异进行压缩而得的数据,
上述第一数据由配置在从一个上述块到最后的块为止的多个块中的旧程序构成。
9.根据权利要求6-8中任一项所述的程序写入装置,其特征在于,
上述差异压缩数据是将预定个数的上述第一数据与上述预定个数的上述第二数据的差异进行压缩而得的数据。
10.根据权利要求6-8中任一项所述的程序写入装置,其特征在于,
上述压缩数据是将预定个数的上述第二数据进行压缩而得的数据。
11.一种程序生成装置,具备:
存储装置,其存储旧程序和新程序,上述旧程序与存储在车载控制装置的非易失性存储器中的程序相同,上述新程序是将上述旧程序更新后的程序;
运算装置,其具有:分割部,其生成第一数据和第二数据,上述第一数据包括至少一个通过将上述旧程序分割为上述非易失性存储器的块的大小而得到的数据,上述第二数据包括一个通过将上述新程序分割为上述非易失性存储器的上述块的大小而得到的数据;差异生成部,其生成上述第一数据与上述第二数据的差异;压缩部,其生成将上述差异进行压缩而得的差异压缩数据;以及选择部,其在上述差异压缩数据的大小为基准值以上时,生成将上述第二数据进行压缩而得的压缩数据,选择上述差异压缩数据和上述压缩数据中的任意一个较小的数据作为块数据;以及
通信装置,其将上述块数据发送给上述车载控制装置,
该程序生成装置的特征在于,
上述差异压缩数据是将不同块的上述第一数据与上述第二数据的差异进行压缩而得数据。
12.根据权利要求11所述的程序生成装置,其特征在于,
该程序生成装置还具备判定有无上述第一数据的输入的输入判定部,
上述选择部在通过上述输入判定部判定为有上述第一数据的输入时,输出上述差异压缩数据,在通过上述输入判定部判定为没有上述第一数据的输入时,输出将上述第二数据压缩而得的压缩数据。
13.根据权利要求11所述的程序生成装置,其特征在于,
上述运算装置具有:限制部,其比较用于暂时存储上述块数据的上述车载控制装置的易失性存储器的第一区域的大小与上述块数据的大小,在上述块数据大时,废弃上述块数据并将上述第二数据设定为上述块数据。
14.一种程序生成装置的程序生成方法,使运算装置执行如下工序:
差异生成工序,其生成第一数据与第二数据的差异,上述第一数据包括至少一个通过将旧程序分割为非易失性存储器的块的大小而得到的数据,上述第二数据包括一个通过将新程序分割为上述非易失性存储器的上述块的大小而得到的数据;以及
选择工序,其输出将上述差异压缩而得的差异压缩数据和将上述第二数据压缩而得的压缩数据中的任意一个较小的数据,
该程序生成方法的特征在于,
上述差异压缩数据是将不同块的上述第一数据与上述第二数据的差异进行压缩而得数据。
15.一种程序生成装置的程序生成方法,使运算装置执行如下工序:
差异生成工序,其生成第一数据与第二数据的差异,上述第一数据包括至少一个通过将旧程序分割为非易失性存储器的块的大小而得到的数据,上述第二数据包括一个通过将新程序分割为上述非易失性存储器的上述块的大小而得到的数据;以及
选择工序,其输出将上述差异压缩而得的差异压缩数据和将上述第二数据压缩而得的压缩数据中的任意一个较小的数据,
该程序生成方法的特征在于,
还具备判定有无上述第一数据的输入的输入判定工序,
上述选择工序在通过上述输入判定工序判定为有上述第一数据的输入时,输出上述差异压缩数据,在通过上述输入判定工序判定为没有上述第一数据的输入时,输出将上述第二数据压缩而得的压缩数据。
16.一种程序生成装置的程序生成方法,使运算装置执行如下工序:
解压工序,其对将第一数据与第二数据的差异进行压缩而得的差异压缩数据或将上述第二数据进行压缩而得的压缩数据进行解压,其中,上述第一数据包括至少一个通过将旧程序分割为非易失性存储器的块的大小而得到的数据,上述第二数据包括一个通过将新程序分割为上述块的大小而得到的数据;
数据种类判定工序,其判定通过上述解压工序生成的数据是上述第一数据与上述第二数据的差异还是上述第二数据;
差异恢复工序,其根据上述差异和存储在上述非易失性存储器的上述块中的旧程序来恢复新程序;以及
输出工序,其在通过上述数据种类判定工序判定为数据的种类是差异时,输出通过上述差异恢复工序进行恢复的新程序,在通过上述数据种类判定工序判定为数据的种类是上述第二数据时,输出上述第二数据,
该程序生成方法的特征在于,
上述差异压缩数据是将不同块的上述第一数据与上述第二数据的差异进行压缩而得数据。
CN201680003606.8A 2015-01-26 2016-01-08 车载控制装置、程序写入装置、程序生成装置以及方法 Active CN107077396B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2015-012021 2015-01-26
JP2015012021 2015-01-26
PCT/JP2016/050409 WO2016121442A1 (ja) 2015-01-26 2016-01-08 車載制御装置、プログラム書き込み装置、プログラム生成装置及びプログラム

Publications (2)

Publication Number Publication Date
CN107077396A CN107077396A (zh) 2017-08-18
CN107077396B true CN107077396B (zh) 2020-12-04

Family

ID=56543062

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680003606.8A Active CN107077396B (zh) 2015-01-26 2016-01-08 车载控制装置、程序写入装置、程序生成装置以及方法

Country Status (5)

Country Link
US (2) US10228934B2 (zh)
EP (1) EP3252605B1 (zh)
JP (2) JP6434994B2 (zh)
CN (1) CN107077396B (zh)
WO (1) WO2016121442A1 (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10430176B2 (en) 2014-11-17 2019-10-01 Hitachi Automotive Systems, Ltd. In-vehicle control device, program update system, and program update software
WO2016121442A1 (ja) * 2015-01-26 2016-08-04 日立オートモティブシステムズ株式会社 車載制御装置、プログラム書き込み装置、プログラム生成装置及びプログラム
JP6281535B2 (ja) * 2015-07-23 2018-02-21 株式会社デンソー 中継装置、ecu、及び、車載システム
KR101917378B1 (ko) * 2016-10-10 2018-11-09 현대오트론 주식회사 리프로그래밍 장치, 전자제어유닛 및 이를 이용한 리프로그래밍 방법
JP6782654B2 (ja) * 2017-03-24 2020-11-11 日立オートモティブシステムズ株式会社 車載制御装置、及び、プログラム更新ソフトウェア
WO2018173911A1 (ja) * 2017-03-24 2018-09-27 日立オートモティブシステムズ株式会社 車載制御装置、及び、プログラム更新ソフトウェア
CN110494847B (zh) * 2017-04-12 2023-02-17 住友电气工业株式会社 中继设备、传送方法和计算机程序
US10402192B2 (en) 2017-07-25 2019-09-03 Aurora Labs Ltd. Constructing software delta updates for vehicle ECU software and abnormality detection based on toolchain
JP6731892B2 (ja) * 2017-07-28 2020-07-29 日立オートモティブシステムズ株式会社 車載メモリの改竄検知装置
JP2019036238A (ja) * 2017-08-21 2019-03-07 株式会社東芝 更新制御装置、端末、更新制御方法およびプログラム
US11449329B2 (en) * 2018-02-16 2022-09-20 Hitachi Astemo, Ltd. Vehicle control device and program update system
JP7311245B2 (ja) 2018-03-07 2023-07-19 トヨタ自動車株式会社 マスタ装置、マスタ、制御方法、プログラム及び車両
JP6718483B2 (ja) * 2018-06-29 2020-07-08 株式会社Subaru 車両
WO2020032119A1 (ja) * 2018-08-10 2020-02-13 株式会社デンソー 電子制御装置、車両用電子制御システム、差分データの整合性判定方法及び差分データの整合性判定プログラム
JP7354631B2 (ja) 2018-08-10 2023-10-03 株式会社デンソー 電子制御装置、車両用電子制御システム、差分データの整合性判定方法及び差分データの整合性判定プログラム
JP7265120B2 (ja) * 2019-01-10 2023-04-26 富士通株式会社 データ収集プログラム、データ収集装置およびデータ収集方法
JP2021043843A (ja) * 2019-09-13 2021-03-18 日立オートモティブシステムズ株式会社 転送装置、電子制御装置及びこれを製造する方法
US11341789B2 (en) 2019-09-30 2022-05-24 Toyota Motor North America, Inc. Remote/offline processing of vehicle data
WO2021117942A1 (ko) * 2019-12-12 2021-06-17 전자부품연구원 저복잡도 딥러닝 가속 하드웨어 데이터 가공장치
WO2021131754A1 (ja) * 2019-12-24 2021-07-01 京セラ株式会社 通信機器及びプログラム
CN113448596A (zh) * 2020-03-24 2021-09-28 上海汽车集团股份有限公司 一种车辆控制器刷写系统、方法及相关设备
WO2022003418A1 (en) 2020-06-29 2022-01-06 Aurora Labs Ltd. Efficient controller data generation and extraction
JP7420025B2 (ja) 2020-09-07 2024-01-23 トヨタ自動車株式会社 プログラムの更新方法および更新システム
US20220300256A1 (en) * 2021-03-22 2022-09-22 Wind River Systems, Inc. Validating Binary Image Content

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103034673A (zh) * 2011-09-28 2013-04-10 歌乐株式会社 对象数据传送系统和方法、服务器装置以及客户机装置
CN103154900A (zh) * 2010-10-15 2013-06-12 株式会社日立解决方案 编入程序更新方法、编入程序更新程序、电子设备、网络系统
US8615500B1 (en) * 2012-03-29 2013-12-24 Emc Corporation Partial block allocation for file system block compression using virtual block metadata

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7814474B2 (en) * 2000-11-17 2010-10-12 Hewlett-Packard Development Company, L.P. Updatable mobile handset based on Linux with compression and decompression techniques
JP4285679B2 (ja) * 2002-03-11 2009-06-24 富士通株式会社 差分転送方法、プログラム及びシステム
US6999976B2 (en) * 2002-05-29 2006-02-14 International Business Machines Corporation Method, apparatus, and program for using a Java archive to encode a file system delta
US7058783B2 (en) * 2002-09-18 2006-06-06 Oracle International Corporation Method and mechanism for on-line data compression and in-place updates
JP4153324B2 (ja) * 2003-01-31 2008-09-24 松下電器産業株式会社 差分データ生成装置及び方法、更新後データ復元装置及び方法、並びにプログラム
US7509635B2 (en) * 2003-09-26 2009-03-24 Red Hat, Inc. Software and data file updating process
DE602004013120T2 (de) * 2004-03-10 2009-05-14 Sony Ericsson Mobile Communications Ab Automatisierter Datensicherungsspeicher in Firmware-Aufwertungen
JP2008522254A (ja) * 2004-11-08 2008-06-26 イノパス・ソフトウェアー・インコーポレーテッド スタティック・ファイル・システムの差異検出および更新
WO2007039907A2 (en) * 2005-10-06 2007-04-12 Red Bend Ltd. Methods and systems for updating content including a compressed version
JP5521437B2 (ja) * 2009-01-29 2014-06-11 日本電気株式会社 携帯端末装置、ソフトウェア更新方法及びプログラム
US8463983B2 (en) * 2009-09-15 2013-06-11 International Business Machines Corporation Container marker scheme for reducing write amplification in solid state devices
JP5218366B2 (ja) 2009-10-07 2013-06-26 トヨタ自動車株式会社 車両用プログラム更新装置
JP2013517565A (ja) * 2010-01-12 2013-05-16 グーグル インコーポレイテッド オペレーティングシステム自動更新手順
US9053107B1 (en) * 2011-12-06 2015-06-09 Google Inc. Determining updates for files based on an organization of the files on different blocks of a storage device
JP5522155B2 (ja) * 2011-12-09 2014-06-18 株式会社デンソー プログラム書換方法及びプログラム書換装置,電子制御装置
CN103051723B (zh) * 2012-12-27 2016-08-31 广州市动景计算机科技有限公司 一种增量升级方法及服务器、终端
US11347498B2 (en) * 2013-02-26 2022-05-31 Red Hat, Inc. Bytecode modification
JP2014182571A (ja) 2013-03-19 2014-09-29 Denso Corp 車載電子制御装置のプログラム書換システム及び車載中継装置
JP2015207145A (ja) * 2014-04-21 2015-11-19 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および差分情報生成装置
WO2016121442A1 (ja) * 2015-01-26 2016-08-04 日立オートモティブシステムズ株式会社 車載制御装置、プログラム書き込み装置、プログラム生成装置及びプログラム
US10101992B2 (en) * 2015-06-15 2018-10-16 Lear Corporation Telematics control unit comprising a differential update package
US20170228741A1 (en) * 2016-02-05 2017-08-10 GM Global Technology Operations LLC Dynamic display of open source software compliance information

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103154900A (zh) * 2010-10-15 2013-06-12 株式会社日立解决方案 编入程序更新方法、编入程序更新程序、电子设备、网络系统
CN103034673A (zh) * 2011-09-28 2013-04-10 歌乐株式会社 对象数据传送系统和方法、服务器装置以及客户机装置
US8615500B1 (en) * 2012-03-29 2013-12-24 Emc Corporation Partial block allocation for file system block compression using virtual block metadata

Also Published As

Publication number Publication date
US10228934B2 (en) 2019-03-12
EP3252605B1 (en) 2022-04-06
WO2016121442A1 (ja) 2016-08-04
EP3252605A4 (en) 2019-01-16
JP6434994B2 (ja) 2018-12-05
US10649769B2 (en) 2020-05-12
JP6739498B2 (ja) 2020-08-12
US20180018164A1 (en) 2018-01-18
EP3252605A1 (en) 2017-12-06
CN107077396A (zh) 2017-08-18
US20190171445A1 (en) 2019-06-06
JP2019061690A (ja) 2019-04-18
JPWO2016121442A1 (ja) 2017-08-03

Similar Documents

Publication Publication Date Title
CN107077396B (zh) 车载控制装置、程序写入装置、程序生成装置以及方法
EP3358465B1 (en) In-vehicle control device, program update system, and program update software
CN114780128A (zh) 嵌入式设备固件更新方法、嵌入式设备及开发端设备
CN110402428B (zh) 车载控制装置、及程序更新软件
WO2019159715A1 (ja) 車両制御装置およびプログラム更新システム
KR100456736B1 (ko) 플래시 메모리를 구비한 디지털 기기의 부팅 시간 단축 방법
CN113168314A (zh) 更新管理装置、更新管理系统及更新管理方法
JP5100500B2 (ja) データ書き換えシステム及び新版データ作成装置及び差分データ作成装置及び新版データ作成プログラム及び差分データ作成プログラム
US10387054B2 (en) Secure element including a non-volatile memory and methods for saving and restoring data including defragmenting and compressing data stored in occupied and free regions
CN112000698B (zh) 日志的记录方法及装置、存储介质、电子装置
JP2018160208A (ja) 車載制御装置、及び、プログラム更新ソフトウェア
JP2013045285A (ja) 情報処理装置、画像形成装置およびプログラム
JP5521437B2 (ja) 携帯端末装置、ソフトウェア更新方法及びプログラム
JP2004320591A (ja) 携帯通信端末
JP2013004043A (ja) 情報処理装置、画像形成装置およびプログラム
JP6838714B2 (ja) 車載制御装置
US8296500B2 (en) Memory system and computer system
CN114253625A (zh) 一种PCIe Switch芯片工作模式切换方法、系统、存储介质及设备
CN114924773A (zh) 扩展背板、烧录方法、计算机设备和存储介质
CN112988685A (zh) 数据压缩和解压缩方法及其装置
CN117908917A (zh) Boot程序自刷新方法、车辆控制器、可读存储介质和车辆
CN111274168A (zh) 处理装置和更改脚位功能方法
JP2003018017A (ja) Biosプログラムの圧縮方法及び更新方法

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
CP01 Change in the name or title of a patent holder

Address after: Ibaraki

Patentee after: Hitachi astemo Co.,Ltd.

Address before: Ibaraki

Patentee before: HITACHI AUTOMOTIVE SYSTEMS, Ltd.

CP01 Change in the name or title of a patent holder