IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社アドヴィックスの特許一覧

<>
  • 特開-電子制御装置 図1
  • 特開-電子制御装置 図2
  • 特開-電子制御装置 図3
  • 特開-電子制御装置 図4
  • 特開-電子制御装置 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024142767
(43)【公開日】2024-10-11
(54)【発明の名称】電子制御装置
(51)【国際特許分類】
   G06F 8/654 20180101AFI20241003BHJP
   B60R 16/02 20060101ALI20241003BHJP
【FI】
G06F8/654
B60R16/02 660U
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2023055079
(22)【出願日】2023-03-30
(71)【出願人】
【識別番号】301065892
【氏名又は名称】株式会社アドヴィックス
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(72)【発明者】
【氏名】小堀 肇
(72)【発明者】
【氏名】川口 遥介
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376CA84
5B376GA08
(57)【要約】
【課題】自身の記憶装置に新規のソフトウェアを書き込むのに要する時間が長くなることを抑制できる電子制御装置を提供すること。
【解決手段】ECU50Aは、実行装置56と、実行装置56によって実行されるソフトウェアを記憶している記憶装置57とを備えている。記憶装置57は、既存のソフトウェアが書き込まれている領域である既存領域と、既存領域よりも高位のアドレスに設定されており、且つソフトウェアが書き込まれていない領域である空白領域とを有している。実行装置56は、新規のソフトウェアの記憶装置57への書き込みが要求された場合には、当該新規のソフトウェアを空白領域に書き込む。
【選択図】図1
【特許請求の範囲】
【請求項1】
車両に搭載される電子制御装置であって、
実行装置と、前記実行装置によって実行されるソフトウェアを記憶している記憶装置と、を備え、
前記記憶装置は、既存のソフトウェアが書き込まれている領域である既存領域と、前記既存領域よりも高位のアドレスに設定されており、且つソフトウェアが書き込まれていない領域である空白領域と、を有しており、
前記実行装置は、
新規のソフトウェアの前記記憶装置への書き込みが要求された場合には、当該新規のソフトウェアを前記空白領域に書き込む
電子制御装置。
【請求項2】
前記実行装置は、新規のソフトウェアの前記記憶装置への書き込みが要求された場合には、当該新規のソフトウェアを、前記空白領域において最も低位のアドレスに書き込む
請求項1に記載の電子制御装置。
【請求項3】
前記記憶装置は、所定のジャンプ領域を有し、前記既存のソフトウェアは前記ジャンプ領域を読み出すことができるように構成されており、
前記ジャンプ領域は、当該ジャンプ領域に新規のソフトウェアが書き込まれた際には、前記実行装置が当該新規のソフトウェアを読み出して実行できるように構成される
請求項1に記載の電子制御装置。
【請求項4】
前記既存領域には、第1ソフトウェアと、前記第1ソフトウェアよりも更新頻度の高い第2ソフトウェアと、が書き込まれており、
前記既存領域のうち前記第2ソフトウェアが書き込まれている領域は、前記第1ソフトウェアが書き込まれている領域よりも高位のアドレスに設定されている
請求項1~請求項3のうち何れか一項に記載の電子制御装置。
【請求項5】
前記既存領域は、
車載のアクチュエータを作動させるためのソフトウェアが前記既存のソフトウェアとして書き込まれている第1領域と、
車載のセンサの検出信号に対して入力処理を施すためのソフトウェア、及び、前記センサの検出信号を用いた演算処理によって導出された情報を出力するためのソフトウェアが前記既存のソフトウェアとして書き込まれている第2領域と、
前記演算処理を実行するためのソフトウェアが前記既存のソフトウェアとして書き込まれている第3領域と、を含んでおり、
前記第2領域は、前記第1領域よりも高位のアドレスに設定されているとともに、前記第3領域は、前記第2領域よりも高位のアドレスに設定されている
請求項1~請求項3のうち何れか一項に記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、車両に搭載される電子制御装置に関する。
【背景技術】
【0002】
特許文献1は、車載の電子制御装置が備える記憶部のソフトウェアを更新する方法を開示している。当該方法では、更新用ソフトウェアを保管しているTesterが、車載ネットワークに接続される。これにより、電子制御装置は、車載ネットワークを介して、Testerが保管する更新用ソフトウェアを取得できる。そして、電子制御装置は、車載ネットワークを介して取得した更新用ソフトウェアを記憶部に書き込むことによって、記憶部のソフトウェアを更新できる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2018-120438号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
記憶部のソフトウェアを更新する場合にあっては、その更新に要する時間を短くすることを望まれている。
【課題を解決するための手段】
【0005】
上記課題を解決するための電子制御装置は、車両に搭載される装置である。当該電子制御装置は、実行装置と、前記実行装置によって実行されるソフトウェアを記憶している記憶装置と、を備えている。前記記憶装置は、既存のソフトウェアが書き込まれている領域である既存領域と、前記既存領域よりも高位のアドレスに設定されており、且つソフトウェアが書き込まれていない領域である空白領域と、を有している。前記実行装置は、新規のソフトウェアの前記記憶装置への書き込みが要求された場合には、当該新規のソフトウェアを前記空白領域に書き込む。
【発明の効果】
【0006】
上記電子制御装置は、自身の記憶装置に新規のソフトウェアを書き込むのに要する時間が長くなることを抑制できるという効果を奏する。
【図面の簡単な説明】
【0007】
図1図1は、実施形態の電子制御装置を備える車両と、車外に設置されたデータセンタとの概略を示す構成図である。
図2図2は、図1の電子制御装置が備える記憶装置の構造を示す模式図である。
図3図3は、図2の記憶装置に新規のソフトウェアを書き込む際に実行される処理の流れを示すフローチャートである。
図4図4は、図2の記憶装置に新規のソフトウェアが書き込まれた状態を示す模式図である。
図5図5は、図1の電子制御装置が備える記憶装置の構造のうち、空白領域の変更例を示す模式図である。
【発明を実施するための形態】
【0008】
以下、電子制御装置の一実施形態を図1から図4に従って説明する。本明細書では、電子制御装置を「ECU」と記載する。「ECU」は「Electronic Control Unit」の略記である。
【0009】
図1は、車両10と、車両10の外部に設けられているデータセンタ100とを図示している。
<データセンタ>
データセンタ100は、車外ネットワーク200を介して車両10と各種の情報の送受信ができるように構成されている。すなわち、データセンタ100は、無線通信によって車両10と各種情報の送受信を行う。
【0010】
詳しくは後述するが、車両10は複数のECUを備えている。複数のECUのうちの何れかのECUの記憶装置のソフトウェアを更新するための更新用ソフトウェアが用意できた場合、データセンタ100は、車外ネットワーク200を介して当該更新用ソフトウェアを車両10に送信する。なお、車載の複数のECUのうち、ソフトウェアを更新するECUを「更新対象ECU」という。
【0011】
<車両>
車両10は、複数のセンサ21,22,23,24,…と、通信装置30と、情報処理装置40と、複数のECU50と、制動装置60とを備えている。
【0012】
複数のセンサ21,22,23,24,…は、車両10の走行状態を検出するセンサと、運転者の操作状態を検出するセンサとを含んでいる。車両10の走行状態を検出するセンサとしては、例えば、加速度センサ、車輪速センサ及びヨーレートセンサを挙げることができる。運転者の操作状態を検出するセンサとしては、例えば、アクセルセンサ、ブレーキセンサ及び操舵センサを挙げることができる。アクセルセンサは、アクセルペダルの操作に関する情報を検出するセンサである。ブレーキセンサは、ブレーキペダルの操作に関する情報を検出するセンサである。操舵センサは、ステアリングホイールの操舵に関する情報を検出するセンサである。
【0013】
通信装置30は、データセンタ100との間で情報を送受信するための車両側のインターフェースである。
情報処理装置40は、ローカルネットワーク31を介して通信装置30と通信できるように構成されている。ローカルネットワーク31は、情報処理装置40と通信装置30との間のみで情報の送受信を行うためのネットワークである。
【0014】
情報処理装置40は、実行装置41と記憶装置42と格納装置43とを備えている。例えば、実行装置41はCPUであり、記憶装置42は不揮発性のメモリであり、格納装置43は揮発性のメモリである。記憶装置42は、実行装置41によって実行されるソフトウェアを記憶している。格納装置43は、通信装置30からローカルネットワーク31を介して送信された情報を一時的に格納する。すなわち、データセンタ100が、更新対象ECUを特定する情報及び更新用ソフトウェアを車両10に送信すると、通信装置30が、データセンタ100が送信した情報を受信する。そして、通信装置30は、受信した情報を、ローカルネットワーク31を介して情報処理装置40に送信する。すると、情報処理装置40の実行装置41は、ローカルネットワーク31を介して受信した情報、すなわち更新対象ECUを特定する情報及び更新用ソフトウェアを格納装置43に記憶させる。
【0015】
複数のECU50は、複数の入力ポート51と、マイクロコンピュータ55とをそれぞれ有している。入力ポート51にはセンサの検出信号が入力される。1つのECU50に検出信号を出力するセンサの数をN個としたとき、ECU50は、Nよりも多いM個の入力ポート51を有している。
【0016】
マイクロコンピュータ55は、入力ポート51に入力されたセンサの検出信号に基づいて各種の処理を実行する。マイクロコンピュータ55は、実行装置56と記憶装置57とを有している。例えば、実行装置56はCPUである。記憶装置57は不揮発性のメモリである。記憶装置57には、実行装置56によって実行される複数種類のソフトウェアが記憶される。
【0017】
複数のECU50のうちの1つのECU50Aは、制動装置60を制御するECUである。制動装置60は、電気モータなどのアクチュエータ61を有している。ECU50Aは、アクチュエータ61を制御することによって車両10に制動力を発生させる。
【0018】
ECU50Aの実行装置56は、記憶装置57のソフトウェアを実行することによって、駆動処理と、入力処理と、出力処理と、演算処理と、機能処理とを実行する。
駆動処理は、アクチュエータ61を駆動させるための処理である。例えば、電気モータ用の駆動処理において、実行装置56は、電気モータが備える複数のコイルに流す電流値を導出し、当該電流値に基づいて電気モータのインバータを作動させる。
【0019】
入力処理は、入力ポート51を介して入力されたセンサの検出信号を受け付ける処理である。例えば、入力処理において、実行装置56は、検出信号に対して公知のフィルタ処理を施すことによってセンサの検出値を導出する。
【0020】
出力処理は、演算処理によって導出された情報をECU50A外に出力する処理である。例えば、出力処理において、実行装置56は、車輪速センサの検出値に基づいて演算された車体速度VS0をグローバルネットワーク33に出力する。
【0021】
演算処理は、入力処理によって導出されたセンサの検出値を用いて各種演算を行うことによって、車両10の制御に必要な情報を演算する処理である。例えば、演算処理において、実行装置56は、車輪速センサの検出値に基づいて車体速度VS0を演算する。また例えば、実行装置56は、車輪速センサの検出値である車輪速VWと車体速度VS0とに基づいて車輪のスリップ量SLPを演算する。
【0022】
機能処理は、制動装置60を作動させることによって機能を実現させる処理である。ここでいう機能は、車両10の挙動の安定性を維持するための機能、及び、車両10の乗員の快適性を向上させるための機能を含んでいる。制動装置60を作動させることによって実現できる機能としては、例えば、アンチロックブレーキ制御、横滑り抑制制御、横転抑制制御及び緊急ブレーキを挙げることができる。
【0023】
上述した複数種類の処理のうち、駆動処理、入力処理、出力処理及び演算処理は、制動装置60を作動させるために必要な基本的な処理である。その一方で、機能処理は、車両10やその乗員に対して付加価値を与えるための処理である。そのため、駆動処理用のソフトウェア、入力処理用のソフトウェア、出力処理用のソフトウェア及び演算処理用のソフトウェアの何れにおいても、更新頻度は機能処理用のソフトウェアの更新頻度よりも低い。駆動処理用のソフトウェア、入力処理用のソフトウェア、出力処理用のソフトウェア及び演算処理用のソフトウェアの中では、駆動処理用のソフトウェアの更新頻度は最も低い。入力処理用のソフトウェア及び出力処理用のソフトウェアの更新頻度は、駆動処理用のソフトウェアの更新頻度よりは高い一方で、演算処理用のソフトウェアの更新頻度よりも低い。
【0024】
車両10にあっては、機能を追加することができるようになっている。新たな機能を追加する場合には、追加機能用のソフトウェアがデータセンタ100から車両10に送信される。すると、追加機能用のソフトウェアは、情報処理装置40からグローバルネットワーク33を介してECU50Aに送信される。そして、ECU50Aでは、実行装置56が、自身の記憶装置57に追加機能用のソフトウェアを書き込む。これにより、追加機能用のソフトウェアを実行装置56が実行することにより、制動装置60が追加機能を実現できるようになる。
【0025】
<記憶装置の構造>
図2を参照し、ECU50Aの記憶装置57の構造について説明する。図2は、追加機能用のソフトウェアが書き込まれる前の記憶装置57の構造を示している。
【0026】
図2に示すように、記憶装置57は、既存領域57Aと空白領域57Bとを有している。既存領域57Aは、既存のソフトウェアが書き込まれている領域である。空白領域57Bは、ソフトウェアが書き込まれていない領域である。図2からも明らかなように、複数のソフトウェアは、最も低位のアドレスから順番に書き込まれている。そして、空白領域57Bは、既存領域57Aよりも高位のアドレスに設定されている。
【0027】
既存領域57Aには、複数種類のソフトウェアが書き込まれている。具体的には、既存領域57Aには、駆動処理用のソフトウェア、入力処理用のソフトウェア、出力処理用のソフトウェア、演算処理用のソフトウェア及び機能処理用のソフトウェアが書き込まれている。
【0028】
既存領域57Aは、第1領域571と第2領域572と第3領域573とを含んでいる。第1領域571は、これら3つの領域571,572,573の中で最も低位のアドレスに設定されている。第3領域573は、これら3つの領域571,572,573の中で最も高位のアドレスに設定されている。第1領域571と第3領域573との間の領域が、第2領域572である。
【0029】
第1領域571には、上述した複数種類のソフトウェアの中で、更新頻度が最も低い駆動処理用のソフトウェアが書き込まれている。制動装置60が複数のアクチュエータ61を備えている場合、第1領域571には、複数種類の駆動処理用のソフトウェアが順番に書き込まれている。第1領域571に書き込まれている複数のソフトウェアを、「第1ソフトウェアAP11,AP12,AP13,…」ともいう。
【0030】
第2領域572には、上述した複数種類のソフトウェアの中で、駆動処理用のソフトウェアよりも更新頻度が高いソフトウェア、すなわち入力処理用のソフトウェア及び出力処理用のソフトウェアが書き込まれている。複数のセンサの検出信号がECU50Aに入力される場合、第2領域572には、複数種類の入力処理用のソフトウェア及び複数種類の出力処理用のソフトウェアが書き込まれている。第2領域572に書き込まれている複数のソフトウェアを、「第2ソフトウェアAP21,AP22,AP23,…」ともいう。
【0031】
第3領域573には、入力処理用のソフトウェア及び出力処理用のソフトウェアよりも更新頻度が高い演算処理用のソフトウェアが書き込まれている。また第3領域573には、上述した複数種類のソフトウェアの中で、更新頻度が最も高い機能処理用のソフトウェアが書き込まれている。第3領域573の中では、演算処理用のソフトウェアが、機能用のソフトウェアよりも低位のアドレスに書き込まれている。制動装置60が複数の機能を実現する場合、第3領域573には、複数種類の機能処理用のソフトウェアが書き込まれている。第3領域573に書き込まれている複数のソフトウェアを、「第3ソフトウェアAP31,AP32,AP33,…」ともいう。
【0032】
なお、図2において、「Func_1」は、第1ソフトウェアAP11が書き込まれている領域を示す関数である。「Func_2」は、第1ソフトウェアAP12が書き込まれている領域を示す関数である。「Func_3」は、第1ソフトウェアAP13が書き込まれている領域を示す関数である。「Func_n」は、第2ソフトウェアAP21が書き込まれている領域を示す関数である。「Func_n+1」は、第2ソフトウェアAP22が書き込まれている領域を示す関数である。「Func_n+2」は、第2ソフトウェアAP23が書き込まれている領域を示す関数である。「Func_m」は、第3ソフトウェアAP31が書き込まれている領域を示す関数である。「Func_m+1」は、第3ソフトウェアAP32を示す関数である。「Func_m+2」は、第3ソフトウェアAP33が書き込まれている領域を示す関数である。「Func_reserve」は、空白領域57Bを示す関数である。
【0033】
そして、実行装置56は、関数Func_1を読み出すことによって第1ソフトウェアAP11を実行する。実行装置56は、第1ソフトウェアAP11の実行を完了させると、関数Func_2を読み出すことによって第1ソフトウェアAP12を実行する。実行装置56が関数Func_reserveを読み出した場合、空白領域57Bにはソフトウェアが書き込まれていないため、実行装置56は、関数Func_1を読み出すことによって第1ソフトウェアAP11を実行する。このように、実行装置56は、低位のアドレスに書き込まれたソフトウェアから順番に実行することを繰り返す。
【0034】
<新機能追加処理>
図3及び図4を参照し、ECU50Aの実行装置56が実行する新機能追加処理を説明する。新機能追加処理は、新規の機能を追加するために新たなソフトウェアを記憶装置57に書き込む際の処理の流れである。実行装置56は、新規のソフトウェアの記憶装置57への書き込みが要求された場合に新機能追加処理を実行する。図3及び図4を用いて説明する新規機能追加処理の例では、新規のソフトウェアが空白領域57Bにおいて最も低位のアドレスに書き込まれる。
【0035】
図3に示すように、ステップS11において、実行装置56は、記憶装置57の空白領域57Bにおいて最も低位のアドレスを検索する。実行装置56は、空白領域57Bにおいて最も低位のアドレスを見つけると、処理をステップS13に移行する。
【0036】
ステップS13において、実行装置56は、空白領域57Bにおいて最も低位のアドレスへの新規のソフトウェアの書き込みを開始する。続くステップS15において、実行装置56は、ソフトウェアの書き込みが完了したか否かを判定する。実行装置56は、新規のソフトウェアの書き込みが完了していない場合(S15:NO)、書き込みが完了するまでステップS15の判定を繰り返し実行する。一方、実行装置56は、新規のソフトウェアの書き込みが完了した場合(S15:YES)、新機能追加処理を終了する。
【0037】
図4には、新規のソフトウェアが書き込まれた記憶装置57の構造の一例が模式的に図示されている。図4に示すように、例えば空白領域57Bにおいて最も低位のアドレスに新規のソフトウェアが書き込まれる。図4において、「Func_m+3」は、新規のソフトウェアが書き込まれている領域を示す関数である。すなわち、実行装置56は、既存領域57Aについては何ら変更することなく、新規のソフトウェアを記憶装置57に書き込むことができる。
【0038】
<本実施形態の作用>
新規のソフトウェアが記憶装置57に書き込まれた以降でのECU50Aの作用を説明する。
【0039】
ECU50Aでは、制動装置60を作動させることによって実現できる複数の機能のうち、第1機能を実現させる場合、実行装置56は、第1機能に対応するソフトウェアが書き込まれているアドレスを検索する。第1機能に対応するソフトウェアが上記新規のソフトウェアである場合、実行装置56は、当該新規のソフトウェアが書き込まれているアドレスを検索する。そして、実行装置56は、当該アドレスの関数を読み出すことによって、当該アドレスに書き込まれているソフトウェアを実行する。実行装置56は、当該新規のソフトウェアを実行することによって、制動装置60の作動量を導出できる。制動装置60の作動量の一例は、車両10に付与する制動力の目標値である。実行装置56は、制動装置60の作動量を導出すると、駆動処理用のソフトウェアを実行する。すなわち、実行装置56は、駆動処理用のソフトウェアが書き込まれているアドレスの関数を読み出す。これにより、実行装置56は、制動装置60の作動量を実現するためのアクチュエータ61に対する指令値を導出する。そして、実行装置56は、当該指令値に基づいてアクチュエータ61を作動させる。
【0040】
<本実施形態の効果>
(1)記憶装置57では、既存領域57Aよりも高位のアドレスに空白領域57Bが設定されている。そのため、記憶装置57に新規のソフトウェアを書き込む場合、実行装置56は、新規のソフトウェアを空白領域57Bに書き込む。
【0041】
ここで、記憶装置57の既存領域57Aに新規のソフトウェアを書き込む場合を考える。この場合、既存領域57Aに既に書き込まれていた既存のソフトウェアの一部のアドレスが高位にずれることになる。アドレスが高位にずれる既存のソフトウェアを所定のソフトウェアとする。このとき、実行装置56は、新規のソフトウェアを記憶装置57に書き込むに際し、新規のソフトウェアを記憶装置57に書き込むことに加え、所定のソフトウェアも記憶装置57に再度書き込む必要がある。
【0042】
また、車載のECU50では、記憶装置57の記憶容量が限られている。そのため、記憶装置57には、複数のソフトウェアが隙間を空けることなく書き込まれている。その結果、既存領域57Aに新規のソフトウェアを書き込もうとすると、既存のソフトウェアの一部のアドレスは変更せざるを得ない。
【0043】
この点、ECU50Aでは、新規のソフトウェアを記憶装置57に書き込むに際し、既存のソフトウェアのアドレスを変更しなくてもよい。すなわち、実行装置56は、新規のソフトウェアを記憶装置57に書き込むに際し、既存のソフトウェアを記憶装置57に再度書き込む必要がない。したがって、ECU50Aは、自身の記憶装置57に新規のソフトウェアを書き込むのに要する時間が長くなることを抑制できる。
【0044】
(2)既存のソフトウェアのうち、特定のソフトウェアが更新されることがある。特定のソフトウェアが占める記憶容量が増えると、特定のソフトウェアよりも高位のアドレスに書き込まれている全てのソフトウェアのアドレスが高位にずれてしまう。この場合、実行装置56は、特定のソフトウェアを更新するに際し、特定のソフトウェアよりも高位のアドレスに書き込まれている全てのソフトウェアも記憶装置57に書き込む必要がある。
【0045】
この点、ECU50Aの記憶装置57では、更新頻度の低いソフトウェアが、更新頻度の高いソフトウェアよりも低位のアドレスに書き込まれている。これにより、ECU50Aは、既存のソフトウェアを更新する場合に、その更新に要する時間が長くなることを抑制できる。
【0046】
<変更例>
上記実施形態は、以下のように変更して実施することができる。上記実施形態及び以下の変更例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
【0047】
・記憶装置57では、第1領域571を第2領域572と第3領域573との間に設定してもよい。
・上記実施形態では、実行装置56は、新規のソフトウェアを記憶装置57に書き込む際に、ソフトウェアを記憶装置57の空白領域57Bの最も低位のアドレスに書き込むようにしていた。これに対し、図5の(A)に示すように、記憶装置57は、複数の既存のソフトウェアAPの各々に対応するジャンプ領域が空白領域57Bに設定された構造であってもよい。この場合、記憶装置57に新たに書き込まれる新規のソフトウェアは、関数の形式で書き込まれるようにするとよい。
【0048】
この場合、既存のソフトウェアAPは、ソフトウェアに対応するジャンプ領域を関数として読み出すことができるようなコマンドが当該ソフトウェアの最後に用意された構造になっている。あるいは、既存のソフトウェアAPは、当該既存のソフトウェアAPを呼び出す関数の中に、当該ソフトウェアに対応するジャンプ領域を関数として読み出せるような構造であってもよい。
【0049】
そして、ジャンプ領域は、既存のソフトウェアAPに対する新規ソフトウェアが追加されていない場合には、何も処理をされずリターンするように設定される。例えば、工場出荷時のような追加のプログラムが何もない初期状態では、すべてのジャンプ領域は、何も処理されずリターンするように設定されている。一方、ジャンプ領域は、既存のソフトウェアAPに対する新規ソフトウェアが追加された場合には、ジャンプ領域内から追加された新規ソフトウェアが関数で読み出せるように設定される。新規ソフトウェアの処理が終了して、ジャンプ領域に戻ると、リターンするようになっている。
【0050】
ここで、第2ソフトウェアAP22に関連する新規プログラムが追加される処理を、一例としてより具体的に説明する。例えば、図5の(A)に示すように、第2ソフトウェアAP22に対応する新規プログラムが空白領域57Bにおいて空き領域に関数として書き込まれ、この場合、図5の(C)に示すように、関連する第2ソフトウェアAP22に対応するジャンプ領域には、新規ソフトウェアに対応する関数Funk_m+3を読み出す命令が書き込まれる。
【0051】
新規プログラムの書き込みが完了した後にソフトウェアが実行された場合、例えば、第2ソフトウェアAP21が実行された最後に、第2ソフトウェアAP21のジャンプ領域が関数で読み出される。第2ソフトウェアAP21に対応する新規プログラムは無いため、第2ソフトウェアAP21のジャンプ領域には、例えば図5の(B)に示すように空関数が設定されている。その結果、そのまま、何もせずにリターンされる。次に第2ソフトウェアAP22が実行された最後に、第2ソフトウェアAP22のジャンプ領域が関数で読み出される。第2ソフトウェアAP22のジャンプ領域には、図5の(C)に示すように、第2ソフトウェアAP22に関連する新規ソフトウェアの関数Funk_m+3が設定されている。そして、当該関数Funk_m+3が読み出されると、新規のソフトウェアが実行される。新規のソフトウェアの実行が終了すると、第2ソフトウェアAP22のジャンプ領域に戻り、リターンされて、次の第2ソフトウェアAP23が実行される。
【0052】
これにより、既存のソフトウェアに対応する新規ソフトウェアが追加された場合であっても、既存のソフトウェアを書き変えることなく、新規ソフトウェアが実行される。
・記憶装置57では、最初に新規のソフトウェアを書き込む際に、空白領域57Bの最も低位のアドレスから所定のアドレスだけ高位側のアドレスから書き込むようにしてもよい。こうすることで、新規のソフトウェアが書き込まれた領域と直前の領域との間に空き領域が形成されるため、既存のソフトウェアの書き換えで既存のソフトウェアの容量が増大した際に、空白領域57Bに書き込まれているソフトウェアの書き変えを行わなくてもよい可能性がある。これは、言い換えると、空白領域57Bの直上の領域の高位側に所定の空白領域を設けて、最初に新規のソフトウェアを書き込む際に、ソフトウェアが空白領域57Bの最も低位側のアドレスに書き込まれることと同様とも云える。
【0053】
・上記実施形態では、制動装置60を制御するECU50Aが備える記憶装置57に新規のソフトウェアを書き込む場合について説明した。しかし、制動装置60を制御するECU50A以外の他のECU50でも、上記実施形態で説明した手法と同様の手法で記憶装置57に新規のソフトウェアを書き込んでもよい。
【0054】
・車両10に新たなセンサが取り付けられた場合には、当該センサがECU50Aに電気的に接続される。この場合、実行装置56は、当該センサの検出信号に対して処理を施すための入力処理、入力処理を得たセンサの検出値を用いた演算をするための演算処理、当該演算処理によって得た情報を出力するための出力処理を実行できるようにする必要がある。すなわち、ECU50Aでは、記憶装置57に、こうした入力処理用のソフトウェア、出力処理用のソフトウェア及び演算処理用のソフトウェアを書き込む必要がある。こうしたソフトウェアを記憶装置57に書き込む場合、実行装置56は、こうしたソフトウェアを空白領域57Bに書き込むようにしてもよい。
【0055】
・ECU50は、CPUとROMとを備えて、ソフトウェア処理を実行するものに限らない。すなわち、ECU50は、以下(a)、(b)及び(c)の何れかの構成であればよい。
【0056】
(a)ECU50は、コンピュータプログラムに従って各種処理を実行する一つ以上のプロセッサを備えている。プロセッサは、CPU並びに、RAM及びROMなどのメモリを含んでいる。メモリは、処理をCPUに実行させるように構成されたプログラムコード又は指令を格納している。メモリ、すなわちコンピュータ可読媒体は、汎用又は専用のコンピュータでアクセスできるあらゆる利用可能な媒体を含んでいる。
【0057】
(b)ECU50は、各種処理を実行する一つ以上の専用のハードウェア回路を備えている。専用のハードウェア回路としては、例えば、特定用途向け集積回路、すなわちASIC又はFPGAを挙げることができる。なお、ASICは、「Application Specific Integrated Circuit」の略記である。FPGAは、「Field Programmable Gate Array」の略記である。
【0058】
(c)ECU50は、各種処理の一部をコンピュータプログラムに従って実行するプロセッサと、各種処理のうちの残りの処理を実行する専用のハードウェア回路とを備えている。
【0059】
<他の技術的思想>
次に、上記実施形態及び変更例から把握できる技術的思想について記載する。
(付記1)前記実行装置は、前記新規のソフトウェアを前記記憶装置に書き込んだ以降において当該新規のソフトウェアの機能を実現させる場合には、当該新規のソフトウェアを実行し、その後に前記既存のソフトウェアに戻って一連のソフトウェア機能を実行することが好ましい。
【0060】
(付記2)前記第2ソフトウェアが書き込まれている領域は、前記第1ソフトウェアが書き込まれている領域のアドレスの次のアドレスに設定されていることが好ましい。
(付記3)前記第1領域と前記第3領域との間の領域が、前記第2領域であることが好ましい。
【0061】
なお、本明細書において使用される「少なくとも1つ」という表現は、所望の選択肢の「1つ以上」を意味する。一例として、本明細書において使用される「少なくとも1つ」という表現は、選択肢の数が2つであれば「1つの選択肢のみ」又は「2つの選択肢の双方」を意味する。他の例として、本明細書において使用される「少なくとも1つ」という表現は、選択肢の数が3つ以上であれば「1つの選択肢のみ」又は「2つ以上の任意の選択肢の組み合わせ」を意味する。
【符号の説明】
【0062】
10…車両
21~24…センサ
50,50A…ECU(電子制御装置)
55…マイクロコンピュータ
56…実行装置
57…記憶装置
57A…既存領域
57B…空白領域
571…第1領域
572…第2領域
573…第3領域
61…アクチュエータ
図1
図2
図3
図4
図5