[go: up one dir, main page]

JP2025035610A - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP2025035610A
JP2025035610A JP2023142761A JP2023142761A JP2025035610A JP 2025035610 A JP2025035610 A JP 2025035610A JP 2023142761 A JP2023142761 A JP 2023142761A JP 2023142761 A JP2023142761 A JP 2023142761A JP 2025035610 A JP2025035610 A JP 2025035610A
Authority
JP
Japan
Prior art keywords
version information
software program
data
cpu
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.)
Pending
Application number
JP2023142761A
Other languages
English (en)
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.)
Subaru Corp
Original Assignee
Subaru 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 Subaru Corp filed Critical Subaru Corp
Priority to JP2023142761A priority Critical patent/JP2025035610A/ja
Priority to US18/769,692 priority patent/US20250077225A1/en
Priority to CN202410929639.1A priority patent/CN119556949A/zh
Publication of JP2025035610A publication Critical patent/JP2025035610A/ja
Pending legal-status Critical Current

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates

Landscapes

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

Abstract

Figure 2025035610000001
【課題】ソフトウェアプログラムのアップデートを適切に行う情報処理装置を提供する。
【解決手段】方法は、第1ソフトウェアプログラムとそれよりも先頭側の領域に格納される第1ソフトウェアプログラムについての第1バージョン情報とを含むアップデートデータのうち、第1バージョン情報が含まれ第1ソフトウェアプログラムが含まれない一部データを受信する第1受信処理と、一部データを第1記憶領域に記憶する処理と、第1ソフトウェアプログラムが記憶される予定の第2記憶領域に記憶されているアップデート前の第2ソフトウェアプログラムについてのバージョンを示す第2バージョン情報と、一部データに含まれる第1バージョン情報との新旧を比較する処理と、第1バージョン情報の方が第2バージョン情報よりも新しいと判定された場合に、第1ソフトウェアプログラムを第2受信処理によって受信して第2記憶領域に記憶する処理と、を含む。
【選択図】図8

Description

本発明は、車両に搭載される情報処理装置のソフトウェアをアップデートする技術分野に関する。
車両には制御の電子化によりECU(Electronic Control Unit)などの情報処理装置が多く搭載されている。
このような情報処理装置では、ソフトウェアプログラムのバグの解消や性能の向上を目的としてアップデートが行われる(例えば特許文献1参照)。
特開2023-052938号公報
ところで、ソフトウェアプログラムの更新を行う場合には、リプログラミングツールがインストールされた接続端末(外部端末)を用いることが多い。
接続端末では、ECUにインストールされているソフトウェアプログラムのバージョンと書き込み対象のソフトウェアプログラムのバージョンを比較することにより、旧バージョンへのダウングレードを回避している。
しかし、接続端末が不正に改造されてしまった場合には、バージョン比較の処理が無効化されるなどしてECUにおけるダウングレードを回避できなくなってしまう虞がある。
本発明は上記事情に鑑みて為されたものであり、ソフトウェアプログラムのアップデートを適切に行うことを目的とする。
本発明の一態様に係る情報処理装置は、一または複数のプロセッサと、前記一または複数のプロセッサによって実行されるプログラムが記憶された記憶媒体と、を備え、前記プログラムは一または複数の命令を含み、前記一または複数の命令は、前記一または複数のプロセッサに、第1ソフトウェアプログラムと前記第1ソフトウェアプログラムよりも先頭側の領域に格納される情報であって前記第1ソフトウェアプログラムについてのバージョンを示す第1バージョン情報とを含むアップデートデータのうち、前記第1バージョン情報が含まれ前記第1ソフトウェアプログラムが含まれない一部データを受信する第1受信処理と、前記一部データを第1記憶領域に記憶する処理と、前記第1ソフトウェアプログラムが記憶される予定の第2記憶領域に記憶されているアップデート前の第2ソフトウェアプログラムについてのバージョンを示す第2バージョン情報と、前記一部データに含まれる前記第1バージョン情報との新旧を比較する処理と、前記第1バージョン情報の方が前記第2バージョン情報よりも新しいと判定された場合に、前記第1受信処理の後に行われる第2受信処理によって受信した前記第1ソフトウェアプログラムを前記第2記憶領域に記憶する処理と、を実行させるものである。
本発明によれば、ソフトウェアプログラムのアップデートを適切に行うことができる。
車両の構成例を示すブロック図である。 車両とサーバ装置の間の通信経路について説明するための図である。 ECUの構成例を示すブロック図である。 コンピュータ装置の構成例を示すブロック図である。 ソフトウェアプログラムからアップデートデータを生成する過程を示す図である。 アップデートデータから暗号化済アップデートデータを生成する過程を示す図である。 アップデート処理としてCGWECUが実行する処理の一例を示すフローチャートである。 図9と共にアップデート対象のECUが実行する処理の一例を示すフローチャートである。 図8と共にアップデート対象のECUが実行する処理の一例を示すフローチャートである。 アップデート処理においてサーバ装置が実行する処理の一例を示すフローチャートである。 アップデート処理において接続端末が実行する処理の一例を示すフローチャートである。
<1.車両の構成>
本発明の情報処理装置としての一実施形態に係るECU1を備えた車両100の構成例を図1に示す。
車両100は、第1バス101と第2バス102とを備えている。第1バス101や第2バス102は、例えば、CAN(Controller Area Network(登録商標))通信によるバスとして構成されており、機器同士の情報の送受信が可能とされている。
第1バス101には、ECU1とそれ以外の各種のECU103とDCM(Data Communication Module)104が接続されている。
ここで、ECU1と各種のECU103について説明する。
ECU103は、例えば、ACECU(Air Conditioner ECU)やエンジン制御ECUや充電制御ECUやエアバッグECUや表示制御ECUなどとされている。
各ECU103には、ソフトウェアプログラムSWPがインストールされることにより所定の機能を発揮可能に構成されている。ECU103は、新しいソフトウェアプログラムSWPが提供された場合に、それぞれ任意のタイミングで更新される。
以降の説明においては、ソフトウェアプログラムSWPの更新対象とされたECU103をECU1とする。そして、ソフトウェアプログラムSWPの更新対象とされていないものをECU103として記載する。
また、ECU103の中には、車両用のゲートウェイ機能を備えたものが含まれている。このECU103をCGWECU(Central Gateway Electronic Control Unit)103aとする。なお、CGWECU103aが更新対象とされたECU1とされていてもよい。
CGWECU103aは、第1バス101に接続されたECU1にインストールされているソフトウェアプログラムSWPを更新するためのアップデートデータDuを車外の装置から受信する。
CGWECU103aは、車外から受け取ったアップデートデータDuをECU1に供給する。
アップデートデータDuを受信したECU1は、後述する所定の処理を行うことでアップデートデータDuの正当性を確認した後、アップデートデータDuを用いてソフトウェアプログラムSWPの更新処理を行う。
DCM104は、車外の通信ネットワークNWを介して他の装置とデータ通信を行う車両用通信機である。DCM104は、例えば、車外のファイルサーバ(例えば後述するサーバ装置300)から上述したアップデートデータDuをOTA(Over The Air)方式で取得可能とされていてもよい。取得したアップデートデータDuは、第1バス101を介してCGWECU103aに提供される。
第2バス102には、CGWECU103aとDLC(Data Link Connector)105が接続されている。
DLC105は、例えば、OBDII(On-Board Diagnostics II)方式で通信を行う機器が接続されたコネクタとして設けられている。
DLC105は、接続された車外の機器(例えば後述する接続端末200)からアップデートデータDuを取得することが可能とされており、取得したアップデートデータDuは第2バス102を介してCGWECU103aに提供される。
図2は、DLC105を介して取得されたアップデートデータDuがCGWECU103aに提供されるまでの通信経路を例示した図である。なお、図2においては車両100が備える各バスの図示を省略している。
車両100はDLC105を介して接続端末200が接続される。
接続端末200は、リプログラミングツール(以降、「リプロツールRT」と記載)がインストールされており、リプロツールRTを用いることによりCGWECU103a及びその他のECU103のアップデート操作が可能とされている。
通信ネットワークNWには、接続端末200や車両100のDCM104やサーバ装置300が接続されている。
サーバ装置300には、接続端末200やDCM104を介してCGWECU103aに提供されるアップデートデータDuが記憶されたデータベースDBが接続されている。
即ち、CGWECU103aは、サーバ装置300がデータベースDBから取得したアップデートデータDuを、DLC105またはDCM104を介して取得し、更新対象とされたECU1に対して提供する。アップデートデータDuを受け取ったECU1は、正当性を検証した後にソフトウェアプログラムSWPの更新を行う。
<2.情報処理装置の構成>
上述したECU1、ECU103及びCGWECU103aの構成について図3を参照して説明する。
ECU1は、マイクロコンピュータ2と通信回路3を有して構成されている。
マイクロコンピュータ2は、CPU(Central Processing Unit)4とROM(Read Only Memory)5とRAM(Random Access Memory)6とを備えている。
CPU4とROM5とRAM6は、バス7によって相互通信可能に接続されている。
CPU4は、ROM5に記憶されているプログラム、またはRAM6にロードされたプログラムに従って各種の処理を実行する。
例えば、更新対象のECU1におけるCPU4は、アップデートデータDuの一部を先ずCGWECU103aから受信して復号する処理を実行する。
CPU4は更に、アップデートデータDuから取得したバージョン情報DverとECU1にインストールされているソフトウェアプログラムSWPのバージョン情報Dverを比較し、アップデート処理を続けるべきか否かを判定する。
CPU4は、アップデート処理を続けるべきと判定した場合に、アップデートデータDuのうち未受信のデータをCGWECU103aを介して受信する処理を行い、受信したデータを復号してソフトウェアプログラムSWPをアップデートする。
このような処理を行う上でCPU4が扱うデータなどは、例えば、RAM6に一時的に記憶される。
ROM5は例えばNVM(Non Volatile Memory)とされている。
通信回路3は、第1バス101や第2バス102を介したCAN通信の規格等に準拠したデータ通信の制御を行う。
ECU103及びCGWECU103aは、ECU1と同様に、図3に示すように、マイクロコンピュータ2と通信回路3を有して構成されている。
ECU1の通信回路3は、第1バス101を介したCAN通信の規格等に準拠したデータ通信の制御を行う。
続いて、接続端末200やサーバ装置300等のコンピュータ装置Comの構成について図4を参照して説明する。なお、各コンピュータ装置Comは図4に示す各部を全て備える必要はない。例えば、各コンピュータ装置Comが図4に示す各部の内の一部を備えていなくてもよいし、図4に不図示とされた各部を備えていてもよい。
コンピュータ装置Comは、CPU31、ROM32、RAM33、バス34、入出力インタフェース35、入力部36、出力部37、記憶部38、通信部39、メディアドライブ40などを備えて構成されている。
CPU31は、ROM32に記憶されているプログラム、または記憶部38からRAM33にロードされたプログラムに従って各種の処理を実行する。RAM33にはまた、CPU31が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU31、ROM32、及びRAM33は、バス34を介して相互に接続されている。また、バス34には、入出力インタフェース35も接続されている。
入出力インタフェース35には、入力部36、出力部37、記憶部38、通信部39、メディアドライブ40が接続されている。
入力部36はキーボード、マウス、タッチパネル、マイクなどにより構成される。
出力部37はLCD(Liquid Crystal Display)、CRT(Cathode Ray Tube)、有機EL(Electro Luminescence)パネルなどよりなるディスプレイ、並びにスピーカなどにより構成される。
記憶部38はHDD(Hard Disk Drive)やフラッシュメモリ装置などにより構成される。
通信部39は通信ネットワークNWを介しての通信処理や機器間通信を行う。
メディアドライブ40には、必要に応じて磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア41が装着され、リムーバブルメディア41に対する情報の書き込みや読み出しが行われる。
コンピュータ装置Comでは、通信部39による通信によりデータやプログラムのアップロード、ダウンロードが行われる。またリムーバブルメディア41を介したデータやプログラムの受け渡しが可能である。
CPU31が各種のプログラムに基づいて処理動作を行うことで、コンピュータ装置Comとしての必要な情報処理や通信が実行される。
コンピュータ装置Comには、CPU31、ROM32、RAM33等によって各種の機能が構築される。
これにより、例えば、サーバ装置300としてのコンピュータ装置Comにおいては、アップデートに用いられるアップデートデータDuをデータベースDBから取得して送信する処理が実現される。
また、接続端末200としてのコンピュータ装置Comにおいては、サーバ装置300から受信したアップデートデータDuを車両100が備えるCGWECU103aに提供する処理等が実現される。
<3.アップデートデータの生成>
アップデートデータDuの構成について図5を参照して説明する。
アップデートデータDuは、例えば、サーバ装置300で用意されるデータである。
サーバ装置300のCPU31は、バージョン情報Dverを含むソフトウェアプログラムSWPを用意する。
サーバ装置300のCPU31は、先ずソフトウェアプログラムSWPから抜き出されたバージョン情報Dverについての検証データDvalを生成する。
検証データDvalは、例えば、バージョン情報Dverの誤り検出や誤り訂正が可能なCRC(Cyclic Redundancy Check)符号などとされる。
また、サーバ装置300のCPU31は、バージョン情報Dverを含むソフトウェアプログラムSWP全体を用いて認証子ACを生成する。
認証子ACは、ソフトウェアプログラムSWPの正当性の有無を判定可能なデータであり、例えば、電子署名やMAC(Message Authentication Code)などとされる。
サーバ装置300は、バージョン情報Dverと検証データDvalとソフトウェアプログラムSWP全体と、認証子ACを順に並べたアップデートデータDuを生成する。
このとき、アップデートデータDuにおいては、ソフトウェアプログラムSWPから抜き出したバージョン情報Dverと検証データDvalをソフトウェアプログラムSWPよりも先頭側の領域に配置する。
なお、アップデートデータDuの先頭領域或いはそれに準ずる領域に含まれるバージョン情報Dverは、旧バージョンの情報と区別するために第1バージョン情報Dver1とする。
また、ソフトウェアプログラムSWPについても旧バージョンのものと区別するために第1ソフトウェアプログラムSWP1とする。
サーバ装置300は、図5に示すようなアップデートデータDuを接続端末200を介して或いはDCM104を介してCGWECU103aに提供する。
なお、サーバ装置300は、図5に示すアップデートデータDuを暗号化した暗号化済アップデートデータDuenをCGWECU103aに提供してもよい(図6参照)。
また、認証子ACは、暗号化済アップデートデータDuenから生成されてもよい。
なお、暗号化済アップデートデータDuenにおいては、先頭領域或いはそれに準ずる領域に暗号化された第1バージョン情報Dver1が格納されており、第1バージョン情報Dver1は、少なくとも第1ソフトウェアプログラムSWP1よりも先頭側の領域に格納されている。
なお、アップデートデータDuの暗号化処理では、AES(Advanced Encryption Standard)やCamellia暗号などのブロック暗号が用いられる。
これにより、復号処理において暗号化済アップデートデータDuenにおける先頭から所定の領域のみを先に復号することが可能となり、全てを復号しなくてもバージョン検証が可能となる。
アップデートデータDuにおいて第1ソフトウェアプログラムSWP1よりも先頭側の領域に格納された情報をまとめて一部データDpと記載する。
即ち、一部データDpには、少なくとも第1バージョン情報Dver1と検証データDvalが含まれている。
なお、暗号化済アップデートデータDuenにおける一部データDpは、少なくとも暗号化された第1バージョン情報Dver1と検証データDvalが含まれている。
<4.処理フロー>
ECU103(またはCGWECU103a)のソフトウェアをアップデートするために車両100のCGWECU103aのCPU4が実行するアップデート処理の一例を図7に、ECU1のCPU4が実行するアップデート処理の一例を図8及び図9に示す。
なお、図中のコネクタCn1は、処理の接続を表す。
CGWECU103aのCPU4は先ず図7のステップS101において、車両検証処理を行う。車両検証処理は、CGWECU103aと接続端末200(或いはサーバ装置300)との間でECU103のアップデート対象の車両100であるか否かを検証する処理である。以降の処理では、接続端末200からアップデートデータDuが送信される例を主に説明する。
車両検証処理では、例えば、CPU4は、車両100におけるアップデート対象とされたECU1にインストールされているソフトウェアプログラムSWPのバージョン情報Dverや車両100を特定する車台番号やVIN(Vehicle Identification Number)などの情報を送信する。
車両検証処理が正常に終了しなかった場合には、CPU4はステップS102以降の各処理を実行せずに図8及び図9に示す一連の処理を終了させる。
一方、車両検証処理を正常に終えた後、CPU4はステップS102において、アップデートセッションへ移行する。
CPU4はステップS103において、暗号化済アップデートデータDuenにおける一部データDp(例えば先頭の数kByteのデータ)を受信し、例えばRAM6に記憶する。
CPU4はステップS104において、一部データDpをECU1に送信する処理を行う。このとき、CPU4は、一部データDpに続く残りのデータの送信を一時的に停止させるための停止要求を接続端末200に送信してもよい。
CPU4はステップS105において、ECU1から一部データDpに続く残りデータの送信要求をECU1から受信したか否かを判定する。
送信要求を受信していないと判定した場合に、CPU4はステップS106でアップデートの中止要求をECU1から受信したか否かを判定する。
中止要求を受信したと判定した場合に、CPU4はステップS107へと進み、中止要求を接続端末200に送信する。これにより、接続端末200では、一部データDpに続く残りのデータの送信が回避され、アップデートを行わないままアップデート処理が中止される。
一方、送信要求と中止要求のいずれもECU1から受信していないと判定した場合には、CGWECU103aのCPU4はステップS105の処理を再度実行する。
また、ステップS105において送信要求をECU1から受信したと判定した場合には、CPU4はステップS108へと進み、暗号化済アップデートデータDuenにおける一部データDpに続く残りデータの送信要求を接続端末200に送信する。
CPU4はステップS109において、残りデータを受信する受信処理を行う。そして、CPU4はステップS110において、受信した残りデータをECU1に送信する処理を行い、図7に示す一連の処理を終える。
続いて、アップデート対象とされたECU1のCPU4が実行する処理について説明する。
ECU1のCPU4は、図8のステップS151において、暗号化済アップデートデータDuenにおける一部データDpをCGWECU103aから受信し、例えばRAM6に記憶する。
CPU4は、ステップS152において、受信した一部データDpの復号処理を行う。
更に、CPU4は、ステップS153において、誤り検証処理を実行する。誤り検証処理では、ステップS152の復号処理で得られた一部データDpに含まれる検証データDvalを用いて同じく一部データDpに含まれる第1バージョン情報Dver1の誤りの有無を検証する。このとき、所定bit数の誤りについては訂正されるようにしてもよい。
CPU4はステップS154において、誤りがあるか否かを判定する。なお、ステップS153において誤り訂正を行っている場合には、誤り訂正を適切に行えたか否かをステップS154において判定してもよい。
誤りありと判定した場合、或いは、誤りを訂正したが正常な第1バージョン情報Dver1を得られなかった場合には、CPU4はステップS155においてアップデートの中止要求をCGWECU103aに対して行う。
一方、誤りなしと判定した場合、或いは、誤りを訂正した結果正常な第1バージョン情報Dver1を得られた場合には、CPU4はステップS156で新旧比較処理(バージョン検証処理)を実行する。
新旧比較処理では、ECU1に現在インストールされている更新前のソフトウェアプログラムSWP(第2ソフトウェアプログラムSWP2と記載)のバージョン情報(第2バージョン情報Dver2と記載)と、ステップS152またはステップS153で得られた第1バージョン情報Dver1の比較を行う。
CPU4は、ステップS157において、新旧比較処理の結果に応じた分岐処理を行う。具体的には、CPU4は第2バージョン情報Dver2の方が新しいと判定した場合にステップS157で「No」判定とする。この場合には、CPU4はステップS155で中止要求をCGWECU103aに対して送信し、一連のアップデート処理を中止する。
一方、CPU4は、第1バージョン情報Dver1の方が新しいと判定した場合にステップS157で「Yes」判定とする。この場合には、CPU4は、図9のステップS158へと進み、一部データDpに続く残りデータの送信要求をCGWECU103aに送信する。
CPU4は、ステップS159においてCGWECU103aから残りデータを受信し、ステップS160で残りデータの復号処理を行う。
CPU4はステップS161において、復号した残りデータに含まれる第1ソフトウェアプログラムSWP1を第2ソフトウェアプログラムSWP2が格納されている領域に上書きする処理を行う。これにより、ECU1にインストールされている第2ソフトウェアプログラムSWP2が削除され代わりに第1ソフトウェアプログラムSWP1がインストールされる。
CPU4はステップS162において、認証子ACの生成を行う。この認証子生成処理では、復号された残りデータに含まれる第1ソフトウェアプログラムSWP1から新たに認証子ACとしての電子署名やMACを生成する処理である。
CPU4はステップS163において、認証子ACの比較処理を行う。この比較処理では、ステップS162で新たに生成された認証子ACと、ステップS160の復号処理によって得られた残りデータから取り出された認証子AC(サーバ装置300で生成された認証子AC)を比較することにより、ECU1に書き込まれた第1ソフトウェアプログラムSWP1の正当性を検証する処理である。
CPU4は、ステップS163の比較処理(検証処理)の結果に応じた分岐処理をステップS164で行う。
第1ソフトウェアプログラムSWP1の正当性が検証された場合には、CPU4はYes判定として図8及び図9に示す一連のアップデート処理を完了する。
一方、第1ソフトウェアプログラムSWP1の正当性が得られなかった場合には、CPU4はNo判定としてステップS165で対応処理を行う。
対応処理では、例えば、ECU1に再びアップデート前の第2ソフトウェアプログラムSWP2を書き込むために、第2ソフトウェアプログラムSWP2を送信するようにCGWECU103aを介して接続端末200に要求する処理を行う。
或いは、ECU1のアップデートが失敗し不正なプログラムが書き込まれた可能性があることをユーザに通知すると共に、当該プログラムを適正化するためにディーラー等を訪れることを勧める通知処理を実行してもよい。
このように、アップデート対象とされたECU1のROM5は、ソフトウェアプログラムSWPを複数記憶するだけの容量を持っておらず、且つ、RAM6が数kByteや数十kByteのみとされていてもよい。
具体的には、ROM5(第2記憶領域)には、旧バージョンの第2ソフトウェアプログラムSWP2が記憶されている。
ECU1のCPU4は、図8のステップS151において一部データDpを受信し、RAM6(第1記憶領域)に記憶する。
そして、ECU1のCPU4は、RAM6(第1記憶領域)上において一部データDpを復号して得られた第1バージョン情報Dver1と旧バージョンについての第2バージョン情報Dver2の比較を行う。
更に、ECU1のCPU4は、第1バージョン情報Dver1に誤りがなく第2バージョン情報Dver2よりも新しいと判定した場合に、ステップS158において暗号化済アップデートデータDuenの残りデータの送信要求をCGWECU103aに送信する。
続いて、ECU1のCPU4は、ステップS159、S160、S161を実行することにより、ROM5(第2記憶領域)に記憶された第2ソフトウェアプログラムSWP2を削除すると共に受信した残りデータについての復号処理及び記憶処理を行う。
このようにECU1の記憶領域に余裕がそれほどない状況においても、ソフトウェアプログラムSWPのダウングレードやデグレードを回避しつつ適切な第1ソフトウェアプログラムSWP1を上書きすることが可能となる。
また、この例では、RAM6が第1記憶領域とされROM5が第2記憶領域とされていたが、ROM5上にバージョン検証の作業領域としての第1記憶領域とソフトウェアプログラムSWPが記憶される第2記憶領域の双方が設けられていてもよい。
即ち、バージョン検証の作業領域としての第1記憶領域とソフトウェアプログラムSWPが記憶される第2記憶領域は、同じメモリの異なる領域に設けられていてもよいし、異なるメモリ上に設けられていてもよい。
続いて、サーバ装置300が実行する処理の一例を図10に示す。
サーバ装置300のCPU31は、ステップS201において、送信対象の第1ソフトウェアプログラムSWP1の第1バージョン情報Dver1を取得し検証データDvalを生成する。
サーバ装置300のCPU31はステップS202において、第1ソフトウェアプログラムSWP1から認証子ACを生成する。
サーバ装置300のCPU31はステップS203において、第1バージョン情報Dver1と検証データDvalと第1ソフトウェアプログラムSWP1と認証子ACからアップデートデータDuを生成する。
サーバ装置300のCPU31はステップS204において、アップデートデータDuを暗号化して暗号化済アップデートデータDuenを生成する。
サーバ装置300のCPU31はステップS205において、暗号化済アップデートデータDuenを接続端末200に送信する。
なお、サーバ装置300のCPU31は、ステップS205の後に、アップデート処理の結果を接続端末200から受信してもよい。
これにより、サーバ装置300において車両100ごとのアップデート状況を記録しておくことができる。
なお、上述したように、暗号化済アップデートデータDuenから認証子ACを生成する場合には、ステップS202の処理をステップS204の暗号化処理の後に行えばよい。
次に、接続端末200のCPU31が実行する処理の一例を図11に示す。
接続端末200のCPU31はステップS301において、車両検証処理を行う。この処理は図7のステップS101の処理と連動して行われるものであり、車両100がアップデート対象のECU1を備えた車両100であるか否かを検証する処理である。
続いて、接続端末200のCPU31はステップS302において、アップデートセッションへ移行する。この処理は図7のステップS102の処理と連動して行われるものである。本処理は、例えば、接続端末200にインストールされたリプロツールRTがアップデートモードへと移行するための処理である。
接続端末200のCPU31はステップS303において、車両100のCGWECU103aに暗号化済アップデートデータDuenの一部データDpを送信する。
接続端末200のCPU31はステップS304において、送信要求を受信したか否かを判定する。この送信要求は、CGWECU103aにおいて、受信した一部データDpに基づいてバージョン情報Dverの判定を行いアップデートしても問題ないと判定した場合にECU1からCGWECU103aを介して送られてくる要求であり、具体的には図7のステップS108でCGWECU103aから送信される要求である。
送信要求を受信したと判定した場合には、接続端末200のCPU31はステップS305へと進み、暗号化済アップデートデータDuenにおいて未送信の残りデータをCGWECU103aに送信して図10に示す一連の処理を終える。
一方、送信要求を受信していないと判定した場合には、接続端末200のCPU31は続くステップS306で中止要求を受信したか否かを判定する。この中止要求は、バージョン検証がうまく行かなかった場合などに送られてくる要求であり、具体的には図7のステップS107でCGWECU103aから送信される要求である。
中止要求を受信したと判定した場合には、接続端末200のCPU31は図10に示す一連の処理を終了する。これにより、暗号化済アップデートデータDuenは一部データDpのみがCGWECU103aに送信されただけで済む。
中止要求を受信していないと判定した場合には、接続端末200のCPU31は再びステップS304の処理に戻る。
即ち、接続端末200のCPU31はステップS304、S306の両処理を繰り返し実行することで、何らかの要求をCGWECU103aから受信するまで待機する。
なお、ステップS304、S306の両処理を繰り返しながら所定時間が経過した場合には、接続端末200のCPU31は何らかの要求をCGWECU103aから受信することなく図10に示す一連の処理を終えてもよい。
また、接続端末200のCPU31は、ステップS305またはステップS306の後に、アップデート結果をサーバ装置300に送信してもよい。
<5.変形例>
上述した例では更新対象とされたECU1が図8及び図9に示す処理を実行する例を示したが、CGWECU103aにおいて図8及び図9に示す一部の処理が実行されてもよい。
例えば、CGWECU103aのCPU4は、ステップS152の一部データDpの復号処理、ステップS153の誤り検出処理、ステップS154の判定処理、ステップS155の新旧比較処理、ステップS157の判定処理、ステップS160の残りデータの復号処理を実行してもよい。
また、CGWECU103aのCPU4は、更にステップS162からステップS165の各処理をECU1に代わって実行してもよい。
上述した例では、CGWECU103aと車外の接続端末200が別々に設けられていたが、接続端末200の機能がCGWECU103aに設けられていてもよい。即ち、CGWECU103aにリプロツールRTがインストールされ、CGWECU103aがDCM104、通信ネットワークNWを介してサーバ装置300からアップデートデータDu(暗号化済アップデートデータDuen)を取得可能とされていてもよい。
<6.まとめ>
上述した情報処理装置としてのECU1(またはCGWECU103a)は、 一または複数のプロセッサ(CPU4)と、一または複数のプロセッサによって実行されるプログラムが記憶された記憶媒体(ROM5またはRAM6)と、を備え、プログラムは一または複数の命令を含み、一または複数の命令は、一または複数のプロセッサに、以下の処理を実行させるものである。
即ち、一または複数の命令は、CPU4に対して、第1ソフトウェアプログラムSWP1と第1ソフトウェアプログラムSWP1よりも先頭側の領域に格納される情報であって第1ソフトウェアプログラムSWP1についてのバージョンを示す第1バージョン情報Dver1とを含むアップデートデータDuのうち、第1バージョン情報Dver1が含まれ第1ソフトウェアプログラムSWP1が含まれない一部データDpを受信する第1受信処理(ステップS151)と、一部データDpを第1記憶領域(ROM5またはRAM6)に記憶する処理(ステップS151)と、第1ソフトウェアプログラムSWP1が記憶される予定の第2記憶領域(ROM5)に記憶されているアップデート前の第2ソフトウェアプログラムSWP2についてのバージョンを示す第2バージョン情報Dver2と、一部データDpに含まれる第1バージョン情報Dver1との新旧を比較する処理(ステップS156)と、第1バージョン情報Dver1の方が第2バージョン情報Dver2よりも新しいと判定された場合(ステップS157:Yes判定)に、第1受信処理の後に行われる第2受信処理(ステップS159)によって受信した第1ソフトウェアプログラムSWP1を第2記憶領域に記憶する処理(ステップS161)と、を実行させる。
これにより、バージョン情報Dverの新旧を比較した結果に基づいて第2ソフトウェアプログラムSWP2を第1ソフトウェアプログラムSWP1に更新するアップデート処理が実行される。
従って、例えば、第1ソフトウェアプログラムSWP1が第2ソフトウェアプログラムSWP2よりも古いバージョンである場合に、アップデート処理を中止することが可能となり、古いソフトウェアプログラムSWPのバグが再発してしまうことを防止することができる。
また、リプロツールRTがインストールされた接続端末200が不正に改造され、ECU1のプログラムを不正に書き換えることが可能となっていたとしても、バージョン情報Dverを比較する処理を車両100側で行うことにより、ダウングレードや不正プログラムへの書き換えを抑制することができる。
即ち、ECU1(ECU103、CGWECU103a)の異常動作や故障(文鎮化)を防止することができ、更に、正常プログラムへの再書き換えの手間やコストの発生を防止することができる。
特に、ROM5の容量が小さく新旧双方のソフトウェアプログラムSWPを記憶することができない場合には、ソフトウェアプログラムSWPの書き換え時に古いものが削除されてしまうため、正常なプログラムへ戻すことが難しい。
このような場合であっても、新旧比較処理の結果によってソフトウェアプログラムSWPの書き換えを中止することができるため好適である。
情報処理装置としてのECU1(またはCGWECU103a)において、アップデートデータDuは暗号化されたデータ(暗号化済アップデートデータDuen)とされ、一部データDpは第1バージョン情報Dver1の正誤検証に用いられる検証データDvalを含み、一または複数の命令は、一または複数のプロセッサ(CPU4)に、第1受信処理(ステップS151)に対応して一部データDpの復号を実行させ(ステップS152)、復号された検証データDvalを用いて第1バージョン情報Dver1の正誤判定処理を実行させ(ステップS153)、第1バージョン情報Dver1に誤りがなく(ステップS154:No判定)且つ新旧を比較する処理(ステップS156)において第1バージョン情報Dver1の方が第2バージョン情報Dver2よりも新しいと判定された場合に(ステップS157:Yes判定)、第2受信処理(ステップS159)に対応して第1ソフトウェアプログラムSWP1の復号(ステップS160)を実行させてもよい。
これにより、バージョン情報Dverに対する誤り(改竄)の有無が判定される。
従って、古いバージョンのソフトウェアプログラムSWPを用いてアップデート処理が行われてしまうことを防止することができる。即ち、ECU1(ECU103、CGWECU103a)の異常動作や故障を適切に防止することができる。
情報処理装置としてのECU1(またはCGWECU103a)においては、一または複数の命令は、一または複数のプロセッサ(CPU4)に、新旧を比較する処理(ステップS156)において第1バージョン情報Dver1の方が第2バージョン情報Dver2よりも古いと判定された場合(ステップS157:No判定)に、第2記憶領域(ROM5)に第1ソフトウェアプログラムSWP1を記憶させる処理を中止させてもよい(ステップS155)。
これにより、記憶領域に記憶されたソフトウェアプログラムSWPは新しい方のプログラムとされる。
従って、プログラムのダウングレードやデグレードを防止することができる。
情報処理装置としてのECU1(またはCGWECU103a)においては、一または複数の命令は、一または複数のプロセッサ(CPU4)に、新旧を比較する処理(ステップS156)において第1バージョン情報Dver1の方が第2バージョン情報Dver2よりも新しいと判定された場合(ステップS157:Yes判定)に、アップデートデータDuにおける第1ソフトウェアプログラムSWP1を含む残りデータの送信要求を送信させてもよい(ステップS158)。
これにより、車両100側に設けられる記憶領域は、一つのソフトウェアプログラムSWPがインストールされている状態において一部データDpが余分に記憶されるだけの容量が設けられていればよい。
即ち、少ない容量の記憶領域で構成された記憶部(ROM5、RAM6)を備えるECU1であっても、不正なソフトウェアプログラムSWPが書き込まれるのを防止し適切なアップデート処理を行うことが可能となる。
情報処理装置としてのECU1(またはCGWECU103a)においては、一または複数の命令は、前記一または複数のプロセッサ(CPU4)に、新旧を比較する処理(ステップS156)において第1バージョン情報Dver1の方が第2バージョン情報Dver2よりも古いと判定された場合(ステップS157:No判定)に、アップデートデータDuにおける第1ソフトウェアプログラムSWP1を含む残りデータの送信の中止要求を送信させてもよい(ステップS155)。
これにより、古いバージョンのソフトウェアプログラムSWPを送受信する処理が削減される。即ち、不要な通信を削減することができる。
上述した各実施の形態及び各変形例などは、適宜組み合わせることが可能である。
1 ECU(情報処理装置)
4 CPU(プロセッサ)
5 ROM(記憶媒体、第1記憶領域、第2記憶領域)
6 RAM(記憶媒体、第1記憶領域)
103a CGWECU(情報処理装置)
Du アップデートデータ
SWP1 第1ソフトウェアプログラム
SWP2 第2ソフトウェアプログラム
Dver1 第1バージョン情報
Dver2 第2バージョン情報
Dval 検証データ
Dp 一部データ

Claims (5)

  1. 一または複数のプロセッサと、
    前記一または複数のプロセッサによって実行されるプログラムが記憶された記憶媒体と、を備え、
    前記プログラムは一または複数の命令を含み、
    前記一または複数の命令は、前記一または複数のプロセッサに、
    第1ソフトウェアプログラムと前記第1ソフトウェアプログラムよりも先頭側の領域に格納される情報であって前記第1ソフトウェアプログラムについてのバージョンを示す第1バージョン情報とを含むアップデートデータのうち、前記第1バージョン情報が含まれ前記第1ソフトウェアプログラムが含まれない一部データを受信する第1受信処理と、
    前記一部データを第1記憶領域に記憶する処理と、
    前記第1ソフトウェアプログラムが記憶される予定の第2記憶領域に記憶されているアップデート前の第2ソフトウェアプログラムについてのバージョンを示す第2バージョン情報と、前記一部データに含まれる前記第1バージョン情報との新旧を比較する処理と、
    前記第1バージョン情報の方が前記第2バージョン情報よりも新しいと判定された場合に、前記第1受信処理の後に行われる第2受信処理によって受信した前記第1ソフトウェアプログラムを前記第2記憶領域に記憶する処理と、を実行させる
    情報処理装置。
  2. 前記アップデートデータは暗号化されたデータとされ、
    前記一部データは前記第1バージョン情報の正誤検証に用いられる検証データを含み、
    前記一または複数の命令は、前記一または複数のプロセッサに、
    前記第1受信処理に対応して前記一部データの復号を実行させ、
    復号された前記検証データを用いて前記第1バージョン情報の正誤判定処理を実行させ、
    前記第1バージョン情報に誤りがなく且つ前記新旧を比較する処理において前記第1バージョン情報の方が前記第2バージョン情報よりも新しいと判定された場合に、前記第2受信処理に対応して前記第1ソフトウェアプログラムの復号を実行させる
    請求項1に記載の情報処理装置。
  3. 前記一または複数の命令は、前記一または複数のプロセッサに、
    前記新旧を比較する処理において前記第1バージョン情報の方が前記第2バージョン情報よりも古いと判定された場合に、前記第2記憶領域に前記第1ソフトウェアプログラムを記憶させる処理を中止させる
    請求項1に記載の情報処理装置。
  4. 前記一または複数の命令は、前記一または複数のプロセッサに、
    前記新旧を比較する処理において前記第1バージョン情報の方が前記第2バージョン情報よりも新しいと判定された場合に、前記アップデートデータにおける前記第1ソフトウェアプログラムを含む残りデータの送信要求を送信させる
    請求項1に記載の情報処理装置。
  5. 前記一または複数の命令は、前記一または複数のプロセッサに、
    前記新旧を比較する処理において前記第1バージョン情報の方が前記第2バージョン情報よりも古いと判定された場合に、前記アップデートデータにおける前記第1ソフトウェアプログラムを含む残りデータの送信の中止要求を送信させる
    請求項1に記載の情報処理装置。
JP2023142761A 2023-09-04 2023-09-04 情報処理装置 Pending JP2025035610A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2023142761A JP2025035610A (ja) 2023-09-04 2023-09-04 情報処理装置
US18/769,692 US20250077225A1 (en) 2023-09-04 2024-07-11 Information processing apparatus
CN202410929639.1A CN119556949A (zh) 2023-09-04 2024-07-11 信息处理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2023142761A JP2025035610A (ja) 2023-09-04 2023-09-04 情報処理装置

Publications (1)

Publication Number Publication Date
JP2025035610A true JP2025035610A (ja) 2025-03-14

Family

ID=94740868

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023142761A Pending JP2025035610A (ja) 2023-09-04 2023-09-04 情報処理装置

Country Status (3)

Country Link
US (1) US20250077225A1 (ja)
JP (1) JP2025035610A (ja)
CN (1) CN119556949A (ja)

Also Published As

Publication number Publication date
CN119556949A (zh) 2025-03-04
US20250077225A1 (en) 2025-03-06

Similar Documents

Publication Publication Date Title
CN110178114B (zh) 车辆控制装置以及程序更新系统
US8555049B2 (en) Secure boot terminal, secure boot method, secure boot program, recording medium, and integrated circuit
TWI359597B (en) Method,computer system ,and computer-readable medi
US9626513B1 (en) Trusted modular firmware update using digital certificate
JP5178341B2 (ja) オプショナルなコンポーネントを伴うセキュアブートの方法
US7934256B2 (en) Electronic device, update server device, key update device
CN113805908B (zh) 固件更新系统和方法
US8392724B2 (en) Information terminal, security device, data protection method, and data protection program
CN111512593B (zh) 半导体设备、提供更新数据的方法、接收更新数据的方法以及介质
CN118151977B (zh) 控制器芯片的固件升级方法及系统
JP5017868B2 (ja) Icカードのプログラム修正システム、プログラム、及びicカード
CN115220796A (zh) 安全引导设备
US20230114009A1 (en) Information Processing Apparatus and Program Starting Method
CN116149706A (zh) 一种车辆设备升级方法、装置、车辆和可读存储介质
US20220391192A1 (en) Ota master, center, system, method, non-transitory storage medium, and vehicle
CN115080088A (zh) 基于ota技术的软件升级方法、系统及介质
CN115016809A (zh) 中心、更新管理方法、以及非暂时性存储介质
KR102204581B1 (ko) 확장 서비스 프레임워크 내 특정 서비스 모듈의 업데이트 방법 및 이를 사용한 확장 서비스 프레임워크 서버
JP2025035610A (ja) 情報処理装置
CN115248694A (zh) 一种集群协同升级方法、设备以及可读存储介质
KR102275142B1 (ko) 차량용 제어기의 업데이트 시스템 및 방법
CN115248696A (zh) Ota主机、方法及非暂时性存储介质
CN114144759A (zh) 用于更新车辆的车载计算机的软件的更新方法和更新装置,所述车载计算机包括执行存储器、备份存储器和检查存储器
US20240211600A1 (en) Method for reprogram with enhanced security
WO2021166603A1 (ja) 情報処理装置、プログラム更新システム、及びプログラム更新方法