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

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

▶ 株式会社デンソーの特許一覧

<>
  • 特開-電子制御装置 図1
  • 特開-電子制御装置 図2
  • 特開-電子制御装置 図3
  • 特開-電子制御装置 図4
  • 特開-電子制御装置 図5
  • 特開-電子制御装置 図6
  • 特開-電子制御装置 図7
  • 特開-電子制御装置 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024118749
(43)【公開日】2024-09-02
(54)【発明の名称】電子制御装置
(51)【国際特許分類】
   G06F 8/656 20180101AFI20240826BHJP
   G06F 8/654 20180101ALI20240826BHJP
   B60R 16/02 20060101ALI20240826BHJP
【FI】
G06F8/656
G06F8/654
B60R16/02 660U
【審査請求】未請求
【請求項の数】3
【出願形態】OL
(21)【出願番号】P 2023025205
(22)【出願日】2023-02-21
(71)【出願人】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【識別番号】110000567
【氏名又は名称】弁理士法人サトー
(72)【発明者】
【氏名】佐藤 惇
(72)【発明者】
【氏名】松岡 英治
(72)【発明者】
【氏名】福井 竜輔
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376AB01
5B376AC13
5B376AC30
5B376CA05
5B376CA43
5B376CA64
5B376CA76
5B376FA11
5B376GA08
(57)【要約】      (修正有)
【課題】更新プログラムを実行する対象のメモリデバイスが切り換った場合でもリアルタイム性が要求される処理の実行速度が低下することを防止する。
【解決手段】電子制御装置1において、複数のスケジューラは、通信I/F3を介して取得した更新プログラム中の各処理を、CPU0及びCPU1に実行させるように割り当てる。CPU0及びCPU1は、ROM0及びROM1の一方をアクティブメモリとしてアクセスする。OTA(On The Air)コントローラの制御装置は、CPU0又はCPU11がアクセスしていないインアクティブメモリの選択に応じてスケジューラの選択を行う。選択されたスケジューラによりアクティブメモリに専用バス11(0)又は専用バス11(1)を介して接続されているCPU0又はCPU1にリアルタイム性が要求される処理を実行させ、その他のCPU1又はCPU0にリアルタイム性が要求されない処理を実行させる。
【選択図】図1
【特許請求の範囲】
【請求項1】
複数のCPU(6(0)、6(1))と、
複数のメモリ(8(0)、8(1))と、
外部と無線通信を行う通信部(3)を介して取得した更新プログラム中の各処理を、前記複数のCPUに実行させるように割り当てる複数のスケジューラと、
これら複数のスケジューラのうち1つを選択する選択部(13)と、を備え、
前記複数のCPUは、それぞれ前記複数のメモリの何れか1つと専用バス(11)を介して接続されていると共に、その他のメモリとは共用バス(5)を介して接続されており、前記複数のメモリの何れか1つをアクティブメモリとしてアクセスし、前記複数のCPUがアクセスしていないメモリをインアクティブメモリとして、
前記選択部は、前記アクティブメモリの選択に応じて前記スケジューラの選択を行い、
前記インアクティブメモリをアクティブメモリに切り替えて前記更新プログラムの実行を開始させると、前記選択部が選択したスケジューラにより、前記アクティブメモリに専用バスを介して接続されているCPUにリアルタイム性が要求される処理を実行させ、その他のCPUにリアルタイム性が要求されない処理を実行させる電子制御装置。
【請求項2】
前記選択部は、選択したスケジューラによって実行された処理が完了するまでの速度を測定し、測定した速度が下限期待値よりも遅い際には前記スケジューラを異常と判定し、その判定結果を記憶させる請求項1記載の電子制御装置。
【請求項3】
前記選択部は、前記測定した速度が、前記下限期待値よりも速い値に設定される上限期待値より速い際にも前記スケジューラを異常と判定する請求項2記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のCPUのそれぞれと複数メモリのそれぞれとが専用バスで接続されている構成を備えた電子制御装置に関する。
【背景技術】
【0002】
自動車等の車両に搭載された電子制御装置は、機能の追加や不具合の改修等によってプログラムが更新される場合がある。従来は、車両をディーラなどに持ち込むことで電子制御装置のプログラムを更新していたが、車両ユーザの利便性が良くないことから、無線通信を使用した所謂OTA(On The Air)によって、ユーザの元でプログラムを更新する技術が提案されている。
【0003】
OTAによりプログラムを更新する場合、車両走行中等でも更新できることが望ましい。これを実現するため、電子制御装置の不揮発性メモリにより確保された2つの記憶領域を交互に使用し、プログラムの実行中に非アクティブ面のプログラムを更新させ、例えばイグニッションスイッチのON/OFFといった再起動時のタイミングで、アクティブにする領域を切り換えることで車両走行中にもプログラムを更新することを実現可能にしている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2021-60747号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
この場合、CPU及びメモリなどデバイスとの接続関係に依っては、アクティブにする面が切り替わったことにより、処理の速度が低下して機能に及ぼす可能性がある。
【0006】
例えば、更新されたプログラムを実行するためアクティブにする面、つまりメモリデバイスが切り替わったことで専用バス経由での処理が行えなくなると、リアルタイム性が求められる処理の速度が低下する。
【0007】
本発明は上記事情に鑑みてなされたものであり、その目的は、更新されたプログラムを実行する対象のメモリデバイスが切り換った場合でも、リアルタイム性が要求される処理の実行速度が低下することを防止できる電子制御装置を提供することにある。
【課題を解決するための手段】
【0008】
請求項1記載の電子制御装置によれば、各スケジューラは、外部と無線通信を行う通信部(3)を介して取得した更新プログラム中の各処理を、複数のCPU(6(0)、6(1))に実行させるように割り当てる。複数のCPUは、それぞれ複数のメモリ(8(0)、8(1))の何れか1つと専用バス(11)を介して接続されていると共に、その他のメモリとは共用バス(5)を介して接続されており、複数のメモリの何れか1つをアクティブメモリとしてアクセスする。選択部(13)は、アクティブメモリの選択に応じてスケジューラの選択を行う。
【0009】
複数のメモリを備えている際に、複数のCPUがプログラムを実行するためにアクセスしているメモリがアクティブメモリとなり、その他のメモリはインアクティブメモリとなる。更新された新たなプログラムは、インアクティブメモリの1つに書き込まれる。更新されたプログラムの実行を開始させる際には、上記のインアクティブメモリがアクティブメモリに切り換えられる。選択部が選択したスケジューラにより、アクティブメモリに専用バスを介して接続されているCPUにリアルタイム性が要求される処理を実行させ、その他のCPUにリアルタイム性が要求されない処理を実行させる。
【0010】
このように構成すれば、プログラムが更新されて、インアクティブメモリがアクティブメモリに切り換えられても、常に、アクティブメモリに専用バスを介して接続されているCPUによりリアルタイム性が要求される処理が実行される。したがって、リアルタイム性が要求される処理の実行速度が低下することを防止できる。
【図面の簡単な説明】
【0011】
図1】一実施形態であり、電子制御装置の構成を示す機能ブロック図
図2】OTAによるプログラムの更新からスケジューラ判定処理までの実行を示すフローチャート
図3】OTA更新処理を示すフローチャート
図4】スケジューラの一例を示す図
図5】プログラム書換処理を示すフローチャート
図6】通常処理を示すフローチャート
図7】初期化処理を示すフローチャート
図8】スケジューラ判定処理を示すフローチャート
【発明を実施するための形態】
【0012】
以下、一実施形態について説明する。図1に示すように、本実施形態の電子制御装置1はOTAコントローラ2を備え、OTAコントローラ2は、通信部である通信インタフェース;I/F3を介して例えばOTAセンタ等の外部装置4と無線通信を行うことで更新プログラム等を取得する。OTAコントローラ2と通信I/F3とは、共用バス5を介して接続されている。共用バス5には、CPU6(0)及び6(1)、RAM7、ROM8(0)及び8(1)、データフラッシュ9並びにタイマ10等が接続されている。尚、ROM8及びデータフラッシュ9はデータが書き換え可能なROMであり、所謂フラッシュメモリである。
【0013】
ROM8はデュアルポートメモリであり、CPU6(0)とROM8(0)、及びCPU6(1)とROM8(1)とは、それぞれ専用バス11(0)及び11(1)を介して直接接続されている。つまり、電子制御装置1は、電源回路12より動作用電源が供給されている。OTAコントローラ2は、その内部に選択部である制御装置13と、記憶装置14とを有している。尚、更新プログラム等については「書換データ」と称する場合がある。
【0014】
次に、本実施形態の作用について説明する。図2に示すように、電子制御装置1は、OTA更新処理(S1)、通常処理(S2)及びスケジューラ判定処理(S3)を順次実行する。以降、これらの各処理について説明する。
【0015】
<OTA更新処理>
図3に示すように、OTAコントローラ2の制御装置13は、通信I/F3を介して外部装置4より書換えデータを受信し、記憶装置14に記憶する(S11)。尚、書換データには、更新プログラム中の各処理を、CPU6(0)、6(1)に実行させるように割り当てるプログラムであるスケジューラが含まれている。より具体的には、スケジューラは、各機能の時間周期処理や割り込み処理をCPU6(0)、6(1)の何れに実行させるかを決定するものである。具体的には、周期実行処理を設計した順番に呼び出すものや、割り込み処理に関するリアルタイムOSのコンフィグレーション設定である(OK?)。
【0016】
本実施形態では、更新プログラムは、図4に示すように、実行対象のCPU6が異なる2種類のスケジューラを持ち、アクティブ面となるROM8に応じてスケジューラを選択し、各機能のスケジューラ関数を実行するCPU6を変更できるようにしている。「アクティブ面」とは、CPU6(0)及びCPU6(1)がアクセスしているROM8(0)又は8(1)の何れか一方である。アクセスしていない方は「非アクティブ面」と称する。アクティブ面はアクティブメモリに相当し、非アクティブ面はインアクティブメモリに相当する。
【0017】
スケジューラNo.1は、アクティブ面がROM8(0)の場合に選択され、CPU6(0)にはリアルタイム性が求められる処理を実行させ、CPU6(1)にはリアルタイム性が不要な処理を実行させる。「リアルタイム性が求められる処理」とは、例えば車両制御への適用を想定するとエンジンの燃料噴射制御等であり、「リアルタイム性が不要な処理」とは、例えばカーエアコンの制御等である。この時、CPU6(0)は、専用バス11(0)を介してROM8(0)にアクセスし、CPU6(1)は、共用バス5を介してROM8(0)にアクセスする。
【0018】
一方、スケジューラNo.2は、上記とは逆になり、アクティブ面がROM8(1)の場合に選択され、CPU6(1)にはリアルタイム性が求められる処理を実行させ、CPU6(0)にはリアルタイム性が不要な処理を実行させる。この時、CPU6(1)は、専用バス11(1)を介してROM8(1)にアクセスし、CPU6(0)は、共用バス5を介してROM8(1)にアクセスする。
【0019】
次に、CPU6がプログラムを実行中か、つまり動作中か否かを判断する(S12)。例えば、制御装置13がCPU6の状態を監視し、ROM8へアクセスするバスの状態や、インタフェースが呼び出されている場合はプログラム実行中と判定する。電子制御装置1において、CPU6が動作を停止させる場合とは、例えば車両に搭載されるECU(Electronic Control Unit)等への適用を想定すると、車両が駐停車することでイグニッションスイッチがOFFされたような場合である。
【0020】
CPU6が動作中でなければ(No)、プログラムの書換処理を行う(S14)。この書換処理の詳細については後述する。一方、動作中であれば(Yes)、プログラムの書換えに使用しないCPU6及びRAM7の機能を停止させてから(S13)ステップS14に移行する。「CPU6の機能を停止させる」とは、例えばHALTモードに移行させることである。また、「RAM7の機能を停止させる」とは、例えばSRAMであればバックアップ電源の供給を停止させたり、DRAMであればリフレッシュ動作を停止させることを意味する。それから、ステップS12と同様の判断を行い(S15)、動作中であれば(Yes)動作を停止するまで待機し、停止すると(No)アクティブ面を切り替える(S16)。
【0021】
<プログラム書換え処理>
図5に示すように、制御装置13は、アクティブ面の判定を行うと(S21)、通信I/F3を介して取得した書換データの一部を記憶装置14に保存する(S22)。次に、制御装置13は共用バス5の混雑具合を確認する(S23)。バス5の混雑具合は、例えば複数のバスマスタによるバスの使用権の要求を調停するアービタを用いている場合は、アービタに対して出力されているバスリクエストの数等により判断する。共用バス5の混雑度合いが期待値以下で混雑してない場合は(Yes)、記憶装置14に保存したデータのROM8に対する書き込みを開始し(S24)、期待値を超えていれば(No)混雑が緩和するまで待機する。
【0022】
ステップS24において、制御装置13は、記憶装置14に保存した書換データを非アクティブ面のROM8に書き込む。この際、スケジューラは書換データに含まれており、どちらのアクティブ面でも使用可能である。最後に、書込みが完了したかを確認し(S25)、書込みが失敗した場合はステップS22に戻り、再度データの書込み処理を行う。
【0023】
<通常処理>
図6に示すように、通常処理は、初期化処理を行った後に(S31)開始される(S32)。初期化処理は何れかのCPU6で行い、他方は初期化が完了するまで待機する。各CPU6は、初期化処理で決定したスケジューラを基に通常処理を開始する。通常処理とは、電子制御装置1に付与された機能を実現するため、CPU6がプログラムを実行することである。
【0024】
<初期化処理>
図7に示すように、初期化処理では、ROM8のアクティブ面の判定を行う(S41)。但し、図5に示すプログラム書換え処理でもアクティブ面の判定を行っているため、その時の判定結果を記憶装置14に格納しておき、その判定結果を参照しても良い。次に、スケジューラの異常判定を行う(S42)。CPU6は、データフラシュ9に格納されているスケジューラの判定結果を参照し、スケジューラに異常があるか否かを判定する。スケジューラに異常がなければ(No)、アクティブ面に基づいたスケジューラを選択する(S44)。
【0025】
一方、スケジューラに異常がある場合は(Yes)スケジューラを再度選択する(S43)。すなわち、アクティブ面に基づいたスケジューラ設定を行わずに、別のスケジューラを選択する。例えば、図3に示すスケジューラNo.1を設定して異常となった場合には、スケジューラNo.2を選択する。
【0026】
<スケジューラ異常判定処理>
図8に示すように、通常処理の処理速度が期待値を超えている場合は(S51;No)、スケジューラを正常と判定し判定結果をOKとする(S52)。一方、通常処理の処理速度が期待値以下であり遅い場合や、期待値を大幅に超えており速度が異常に速い場合には(S51;Yes)、スケジューラを異常と判定し判定結果をNGとする(S54)。ここで、処理速度の計測は、通常処理を行うCPU6毎にタイマ10を用いて行う。期待値を大幅に超えており速度が異常に速い場合については、前記期待値を下限期待値とすると、下限期待値よりも値が大きい上限期待値を設定し、この上限期待値と処理速度とを比較判定することになる。
【0027】
最後に、判定結果をデータフラッシュ9に書き込んで(S53)判定処理を終了する。このスケジューラ判定処理は、通常処理終了後に電源が遮断されて、電子制御装置1をシャットダウンする前に行うことを想定している。図7に示したように、この判定結果は、次回に電子制御装置1が起動されて、通常処理を開始する際に参照される。
【0028】
以上のように本実施形態によれば、電子制御装置1において、各スケジューラは、通信部を介して取得した更新プログラム中の各処理を、CPU6(0)、6(1)に実行させるように割り当てる。CPU6(0)、6(1)は、それぞれROM8(0),8(1)と専用バス11(0)、11(1)を介して接続されていると共に、ROM8(1),8(0)とは共用バス5を介して接続されている。CPU6(0)、6(1)は、ROM8(0),8(1)の一方をアクティブメモリとしてアクセスする。
【0029】
OTAコントローラ2の制御装置13は、CPU6(0)、6(1)がアクセスしているアクティブメモリ、ROM8の選択に応じてスケジューラの選択を行う。選択されたスケジューラにより、アクティブメモリとなるROM8に専用バス11を介して接続されているCPU6にリアルタイム性が要求される処理を実行させ、その他のCPU6にリアルタイム性が要求されない処理を実行させる。
【0030】
このように構成すれば、プログラムが更新されて、インアクティブメモリがアクティブメモリに切り換えられても、常に、アクティブメモリに専用バス11を介して接続されているCPU6によりリアルタイム性が要求される処理が実行される。したがって、リアルタイム性が要求される処理の実行速度が低下することを防止できる。
【0031】
また、制御装置13は、選択したスケジューラによって実行された処理が完了するまでの速度を測定し、測定した速度が下限期待値よりも遅い際には前記スケジューラを異常と判定し、その判定結果をデータフラッシュ9に記憶させる。また、測定した速度が、下限期待値よりも速い値に設定される上限期待値より速い際にも前記スケジューラを異常と判定する。これにより、異常と判定したスケジューラの使用を回避する等の措置を行うことが可能になる。
【0032】
(その他の実施形態)
CPU及びROMの組は、3組以上あっても良い。
車両制御以外の制御に適用しても良い。
本開示は、実施例に準拠して記述されたが、本開示は当該実施例や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、さらには、それらに一要素のみ、それ以上、あるいはそれ以下、を含む他の組み合わせや形態をも、本開示の範疇や思想範囲に入るものである。
【符号の説明】
【0033】
図面中、1は電子制御装置、3は通信インタフェース、5は共用バス、6はCPU、8はROM、11は専用バス、13は制御装置を示す。
図1
図2
図3
図4
図5
図6
図7
図8