(57)【特許請求の範囲】
【請求項１】
機器の動作を制御する複数の処理を実行する実行部と、該実行部による前記処理の実行順序を監視する監視部と、該監視部による監視結果に基づいて所定のエラー処理を実行するエラー処理部とを備える制御装置において、
複数の前記処理に付された識別情報に基づく複数系列の実行順序情報を記憶する記憶部を備え、
前記実行部は、実行する前記処理に付された識別情報を出力する出力手段を備え、
前記監視部は、
前記記憶部に記憶された複数系列の実行順序情報に基づき前記実行部が実行する処理の識別情報を系列毎に特定する特定手段と、
前記出力手段から出力された識別情報が、前記特定手段により系列毎に特定された識別情報に一致するか否かを判定する判定手段と、
該判定手段により一致しないと判定した場合に、前記エラー処理部へ通知する通知手段と
を備え、
前記記憶部は、前記実行順序情報として、系列毎に、複数の前記処理の実行順序に係る先頭及び末尾の順序番号を記憶し、
前記出力手段は、実行する前記処理に付された識別情報としての順序番号を出力し、
前記特定手段は、前記実行部が実行する処理の識別情報として、系列毎に、前記先頭の順序番号から前記末尾の順序番号までを順次繰り返し特定するようにしてある
ことを特徴とする制御装置。
【請求項２】
機器の動作を制御する複数の処理を実行する実行部と、該実行部による前記処理の実行順序を監視する監視部と、該監視部による監視結果に基づいて所定のエラー処理を実行するエラー処理部とを備える制御装置において、
複数の前記処理に付された識別情報に基づく複数系列の実行順序情報を記憶する記憶部を備え、
前記実行部は、実行する前記処理に付された識別情報を出力する出力手段を備え、
前記監視部は、
前記記憶部に記憶された複数系列の実行順序情報に基づき前記実行部が実行する処理の識別情報を系列毎に特定する特定手段と、
前記出力手段から出力された識別情報が、前記特定手段により系列毎に特定された識別情報に一致するか否かを判定する判定手段と、
該判定手段により一致しないと判定した場合に、前記エラー処理部へ通知する通知手段と
を備え、
前記記憶部は、前記実行順序情報として、系列毎に、複数の前記処理の実行順序に係る先頭及び末尾の順序番号、並びに繰り返しの先頭の順序番号を記憶し、
前記出力手段は、実行する前記処理に付された識別情報としての順序番号を出力し、
前記特定手段は、前記実行部が実行する処理の識別情報として、系列毎に、前記先頭の順序番号から前記末尾の順序番号までを順次特定し、さらに前記繰り返しの先頭の順序番号から末尾の順序番号までを順次繰り返し特定するようにしてある
ことを特徴とする制御装置。
【請求項３】
前記エラー処理部は、前記通知手段からの通知に基づき前記実行部へ処理の再起動を指令するようにしてあり、
前記通知手段は、前記エラー処理部へ通知した後、前記実行部が前記先頭の実行順序が付された処理を実行するまで、前記エラー処理部への通知を停止するようにしてある
ことを特徴とする請求項１又は請求項２に記載の制御装置。
【請求項４】
前記監視部は、
前記出力手段から特定の識別情報が出力されたときに、前記処理が継続していることを示す信号を出力する信号出力手段を備え、
前記信号が所定期間内に出力されなかった場合に前記実行部へ処理の再起動を通知する第２監視部を備える
ことを特徴とする請求項１から請求項３のいずれか１つに記載の制御装置。
【請求項５】
機器の動作を制御する複数の処理を実行する実行部と、該実行部による前記処理の実行順序を監視する監視部と、該監視部による監視結果に基づいて所定のエラー処理を実行するエラー処理部とを備える制御装置において、
複数の前記処理に付された識別情報に基づく複数系列の実行順序情報を記憶する記憶部を備え、
前記実行部は、実行する前記処理に付された識別情報を出力する出力手段を備え、
前記監視部は、
前記記憶部に記憶された複数系列の実行順序情報に基づき前記実行部が実行する処理の識別情報を系列毎に特定する特定手段と、
前記出力手段から出力された識別情報が、前記特定手段により系列毎に特定された識別情報に一致するか否かを判定する判定手段と、
該判定手段により一致しないと判定した場合に、前記エラー処理部へ通知する通知手段と
を備え、
前記記憶部は、前記機器の所定状態と、前記複数系列のうち該所定状態にて実行され得る前記処理の識別情報を含む系列とを対応づけて記憶しており、
前記特定手段は、前記機器が前記所定状態となったときに、前記所定状態と対応づけて前記記憶部に記憶してある系列に係る実行順序情報に基づき前記実行部が実行する処理の識別情報を特定するようにしてある
ことを特徴とする制御装置。
【請求項６】
機器の動作を制御する複数の処理を実行部により実行し、該実行部による前記処理の実行順序を監視し、監視した結果に基づいて所定のエラー処理を実行するエラー処理部へ通知する処理監視方法において、
複数の前記処理に付された識別情報に基づく複数系列の実行順序情報を記憶する記憶ステップと、
前記実行部により実行する前記処理に付された識別情報を出力する出力ステップと、
前記記憶ステップにより記憶した複数系列の実行順序情報に基づき前記実行部が実行する処理の識別情報を系列毎に特定する特定ステップと、
前記出力ステップから出力された識別情報が、前記特定ステップにより系列毎に特定された識別情報に一致するか否かを判定する判定ステップと、
該判定ステップにより一致しないと判定した場合に、前記エラー処理部へ通知する通知ステップと
を備え、
前記記憶ステップは、前記実行順序情報として、系列毎に、複数の前記処理の実行順序に係る先頭及び末尾の順序番号を記憶し、
前記出力ステップは、実行する前記処理に付された識別情報としての順序番号を出力し、
前記特定ステップは、前記実行部が実行する処理の識別情報として、系列毎に、前記先頭の順序番号から前記末尾の順序番号までを順次繰り返し特定する
ことを特徴とする処理監視方法。
【請求項７】
機器の動作を制御する複数の処理を実行部により実行し、該実行部による前記処理の実行順序を監視し、監視した結果に基づいて所定のエラー処理を実行するエラー処理部へ通知する処理監視方法において、
複数の前記処理に付された識別情報に基づく複数系列の実行順序情報を記憶する記憶ステップと、
前記実行部により実行する前記処理に付された識別情報を出力する出力ステップと、
前記記憶ステップにより記憶した複数系列の実行順序情報に基づき前記実行部が実行する処理の識別情報を系列毎に特定する特定ステップと、
前記出力ステップから出力された識別情報が、前記特定ステップにより系列毎に特定された識別情報に一致するか否かを判定する判定ステップと、
該判定ステップにより一致しないと判定した場合に、前記エラー処理部へ通知する通知ステップと
を備え、
前記記憶ステップは、前記実行順序情報として、系列毎に、複数の前記処理の実行順序に係る先頭及び末尾の順序番号、並びに繰り返しの先頭の順序番号を記憶し、
前記出力ステップは、実行する前記処理に付された識別情報としての順序番号を出力し、
前記特定ステップは、前記実行部が実行する処理の識別情報として、系列毎に、前記先頭の順序番号から前記末尾の順序番号までを順次特定し、さらに前記繰り返しの先頭の順序番号から末尾の順序番号までを順次繰り返し特定する
ことを特徴とする処理監視方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機器の動作を制御する複数の処理の実行順序を監視する制御装置及び処理監視方法に関する。
【背景技術】
【０００２】
近年、自動車の分野においては、車輌の高機能化が益々進んでおり、多種多様な機器が車輌に搭載され、これら車載機器を制御するための制御装置、所謂ＥＣＵ（Electronic Control Unit）が多数搭載されている。例えば、乗員によるスイッチ操作などに応じて車内照明やヘッドライトの点灯／消灯、警報器の吹鳴、及びドアロック／アンロック等の制御を行うボディ系ＥＣＵ、運転席近傍に配設されるメータ類の動作を制御するメータ系ＥＣＵ、並びにカーナビゲーション装置等の制御を行うナビ系ＥＣＵなどの種々のＥＣＵが車輌に搭載されている。
【０００３】
ＥＣＵは、マイクロコンピュータ等の演算処理装置によって構成されており、ＲＯＭ（Read Only Memory）に記憶した制御プログラムを読み込んで実行することにより、車載機器の制御が実現されている。一般的に、一つのＥＣＵが実行する制御プログラムは、ＥＣＵが有する入出力インタフェースに接続された複数の車載機器を制御するための複数のアプリケーションプログラムから構成されている。また、ＥＣＵは、車載ＬＡＮを通じて他のＥＣＵと連携し、該他のＥＣＵが有する入出力インタフェースに接続された車載機器を制御するアプリケーションプログラムが制御プログラムに含まれることもある。
【０００４】
複数のアプリケーションプログラムからなる制御プログラムは、車輌に搭載された各種センサからの情報、及び乗員によるスイッチ操作信号等に基づいて、車載機器を動作させるアクチュエータに制御信号を送って車載機器を所定の順序で動作させている。ここで、各種センサ情報の取得処理、スイッチ操作信号の取得処理、及び車載機器への制御処理は、処理単位毎に作成されたプログラムによる複数の処理が組み合わされて順次実行されることによって実現されている。
【０００５】
ＥＣＵは、各種センサ情報、スイッチ操作信号、及び他のＥＣＵからの制御信号に基づいて、車載機器を動作させる複数の処理を実行する順序の計画を立て、該計画に基づいて処理を実行していく。例えば、ボディ系ＥＣＵは、スマートキーレスエントリを機能させる制御において、車輌に接近してきた携帯キーからの最初の通信信号をトリガにして、携帯キーと車載通信部との間の通信プロトコル及びエンジン始動手順に従った規定の順序で複数の処理を実行する必要がある。通常、ＥＣＵは、規定に従って計画した手順どおりに処理を進めていく。しかし、携帯キー及び車載通信部間の通信エラー及び電源の瞬断等の不測の事象が発生し、計画した手順を逸脱すると、車載機器が誤動作する原因となってしまう。
【０００６】
上述のように、複数の車載機器を制御するために複数のアプリケーションプログラムを含む制御プログラムでは、アプリケーションプログラム毎に処理を実行する順序が規定される場合がある。この場合、ＥＣＵは、規定される複数系列の処理の実行順序どおりに処理が進行しているかを監視し、実行順序の逸脱が生じた場合に、速やかに復旧できるようにしておく必要がある。
【０００７】
特許文献１には、ＩＤレジスタ、ログレジスタ群、制御部及びウォッチドッグタイマを備える監視装置が記載されている。ＩＤレジスタは、実行する処理タスクに付されている識別情報を格納する。識別情報には、自己のＩＤと、自己の処理タスクの前に実行されるべき処理タスクのＩＤ（以下、先行処理タスクのＩＤと表記する）とが含まれている。制御部は、実行する処理タスクの識別情報、及び前回実行された処理タスクの識別情報をレジスタに保持し、実行する処理タスクの識別情報における先行処理タスクのＩＤと、前回実行された処理タスクのＩＤとに基づいて、タスクの実行順序が正常であるか否かを監視する。ログレジスタ群は、ログ情報として識別情報及び監視結果情報を時系列に記憶する。プログラムの実行状態に異常が発生し、ウォッチドッグタイマによるタイムアウトが検出されると、ログレジスタ群に記憶したログ情報を記憶装置に退避することにより、退避したログ情報に基づいて異常発生の原因を迅速に究明できるというものである。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１０−００９２９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１に記載の監視装置では、実行する処理タスクの識別情報、及び前回実行された処理タスクの識別情報をレジスタに保持して監視することによって、規定される一系列の処理の実行順序に従う監視を行うことができるものの、複数系列の処理手順を監視することはできないという問題点があった。
【００１０】
また、特許文献１に記載の監視装置では、各処理に付された識別情報が自己のＩＤ及び先行処理タスクのＩＤを含むため、識別情報のデータ長が大きくなり、各処理のプログラムを記憶しておくＲＯＭ等における記憶領域が余計に必要となってしまう。各処理に付された識別情報が自己のＩＤ及び先行処理タスクのＩＤを含むため、監視にあたって、識別情報から、自己のＩＤ、先行処理タスクのＩＤを個々に抽出する必要があり、この抽出処理の分、処理時間が長くなってしまう。
【００１１】
また、特許文献１に記載の監視装置では、前回実行された処理に付された識別情報をレジスタに保持している。前回実行された処理に付された識別情報中の先行処理タスクのＩＤは、監視には不要であるにも関わらず保持されており、余分なレジスタが必要になってしまう。さらに、前回実行された処理に付された識別情報中の先行処理タスクのＩＤが監視には不要であることから、この不要な部分を削除する処理を追加した場合、レジスタは最小限にできるものの、削除処理の分、処理時間が長くなってしまう。
【００１２】
本発明は、斯かる事情に鑑みてなされたものであって、その目的とするところは、複数系列の実行順序を監視することができる制御装置及び処理監視方法を提供することにある。
【課題を解決するための手段】
【００１３】
本発明に係る制御装置は、機器の動作を制御する複数の処理を実行する実行部と、該実行部による前記処理の実行順序を監視する監視部と、該監視部による監視結果に基づいて所定のエラー処理を実行するエラー処理部とを備える制御装置において、複数の前記処理に付された識別情報に基づく複数系列の実行順序情報を記憶する記憶部を備え、前記実行部は、実行する前記処理に付された識別情報を出力する出力手段を備え、前記監視部は、前記記憶部に記憶された複数系列の実行順序情報に基づき前記実行部が実行する処理の識別情報を系列毎に特定する特定手段と、前記出力手段から出力された識別情報が、前記特定手段により系列毎に特定された識別情報に一致するか否かを判定する判定手段と、該判定手段により一致しないと判定した場合に、前記エラー処理部へ通知する通知手段とを備え、前記記憶部は、前記実行順序情報として、系列毎に、複数の前記処理の実行順序に係る先頭及び末尾の順序番号を記憶し、前記出力手段は、実行する前記処理に付された識別情報としての順序番号を出力し、前記特定手段は、前記実行部が実行する処理の識別情報として、系列毎に、前記先頭の順序番号から前記末尾の順序番号までを順次繰り返し特定するようにしてあることを特徴とする。
【００１４】
本発明に係る制御装置は、機器の動作を制御する複数の処理を実行する実行部と、該実行部による前記処理の実行順序を監視する監視部と、該監視部による監視結果に基づいて所定のエラー処理を実行するエラー処理部とを備える制御装置において、複数の前記処理に付された識別情報に基づく複数系列の実行順序情報を記憶する記憶部を備え、前記実行部は、実行する前記処理に付された識別情報を出力する出力手段を備え、前記監視部は、前記記憶部に記憶された複数系列の実行順序情報に基づき前記実行部が実行する処理の識別情報を系列毎に特定する特定手段と、前記出力手段から出力された識別情報が、前記特定手段により系列毎に特定された識別情報に一致するか否かを判定する判定手段と、該判定手段により一致しないと判定した場合に、前記エラー処理部へ通知する通知手段とを備え、前記記憶部は、前記実行順序情報として、系列毎に、複数の前記処理の実行順序に係る先頭及び末尾の順序番号、並びに繰り返しの先頭の順序番号を記憶し、前記出力手段は、実行する前記処理に付された識別情報としての順序番号を出力し、前記特定手段は、前記実行部が実行する処理の識別情報として、系列毎に、前記先頭の順序番号から前記末尾の順序番号までを順次特定し、さらに前記繰り返しの先頭の順序番号から末尾の順序番号までを順次繰り返し特定するようにしてあることを特徴とする。
【００１５】
本発明に係る制御装置は、前記エラー処理部は、前記通知手段からの通知に基づき前記実行部へ処理の再起動を指令するようにしてあり、前記通知手段は、前記エラー処理部へ通知した後、前記実行部が前記先頭の実行順序が付された処理を実行するまで、前記エラー処理部への通知を停止するようにしてあることを特徴とする。
【００１６】
本発明に係る制御装置は、前記監視部は、前記出力手段から特定の識別情報が出力されたときに、前記処理が継続していることを示す信号を出力する信号出力手段を備え、前記信号が所定期間内に出力されなかった場合に前記実行部へ処理の再起動を通知する第２監視部を備えることを特徴とする。
【００１７】
本発明に係る制御装置は、機器の動作を制御する複数の処理を実行する実行部と、該実行部による前記処理の実行順序を監視する監視部と、該監視部による監視結果に基づいて所定のエラー処理を実行するエラー処理部とを備える制御装置において、複数の前記処理に付された識別情報に基づく複数系列の実行順序情報を記憶する記憶部を備え、前記実行部は、実行する前記処理に付された識別情報を出力する出力手段を備え、前記監視部は、前記記憶部に記憶された複数系列の実行順序情報に基づき前記実行部が実行する処理の識別情報を系列毎に特定する特定手段と、前記出力手段から出力された識別情報が、前記特定手段により系列毎に特定された識別情報に一致するか否かを判定する判定手段と、該判定手段により一致しないと判定した場合に、前記エラー処理部へ通知する通知手段とを備え、前記記憶部は、前記機器の所定状態と、前記複数系列のうち該所定状態にて実行され得る前記処理の識別情報を含む系列とを対応づけて記憶しており、前記特定手段は、前記機器が前記所定状態となったときに、前記所定状態と対応づけて前記記憶部に記憶してある系列に係る実行順序情報に基づき前記実行部が実行する処理の識別情報を特定するようにしてあることを特徴とする。
【００１８】
本発明に係る処理監視方法は、機器の動作を制御する複数の処理を実行部により実行し、該実行部による前記処理の実行順序を監視し、監視した結果に基づいて所定のエラー処理を実行するエラー処理部へ通知する処理監視方法において、複数の前記処理に付された識別情報に基づく複数系列の実行順序情報を記憶する記憶ステップと、前記実行部により実行する前記処理に付された識別情報を出力する出力ステップと、前記記憶ステップにより記憶した複数系列の実行順序情報に基づき前記実行部が実行する処理の識別情報を系列毎に特定する特定ステップと、前記出力ステップから出力された識別情報が、前記特定ステップにより系列毎に特定された識別情報に一致するか否かを判定する判定ステップと、該判定ステップにより一致しないと判定した場合に、前記エラー処理部へ通知する通知ステップとを備え、前記記憶ステップは、前記実行順序情報として、系列毎に、複数の前記処理の実行順序に係る先頭及び末尾の順序番号を記憶し、前記出力ステップは、実行する前記処理に付された識別情報としての順序番号を出力し、前記特定ステップは、前記実行部が実行する処理の識別情報として、系列毎に、前記先頭の順序番号から前記末尾の順序番号までを順次繰り返し特定することを特徴とする
【００１９】
本発明に係る処理監視方法は、機器の動作を制御する複数の処理を実行部により実行し、該実行部による前記処理の実行順序を監視し、監視した結果に基づいて所定のエラー処理を実行するエラー処理部へ通知する処理監視方法において、複数の前記処理に付された識別情報に基づく複数系列の実行順序情報を記憶する記憶ステップと、前記実行部により実行する前記処理に付された識別情報を出力する出力ステップと、前記記憶ステップにより記憶した複数系列の実行順序情報に基づき前記実行部が実行する処理の識別情報を系列毎に特定する特定ステップと、前記出力ステップから出力された識別情報が、前記特定ステップにより系列毎に特定された識別情報に一致するか否かを判定する判定ステップと、該判定ステップにより一致しないと判定した場合に、前記エラー処理部へ通知する通知ステップとを備え、前記記憶ステップは、前記実行順序情報として、系列毎に、複数の前記処理の実行順序に係る先頭及び末尾の順序番号、並びに繰り返しの先頭の順序番号を記憶し、前記出力ステップは、実行する前記処理に付された識別情報としての順序番号を出力し、前記特定ステップは、前記実行部が実行する処理の識別情報として、系列毎に、前記先頭の順序番号から前記末尾の順序番号までを順次特定し、さらに前記繰り返しの先頭の順序番号から末尾の順序番号までを順次繰り返し特定することを特徴とする
【００２０】
本発明にあっては、記憶部に複数の処理に付された識別情報に基づく複数系列の実行順序情報を記憶し、実行部では、出力手段により実行する処理に付された識別情報を出力する。監視部では、特定手段により、記憶部に記憶された複数系列の実行順序情報に基づき実行部が実行する処理の識別情報を系列毎に特定し、判定手段により、出力手段から出力された識別情報が、特定手段により系列毎に特定された識別情報に一致するか否かを判定する。通知手段は、判定手段により一致しないと判定した場合に、エラー処理部へ通知する。これにより、複数系列の実行順序が規定される場合に、系列毎に実行順序の監視を行うことができる。
【００２１】
本発明にあっては、記憶部は、実行順序情報として、系列毎に、複数の処理の実行順序に係る先頭及び末尾の順序番号を記憶し、出力手段は、実行する処理に付された識別情報としての順序番号を出力する。特定手段は、実行部が実行する処理の識別情報として、系列毎に、先頭の順序番号から末尾の順序番号までを順次繰り返し特定する。これにより、記憶部に記憶する実行順序情報が、複数系列の実行順序に係る先頭及び末尾の順序番号であるため、記憶しておく実行順序情報のデータ量を少なくすることができる。
【００２２】
本発明にあっては、記憶部は、実行順序情報として、系列毎に、複数の処理の実行順序に係る先頭及び末尾の順序番号、並びに繰り返しの先頭の順序番号を記憶し、出力手段は、実行する処理に付された識別情報としての順序番号を出力する。特定手段は、実行部が実行する処理の識別情報として、系列毎に、先頭の順序番号から末尾の順序番号までを順次特定し、さらに繰り返しの先頭の順序番号から末尾の順序番号までを順次繰り返し特定する。これにより、繰り返しの先頭の順序番号を処理開始時の先頭の順序番号と異なるように定める実行順序の規定に基づいて、処理の監視を行うことができる。
【００２３】
本発明にあっては、エラー処理部は、通知手段からの通知に基づき実行部へ処理の再起動を指令するようにしてあり、通知手段は、エラー処理部へ通知した後、実行部が先頭の実行順序が付された処理を実行するまで、エラー処理部への通知を停止する。これにより、処理が再起動されるまでに、繰り返し実行順序の誤りが発生して再起動が遅延することを防ぐことができる。
【００２４】
本発明にあっては、監視部は、出力手段から特定の識別情報が出力されたときに、信号出力手段により、処理が継続していることを示す信号を出力する。第２監視部は、信号出力手段から信号が所定期間内に出力されなかった場合に実行部へ処理の再起動を通知する。これにより、処理が何らかの理由で止まってしまった場合に、処理をリセットすることができる。
【００２５】
本発明にあっては、記憶部は、機器の所定状態と、複数系列のうち該所定状態にて実行され得る処理の識別情報を含む系列とを対応づけて記憶しており、特定手段は、機器が所定状態となったときに、所定状態と対応づけて記憶部に記憶してある系列に係る実行順序情報に基づき実行部が実行する処理の識別情報を特定する。これにより、機器が所定状態である場合に実行されない処理に対する実行順序の監視を行わないようにすることができる。
【発明の効果】
【００２６】
本発明によれば、記憶部に複数の処理に付された識別情報に基づく複数系列の実行順序情報を記憶し、実行部では、出力手段により実行する処理に付された識別情報を出力する。監視部では、特定手段により、記憶部に記憶された複数系列の実行順序情報に基づき実行部が実行する処理の識別情報を系列毎に特定し、判定手段により、出力手段から出力された識別情報が、特定手段により系列毎に特定された識別情報に一致するか否かを判定する。通知手段は、判定手段により一致しないと判定した場合に、エラー処理部へ通知する。このため、複数系列の実行順序が規定される場合に、系列毎に実行順序の監視を行うことができる。
【図面の簡単な説明】
【００２７】
【図１】本発明の実施の形態１に係る制御装置の構成を示すブロック図である。
【図２】図１の処理スケジュール部による制御プログラムの処理スケジュールについて説明するための模式図である。
【図３】規定される複数系列の実行順序について説明するための模式図である。
【図４】処理に付された識別情報に基づく複数系列の実行順序情報を示す図表である。
【図５】監視部による実行順序の監視処理の手順を示すフローチャートである。
【図６】本発明の実施の形態２に係る制御装置において規定される複数系列の実行順序について説明するための模式図である。
【図７】処理に付された識別情報に基づく複数系列の実行順序情報を示す図表である。
【図８】エラー処理時において監視し続ける場合の監視処理について説明するための模式図である。
【図９】本発明の実施の形態３に係る監視部による実行順序の監視処理の手順を示すフローチャートである。
【図１０】エラー処理時の監視処理について説明するための模式図である。
【図１１】エラー処理時の監視処理について説明するための模式図である。
【図１２】本発明の実施の形態４に係る制御装置の構成を示すブロック図である。
【図１３】規定される実行順序について説明するための模式図である。
【図１４】ウォッチドッグ監視部への出力信号の設定を説明するための模式図である。
【図１５】ウォッチドッグ監視部へ信号出力する処理の手順を示すフローチャートである。
【図１６】本発明の実施の形態５に係る制御装置において機器の所定状態に対する実施され得る処理系列について説明するための模式図である。
【発明を実施するための形態】
【００２８】
（実施の形態１）
以下、本発明をその実施の形態を示す図面に基づき具体的に説明する。図１は、本発明の実施の形態１に係る制御装置１００の構成を示すブロック図であり、図２は、図１の処理スケジュール部２２による制御プログラムの処理スケジュールについて説明するための模式図であり、図３は、規定される複数系列の実行順序について説明するための模式図であり、図４は、処理に付された識別情報に基づく複数系列の実行順序情報７０を示す図表である。本実施形態では、制御装置１００が車載制御装置である例を示す。制御装置１００は、接続される車載機器８に対する制御を行い、車載ＬＡＮを介して通信接続された他の制御装置１００との間で情報を交換し、他の制御装置１００に接続された車載機器８の制御を行う。制御装置１００は、マイクロコンピュータ（以下、マイコンと表記する）１０、一時記憶部１１、記憶部１２、入出力インタフェース（以下、入出力Ｉ／Ｆと表記する）１３、及び通信インタフェース（以下、通信Ｉ／Ｆと表記する）１４を備える。制御装置１００は、入出力Ｉ／Ｆ１３に接続された車載機器８、例えば、車内照明、ヘッドライト、警報器、ドアロック機構、メータ類、カーナビゲーション装置等を制御する。
【００２９】
マイコン１０は、実行部２０、監視部３０、及びエラー処理部４０を備える。実行部２０は、例えば、演算処理を行うＣＰＵ（Central Processor Unit）等で構成し、記憶部１２に予め記憶された制御プログラム６０を読み出して実行することにより、入出力Ｉ／Ｆ１３に接続された車載機器８の制御を行う。記憶部１２は、例えばＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）等の書換え可能な不揮発性のメモリ素子で構成される。記憶部１２には、制御プログラム６０、及び処理の実行順序情報７０等が予め記憶されている。実行部２０は、制御処理を行う過程の演算などにおいて発生した一時的なデータを一時記憶部１１に記憶しながら処理を進める。一時記憶部１１は、ＳＲＡＭ（Static Random Access Memory）又はＤＲＡＭ（Dynamic Random Access Memory）等のメモリ素子で構成されており、実行部１０の処理過程で発生する種々のデータ等を一時的に記憶する。
【００３０】
入出力Ｉ／Ｆ１３は、実行部２０から与えられた制御信号などを車載機器８へ出力すると共に、車載機器８から入力された情報を実行部２０へ与える。通信Ｉ／Ｆ１４は、他の制御装置１００に車載ＬＡＮを介して接続されており、ＣＡＮ（Controller Area Network）などのプロトコルに従って他の制御装置１００とデータの送受信を行う。通信Ｉ／Ｆ１４は、実行部２０から与えられたデータを送信し、他の制御装置１００から受信したデータを実行部２０へ与える。これにより制御装置１００は、他の制御装置１００に接続された車載機器８から得られる情報を通信Ｉ／Ｆ１４の通信によって取得することができると共に、他の制御装置１００に接続された車載機器８への制御信号などを送信して制御することもできる。
【００３１】
実行部２０は、処理部２１及び処理スケジュール部２２を備える。処理部２１は、制御プログラム６０を構成する複数の処理を順次実行し、車載機器８を制御する。処理部２１は、処理過程で生じたデータを一時記憶部１１に記憶する。処理スケジュール部２２は、入出力Ｉ／Ｆ１３から入力されるセンサ情報及びスイッチ操作信号、及び通信Ｉ／Ｆ１４から入力される他の制御装置１００からの制御信号等に基づいて、車載機器８を動作させる複数の処理を実行する処理スケジュールを計画する。
【００３２】
処理スケジュール部２２は、例えば図２に示すような処理スケジュールを計画する。制御プログラム６０は、複数の車載機器８を制御するために、制御アプリケーションプログラム（以下、制御アプリと表記する）Ａ６１、制御アプリＢ６２、及び制御アプリＣ６３等によって構成されている。各制御アプリは、夫々複数の処理によって構成されており、上述のスマートキーレスエントリを実現する制御プログラムのように、処理の実行順序が規定されている。処理の実行順序は、全ての処理に対して規定されていてもよいし、一部の処理に対して規定されていてもよい。実行順序が規定される処理には識別情報ＩＤが付加するものとし、実行順序が規定されない処理には実行順序監視用の識別情報ＩＤは付加されない。
【００３３】
例えば、図３に示すように、制御アプリＡ６１では、処理Ａ０１から開始し、処理Ａ０２、処理Ａ０３、処理Ａ０４の順序で実行され、処理Ａ０４が実行された後は、処理Ａ０１に戻って同じ順序で繰り返し実行しなければならないとする実行順序の規定を設ける。実行順序が規定されている処理Ａ０１から処理Ａ０４には夫々、識別情報ＩＤとして０１から０４を付加する。一方、実行順序が規定されていない処理Ａ０５及び処理Ａ０６には、実行順序監視用の識別情報ＩＤを付加していない。同様に、制御アプリＢ６２についても、処理Ｂ０１から開始し、処理Ｂ０２、処理Ｂ０３の順序で実行され、処理Ｂ０３が実行された後は、処理Ｂ０１に戻って同じ順序で繰り返し実行しなければならないとする実行順序の規定を設ける。実行順序が規定されている処理Ｂ０１から処理Ｂ０３には夫々、識別情報ＩＤとして０５から０７を付加する。一方、実行順序が規定されていない処理Ｂ０４には、実行順序監視用の識別情報ＩＤを付加していない。
【００３４】
処理スケジュール部２２は、制御アプリＡ６１に係る処理と、制御アプリＢ６２に係る処理とを混在して順次実行するスケジュールを計画する（図２参照）。処理スケジュール部２２は、制御アプリＡ６１に係る処理だけに着目すると、処理Ａ０１から処理Ａ０４の順序で規定どおりに実行されるように計画する。また、処理スケジュール部２２は、制御アプリＢ６２に係る処理だけに着目すると、処理Ｂ０１から処理Ｂ０３の順序で規定どおりに実行されるように計画する。
【００３５】
実行順序が規定される複数の処理に付される識別情報は、系列毎に、昇順または降順に増分値Ｃ（Ｃは整数）が一定である、整数値による番号の群とするのが好適である。ただし、全ての識別情報は、一意に定めるものとし重複がないようにする。図２に示す例では、増分値Ｃを１とし、識別情報は「０１」から始まる昇順の番号としており、具体的には、０１、０２、０３、０４、０５、０６、０７、・・・のように番号の群を作成し、識別情報とする。そして、制御アプリＡ６１において実行順序が規定される処理の系列である処理Ａ０１から処理Ａ０４について、夫々の識別情報ＩＤを０１から０４とする。また、制御アプリＢ６２において実行順序が規定される処理の系列である処理Ｂ０１から処理Ｂ０３について、夫々の識別情報ＩＤを０５から０７とする。なお、系列が異なれば識別情報ＩＤを不連続にしてもよい。即ち、処理Ｂ０１から処理Ｂ０３について、識別情報ＩＤを１１から１３などとしてもよい。なお、実行順序が規定されない処理（処理Ａ０５、処理Ａ０６、処理Ｂ０４）には実行順序監視用の識別番号を付加していない。また、増分値Ｃは、系列毎に異なる値であってもよい。
【００３６】
処理に付された識別情報に基づく複数系列の実行順序に係る情報は、実行順序情報７０として記憶部１２に記憶しておく。図４に示すように、実行順序情報７０は、実行順序が規定される系列毎に繰り返しループの先頭のＩＤ及び末尾のＩＤ、並びに系列番号を含む情報とする。即ち、実行順序情報７０は、制御アプリＡ６１について、先頭ＩＤである「０１」と末尾ＩＤである「０４」を情報として有し、制御アプリＢ６２について、先頭ＩＤである「０５」と末尾ＩＤである「０７」を情報として有する。
【００３７】
処理部２１は、処理スケジュール部２２が計画した処理スケジュールに基づいて順次処理を行う。処理スケジュール部２２はＩＤ通知部２２ａを有する。ＩＤ通知部２２ａは実行する処理の識別情報を取得し、監視部３０へ通知する。
【００３８】
監視部３０は、予定ＩＤ特定部３１、ＩＤ判定部３２及び対応決定部３３を備える。予定ＩＤ特定部３１は、記憶部１２に記憶されている実行順序情報７０に基づいて、実行順序上、次に実行される予定の処理の識別情報ＩＤを特定する。図３及び図４に示すように、実行順序は系列毎に規定されているので、監視部３０側では実行部２０がいずれの系列の処理を実行するか判らない。そこで、予定ＩＤ特定部３１は、系列毎に実行する処理の識別情報を特定する。具体的には、予定ＩＤ特定部３１は、最初に、制御アプリＡ６１の系列について先頭ＩＤである「０１」、及び制御アプリＢ６２の系列について先頭ＩＤである「０５」の２つの識別情報ＩＤを、実行予定ＩＤとして特定する。予定ＩＤ特定部３１は、特定した系列毎の実行予定ＩＤをＩＤ判定部３２へ出力する。さらに、予定ＩＤ判定部３１は、系列毎に増分値Ｃを実行予定ＩＤに加算し、次々に実行予定ＩＤを特定する処理を行い、系列毎に、末尾ＩＤまで特定が終わると再び先頭ＩＤを特定する。
【００３９】
ＩＤ判定部３２は、ＩＤ通知部２２ａから通知されてくる識別情報ＩＤと、予定ＩＤ特定部３１から入力された系列毎の識別情報ＩＤのいずれかと一致するか否かを判定する。ＩＤ判定部３２は一致すると判定した場合、一致した識別情報ＩＤを予定ＩＤ特定部３１へ出力する。予定ＩＤ特定部３１は、ＩＤ判定部３２から入力される識別情報ＩＤが含まれる系列において、特定している実行予定ＩＤに増分値Ｃを加算し、新たな実行予定ＩＤとして、ＩＤ判定部３２へ出力する。一方、ＩＤ判定部３２は一致しないと判定した場合には、対応決定部３３へ、ＩＤ通知部２２ａから通知されてきた識別情報ＩＤを出力する。
【００４０】
対応決定部３３は、ＩＤ判定部３２から識別情報ＩＤを取得すると、該識別情報ＩＤが制御アプリＡ６１又は制御アプリＢ６２のいずれの系列の処理であるかを特定し、系列番号及び識別情報ＩＤをエラー処理部４０へ通知する。例えば、ＩＤ判定部３２から取得した識別情報ＩＤが「０６」であったとすると、実行順序情報７０に基づき、系列番号２の系列で実行順序エラーが発生していることが判るので、系列番号「２」及び識別情報ＩＤ「０６」をエラー処理部４０へ通知する。
【００４１】
エラー処理部４０は、対応決定部３３から入力される系列番号及び識別情報ＩＤに基づいて、予め定めてある所定のエラー処理を行う。所定のエラー処理には、例えば、実行中の処理データを退避する処理、制御アプリによる処理を最初から再起動するリセット処理などがある。
【００４２】
次に、監視部３０による実行順序の監視処理について説明する。図５は、監視部３０による実行順序の監視処理の手順を示すフローチャートである。制御装置１００は、最初に起動されるときには各部で用いるデータがプリセット値等に設定される。制御装置１００起動時に、監視部３０は、予定ＩＤ特定部３１にて複数の系列毎に先頭ＩＤを実行順序情報７０から読み込み、実行予定ＩＤとしてＩＤ判定部３２へ出力し、監視処理を開始する。
【００４３】
監視部３０は、ＩＤ判定部３２により、ＩＤ通知部２２ａから通知される、実行する処理の識別情報ＩＤを取得する（ステップＳ０１）。ＩＤ判定部３２は、ＩＤ通知部２２ａから取得した識別情報ＩＤが、予定ＩＤ特定部３１から入力された系列毎の実行予定ＩＤのいずれかと一致するか否かを判定する（ステップＳ０２）。ＩＤ判定部３２は、一致しないと判定した場合（Ｓ０２：ＮＯ）、ＩＤ通知部２２ａから通知されてきた識別情報ＩＤを対応決定部３３へ出力し、対応決定部３３は、ＩＤ判定部３２から識別情報ＩＤを取得すると、該識別情報ＩＤの処理が属する制御アプリの系列を特定する（ステップＳ０３）。対応決定部３３は、特定した系列の系列番号及び取得した識別情報ＩＤをエラー処理部４０へ通知し（ステップＳ０４）、ＩＤ通知部２２ａから通知された１つの識別情報ＩＤに対する監視処理が終了する。なお、エラー処理部４０では、対応決定部３３から入力される系列番号及び識別情報ＩＤに基づいて、予め定めてある所定のエラー処理が行われる。
【００４４】
例えば、予定ＩＤ特定部３１がＩＤ判定部３２へ出力した実行予定ＩＤが、制御アプリＡ６１の系列で「０１」、制御アプリＢ６２の系列で「０５」である場合に、ＩＤ判定部３２がＩＤ通知部２２ａから取得した識別情報ＩＤが「０６」であったとする。このとき、ＩＤ判定部３２は、ＩＤ通知部２２ａから取得した識別情報ＩＤが系列毎のいずれの実行予定ＩＤとも一致しないと判定し、ＩＤ通知部２２ａから取得した識別情報ＩＤ「０６」を対応決定部３３へ出力する。対応決定部３３は、ＩＤ判定部３２から識別情報ＩＤ「０６」を取得すると、該識別情報ＩＤの処理が属する系列の系列番号「２」を特定する。対応決定部３３は、特定した系列番号「２」及び識別情報ＩＤ「０６」をエラー処理部４０へ通知する。
【００４５】
ＩＤ判定部３２は、ステップＳ０２において一致すると判定した場合（Ｓ０２：ＹＥＳ）、一致した識別情報ＩＤを予定ＩＤ特定部３１へ出力する。予定ＩＤ特定部３１は、ＩＤ判定部３２から識別情報ＩＤを取得すると、取得した識別情報ＩＤが末尾ＩＤであるか否かを判定する（ステップＳ０５）。予定ＩＤ特定部３１は、取得した識別情報ＩＤが末尾ＩＤでないと判定した場合（Ｓ０５：ＮＯ）、識別情報ＩＤが一致した系列の実行予定ＩＤを、ＩＤ判定部３２から取得した識別情報ＩＤに増分値Ｃを加算した新たなＩＤに特定する（ステップＳ０６）。一方、予定ＩＤ特定部３１は、取得した識別情報ＩＤが末尾ＩＤであると判定した場合（Ｓ０５：ＹＥＳ）、識別情報ＩＤが一致した系列の実行予定ＩＤを、先頭ＩＤに特定する（ステップＳ０７）。ステップＳ０６及びステップＳ０７による処理の後、新たに特定された実行予定ＩＤが予定ＩＤ特定部３１からＩＤ判定部３２へ出力され、ＩＤ通知部２２ａから通知された１つの識別情報ＩＤに対する監視処理が終了する。
【００４６】
例えば、予定ＩＤ特定部３１がＩＤ判定部３２へ出力した実行予定ＩＤが、制御アプリＡ６１の系列で「０１」、制御アプリＢ６２の系列で「０５」である場合に、ＩＤ判定部３２がＩＤ通知部２２ａから取得した識別情報ＩＤが「０１」であったとする。このとき、ＩＤ判定部３２は、ＩＤ通知部２２ａから取得した識別情報ＩＤが系列毎のいずれかの実行予定ＩＤに一致すると判定し、ＩＤ通知部２２ａから取得した識別情報ＩＤ「０１」を予定ＩＤ特定部３１へ出力する。予定ＩＤ特定部３１は、取得した識別情報ＩＤ「０１」は末尾ＩＤでないと判定し、識別情報ＩＤが一致した制御アプリＡ６１の系列の実行予定ＩＤを、ＩＤ判定部３２から取得した識別情報ＩＤ「０１」に増分値Ｃ（＝１）を加算した新たなＩＤ「０２」に特定し、ＩＤ判定部３２へ出力する。ＩＤ判定部３２は、次にＩＤ通知部２２ａから通知されてくる識別情報ＩＤに対する判定では、実行予定ＩＤとして、制御アプリＡ６１の系列で「０２」、制御アプリＢ６２の系列で「０５」を用いることになる。
【００４７】
以上のように、本実施形態によれば、記憶部１２に、複数系列の実行順序情報７０を記憶しており、実行部２０は、ＩＤ通知部２２ａにより実行する処理に付された識別情報ＩＤを出力する。監視部３０では、予定ＩＤ特定部３１により、記憶部１２に記憶された複数系列の実行順序情報７０に基づき、系列毎に実行予定ＩＤを特定する。ＩＤ判定部３２は、ＩＤ通知部２２ａから通知された識別情報ＩＤが、予定ＩＤ特定部３１により系列毎に特定された実行予定ＩＤに一致するか否かを判定し、一致しないと判定した場合にはエラー処理部４０へ通知する。これにより、制御装置１００は、複数系列の実行順序が規定される場合にも、系列毎に実行順序の監視を行うことができる。
【００４８】
また、本実施形態によれば、記憶部１２は、複数系列の実行順序に係る先頭ＩＤ及び末尾ＩＤを順序番号として記憶し、ＩＤ通知部２２ａは、実行する処理に付された識別情報ＩＤとしての順序番号を出力する。監視部３０では、予定ＩＤ特定部３１により、実行予定ＩＤとして、系列毎に先頭ＩＤによる順序番号から末尾ＩＤによる順序番号までを順次繰り返し特定する。これにより、記憶部１２に記憶する実行順序情報が、複数系列の実行順序に係る先頭ＩＤ及び末尾ＩＤであるため、記憶しておく実行順序情報のデータ量を少なくすることができる。
【００４９】
（実施の形態２）
実施の形態１においては、実行順序の規定は、先頭ＩＤから末尾ＩＤまでの処理が順次繰り返し実行されるというものであったが、繰り返しの先頭ＩＤを処理開始時の先頭ＩＤと異なるように定める実行順序の規定としてもよい。図６は、本発明の実施の形態２に係る制御装置１００において規定される複数系列の実行順序について説明するための模式図であり、図７は、処理に付された識別情報に基づく複数系列の実行順序情報７０を示す図表である。なお、実施の形態２における制御装置１００は、以下に説明するほか、図１から図５に基づき説明した実施の形態１における制御装置１００と同等であり、簡便のため説明を省略する。
【００５０】
制御アプリＡ６１における処理Ａ０１から処理Ａ０４、及び制御アプリＢ６２における処理Ｂ０１から処理Ｂ０３について規定される実行順序は、繰り返し先頭ＩＤが定める実行順序としている。即ち、制御アプリＡ６１において、最初に処理Ａ０１から処理Ａ０４の順で処理を実行した後、繰り返しの先頭ＩＤである処理Ａ０２に戻り、処理Ａ２から処理Ａ０４の順で繰り返し実行する。また、制御アプリＢ６２において、最初に処理Ｂ０１から処理Ｂ０３の順で処理を実行した後、繰り返しの先頭ＩＤである処理Ｂ０３を繰り返し実行する。
【００５１】
上述の実行順序に係る実行順序情報７０は、図７に示すように、系列毎に、先頭ＩＤ、繰返先頭ＩＤ、末尾ＩＤ及び系列番号を含むものであり、記憶部１２に記憶しておく。監視部３０における予定ＩＤ特定部３１は、記憶部１２から繰返先頭ＩＤを読み出して用いる。具体的には、図５における監視処理にてステップＳ０７で実行予定ＩＤを繰返先頭ＩＤに特定すればよい。
【００５２】
以上のように、本実施形態によれば、記憶部１２は、複数系列の実行順序に係る先頭ＩＤ及び末尾ＩＤ、並びに繰返先頭ＩＤとして順序番号を記憶する。予定ＩＤ特定部３１は、実行予定ＩＤとして、系列毎に、先頭ＩＤによる順序番号から末尾ＩＤの順序番号までを順次特定し、さらに繰返先頭ＩＤによる順序番号から末尾ＩＤによる順序番号までを順次繰り返し特定する。これにより、制御装置１００において、繰り返しの先頭ＩＤを処理開始時の先頭ＩＤと異なるように定める実行順序の規定に基づいて、処理の監視を行うことができる。
【００５３】
具体的には、電源オンなどの特定の条件が成立したときにデータを初期化する処理を起動し、その後は周期的に各種データを取得する処理を実行するような場合に好適である。この場合、例えば、図６における処理Ａ０１がデータ初期化処理に、処理Ａ０２から処理Ａ０４までが周期的に各種データを取得する処理に対応する。
【００５４】
また、スリ−プ状態からの復帰処理など、特定の状況でのみ起動し、移行後は停止し続けるモード遷移処理にも好適である。この場合、例えば、図６における処理Ｂ０１及び処理Ｂ０２が特定条件化で起動する処理に、処理Ｂ０３が停止処理に対応する。
【００５５】
（実施の形態３）
上述の各実施の形態においては、エラー処理部４０によるエラー処理時においても監視部３０は、処理の実行順序を監視し続けるようにしているが、リセット処理が完了するまでエラー処理部４０への通知を禁止するようにしてもよい。図８は、エラー処理時において監視し続ける場合の監視処理について説明するための模式図である。制御アプリＡ６１の処理Ａ０１から処理Ａ０４に対する実行順序の規定は、図６及び図７に示す繰り返し先頭ＩＤを定めたものであるとする。
【００５６】
図８において、処理Ａ０２を実行した後に処理Ａ０４が実行されると、監視部３０は、処理Ａ０３が実行されなかったという誤りが発生したため、エラー処理部４０へ通知する。エラー処理部４０は、監視部３０からの通知に基づいて、最初のリセット処理要求を実行部２０へ出力する。さらに監視部３０により監視し続けると、処理Ａ０３が何らかの理由で実行されない状態となっている場合には、処理Ａ０２の実行後、先と同じように処理Ａ０４が実行される事象が再び発生し、監視部３０は、再びエラー処理部４０へ通知する。エラー処理部４０は、監視部３０からの通知に基づいて、２度目のリセット処理要求を実行部２０へ出力してしまう。
【００５７】
図８に示すように最初のリセット処理要求により、処理Ａ０１から再起動したにも関わらず、２度目のリセット処理要求により、再度、処理Ａ０１から再起動することになり、処理遅延の原因になってしまう。
【００５８】
そこで、本実施の形態では、一時的に監視部３０からエラー処理部４０への通知を禁止することとする。図９は、本発明の実施の形態３に係る監視部による実行順序の監視処理の手順を示すフローチャートであり、図１０及び図１１は、エラー処理時の監視処理について説明するための模式図である。
【００５９】
図９により、監視部３０による実行順序の監視処理について説明する。制御装置１００は、最初に起動されるときには各部で用いるデータがプリセット値等に設定される。制御装置１００起動時に、監視部３０は、予定ＩＤ特定部３１にて複数の系列毎に先頭ＩＤを実行順序情報７０から読み込み、実行予定ＩＤとしてＩＤ判定部３２へ出力し、監視処理を開始する。
【００６０】
監視部３０は、ＩＤ判定部３２により、ＩＤ通知部２２ａから通知される、実行する処理の識別情報ＩＤを取得する（ステップＳ１１）。ＩＤ判定部３２は、ＩＤ通知部２２ａから取得した識別情報ＩＤが、予定ＩＤ特定部３１から入力された系列毎の実行予定ＩＤのいずれかと一致するか否かを判定する（ステップＳ１２）。ＩＤ判定部３２は、一致しないと判定した場合（Ｓ１２：ＮＯ）、ＩＤ通知部２２ａから通知されてきた識別情報ＩＤを対応決定部３３へ出力し、対応決定部３３は、ＩＤ判定部３２から識別情報ＩＤを取得すると、該識別情報ＩＤの処理が属する制御アプリの系列を特定する（ステップＳ１３）。対応決定部３３は、特定した系列に対するエラー通知禁止フラグが「１」であるか否かを判定する（ステップＳ１４）。エラー通知禁止フラグが「１」である場合（Ｓ１４：ＹＥＳ）、エラー処理部４０へ通知することが禁止されており、ＩＤ通知部２２ａから通知された１つの識別情報ＩＤに対する監視処理は終了する。なお、エラー通知禁止フラグは系列毎に設けられており、「０」または「１」の値をとる。エラー通知禁止フラグが「０」の場合には、監視部３０からエラー処理部４０へのエラー通知が可能であり、「１」の場合には、監視部３０からエラー処理部４０へのエラー通知が禁止されるものである。
【００６１】
ステップＳ１４における判定の結果、エラー通知禁止フラグが「１」でない場合（Ｓ１４：ＮＯ）、対応決定部３３は、特定した系列の系列番号及び取得した識別情報ＩＤをエラー処理部４０へ通知する（ステップＳ１５）。対応決定部３３は、特定した系列のエラー通知禁止フラグを「１」に設定し（ステップＳ１６）、予定ＩＤ特定部３１へ、実行予定ＩＤを先頭ＩＤに特定するように指令する。予定ＩＤ特定部３１は、指令に基づき特定した系列の実行予定ＩＤを先頭ＩＤに特定し（ステップＳ１７）。ＩＤ通知部２２ａから通知された１つの識別情報ＩＤに対する監視処理が終了する。なお、エラー処理部４０では、対応決定部３３から入力される系列番号及び識別情報ＩＤに基づいて、予め定めてある所定のエラー処理が行われる。
【００６２】
ＩＤ判定部３２は、ステップＳ１２において一致すると判定した場合（Ｓ１２：ＹＥＳ）、ＩＤ通知部２２ａから取得した識別情報ＩＤを対応決定部３３及び予定ＩＤ特定部３１へ出力する。対応決定部３３は、ＩＤ通知部２２ａから取得した識別情報ＩＤがエラー通知禁止フラグが「１」の系列の先頭ＩＤであるか否かを判定する（ステップＳ１８）。対応決定部３３は、エラー通知禁止フラグが「１」の系列の先頭ＩＤであると判定した場合（Ｓ１８：ＹＥＳ）、エラー通知禁止フラグを「０」に設定する（ステップＳ１９）。これにより、以降のエラー処理部３０への通知の禁止が解除されることになる。エラー通知禁止フラグが「１」の系列の先頭ＩＤでない場合（Ｓ１８：ＮＯ）、エラー通知禁止フラグはそのままとする。
【００６３】
ステップＳ１８にてＮＯと判定した場合、及びステップＳ１９による処理の後、予定ＩＤ特定部３１は、ＩＤ判定部３２から出力される識別情報ＩＤを取得すると、取得した識別情報ＩＤが末尾ＩＤであるか否かを判定する（ステップＳ２０）。予定ＩＤ特定部３１は、取得した識別情報ＩＤが末尾ＩＤでないと判定した場合（Ｓ２０：ＮＯ）、識別情報ＩＤが一致した系列の実行予定ＩＤを、ＩＤ判定部３２から取得した識別情報ＩＤに増分値Ｃを加算した新たなＩＤに特定する（ステップＳ２１）。一方、予定ＩＤ特定部３１は、取得した識別情報ＩＤが末尾ＩＤであると判定した場合（Ｓ２０：ＹＥＳ）、識別情報ＩＤが一致した系列の実行予定ＩＤを、繰返先頭ＩＤに特定する（ステップＳ２２）。ステップＳ２１及びステップＳ２２による処理の後、新たに特定された実行予定ＩＤが予定ＩＤ特定部３１からＩＤ判定部３２へ出力され、ＩＤ通知部２２ａから通知された１つの識別情報ＩＤに対する監視処理が終了する。
【００６４】
上述の処理について、図１０及び図１１により具体例で説明する。図１０における処理Ａ０２の実行後、処理Ａ０４が実行されると、ＩＤ判定部３２は、処理Ａ０４の識別情報ＩＤを対応決定部３３に出力する。対応決定部３３は、ステップＳ１３より、取得した識別情報ＩＤの系列番号を「１」に特定する。実行順序エラーが初めて生じたものとすると、エラー通知禁止フラグはどの系列についても「０」であるので、ステップＳ１４の判定は「ＮＯ」となる。対応決定部３３は、ステップＳ１５によりエラー処理部４０へ通知し、ステップＳ１６により系列番号「１」のエラー通知禁止フラグを「１」に設定する。予定ＩＤ判定部３１は、ステップＳ１７により、系列番号「１」の実行予定ＩＤを先頭ＩＤに特定する。エラー処理部４０は、通知に基づき系列番号「１」の処理につきリセット処理要求を実行部２０へ出力しているものとする。
【００６５】
次にＩＤ通知部２２ａから、順に処理Ａ０２、処理Ａ０４の識別情報ＩＤがＩＤ判定部３２に出力されると、ＩＤ判定部３２は、ステップＳ１２により一致しないと判定し、ＩＤ通知部２２ａから通知された識別情報ＩＤを対応決定部３３へ出力する。対応決定部３３は、取得した識別情報ＩＤにより、系列番号を「１」と特定する。対応決定部３３は、ステップＳ１４の判定において、系列番号「１」のエラー通知禁止フラグが現在「１」であるため、エラー処理部４０へ通知することなく、処理Ａ０２、処理Ａ０４に対する監視処理を終了する。
【００６６】
次に、実行部２０による系列番号「１」の処理のリセットが完了し、ＩＤ通知部２２ａから、処理Ａ０１の識別情報ＩＤがＩＤ判定部３２に出力されると、ＩＤ判定部３２は、ステップＳ１２により一致すると判定し、ＩＤ通知部２２ａから通知された識別情報ＩＤを対応決定部３３及び予定ＩＤ特定部３１へ出力する。対応決定部３３は、ステップＳ１８にて、取得した識別情報ＩＤにより、エラー通知禁止フラグが「１」の系列の先頭ＩＤであると判定し、ステップＳ１９によりエラー通知禁止フラグを「０」に設定する。予定ＩＤ特定部３１は、ステップＳ２０により取得したＩＤが末尾ＩＤであるか否かを判定する。取得したＩＤは処理Ａ０１に係る「０１」であるので、末尾ＩＤではないと判定し、ステップＳ２１により、取得したＩＤに増分値Ｃ（＝１）を加算して、新たな実行予定ＩＤを特定する。特定した実行予定ＩＤはＩＤ判定部３２へ出力されて、処理Ａ０１に対する監視処理を終了する。この段階で、監視処理は、エラー通知禁止フラグが「０」に戻されて、エラー処理部４０への通知が可能な通常の監視状態に戻っている。
【００６７】
この後、図１１に示すように、再び処理Ａ０２の次に処理Ａ０４が実行されるという実行順序エラーが生じると、監視部３０からエラー処理部４０へ通知され、エラー処理部４０は実行部２０に対してリセット処理要求を出力する。
【００６８】
以上のように、本実施形態によれば、エラー処理部４０は、対応決定部３３からの通知に基づき実行部２０へ処理の再起動を指令するようにしてあり、対応決定部３３は、エラー処理部３０へ通知した後、実行部２０が先頭ＩＤの実行順序が付された処理を実行するまで、エラー処理部４０への通知を停止するようにしてあるので、処理が再起動されるまでに、繰り返し実行順序の誤りが発生して再起動が遅延することを防ぐことができる。
【００６９】
（実施の形態４）
本発明の実施の形態４においては、上述の各実施形態による制御装置１００にさらにウォッチドッグ監視部５０を付加する。図１２は本発明の実施の形態４に係る制御装置１００の構成を示すブロック図である。ウォッチドッグ監視部５０は、自己への信号が所定期間内に監視対象から出力されなかった場合に実行部２０へ処理の再起動を通知する。このウォッチドッグ監視部５０への信号出力は監視部３０から行う。なお、実施の形態４における制御装置１００は、以下に説明するほか、上述の各実施形態における制御装置１００と同等であり、簡便のため説明を省略する。
【００７０】
図１３は、制御アプリＡ６１について規定される実行順序について説明するための模式図であり、図１４は、ウォッチドッグ監視部５０への出力信号の設定を説明するための模式図である。例として、制御アプリＡ６１について、処理Ａ０１から処理Ａ０４までを順次繰り返す実行順序が規定されているものとする。また、監視部３０は、処理Ａ０１（識別情報ＩＤ０１）が実行されるときに、ウォッチドッグ監視部５０への出力信号を「０」に切り替え、処理Ａ０４（識別情報ＩＤ０４）が実行されるときに、ウォッチドッグ監視部５０への出力信号を「１」に切り替える。ここで、実行時にウォッチドッグ監視部５０への出力値が切り替わる処理Ａ０１及び処理Ａ０４の識別情報ＩＤを、ウォッチドッグ用ＩＤと称すことにする。
【００７１】
ウォッチドッグ監視部５０は、リセット信号の入力（詳細には入力信号の立ち上がり）によりリセットされる所定ビット数のカウンタ回路を有し、リセット信号が入力されずにカウンタ回路がオーバフローしたときに、実行部２０へ処理の再起動を通知する。上述のウォッチドッグ用ＩＤをもつ処理Ａ０４が実行されることにより、監視部３０は、ウォッチドッグ監視部５０にリセット信号を入力する。他の制御アプリＢ６２等についても、同様に実行順序が規定され、ウォッチドッグ用ＩＤを設定し、制御アプリ毎にウォッチドッグ監視部５０による監視を行うようにしてもよい。以下、簡便のため制御アプリＡ６１に対してウォッチドッグ監視部５０を付加して監視する処理について説明する。
【００７２】
図１５は、ウォッチドッグ監視部５０へ信号出力する処理の手順を示すフローチャートである。上述の実施の形態１から３と同様に、ＩＤ判定部３２は、ＩＤ通知部２２ａから実行する処理の識別情報ＩＤを取得する（ステップＳ３１）。ＩＤ判定部３２は、ＩＤ通知部２２ａから取得した識別情報ＩＤが実行予定ＩＤと一致するか否かを判定するとともに、ＩＤ通知部２２ａから取得した識別情報ＩＤがウォッチドッグ用ＩＤのいずれかに一致するか否かを判定する（ステップＳ３２）。ＩＤ判定部３２は、ステップＳ３２により一致すると判定した場合（Ｓ３２：ＹＥＳ）、ＩＤ通知部２２ａから取得した識別情報ＩＤをウォッチドッグ用として対応決定部３３へ出力する。対応決定部３３は、ＩＤ判定部３２から取得した識別情報ＩＤに対応する値の出力信号をウォッチドッグ監視部５０へ出力し（ステップＳ３３）、ＩＤ通知部２２ａから通知された１つの識別情報ＩＤに対する監視処理を終了する。また、ＩＤ判定部３２がステップＳ３２により一致しないと判定した場合（Ｓ３２：ＮＯ）、ＩＤ通知部２２ａから通知された１つの識別情報ＩＤに対する監視処理を終了する。
【００７３】
具体例で説明すると、最初に、ＩＤ通知部２２ａから処理Ａ０１の識別情報ＩＤ０４が通知されると、ＩＤ判定部３２は、ステップＳ３２の判定により、ウォッチドッグ用ＩＤ０１に一致するので、対応決定部３３へ識別情報ＩＤ０１を出力する。対応決定部３３は、識別情報ＩＤ０１に対応する出力信号「０」を出力する。その後、処理Ａ０２及び処理Ａ０３が実行されると、ＩＤ判定部３２は、ウォッチドッグ用ＩＤに一致しないので、対応決定部３３への出力は行わない。従って、対応決定部３３からウォッチドッグ監視部５０への出力は「０」のままとなる。
【００７４】
処理Ａ０４が実行され、ＩＤ通知部２２ａから処理Ａ０４の識別情報ＩＤ０４が通知されると、ＩＤ判定部３２は、ステップＳ３２の判定により、ウォッチドッグ用ＩＤ０４に一致するので、対応決定部３３へ識別情報ＩＤ０４を出力する。対応決定部３３は、識別情報ＩＤ０４に対応する出力信号「１」に切り替える。さらに、処理Ａ０１が実行され、ＩＤ通知部２２ａから処理Ａ０１の識別情報ＩＤ０１が通知されると、ＩＤ判定部３２は、ステップＳ３２の判定により、ウォッチドッグ用ＩＤ０１に一致するので、対応決定部３３へ識別情報ＩＤ０１を出力する。対応決定部３３は、識別情報ＩＤ０４に対応する出力信号「０」に切り替える。このように、処理Ａ０４の実行によって、対応決定部３３は、ウォッチドッグ監視部５０にリセット信号が出力する。制御アプリＡ６１が何らかの理由で処理が止まってしまった場合には、対応決定部３３はリセット信号を出力できなくなり、ウォッチドッグ監視部５０は制御アプリＡ６１の再起動を実行部２０へ通知する。
【００７５】
以上のように、本実施形態においては、ＩＤ通知部２２ａから特定の識別情報ＩＤが出力されたときに、対応決定部３３は、処理が継続していることを示すリセット信号を出力し、リセット信号が所定期間内に出力されなかった場合には、ウォッチドッグ監視部５０が実行部２０へ処理の再起動を通知する。これにより、制御プログラムによる処理が何らかの理由で止まってしまった場合に、プログラムによる処理をリセットすることができる。
【００７６】
（実施の形態５）
本発明の実施の形態４では、上述の各実施形態に係る制御装置１００において、接続されている車載機器８の状態により、実行され得る制御アプリに対する実行順序の監視を行い、実行されない制御アプリに対しては実行順序の監視を行わないようにする。図１６は、本発明の実施の形態５に係る制御装置１００において機器の所定状態に対する実施され得る処理系列について説明するための模式図である。
【００７７】
例えば、ドアロック機構、エンジンスイッチ等の車載機器８を制御する制御装置において、エンジンキーが挿入されていないときには、ドア制御プログラムは実行され得るが、エンジン始動制御プログラムが実行されることはない。図１６には、制御アプリＡ６１がドア制御プログラムであり、制御アプリＢ６２がエンジン始動制御プログラムであるとしている。各制御アプリは、機器であるエンジンキーの所定状態（位置）によって、実行され得るか、実行されないかが決まる。実行され得る制御アプリについては処理の実行順序を監視し、実行されない制御アプリについては処理の実行順序の監視を行わない。
【００７８】
具体的には、エンジンキーが挿入されていない状態、ＯＦＦの位置にある状態、ＡＣＣの位置にある状態では、制御アプリＡ６１の処理の実行順序を監視し、制御アプリＢ６２の処理の実行順序は監視しない。また、エンジンキーがＯＮの位置にある状態、ＳＴＡＲＴの位置にある状態では、制御アプリＡ６１及び制御アプリＢ６２の両方について、処理の実行順序を監視する。エンジンキーの各状態は、エンジンキーが挿入されていることを検出するスイッチ、及びエンジンキーが回転されて各位置にあることを検出するスイッチからの信号が入出力Ｉ／Ｆ１３に入力されることにより、検知することができる。
【００７９】
記憶部１２には、図１６に示すような、機器の所定状態と実行され得る処理系列との対応関係のテーブルを記憶しておく。該テーブルに基づいて、監視部３０は、検知されたエンジンキーの各状態に対応して実行順序の監視を行う制御アプリを決定する。予定ＩＤ特定部３１は、決定された実行順序の監視を行う制御アプリに係る処理の識別情報を特定するようにする。
【００８０】
以上のように、記憶部１２は、車載機器８の所定状態と、複数系列のうち該所定状態にて実行され得る処理の識別情報を含む処理系列とを対応づけて記憶しており、予定ＩＤ特定部３１は、車載機器８が所定状態となったときに、該所定状態と対応づけて記憶部１２に記憶してある系列に係る実行順序情報に基づき、実行部２０が実行する処理の識別情報ＩＤを特定する。これにより、車載機器８が所定状態である場合に実行されない処理に対する実行順序の監視を行わないようにすることができる。
【００８１】
また、車載機器８の態に応じて実行順序の監視を行わないこととした制御アプリについては、該制御アプリに係る処理が実行されると異常状態であることになる。そこで、監視部３０により、実行順序の監視を行わないこととした制御アプリに係る処理が実行されないかを監視するようにしてもよい。図１６に示す具体例を用いて説明すると、エンジンキーがＯＦＦの位置にあることが検出された状態で、制御アプリＢ６２は実行順序の監視対象から外れるが、制御アプリＢ６２の処理が実行されないか監視する。
【００８２】
例えば、処理Ｂ０１（ＩＤ０５）が実行されると、ＩＤ通知部２２ａから識別情報ＩＤ０５がＩＤ判定部３２に通知されるので、ＩＤ判定部３２は、識別情報ＩＤ０５が予定ＩＤ特定部３１により特定された実行予定ＩＤではないので、識別情報ＩＤ０５を対応決定部３３へ出力する。対応決定部３３は、識別情報ＩＤに基づき制御アプリＢ６２の処理であることを特定すると、エラー処理部４０へ、制御アプリＢ６２の系列番号「２」と、異常処理の発生を通知する通知信号を出力する。エラー処理部４０は、制御アプリＢ６２のエラー処理を行うが、具体的には、制御アプリＢ６２によるエンジン始動制御の停止を実行部２０へ通知する。これにより、処理の実行順序の監視だけでなく、車載機器の状態に応じて、異常な処理が発生しないか監視することができる。
【００８３】
なお、以上の各実施形態において、各制御アプリに係る複数の処理の構成単位は、各制御アプリの構成や実行順序監視の実設計に合わせて、プログラム規模が小さい個々のプログラム部品（例えば、関数のような機能的に纏りがある処理）単位から、プログラム部品を組み合わせたタスク、又はプロシジャーなどのプログラム規模が大きい処理単位まで任意に選択することができる。
【００８４】
なお、開示された実施の形態は、全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上述の説明ではなく特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【００８５】
１００  制御装置
１２  記憶部
２０  実行部
２２ａ  ＩＤ通知部（出力手段）
３０  監視部
３１  予定ＩＤ特定部（特定手段）
３２  ＩＤ判定部（判定手段）
３３  対応決定部（通知手段、信号出力手段）
４０  エラー処理部
５０  ウォッチドッグ監視部（第２監視部）
【図１】
0005861438.tif 000002
【図２】
0005861438.tif 000003
【図３】
0005861438.tif 000004
【図４】
0005861438.tif 000005
【図５】
0005861438.tif 000006
【図６】
0005861438.tif 000007
【図７】
0005861438.tif 000008
【図８】
0005861438.tif 000009
【図９】
0005861438.tif 000010
【図１０】
0005861438.tif 000011
【図１１】
0005861438.tif 000012
【図１２】
0005861438.tif 000013
【図１３】
0005861438.tif 000014
【図１４】
0005861438.tif 000015
【図１５】
0005861438.tif 000016
【図１６】
0005861438.tif 000017