JP7420025B2 - プログラムの更新方法および更新システム - Google Patents

プログラムの更新方法および更新システム Download PDF

Info

Publication number
JP7420025B2
JP7420025B2 JP2020149758A JP2020149758A JP7420025B2 JP 7420025 B2 JP7420025 B2 JP 7420025B2 JP 2020149758 A JP2020149758 A JP 2020149758A JP 2020149758 A JP2020149758 A JP 2020149758A JP 7420025 B2 JP7420025 B2 JP 7420025B2
Authority
JP
Japan
Prior art keywords
program
data
difference
control program
update
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
JP2020149758A
Other languages
English (en)
Other versions
JP2022044229A (ja
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.)
Toyota Motor Corp
Original Assignee
Toyota Motor Corp
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 Toyota Motor Corp filed Critical Toyota Motor Corp
Priority to JP2020149758A priority Critical patent/JP7420025B2/ja
Priority to CN202110752036.5A priority patent/CN114153474A/zh
Priority to US17/362,144 priority patent/US11941388B2/en
Publication of JP2022044229A publication Critical patent/JP2022044229A/ja
Application granted granted Critical
Publication of JP7420025B2 publication Critical patent/JP7420025B2/ja
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
    • G06F8/658Incremental updates; Differential updates
    • 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)
  • Information Transfer Between Computers (AREA)

Description

本開示は、プログラムの更新方法および更新システムに関する。
たとえば、制御装置等のプログラムを更新する場合において、更新プログラム(新ファイル)の全データを更新対象の制御装置に送信するのではなく、更新プログラムとベースとなるプログラム(旧ファイル)との差分データを生成し、当該差分データを更新対象の制御装置に送信する方法が知られている。差分データの生成手法としては、たとえば、特開2003-337723号公報(特許文献1)に、新ファイルの先頭から所定データ単位(たとえば1バイト単位)にデータを旧ファイルと順次比較して、差分データを生成する手法が開示されている(特許文献1参照)。
特開2003-337723号公報 特開2020-27625号公報 特開2019-61690号公報
ここで、旧ファイルの全範囲を対象として検索対象のデータ(検索対象データ)を検索すると、処理に多大な時間を要してしまう可能性がある。そこで、旧ファイルに対して検索範囲を設定する場合がある。検索範囲は、旧ファイルにおいて、たとえば、検索対象データの新ファイル上のアドレスよりも後方のアドレスに重点を置いて設定されることがある。そうすると、たとえばプログラム追加が行なわれた場合に、自身よりも前方のアドレスにプログラムが追加されたことに起因して、新ファイルにおいて、旧ファイルにおけるアドレスよりも後方に位置することになるデータが存在し得る。換言すれば、このようなデータは、旧ファイルにおいて、新ファイルにおけるアドレスよりも前方に位置しているため、検索対象から外れ、差分として抽出されてしまう。このようなデータが多数存在すると、差分データの容量が大きくなり、プログラムの更新に要する時間が増加してしまう可能性がある。
本開示は、上記課題を解決するためになされたものであり、その目的は、差分データを用いたプログラムの更新において、差分データの容量増加を抑制することである。
この開示に係るプログラムの更新方法は、第1プログラムと第2プログラムとの差分データを第1装置から第2装置へ送信し、上記差分データに基づいて第2装置に実装された制御プログラムを第2プログラムに更新するプログラムの更新方法である。この更新方法は、第1装置において、第1プログラムを取得するステップと、第2プログラムを取得し、検索範囲を対象として、検索単位に分割された検索対象データが第1プログラムに含まれているかを検索するステップと、検索対象データが第1プログラムに含まれている場合には、当該検索対象データを差分として抽出せず、検索対象データが第1プログラムに含まれていない場合には、当該検索対象データを差分として抽出して差分データを生成するステップと、生成された差分データを第2装置へ出力するステップとを含む。検索範囲は、第1プログラムにおいて、第2プログラムの検索対象データと同じアドレスより前方のアドレスに位置するデータよりも、後方のアドレスに位置するデータを多く含むように設定される。第1プログラムの先頭領域には、プログラムとしてのデータが含まれないオフセット領域が設けられている。
この開示の他の局面に係る更新システムは、第1プログラムと第2プログラムとの差分データを更新対象装置に送信し、上記差分データに基づいて更新対象装置に実装された制御プログラムを第2プログラムに更新する更新システムである。更新システムは、第1プログラムを記憶する第1記憶装置と、第2プログラムを記憶する第2記憶装置と、上記差分データを生成して更新対象装置に送信する差分抽出装置とを備える。差分抽出装置は、第1記憶装置および第2記憶装置から第1プログラムおよび第2プログラムをそれぞれ取得し、検索単位毎に、検索範囲を対象として、第2プログラムの検索対象データが第1プログラムに含まれているかを検索し、検索対象データが第1プログラムに含まれている場合には、当該検索対象データを差分として抽出せず、検索対象データが第1プログラムに含まれていない場合には、当該検索対象データを差分として抽出して差分データを生成する。検索範囲は、第1プログラムにおいて、第2プログラムの検索対象データと同じアドレスより前方のアドレスに位置するデータよりも、後方のアドレスに位置するデータを多く含むように設定される。第1プログラムの先頭領域には、プログラムとしてのデータが含まれないオフセット領域が設けられている。
上記構成によれば、検索範囲は、第1プログラムにおいて、第2プログラムの検索対象データと同じアドレスより前方のアドレスに位置するデータよりも、後方のアドレスに位置するデータを多く含むように設定される。そして、第1プログラムの先頭領域には、プログラムとしてのデータが含まれないオフセット領域が設けられている。オフセット領域が設けられることにより、たとえば、プログラム追加が行なわれ、これに起因してアドレスが変更されたデータがあった場合にも、第2プログラムにおける当該データのアドレスが、第1プログラムにおける当該データのアドレスよりも後方に位置することが抑制される。それゆえに、当該データを検索する場合の検索範囲に、当該データを含めることができる。よって、検索対象データが差分として抽出されることを抑制でき、差分データの容量が増加することを抑制することができる。
ある実施の形態においては、第1プログラムは、制御プログラムを更新するために第2装置に実装されているプログラムであり、かつ、更新されることがないプログラムである。
上記構成によれば、差分データの生成において、更新されることがないプログラムである第1プログラムが用いられるため、処理が複雑化することを抑制することができる。
ある実施の形態においては、上記制御プログラムは、第1プログラムである。第1プログラムは、第2プログラムの1つ前のバージョンのプログラムである。
上記構成によれば、差分データは、第2プログラムの1つ前のバージョンである第1プログラムと、第2プログラムとの差分である。そのため、差分データは、1回の更新分の容量であるので、差分データの容量を比較的小さくすることができる。
ある実施の形態においては、第1プログラムは、第2プログラムの1つ前のバージョンのプログラムであり、第1プログラムから第2プログラムへの更新にデータの追加が含まれる場合には、第2プログラムにおいて、オフセット領域を縮小するように上記データが追加される。
上記構成によれば、プログラムの更新によってデータが追加される場合に、第2プログラムにおいて、オフセット領域を縮小するように上記データが追加される。オフセット領域を縮小するようにデータが追加されることにより、第2プログラムにおいて、追加されたデータが位置することになるアドレスより後方のアドレスに位置しているデータのアドレスは変更されない。また、第2プログラムにおいて、追加されたデータが位置することになるアドレスより前方のアドレスに位置しているデータのアドレスは、前方側へシフトする。そのため、データの追加によって、第1プログラムにおけるデータと第2プログラムにおけるデータとの対応するデータ同士において、第1プログラムにおけるデータのアドレスが、対応する第2プログラムにおけるデータのアドレスよりも前方のアドレスとなることを抑制することができる。それゆえに、プログラムの更新によってデータが追加されたとしても、検索対象データが検索範囲から外れることを抑制することができる。
ある実施の形態においては、第1プログラムおよび第2プログラムの各々は、所定のデータサイズの分割データに分割されている。分割データの容量は、検索単位よりも大きい。検索範囲は、第1プログラムにおいて、第2プログラムの検索対象データが含まれる分割データと同じアドレスに位置する分割データ、および、当該分割データよりも後方のアドレスに位置する分割データを含む。
上記構成によれば、検索範囲には、第1プログラムにおいて、第2プログラムの検索対象データが含まれる分割データと同じアドレスに位置する分割データ、および、当該分割データよりも後方のアドレスに位置する分割データが含まれる。第1プログラムの先頭領域にオフセット領域が設けられていることにより、プログラム追加が行なわれ、これに起因してアドレスが変更されたデータがあった場合にも、第2プログラムにおける当該データのアドレスが、第1プログラムにおける当該データのアドレスよりも後方に位置することが抑制される。ゆえに、検索対象のデータを検索範囲に含めることができる。よって、検索対象のデータが差分として抽出されることを抑制でき、差分データの容量が増加することを抑制することができる。
ある実施の形態においては、オフセット領域の容量は、第2装置に実装されるプログラムに対して行なわれ得る設計変更の予測に基づいて設定される。
上記構成によれば、第2装置に実装されるプログラムに対して行なわれ得る設計変更の予測に基づいて、オフセット領域の容量が設定されるため、過度なオフセット領域が設定されることを抑制することができる。
本開示によれば、差分データを用いたプログラムの更新において、差分データの容量増加を抑制することができる。
実施の形態1に係るソフトウェア更新システムの全体構成を概略的に示す図である。 差分抽出の手法を説明するための図である。 ロジック追加により制御プログラムが更新された場合の差分抽出を説明するための図である。 制御プログラムの更新に合わせて共通プログラムが開発されるケースを説明するための図である。 実施の形態1における共通プログラムを説明するための図である。 差分抽出装置における差分抽出処理を説明するための機能ブロック図である。 ECUにおける制御プログラムの更新処理を説明するための機能ブロック図(その1)である。 共通プログラムにオフセット領域を設けることによる効果を説明するための図である。 実施の形態2における制御プログラムの更新を説明するための図である。 実施の形態2における制御プログラムのデータ構造を説明するための図である。 OTAサーバの差分抽出処理を説明するための機能ブロック図である。 ECUにおける制御プログラムの更新処理を説明するための機能ブロック図(その2)である。
以下、本開示の実施の形態について、図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
[実施の形態1]
<ソフトウェア更新システムの全体構成>
図1は、実施の形態1に係るソフトウェア更新システム1の全体構成を概略的に示す図である。ソフトウェア更新システム1は、車両200に搭載されたECU(Electronic Control Unit)100が実装する制御プログラムを更新するためのシステムである。なお、実施の形態1における制御プログラムの更新には、初期におけるECU100への制御プログラムの書き込みを含む。
ソフトウェア更新システム1は、第1サーバ10と、第2サーバ20と、差分抽出装置30と、リプロツール40とを備える。
第1サーバ10は、ECU100の制御プログラムを記憶する。制御プログラムは、たとえば、ECU100の制御プログラムを開発する開発者によって開発され、第1サーバ10に記憶される。第1サーバ10に記憶される制御プログラムは、たとえば、ECU100が搭載される車両200の仕向け毎(たとえば、日本国内、欧州、北米、中国等)に用意される(制御プログラムA,B,C,・・・)。本実施の形態においては、一例として、たとえば、車両200に日本国内向けの制御プログラム(以下、単に「制御プログラム」とも称する)が実装される例について説明する。
また、第1サーバ10は、制御プログラムと紐付けられた属性情報を記憶する。属性情報には、当該制御プログラムを実装する対象となるECUを識別するための識別情報が含まれる。
第2サーバ20は、車両200の仕向けにかかわらず、ECU100に共通して使用される共通プログラムを記憶する。共通プログラムは、たとえば、ECU100の共通プログラムを開発する開発者によって開発され、第2サーバ20に記憶される。共通プログラムは、たとえば、制御プログラムA,B,C,・・・のうちのいずれかの制御プログラムをベースにして開発される。
図1に示されるように、共通プログラムは、ECUを製造するECU工場において、ECU100に書き込まれる。共通プログラムのECU100への書き込みには、たとえば、不図示の書き込みツールが用いられる。
ECU工場において共通プログラムが書き込まれたECU100は、車両の組み立て工場に搬送され、車両の組み立て工場において車両200に搭載される。詳細は後述するが、車両の組み立て工場において、車両200に搭載された状態で制御プログラムがECU100に書き込まれる。
差分抽出装置30は、共通プログラムと制御プログラムとの差分を抽出し、差分データを生成する。差分抽出装置30は、第1サーバ10から制御プログラムを取得する。また、差分抽出装置30は、第2サーバ20から共通プログラムを取得する。差分抽出装置30は、共通プログラムと制御プログラムとを比較し、その差分データを抽出する。差分抽出装置30は、生成された差分データをリプロツール40に出力する。なお、差分データの生成手法の詳細については後述する。
また、差分抽出装置30は、第1サーバ10から、制御プログラムとともに、属性情報を取得する。差分抽出装置30は、生成された差分データとともに、属性情報をリプロツール40に出力する。
リプロツール40は、たとえば、車両の組み立て工場に設置されている。リプロツール40は、差分抽出装置30と通信可能に構成され、差分抽出装置30から差分データおよび属性情報を取得する。また、リプロツール40は、車両200と通信可能に構成される。リプロツール40と車両200との通信は、有線による通信であっても、無線による通信であってもかまわない。
リプロツール40は、差分抽出装置30から差分データおよび属性情報を取得すると、属性情報に基づいて制御プログラムを書き込む対象となるECU100を搭載した車両200を特定する。そして、リプロツール40は、特定した車両200に差分データを出力する。
車両200は、リプロツール40から差分データを受信すると、受信された差分データをECU100に出力する。
ECU100は、CPU(Central Processing Unit)と、メモリと、入出力ポートとを含む(いずれも図示せず)。メモリは、ROM(Read Only Memory)およびRAM(Random Access Memory)を含む。ROMには、CPUにより実行される制御プログラム、および、ECU工場において実装された共通プログラムが記憶される。CPUは、ROMに格納されているプログラムをRAMに展開して実行する。
ECU100は、差分データを受信すると、差分データと共通プログラムとを用いて、制御プログラムを復元する。ECU100は、制御プログラムを復元すると、復元された制御プログラムをメモリ(ROM)に記憶する。
ここで、車両の組み立て工場において、車両200のECU100への制御プログラムの書き込み(あるいは制御プログラムの更新)は、タクトタイム内に完了されることが求められる。たとえば、差分データの容量が大きいと、タクトタイム内でのECU100への制御プログラムの書き込み(あるいは制御プログラムの更新)が完了できない可能性がある。以下、差分データが大きくなるケースについて、具体的に説明する。
図2は、差分抽出の手法を説明するための図である。まず、図2を参照しながら、差分抽出の手法について説明する。図2に示されるように、共通プログラムは、第1の所定データサイズにブロック分けされた分割データA1~Ax(x:自然数)で構成されている。共通プログラム(分割データA1~Ax)は、第2サーバ20から一括して差分抽出装置30に読み出される。なお、以下では、第1の所定データサイズにブロック分けされた分割データA1~Axを「ブロックA1~Ax」とも称する。
また、制御プログラムも、共通プログラムと同様に、第1の所定データサイズにブロック分けされた分割データB1~By(y:自然数)で構成されている。制御プログラムは、第1サーバ10から、たとえば分割データ単位(ブロック単位)に順次、差分抽出装置30に読み出される。なお、以下では、第1の所定データサイズにブロック分けされた分割データB1~Byを「ブロックB1~By」とも称する。
差分抽出装置30は、順次取得する制御プログラムの分割データB1~Byを、一括して取得した共通プログラムの分割データA1~Axと比較して、差分を抽出して差分データを生成する。
より具体的には、差分抽出装置30は、順次取得する制御プログラムの分割データから第2の所定データサイズ単位に、データ(検索対象データ)が共通プログラムに含まれているかを検索する。なお、第2の所定データサイズは、ブロックのデータサイズ(第1の所定データサイズ)よりも小さいデータサイズである。差分抽出装置30は、検出できなかったデータを、更新されたデータ(追加あるいは変更されたデータ)として認識し、差分として抽出する。差分抽出装置30は、検出できたデータを、既存のデータとして認識し、差分として抽出しない。
たとえば、差分抽出装置30は、図2に示される制御プログラムのブロックB3のデータL(第2の所定データサイズ)が、共通プログラム(分割データA1~Ax)に含まれるかを検索し、共通プログラムにデータLと一致するデータがなかった場合に、データLを差分として抽出する。
ここで、検索対象データ(たとえばデータL)を、たとえば、共通プログラムの全範囲(分割データA1~Ax)から検出するようにすると、検索対象データが既存のデータであるかを正確に検索できる一方で、処理に多大な時間を要し、処理の遅延を招いてしまう。そこで、検索精度と処理時間とを適度に両立させながら差分を抽出するために、検索対象データの検索範囲が定められている。検索範囲は、たとえば、共通プログラムにおいて、検索対象データが含まれる制御プログラムのブロック(B1~Byのいずれか)のアドレスに対応するブロック(A1~Axのいずれか)および当該ブロックの後方に連続する所定数のブロック(たとえば3ブロック等)を含むように設定される。上記の所定数は、検索精度と処理時間との観点から適宜設定することができる。
具体例を用いて説明すると、たとえば、ブロックB3のデータLを検索する場合であれば、共通プログラムにおいて、データLが含まれるブロックB3のアドレスに対応するブロックであるブロックA3、およびブロックA3の後方に連続する所定数のブロック(たとえば、所定数が3であれば、ブロックA4~A6)が検索範囲に設定される(すなわち、ブロックA3~A6が検索範囲に設定される)。データLを検索する場合には、データLが、ブロックA3の先頭アドレスに位置するデータから、たとえばブロックA6の最終アドレスのデータまでの各データと比較される。このように、検索対象データが含まれるブロック(たとえばブロックB3)のアドレスに対応するブロック(たとえばブロックA3)よりも後方に重点をおいて検索範囲が設定されるのは、ECU100における制御プログラムの復元を容易にするためである。
上記のように検索範囲が設定されると、共通プログラムにおいて、ブロックA3または/およびブロックA4にデータLが含まれている場合には、ブロックA3およびブロックA4が検索範囲に含まれているため、データLは、既存データとして検出される。すなわち、データLは、差分として抽出されない。
しかしながら、共通プログラムにおいて、ブロックA3以降のブロックにデータLが含まれず、ブロックA3よりも前方のアドレスのブロック(たとえばブロックA2)にデータLが含まれるような場合には、ブロックA3よりも前方のアドレスのブロックが検索範囲外であるため、データLは、既存データとして検出されず、差分として抽出されてしまう。このようなケースは、たとえば、設計変更(特にロジック追加)による制御プログラムの更新によって生じ得る。
なお、検索範囲は、共通プログラムにおいて、検索対象データが含まれる制御プログラムのブロック(B1~Byのいずれか)のアドレスに対応するブロック(A1~Axのいずれか)よりも後方に重点が置かれればよく、たとえば、共通プログラムにおいて、検索対象データが含まれる制御プログラムのブロック(B1~Byのいずれか)のアドレスに対応するブロック(A1~Axのいずれか)の前方のブロックおよび当該ブロックの後方に連続する所定数のブロック(たとえば3ブロック等)を含むように設定されてもよい。上記の具体例でいえば、ブロックB3のデータLを検索する場合であれば、共通プログラムにおいて、データLが含まれるブロックB3のアドレスに対応するブロックであるブロックA3の前方のブロックであるブロックA2、およびブロックA2の後方に連続する所定数のブロック(たとえば、所定数が3であれば、ブロックA3~A5)が検索範囲に設定される(すなわち、ブロックA2~A5が検索範囲に設定される)。
図3は、ロジック追加により制御プログラムが更新された場合の差分抽出を説明するための図である。図3に示されるように、たとえば、制御プログラムの更新により、制御プログラムに第1追加データおよび第2追加データが追加されたものとする。第1追加データおよび第2追加データの追加によって、たとえば、更新前にはブロックBnに含まれていたデータEが、更新後にブロックBmに含まれるようになっている。一方、制御プログラムが更新されても共通プログラムは更新されないため、共通プログラムにおいては、データEは、ブロックBnに対応するブロックAnに含まれている。
データEの検索における検索範囲は、データEが含まれるブロックBmのアドレスに対応するブロックAmおよびブロックAmの後方に連続する所定数のブロックである。つまり、データEの検索において、ブロックAnは検索範囲に含まれないため、データEが既存データとして認識されず、データEが差分として抽出されてしまう。そのため、データEが既存データとして認識される場合に比べ、差分データの容量が大きくなってしまい得る。
上記への対策として、たとえば、更新後の制御プログラムをベースに、新たに共通プログラムを開発することが考えられる。図4は、制御プログラムの更新に合わせて共通プログラムが開発されるケースを説明するための図である。
まず、図4に示されるように、制御プログラムVer.1が開発されて第1サーバ10に記憶されているものとする。そして、制御プログラムVer.1をベースに共通プログラムVer.1が開発されて第2サーバ20に記憶されているものとする。この場合には、差分抽出装置30は、共通プログラムVer.1と制御プログラムVer.1との差分を抽出し、差分データを生成する。
次いで、制御プログラムVer.1に設計変更が加えられ、制御プログラムVer.1から制御プログラムVer.2に更新されたものとする。図4に示す例においては、制御プログラムVer.2をベースにして、新たに共通プログラムVer.2が開発される。差分抽出装置30は、共通プログラムVer.2と制御プログラムVer.2との差分を抽出し、差分データを生成する。新たに共通プログラムVer.2を開発することにより、差分データの容量を、設計変更前の差分データ(共通プログラムVer.1と制御プログラムVer.1との差分に基づく差分データ)の容量と同程度にすることができる。
しかしながら、この場合には、制御プログラムが更新される毎に共通プログラムの開発が必要となるため、開発コストが増加してしまう。制御プログラムが更新された場合において、開発コストを増加させることなく、差分データの容量の増加を抑制することが望まれる。
そこで、実施の形態1に係るソフトウェア更新システム1においては、共通プログラムの先頭領域にオフセット領域を設ける。これにより、制御プログラムが更新されたとしても、共通プログラムを新たに開発することなく、差分データの容量の増加を抑制することができる。すなわち、共通プログラムの先頭領域にオフセット領域を設けることにより、制御プログラムが更新されても、初期に開発された共通プログラム(Ver.1)の流用が可能となる。以下、具体的に説明する。
図5は、実施の形態1における共通プログラムを説明するための図である。図5に示されるように、共通プログラムの先頭領域には、オフセット領域が設けられる。オフセット領域は、たとえば、制御プログラムとしてのデータが含まれないブランクの領域である。あるいは、オフセット領域は、制御プログラムとして機能しないダミーデータが含まれる領域であってもよい。
オフセット領域が設けられることにより、初期の制御プログラム(Ver.1)と、初期の制御プログラムをベースに開発された共通プログラム(Ver.1)とにおいて、対応するデータ同士のアドレスが異なる。具体的には、オフセット領域が設けられることにより、たとえば、共通プログラムにおけるデータEのアドレスは、制御プログラムにおけるデータEのアドレスよりも後方のアドレスとなる。そのため、制御プログラムの更新により、たとえば第1追加データおよび第2追加データが追加され、制御プログラムにおけるデータEのアドレスが後方にシフトしたとしても、データEの検索において、データEが含まれる共通プログラムのブロックを検索範囲に含めることができる。ゆえに、データEは、既存データとして認識され、差分として抽出されない。よって、データEが差分として抽出される場合に比べ、差分データの増加を抑制することができる。
オフセット領域は、たとえば、制御プログラムの開発において行なわれ得る設計変更の予測に基づいて、その領域(容量)が定められる。たとえば、オフセット領域は、3ブロック分の領域等に設定される。オフセット領域の設定には、たとえば、車両200のモデルライフが考慮されてもよい。
図6は、差分抽出装置30における差分抽出処理を説明するための機能ブロック図である。差分抽出装置30は、共通プログラム取得部31と、制御プログラム取得部33と、差分抽出部35と、出力部37とを含む。
共通プログラム取得部31は、第2サーバ20から共通プログラムを取得する。具体的には、共通プログラム取得部31は、第2サーバ20から、第1の所定データサイズにブロック分けされた共通プログラムの分割データA1~Axを一括して取得する。共通プログラム取得部31は、取得された共通プログラムを差分抽出部35に出力する。
制御プログラム取得部33は、第1サーバ10から共通プログラムを取得する。具体的には、制御プログラム取得部33は、第1サーバ10から、第1の所定データサイズにブロック分けされた制御プログラムの分割データB1~Byを順次取得する。制御プログラム取得部33は、分割データB1~Byを受信する毎に、受信された分割データB1~Byを差分抽出部35に出力する。
また、制御プログラム取得部33は、第1サーバ10から、制御プログラムと紐付けられた属性情報を受信する。制御プログラム取得部33は、受信された属性情報を出力部37に出力する。
差分抽出部35は、共通プログラムの分割データA1~Axを参照しながら、分割データA1~Axと、順次受信する制御プログラムの分割データB1~Byとの差分を抽出し、差分データを生成する。差分抽出部35は、たとえば、制御プログラムの分割データBnを受信すると、分割データBnに含まれる第2の所定データサイズ(検索対象データ)毎に、検索対象データが検索範囲内の共通プログラムの分割データA1~Axに含まれているかを検索する。差分抽出部35は、検索対象データが検索範囲内の分割データA1~Axに含まれていなかった場合には、当該検索対象データを差分として抽出する。差分抽出部35は、検索対象データが検索範囲内の分割データA1~Axに含まれていた場合には、当該検索対象データを既存データとして認識し、差分データとして抽出しない。
出力部37は、差分抽出部35から差分データを受ける。また、出力部37は、制御プログラム取得部33から属性情報を受ける。出力部37は、差分データに属性情報を紐付けて、差分データおよび属性情報をリプロツール40に出力する。
なお、差分データおよび属性情報を取得したリプロツール40は、属性情報に基づいて、当該差分データを出力する対象(当該差分データを用いて制御プログラムを書き込む対象)となるECU100を搭載した車両200を特定する。リプロツール40は、特定された車両200に差分データを出力する。
図7は、ECU100における制御プログラムの更新処理を説明するための機能ブロック図である。ECU100は、差分データ取得部101と、共通プログラム読み出し部103と、差分展開部105と、プログラム記憶部107とを含む。
差分データ取得部101は、リプロツール40を介して差分データを取得する。差分データ取得部101は、取得された差分データを差分展開部105に出力する。
共通プログラム読み出し部103は、たとえば、ECU工場においてECU100のメモリに記憶された共通プログラムをメモリから読み出す。共通プログラムは、第1の所定データサイズにブロック分けされた分割データA1~Axとして読み出される。共通プログラム読み出し部103は、読み出された分割データA1~Axを差分展開部105に出力する。
差分展開部105は、分割データA1~Axを参照しながら、差分データを解読して制御プログラムを復元させる。差分展開部105は、復元された制御プログラムをプログラム記憶部107に出力する。
プログラム記憶部107は、受信した制御プログラムをECU100のメモリに記憶させる。これにより、ECU100の制御プログラムが更新される(初回時には書き込まれる)。
図8は、共通プログラムにオフセット領域を設けることによる効果を説明するための図である。図8には、制御プログラムの設計変更の回数と、差分データの容量との関係を示す実験データが示されている。この実験においては、設計変更により制御プログラムが更新された場合にも、初期の制御プログラムをベースに開発された共通プログラムが流用された。
図8における実線L1は、共通プログラムにオフセット領域を設けなかった場合の、制御プログラムの設計変更の回数と、差分データの容量との関係を示す。実線L2は、共通プログラムの先頭領域にオフセット領域を設けた場合の、制御プログラムの設計変更の回数と、差分データの容量との関係を示す。
たとえば、3回目の設計変更に着目すると、共通プログラムにオフセット領域を設けなかった場合の差分データの容量はD2であり、共通プログラムの先頭領域にオフセット領域を設けた場合の差分データの容量はD1(<D2)である。容量D1と容量D2との差は、検索対象データの検索において、プログラム追加等に起因して、検索対象データが検索範囲から外れたことによる増加分である。すなわち、共通プログラムの先頭領域にオフセット領域を設けることによって、共通プログラムにオフセット領域を設けなかった場合に比べ、差分データの容量をD2-D1だけ小さくすることができている。本実験においては、容量D1と容量D2との差(D2-D1)は、制御プログラムの容量に対して、おおよそ数%程度に相当した。
4回目の設計変更に着目すると、共通プログラムの先頭領域にオフセット領域を設けた場合には、実線L2で示されるように、3回目の設計変更時から容量がΔDa(=D3-D1)だけ増加している。この容量の増加量ΔDaは、4回目の設計変更によって追加されたプログラムの容量分とおおよそ等しかった。
一方、共通プログラムにオフセット領域を設けなかった場合には、3回目から4回目の設計変更にかけて、差分データが顕著に増加している。具体的には、共通プログラムにオフセット領域を設けなかった場合には、実線L1で示されるように、3回目の設計変更時から容量がΔDb(=D4-D2)だけ増加している。この容量の増加量ΔDbは、4回目の設計変更によって追加されたプログラムの容量分を大きく上回った。
4回目の設計変更における、共通プログラムの先頭領域にオフセット領域を設けた場合の差分データの容量D3と、共通プログラムの先頭領域にオフセット領域を設けなかった場合の差分データの容量D4との容量差ΔDc(=D4-D3)は、制御プログラムの容量に対して、おおよそ数%~10数%程度に相当した。実験結果より、制御プログラムの設計変更の回数が増え、制御プログラムへのプログラム追加量が増加した場合にも、共通プログラムの先頭領域にオフセット領域を設けることにより、差分データの増加を抑制することができていることが理解される。
以上のように、実施の形態1に係るソフトウェア更新システム1においては、共通プログラムの先頭領域にオフセット領域が設けられる。共通プログラムの先頭領域にオフセット領域が設けられることにより、初期の制御プログラムと、初期の制御プログラムをベースに開発された共通プログラムとの対応するデータ同士において、共通プログラムにおけるデータのアドレスが、対応する制御プログラムにおけるデータのアドレスよりも後方のアドレスとなる。それゆえに、制御プログラムの更新により制御プログラムにプログラムが追加されたとしても、検索範囲を外れる程度に、共通プログラムにおけるデータのアドレスが、対応する制御プログラムにおけるデータのアドレスよりも前方のアドレスとなることが抑制される。ゆえに、既存データとして認識され得るデータが、検索範囲から外れることにより既存データとして認識されず、差分として抽出されることを抑制することができる。これにより、差分データの増加を抑制することができる。
また、実施の形態1に係るソフトウェア更新システム1においては、差分データの生成に、更新されることがない共通プログラムが用いられる。そのため、差分データの生成において、制御プログラムとの比較対象が変更される場合に比べ、処理が複雑化することを抑制することができる。
[実施の形態2]
実施の形態1では、ECU100の制御プログラムにおいて、更新されることがない共通プログラムと、制御プログラム(更新プログラム)との差分を抽出して差分データを生成し、当該差分データを用いて制御プログラムが更新された。実施の形態2では、現行の制御プログラム(たとえばVer.1)と、設計変更された新たな制御プログラム(たとえばVer.2)との差分を抽出して差分データを生成し、当該差分データを用いて制御プログラムが更新される例について説明する。
図9は、実施の形態2における制御プログラムの更新を説明するための図である。実施の形態2においては、市場に流通する車両200(ECU100)の制御プログラムを、所謂OTA(Over The Air)により更新するケースを例にして説明する。
OTAサーバ300は、車両200の制御プログラムの更新プログラムが開発された場合に、インターネット等の通信ネットワークを介して、車両200に更新プログラムを配信する。
OTAサーバ300は、ECU100の現行の制御プログラムを記憶している。OTAサーバ300は、制御プログラムの設計変更があり、制御プログラムが更新(開発)されると、現行の制御プログラムに加えて、当該更新された制御プログラム(更新プログラム)を記憶する。そして、OTAサーバ300は、現行の制御プログラム(たとえば制御プログラムVer.1)と、更新プログラム(たとえば制御プログラムVer.2)との差分を抽出して差分データを生成する。OTAサーバ300は、更新プログラムの適用対象であるECU100を搭載した車両200に差分データを出力する。そして、ECU100の制御プログラムの更新が完了すると、OTAサーバ300は、現行の制御プログラム(制御プログラムVer.1)に更新プログラム(制御プログラムVer.2)を上書きし、更新プログラム(制御プログラムVer.2)を現行の制御プログラムとして記憶する。
図10は、実施の形態2における制御プログラムのデータ構造を説明するための図である。図10には、(a)初期の制御プログラムのデータ構造、(b)1回目の設計変更が行なわれた(1回目の更新が行なわれた)制御プログラムのデータ構造、および、(c)2回目の設計変更が行なわれた制御プログラムのデータ構造が示されている。なお、実施の形態2における初期の制御プログラムとは、たとえば、車両200の工場出荷時にECU100に実装されている制御プログラムである。
初期の制御プログラムの先頭領域には、実施の形態1と同様に、オフセット領域が設けられている。実施の形態2におけるオフセット領域についても、実施の形態1と同様に、たとえば、設計変更の予測に基づいて、その領域(容量)が定められる。
たとえば、1回目の設計変更において、制御プログラムに第1追加データが追加されたものとする。より具体的には、第1追加データがデータDとデータEとの間に追加されたものとする。この場合、制御プログラムには、オフセット領域を縮小するように、第1追加データが追加される。より具体的には、図10に示されるように、データEのアドレスは変更せずに、データEの前方の領域に第1追加データを追加する。これにより、データA~Dのアドレスが前方のアドレスに移動され、オフセット領域が縮小される。
このようにして第1追加データが追加されるようにすれば、初期の制御プログラムと、1回目の設計変更が行なわれた制御プログラムとの差分を検索する場合において、追加された第1追加データより前の領域に位置するデータA~Dを適切に検索できるとともに、第1追加データよりも後の領域に位置するデータE~Iも適切に検索できる。
具体的には、たとえば、データAに着目すると、1回目の設計変更が行なわれた制御プログラムにおけるデータAのアドレスは、初期の制御プログラムにおけるデータAのアドレスよりも前方に位置するアドレスとなっている。そのため、データAの検索範囲に、初期プログラムにおけるデータAが含まれる。ゆえに、データAの検索により、データAが既存データとして認識され、データAについては「差分なし」として判断される。
また、たとえば、データEに着目すると、1回目の設計変更が行なわれた制御プログラムにおけるデータEのアドレスは、初期の制御プログラムにおけるデータEと同じアドレスとなっている。そのため、データEの検索範囲に、初期プログラムにおけるデータEが含まれる。ゆえに、データEの検索により、データEが既存データとして認識され、データEについては「差分なし」として判断される。
仮に、制御プログラムの先頭領域にオフセット領域が設けられていない場合には、第1追加データの追加によって、1回目の設計変更が行なわれた制御プログラムにおけるデータE~Iのアドレスは、それぞれ、初期の制御プログラムにおけるデータE~Iよりも後方に位置するアドレスとなってしまう。ゆえに、たとえば、データEを検索する場合に、データEの検索範囲に初期プログラムにおけるデータEが含まれず、データEを差分として抽出してしまう場合が生じ得る。そうすると、差分データの容量の増加を招き、通信回線のトラフィックの増加を招いたり、制御プログラムの更新時間の増加を招いたりしてしまう。制御プログラムの先頭領域にオフセット領域を設けることにより、制御プログラムの先頭領域にオフセット領域を設けない場合に比べ、差分データの容量の増加を抑制することができ、ひいては、通信回線のトラフィックの低減および制御プログラムの更新時間の短縮を図ることができる。
また、2回目の設計変更において、データBとデータCとの間に第2追加データが追加された場合においても、1回目の設計変更時と同様に、制御プログラムには、オフセット領域を縮小するように、第2追加データが追加される。つまり、データCのアドレスは変更せずに、データCの前方の領域に第2追加データが追加される。これにより、データA,Bのアドレスが前方のアドレスに移動され、オフセット領域が縮小される。
図11は、OTAサーバ300の差分抽出処理を説明するための機能ブロック図である。OTAサーバ300は、更新プログラム取得部301と、現行プログラム取得部303と、差分抽出部305と、出力部307と、記憶部309とを含む。
更新プログラム取得部301は、更新された制御プログラム(更新プログラム)を、更新プログラムが記憶されたサーバから取得する。更新プログラムも、実施の形態1で説明した制御プログラムと同様に、第1の所定データサイズにブロック分けされている。更新プログラム取得部301は、サーバから、第1の所定データサイズにブロック分けされた更新プログラムの分割データD1~Dw(w:自然数)を順次取得する。更新プログラム取得部301は、分割データD1~Dwを取得する毎に、取得された分割データD1~Dwを差分抽出部305および記憶部309に出力する。
また、更新プログラム取得部301は、サーバから、更新プログラムと紐付けられた属性情報を取得する。更新プログラム取得部301は、取得された属性情報を現行プログラム取得部303および出力部307に出力する。
現行プログラム取得部303は、属性情報に基づいて、更新プログラムの適用対象となるECUを特定する。現行プログラム取得部303は、たとえば、更新プログラムの適用対象が車両200のECU100であると特定する。現行プログラム取得部303は、現在、車両200のECU100に実装されている制御プログラム(現行の制御プログラム)を、たとえば、不図示の記憶装置から取得する。制御プログラムは、実施の形態1で説明した制御プログラムと同様に、第1の所定データサイズにブロック分けされている。現行プログラム取得部303は、記憶装置から、第1の所定データサイズにブロック分けされた現行プログラムの分割データC1~Cz(z:自然数)を一括して取得する。現行プログラム取得部303は、取得された現行プログラムを差分抽出部305に出力する。なお、現行の制御プログラムがOTAサーバ300の外部のサーバ(図示せず)に記憶されている場合には、現行プログラム取得部303は、現行の制御プログラムが記憶されたサーバから現行プログラムを取得するように構成されればよい。
差分抽出部305は、現行プログラムの分割データC1~Czを参照しながら、分割データC1~Czと、順次受信する更新プログラムの分割データD1~Dwとの差分を抽出し、差分データを生成する。差分抽出部305は、生成された差分データを出力部307に出力する。
出力部307は、差分抽出部305から差分データを受ける。また、出力部307は、更新プログラム取得部301から属性情報を受ける。出力部307は、属性情報により特定されるECU100を搭載する車両200に差分データを送信する。
記憶部309は、更新プログラム取得部301によって取得された更新プログラムを、現行のプログラムとして記憶装置に記憶させる。
図12は、ECU100における制御プログラムの更新処理を説明するための機能ブロック図である。ECU100は、差分データ取得部111と、現行プログラム読み出し部113と、差分展開部115と、プログラム記憶部117とを含む。
差分データ取得部111は、OTAサーバ300から差分データを取得する。差分データ取得部111は、取得された差分データを差分展開部115に出力する。
現行プログラム読み出し部113は、現行の制御プログラムをメモリから読み出す。現行の制御プログラムは、第1の所定データサイズにブロック分けされた分割データとして読み出される。現行プログラム読み出し部113は、読み出された分割データを差分展開部115に出力する。
差分展開部115は、現行の制御プログラムの分割データを参照しながら、差分データを解読して制御プログラム(更新プログラム)を復元させる。差分展開部115は、復元された制御プログラムをプログラム記憶部117に出力する。
プログラム記憶部117は、差分展開部115から受信した制御プログラムを、現行の制御プログラムとしてECU100のメモリに記憶させる。これにより、ECU100の制御プログラムが更新される。
以上のように、実施の形態2においては、制御プログラムの先頭領域にオフセット領域が設けられる。そして、制御プログラムにプログラムが追加される際には、オフセット領域を縮小するようにプログラムが追加される。このようにプログラムが追加されることにより、プログラムの追加によって、更新前の制御プログラムにおけるデータと、更新後の制御プログラムにおけるデータとの対応するデータ同士において、更新前の制御プログラムにおけるデータのアドレスが、対応する更新後の制御プログラムにおけるデータのアドレスよりも前方のアドレスとなることを抑制することができる。それゆえに、制御プログラムの更新により制御プログラムにプログラムが追加されたとしても、検索対象データが検索範囲から外れることを抑制することができる。ゆえに、既存データとして認識され得るデータが、検索範囲から外れることにより既存データとして認識されず、差分として抽出されることを抑制することができる。これにより、差分データの増加を抑制することができる。
また、実施の形態2においては、現行の制御プログラム(たとえばVer.1)と、設計変更された新たな制御プログラム(たとえばVer.2)との差分を抽出して差分データが生成される。すなわち、新たな制御プログラムと、当該新たな制御プログラムの1つ前のバージョンの制御プログラムとの差分を抽出して差分データが生成される。1つ前のバージョンの制御プログラムとの比較であるため、たとえば、初期の制御プログラムと、新たな制御プログラムとの差分を抽出して差分データが生成される場合に比べ、差分データの容量を小さくすることができる。
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本開示の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 ソフトウェア更新システム、10 第1サーバ、20 第2サーバ、30 差分抽出装置、31 共通プログラム取得部、33 制御プログラム取得部、35 差分抽出部、37 出力部、40 リプロツール、101 差分データ取得部、103 共通プログラム読み出し部、105 差分展開部、107 プログラム記憶部、111 差分データ取得部、113 現行プログラム読み出し部、115 差分展開部、117 プログラム記憶部、200 車両、300 サーバ、301 更新プログラム取得部、303 現行プログラム取得部、305 差分抽出部、307 出力部、309 記憶部。

Claims (4)

  1. 第1プログラムと第2プログラムとの差分データを第1装置から第2装置へ送信し、前記差分データに基づいて前記第2装置に実装された制御プログラムを前記第2プログラムに更新するプログラムの更新方法であって、
    前記第1装置において、
    前記第1プログラムを取得するステップと、
    前記第2プログラムを取得し、検索範囲を対象として、検索単位に分割された検索対象データが前記第1プログラムに含まれているかを検索するステップと、
    前記検索対象データが前記第1プログラムに含まれている場合には、当該検索対象データを差分として抽出せず、前記検索対象データが前記第1プログラムに含まれていない場合には、当該検索対象データを差分として抽出して差分データを生成するステップと、
    前記生成された差分データを前記第2装置へ出力するステップとを含み、
    前記検索範囲は、前記第1プログラムにおいて、前記第2プログラムの前記検索対象データと同じアドレスより前方のアドレスに位置するデータよりも、後方のアドレスに位置するデータを多く含むように設定され、
    前記第1プログラムの先頭領域には、プログラムとしてのデータが含まれないオフセット領域が設けられており、
    前記制御プログラムは、前記第1プログラムであり、
    前記第1プログラムは、前記第2プログラムの1つ前のバージョンのプログラムであり、
    前記第1プログラムから前記第2プログラムへの更新にデータの追加が含まれる場合には、前記第2プログラムにおいて、前記オフセット領域を縮小するように前記データが追加される、プログラムの更新方法。
  2. 前記第1プログラムおよび前記第2プログラムの各々は、所定のデータサイズの分割データに分割されており、
    前記分割データの容量は、前記検索単位よりも大きく、
    前記検索範囲は、前記第1プログラムにおいて、前記第2プログラムの前記検索対象データが含まれる分割データと同じアドレスに位置する分割データ、および、当該分割データよりも後方のアドレスに位置する分割データを含むように設定される、請求項1に記載のプログラムの更新方法。
  3. 前記オフセット領域の容量は、前記第2装置に実装されるプログラムに対して行なわれ得る設計変更の予測に基づいて設定される、請求項1又は請求項2に記載のプログラムの更新方法。
  4. 第1プログラムと第2プログラムとの差分データを更新対象装置に送信し、前記差分データに基づいて前記更新対象装置に実装された制御プログラムを前記第2プログラムに更新する更新システムであって、
    前記更新システムは、
    前記第1プログラムを記憶する第1記憶装置と、
    前記第2プログラムを記憶する第2記憶装置と、
    前記差分データを生成して前記更新対象装置に送信する差分抽出装置とを備え、
    前記差分抽出装置は、
    前記第1記憶装置および前記第2記憶装置から前記第1プログラムおよび前記第2プログラムをそれぞれ取得し、
    検索単位毎に、検索範囲を対象として、前記第2プログラムの検索対象データが前記第1プログラムに含まれているかを検索し、
    前記検索対象データが前記第1プログラムに含まれている場合には、当該検索対象データを差分として抽出せず、前記検索対象データが前記第1プログラムに含まれていない場合には、当該検索対象データを差分として抽出して差分データを生成し、
    前記検索範囲は、前記第1プログラムにおいて、前記第2プログラムの前記検索対象データと同じアドレスより前方のアドレスに位置するデータよりも、後方のアドレスに位置するデータを多く含むように設定され、
    前記第1プログラムの先頭領域には、プログラムとしてのデータが含まれないオフセット領域が設けられており、
    前記制御プログラムは、前記第1プログラムであり、
    前記第1プログラムは、前記第2プログラムの1つ前のバージョンのプログラムであり、
    前記第1プログラムから前記第2プログラムへの更新にデータの追加が含まれる場合には、前記第2プログラムにおいて、前記オフセット領域を縮小するように前記データが追加される、更新システム。
JP2020149758A 2020-09-07 2020-09-07 プログラムの更新方法および更新システム Active JP7420025B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2020149758A JP7420025B2 (ja) 2020-09-07 2020-09-07 プログラムの更新方法および更新システム
CN202110752036.5A CN114153474A (zh) 2020-09-07 2021-06-29 程序的更新方法以及更新系统
US17/362,144 US11941388B2 (en) 2020-09-07 2021-06-29 Program update method and update system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020149758A JP7420025B2 (ja) 2020-09-07 2020-09-07 プログラムの更新方法および更新システム

Publications (2)

Publication Number Publication Date
JP2022044229A JP2022044229A (ja) 2022-03-17
JP7420025B2 true JP7420025B2 (ja) 2024-01-23

Family

ID=80461888

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020149758A Active JP7420025B2 (ja) 2020-09-07 2020-09-07 プログラムの更新方法および更新システム

Country Status (3)

Country Link
US (1) US11941388B2 (ja)
JP (1) JP7420025B2 (ja)
CN (1) CN114153474A (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003337723A (ja) 2002-03-11 2003-11-28 Fujitsu Ltd 差分転送方法、プログラム及びシステム
JP2004199121A (ja) 2002-12-16 2004-07-15 Fujitsu Ltd 差分更新方法、プログラム及び装置
WO2013021423A1 (ja) 2011-08-10 2013-02-14 トヨタ自動車株式会社 リプログラミングシステム及びリプログラミング方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9443358B2 (en) * 1995-06-07 2016-09-13 Automotive Vehicular Sciences LLC Vehicle software upgrade techniques
US7320009B1 (en) * 2003-03-28 2008-01-15 Novell, Inc. Methods and systems for file replication utilizing differences between versions of files
US9323546B2 (en) * 2014-03-31 2016-04-26 Ford Global Technologies, Llc Targeted vehicle remote feature updates
EP3252605B1 (en) 2015-01-26 2022-04-06 Hitachi Astemo, Ltd. Vehicle-mounted control device, program writing device, program generating device and program
JP6609508B2 (ja) * 2016-04-27 2019-11-20 日立オートモティブシステムズ株式会社 車両用電子制御装置、プログラム更新方法
GB2568527B (en) * 2017-11-20 2020-04-15 Trustonic Ltd Address layout varying process
WO2019168907A1 (en) * 2018-02-27 2019-09-06 Excelfore Corporation Broker-based bus protocol and multi-client architecture
JP7059985B2 (ja) 2018-08-10 2022-04-26 株式会社デンソー 車両用電子制御システム、車両用マスタ装置、データ格納面情報の送信制御方法、データ格納面情報の送信制御プログラム、車両用マスタ装置側プログラム、センター装置、更新データの選定方法及びセンター装置側プログラム
US11870271B2 (en) * 2019-02-26 2024-01-09 Lg Electronics Inc. Apparatus and method for performing firmware update in wireless power transmission system
US11829747B2 (en) * 2019-04-22 2023-11-28 Lg Electronics Inc. Wireless charging device, method, and system for updating firmware

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003337723A (ja) 2002-03-11 2003-11-28 Fujitsu Ltd 差分転送方法、プログラム及びシステム
JP2004199121A (ja) 2002-12-16 2004-07-15 Fujitsu Ltd 差分更新方法、プログラム及び装置
WO2013021423A1 (ja) 2011-08-10 2013-02-14 トヨタ自動車株式会社 リプログラミングシステム及びリプログラミング方法

Also Published As

Publication number Publication date
JP2022044229A (ja) 2022-03-17
CN114153474A (zh) 2022-03-08
US11941388B2 (en) 2024-03-26
US20220075612A1 (en) 2022-03-10

Similar Documents

Publication Publication Date Title
JP4901285B2 (ja) 読み出し性能を向上させることができるメモリカード
US9015695B2 (en) Information processing apparatus and information processing method
US20060161605A1 (en) Data management system, a data management apparatus, a data management method, a data supplying system, and a computer-readable recording medium with a program recorded therein
CN110704330B (zh) 数据存取控制装置及方法
CN108170455B (zh) 升级包的打包方法以及升级方法
KR20070048638A (ko) 볼륨 이미지 및 그것을 포함하는 컴퓨터 판독가능 매체
CN103514212A (zh) 数据写入方法及系统
JP4876051B2 (ja) 画像処理装置及びその制御方法
EP3306823B1 (en) Encoding program, encoding apparatus and encoding method
JP6853746B2 (ja) 車両制御装置
US20030163496A1 (en) Differential data forming method, program, recording medium, and apparatus
JP7420025B2 (ja) プログラムの更新方法および更新システム
CN112187829B (zh) 联机交易报文处理方法、装置及系统
CN111930510B (zh) 电子设备和数据处理方法
JP2009048557A (ja) データ更新装置及びデータ更新方法及びデータ更新プログラム
CN101571808B (zh) 提高电信智能卡生产效率的方法
JP2010009195A (ja) バッチ処理方法、バッチ処理プログラム、リクエスト実行装置、および、データベースシステム
JP3267550B2 (ja) デグレードチェック装置
JP3733135B1 (ja) ソフトウエア差分抽出適用システム及び差分抽出装置及び差分適用装置及びプログラム
JP6740785B2 (ja) 情報処理装置及びプログラム
JP2009277062A (ja) データ書き換えシステム及び新版データ作成装置及び差分データ作成装置及び新版データ作成プログラム及び差分データ作成プログラム
KR102541439B1 (ko) 차량 무선 업데이트의 관리 제어 방법 및 장치
JP4719243B2 (ja) データ同期方法および通信装置
JP2006079492A (ja) 差分データ生成装置、差分データ生成方法および差分データ生成プログラム
CN110109920B (zh) 数据比对方法及服务器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220824

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230710

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230829

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231025

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20231212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231225

R151 Written notification of patent or utility model registration

Ref document number: 7420025

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151