(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-27
(45)【発行日】2024-01-11
(54)【発明の名称】電子制御装置及びプログラム書き換え制御方法
(51)【国際特許分類】
G06F 8/65 20180101AFI20231228BHJP
B60R 16/02 20060101ALI20231228BHJP
【FI】
G06F8/65
B60R16/02 660U
(21)【出願番号】P 2020049558
(22)【出願日】2020-03-19
【審査請求日】2022-12-28
(73)【特許権者】
【識別番号】000237592
【氏名又は名称】株式会社デンソーテン
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】樊 棟梁
(72)【発明者】
【氏名】養畑 裕紀
(72)【発明者】
【氏名】梅山 重人
【審査官】多賀 実
(56)【参考文献】
【文献】特開2000-235487(JP,A)
【文献】特開2008-242995(JP,A)
【文献】特開2019-161991(JP,A)
【文献】特開2019-057187(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/65-8/658
B60R 16/02
(57)【特許請求の範囲】
【請求項1】
第1の演算処理装置と、
前記第1の演算処理装置と通信可能に接続される第2の演算処理装置と
を備え、
前記第2の演算処理装置は、
プログラムの書き換えを要求する要求信号を前記第1の演算処理装置に出力後に書き換え待機状態に遷移し、前記要求信号を出力してから、前記第1の演算処理装置がプログラムの書き換え処理に移行することが可能な時間である所定の待機時間を経過することを条件として前記書き換え待機状態を解除し、プログラムの書き換え処理に移行する制御部
を備えることを特徴とする電子制御装置。
【請求項2】
前記制御部は、
前記第1の演算処理装置の最長起動時間に基づいて、前記所定の待機時間を決定する
ことを特徴とする請求項1に記載の電子制御装置。
【請求項3】
第1の演算処理装置と、前記第1の演算処理装置と通信可能に接続される第2の演算処理装置とを備える電子制御装置において実行されるプログラム書き換え制御方法であって、
前記第2の演算処理装置がプログラムの書き換えを要求する要求信号を前記第1の演算処理装置に出力する工程と、
前記第2の演算処理装置が前記要求信号を前記第1の演算処理装置に出力した後に書き換え待機状態に遷移し、前記要求信号を出力してから、前記第1の演算処理装置がプログラムの書き換え処理に移行することが可能な時間である所定の待機時間を経過することを条件として前記書き換え待機状態を解除し、プログラムの書き換え処理に移行する工程と
を含むことを特徴とするプログラム書き換え制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
開示の実施形態は、電子制御装置及びプログラム書き換え制御方法に関する。
【背景技術】
【0002】
従来、マイコンなどの演算処理装置を複数備えた電子制御装置において、演算処理装置に記録されたプログラムの書き換え(更新)を行う技術が提案されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
上述の電子制御装置では、主たる演算処理装置と従たる演算処理装置との間で、予め規定された手順に従って書き換え処理を行うものが存在するが、例えば、装置構成等の製品の仕様上、予め規定された手順に従っても、プログラムの書き換えを実行できない事態が発生し得る。
【0005】
実施形態の一態様は、上記に鑑みてなされたものであって、予め規定された手順に従ってプログラムの書き換えを正常に完了できる電子制御装置及びプログラム書き換え制御方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決し、目的を達成するために、実施形態の一態様に係る電子制御装置は、第1の演算処理装置と、第1の演算処理装置と通信可能に接続される第2の演算処理装置とを備える。第2の演算処理装置は、プログラムの書き換えを要求する要求信号を第1の演算処理装置に出力後に書き換え待機状態に遷移し、要求信号を出力してから、第1の演算処理装置がプログラムの書き換え処理に移行することが可能な時間である所定の待機時間を経過することを条件として書き換え待機状態を解除し、プログラムの書き換え処理に移行する制御部を備える。
【発明の効果】
【0007】
実施形態の一態様によれば、予め規定された手順に従ってプログラムの書き換えを正常に完了できる。
【図面の簡単な説明】
【0008】
【
図1】
図1は、比較例に係るプログラム書き換え手順(その1)の一例を示す図である。
【
図2】
図2は、比較例に係るプログラム書き換え手順(その2)の一例を示す図である。
【
図3】
図3は、電子制御装置の構成例を示すブロック図である。
【
図4】
図4は、電子制御装置における処理手順の一例を示すシーケンス図である。
【発明を実施するための形態】
【0009】
以下、添付図面を参照して、本願の開示する電子制御装置およびプログラム書き換え制御方法の実施形態を詳細に説明する。なお、以下に示す実施形態によりこの発明が限定されるものではない。
【0010】
<1.はじめに>
従来、車両に搭載されるECU(Electronic Control Unit)等の電子制御装置には、例えば、車両搭載機器を制御するメインマイコンと、メインマイコンの動作をサポートするサブマイコン等の複数の演算処理装置(マイコン)を備えるものが存在する。このような電子制御装置では、車両に搭載される各種機器を制御するための各種プログラムの書き換え処理(リプログラミング)が行われる。
図1は、比較例に係るプログラム書き換え手順(その1)の一例を示す図である。
【0011】
図1に示す例では、電子制御装置EX1に搭載されているサブマイコンEX1-2は、制御用プログラムの書き換え処理を行うための移行スタンバイ状態となっている。移行スタンバイ状態にあるサブマイコンEX1-2は、例えば、製品(サブマイコンEX1-2)の起動に応じて、制御用プログラムの書き換え処理への移行を要求するVPP信号をメインマイコンEX1-1に送信する(ステップS1)。
【0012】
メインマイコンEX1-1は、VPP信号を受信後、所定の起動トリガーが発生すると、制御用プログラムを実行して製品を通常起動し(ステップS2)、初期通信データをサブマイコンEX1-2に送信する(ステップS3)。
【0013】
続いて、メインマイコンEX1-1は、受信信号の解析においてVPP信号の存在を確認すると、制御用プログラムを終了し、リプログラミング用ファームウェアを実行して制御用プログラムの書き換え処理へ移行する(ステップS4)。書き換え処理へ移行後、メインマイコンEX1-1は、VPP信号をサブマイコンEX1-2に送信する(ステップS5)。
【0014】
サブマイコンEX1-2は、メインマイコンEX1-1からVPP信号を受信すると、制御用プログラムの書き換え処理へ移行する(ステップS6)。
【0015】
制御用プログラムの書き換えを行う場合、通常動作中の制御用プログラムを終了してリプログラミング用ファームウェアを実行し、書き換え処理を実行可能な状態へ移行する必要がある。
図1に例示するような冗長なマイコン構成を有する電子制御装置EX1において、メインマイコンEX1-1及びサブマイコンEX1-2の双方で制御用プログラムの書き換えを行う場合、メインマイコンEX1-1及びサブマイコンEX1-2の双方が書き換え処理を実行可能な状態に移行する必要がある。このとき、
図1の書き換え手順(その1)に示すように、メインマイコンEX1-1→サブマイコンEX1-2という順序で書き換え処理へ移行する必要がある。
【0016】
ところで、電子制御装置の中には、信号を出力したことを確認することなどを目的として、マイコンから出力された信号を、信号の出力元であるマイコンにフィードバックするハードウェア構成を備えるものがある。例えば、VPP信号は、制御用プログラムによる制御対象機器の通常の動作を強制的に終了して、制御用プログラムの書き換え処理へ移行させる重要な信号である。自装置から出力された信号をフィードバックする仕様を取り入れる背景には、VPP信号などの重要な信号が出力されたことを確認しながら処理を行うたいという意図がある。以下、このような仕様における制御用プログラムの書き換え手順について説明する。
図2は、比較例に係るプログラム書き換え手順(その2)の一例を示す図である。
【0017】
図2に示すように、電子制御装置EX2に搭載されているサブマイコンEX2-2は、
図1に示す例と同様に、制御用プログラムの書き換え処理を行うための移行スタンバイ状態にある。
【0018】
移行スタンバイ状態にあるサブマイコンEX2-2は、例えば、製品(サブマイコンEX2-2)の起動に応じて、制御用プログラムの書き換え処理への移行を要求するVPP信号をメインマイコンEX2-1に送信する(ステップS11)。
【0019】
メインマイコンEX2-1は、VPP信号を受信後、所定の起動トリガーが発生すると、制御用プログラムを実行して製品を通常起動し(ステップS12)、初期通信データをサブマイコンEX2-2に送信する(ステップS13)。
【0020】
続いて、メインマイコンEX2-1は、受信信号の解析においてVPP信号の存在を確認すると、制御用プログラムを終了し、リプログラミング用ファームウェアを実行して制御用プログラムの書き換え処理へ移行する(ステップS14)。書き換え処理へ移行後、メインマイコンEX2-1は、VPP信号をサブマイコンEX2-2に送信する(ステップS15)。
【0021】
一方、サブマイコンEX2-2では、ステップS11においてメインマイコンEX2-1に送信したVPP信号がフィードバックされて自らに入力されるため、メインマイコンEX2-1から送信されたVPP信号を受信する前に、リプログラミング用ファームウェアを実行して制御用プログラムの書き換え処理へ移行済みの状態となっている(ステップS16)。
【0022】
このため、サブマイコンEX2-2は、通常であれば、書き換え処理へ移行する前に受信するはずの初期通信データを、書き換え処理の移行後に受信するため、通信エラーとなってしまう(ステップS17)。サブマイコンEX2-2は、書き換え処理に移行した後、メインマイコンEX2-1から受信するデータの中に、プログラム書き換え用のデータではない初期通信データが含まれる結果、正常に制御用プログラムの書き換えを実行できない。
【0023】
このように、メインマイコンEX2-1→サブマイコンEX2-2という順序で書き換え処理へ移行しても、
図2に示す電子制御装置EX2のように、製品の仕様上、制御用プログラムを書き換えることができない事態が発生してしまう。
【0024】
そこで、本願では、予め規定された手順に従って各種プログラムの書き換えを正常に完了できる電子制御装置およびプログラム書き換え制御方法を提供する。
【0025】
<2.電子制御装置の構成>
実施形態に係る電子制御装置1の構成について、
図3を用いて説明する。
図3は、電子制御装置1の構成例を示すブロック図である。なお、
図3に示すブロック図では、本願が開示する実施形態の特徴を説明するために必要な構成要素のみを機能ブロックで表しており、一般的な構成要素についての記載を省略している。
【0026】
換言すれば、
図3に示される各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。例えば、各構成要素の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することが可能である。
【0027】
図3に示す電子制御装置1は、ハイブリッドカーや電気自動車等の車両に搭載され、プログラム書き換え制御方法を実行する電子制御装置として機能する。電子制御装置1は、例えば、EFI(Electrical Fuel Injection)-ECUやEV(Electric Vehicle)-ECU、HEV(Hybrid Electric Vehicle)-ECUなどに該当する。
【0028】
電子制御装置1は、車載ネットワーク3を介して、制御対象機器100に接続する。例えば、車載ネットワーク3として、例えば、LIN(Local Interconnect Network)やCAN(Controller Area Network)などの通信規格に準拠して構築されたネットワークを用いることができる。なお、車載ネットワーク3は、LINやCAN以外の次世代通信規格や、じか線により構築されてもよい。制御対象機器100は、車両に搭載されるエンジンや自動変速機などの車両に搭載される機器である。
【0029】
図3に示すように、電子制御装置1は、メインマイコン10と、サブマイコン20と、通信線30とを備える。
【0030】
メインマイコン10は、主に制御対象機器100を制御するマイクロコンピュータである。メインマイコン10は、第1の演算処理装置として機能する。サブマイコン20は、主にメインマイコン10の動作をサポートするマイクロコンピュータである。サブマイコン20は、第2の演算処理装置として機能する。
【0031】
メインマイコン10は、車載ネットワーク3に接続される制御対象機器100や他の電子制御装置、車載ツールなどとの間で各種情報をやり取りするためのデータ通信が可能である。サブマイコン20は、メインマイコン10を介して、車載ネットワーク3に接続される制御対象機器100や他の電子制御装置、車載ツールなどから送信された情報を取得する。
【0032】
図3に示すように、メインマイコン10は、通信部11と、記憶部12と、制御部13とを備える。
【0033】
通信部11は、通信線30を介して、サブマイコン20との間でシリアル通信を行う。通信部11は、UART(Universal Asynchronous Receiver Transmitter)などの調歩同期式シリアル通信の通信方式を用いて、サブマイコン20と通信できる。
【0034】
通信線30は、例えば、OR回路を含んで構成される。通信部11は、送信した信号をフィードバックして受信し、自装置(メインマイコン10)に入力する。
【0035】
記憶部12は、制御部13が実行する各機能を実現するための各種プログラム等を記憶する。記憶部12は、例えば、不揮発性メモリやデータフラッシュ、ハードディスクドライブといった記憶デバイスにより実現される。
【0036】
記憶部12は、所定の格納領域に、制御用プログラム12aと、リプログラミング用ファームウェア12bとを記憶する。
【0037】
制御用プログラム12aは、制御対象機器100を制御するための機能を提供する。制御用プログラム12aは、製品(電子制御装置1)の出荷時に書き込まれたり、出荷後に書き換えられたりする製品ソフトウェアに該当する。
【0038】
リプログラミング用ファームウェア12bは、制御用プログラム12aを書き換えるための機能を提供する。
【0039】
制御部13は、メインマイコン10を制御するコントローラである。制御部13は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)、GPU(Graphics Processing Unit)等のプロセッサにより実現される。制御部13は、メインマイコン10の内部に記憶された各種プログラムを、プロセッサがRAM(Random Access Memory)等を作業領域として実行することにより、メインマイコン10の各種処理を実現する。なお、制御部13は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されてもよい。CPU、MPU、ASIC、及びFPGAは何れもコントローラとみなすことができる。
【0040】
制御部13は、制御用プログラム12aを実行することにより、制御対象機器100の制御を実現する。
【0041】
制御部13は、リプログラミング用ファームウェア12bを実行することにより、制御用プログラム12aを書き換える書き換え処理を実行する。
【0042】
具体的には、制御部13は、例えば、サブマイコン20からVPP信号(要求信号の一例)を受信すると、制御用プログラム12aを実行して製品(メインマイコン10)を起動し、初期通信データをサブマイコン20に送信する。初期通信データを送信後、制御部13は、制御用プログラム12aを終了して、リプログラミング用ファームウェア12bを実行し、制御用プログラム12aを書き換えるための書き換え処理に移行し、VPP信号をサブマイコン20に送信する。このVPP信号により、サブマイコン20は、メインマイコン10が制御用プログラム12aの書き換え処理に移行したことを認識する。
【0043】
なお、制御部13は、例えば、車載ネットワーク3に接続されるプログラム書き換えツール(図示せず)などから、書き換え用のプログラムを取得できる。そして、制御部13は、取得した書き換え用のプログラムをサブマイコン20に提供できる。
【0044】
サブマイコン20は、
図3に示すように、通信部21と、記憶部22と、制御部23とを備える。
【0045】
通信部21は、通信線30を介して、サブマイコン20との間でシリアル通信を行う。通信部21は、UART(Universal Asynchronous Receiver Transmitter)などの調歩同期式シリアル通信の通信方式を用いて、メインマイコン10と通信できる。
【0046】
通信部21からメインマイコン10に送信されるVPP信号は、通信線30のOR回路でフィードバックされる。このため、通信部21は、メインマイコン10に送信されるVPP信号を受信し、自装置(サブマイコン20)に入力する。
【0047】
記憶部22は、制御部23が実行する各機能を実現するための各種プログラム等を記憶する。記憶部22は、例えば、不揮発性メモリやデータフラッシュ、ハードディスクドライブといった記憶デバイスにより実現される。
【0048】
記憶部22は、所定の格納領域に、制御用プログラム22aと、リプログラミング用ファームウェア22bとを記憶する。
【0049】
制御用プログラム22aは、制御対象機器100の制御に関連して、メインマイコン10の動作をサポートするための機能を提供する。制御用プログラム22aは、製品(電子制御装置1)の出荷時に書き込まれたり、出荷後に書き換えられたりする製品ソフトウェアに該当する。
【0050】
リプログラミング用ファームウェア22bは、制御用プログラム22aを書き換えるための機能を提供する。
【0051】
制御部23は、サブマイコン20を制御するコントローラである。制御部23は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)、GPU(Graphics Processing Unit)等のプロセッサにより実現される。制御部23は、サブマイコン20の内部に記憶された各種プログラムを、プロセッサがRAM(Random Access Memory)等を作業領域として実行することにより、サブマイコン20の各種処理を実現する。なお、制御部13は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されてもよい。CPU、MPU、ASIC、及びFPGAは何れもコントローラとみなすことができる。
【0052】
制御部23は、制御用プログラム22aを実行することにより、制御対象機器100の制御に関連して、メインマイコン10の動作のサポートを実現する。
【0053】
制御部23は、リプログラミング用ファームウェア22bを実行することにより、制御用プログラム22aを書き換える書き換え処理を実行する。
【0054】
具体的には、制御部23は、例えば、書き換え処理へ移行するスタンバイ状態にあるとき、製品の起動に応じて、メインマイコン10に対し、VPP信号(要求信号の一例)を送信する。VPP信号の送信後、制御部23は、直ちに、制御用プログラム12aの書き換え処理への移行を待機する書き換え待機状態(待ち状態)に遷移する。メインマイコン10に送信されるVPP信号は、通信線30(のOR回路)でフィードバックされ、自装置(サブマイコン20)に入力されるが、制御部23は、VPP信号の送信後、直ちに、書き換え処理の待機状態に遷移することにより、通信線30でフィードバックされたVPP信号の入力により、制御用プログラム12aの書き換え処理に移行することがない。また、制御部23は、待機状態にあるときに、メインマイコン10から受信されたデータを破棄する。
【0055】
そして、制御部23は、VPP信号を出力してから所定の待機時間を経過することを条件として、書き換え待機状態を解除し、制御用プログラム22aの書き換え処理に移行する。所定の待機時間は、メインマイコン10が書き換え処理に移行することが可能な時間であればよく、例えば、メインマイコン10の最長起動時間に基づいて決定できる。これにより、サブマイコン20は、メインマイコン10が確実に書き換え処理へ移行完了した後に、待機状態を解除し、書き込み処理へ移行できる。最長起動時間は、例えば、メインマイコン10が受信信号を解析するポーリング周期や、制御用プログラム12aを終了してリプログラミング用ファームウェア12bを立ち上げるまでのリセット時間などに基づいて設定すること可能な最長の時間である。例えば、待機時間として、メインマイコン10の最長起動時間を1.5倍した時間を採用できる。メインマイコン10の最長起動時間が200ms(ミリ秒)である場合、待機時間は300ms(ミリ秒)となる。
【0056】
このように、電子制御装置1において、予め規定された手順に従った制御用プログラムの書き換え処理を正常に完了できる。すなわち、電子制御装置1によれば、サブマイコン20がVPP信号を出力してから、メインマイコン10が書き換え処理に移行することが可能な時間である待機時間を経過することを条件として、サブマイコン20が書き換え処理へ移行することにより、制御用プログラムの書き換え処理への移行順序(メインマイコン10→サブマイコン20)が保証される。このため、サブマイコン20は、メインマイコン10から送信されるプログラムの書き換え用のデータを正常に処理でき、制御用プログラム22aの書き換え処理を正常に完了できる。
【0057】
<3.電子制御装置による処理>
図4は、電子制御装置1における処理手順の一例を示すシーケンス図である。
図4に示す処理手順は、メインマイコン10の制御部13、並びにサブマイコン20の制御部23により実行される。なお、
図4では、サブマイコン20は、制御用プログラム22aの書き換え処理を行うための移行スタンバイ状態にあるときの処理手順の一例を説明する。
【0058】
図4に示すように、移行スタンバイ状態にあるサブマイコン20は、例えば、製品の起動に応じて、制御用プログラム22aの書き換え処理への移行を要求するVPP信号をメインマイコン10に送信する(ステップS101)。
【0059】
メインマイコン10は、VPP信号を受信後、所定の起動トリガーが発生すると、制御用プログラム12aを実行して製品を起動し(ステップS102)、初期通信データをサブマイコン20に送信する(ステップS103)。
【0060】
続いて、メインマイコン10は、VPP信号の受信を確認すると、制御用プログラム12aを終了し、リプログラミング用ファームウェア12bを実行して制御用プログラム12aの書き換え処理へ移行する(ステップS104)。
【0061】
書き換え処理へ移行後、メインマイコン10は、VPP信号をサブマイコン20に送信する(ステップS105)。
【0062】
一方、サブマイコン20では、ステップ101においてメインマイコン10にVPP信号を送信した後、直ちに、制御用プログラム22aの書き換え待機状態に遷移する(ステップS106)。
【0063】
そして、サブマイコン20は、VPP信号を出力してから、予め規定される待機時間Tを経過することを条件として、書き換え待機状態を解除し、制御用プログラム22aの書き換え処理へ移行する(ステップS107)。待機時間Tは、メインマイコン10が書き換え処理に移行することが可能な時間であり、例えば、メインマイコン10の最長起動時間に基づいて決定される。
【0064】
上述してきたように、電子制御装置1によれば、サブマイコン20がVPP信号を出力してからの経過時間が、メインマイコン10が書き換え処理に移行することが可能な時間として予め設定される所定の待機時間(例えば、待機時間T)を超えることを条件として、サブマイコン20が書き換え処理へ移行することにより、制御用プログラムの書き換え処理への移行順序(メインマイコン10→サブマイコン20)が保証される。このため、サブマイコン20は、メインマイコン10から送信されるプログラムの書き換え用のデータを正常に処理でき、制御用プログラム22aの書き換え処理を正常に完了できる。
【0065】
また、電子制御装置1によれば、メインマイコン10の最長起動時間に基づいて、サブマイコン20が書き込み処理待機状態を解除し、書き込み処理へ移行するまでの所定の待機時間を決定する。このため、サブマイコン20は、メインマイコン10が確実に書き換え処理へ移行完了した後に、待機状態を解除し、書き込み処理へ移行できる。
【0066】
<4.その他>
上記実施形態では、車両に搭載される電子制御装置1について説明したが、マイコンが冗長構成され、一方のマイコンが他方のマイコンのゲートウェイとしての役割を果たし、プログラムの書き換え処理への移行順序を保証する必要がある各種製品について同様に適用できる。
【0067】
さらなる効果や変形例は、当業者によって容易に導き出すことができる。このため、本発明のより広範な態様は、以上のように表しかつ記述した特定の詳細および代表的な実施形態に限定されるものではない。したがって、添付の特許請求の範囲およびその均等物によって定義される総括的な発明の概念の精神または範囲から逸脱することなく、様々な変更が可能である。
【符号の説明】
【0068】
1 電子制御装置
3 車載ネットワーク
10 メインマイコン
11 通信部
12 記憶部
12a 制御用プログラム
12b リプログラミング用ファームウェア
13 制御部
20 サブマイコン
21 通信部
22 記憶部
22a 制御用プログラム
22b リプログラミング用ファームウェア
23 制御部
100 制御対象機器