JP2022121156A - 電子制御ユニット、方法およびプログラム - Google Patents

電子制御ユニット、方法およびプログラム Download PDF

Info

Publication number
JP2022121156A
JP2022121156A JP2021018342A JP2021018342A JP2022121156A JP 2022121156 A JP2022121156 A JP 2022121156A JP 2021018342 A JP2021018342 A JP 2021018342A JP 2021018342 A JP2021018342 A JP 2021018342A JP 2022121156 A JP2022121156 A JP 2022121156A
Authority
JP
Japan
Prior art keywords
data
volatile memory
area
control unit
storage area
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
JP2021018342A
Other languages
English (en)
Inventor
太貴 水谷
Taiki Mizutani
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 JP2021018342A priority Critical patent/JP2022121156A/ja
Priority to US17/545,228 priority patent/US11947824B2/en
Priority to CN202210079397.2A priority patent/CN114911415A/zh
Publication of JP2022121156A publication Critical patent/JP2022121156A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • 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/0644Management of space entities, e.g. partitions, extents, pools
    • 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
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME 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/00Registering or indicating the working of vehicles
    • G07C5/008Registering or indicating the working of vehicles communicating information to a remotely located station
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME 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/00Registering or indicating the working of vehicles
    • G07C5/08Registering or indicating performance data other than driving, working, idle, or waiting time, with or without registering driving, working, idle or waiting time
    • G07C5/0841Registering performance data
    • G07C5/085Registering performance data using electronic data carriers

Abstract

【課題】揮発性メモリの記憶容量を効率的に使用できるECU(電子制御ユニット)等を提供すること。【解決手段】揮発性メモリと、揮発性メモリに展開されるデータが書き込まれたデータ部分と当該データに対応する未使用部分であるマージン部分とを含む記憶エリアを有する不揮発性メモリと、不揮発性メモリの前記データを揮発性メモリに展開する制御部とを備え、不揮発性メモリは、データ部分を示す情報である有効部分情報を記憶し、制御部は、有効部分情報に基づいて、不揮発性メモリの前記データを揮発性メモリの記憶エリアに展開する。【選択図】図6

Description

本開示は、車両に搭載されるECU(電子制御ユニット)、方法およびプログラム等に関する。
車両には、車両の動作を制御するための複数のECU(電子制御ユニット)が搭載されている。ECUは、プロセッサと、RAM等の揮発性の記憶部(揮発性メモリ)と、フラッシュROM等の不揮発性の記憶部(不揮発性メモリ)とを備え、プロセッサが不揮発性メモリに記憶されるソフトウェアを揮発性メモリに展開して実行することによりECUの制御機能を実現する。各ECUの不揮発性メモリに記憶されるソフトウェアは無線通信等により書き換え可能であり、より新しいバージョンのソフトウェアに更新することにより、各ECUの機能を改善したり、新たな車両制御機能を追加したりすることができる。
ECUの不揮発性メモリに記憶されるソフトウェアを構成する各データを、不揮発性メモリの記憶エリアにおいて詰めて書き込んで配置していると、ソフトウェアの一部の内容を変更する更新であっても、内容変更しないデータの配置変更が多く発生して多量のデータ書き換えが必要となる場合がある。これを解決するために、不揮発性メモリの記憶エリアにおいて、ソフトウェアを構成する複数のアプリケーション毎に未使用領域(マージン部分)を設けることによって、ソフトウェアの更新時において、内容変更しないデータの配置変更をアプリケーション単位にとどめて、多量のデータ書き換えを回避する技術が提案されている(例えば、特許文献1参照)。
特開2020-24579号公報
上記のように、不揮発性メモリの記憶エリアにおいて、ソフトウェアを構成する複数のアプリケーション毎に未使用領域(マージン部分)を設けた場合には、多量のデータ書き換えを回避できる一方で、不揮発性メモリのソフトウェアを揮発性メモリに展開して実行する際にこの未使用領域までも展開して、揮発性メモリの記憶容量が効率的に使用されない可能性があった。
それ故に、本開示は、揮発性メモリの記憶容量を効率的に使用できるECU(電子制御ユニット)、方法およびプログラム等を提供することを目的とする。
本開示に係る電子制御ユニットは、車両に搭載された電子制御ユニットであって、揮発性メモリと、揮発性メモリに展開されるデータが書き込まれたデータ部分と当該データに対応する未使用部分であるマージン部分とを含む記憶エリアを有する不揮発性メモリと、不揮発性メモリのデータを揮発性メモリに展開する制御部とを備え、不揮発性メモリは、データ部分を示す情報である有効部分情報を記憶し、制御部は、有効部分情報に基づいて、不揮発性メモリのデータを揮発性メモリの記憶エリアに展開する。
本開示に係る方法は、車両に搭載された、プロセッサと揮発性メモリと不揮発性メモリとを備えるコンピュータが実行する方法であって、揮発性メモリに展開されるデータが書き込まれたデータ部分と当該データに対応する未使用部分であるマージン部分とを含む記憶エリアを有する不揮発性メモリのデータを揮発性メモリに展開する展開ステップを備え、展開ステップにおいて、不揮発性メモリに記憶されている、データ部分を示す情報である有効部分情報に基づいて、不揮発性メモリのデータを揮発性メモリの記憶エリアに展開する。
本開示に係るプログラムは、車両に搭載された、プロセッサと揮発性メモリと不揮発性メモリとを備えるコンピュータが実行するプログラムであって、コンピュータに、揮発性メモリに展開されるデータが書き込まれたデータ部分と当該データに対応する未使用部分であるマージン部分とを含む記憶エリアを有する不揮発性メモリのデータを揮発性メモリに展開する展開ステップを実行させ、展開ステップにおいて、不揮発性メモリに記憶されている、データ部分を示す情報である有効部分情報に基づいて、不揮発性メモリのデータを揮発性メモリの記憶エリアに展開させる。
本開示によれば、揮発性メモリの記憶容量を効率的に使用できるECU(電子制御ユニット)、方法およびプログラム等を提供できる。
一実施形態に係るネットワークシステムの全体構成の一例を示すブロック図 図1に示したECUの概略構成の一例を示すブロック図 一実施形態に係るECUが実行する制御処理の一例を示すフローチャート 図3に示した制御処理により不揮発性メモリのデータが更新される状態を説明するための模式図 一実施形態に係るECUが実行する制御処理の一例を示すフローチャート 図5に示した制御処理により不揮発性メモリのデータが揮発性メモリに展開される状態を説明するための模式図
(一実施形態)
図1は、第1の実施形態に係るネットワークシステムの全体構成の一例を示すブロック図である。図2は、図1に示したECUの概略構成の一例を示すブロック図である。
図1に示すネットワークシステムは、車両に搭載されたECU(Electronic Control Unit;電子制御ユニット)13a~13dのソフトウェアを更新するためのシステムであり、OTAセンタ1と、車両に搭載される車載ネットワーク2とを備える。
OTAセンタ1は、インターネット等の通信ネットワーク5を介して車両に搭載されたOTAマスタ11と無線等で通信可能であり、例えばCPUとRAMと記憶装置と通信装置とを備え(図示なし)、車両に搭載されたECU13a~13dのソフトウェア更新を管理する。
図1に示すように、車載ネットワーク2は、OTAマスタ11と、通信モジュール12と、複数のECU13a~13dと、HMI(Human Machine Interface;例えば、入力操作が可能なカーナビゲーションシステムの表示装置)14とを備える。OTAマスタ11は、バス15aを介して通信モジュール12と接続され、バス15bを介してECU13a及び13bと接続され、バス15cを介してECU13c及び13dと接続され、バス15dを介してHMI14と接続されている。OTAマスタ11は、通信モジュール12を介してOTAセンタ1と無線での通信が可能である。OTAマスタ11は、OTAセンタ1から取得した更新データに基づいて、ECU13a~13dのうちの更新対象のECU(「ターゲットECU」という場合がある)のソフトウェア更新を制御する。通信モジュール12は、車載ネットワーク2とOTAセンタ1とを接続する通信機器である。ECU13a~13dは、車両の各部の動作を制御する。HMI14は、ECU13a~13dのソフトウェアの更新処理の際に、更新データがあることの表示や、ユーザや管理者にソフトウェア更新に対する承諾を求めるための承諾要求画面の表示、更新結果の表示等の各種表示を行うために用いられる。なお、図1では、4つのECU13a~13dを例示したが、ECUの数は限定されない。
図2に示すように、ECU13は、CPU21(Central Processing Unit;制御部)と、揮発性メモリ22と、不揮発性メモリ23と、通信装置24とを備える。揮発性メモリ22は例えばRAM(Random Access Memory)であり、不揮発性メモリ23は例えばフラッシュROM(Flash Read Only Memory)である。CPU21は、不揮発性メモリ23から読み出したソフトウェア(プログラム等)を揮発性メモリ22に展開して、揮発性メモリ22を作業領域として用いて処理を実行し、又、通信装置45を用いて必要に応じてバスを介して他の機器と通信することにより、ECU13の機能を実現する。
CPU21と揮発性メモリ22とは、SoC(System on a chip)として形成されており、1つの半導体チップ上に形成されている。これにより、演算処理の高速化等のメリットがある。その一方で、不揮発性メモリ23は、上記の半導体チップ上には形成されておらず、この半導体チップに組み付けられる等して接続されている。
OTAマスタ11は、例えば、CPUとRAMとROMと記憶装置とを備えるマイクロコンピュータと、バスを介して通信モジュール12やECU13a~13dやHMI14と通信を行う通信装置とを備える(図示なし)。
ここで、ソフトウェアの更新処理は、OTAセンタ1から更新データをダウンロードするフェーズと、ダウンロードした更新データを更新対象であるターゲットECUに転送し、ターゲットECUの記憶領域に更新データをインストールするフェーズと、ターゲットECUにおいてインストールした更新版のソフトウェアを有効化するアクティベートのフェーズとからなる。
ダウンロードは、OTAセンタ1から送信された、ECUのソフトウェアを更新するための更新データを受信して、OTAマスタ11の記憶装置に記憶する処理である。ダウンロードのフェーズは、更新データの受信だけでなく、ダウンロードの実行可否判断、更新データの検証等、ダウンロードに関する一連の処理の制御を含む。インストールは、ダウンロードした更新データに基づいて、更新対象であるターゲットECUの不揮発性メモリに更新版のプログラム(更新ソフトウェア)を書き込む処理である。インストールのフェーズは、インストールの実行だけでなく、インストールの実行可否判断、更新データの転送および更新版のプログラムの検証等、インストールに関する一連の処理の制御を含む。アクティベートは、インストールした更新版のプログラムをアクティベート(有効化)する処理である。アクティベートのフェーズは、アクティベートの実行だけでなく、アクティベートの実行可否判断、実行結果の検証等、アクティベートに関する一連の制御を含む。
OTAセンタ1からOTAマスタ11に送信される更新データは、ECUの更新ソフトウェア、更新ソフトウェアを圧縮した圧縮データ、更新ソフトウェアまたは圧縮データを分割した分割データのいずれを含んでいても良い。また、更新データは、更新対象であるターゲットECUを識別する識別子(ECU ID)と、更新前のソフトウェアを識別する識別子(ECU ソフトウェア ID)を含んでいても良い。更新データは、配信パッケージとしてダウンロードされるが、配信パッケージには、単一または複数のECUの更新データが含まれる。
更新データが更新ソフトウェアそのものを含む場合は、インストールのフェーズにおいて、OTAマスタ11が更新データ(つまり、更新ソフトウェア)をターゲットECUに転送する。また、更新データが更新ソフトウェアの圧縮データ、差分データあるいは分割データを含む場合、OTAマスタ11がターゲットECUに更新データを転送し、ターゲットECUが更新データから更新ソフトウェアを生成しても良いし、OTAマスタ11が更新データから更新ソフトウェアを生成してから、更新ソフトウェアをターゲットECUに転送しても良い。ここで、更新ソフトウェアの生成は、圧縮データの解凍、差分データまたは分割データの組み付けにより行うことができる。
更新ソフトウェアのインストールは、OTAマスタ11からのインストール要求(プログラム更新要求)に基づき、ターゲットECUが行うことができる。または、更新データを受信したターゲットECUが、OTAマスタ11からの明示の指示を受けることなく、自律的にインストールを行っても良い。
本実施形態では、一例として、OTAマスタ11がターゲットECUに更新ソフトウェアの差分データである更新データを転送し、ターゲットECUが更新データ(差分データ)から更新ソフトウェアを生成するものとする。また、一例として、OTAマスタ11からのインストール要求(プログラム更新要求)に応じて、ターゲットECUが更新ソフトウェアのインストールを行うものとする。
更新ソフトウェアのアクティベートは、OTAマスタ11からのアクティベート要求に基づき、ターゲットECUが行うことができる。または、更新データを受信したターゲットECUが、OTAマスタ11からの明示の指示を受けることなく、自律的にアクティベートを行っても良い。
図3は、本実施形態に係るECU13が不揮発性メモリ23に更新データをインストールする(ソフトウェアの更新を行う)処理の一例を示すフローチャートである。図4は、図3に示した処理により不揮発性メモリ23のデータが更新される状態を説明するための模式図である。
図4に示すように、不揮発性メモリ23の記憶エリアには、エリア0~nが含まれる。なお、エリア0~nは、構造的な区画ではなく記憶エリアのアドレスによる区画である。エリア1~nの各エリアには、揮発性メモリ22にデータ展開するときに使用される情報である展開時使用情報31(31-1~31-n)と、ECU13の機能を実現するためのプログラムデータ32(32-1~32-n)とが記憶され、又、未使用領域(マージン部分)33(33-1~33-n)が設けられる。プログラムデータ32は、例えばECU13の機能を実現するアプリケーションのデータであるが、これには限定されない。展開時使用情報31には、デジタル署名やMAC(Message Authentication Code)等のセキュリティチェックに用いられるセキュリティ情報と、プログラムデータ32の配置位置(アドレス)を示す有効部分情報とが含まれる。エリア0には、展開時使用情報31-0とプログラムデータ32-0とが記憶されるが、未使用領域(マージン部分)は設けられない。また、エリア0の展開時使用情報31-0には、セキュリティ情報が含まれるが、有効部分情報は含まれない。
以下、図3および図4を参照して、ECU13が不揮発性メモリ23に更新データをインストールする(ソフトウェアの更新を行う)制御処理について説明する。図3の処理は、ECU13のCPU21が、OTAマスタ11からプログラム更新要求を受信することで開始される。
ステップS1において、CPU21は、不揮発性メモリ23の更新エリアを決定する。例えば、CPU21は、図4のエリア1(更新処理を実行していないエリア1)を更新対象のエリアとして決定する。その後、処理はステップS2に移る。
ステップS2において、CPU21は、ステップS1で決定した更新エリアのプログラムデータを更新する。具体的には、CPU21は、更新エリアのプログラムデータ32に対して、変更や追加の有った部分(差分データ)を変更する書き換えを実行し、又、変更したことによって配置がずれ込む部分について配置変更を行う書き換えを実行する。例えば、図4のエリア1に示すように、CPU21は、変更や追加の有った部分(差分データ)40を変更する書き換えを実行し、又、変更したことによって配置がずれ込む部分41について配置変更を行う書き換えを実行する。このようにプログラムデータ32を更新した際にデータの変更に伴う配置変更によるデータ書き換えが発生するが、図4に示すように未使用領域(マージン部分)33が設けられたことによって、このデータ書き換え量を抑制することができる。その後、処理はステップS3に移る。
ステップS3において、CPU21は、ステップS1で決定した更新エリアのセキュリティ情報を更新する。具体的には、CPU21は、ステップS2で実行したプログラム更新に応じて、更新エリアのセキュリティ情報(デジタル署名やMAC等)のデータを更新する。例えば、図4のエリア1が更新エリアの場合、CPU21は、エリア1のプログラムデータ32-1の更新に伴って、プログラムデータ32-1についてのセキュリティ情報を更新する。その後、処理はステップS4に移る。
ステップS4において、CPU21は、ステップS1で決定した更新エリアの有効部分情報を更新する。具体的には、CPU21は、ステップS2で実行したプログラム更新に応じて、更新エリアのプログラムデータ32の配置位置(アドレス)を示す有効部分情報を更新する。例えば、図4のエリア1が更新エリアの場合、CPU21は、エリア1のプログラムデータ32-1の更新に応じて、プログラムデータ32-1の配置位置(アドレス)を示す有効部分情報を更新する。その後、処理はステップS5に移る。
ステップS3およびS4の処理によって、ステップS1で決定した更新エリアについて、セキュリティ情報と有効部分情報が更新されるので、展開時使用情報31が更新されることとなる。
ステップS5において、CPU21は、全ての更新エリアについて処理を実行したか否かを判定し、この判定がNOの場合には処理をステップS1に戻し、この判定がYESの場合には図3の処理を終了する。このようにすることで、全ての更新エリアについて処理が実行されることとなる。
なお、図4を用いて説明したように、エリア0には、未使用領域(マージン部分)33が設けられず、又、有効部分情報が記憶されていない。これは、エリア0のプログラムデータ32-0は、不揮発性メモリ23のデータを揮発性メモリ22に展開するために使用されるプログラムデータであり、ソフトウェア更新によってデータ量の変化が無いので、未使用部分33が必要なく、又、そのため有効部分情報も必要ないからである。このように、エリア0には、未使用領域(マージン部分)33と有効部分情報がないので、エリア0が更新エリアである場合には、図3のステップS4の処理は省略されることとなる。なお、ソフトウェア更新によってエリア0のプログラムデータ32-0のデータ量が変化する場合には、エリア0にも、エリア1~nと同様に、未使用領域33を設け有効部分情報を記憶し、図3のステップS4の処理を実行すればよい。
図5は、本実施形態に係るECU13が不揮発性メモリ23に記憶されているソフトウェア(プログラム等)を揮発性メモリ22に展開する処理の一例を示すフローチャートである。図6は、図5に示した処理により不揮発性メモリ23に記憶されたソフトウェア(プログラム等)が揮発性メモリ22に展開される状態を説明するための模式図である。図6(1)は不揮発性メモリ23の記憶エリアを示し、図6(2)は不揮発性メモリ23に記憶されたデータ(ソフトウェア)が揮発性メモリ22の記憶エリアに展開された状態を示している。なお、図6(1)に示す不揮発性メモリ23の記憶エリアについては、図4を用いて説明したので、説明を省略する。
以下、図5および図6を参照して、ECU13が不揮発性メモリ23に記憶されているソフトウェア(プログラム等)を揮発性メモリ22に展開する処理について説明する。図5の処理は、不揮発性メモリ23のソフトウェアを揮発性メモリ22に展開する所定のタイミング(ECU13の電源投入時やリセット時等)で開始される。
ステップS11において、CPU21は、不揮発性メモリ23のエリア0のプログラムデータ32-0のセキュリティチェックを実施し、プログラムデータ32-0を揮発性メモリ22に展開する。具体的には、図6に示すように、CPU21は、エリア0の展開時使用情報31-0に含まれるセキュリティ情報を用いてエリア0のプログラムデータ32-0のセキュリティチェックを実施し、プログラムデータ32-0を揮発性メモリ22に展開する。プログラムデータ32-0は、不揮発性メモリ23のデータを揮発性メモリ22に展開する処理を実行するためのプログラムのデータでる。その後、処理はステップS12に移る。
ステップS12において、CPU21は、揮発性メモリ22に展開エリア情報のデータを作成する。具体的には、CPU21は、ステップS11で揮発性メモリ22に展開したプログラムデータ32-0を実行して、図6(2)に示すように展開エリア情報34を作成して揮発性メモリ22に記憶させる。展開エリア情報34は、揮発性メモリ22の記憶エリアにおいて不揮発性メモリ23のデータが展開済みであるエリア(アドレス)を示す情報である。その後、処理はステップS13に移る。
ステップS13において、CPU21は、不揮発性メモリ23の展開元エリアを決定する。具体的には、CPU21は、不揮発性メモリ23のエリア1~nのうち展開処理を実行していないエリアを展開元エリアとして決定する。例えば、CPU21は、図6(1)のエリア1を展開元エリアとして決定する。その後、処理はステップS14に移る。
ステップS14において、CPU21は、有効部分情報に基づいて、ステップS13で決定した展開元エリアの有効部分を特定する。具体的には、CPU21は、ステップS13で決定した展開元エリアの展開時使用情報に含まれる有効部分情報が示す有効部分(展開元エリアのプログラムデータ32の配置位置(アドレス))を特定する。例えば、CPU21は、図6(1)のエリア1が展開元エリアの場合、展開時使用情報31-1に含まれる有効部分情報によって、プログラムデータ32-1の配置位置(アドレス)を有効部分として特定する。その後、処理はステップS15に移る。
ステップS15において、CPU21は、ステップS14で特定した有効部分のセキュリティチェックを実施する。例えば、CPU21は、図6(1)のエリア1のプログラムデータ32-1の配置位置を有効部分として特定した場合、エリア1の展開時使用情報31-1に含まれるセキュリティ情報を用いてプログラムデータ32-1のセキュリティチェックを実施する。その後、処理はステップS16に移る。
ステップS16において、CPU21は、有効部分情報と展開エリア情報に基づいて、ステップS14で特定した有効部分の展開先アドレスを決定する。以下、図6(1)のエリア2のプログラムデータ32-2の配置位置を有効部分として特定した場合を例に挙げて、具体的に説明する。CPU21は、エリア1の展開時使用情報31-2に含まれる有効部分情報が示すプログラムデータ32-2の配置位置(アドレス)に基づいて、揮発性メモリ22の記憶エリアにおいてプログラムデータ32-2の展開先アドレスを決定する。その際に、CPU21は、図6(2)に示すように、展開エリア情報34(不揮発性メモリ23のデータが展開済みのエリアを示す情報)に基づいて、揮発性メモリ22の記憶エリアにおいて空きが無いように詰めて、プログラムデータ32-2の展開先アドレスを決定する。その後、処理はステップS17に移る。
ステップS17において、CPU21は、ステップS14で特定した有効部分のデータを、ステップS16で決定した揮発性メモリ22の展開先アドレスに展開する。その後、処理はステップS18に移る。
ステップS18において、CPU21は、揮発性メモリ22の展開エリア情報34を更新する。例えば図6(2)においてプログラムデータ32-1と32-2が揮発性メモリ22の記憶エリアに展開済みである場合、CPU21は、これらの展開済みのエリアを示すように展開エリア情報34を更新する。その後、処理はステップS19に移る。
ステップS19において、CPU21は、全ての展開元エリアについて処理を実行したか否かを判定し、この判定がNOの場合には処理をステップS13に戻し、この判定がYESの場合には図5の処理を終了する。このようにすることで、全ての更新元エリアについて処理が実行されて、図6に示すように、不揮発性メモリ23のデータ(ソフトウェア)が揮発性メモリ22に展開されることとなる。
以上に説明したように、本実施形態によれば、不揮発性メモリ23の記憶エリアにおいてプログラムデータ32毎に(エリア毎に)未使用領域(マージン部分)33を設けることによって(図3、図4参照)ソフトウェア更新時において内容変更しないデータの配置変更をプログラムデータ単位にとどめて多量のデータ書き換えを回避することができる。
また、本実施形態によれば、不揮発性メモリ23のデータを揮発性メモリ22に展開する際に、プログラムデータ32の配置位置(アドレス)を示す有効部分情報を用いて、未使用領域(マージン部分)33を除いたプログラムデータ32の部分を揮発性メモリ22に展開することができるので(図5、図6参照)、揮発性メモリ22のメモリ容量を有効に使用できる。
また、本実施形態によれば、揮発性メモリ22においてデータが展開済みのエリア(アドレス)を示す展開エリア情報に基づいて、プログラムデータ32を空きなく詰めて書き込むことができるので、揮発性メモリ22のメモリ容量を有効に使用できる。
ここで、本実施形態では、CPU21と揮発性メモリ22とがSoC(System on a chip)として1つの半導体チップ上に形成されていることから、演算処理を高速化できる一方で揮発性メモリ22の容量が比較的少なく、又、容量を拡張することも困難である。本実施形態によれば、上記したように揮発性メモリ22のメモリ容量を有効に使用できるので、CPU21と揮発性メモリ22とがSoCとして1つの半導体チップ上に形成された構成による上記のデメリットを克服できる。
(変形例)
なお、上記した本実施形態では、不揮発性メモリ23のプログラムデータ32をエリア1から順に揮発性メモリ22に詰めて展開する例を挙げて説明した(図6参照)。しかし、揮発性メモリ22に詰めて展開するのであれば、プログラムデータ32をエリア1から順に展開する必要はない。
また、上記した本実施形態では、不揮発性メモリ23のプログラムデータ32をエリア1から順に揮発性メモリ22に詰めて展開する例を挙げて説明した(図6参照)。しかし、不揮発性メモリ23のエリア1~エリアnの全てのプログラムデータ32の展開先アドレスを詰めた配置位置となるように決定し、その後、エリア1~エリアnの全てのプログラムデータ32を揮発性メモリ22に詰めて展開しても良い。この場合、展開エリア情報は、揮発性メモリ22の記憶エリアにおいて不揮発性メモリ23のデータを展開する予定のエリア(アドレス)を示す情報となる。
また、上記した本実施形態では、不揮発性メモリ23の記憶エリアにおいてアプリケーション単位でエリア0~nに区画する例を挙げて説明したが、これには限定されない。
また、上記した本実施形態ではECUを例に挙げて説明したが、これには限定されない。
また、上記の実施形態で例示したECUの機能は、プロセッサ(CPU)とメモリとを備えるコンピュータが実行する方法、あるいは、当該コンピュータに実行させるプログラム、プログラムを記憶したコンピュータ読み取り可能な非一時的記憶媒体として実現することも可能である。
本開示技術は、ECU(電子制御ユニット)等に利用できる。
1 OTAセンタ
2 車載ネットワーク
5 通信ネットワーク
11 OTAマスタ
12 通信モジュール
13a~13d ECU
14 HMI
15a~15d バス
21 CPU
22 揮発性メモリ
23 不揮発性メモリ
24 通信装置
31 展開時使用情報
32 プログラムデータ
33 未使用領域(マージン部分)
34 展開エリア情報

Claims (6)

  1. 車両に搭載された電子制御ユニットであって、
    揮発性メモリと、
    前記揮発性メモリに展開されるデータが書き込まれたデータ部分と当該データに対応する未使用部分であるマージン部分とを含む記憶エリアを有する不揮発性メモリと、
    前記不揮発性メモリの前記データを前記揮発性メモリに展開する制御部とを備え、
    前記不揮発性メモリは、前記データ部分を示す情報である有効部分情報を記憶し、
    前記制御部は、前記有効部分情報に基づいて、前記不揮発性メモリの前記データを前記揮発性メモリの記憶エリアに展開する、電子制御ユニット。
  2. 前記不揮発性メモリの記憶エリアは、複数の前記データ部分と複数の前記マージン部分とを含み、
    前記制御部は、前記有効部分情報に基づいて、前記不揮発性メモリの複数の前記データを前記揮発性メモリの記憶エリアに詰めて展開する、請求項1に記載の電子制御ユニット。
  3. 前記制御部は、
    前記揮発性メモリの記憶エリアのうち前記データが展開されるエリアを示す展開エリア情報を当該揮発性メモリに記憶させ、
    前記展開エリア情報に基づいて、前記不揮発性メモリの複数の前記データを前記揮発性メモリの記憶エリアに詰めて展開する、請求項2に記載の電子制御ユニット。
  4. 前記制御部と前記揮発性メモリとは、同一の半導体チップ上に形成されている、請求項1~3の何れかに記載の電子制御ユニット。
  5. 車両に搭載された、プロセッサと揮発性メモリと不揮発性メモリとを備えるコンピュータが実行する方法であって、
    前記揮発性メモリに展開されるデータが書き込まれたデータ部分と当該データに対応する未使用部分であるマージン部分とを含む記憶エリアを有する前記不揮発性メモリの前記データを前記揮発性メモリに展開する展開ステップを備え、
    前記展開ステップにおいて、前記不揮発性メモリに記憶されている、前記データ部分を示す情報である有効部分情報に基づいて、前記不揮発性メモリの前記データを前記揮発性メモリの記憶エリアに展開する、方法。
  6. 車両に搭載された、プロセッサと揮発性メモリと不揮発性メモリとを備えるコンピュータが実行するプログラムであって、
    前記コンピュータに、前記揮発性メモリに展開されるデータが書き込まれたデータ部分と当該データに対応する未使用部分であるマージン部分とを含む記憶エリアを有する前記不揮発性メモリの前記データを前記揮発性メモリに展開する展開ステップを実行させ、
    前記展開ステップにおいて、前記不揮発性メモリに記憶されている、前記データ部分を示す情報である有効部分情報に基づいて、前記不揮発性メモリの前記データを前記揮発性メモリの記憶エリアに展開させる、プログラム。
JP2021018342A 2021-02-08 2021-02-08 電子制御ユニット、方法およびプログラム Pending JP2022121156A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2021018342A JP2022121156A (ja) 2021-02-08 2021-02-08 電子制御ユニット、方法およびプログラム
US17/545,228 US11947824B2 (en) 2021-02-08 2021-12-08 Electronic control unit, method, and program
CN202210079397.2A CN114911415A (zh) 2021-02-08 2022-01-24 电子控制单元、方法以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021018342A JP2022121156A (ja) 2021-02-08 2021-02-08 電子制御ユニット、方法およびプログラム

Publications (1)

Publication Number Publication Date
JP2022121156A true JP2022121156A (ja) 2022-08-19

Family

ID=82703826

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021018342A Pending JP2022121156A (ja) 2021-02-08 2021-02-08 電子制御ユニット、方法およびプログラム

Country Status (3)

Country Link
US (1) US11947824B2 (ja)
JP (1) JP2022121156A (ja)
CN (1) CN114911415A (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200016075A (ko) * 2018-08-06 2020-02-14 에스케이하이닉스 주식회사 메모리 시스템에서의 유효 데이터 탐색 방법 및 장치
JP2020024579A (ja) 2018-08-07 2020-02-13 トヨタ自動車株式会社 車載装置
JP7408937B2 (ja) * 2018-08-10 2024-01-09 株式会社デンソー センター装置,配信パッケージの生成方法及び配信パッケージ生成用プログラム

Also Published As

Publication number Publication date
CN114911415A (zh) 2022-08-16
US11947824B2 (en) 2024-04-02
US20220253234A1 (en) 2022-08-11

Similar Documents

Publication Publication Date Title
EP3252605B1 (en) Vehicle-mounted control device, program writing device, program generating device and program
US20140337829A1 (en) Information processing apparatus, electronic control unit, information processing method, and program
JP2018160207A (ja) 車載制御装置、及び、プログラム更新ソフトウェア
WO2019159715A1 (ja) 車両制御装置およびプログラム更新システム
EP3961378A1 (en) Software update device, update control method, and non- transitory storage medium
JP2022121156A (ja) 電子制御ユニット、方法およびプログラム
EP3945417A1 (en) Software update device, update control method, non-transitory storage medium, and server
WO2022138218A1 (ja) 車載コンピュータ、コンピュータ実行方法及びコンピュータプログラム
JP7447864B2 (ja) Otaマスタ、方法およびプログラム
JP7452452B2 (ja) Otaマスタ、ソフトウェアの更新制御方法及び更新制御プログラム、otaマスタを備える車両
JP7396216B2 (ja) サーバ、更新管理方法、更新管理プログラム及びソフトウェア更新装置
JP2011175352A (ja) ファームウエア更新装置、通信装置、電子機器、ファームウエア更新システム、ファームウエア更新方法及びプログラム
US11947951B2 (en) Center, distribution control method, and non-transitory storage medium
JP7439773B2 (ja) 車載コンピュータ、コンピュータ実行方法及びコンピュータプログラム
US11954480B2 (en) Center, OTA master, system, method, non-transitory storage medium, and vehicle
US20220222055A1 (en) Center, management method, and non-transitory storage medium
JP7061724B2 (ja) ソフトウェア更新装置、車両及びソフトウェア更新方法
US20220405080A1 (en) Ota master, system, method, non-transitory storage medium, and vehicle
US20220405083A1 (en) Ota master, system, method, non-transitory storage medium, and vehicle
EP4047477A1 (en) Ota master, center, system, update method, non-transitory storage medium, and vehicle
US20220391193A1 (en) Ota master, system, method, non-transitory storage medium, and vehicle
JP4517607B2 (ja) 電子機器及びそのプログラム更新方法
JP2022163396A (ja) Otaマスタ、更新制御方法、更新制御プログラム及びotaセンタ
CN114764340A (zh) 中心、更新管理方法以及非暂时性存储介质
JP2022163602A (ja) 電子制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230822