(57)【要約】【課題】ソフトのメンテナンス性や拡張性を向上できる電子制御装置を提供すること。【解決手段】電子制御装置は、ＣＰＵやメモリを備えたマイコン、第１装置〜第３装置、通信部などを備えている。マイコンは、複数の処理部Ｐ１〜Ｐ４と、シーケンス管理部１３とを備えている。複数の処理部Ｐ１〜Ｐ４は、起動時における複数の処理を実行する部位である。シーケンス管理部１３は、関数がコールされると、複数の処理部Ｐ１〜Ｐ４の実行を開始し、複数の処理部Ｐ１〜Ｐ４の実行順を管理する。そして、シーケンス管理部１３は、各処理部Ｐ１〜Ｐ４の実行毎に処理結果を取得して、処理結果に応じて、次に実行させる次処理部を決定し、決定した次処理部に対して処理要求を出力することで実行を指示する。【選択図】図２
2020087242.tif 000002
【特許請求の範囲】
【請求項１】
起動時における複数の処理と終了時における複数の処理の少なくとも一方を実行する複数の処理部（Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３、Ｐ２１〜Ｐ２５）と、
関数がコールされると、複数の前記処理部の実行を開始し、複数の前記処理部の実行順を管理するものであり、各処理部の実行毎に処理結果を取得して、前記処理結果に応じて、次に実行させる次処理部を決定し、決定した前記次処理部に対して実行を指示するシーケンス管理部（１３）と、を備えている電子制御装置。
【請求項２】
前記シーケンス管理部は、複数の前記処理部における一つである対象処理部の前記処理結果が異常であった場合、複数の前記処理部における前記実行順が前記対象処理部よりも前の先行処理部を前記次処理部に決定し、決定した前記次処理部に対して実行を指示する請求項１に記載の電子制御装置。
【請求項３】
前記シーケンス管理部は、複数の前記処理部における一つである対象処理部の前記処理結果が異常であり、且つ、前記処理結果によって、複数の前記処理部における前記実行順が前記対象処理部よりも後の後行処理部の実行が不要となった場合は、前記次処理部を決定することなく、複数の前記処理部での処理を終了させる請求項１に記載の電子制御装置。
【請求項４】
前記シーケンス管理部は、複数の前記処理部における一つである対象処理部の前記処理結果が異常であった場合、複数の前記処理部における前記対象処理部に相関する関連処理部を前記次処理部に決定し、決定した前記次処理部に対して実行を指示する請求項１に記載の電子制御装置。
【請求項５】
前記シーケンス管理部は、前記処理部に対する実行の指示として、予め決められた複数の指示情報の一つを出力することで、前記処理部に対して実行を指示し、
前記処理部は、予め決められた複数の結果情報のうちの一つを出力することで、前記処理結果を伝える請求項１乃至４のいずれか１項に記載の電子制御装置。
【請求項６】
同一の前記処理部における前記処理結果が異常である場合、異常通知を行うダイアグ部（Ｄ１〜Ｄ４、Ｄ１１〜Ｄ１３）を、さらに備えている請求項１乃至４のいずれか１項に記載の電子制御装置。
【請求項７】
外部電子装置と通信するための通信部を、さらに備えており、
前記ダイアグ部は、前記通信部を介して前記外部電子装置に対して異常通知を行う請求項６に記載の電子制御装置。
【請求項８】
前記ダイアグ部は、異常である回数が所定回数に達した場合に異常通知を行う請求項６又は７に記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、電子制御装置に関する。
【背景技術】
【０００２】
従来、電子制御装置の一例として、特許文献１に開示されたエンジンＥＣＵがある。エンジンＥＣＵは、イグニッションが投入されることによって動作を開始すると各種初期化を行う。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−２３０８６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、電子制御装置は、起動時のソフト処理において、起動時用の関数をコールするだけで、起動時に必要な一連の処理を実行することが考えられる。同様に、電子制御装置は、終了時のソフト処理において、終了時用の関数をコールするだけで、終了時に必要な一連の処理を実行することが考えられる。
【０００５】
しかしながら、電子制御装置は、上記一連の処理での異常発生や仕様の変更などに伴って処理内容を変更した場合、処理内容の変更だけでなく、一連の処理を実行させるための関数に関しても変更する必要がある。このため電子制御装置は、ソフトのメンテナンス性や拡張性が低いという問題がある。
【０００６】
本開示は、上記問題点に鑑みなされたものであり、ソフトのメンテナンス性や拡張性を向上できる電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために本開示は、
起動時における複数の処理と終了時における複数の処理の少なくとも一方を実行する複数の処理部（Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３）と、
関数がコールされると、複数の処理部の実行を開始し、複数の処理部の実行順を管理するものであり、各処理部の実行毎に処理結果を取得して、処理結果に応じて、次に実行させる次処理部を決定し、決定した次処理部に対して実行を指示するシーケンス管理部（１３）と、を備えていることを特徴とする。
【０００８】
このように、本開示は、関数がコールされると、複数の処理部の実行を開始し、複数の処理部の実行順を管理するシーケンス管理部を備えている。シーケンス管理部は、各処理部の実行毎に処理結果を取得するため、その処理結果に応じて複数の処理部における次に実行させる次処理部を決定することができる。そして、本開示は、決定した次処理部に対して実行を指示するため、処理内容を変更した場合であっても、複数の処理部の実行を開始するための関数を変更する必要がない。よって、本開示は、ソフトのメンテナンス性や拡張性を向上することができる。
【０００９】
なお、特許請求の範囲、及びこの項に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本開示の技術的範囲を限定するものではない。
【図面の簡単な説明】
【００１０】
【図１】実施形態における電子制御装置の概略構成を示すブロック図である。
【図２】実施形態におけるマイコンの概略構成を示す機能ブロック図である。
【図３】実施形態におけるマイコンの処理動作を示すフローチャートである。
【図４】実施形態におけるマイコンのＡ以降の処理動作を示すフローチャートである。
【図５】実施形態におけるマイコンのＢ以降の処理動作を示すフローチャートである。
【図６】実施形態におけるマイコンのＣ以降の処理動作を示すフローチャートである。
【図７】実施形態における各処理部の処理動作を示すフローチャートである。
【図８】実施形態におけるマイコンの処理動作を示すタイムチャートである。
【発明を実施するための形態】
【００１１】
以下において、図面を参照しながら、本開示を実施するための形態を説明する。
【００１２】
まず、図１、図２を用いて、電子制御装置１００の概略構成に関して説明する。図１に示すように、電子制御装置１００は、マイコン１０、第１装置２１、第２装置２２、第３装置２３、通信部３０などを備えている。マイコン１０、第１装置２１、第２装置２２、第３装置２３、通信部３０は、電気的に接続されている。
【００１３】
本実施形態では、一例として、電子制御装置１００を車両に搭載された車載制御装置に適用する。よって、電子制御装置１００は、車両に搭載された車載機器を制御する。このため、電子制御装置１００は、マイコン１０が通常処理を行うことで、車載機器を制御すると言える。なお、電子制御装置１００は、車両以外の制御装置であっても適用することができる。
【００１４】
電子制御装置１００は、動作を停止している状態で電源の供給が開示されると、起動時処理を実行した後に車載機器に対する各種制御を実行する。また、電子制御装置１００は、電源が供給されて起動している状態で動作終了の条件を満たすと、終了時処理を実行した後にマイコン１０などへの電源の供給を停止する。
【００１５】
マイコン１０は、処理部としてのＣＰＵ１１、記憶装置としてのメモリ１２などを備えている。メモリ１２には、ＣＰＵ１１が読み取り可能なプログラムやデータが記憶されている。そして、マイコン１０は、ＣＰＵ１１がメモリ１２に記憶されているプログラムを実行しつつ、メモリ１２に記憶されているデータや通信部３０などから得たデータなどを用いて演算処理を行う。このようにして、マイコン１０は、起動時処理及び終了時処理を行なうとともに、各種制御を行うための制御信号を出力する。
【００１６】
マイコン１０は、起動時処理として、例えば、初期設定や起動時診断などを行う。マイコン１０は、終了時処理として、例えば、終了時診断などを行う。
【００１７】
また、図２に示すように、マイコン１０は、機能ブロックとして、シーケンス管理部１３と、複数の処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３とを備えている。第１処理部Ｐ１、第２処理部Ｐ２、第３処理部Ｐ３、第４処理部Ｐ４は、起動時における複数の処理を実行する複数の処理部に相当する。よって、マイコン１０は、第１処理部Ｐ１、第２処理部Ｐ２、第３処理部Ｐ３、第４処理部Ｐ４によって起動時処理を行う。複数の処理部Ｐ１〜Ｐ４のそれぞれが実行する処理は、起動時における一連の処理とみなすことができる。
【００１８】
一方、第１１処理部Ｐ１１、第１２処理部Ｐ１２、第１３処理部Ｐ１３は、終了時における複数の処理を実行する複数の処理部に相当する。よって、マイコン１０は、第１１処理部Ｐ１１、第１２処理部Ｐ１２、第１３処理部Ｐ１３によって終了時処理を行う。複数の処理部Ｐ１１〜Ｐ１３のそれぞれが実行する処理は、終了時における一連の処理とみなすことができる。
【００１９】
なお、起動時における処理部の個数、及び終了時における処理部の個数は、上記に限定されず、それぞれ複数個備えていればよい。このように、電子制御装置１００は、シーケンス管理部１３と、シーケンスに応じて必要な処理を行う処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３とが分けられている。
【００２０】
なお、各処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３が実行する処理は、それぞれ第１〜第４処理、第１１処理〜第１３処理と言える。よって、例えば、第２処理部Ｐ２は、第２処理を実行する。
【００２１】
シーケンス管理部１３は、マイコン１０が実行するシーケンスを管理する。なお、本実施形態では、一例として、予め決められた実行順である第１〜第４シーケンス、第１１〜第１３シーケンスを管理するシーケンス管理部１３を採用している。このため、シーケンス管理部１３は、現在のシーケンスが第１〜第４シーケンス、第１１〜第１３シーケンスのいずれであるかを把握することができる。また、シーケンス管理部１３は、起動時処理及び終了時処理のシーケンスだけではなく、起動時処理及び終了時処理とは異なる通常処理のシーケンスも管理してもよい。通常処理のシーケンスには、通信部３０の起動シーケンスなども含んでいる。
【００２２】
また、第１〜第４シーケンスのそれぞれは、第１処理部Ｐ１〜第４処理部Ｐ４のそれぞれが実行する処理に対応している。同様に、第１１〜第１３シーケンスのそれぞれは、第１１処理部Ｐ１１〜第１３処理部Ｐ１３のそれぞれが実行する処理に対応している。よって、マイコン１０は、例えば、第２シーケンスの場合、第２処理部Ｐ２が処理を実行し、第１１シーケンスの場合、第１１処理部Ｐ１１が処理を実行する。
【００２３】
シーケンス管理部１３は、起動時処理の実行を示す関数がコールされると、複数の処理部Ｐ１〜Ｐ４の実行を開始し、第１処理部Ｐ１〜第４処理部Ｐ４の実行順を管理する。同様に、シーケンス管理部１３は、終了時処理の実行を示す関数がコールされると、複数の処理部Ｐ１１〜Ｐ１３の実行を開始し、第１１処理部Ｐ１１〜第１３処理部Ｐ１３の実行順を管理する。
【００２４】
また、シーケンス管理部１３は、各処理部Ｐ１〜Ｐ４の実行毎に処理結果を取得して、処理結果に応じて、複数の処理部Ｐ１〜Ｐ４における次に実行させる次処理部を決定（判断）する。同様に、シーケンス管理部１３は、各処理部Ｐ１１〜Ｐ１３の実行毎に処理結果を取得して、処理結果に応じて、複数の処理部Ｐ１１〜Ｐ１３における次に実行させる次処理部を決定する。
【００２５】
例えば、シーケンス管理部１３は、処理結果に基づいて、次のシーケンスを実施、現在のシーケンスに留まる、任意のシーケンスに遷移のいずれかを判断する。そして、シーケンス管理部１３は、決定したシーケンス、言い換えると、決定した次処理部に対して実行を指示（要求）する。なお、本実施形態では、一例として、後程説明する複数のダイアグ部Ｄ１〜Ｄ４、Ｄ１１〜Ｄ１３を介して処理結果を取得するシーケンス管理部１３を採用している。このように、電子制御装置１００は、各処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３の処理結果をシーケンス管理部１３に通知し、シーケンス管理部１３が処理結果に応じて次に実施する処理（シーケンス）へ状態を遷移させる。
【００２６】
具体的には、シーケンス管理部１３は、各処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３の処理結果が正常である場合、次のシーケンスを実施と判断し、次のシーケンスに対応する処理部に実行を要求する。この場合、シーケンス管理部１３は、予め決められた第１シーケンス、第２シーケンス、第３シーケンス、第４シーケンスの順番で、各処理部Ｐ１〜Ｐ４に処理を実行させることになる。同様に、シーケンス管理部１３は、予め決められた第１１シーケンス、第１２シーケンス、第１３シーケンスの順番で、各処理部Ｐ１１〜Ｐ１３に処理を実行させることになる。
【００２７】
また、シーケンス管理部１３は、各処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３の処理結果が異常である場合、現在のシーケンスに留まると判断し、現在のシーケンスに対応する処理部に実行を要求する。この場合、シーケンス管理部１３は、各処理部Ｐ１〜Ｐ４の処理結果で異常があった場合、処理結果が異常であった処理部に再度処理を実行させるようにシーケンスを設定する。同様に、シーケンス管理部１３は、各処理部Ｐ１１〜Ｐ１３の処理結果で異常があった場合、処理結果が異常であった処理部に再度処理を実行させるようにシーケンスを設定する。なお、本実施形態では、複数の処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３における一部の処理部のみに関して、処理結果が異常である場合に、現在のシーケンスに留まると判断する例を採用する。
【００２８】
また、シーケンス管理部１３は、各処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３の処理結果が異常である場合、任意のシーケンスに遷移すると判断し、予め決められたシーケンスに対応する処理部に実行を要求する。遷移させる任意のシーケンスは、複数の処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３に予め関連付けられている。この場合、シーケンス管理部１３は、各処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３の処理結果で異常があった場合、処理結果が異常であった処理部に関連付けられた処理部を実行させるようにシーケンスを設定する。なお、本実施形態では、複数の処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３における一部の処理部のみに関して、処理結果が異常である場合に、任意のシーケンスに遷移すると判断する例を採用する。
【００２９】
しかしながら、本開示は、これに限定されない。本開示は、各処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３の処理結果が異常であった場合、現在のシーケンスに留まるか、任意のシーケンスに遷移するかのいずれか一方であってもよい。つまり、シーケンス管理部１３は、各処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３の処理結果が異常であった場合、任意のシーケンスに遷移することなく、現在のシーケンスに留まると判断する。もしくは、シーケンス管理部１３は、各処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３の処理結果が異常であった場合、現在のシーケンスに留まることなく、任意のシーケンスに遷移すると判断する。
【００３０】
このように、本実施形態では、各処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３が予め決められた複数の結果情報のうちの一つを出力することで、処理結果をシーケンス管理部１３に伝える例を採用している。つまり、各処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３は、結果情報として、正常か異常かのいずれか一つを出力することで、シーケンス管理部１３に対して処理結果を伝える。
【００３１】
そして、本実施形態では、各処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３に対する実行の指示として、予め決められた複数の指示情報の一つを出力することで、各処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３に対して実行を指示するシーケンス管理部１３を採用している。つまり、シーケンス管理部１３は、指示情報として、次のシーケンスを実施、現在のシーケンスに留まる、任意のシーケンスに遷移のいずれか一つを出力することで、各処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３に対して実行を指示する。
【００３２】
これによって、電子制御装置１００は、処理の変更を要求された場合に、その要求に対して容易に対応することが可能となる。つまり、電子制御装置１００は、各処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３の処理内容を変更した場合であっても、シーケンス管理部１３を変更する必要がないので好ましい。
【００３３】
なお、指示情報は、処理要求と言い換えることができる。本実施形態では、図２に示すように、各処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３に対する実行の指示として、第１〜第４処理要求、第１１〜第１３処理要求を出力するシーケンス管理部１３を採用している。さらに、例えばシーケンス管理部１３が第２処理要求を出力した場合、各処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３は、第２処理要求を取得することができる。しかしながら、第２処理要求は、第２処理部Ｐ２に対する要求である。このため、第２処理部Ｐ２は、第２処理要求に応じて処理を実行する。一方、第１処理部Ｐ１や第３処理部Ｐ３など第２処理部Ｐ２以外の処理部は、第２処理要求に応じて処理を実行することはない。
【００３４】
また、シーケンス管理部１３は、起動時処理の実行を示す関数がコールされて、起動時処理における各処理部Ｐ１〜Ｐ４が正常に終了すると、起動時処理や終了時処理とは異なる通常処理の実行を要求する。同様に、シーケンス管理部１３は、終了時処理の実行を示す関数がコールされると、終了時処理における各処理部Ｐ１１〜Ｐ１３が正常に終了すると、マイコン１０などへの電源の供給を停止する。
【００３５】
さらに、本実施形態では、図２に示すように、機能ブロックとして、複数のダイアグ部Ｄ１〜Ｄ４、Ｄ１１〜Ｄ１３を備えたマイコン１０を採用している。マイコン１０は、各処理部Ｐ１〜Ｐ４に対応して、第１ダイアグ部Ｄ１、第２ダイアグ部Ｄ２、第３ダイアグ部Ｄ３、第４ダイアグ部Ｄ４が設けられている。また、マイコン１０は、各処理部Ｐ１１〜Ｐ１３に対応して、第１１ダイアグ部Ｄ１１、第１２ダイアグ部Ｄ１２、第１３ダイアグ部Ｄ１３が設けられている。例えば、第２ダイアグ部Ｄ２は、第２処理部Ｐ２に対応して設けられている。また、第１１ダイアグ部Ｄ１１は、第１１処理部Ｐ１１に対応して設けられている。
【００３６】
各ダイアグ部Ｄ１〜Ｄ４、Ｄ１１〜Ｄ１３は、処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３の処理結果を取得して、異常回数のカウント、異常回数と異常通知閾値との比較、異常通知などを行う。また、各ダイアグ部Ｄ１〜Ｄ４、Ｄ１１〜Ｄ１３は、処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３から取得した処理結果をシーケンス管理部１３へ出力する。
【００３７】
なお、本実施形態では、複数の処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３のそれぞれに対応して、複数のダイアグ部Ｄ１〜Ｄ４、Ｄ１１〜Ｄ１３が設けられたマイコン１０を採用している。しかしながら、本開示は、これに限定されない。例えば、マイコン１０は、処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３に対して一つのダイアグ部が設けられていてもよい。また、マイコン１０は、処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３のうちのいくつかに共通に設けられた複数のダイアグ部が設けられていてもよい。さらに、マイコン１０は、処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３のうちのいくつかに共通に設けられたダイアグ部と、処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３のうちの一つに対して設けられたダイアグ部とを備えていてもよい。
【００３８】
また、本開示は、各ダイアグ部Ｄ１〜Ｄ４、Ｄ１１〜Ｄ１３を備えていないマイコン１０であっても採用できる。この場合、シーケンス管理部１３は、各処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３から処理結果を直接取得することになる。
【００３９】
第１装置２１、第２装置２２、第３装置２３は、各処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３の実行対象である内部装置である。第１装置２１、第２装置２２、第３装置２３は、マイコン１０と電気的に接続されている。マイコン１０は、例えば、複数の処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３が装置２１〜２３に関する処理を行う。装置２１〜２３としては、例えば、ＡＳＩＣ、Ｉ／Ｏ装置、ＡＤ変換器、フラッシュメモリ（外部メモリ）などを採用できる。また、Ｉ／Ｏ装置は、複数のＩ／Ｏポートを含んでいる。各Ｉ／Ｏポートには、電子制御装置１００の外部に設けられたセンサなどが接続される。
【００４０】
なお、本実施形態では、三つの装置２１〜２３を備えた電子制御装置１００を採用している。しかしながら、本開示は、これに限定されず、二つ以下の装置を備えていてもよいし、四つ以上の装置を備えていてもよい。
【００４１】
通信部３０は、電子制御装置１００の外部に設けられた外部電子装置と通信線を介して接続されている。よって、電子制御装置１００は、通信部３０を介して外部電子装置と通信可能に構成されている。しかしながら、電子制御装置１００は、通信部３０を備えていなくてもよい。なお、外部電子装置は、上位電子制御装置や外部電子制御装置とも言える。
【００４２】
ここで、図３〜図７のフローチャートを用いて、電子制御装置１００（マイコン１０）の処理動作に関して説明する。まず、図３〜図６を用いて、シーケンス管理部１３及びダイアグ部Ｄ１〜Ｄ４の処理動作に関して説明する。図３〜図６は、起動時処理又は終了時処理を示すフローチャートを区分けした図面である。
【００４３】
ここでは、一例として、起動時処理を実行する際の処理動作を採用する。シーケンス管理部１３は、起動時処理の実行を示す関数がコールされると図３のフローチャートをスタートするとともに、所定時間毎に図３のフローチャートを実行する。
【００４４】
しかしながら、シーケンス管理部１３は、終了時処理に関しても同様の処理動作を行う。この場合、シーケンス管理部１３は、終了時処理の実行を示す関数がコールされると図３のフローチャートをスタートするとともに、所定時間毎に図３のフローチャートを実行する。
【００４５】
なお、シーケンス管理部１３は、起動時処理の実行を示す関数がコールされると、第１処理部Ｐ１に対して第１処理要求を出力する。これによって、第１処理部Ｐ１は、処理を実行する。第１処理部Ｐ１で実行する処理は、マイコン１０への電源の供給が開始されて、全ての装置２１〜２３が確実に起動している状態や電源が安定している状態となるなど、確実に第２処理部Ｐ１以降の処理が実行可能となるまで待機する処理などを採用できる。よって、シーケンス管理部１３は、第１処理部Ｐ１の処理結果を取得しなくてもよい。
【００４６】
ステップＳ１０では、現在のシーケンスを確認する。シーケンス管理部１３は、現在のシーケンスが第１〜第４シーケンスのいずれであるかを確認する。
【００４７】
ステップＳ１１では、現在のシーケンス＝１であるか否かを判定する。シーケンス管理部１３は、現在のシーケンスが第１シーケンスであると判定した場合はステップＳ１２へ進む。一方、シーケンス管理部１３は、現在のシーケンスが第１シーケンスであると判定しなかった場合はＡ、すなわち、図４のステップＳ２０に進む。
【００４８】
ステップＳ１２では、第２シーケンスへ遷移する。つまり、シーケンス管理部１３は、第２処理部Ｐ２に対して、第２処理要求を出力する。
【００４９】
ステップＳ２０では、現在のシーケンス＝２であるか否かを判定する。シーケンス管理部１３は、現在のシーケンスが第２シーケンスであると判定した場合はステップＳ２１へ進む。一方、シーケンス管理部１３は、現在のシーケンスが第２シーケンスであると判定しなかった場合はＢ、すなわち、図５のステップＳ３０に進む。
【００５０】
ステップＳ２１では、第２シーケンスの結果を取得する。つまり、シーケンス管理部１３は、第２処理部Ｐ２の処理が正常に実行されたか否かを確認するために、第２処理部Ｐ２の処理結果を取得する。
【００５１】
ステップＳ２２では、結果＝正常であるか否かを判定する。シーケンス管理部１３は、第２処理部Ｐ２の処理結果が正常であるか異常であるかを判定する。言い換えると、シーケンス管理部１３は、異常診断を行う。
【００５２】
そして、シーケンス管理部１３は、第２処理部Ｐ２の処理結果が正常であると判定した場合はステップＳ２３へ進み、第２処理部Ｐ２の処理結果が正常であると判定しなかった場合はステップＳ２４へ進む。
【００５３】
ステップＳ２３では、第３シーケンスへ遷移する。つまり、シーケンス管理部１３は、第３処理部Ｐ３に対して、第３処理要求を出力する。ここでの第３処理部Ｐ３は、次処理部に相当する。このように、本実施形態では、一例として、第２処理部Ｐ２の処理結果が正常であると判定した場合は、次のシーケンスを実施と判断するシーケンス管理部１３を採用している。
【００５４】
ステップＳ２４では、第２異常回数をインクリメントする。第２ダイアグ部Ｄ２は、第２処理部Ｐ２の異常回数である第２異常回数をインクリメントする。
【００５５】
ステップＳ２５では、第２異常回数≧ｘ回であるか否かを判定する。第２ダイアグ部Ｄ２は、第２異常回数≧ｘ回であると判定した場合はステップＳ２６へ進み、第２異常回数≧ｘ回であると判定しなかった場合は図４のフローチャートを終了する。つまり、第２ダイアグ部Ｄ２は、第２異常回数≧ｘ回であると判定しなかった場合は起動時処理を終了する。なお、本開示は、ステップＳ２４、Ｓ２５を備えていなくてもよい。
【００５６】
ところで、第２異常回数と比較するｘは、異常通知の実行及び非実行を判定するための閾値であり、通知判定閾値と言える。通知判定閾値ｘは、第２処理部Ｐ２の処理結果が確実に異常となるとみなした場合のみ、異常通知を行うために設けられていると言える。
【００５７】
通知判定閾値ｘは、予め設定されている値であり、任意に設定することができる。また、通知判定閾値ｘは、第２処理部の処理内容によって設定することができる。例えば、通知判定閾値ｘは、ノイズなどによって異常となりやすい処理の場合は、ノイズなどに影響されず異常となりにくい処理の場合よりも回数を増やすことで、誤判定を抑制することができる。
【００５８】
なお、後程説明する通知判定閾値ｙ、ｚに関しても同様である。また、通知判定閾値ｘ、ｙ、ｚは、それぞれ同じ回数でもよいし、異なる回数であってもよい。
【００５９】
ステップＳ２６では、異常通知を行う。第２ダイアグ部Ｄ２は、第２異常回数が通知判定閾値ｘ以上であると判定した場合、異常通知を行う。異常通知は、例えば、スピーカーやディスプレイを用いて、ユーザに異常を通知する。また、異常通知は、例えば、第２処理部Ｐ２の処理結果が異常であることをメモリ１２などに記憶することで、ディーラーの作業者に異常を通知するものであってもよい。これによって、本開示は、第２処理部Ｐ２での処理が確実に異常であると判定した場合に、第２処理部Ｐ２での処理が異常であることをユーザや作業者に伝えることができる。
【００６０】
また、第２ダイアグ部Ｄ２は、通信部３０を介して、外部電子装置に対して異常通知を行ってもよい。この場合、第２ダイアグ部Ｄ２は、第２異常回数≧ｘ回と判定した旨をシーケンス管理部１３に対して伝える。これによって、シーケンス管理部１３は、通信部３０を起動させるシーケンスに遷移する。そして、第２ダイアグ部Ｄ２は、通信部３０が起動した状態で、外部電子装置に対して異常通知を行う。
【００６１】
なお、本実施形態では、異常である回数が所定回数（ここではｘ回）に達した場合に異常通知を行う例を採用している。しかしながら、本開示は、これに限定されず、ステップＳ２２で異常であると判定された場合に、異常通知を行ってもよい。つまり、本開示は、ステップＳ２４〜Ｓ２６を備えていなくてもよい。これによって、本開示は、ステップＳ２４〜Ｓ２６を行う場合よりも、マイコン１０の処理を簡略化しつつ、第２処理部Ｐ２での処理が異常であることを、ユーザや作業者に伝えることができる。
【００６２】
なお、シーケンス管理部１３は、第２異常回数≧ｘ回であると判定されなかった場合は第２シーケンス以外に遷移することなく起動時処理を終了し、所定時間後に、ステップＳ１０を実行する。また、ステップＳ２４、Ｓ２５を備えていない場合、シーケンス管理部１３は、第２処理部Ｐ２の処理結果が異常と判定した場合、第２シーケンス以外に遷移することなく起動時処理を終了し、所定時間後に、ステップＳ１０を実行する。このように、本実施形態では、一例として、第２処理部Ｐ２の処理結果が異常であると判定した場合は、現在のシーケンスに留まると判断するシーケンス管理部１３を採用している。ここでの第２処理部Ｐ２は、次処理部に相当する。
【００６３】
ステップＳ３０では、現在のシーケンス＝３であるか否かを判定する。シーケンス管理部１３は、現在のシーケンスが第３シーケンスであると判定した場合はステップＳ３１へ進む。一方、シーケンス管理部１３は、現在のシーケンスが第３シーケンスであると判定しなかった場合はＣ、すなわち、図６のステップＳ４０に進む。
【００６４】
ステップＳ３１では、第３シーケンスの結果を取得する。つまり、シーケンス管理部１３は、第３処理部Ｐ３の処理が正常に実行されたか否かを確認するために、第３処理部Ｐ２の処理結果を取得する。
【００６５】
ステップＳ３２では、結果＝正常であるか否かを判定する。シーケンス管理部１３は、第３処理部Ｐ３の処理結果が正常であるか異常であるかを判定する。そして、シーケンス管理部１３は、第３処理部Ｐ３の処理結果が正常であると判定した場合はステップＳ３３へ進み、第３処理部Ｐ３の処理結果が正常であると判定しなかった場合はステップＳ３４へ進む。
【００６６】
ステップＳ３３では、第４シーケンスへ遷移する。つまり、シーケンス管理部１３は、第４処理部Ｐ４に対して、第４処理要求を出力する。ここでの第４処理部Ｐ４は、次処理部に相当する。
【００６７】
ステップＳ３４、Ｓ３６は、ステップＳ２４、Ｓ２６と同様であるため、ステップＳ２４、Ｓ２６での説明を参照して適用することができる。つまり、第３ダイアグ部Ｄ３は、第２ダイアグ部Ｄ２と同様の処理を行う。
【００６８】
しかしながら、ステップＳ３５では、第３異常回数≧ｙ回であるか否かを判定する。第３ダイアグ部Ｄ３は、第３異常回数≧ｙ回であると判定した場合はステップＳ３６へ進み、第３異常回数≧ｙ回であると判定しなかった場合はステップＳ３７へ進む。つまり、第３ダイアグ部Ｄ３は、第３異常回数≧ｙ回であると判定しなかった場合は起動時処理を終了するのではなくステップＳ３７へ進む。
【００６９】
なお、本実施形態では、第３異常回数が所定回数（ここではｙ回）に達した場合にステップＳ３７へ移行する例を採用している。しかしながら、本開示は、これに限定されず、ステップＳ３２でＮＯ判定の場合にステップＳ３７へ移行してもよい。
【００７０】
ステップＳ３７では、第２シーケンスへ遷移する。つまり、シーケンス管理部１３は、第２処理部Ｐ２に対して、第２処理要求を出力する。このように、シーケンス管理部１３は、動的に任意のシーケンスへ遷移することができる。
【００７１】
シーケンス管理部１３は、第３異常回数≧ｙ回であると判定されなかった場合は第２シーケンス以外に遷移することなく、すなわち、第２シーケンスを維持した状態で起動時処理を終了し、所定時間後に、ステップＳ１０を実行する。また、ステップＳ３４、Ｓ３６を備えていない場合、シーケンス管理部１３は、第３処理部Ｐ３の処理結果が異常と判定した場合、第２シーケンス以外に遷移することなく起動時処理を終了し、所定時間後に、ステップＳ１０を実行する。このように、本実施形態では、一例として、第３処理部Ｐ３の処理結果が異常であると判定した場合は、任意のシーケンスとして、第２シーケンスに遷移すると判断するシーケンス管理部１３を採用している。
【００７２】
つまり、シーケンス管理部１３は、複数の処理部Ｐ１〜Ｐ４における一つである第３処理部Ｐ３の処理結果が異常であった場合、実行順が第３処理部Ｐ３よりも前の第２処理部Ｐ２を次処理部に決定する。そして、シーケンス管理部１３は、決定した第２処理部Ｐ２に対して実行を指示する。ここでの、第３処理部Ｐ３は、対象処理部に相当する。また、第２処理部Ｐ２は、先行処理部及び次処理部に相当する。
【００７３】
言い換えると、シーケンス管理部１３は、ある処理部の処理結果が異常であった場合、異常であった処理部を再度やり直したり、最初処理部から処理をやり直したりするのではなく、任意の処理部に実行させる。なお、この異常であった処理部を再度やり直したり、最初処理部から処理をやり直したりする電子制御装置は、比較例とする。処理のやり直しは、異常診断のリトライと言える。
【００７４】
この比較例の場合、異常診断のリトライに制限があったり、起動時処理や終了時処理に要する時間が長くなるといった課題が生じる。これに対して、電子制御装置１００は、上記のように、任意のシーケンスに戻ることができるため、最低限かつ適切な範囲で異常診断のリトライが可能となる。特に、電子制御装置１００は、次処理部として、実行順が最初の処理部（第１処理部Ｐ１）と異なる処理部が設定されていると、最初からやり直す必要がないので好ましい。なお、ここでの制限とは、例えば、処理部としては別になっているが連続して実施することに意味がある起動時処理もしくは終了時処理に対して、適切なシーケンスに遷移する必要があるなどである。例えば、第３処理部Ｐ３は、第２処理部Ｐ２の直後に実施しないと、たとえ実施したとしても正しい診断結果が得られないなどである。
【００７５】
ステップＳ４０では、第４シーケンスの結果を取得する。つまり、シーケンス管理部１３は、第４処理部Ｐ４の処理が正常に実行されたか否かを確認するために、第４処理部Ｐ４の処理結果を取得する。
【００７６】
ステップＳ４１では、結果＝正常であるか否かを判定する。シーケンス管理部１３は、第４処理部Ｐ４の処理結果が正常であるか異常であるかを判定する。そして、シーケンス管理部１３は、第４処理部Ｐ４の処理結果が正常であると判定した場合はステップＳ４２へ進み、第４処理部Ｐ４の処理結果が正常であると判定しなかった場合はステップＳ４３へ進む。
【００７７】
ステップＳ４２では、起動を完了する。シーケンス管理部１３は、起動時処理が完了したため、通常処理の実行を要求する。この場合、シーケンス管理部１３は、例えば、通信部３０の起動シーケンスへ遷移させた後に、車載機器の制御に関連するシーケンスへ遷移させる。つまり、電子制御装置１００は、起動時処理が終了すると、通信部３０を起動させた後に、車載機器の制御を行う。
【００７８】
ステップＳ４３〜Ｓ４５は、ステップＳ２４〜Ｓ２６と同様であるため、ステップＳ２４〜Ｓ２６での説明を参照して適用することができる。つまり、第４ダイアグ部Ｄ４は、第２ダイアグ部Ｄ２と同様の処理を行う。
【００７９】
なお、複数の処理部Ｐ１〜Ｐ４の処理結果が正常であった場合、第２処理部Ｐ２は、第１処理部Ｐ１に対する次処理部となる。同様に、第３処理部Ｐ３は、第２処理部Ｐ２に対する次処理部となる。そして、第４処理部Ｐ４は、第３処理部Ｐ３に対する次処理部となる。
【００８０】
次に、図７を用いて、第２処理部Ｐ２の処理動作に関して説明する。なお、他の処理部Ｐ３、Ｐ４、Ｐ１１〜Ｐ１３に関しても同様である。また、第１処理部Ｐ１に関しても同様であってもよい。しかしながら、上記のような確実に第２処理部Ｐ１以降の処理が実行可能となるまで待機する処理が必要ない場合は、第１処理部Ｐ１は、省略してもよい。
【００８１】
ステップＳ５０では、第２処理部Ｐ２は、初期化処理を行う。ステップＳ５１では、第２処理部Ｐ２は、シーケンス＝２であるか否かを判定する。第２処理部Ｐ２は、シーケンスが第２シーケンス、すなわち、自身に対応するシーケンスであると判定した場合はステップＳ５２へ進み、第２シーケンスであると判定しなかった場合は図７のフローチャートを終了する。ステップＳ５２では、第２処理部Ｐ２は、第２処理を実行する。
【００８２】
このように、電子制御装置１００は、関数がコールされると、複数の処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３の実行を開始し、複数の処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３の実行順を管理するシーケンス管理部１３を備えている。シーケンス管理部１３は、各処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３の実行毎に処理結果を取得するため、その処理結果に応じて複数の処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３における次に実行させる次処理部を決定することができる。そして、電子制御装置１００は、決定した次処理部に対して実行を指示するため、処理内容を変更した場合であっても、複数の処理部の実行を開始するための関数を変更する必要がない。よって、電子制御装置１００は、ソフトのメンテナンス性や拡張性を向上することができる。
【００８３】
次に、図８のタイムチャートを用いて、電子制御装置１００の処理動作に関して説明する。ここでは、より具体的な一例を採用する。図８は、マイコン１０が起動時処理を実行する際のタイムチャートを示している。また、図８のシーケンス管理部１３における１〜７の数字は、シーケンス番号に相当する。
【００８４】
ここでの電子制御装置１００は、内部装置として、Ｉ／Ｏ装置、ＡＤ変換器、フラッシュメモリ、外部レジスタ、ＡＳＩＣを備えているものとする。また、マイコン１０は、処理部として、上記第１処理部Ｐ１、Ｉ／Ｏ初期設定部Ｐ２１、ＡＤ値チェック部Ｐ２２、データフラッシュチェック部Ｐ２３、外部レジスタチェック部Ｐ２４、ＡＳＩＣレジスタチェック部Ｐ２５を備えているものとする。
【００８５】
第１シーケンスは、第１処理部Ｐ１が上記と同様の処理を実行する。第２シーケンスは、Ｉ／Ｏ初期設定部Ｐ２１が、Ｉ／Ｏ装置２１における各Ｉ／Ｏポートの機能設定などの初期設定を実行する。第３シーケンスは、ＡＤ値チェック部Ｐ２２が、ＡＤ変換器によるＡＤ変換が正確に行われているか否かを確認する。
【００８６】
このように、ＡＤ変換器は、Ｉ／Ｏ装置２１から入力された信号をＡＤ変換するものである。このため、Ｉ／Ｏ初期設定部Ｐ２１とＡＤ値チェック部Ｐ２２とは、相関する処理部と言える。Ｉ／Ｏ初期設定部Ｐ２１は、ＡＤ値チェック部Ｐ２２に対する関連処理部と言える。同様に、ＡＤ値チェック部Ｐ２２は、Ｉ／Ｏ初期設定部Ｐ２１に対する関連処理部と言える。
【００８７】
第４シーケンスは、データフラッシュチェック部Ｐ２３が、フラッシュメモリの記憶値を確認する。第５シーケンスは、外部レジスタチェック部Ｐ２４が、外部レジスタに初期値などが正確に書き込まれているかなどを確認する。第６シーケンスは、ＡＳＩＣレジスタチェック部Ｐ２５が、ＡＳＩＣレジスタに初期値などが正確に書き込まれているかなどを確認する。なお、第７シーケンスは、マイコン１０が通常処理を実行する。
【００８８】
シーケンス管理部１３は、タイミングｔ１〜ｔ４の各タイミングで、第１処理部Ｐ１に対して第１処理要求を出力する。
【００８９】
次に、シーケンス管理部１３は、タイミングｔ５で第１シーケンスから第２シーケンスへ遷移する。シーケンス管理部１３は、タイミングｔ５〜ｔ７の各タイミングで、Ｉ／Ｏ初期設定部Ｐ２１に対して第２処理要求を出力する。そして、シーケンス管理部１３は、タイミングｔ８でＩ／Ｏ初期設定部Ｐ２１での処理結果が正常（ＯＫ）であった場合、第２シーケンスから第３シーケンスへ遷移する。
【００９０】
なお、シーケンス管理部１３は、タイミングｔ８でＩ／Ｏ初期設定部Ｐ２１での処理結果がＮＧであった場合、例えば、第２シーケンスを繰り返すか、第１シーケンスへ遷移する。
【００９１】
次に、シーケンス管理部１３は、タイミングｔ８でＡＤ値チェック部Ｐ２２に対して第３処理要求を出力する。そして、シーケンス管理部１３は、タイミングｔ９でＡＤ値チェック部Ｐ２２での処理結果が異常（ＮＧ）であった場合、第３シーケンスから第２シーケンスへ遷移する。なお、シーケンス管理部１３は、タイミングｔ９でＡＤ値チェック部Ｐ２２での処理結果がＯＫであった場合、第３シーケンスから第４シーケンスへ遷移する。
【００９２】
このように、シーケンス管理部１３は、複数の処理部Ｐ２１〜Ｐ２５における一つであるＡＤ値チェック部Ｐ２２の処理結果が異常の場合、複数の処理部Ｐ２１〜Ｐ２５におけるＡＤ値チェック部Ｐ２２に相関するＩ／Ｏ初期設定部Ｐ２１を次処理部に決定する。そして、シーケンス管理部１３は、決定したＩ／Ｏ初期設定部Ｐ２１に対して実行を指示する。なお、ここでは、ＡＤ値チェック部Ｐ２２が対象処理部に相当し、Ｉ／Ｏ初期設定部Ｐ２１が関連処理部及び時処理部に相当する。
【００９３】
次に、シーケンス管理部１３は、タイミングｔ９〜ｔ１１の各タイミングで、Ｉ／Ｏ初期設定部Ｐ２１に対して第２処理要求を出力する。そして、シーケンス管理部１３は、タイミングｔ１２でＩ／Ｏ初期設定部Ｐ２１での処理結果がＯＫであった場合、第２シーケンスから第３シーケンスへ遷移する。
【００９４】
次に、シーケンス管理部１３は、タイミングｔ１２で、ＡＤ値チェック部Ｐ２２に対して第３処理要求を出力する。そして、シーケンス管理部１３は、タイミングｔ１３でＡＤ値チェック部Ｐ２２での処理結果がＯＫであった場合、第３シーケンスから第４シーケンスへ遷移する。
【００９５】
次に、シーケンス管理部１３は、タイミングｔ１３〜ｔ１４の各タイミングで、データフラッシュチェック部Ｐ２３に対して第４処理要求を出力する。そして、シーケンス管理部１３は、タイミングｔ１５でデータフラッシュチェック部Ｐ２３での処理結果がＯＫであった場合、第４シーケンスから第５シーケンスへ遷移する。
【００９６】
なお、シーケンス管理部１３は、タイミングｔ１５でデータフラッシュチェック部Ｐ２３での処理結果がＮＧであった場合、例えば、第４シーケンスを繰り返すか、第２シーケンスや第３シーケンスへ遷移する。
【００９７】
次に、シーケンス管理部１３は、タイミングｔ１５で、外部レジスタチェック部Ｐ２４に対して第５処理要求を出力する。そして、シーケンス管理部１３は、タイミングｔ１６で外部レジスタチェック部Ｐ２４での処理結果がＯＫであった場合、第５シーケンスから第６シーケンスへ遷移する。
【００９８】
なお、シーケンス管理部１３は、タイミングｔ１６で外部レジスタチェック部Ｐ２４での処理結果がＮＧであった場合、例えば、第５シーケンスを繰り返すか、第２シーケンスや第３シーケンスや第４シーケンスへ遷移する。
【００９９】
次に、シーケンス管理部１３は、タイミングｔ１６〜１８の各タイミングでＡＳＩＣレジスタチェック部Ｐ２５に対して第６処理要求を出力する。そして、シーケンス管理部１３は、タイミングｔ１９でＡＳＩＣレジスタチェック部Ｐ２５での処理結果がＮＧであった場合、第６シーケンスから第５シーケンスへ遷移する。なお、シーケンス管理部１３は、タイミングｔ１９でＡＳＩＣレジスタチェック部Ｐ２５での処理結果がＯＫであった場合、第６シーケンスから第７シーケンスへ遷移する。
【０１００】
次に、シーケンス管理部１３は、タイミングｔ１９で、外部レジスタチェック部Ｐ２４に対して第５処理要求を出力する。そして、シーケンス管理部１３は、タイミングｔ２０で外部レジスタチェック部Ｐ２４での処理結果がＯＫであった場合、第５シーケンスから第６シーケンスへ遷移する。
【０１０１】
次に、シーケンス管理部１３は、タイミングｔ２０〜ｔ２２の各タイミングでＡＳＩＣレジスタチェック部Ｐ２５に対して第６処理要求を出力する。そして、シーケンス管理部１３は、タイミングｔ２３でＡＳＩＣレジスタチェック部Ｐ２５での処理結果がＯＫであった場合、第６シーケンスから第７シーケンスへ遷移する。
【０１０２】
シーケンス管理部１３は、処理結果が異常であり、且つ、この処理結果によって、後の処理部での処理が不要となった場合は、次処理部を決定することなく、複数の処理部での処理を終了させてもよい。つまり、シーケンス管理部１３は、複数の処理部Ｐ１〜Ｐ４、Ｐ１１〜Ｐ１３における一つである対象処理部の処理結果が異常であり、且つ、処理結果によって、複数の処理部における実行順が対象処理部よりも後の後行処理部の実行が不要となることもある。
【０１０３】
例えばＡＤ値チェック部Ｐ２２の処理結果が異常の場合、ＡＤ変換器は、正常なＡＤ変換の結果を得ることができない。このため、電子制御装置１００は、正常に動作することができない。よって、起動時処理におけるＡＤ値チェック部Ｐ２２以降に実行される処理部は、実行が不要になる。
【０１０４】
よって、このような場合、シーケンス管理部１３は、次処理部を決定することなく、複数の処理部での処理を終了させてもよい。例えば、シーケンス管理部１３は、第２処理部Ｐ２での処理結果が異常であった場合、第３処理部Ｐ３及び第４処理部Ｐ４に対して処理を実行させることなく起動時処理を終了する。このようにすることで、電子制御装置１００は、起動時処理や終了時処理に要する時間を短縮することができる。
【０１０５】
また、このように、次処理部を決定することなく、複数の処理部での処理を終了させた場合、シーケンス管理部１３は、通信部３０を起動させるシーケンスに遷移してもよい。そして、ダイアグ部は、通信部３０を介して外部電子装置に対して異常通知を行う。これによって、電子制御装置１００は、正常に動作できなくなったことを、外部電子装置に伝えることができる。
【０１０６】
なお、マイコン１０は、終了時処理として、例えば、通信部を停止したり、次回の起動時に適切に起動できるか否かを確認したり、確認結果をフラッシュメモリに書き込んだり、ウォッチドッグを確認したりする。しかしながら、本開示は、これに限定されない。
【０１０７】
また、本開示は、起動時処理と終了時処理の少なくとも一方を行うものであれば採用できる。よって、マイコン１０は、起動時における第１処理部Ｐ１、第２処理部Ｐ２、第３処理部Ｐ３、第４処理部Ｐ４と、終了時における第１１処理部Ｐ１１、第１２処理部Ｐ１２、第１３処理部Ｐ１３の少なくとも一方を備えていればよい。
【０１０８】
以上、本開示の好ましい実施形態について説明した。しかしながら、本開示は、上記実施形態に何ら制限されることはなく、本開示の趣旨を逸脱しない範囲において、種々の変形が可能である。
【符号の説明】
【０１０９】
１０…マイコン、１１…ＣＰＵ、１２…メモリ、１３…シーケンス管理部、２１…第１装置、２２…第２装置、２３…第３装置、３０…通信部、Ｐ１…第１処理部、Ｐ２…第２処理部、Ｐ３…第３処理部、Ｐ４…第４処理部、Ｐ１１…第１１処理部、Ｐ１２…第１２処理部、Ｐ１３…第１３処理部、Ｐ２１…Ｉ／Ｏ初期設定部、Ｐ２２…ＡＤ値チェック部、Ｐ２３…データフラッシュチェック部、Ｐ２４…ＡＳＩＣ初期設定部、Ｐ２５…ＡＳＩＣレジスタチェック部、Ｄ１…第１ダイアグ部、Ｄ２…第２ダイアグ部、Ｄ３…第３ダイアグ部、Ｄ４…第４ダイアグ部、Ｄ１１…第１１ダイアグ部、Ｄ１２…第１２ダイアグ部、Ｄ１３…第１３ダイアグ部、１００…電子制御装置
【図１】
2020087242.tif 000003
【図２】
2020087242.tif 000004
【図３】
2020087242.tif 000005
【図４】
2020087242.tif 000006
【図５】
2020087242.tif 000007
【図６】
2020087242.tif 000008
【図７】
2020087242.tif 000009
【図８】
2020087242.tif 000010