(57)【要約】【課題】機能安全要求を満たしつつ、システムの起動時間を短くすることができる電子制御装置を提供すること。【解決手段】電子制御装置が備えるマイコンは、ハードウェアセルフテスト（以下、ＢＩＳＴ）機能を有している。マイコンは、ＢＩＳＴが実行される複数のＢＩＳＴ対象を有している。マイコンの起動時には、論理回路部を診断対象とするＢＩＳＴであるＬＢＩＳＴを実行する（ステップＳ１０）。マイコンのシャットダウン時には、メモリ部を診断対象とするＢＩＳＴであるＭＢＩＳＴを実行する（ステップＳ１５）。このように、複数のＢＩＳＴ対象のすべてについてマイコン起動時にＢＩＳＴを実行するのではなく、起動時とシャットダウン時に分けてＢＩＳＴを実行する。【選択図】図２
2019114244.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェアセルフテスト（以下、ＢＩＳＴ）機能を有するマイコン（１１）を備えた電子制御装置であって、
ＢＩＳＴが実行される複数のＢＩＳＴ対象（２１，２２，３１，３２，４０，７１，７２，８１，８２，９０，１００）と、
前記マイコンの起動時に、前記複数のＢＩＳＴ対象の一部についてＢＩＳＴを実行する起動時実行部（Ｓ１０）と、
起動時にＢＩＳＴが実行されない残りの前記ＢＩＳＴ対象について、シャットダウン時にＢＩＳＴを実行するシャットダウン時実行部（Ｓ１５）と、を備える電子制御装置。
【請求項２】
前記複数のＢＩＳＴ対象が、論理回路部（２１，３１，７１，８１，９０，１００）と、メモリ部（２２，３２，４０，７２，８２）と、を有し、
前記起動時には、前記論理回路部がＢＩＳＴの対象とされ、
前記シャットダウン時には、前記メモリ部がＢＩＳＴの対象とされる請求項１に記載の電子制御装置。
【請求項３】
前記メモリ部として、スタック領域（２２０ａ，３２０ａ）が設けられたメモリを含み、
前記シャットダウン時実行部は、関数を使用しないプログラムにより、前記スタック領域を含む前記メモリ部についてＢＩＳＴを実行する請求項２に記載の電子制御装置。
【請求項４】
プログラムが格納され、ＢＩＳＴの対象外である対象外メモリ（５０）を備え、
前記メモリ部として、前記プログラムを一時的に保管する命令キャッシュ（２２１，３２１）及び前記プログラムの処理対象となるデータを一時的に保管するデータキャッシュ（２２０，３２０）を含むキャッシュメモリ（２２，３２）を含み、
前記シャットダウン時実行部は、前記シャットダウン時に、前記命令キャッシュを無効化するとともに、前記対象外メモリの値を直接読み出して、前記キャッシュメモリを含む前記メモリ部についてＢＩＳＴを実行する請求項２又は請求項３に記載の電子制御装置。
【請求項５】
前記論理回路部が、ＣＰＵ（２１０，３１０）を有し、
前記メモリ部としてのメモリ領域を有し、前記ＣＰＵを介さずにデータを転送するダイレクトメモリアクセス（以下、ＤＭＡ）コントローラ（７０）を備え、
前記シャットダウン時実行部は、前記シャットダウン時に、前記ＤＭＡコントローラを停止させてから、前記ＤＭＡコントローラのメモリ領域を含む前記メモリ部についてＢＩＳＴを実行する請求項２〜４いずれか１項に記載の電子制御装置。
【請求項６】
前記メモリ部としてのメモリ領域を有し、時間計測可能なタイマユニット（８０）を備え、
前記シャットダウン時実行部は、前記シャットダウン時に、前記タイマユニットを停止させてから、前記タイマユニットのメモリ領域を含む前記メモリ部についてＢＩＳＴを実行する請求項２〜５いずれか１項に記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この明細書における開示は、電子制御装置に関する。
【背景技術】
【０００２】
ＩＳＯ２６２６２等の機能安全要求を満たすため、特許文献１に開示されるように、ハードウェアセルフテスト機能を有するマイコンを備えた電子制御装置が知られている。以下、ハードウェアセルフテスト（Built In Self Test）をＢＩＳＴと示す。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−１２６６９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の電子制御装置において、ＢＩＳＴによる診断は、マイコンの起動時において、ソフトウェアが動作する前に実行される。ＢＩＳＴによる診断には数十ｍｓオーダの時間を要するため、ＢＩＳＴを行うと、マイコンの電源が投入されてからマイコンが通常制御処理を開始するまでにかかる時間が長くなる。すなわち、電子制御装置を含むシステムの起動時間が長くなるという問題がある。
【０００５】
本開示はこのような課題に鑑みてなされたものであり、機能安全要求を満たしつつ、システムの起動時間を短くすることができる電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本開示は、上記目的を達成するために以下の技術的手段を採用する。なお、括弧内の符号は、ひとつの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、技術的範囲を限定するものではない。
【０００７】
本開示のひとつは、ハードウェアセルフテスト（以下、ＢＩＳＴ）機能を有するマイコン（１１）を備えた電子制御装置であって、
ＢＩＳＴが実行される複数のＢＩＳＴ対象（２１，２２，３１，３２，４０，７１，７２，８１，８２，９０，１００）と、
マイコンの起動時に、複数のＢＩＳＴ対象の一部についてＢＩＳＴを実行する起動時実行部（Ｓ１０）と、
起動時にＢＩＳＴが実行されない残りのＢＩＳＴ対象について、シャットダウン時にＢＩＳＴを実行するシャットダウン時実行部（Ｓ１５）と、を備える。
【０００８】
この電子制御装置によれば、ＢＩＳＴの実行により、機能安全要求を満たすことができる。また、複数のＢＩＳＴ対象のすべてについて、マイコン起動時にＢＩＳＴを実行するのではなく、起動時とシャットダウン時に分けてＢＩＳＴを実行するため、システムの起動時間を短くすることができる。以上により、機能安全要求を満たしつつ、システムの起動時間を短くすることができる。
【図面の簡単な説明】
【０００９】
【図１】第１実施形態の電子制御装置の概略構成を示す図である。
【図２】マイコンが実行する処理を示すフローチャートである。
【図３】ＬＢＩＳＴ処理を示すフローチャートである。
【図４】シャットダウン処理を示すフローチャートである。
【図５】ＭＢＩＳＴ処理を示すフローチャートである。
【図６】ソフトウェア初期化処理を示すフローチャートである。
【図７】マイコンの電源オンからオフまでを示すタイミングチャートである。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら、実施形態を説明する。
【００１１】
（第１実施形態）
先ず、図１に基づき、電子制御装置（ＥＣＵ：Electronic Control Unit）の概略構成について説明する。
【００１２】
図１に示す電子制御装置１０は、たとえば車両に搭載される。本実施形態では、電子制御装置１０が、エンジンＥＣＵとして構成されている。
【００１３】
電子制御装置１０は、マイコン１１と、入力回路１２と、出力回路１３と、電源回路１４を備えている。マイコン１１は、不揮発性メモリに格納されているプログラムを実行することで、所定の処理を実行するマイクロコンピュータである。
【００１４】
入力回路１２は、外部から入力される信号をマイコン１１に出力する。入力信号としては、起動信号が入力される。本実施形態では、起動信号として、イグニッションスイッチ２００からＩＧ信号が入力される。入力回路１２は、ＩＧ信号（起動信号）を、電源回路１４にも出力する。入力回路１２には、たとえば車両や車両周囲の状態を検出する複数のセンサ２０１の検出信号が入力される。センサ２０１として、たとえばクランク角センサ、カム角センサ、車速センサが含まれる。マイコン１１は、入力回路１２を通じて取得したセンサ２０１の検出信号を用いて、エンジンの状態に応じて最適な燃料噴射を行うための演算を実行する。
【００１５】
出力回路１３は、マイコン１１の演算結果である制御信号を、外部のアクチュエータ２０２に出力する。アクチュエータ２０２として、たとえば燃料噴射用のインジェクタが含まれる。後述するＢＩＳＴの結果が異常と判定された場合に、出力回路１３は、ユーザへ報知する信号を外部の報知部２０３に出力する。報知部として、たとえば警告灯を採用することができる。
【００１６】
電源回路１４は、ＩＧ信号がオフからオンに切り替わると、マイコン１１に電源を供給する。また、ＩＧ信号がオンからオフに切り替わると、シャットダウン時におけるマイコン１１の処理を待って、マイコン１１への電源供給を遮断する。
【００１７】
マイコン１１は、ハードウェアセルフテスト（Built In Self Test）機能を有している。以下、ハードウェアセルフテストをＢＩＳＴと示す。マイコン１１は、機能ブロックとして、第１コア２０と、第２コア３０と、ＲＡＭ４０と、ＲＯＭ５０と、ＢＩＳＴコントローラ６０と、ＤＭＡコントローラ７０と、タイマユニット８０と、監視タイマ９０と、Ｉ／Ｏポート１００を有している。各機能ブロックは、バス１１０を介して相互に通信可能に構成されている。
【００１８】
第１コア２０は、ＣＰＵ２１０及びレジスタ２１１を含む論理回路２１と、キャッシュメモリ２２を有している。キャッシュメモリ２２は、プログラムの処理対象となるデータを一時的に保管する領域であるデータキャッシュ２２０と、プログラムを一時的に保管する領域である命令キャッシュ２２１を有している。命令キャッシュ２２１は、インストラクションキャッシュとも称される。本実施形態では、データキャッシュ２２０に、一時的な退避領域であるスタック領域２２０ａが設けられている。なお、ＣＰＵは、Central Processing Unitの略称である。
【００１９】
第２コア３０も、第１コア２０同様の構成とされている。第２コア３０は、ＣＰＵ３１０及びレジスタ３１１を含む論理回路３１と、キャッシュメモリ３２を有している。キャッシュメモリ３２は、データキャッシュ３２０と、命令キャッシュ３２１を有している。データキャッシュ３２０にも、スタック領域３２０ａが設けられている。
【００２０】
ＲＡＭ４０は、後述するメモリＢＩＳＴ要求を格納する領域や、メモリＢＩＳＴの実行履歴を格納する領域を有している。ＲＯＭ５０には、プログラムやプログラムが扱う固定的なデータが格納されている。ＲＯＭ５０が、不揮発性メモリに相当する。ＲＯＭ５０には、後述するＢＩＳＴ結果も格納される。なお、ＲＯＭは、Read Only Memoryの略称である。ＲＡＭは、Random Access Memoryの略称である。
【００２１】
ＢＩＳＴコントローラ６０は、第１コア２０との連携により、ＢＩＳＴを実行する。ＢＩＳＴコントローラ６０は、図示しないＢＩＳＴ回路の内容及びタイミングを制御することで、ＢＩＳＴを実行する。ＢＩＳＴ回路は、第１コア２０、第２コア３０、ＲＡＭ４０、ＤＭＡコントローラ７０、タイマユニット８０、監視タイマ９０、及びＩ／Ｏポート１００のそれぞれに設けられている。
【００２２】
ＤＭＡコントローラ７０は、第１コア２０（ＣＰＵ２１０）及び第２コア３０（ＣＰＵ３１０）を介さずに、メモリ、たとえばＲＡＭ４０と外部デバイスとの間でのデータ転送を制御する。ＤＭＡは、Direct Memory Accessの略称である。ＤＭＡコントローラ７０は、論理回路７１とメモリ７２を有している。
【００２３】
タイマユニット８０は、時間管理などの機能を有するプロセッサである。タイマユニット８０は、タイムプロセッサユニットとも称される。タイマユニット８０は、クロックが入力されるカウンタなどを有しており、時間計測が可能に構成されている。タイマユニット８０は、論理回路８１とメモリ８２を有している。
【００２４】
監視タイマ９０は、ウォッチドッグタイマとも称される。監視タイマ９０には、たとえば第１コア２０からウォッチドッグクリア信号（以下、ＷＤＣ信号と示す）が入力される。監視タイマ９０は、ＷＤＣ信号が所定時間以内に入力されないと、図示しないリセット回路に対してマイコン１１のリセット指示を出力する。これにより、リセット回路は、マイコン１１に対してＷＤＣリセットを実行する。
【００２５】
次に、図２〜図７に基づき、マイコン１１が実行する処理について説明する。
【００２６】
ここで、ロジックＢＩＳＴとは、論理回路部を診断領域とするＢＩＳＴである。ロジックＢＩＳＴを、ＬＢＩＳＴと示す。マイコン１１において、第１コア２０、第２コア３０、ＤＭＡコントローラ７０、及びタイマユニット８０それぞれの論理回路２１，３１，７１，８１と、監視タイマ９０と、Ｉ／Ｏポート１００が、論理回路部に相当する。以下において、論理回路部２１，３１，７１，８１，９０，１００とも称する。
【００２７】
また、メモリＢＩＳＴとは、メモリ部を診断領域とするＢＩＳＴである。メモリＢＩＳＴを、ＭＢＩＳＴと示す。マイコン１１において、第１コア２０及び第２コア３０のキャッシュメモリ２２，３２と、ＲＡＭ４０と、ＤＭＡコントローラ７０及びタイマユニット８０それぞれのメモリ７２，８２が、メモリ部（ＲＡＭ）に相当する。以下において、メモリ部２２，３２，４０，７２，８２とも称する。論理回路部及びメモリ部が、ＢＩＳＴ対象に相当する。ＲＯＭ５０が、ＢＩＳＴの対象外メモリに相当する。
【００２８】
イグニッションスイッチ２００がオンされてＩＧ信号がオフからオンに切り替わると、電源回路１４からマイコン１１に電源が供給され、ＰｏｗｅｒＯｎリセットが実行される。これにより、マイコン１１が初期化されるとともに、ＰｏｗｅｒＯｎリセットの実行履歴に実行ありが設定される。たとえば実行ありの場合に「１」が設定され、実行なしの場合に「０」が設定される。ＰｏｗｅｒＯｎリセットを含むリセットの実行履歴は、マイコン１１のリセット用の領域、たとえばＲＡＭ４０や図示しないレジスタに設定される。電源オン時のＰｏｗｅｒＯｎリセットによりマイコン１１が初期化されると、マイコン１１は、以下に示す処理を実行する。
【００２９】
初期化が完了すると、図２に示すように、先ずマイコン１１は、ＬＢＩＳＴ処理を実行する（ステップＳ１０）。ＬＢＩＳＴ処理が、起動時実行部に相当する。ＬＢＩＳＴ処理については、図３にて説明する。
【００３０】
マイコン１１の初期化が完了すると、図３に示すように、第１コア２０のＣＰＵ２１０は、ＢＩＳＴコントローラ６０にＬＢＩＳＴの実行を指示し、これにより、ＢＩＳＴコントローラ６０がＬＢＩＳＴを開始する（ステップＳ２０）。次いで、ＢＩＳＴコントローラ６０は、ＬＢＩＳＴが完了したか否かを判定する（ステップＳ２１）。ＬＢＩＳＴが完了したと判定すると、ＢＩＳＴコントローラ６０は、ＬＢＩＳＴの診断結果であるＬＢＩＳＴ結果を、ＢＩＳＴコントローラ６０内のレジスタに格納し（ステップＳ２２）、ＬＢＩＳＴ終了を示す信号をＣＰＵ２１０に出力する。上記した処理の完了により、図２に示すＬＢＩＳＴ処理が終了する。
【００３１】
なお、図示を省略するが、ＬＢＩＳＴの実行により、初期化した値が変わるため、マイコン１１が再度初期化される。この初期化において、ＰｏｗｅｒＯｎリセットの実行履歴は保持される。また、ＢＩＳＴコントローラ６０内のレジスタに格納されたＬＢＩＳＴ結果も保持される。
【００３２】
次いでマイコン１１は、ソフトウェア初期化処理を実行する（ステップＳ１１）。ソフトウェア初期化処理は、ＰｏｗｅｒＯｎリセットにともなって実行される処理である。このソフトウェア初期化処理については、ＭＢＩＳＴ処理後のソフトウェア初期化処理と合わせて、図６にて説明する。図６に示す処理の完了により、図２に示すソフトウェア初期化処理（ステップＳ１１）が終了する。図６の内容については、後述する。
【００３３】
次いでマイコン１１は、通常制御処理を実行する（ステップＳ１２）。ＣＰＵ２１０は、通常制御処理として、たとえば燃料噴射制御処理を実行する。
【００３４】
次いで、ＣＰＵ２１０は、ＩＧ信号がオンからオフに切り替わったか否かを判定する（ステップＳ１３）。オフに切り替わっていないと判定している間は、ステップＳ１２の通常制御処理を繰り返す。一方、ＩＧ信号がオフに切り替わったと判定すると、マイコン１１の電源オフに向けて、先ずマイコン１１は、シャットダウン処理を実行する（ステップＳ１４）。シャットダウン処理については、図４にて説明する。
【００３５】
ＩＧ信号がオフに切り替わったと判定すると、ＣＰＵ２１０は、図４に示すように、ＭＢＩＳＴ実行履歴に実行ありが設定されているか否かを判定する（ステップＳ４０）。本実施形態では、ＲＡＭ４０からＭＢＩＳＴ実行履歴を読み出して、ＩＧ信号がオンされた後に、ＭＢＩＳＴが実行されたか否かを判定する。たとえば実行ありの場合に「１」が設定され、実行なしの場合に「０」が設定されている。
【００３６】
ステップＳ４０で、実行なしと判定した場合、後述するステップＳ１５でＭＢＩＳＴを実行させるために、ＲＡＭ４０のＭＢＩＳＴ要求に要求ありを設定し（ステップＳ４１）、シャットダウン処理を終了する。一方、ステップＳ４０でＭＢＩＳＴの実行ありと判定した場合、ステップＳ４１の処理を実行せずに、シャットダウン処理を終了する。上記した処理の完了により、図４に示すシャットダウン処理が終了する。
【００３７】
次いでマイコン１１は、ＭＢＩＳＴ処理を実行する（ステップＳ１５）。ＭＢＩＳＴ処理が、シャットダウン時実行部に相当する。ＭＢＩＳＴ処理については、図５にて説明する。
【００３８】
図５に示すように、ＣＰＵ２１０は、先ずＩ／Ｏポート１００の設定を行う（ステップＳ６０）。具体的には、Ｉ／Ｏポート１００の設定を、ＰｏｗｅｒＯｎリセットによるマイコン１１の初期化後の状態とする。換言すれば、Ｉ／Ｏポート１００を安全側へ設定し、これによりアクチュエータ２０２への出力を制限する。
【００３９】
次いで、ＣＰＵ２１０は、ＲＡＭ４０のＭＢＩＳＴ要求に要求ありが設定されているか否かを判定する（ステップＳ６１）。たとえば要求ありの場合に「１」が設定され、要求なしの場合に「０」が設定されている。
【００４０】
要求ありと判定した場合、ＣＰＵ２１０は、ステップＳ６２〜Ｓ６５の処理を実行する。ステップＳ６２では、監視タイマ９０の動作を停止させる。ステップＳ６３では、命令キャッシュ２２１，３２１を無効化する。すなわち、命令キャッシュ２２１，３２１に一時的に格納されたプログラム命令を無効化する。ステップＳ６４では、ＤＭＡコントローラ７０の動作を停止させる。ステップＳ６５では、タイマユニット８０の動作を停止させる。
【００４１】
ステップＳ６５の処理が終了すると、ＣＰＵ２１０は、ＢＩＳＴコントローラ６０にＭＢＩＳＴの実行を指示し、これにより、ＢＩＳＴコントローラ６０がＭＢＩＳＴを開始する（ステップＳ６６）。次いで、ＢＩＳＴコントローラ６０は、ＭＢＩＳＴが完了したか否かを判定する（ステップＳ６７）。ＭＢＩＳＴが完了したと判定すると、ＢＩＳＴコントローラ６０は、ＭＢＩＳＴの診断結果であるＭＢＩＳＴ結果を、ＢＩＳＴコントローラ６０内のレジスタに格納する（ステップＳ６８）。
【００４２】
本実施形態では、命令キャッシュ２２１を無効化するため、ＣＰＵ２１０は、ＲＯＭ５０から値を直接読み出して、ＭＢＩＳＴを実行する。また、ＭＢＩＳＴを実行するプログラムが、関数を使用しないプログラム構成とされている。すなわち、スタック領域２２０ａ，３２０ａを使用しなくてもよいプログラムとされている。このため、スタック領域２２０ａ，３２０ａについても、ＭＢＩＳＴの対象とすることができる。
【００４３】
ステップＳ６８の処理が終了すると、リセット回路により、マイコン１１のリセットが実行される（ステップＳ６９）。ＭＢＩＳＴ処理でのリセット（ＭＢＩＳＴリセット）により、マイコン１１が初期化されるとともに、ＭＢＩＳＴリセットの実行履歴に実行ありが設定される。たとえば実行ありの場合に「１」が設定され、実行なしの場合に「０」が設定される。リセットの実行履歴は、上記したようにマイコン１１のリセット用の領域、たとえばレジスタに設定される。なお、ステップＳ６１において、ＭＢＩＳＴ要求に要求ありが設定されていないと判定した場合には、ステップＳ７０の電源オフ処理に移行し、マイコン１１は、一連の処理を終了する。上記した処理の完了により、図５に示すＭＢＩＳＴ処理が終了する。
【００４４】
次いでマイコン１１は、ソフトウェア初期化処理を実行する（ステップＳ１６）。ソフトウェア初期化処理は、ＭＢＩＳＴリセットにともなって実行される処理である。このソフトウェア初期化処理についても、図６にて説明する。図６に示す処理の完了により、ステップＳ１６のソフトウェア初期化処理が終了する。図６の内容については、後述する。
【００４５】
次いでＣＰＵ２１０は、電源回路１４に対してマイコン１１の電源オフを指示し（ステップＳ１７）、一連の処理を終了する。
【００４６】
次に、ソフトウェア初期化処理について説明する。
【００４７】
図６に示すように、先ずマイコン１１が、このソフトウェア初期化処理の前に実行されたリセット処理が、ＰｏｗｅｒＯｎリセット又はＭＢＩＳＴリセットであるか否かを判定する（ステップＳ８０）。ＣＰＵ２１０は、リセットの実行履歴を読み出して、ＰｏｗｅｒＯｎリセット又はＭＢＩＳＴリセットであるか否かを判定する。
【００４８】
ステップＳ１１のソフトウェア初期化処理の場合、ＰｏｗｅｒＯｎリセットの実行履歴に実行ありが設定されているため、ＣＰＵ２１０は、ＰｏｗｅｒＯｎリセットであると判定することができる。なお、電源オフ、又は、ＰｏｗｅｒＯｎリセットにともなうマイコン１１の初期化により、ＭＢＩＳＴリセットの実行履歴はクリアされる。
【００４９】
ステップＳ１６のソフトウェア初期化処理の場合、ＭＢＩＳＴリセットの実行履歴に実行ありが設定されているため、ＣＰＵ２１０は、ＭＢＩＳＴリセットであると判定することができる。なお、ＭＢＩＳＴリセットにともなうマイコン１１の初期化、又は、電源オフにより、ＰｏｗｅｒＯｎリセットの実行履歴はクリアされる。
【００５０】
ステップＳ８０でＹＥＳ判定の場合、次いでＣＰＵ２１０は、メモリクリアを実行する（ステップＳ８１）。メモリクリアとは、上記したメモリ部（ＲＡＭ）のデータのうち、ＰｏｗｅｒＯｎリセット及びＭＢＩＳＴリセット以外の通常リセットを跨いで保持されるデータをクリアする。本実施形態では、通常リセットとして、監視タイマ９０によるリセット、すなわちＷＤＣリセットを含む。
【００５１】
メモリクリアの実行後、ＣＰＵ２１０は、ＭＢＩＳＴリセットか否かを判定する（ステップＳ８２）。ＣＰＵ２１０は、ＭＢＩＳＴリセットの実行履歴に基づいて、ＭＢＩＳＴリセットか否かを判定することができる。なお、ステップＳ８０において、ＰｏｗｅｒＯｎリセット、ＭＢＩＳＴリセットのいずれでもないと判定した場合、すなわち、通常リセットであると判定した場合、ステップＳ８１の処理を実行せずに、ステップＳ８２の処理を実行する。
【００５２】
ＣＰＵ２１０は、ＭＢＩＳＴリセットであると判定した場合に、ＲＡＭ４０のＭＢＩＳＴ実行履歴に実行ありを設定し（ステップＳ８３）、ＭＢＩＳＴリセットではないと判定した場合に、ＭＢＩＳＴ実行履歴に実行なしを設定する（ステップＳ８４）。
【００５３】
次いで、ＣＰＵ２１０は、ＢＩＳＴ結果をＢＩＳＴコントローラ１６のレジスタから読み出して、ＲＯＭ５０に格納する（ステップＳ８５）。ステップＳ８５の処理により、ＲＯＭ５０のＢＩＳＴ結果が更新される。
【００５４】
ＣＰＵ２１０は、ステップＳ１１のソフトウェア初期化処理時には、ステップＳ１０で実行したＬＢＩＳＴの診断結果であるＬＢＩＳＴ結果を格納する。また、ステップＳ１６のソフトウェア初期化処理時には、ステップＳ１５で実行したＭＢＩＳＴの診断結果であるＭＢＩＳＴ結果を格納する。したがって、ステップＳ１７で電源がオフされ、ＰｏｗｅｒＯｎリセットによりマイコン１１が初期化されても、ＭＢＩＳＴ結果が保持される。
【００５５】
次いで、ＣＰＵ２１０は、ＩＧ信号がオンか否かを判定する（ステップＳ８６）。すなわち、イグニッションスイッチ２００がオンされているか否かを判定する。
【００５６】
ステップＳ１１のソフトウェア初期化処理の場合、ＩＧ信号がオンしていると判定される。次いでＣＰＵ２１０は、ＢＩＳＴ結果が異常か否かを判定する（ステップＳ８７）。ＣＰＵ２１０は、ＲＯＭ５０からＬＢＩＳＴ結果及びＭＢＩＳＴ結果を読み出して、異常か否かを判定する。ＬＢＩＳＴ結果は今回値であり、ＭＢＩＳＴ結果は前回値である。
【００５７】
異常ありと判定すると、次いでＣＰＵ２１０は、異常時処理を実行する（ステップＳ８８）。ＣＰＵ２１０は、たとえばＩ／Ｏポート１００及び出力回路１３を介して、報知部２０３に異常を示す信号を出力する。これにより、報知部２０３である警告灯が点灯する。このようにして、報知部２０３はユーザに異常を報知する。なお、報知部２０３は警告灯に限定されない。車載モニタへの表示や音声等によって報知することもできる。また、異常時処置も報知に限定されない。ＣＰＵ２１０は、たとえば車両のフェールセーフ処理の実行を指示してもよい。
【００５８】
異常時処理が終了すると、マイコン１１は、ステップＳ１１のソフトウェア初期化処理を終了する。なお、ステップＳ８７において、ＢＩＳＴ結果が異常ではないと判定した場合、ステップＳ８８の処理を実行せずに、一連の処理を終了する。また、ステップＳ１６のソフトウェア初期化処理の場合、ステップＳ８６において、ＩＧ信号がオンではないと判定される。この場合、ステップＳ８７，Ｓ８８の処理を実行せずに、一連の処理を終了する。
【００５９】
次に、本実施形態の電子制御装置１０の効果について説明する。
【００６０】
本実施形態では、ＢＩＳＴの実行により、機能安全要求を満たすことができる。また、複数のＢＩＳＴ対象のすべてについてマイコン１１の起動時にＢＩＳＴを実行するのではなく、起動時とシャットダウン時に分けてＢＩＳＴを実行する。したがって、システムの起動時間を短くすることができる。以上により、機能安全要求を満たしつつ、システムの起動時間を短くすることができる。
【００６１】
特に本実施形態では、マイコン１１の起動時に、論理回路部２１，３１，７１，８１，９０，１００を診断対象とするＬＢＩＳＴ（ロジックＢＩＳＴ）を実行する。また、マイコン１１のシャットダウン時に、メモリ部２２，３２，４０，７２，８２を診断対象とするＭＢＩＳＴ（メモリＢＩＳＴ）を実行する。このように、通常制御を実行する前の起動時においてＬＢＩＳＴを実行するため、安全性を高めることができる。また、シャットダウン時にＭＢＩＳＴを実行するため、起動時間を短縮することができる。メモリＢＩＳＴによりマイコン１１がリセットされるため、ＲＡＭの値は書き換えられる。しかしながらシャットダウン時に実行するため、多くのメモリ部をＢＩＳＴ対象とすることができる。
【００６２】
図７は、マイコン１１の電源オンからオフまでを示すタイミングチャートを示している。本実施形態では、イグニッションスイッチ２００がオンされてマイコン１１に電源が供給され、ＰｏｗｅｒＯｎリセットによりマイコン１１が初期化された時刻ｔ１において、ＬＢＩＳＴが開始される。また、ＬＢＩＳＴに次いでソフトウェア初期化が実行される。そして、ソフトウェア初期化が完了する時刻ｔ２において、通常制御が開始される。
【００６３】
また、時刻ｔ３でイグニッションスイッチ２００がオフされると、シャットダウン処理が実行される。シャットダウン処理が終了すると、次いでＭＢＩＳＴが実行され、ＭＢＩＳＴの終了後に、ソフトウェア初期化が実行される。ソフトウェア初期化が完了すると、電源オフ処理を経て、時刻ｔ４でマイコン１１の電源がオフされる。
【００６４】
このように、起動時には、ＬＢＩＳＴのみを実行する。したがって、起動時にＬＢＩＳＴとＭＢＩＳＴの両方を実行する従来の構成に較べて、図７に示すように起動時間を短縮することができる。たとえばＬＢＩＳＴにかかる時間を１５ｍｓ、ＭＢＩＳＴにかかる時間を１５ｍｓとすると、起動時間を１５ｍｓ分、短縮することができる。
【００６５】
本実施形態では、キャッシュメモリ２２，３２に、スタック領域２２０ａ，３２０ａが設けられている。そして、ＭＢＩＳＴを実行するプログラムが、関数を使用しないプログラム構成とされている。このように、スタック領域２２０ａ，３２０ａを使用しなくてもよいプログラムとされているため、スタック領域２２０ａ，３２０ａについても、ＭＢＩＳＴの対象とすることができる。これにより、故障検出率を向上することができる。なお、スタック領域が設けられるのはキャッシュメモリ２２，３２に限定されない。他のメモリ部に設けられた構成についても同様の効果を奏することができる。
【００６６】
本実施形態では、ＭＢＩＳＴを実行する際に、命令キャッシュ２２１，３２１を無効化し、ＲＯＭ５０から直接的に値を読み出して、ＭＢＩＳＴを実行する。このため、キャッシュメモリ２２，３２、特に命令キャッシュ２２１，３２１についてもＭＢＩＳＴを実行することができる。これにより、故障検出率を向上することができる。また、ＭＢＩＳＴの対象である命令キャッシュ２２１を無効化するため、誤検出を抑制することができる。
【００６７】
本実施形態では、ＭＢＩＳＴを実行する際に、ＤＭＡコントローラ７０を停止させてから、ＭＢＩＳＴを実行する。このため、ＤＭＡコントローラ７０のメモリ７２についてもＭＢＩＳＴを実行することができる。ＭＢＩＳＴの対象であるＤＭＡコントローラ７０を停止させるため、誤検出を抑制することができる。
【００６８】
本実施形態では、ＭＢＩＳＴを実行する際に、タイマユニット８０を停止させてから、ＭＢＩＳＴを実行する。このため、タイマユニット８０のメモリ８２についてもＭＢＩＳＴを実行することができる。ＭＢＩＳＴの対象であるタイマユニット８０を停止させるため、誤検出を抑制することができる。
【００６９】
本実施形態では、ＭＢＩＳＴを実行する際に、監視タイマ９０を停止させてから、ＭＢＩＳＴを実行する。これにより、誤ってＷＤＣリセットが実行されるのを抑制することができる。
【００７０】
この明細書の開示は、例示された実施形態に制限されない。開示は、例示された実施形態と、それらに基づく当業者による変形態様を包含する。たとえば、開示は、実施形態において示された要素の組み合わせに限定されない。開示は、多様な組み合わせによって実施可能である。開示される技術的範囲は、実施形態の記載に限定されない。開示されるいくつかの技術的範囲は、特許請求の範囲の記載によって示され、さらに特許請求の範囲の記載と均等の意味及び範囲内でのすべての変更を含むものと解されるべきである。
【００７１】
マイコン１１の構成は、上記した例に限定されない。マイコン１１が監視タイマ９０を備える例を示したが、これに限定されない。電子制御装置１０が、マイコン１１とは別に監視タイマの機能を有する監視ＩＣを備えてもよい。
【００７２】
マイコン１１が、複数の演算部として、第１コア２０及び第２コア３０を有する例を示したが、これに限定されない。マルチコア構成としてはこれに限定されず、３つ以上のコアを有してもよい。また、マルチコアに限定されず、シングルコア構成のマイコン１１を採用することもできる。
【００７３】
マイコン１１の起動時にＬＢＩＳＴを実行し、シャットダウン時にＭＢＩＳＴを実行する例を示したが、これに限定されない。複数のＢＩＳＴ対象の一部について起動時にＢＩＳＴを実行し、残りのＢＩＳＴ対象についてシャットダウン時にＢＩＳＴを実行すればよい。
【符号の説明】
【００７４】
１０…電子制御装置、１１…マイコン、１２…入力回路、１３…出力回路、１４…電源回路、２０…第１コア、２１…論理回路、２１０…ＣＰＵ、２１１…レジスタ、２２…キャッシュメモリ、２２０…データキャッシュ、２２０ａ…スタック領域、２２１…命令キャッシュ、３０…第２コア、３１…論理回路、３１０…ＣＰＵ、３１１…レジスタ、３２…キャッシュメモリ、３２０…データキャッシュ、３２０ａ…スタック領域、３２１…命令キャッシュ、４０…ＲＡＭ、５０…ＲＯＭ、６０…ＢＩＳＴコントローラ、７０…ＤＭＡコントローラ、７１…論理回路、７２…メモリ、８０…タイマユニット、８１…論理回路、８２…メモリ、９０…監視タイマ、１００…Ｉ／Ｏポート、１１０…バス、２００…イグニッションスイッチ、２０１…センサ、２０２…アクチュエータ、２０３…報知部
【図１】
2019114244.tif 000003
【図２】
2019114244.tif 000004
【図３】
2019114244.tif 000005
【図４】
2019114244.tif 000006
【図５】
2019114244.tif 000007
【図６】
2019114244.tif 000008
【図７】
2019114244.tif 000009