(57)【要約】      （修正有）【課題】発生した異常の対処が次の処理周期まで遅延することをなくし、また短周期制御モジュールプログラムにおいて頻繁にインターフェイスプログラムに異常を確認することによる処理負荷の増加をなくす車載制御装置を提供する。【解決手段】車載制御装置のインターフェイスプログラム５は、通知を必要とするモジュールプログラムの異常通知受領部のみに対して異常を通知する手段５１を備え、各モジュールプログラム１２ａ、１２ｂ、１２ｃは、自モジュールプログラムに通知が必要な異常の通知のみを受け取り、通知された異常に対して自モジュールプログラムに適した判定を行い、異常が判定された際に異常対処が必要な場合は、異常の対処を行う異常通知受領部１２２ａ、１２２ｂ、１２２ｃを備えている。【選択図】図１Ｂ
2017173947.tif 000002
【特許請求の範囲】
【請求項１】
制御対象を制御する第１のモジュールプログラムを実行する第１のコア、前記制御対象とは異なる制御対象を前記第１のモジュールプログラムより短い周期で制御する第２のモジュールプログラムを実行する第２のコア、および前記第１のモジュールプログラムと前記第２のモジュールプログラムとを接続するインターフェイスプログラムと前記第１のモジュールプログラムと前記第２のモジュールプログラムとを格納するＲＯＭを備えた車載制御装置において、
前記第１のモジュールプログラムおよび前記第２のモジュールプログラムが異常検知部および異常通知受領部を有し、
前記異常検知部が自身のモジュールプログラム内の異常を検知した際に、異常を検知した前記異常検知部からインターフェイスプログラムに前記検知した異常を通知し、
前記インターフェイスプログラムが前記異常の通知を必要とするモジュールプログラムの前記異常通知受領部のみに対して異常を選択通知し、
前記異常を通知された前記異常通知受領部は異常対処を行う必要があるか否かを判定し前記異常対処が必要な場合は前記異常対処の処理を実行する
ことを特徴とする車載制御装置。
【請求項２】
請求項１に記載の車載制御装置において、
前記インターフェイスプログラムが、予め発生し得る異常とその異常の通知が必要なモジュールプログラムの異常通知受領部とが登録されている対応表を有し、
前記第１のモジュールプログラムおよび前記第２のモジュールプログラムの任意のモジュールプログラムから前記インターフェイスプログラムに対して異常を通知した際に、前記インターフェイスプログラムは前記対応表を参照し、通知された異常に対してモジュールプログラムの異常通知受領部が登録されている場合のみ、当該登録されている異常通知受領部へ異常を通知する
ことを特徴とする車載制御装置。
【請求項３】
請求項２に記載の車載制御装置において、
前記インターフェイスプログラムが、予め発生し得る異常とその異常の通知が必要なコアＩＤとが登録されている対応表を有し、
前記第１のモジュールプログラムおよび前記第２のモジュールプログラムの任意のモジュールプログラムから前記インターフェイスプログラムに対して異常を通知した際に、前記インターフェイスプログラムは、前記対応表を参照し、通知された異常に対してコアＩＤが登録されている場合のみ、当該登録されているコアＩＤに対応するコアで実行されるモジュールプログラムの前記異常通知受領部に異常を通知する
ことを特徴とする車載制御装置。
【請求項４】
請求項３に記載の車載制御装置において、
ＲＡＭにあらかじめ設定された優先度に従って、優先度の低い異常通知処理中に、優先度の高い異常が発生した場合、優先度の低い異常通知処理を中断し、優先度の高い異常通知処理を開始し、優先度の高い異常通知処理が完了した後、優先度の低い異常通知処理を再開する
ことを特徴とする車載制御装置。
【請求項５】
請求項１に記載の車載制御装置において、
前記第１のモジュールプログラムおよび前記第２のモジュールプログラムの各々の前記異常通知受領部は、自モジュールプログラムでの異常対処の要否を自モジュールプログラムに適した判定を行い、異常対処する
ことを特徴とする車載制御装置。
【請求項６】
請求項５に記載の車載制御装置において、
前記異常通知受領部は、前記異常の判定によって、自モジュールプログラムの周期処理を停止する必要があると判定した際に、スケジューラに対して前記周期処理の呼び出しを停止する指示を行う
ことを特徴とする車載制御装置。
【請求項７】
請求項１から請求項６のいずれか一に記載の車載制御装置において、
前記第２のモジュールプログラムが車載のインバータの制御を行う
ことを特徴とする車載制御装置。
【請求項８】
車載の制御対象の制御を行う第１のモジュールプログラムと、前記第１のモジュールプログラムよりも長い周期で前記制御対象とは異なる車載の制御対象の制御を行う第２のモジュールプログラムとを接続するインターフェイスプログラムであって、
前記第１のモジュールプログラムおよび前記第２のモジュールプログラムの少なくとも一のモジュールプログラムが、自身のモジュールプログラム内の異常を検知する異常検知部および前記インターフェイスプログラムから異常通知を受けると異常対処を行う必要があるか否かを判定し前記異常対処が必要な場合は前記異常対処の処理を実行する異常通知受領部を有し、
前記インターフェイスプログラムは、前記異常検知部が検知した自身のモジュールプログラム内の異常が、当該異常を検知した異常検知部から通知され、
前記インターフェイスプログラムは、前記異常の通知を必要とするモジュールプログラムの前記異常通知受領部のみに対して異常を選択通知する
ことを特徴とするインターフェイスプログラム。
【請求項９】
請求項８に記載のインターフェイスプログラムにおいて、
前記インターフェイスプログラムが、予め発生し得る異常とその異常の通知が必要なモジュールプログラムの前記異常通知受領部とが登録されている対応表を有し、
前記インターフェイスプログラムは、前記第１のモジュールプログラムおよび前記第２のモジュールプログラムの任意のモジュールプログラムから前記異常が通知されると、前記対応表を参照し、通知された異常に対して前記対応表に前記モジュールプログラムの異常通知受領部が登録されている場合のみ、当該登録されている異常通知受領部へ異常を通知する
ことを特徴とするインターフェイスプログラム。
【請求項１０】
請求項８または請求項９に記載のインターフェイスプログラムにおいて、
前記第１のモジュールプログラムおよび前記第２のモジュールプログラムがマルチコアプロセッサで実行され、
前記インターフェイスプログラムは、予め発生し得る異常とその異常の通知が必要なコアＩＤとが登録されている対応表を有し、
前記インターフェイスプログラムは、前記第１のモジュールプログラムおよび前記第２のモジュールプログラムの任意のモジュールプログラムから前記異常が通知されると、前記対応表を参照し、通知された異常に対してコアＩＤが登録されている場合のみ、当該登録されているコアで実行されるモジュールプログラムの前記異常通知受領部に異常を通知する
ことを特徴とするインターフェイスプログラム。
【請求項１１】
請求項８から請求項１０のいずれか一に記載のインターフェイスプログラムにおいて、
あらかじめ設定された優先度に従って、優先度の低い異常通知処理中に、優先度の高い異常が発生した場合、優先度の低い異常通知処理を中断し、優先度の高い異常通知処理を開始し、優先度の高い異常通知処理が完了した後、優先度の低い異常通知処理を再開することを特徴とするインターフェイスプログラム。
【請求項１２】
車載の制御対象の制御を行う第１のモジュールプログラムと、前記第１のモジュールプログラムよりも長い周期で前記制御対象とは異なる車載の制御対象の制御を行う第２のモジュールプログラムとを有し、第１のモジュールプログラムと前記第２のモジュールプログラムとがインターフェイスプログラムで接続されるモジュールプログラムあって、
前記第１のモジュールプログラムおよび前記第２のモジュールプログラムの少なくとも一のモジュールプログラムが、自身のモジュールプログラム内の異常を検知する異常検知部、および前記インターフェイスプログラムから前記異常検知部からの異常通知に基づく異常通知を受けると異常対処を行う必要があるか否かを判定する異常通知受領部を有している
ことを特徴とするモジュールプログラム。
【請求項１３】
請求項１２に記載のモジュールプログラムにおいて、
異常通知受領部は、前記異常対処が必要と判定した場合は前記異常対処の処理を実行する
ことを特徴とするモジュールプログラム。
【請求項１４】
請求項１２または請求項１３に記載のモジュールプログラムにおいて、
前記異常通知受領部は、前記異常の判定によって、自モジュールプログラムの周期処理を停止する必要があると判定した際に、スケジューラに対して前記周期処理の呼び出しを停止する指示を行う
ことを特徴とするモジュールプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車載制御装置並びにそのインターフェイスプログラム及びモジュールプログラムに関し、例えば１ミリ秒よりも短い処理周期でリアルタイム性の高い制御処理を実行するモジュールプログラムを搭載した車載制御装置において、検知したモジュールプログラムの異常を効率よく通知し、モジュールプログラム数の増加に伴い増加する異常確認処理によるＣＰＵ負荷をできるだけ抑える場合に有用である。
【背景技術】
【０００２】
自動車には、各種機器を制御するために、マイクロプロセッサを用いた車載制御装置（ＥＣＵ）が搭載されている。ＥＣＵには、一般にセンサ入力、他ＥＣＵとの通信、制御対象への制御量の指示等を行う複数のモジュールプログラムが搭載されており、それらを統括するモジュールプログラム（アプリケーションプログラム）が一つ以上搭載されている。各モジュールプログラムの主たる処理（以下、「メイン処理」と記す）は、一般にリアルタイムＯＳ等のスケジューラによって周期的かつ非同期に呼び出され、その周期は各モジュールプログラムの処理内容によって異なる。
【０００３】
このように構成されたＥＣＵにおいて、モジュールプログラム内のいずれかの箇所で異常が発生した場合、例えば従来技術１として、異常検知したモジュールプログラムが、異常を一元管理するモジュールプログラム（以下、「異常管理モジュールプログラム」と記す）に通知する方法が知られている。
【０００４】
前記異常管理モジュールプログラムのメイン処理は、前述のスケジューラによって周期的かつ非同期に呼び出され、前回のメイン処理の完了後に通知を受けた異常は、次のメイン処理で異常の発生が確かなものかどうかを判定し、異常の発生が確定した場合は、必要に応じて確定した異常の記憶処理や異常確定処理等を行う。
【０００５】
発生した異常によって特定の機能を抑制または変更する方法として、例えば従来技術２として、通知された各種異常に対して抑制・変更する機能を判定し一元管理するモジュールプログラム（以下、「機能抑制モジュールプログラム」と記す）に通知する方法が知られている。
【０００６】
前記機能抑制モジュールプログラムのメイン処理についても、従来技術１と同様に周期的かつ非同期に呼び出され、前回のメイン処理完了後に通知を受けた異常は、次のメイン処理で機能の抑制・変更が必要か否かを判定する。ＥＣＵ内で動作する各モジュールプログラムは個別にメイン処理を実行する前に、機能抑制モジュールプログラムに対して機能の抑制・変更の状況を問い合わせ、直後に実行する機能が抑制・変更の対象となっている場合は、その機能を実行しないか、もしくは変更した機能を実行してメイン処理を終了する。
【０００７】
インターフェイスプログラムを用いた異常対処手法として、例えば特許文献１に提示された方法が知られている。特許文献１によれば、複数のモジュールプログラムからインターフェイスプログラムに対して異常が通知され、インターフェイスプログラムは通知された異常に対して論理演算を実施し、異常の検出結果を判断する外部制御モジュールプログラムから参照可能な公開フラグに記憶する。外部制御モジュールプログラムは、その処理内から公開フラグを参照し、異常発生の有無を確認しながら動作する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００２−３４２０７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ＥＣＵの中で、特にインバータ等の電圧および電流制御を行う処理は、通常そのメイン処理の呼び出し周期が１ミリ秒未満と、一般に想定されるリアルタイム処理よりも短いことが知られている。
【００１０】
従来技術１によれば、異常を検知したモジュールプログラムは、発生した異常を異常管理モジュールプログラムに通知し、異常管理モジュールプログラムはこの異常を自モジュールプログラム内に設けられたキューに追加する。キューに追加された異常は、そのメイン処理内で、追加された順に処理される。したがって、発生した異常に対して何らかの対処が必要な場合、その処理は次のメイン処理が実行されるまで対処が遅延することとなり、その遅延時間は最長でおよそメイン処理の周期となる。異常管理モジュールプログラムのメイン処理周期は、スケジューラの設定もしくは実装により変更可能であり、前述の遅延時間を短くすることは可能である。しかしながら、あるモジュールプログラムが検知した異常の即時対処を、異常を検知したモジュールプログラムとは別のモジュールプログラムが必要とする場合に、その対処が、例えば異常管理モジュールプログラムのメイン処理のように、次の周期処理の時点まで遅延されるのでは、即時対処の要求を本質的に満たすことができないという課題がある。
【００１１】
前記の課題は、一般に、周期制御処理を行うモジュールプログラムを含むＥＣＵにおいて、モジュールプログラムが異常を検知した周期制御処理内で、その異常について即時対処を要する別のモジュールプログラムに対して異常を通知する手段またはインターフェイスプログラムが提供されない場合に生じる。また、この課題は、異常を検知したモジュールプログラムの処理周期よりも短い周期で制御処理を行うモジュールプログラムに異常を通知する必要がある場合により深刻となる。
【００１２】
異常を検知したモジュールプログラムの処理周期を短くすることで、通知を早めることは可能であるが、この方法では本来の処理に不必要に短い処理周期で周期処理を呼び出すこととなり、単位時間における処理の実行回数が増加するため、プロセッサへの処理負荷を高めてしまうという課題がある。
【００１３】
従来技術２によれば、各モジュールプログラムは、図２に例示のように、それぞれの周期処理の中で、特定の異常に応じて抑制または変更が必要な機能を実行する場合は、機能抑制モジュールプログラムに機能の抑制・変更の必要性の有無を確認し（Ｓ１１１）、その確認結果に応じて通常時の処理または異常発生時の処理に分岐する必要がある（Ｓ１１２）。この確認処理Ｓ１１１および条件分岐処理Ｓ１１２に要する時間だけ本来の処理（Ｓ１１３またはＳ１１４）の開始が遅れることとなり、また確認処理Ｓ１１１および条件分岐処理Ｓ１１２に要する処理量だけプロセッサに負担をかける。
【００１４】
制御装置の通常の運用において、実際に異常を検知する機会は少なく、ほとんどの場合は異常を検知しない結果となるため、各周期処理において、通常は発生しない事象について確認し条件分岐するために、プロセッサに一定の処理負荷をかけ続けることになる。
【００１５】
前記処理負荷は、実行を要する周期処理数の増加に伴い増加し、また各プログラムモジュールの処理周期が短くなればなるほど、前記異常確認処理の処理負荷に占める割合は増加する。
【００１６】
ＥＣＵの制御内容として、例えばインバータや昇圧回路の制御においては、１ミリ秒未満の周期で制御処理を実行する要求があり、このような制御を含んだＥＣＵでは、前記異常確認処理の処理負荷に占める割合が大きくなり、このため本来実行すべき制御処理に割ける時間が十分に確保できなくなる問題がある。
【００１７】
前記問題は、従来技術２の機能抑制モジュールプログラムおよび特許文献１に提示されたインターフェイスプログラムに対して異常発生の有無を確認する際のみならず、一般に周期処理内で異常発生の有無を確認する際に発生すると考えられ、異常の確認が頻繁に実施されるほど、フラグ参照の処理自体がプロセッサ処理負荷に占める割合が増加するという課題がある。
【００１８】
また、マルチコアシステムにおいて、短い周期の処理を一つのコアに割り当てて実行する場合には、従来技術２の機能抑制モジュールプログラムもしくは特許文献１に提示されたインターフェイスプログラムのような、異常に関する情報を一元管理する手法を適用すると、短周期で異常の発生の有無を確認するために外部コアの機能抑制モジュールプログラムに対して問い合わせを行うか、もしくは共有メモリ上のフラグを参照する必要が生じるため、短周期処理を実行するＣＰＵの処理量に異常発生確認処理の占める割合が高くなるという課題がある。また、短周期処理を実行するＣＰＵによる頻繁な共有メモリへのアクセスにより、他のコアが共有メモリアクセスする際に遅延が発生するため、他のコアの処理性能を低下させる課題がある。
【００１９】
特許文献１による検出結果判断処理では、あらかじめ決められた論理演算によって異常の検出結果が判断され、判断結果は外部から参照可能なフラグに格納されるのみであるため、異常の検出結果が得られた直後に対処が必要な処理を各モジュールプログラムに実行させることができないという課題がある。
【００２０】
本発明は、上記のような課題を解決するためになされたものであり、処理周期ごとに異常の発生をインターフェイスプログラムに問い合わせる必要をなくすことにより、発生した異常の対処が次の処理周期まで遅延することをなくし、また短周期制御モジュールプログラムにおいて頻繁にインターフェイスプログラムに異常を確認することによる処理負荷の増加をなくすことを目的とする。
【課題を解決するための手段】
【００２１】
本発明に係る車載制御装置は、制御対象を制御する第１のモジュールプログラムを実行する第１のコア、前記制御対象とは異なる制御対象を前記第１のモジュールプログラムより短い周期で制御する第２のモジュールプログラムを実行する第２のコア、および前記第１のモジュールプログラムと前記第２のモジュールプログラムとを接続するインターフェイスプログラムと前記第１のモジュールプログラムと前記第２のモジュールプログラムとを格納するＲＯＭを備えた車載制御装置において、前記第１のモジュールプログラムおよび前記第２のモジュールプログラムが異常検知部および異常通知受領部を有し、前記異常検知部が自身のモジュールプログラム内の異常を検知した際に、異常を検知した前記異常検知部からインターフェイスプログラムに前記検知した異常を通知し、前記インターフェイスプログラムが前記異常の通知を必要とするモジュールプログラムの前記異常通知受領部のみに対して異常を選択通知し、前記異常を通知された前記異常通知受領部は異常対処を行う必要があるか否かを判定し前記異常対処が必要な場合は前記異常対処の処理を実行するものである。
【発明の効果】
【００２２】
本発明の請求項１に係る車載制御装置によれば、モジュールプログラム内の異常発生個所に拘わらず、発生した異常を通知する処理をインターフェイスプログラムが提供し、インターフェイスプログラムは異常の通知が必要なモジュールプログラムにのみ通知することにより、異常の対処が必要なモジュールプログラムは、その処理周期ごとに異常の発生をインターフェイスプログラムに対して確認する必要がなくなり、発生した異常に対して即時対処が必要な処理が次の処理周期まで遅延することがなくなる。また、処理周期ごとに異常の発生をインターフェイスプログラムに対して確認する必要がなくなることで、モジュールプログラムの処理周期の短期化に伴う処理負荷の増加を抑えられる。
【００２３】
本発明の請求項４に係る車載制御装置によれば、発生し得る異常に対して予め優先度を定義することで、低い優先度の異常の通知処理中に高い優先度の異常が発生した場合に、低い優先度の異常の通知処理を一時中断し、高い優先度の異常の通知処理を低い優先度の異常の通知処理よりも先に完了することができ、高い優先度の異常の対処が低い優先度の異常の通知処理によって遅延させられることを防ぐことができる。
【図面の簡単な説明】
【００２４】
【図１Ａ】本発明の実施の形態１に係る車両制御装置の構成の一例を示すブロック図で、車載の制御対象の制御を行うモジュールプログラムの異常通知および異常通知受領処理が実行される車両制御装置の具体的構成を例示する図である。
【図１Ｂ】図１ＡにおけるＲＯＭに格納された各種プログラムの事例を例示する図である。
【図１Ｃ】図１Ｂにおけるインターフェイスプログラムの異常通知コア振り分け手段およびコア内異常通知手段の事例を例示する図である。
【図１Ｄ】図１ＡにおけるＲＡＭの共有メモリ部および各モジュールプログラムからのアクセス部の事例を例示する図である。
【図２】本発明の実施の形態１と効果上の差異を比較するための従来の異常通知手法を適用した場合の各モジュールプログラムの周期処理の流れをフローチャートで例示する図である。
【図３Ａ】本発明の実施の形態１に係る車両制御装置における複数のモジュールプログラムの各異常検知部のいずれかで異常を検知した際の処理手順をフローチャートで例示する図である。
【図３Ｂ】本発明の実施の形態１に係る車両制御装置におけるインターフェイスプログラムの異常通知コア振り分け手段の異常通知処理手順をフローチャートで例示する図である。
【図３Ｃ】本発明の実施の形態１に係る車両制御装置におけるインターフェイスプログラムのコア内異常通知手段の異常通知処理手順をフローチャートで例示する図である。
【図４】図１Ｂに例示のモジュールプログラムの異常通知受領部における処理の流れをフローチャートで例示する図である。
【図５Ａ】本発明の実施の形態１に係る車両制御装置において異常判定フラグを、ＲＡＭの共有メモリ部内ではなく、モジュールプログラム内に保有することによるモジュールプログラムの周期処理の流れをフローチャートで例示する図である。
【図５Ｂ】本発明の実施の形態１に係る車両制御装置においてモジュールプログラムの周期処理を停止する必要がある場合にモジュールプログラムの異常通知受領部内で周期処理のスケジューラを停止させ、その後モジュールプログラム１２ｂの周期処理が起動されないようにする場合のモジュールプログラムの周期処理の流れをフローチャートで例示する図である。
【発明を実施するための形態】
【００２５】
実施の形態１．
以下に、本発明を実施するための実施の形態１について、図面に基づいて説明する。なお、全ての図において、図中、同一、相当部分には、同一符号を付している。
【００２６】
図１Ａは、本実施の形態１に係る異常通知方法が実施される車載制御装置ＥＣＵの構成の一例を示す。ＥＣＵ１は、外部や制御対象からのセンサ電圧およびデジタル入力回路１０と、ＣＰＵ１１と、ＲＯＭ１２と、ＲＡＭ１３と、Ｉ／Ｏ１４と、Ｉ／Ｏ１４から制御されるアクチュエータ駆動回路１５と、モータ１６とから成る。
本実施の形態１では、マイコンの外部に付加する回路としてアクチュエータ駆動回路１５、制御対象にモータ１６を例示しているが、本発明を適用し得る車載制御装置ＥＣＵの構成がこの例に限定されることはなく、例えばアクチュエータ駆動回路１５をコンバータとし、モータ１６をＬＥＤとしてその照度制御を行う際にも、本実施の形態１と同様に高いリアルタイム性が求められることがあるため、本発明を効果的に適用し得る。
図１Ａに例示のように、ＣＰＵ１１は、周知のマイクロプロセッサ・アーキテクチャを用いたコア１１ａ、コア１１ｂ、コア１１ｃの３個のコアから成るマルチコアプロセッサであり、各コアはソフトウェア割り込み命令を備えており、またそれぞれ別のコアに対して割込みを発生させることができる。各コアは、ＲＯＭ１２に記憶されるモジュールプログラムを並列に実行し、ＲＡＭ１３を共有メモリとして読み書きすることができる。なお、コアの数は要求に応じて任意の個数に決定され、ＲＯＭ１２及びＲＡＭ１３はコアの数やその他の要求によっては複数用いられることもある。
【００２７】
ＲＯＭ１２には、図１Ｂに例示されている様に、コア１１ａによってそれぞれ実行されるモジュールプログラム１２ａと、コア１１ｂによってそれぞれ実行されるモジュールプログラム１２ｂと、コア１１ｃによってそれぞれ実行されるモジュールプログラム１２ｃと、インターフェイスプログラム５とが記憶されている。
モジュールプログラム１２ａ、１２ｂ、１２ｃは、図１Ｂに例示のように、それぞれ自己の異常検知部１２１ａ、１２１ｂ、１２１ｃおよび異常通知受領部１２２ａ、１２２ｂ、１２２ｃを含んでいる。
モジュールプログラム１２ａ、１２ｂ、１２ｃの、車載制御対象を制御するための処理の周期（つまり制御処理周期）は任意であるが、本実施の形態ではモジュールプログラム１２ａを制御処理周期が長い長周期制御用のモジュールプログラム、モジュールプログラム１２ｂ、１２ｃを制御処理周期が短い短周期制御用のモジュールプログラムであるとし、車載制御対象を制御するための処理の周期（以下、単に「処理周期」と記す）はモジュールプログラム１２ａが最長（以下、「長周期」と記す）で、モジュールプログラム１２ｃが最短（以下、「短周期」と記す）であるとし、モジュールプログラム１２ｂは、モジュールプログラム１２ｃより処理周期は長いがモジュールプログラム１２ａより処理周期が短い短周期であるものとする。
なお、前記異常検知部１２１ａ、１２１ｂ、１２１ｃおよび異常通知受領部１２２ａ、１２２ｂ、１２２ｃは、何れも前記モジュールプログラム１２ａ、１２ｂ、１２ｃ内のサブプログラムである。
モジュールプログラム１２ａのような長周期制御用のモジュールプログラムが行う制御処理の例として、ＥＣＵの状態や各処理の実行状況の監視、外部との通信処理、発生した異常を不揮発メモリへ記録する処理等、インバータ制御処理に直接関係しない、短周期制御が不要な処理や異常への対処が挙げられる。
モジュールプログラム１２ｂのような、周期が比較的短い制御用のモジュールプログラムが行う制御処理の例として、センサ電圧およびデジタル入力回路１０から取得される入力値、外部との通信から得られる情報、ＥＣＵの状態等から総合的に決定される上位レベルの制御目標値（出力電流値）の算出、インバータ制御異常の検出等が挙げられる。
モジュールプログラム１２ｃのような短周期制御用のモジュールプログラムが行う制御処理例として、モータの位置および電流・電圧値を示すセンサ電圧を入力回路１０から取得し、その状態や上位レベルの制御目標値等からＩ／Ｏ１４へのＰＷＭ周期およびデューティ比を算出し出力する処理等、インバータ制御に求められる最短周期の制御処理およびこれと密に関係する処理が挙げられる。
【００２８】
インターフェイスプログラム５は、図１Ｂに例示のように、異常通知を各コア１１ａ、１１ｂ、１１ｃに振り分ける異常通知コア振り分け手段５１と、コア１１ａ内の異常を通知するコア１１ａ内異常通知手段５２ａと、コア１１ｂ内の異常を通知するコア１１ｂ内異常通知手段５２ｂと、コア１１ｃ内の異常を通知するコア１１ｃ内異常通知手段５２ｃとを含んでいる。
異常通知コア振り分け手段５１は、ＲＯＭ１２のモジュールプログラム１２ａ、１２ｂ、１２ｃの異常検知部１２１ａ、１２１ｂ、１２１ｃの各々から呼び出し可能である。前記各異常検知部１２１ａ、１２１ｂ、１２１ｃから同一の異常通知コア振り分け手段５１を呼び出すことができない場合は、異常通知コア振り分け手段５１を呼び出すことができるように、コア１１ａ内異常通知手段５２ａ、コア１１ｂ内異常通知手段５２ｂ、コア１１ｃ内異常通知手段５２ｃは、対応するコア１１ａ、コア１１ｂ、コア１１ｃ上で実行される。
なお、異常通知コア振り分け手段５１、コア１１ａ内異常通知手段５２ａ、コア１１ｂ内異常通知手段５２ｂ、およびコア１１ｃ内異常通知手段５２ｃは何れも、前記インターフェイスプログラム５内のサブプログラムである。
【００２９】
図１Ｄに例示のように、ＲＡＭ１３の共有メモリ部には、異常通知の完了を確認するための異常通知完了カウンタ１３１と、検知した異常の種別を一意に判別可能なように予め決定した数値（以下、「異常ＩＤ」と記す）を記憶する箇所１３４ａ、１３４ｂ、１３４ｃがモジュールプログラム１２ａ、１２ｂ、１２ｃのそれぞれに対応して設けられている。
異常通知完了カウンタ１３１は、インターフェイスプログラム５が開始される際にゼロに初期化される。
また、特定の異常を他の異常よりも優先して処理する要求がある場合は、各異常ＩＤについて予め優先度を決定しておき、共有メモリ部には優先度ごとに記憶箇所を設ける。図１Ｄでは、異常の優先度として高優先度と低優先度の２つを定義し、それぞれの優先度について異常ＩＤを記憶可能な低優先度異常番号１３２および高優先度異常番号１３３を設けているが、優先度の種類は２つに限定されない。
異常通知完了カウンタ１３１、低優先度異常番号１３２、および高優先度異常番号１３３は、２つ以上のコアから同時に書き込みが行われることがあるため、周知のスピンロックの仕組みを用いて値の読み書きを行う。
また、ＲＡＭ１３には、図３Ｄに例示のように、モジュールプログラム１２ａ、１２ｂ、１２ｃからアクセスされる異常ＩＤ格納配列１３４ａ、１３４ｂ、１３４ｃおよび異常判定フラグ１３５ａ、１３５ｂ、１３５ｃが、ＲＯＭ１２のモジュールプログラム１２ａ、１２ｂ、１２ｃに対応して設けられている。
異常ＩＤ格納配列１３４ａ、１３４ｂ、１３４ｃは、対応するモジュールプログラム１２ａ、１２ｂ、１２ｃの異常通知受領部１２２ａ、１２２ｂ、１２２ｃから読み書きされ、対応するモジュールプログラム１２ａ、１２ｂ、１２ｃから過去に通知された異常ＩＤをすべて保持する。なお、各モジュールプログラム１２ａ、１２ｂ、１２ｃの各々が通知を要する異常の数は予め決定されるため、異常ＩＤ格納配列１３４ａ、１３４ｂ、１３４ｃは固定長の配列である。
対応するモジュールプログラム１２ａ、１２ｂ、１２ｃの異常通知受領部１２２ａ、１２２ｂ、１２２ｃにおいて、対応するコア内異常通知手段５２ａ、５２ｂ、５２ｃから通知された異常から異常内容の判定を行い、各モジュールプログラム１２ａ、１２ｂ、１２ｃにおいて異常の対処が「必要」と判定された場合には「ＴＲＵＥ」を、「必要ない」と判定された場合に「ＦＡＬＳＥ」を、異常判定フラグ１３５ａ、１３５ｂ、１３５ｃに格納する。
ＲＡＭ１３の異常判定フラグ１３５ａ、１３５ｂ、１３５ｃは、ＲＯＭ１２のモジュールプログラム１２ａ、１２ｂ、１２ｃの周期処理１２３ａ、１２３ｂ、１２３ｃから異常対処の要否確認のために、必要に応じて読み出される。
なお、ＲＡＭ１３の異常判定フラグ１３５ａ、１３５ｂ、１３５ｃは、ＣＰＵ１１のコア１１ａ、１１ｂ、１１ｃのうちの対応するコア以外の異なるコアからアクセスされることがないため、読み書きの際にスピンロックの仕組みは不要であるが、本実施の形態では、周知のアトミックアクセス手段による読み書きが必要である。
【００３０】
前記ＥＣＵ１で実行されるモジュールプログラム１２ａ、１２ｂ、１２ｃ内の異常検知部１２１ａ、１２１ｂ、１２１ｃのいずれかで異常を検知してから異常通知受領部１２２ａ、１２２ｂ、１２２ｃの処理が完了するまでの処理手順について、図３を用いて説明する。
ここでは、一例として、コア１１ａが実行する長周期制御用のモジュールプログラム１２ａの異常検知部１２１ａにおいて、外部通信バスからの受信タイムアウト、受信データの異常値検出、深刻度の低いセキュリティアクセスの失敗など、本実施形態では比較的低優先度に分類される異常を検知し、この異常が最終的にモジュールプログラム１２ｂの異常通知受領部１２２ｂに通知される場合の処理手順を説明する。
【００３１】
モジュールプログラム１２ａの異常検知部１２１ａが異常通知コア振り分け手段５１を呼び出す処理手順について、図３Ａを用いて説明する。
コア１１ａのモジュールプログラム１２ａ内の周期処理において異常の発生を検知した際に（Ｓ２１１）、ＲＯＭ１２のインターフェイスプログラム５の異常通知コア振り分け手段５１を呼び出す（Ｓ２１２）。その際のモジュールプログラム１２ａからインターフェイスプログラム５への通知方法の一例として、モジュールプログラム１２ａで検知した異常に対応する異常ＩＤを、異常通知コア振り分け手段５１の処理呼び出しの際に当該処理呼び出しの引数として与える。
【００３２】
インターフェイスプログラム５の異常通知コア振り分け手段５１の異常通知処理手順について、図３Ｂを用いて説明する。
異常通知コア振り分け手段５１は、新たに異常の通知処理を開始する前に、前回の異常の通知処理が完了しているかを確認する（Ｓ５１１）。確認方法の例として、本実施の形態では、ＲＡＭ１３の共有メモリ部の異常通知完了カウンタ１３１がゼロであることを確認する。
異常通知完了カウンタ１３１がゼロでない場合は、直前に別の異常通知が開始され、異常通知が完了していないことを示すため、前回の異常通知が完了するまで待つ（Ｓ５１２）。その際、スピンロック取得待ちのために短期間待ちを発生させる命令を使用することが望ましい。
【００３３】
異常通知完了カウンタ１３１がゼロであることを確認した後、新たに検知した異常（前述の長周期制御用のモジュールプログラム１２ａの異常検知部１２１ａで検知した低優先度の異常）について、ＲＡＭ１３に設けられた各コア間の共有メモリ部に異常ＩＤを低優先度異常番号１３２に記録する（Ｓ５１３）。なお、異常ＩＤ記録の際に、異常ＩＤそのものと、異常ＩＤの各ビットを反転した２つの値を格納する等して冗長性を持たせてもよい。
【００３４】
次に、インターフェイスプログラム５の異常通知コア振り分け手段５１は、自身に含まれる異常ＩＤコア対応表５１０（図１Ｃに例示の異常ＩＤコア対応表５１０）を参照し、異常ＩＤを通知する必要があるコアを特定する（Ｓ５１４）。
異常通知コア振り分け手段５１で異常ＩＤに対応するコアを特定できた場合は、そのコアに含まれるいずれかのモジュールプログラムが今回の異常ＩＤの通知を必要としているため、ＲＡＭ１３の異常通知完了カウンタ１３１に１を加算した後（Ｓ５１５）、特定したコアに対して異常を通知するために割り込みを発生させる（Ｓ５１６）。
本実施の形態では、段落番号００３０で前述したように、説明のために短周期制御用のモジュールプログラム１２ｂに異常を通知することにしているため、インターフェイスプログラム５のコア１１ｂ内異常通知手段５２ｂの処理を割り込みの発生によって開始させる。
異常ＩＤに対応して特定したコアが自コアである場合は、ソフトウェア割り込み命令を用いて、自コアに対する異常通知処理を他コアと同様に割り込みとして処理してもよい。
自コアを含め、異常ＩＤに対応するコアが該当しない場合は、今回の異常ＩＤをどこにも通知する必要がないため、異常通知コア振り分け手段５１を終了する。
【００３５】
本実施の形態では、段落番号００３０で前述したように、説明のために短周期制御用のモジュールプログラム１２ｂに異常を通知することにしているため、コア１１ｂが異常通知割込みを受けた場合、割り込み処理としてインターフェイスプログラム５のコア１１ｂ内異常通知手段５２ｂが起動される。
インターフェイスプログラム５のコア１１ｂ内異常通知手段５２ｂの異常通知処理手順について、図３Ｃを用いて説明する。
コア１１ｂ内異常通知手段５２ｂは、発生した異常をＲＡＭ１３の共有メモリ部の低優先度異常番号１３２から読み取る（Ｓ５３１）。
次に、コア１１ｂ内異常通知手段５２ｂは、コア１１ｂ内異常通知手段５２ｂ自身に含まれる異常ＩＤモジュールプログラム対応表５２１ｂを参照し、異常ＩＤを通知する必要があるモジュールプログラムの異常通知受領部を特定する（Ｓ５３２）。その後、異常の通知を要するすべてのモジュールプログラムの異常通知受領部を呼び出す（Ｓ５３３）。Ｓ５３３において、異常ＩＤを通知する必要があるモジュールプログラムの異常通知受領部への異常ＩＤの通知方法の一例として、Ｓ５３１で取得した異常ＩＤを、異常ＩＤを通知する必要があるモジュールプログラムの異常通知受領部呼び出しの際に当該処理呼び出しの引数として与える。その後、異常通知完了カウンタ１３１から１を減算した後（Ｓ５３４）、コア１１ｂ内異常通知手段５２ｂの異常通知処理を終了する。
【００３６】
本実施の形態では、段落番号００３０で前述したように、説明のために短周期制御用のモジュールプログラム１２ｂに異常を通知することにしているため、異常通知は、インターフェイスプログラム５のコア１１ｂ内異常通知手段５２ｂから、短周期制御用のモジュールプログラム１２ｂの異常通知受領部１２２ｂが呼び出される。
異常通知受領部１２２ｂの異常通知受領処理の処理手順を、図４を用いて説明する。
異常通知受領部１２２ｂは、通知を受けた異常を、図１Ｄに例示のＲＡＭ１３の異常ＩＤ格納配列１３４ｂに追加記憶する（Ｓ３２１）。
次に、図１Ｄに例示のＲＡＭ１３の異常ＩＤ格納配列１３４ｂに記憶されている過去に通知を受けた異常と今回新たに通知を受けた異常とについて、異常通知受領部１２２ｂは総合的に異常内容を評価する（Ｓ３２２）。ここで、前記Ｓ３２２における異常通知受領部１２２ｂでの評価処理として、例えば特許文献１に記載されているように、１つ以上の異常の組み合わせのＡＮＤ演算、ＯＲ演算、これらの演算の組み合わせ等を実施することもあるが、演算を行わず、発生した個々の異常に個別対処することもある。
【００３７】
短周期制御用のモジュールプログラム１２ｂの異常通知受領部１２２ｂでの前記Ｓ３２２における評価処理の結果、異常通知受領部１２２ｂは異常対処を行う必要があるか否かを判別し（Ｓ３２３）、その結果、異常対処が不要な場合は、ＲＡＭ１３の異常判定フラグ１３５ｂに「ＦＡＬＳＥ」を記憶し（Ｓ３２４）、モジュールプログラム１２ｂの異常通知受領部１２２ｂでの処理を終了する。
【００３８】
Ｓ３２３において異常通知受領部１２２ｂで異常対処を行う必要があるか否かを判別した結果、異常対処が必要と判定した場合は、ＲＡＭ１３の異常判定フラグ１３５ｂに「ＴＲＵＥ」を記憶し（Ｓ３２５）、この判定結果について即時対処が必要か否かを異常通知受領部１２２ｂが判別する（Ｓ３２６）。
Ｓ３２６において異常通知受領部１２２ｂが判別した結果、異常に対して即時対処が必要な場合は、直ちに即時異常対処処理を実行する（Ｓ３２７）。
なお、異常通知受領部１２２ｂ内は割り込み処理であるため、即時異常対処処理は必要最小限であることが望ましい。
ここで、異常判定フラグ１３５ｂを、ＲＡＭ１３の共有メモリ部内ではなく、モジュールプログラム１２ｂ内に保有することにより、モジュールプログラム１２ｂの周期処理は、図５Ａに例示してあるように、図２では必要であった周期処理の冒頭における従来技術２を使用した機能抑制モジュールプログラム、インターフェイスプログラム５等の外部に対して異常発生を問い合わせる必要がなくなるため、異常発生確認のためのＣＰＵ処理負荷が軽減される効果が得られる。また、異常判定フラグ１３５ｂをＲＡＭ１３の共有メモリ内に配置しないことで、モジュールプログラム１２ｂの周期処理は、その冒頭で他コアとのＲＡＭ１３の共有メモリ部へのアクセス競合によるアクセス待ちが発生することを回避でき、遅延の少ない異常確認が可能となるため、異常発生確認のためのＣＰＵ処理負荷が軽減される効果が得られる。
【００３９】
前記Ｓ３２３の判定の対処として、モジュールプログラム１２ｂの周期処理を停止する必要がある場合は、異常通知受領部１２２ｂ内で周期処理のスケジューラを停止させ、その後モジュールプログラム１２ｂの周期処理が起動されないようにする（Ｓ３２９）。こうすることで、モジュールプログラム１２ｂの周期処理は、図５Ｂに例示してあるように、周期処理の冒頭でＲＡＭ１３の異常判定フラグ１３５ｂを確認する処理が不要となるため、異常発生確認のためのＣＰＵ処理負荷がなくなる。
【００４０】
このように、各モジュールプログラム１２ａ、１２ｂ、１２ｃの異常検知部１２１ａ、１２ｂ、１２１ｃで検知した異常を、異常の通知を要するモジュールプログラムにのみ異常を通知し、異常の通知を受けたモジュールプログラム（例えば前述の１２ｂ）の異常通知受領部（例えば前述の１２２ｂ）が、自モジュールに適した異常対処方法（異常対処プログラム）が個別に実装されていることにより、図２に例示した各モジュールプログラムの処理周期ごとの異常発生の確認処理および条件分岐処理を軽減または省略することができる。この軽減および省略による効果は、短処理周期制御モジュールプログラム数が多い車載制御装置におけるプログラムの処理で顕著に現れる。
【００４１】
以上は、異常を検知した場合の処理の説明であるが、異常が発生した箇所が正常状態に復帰したことを通知する場合も、異常を検知した場合との同様の処理で各モジュールプログラム１２ａ、１２ｂ、１２ｃに通知することができ、異常通知受領部１２２ａ、１２２ｂ、１２２ｃ内で周期処理のスケジューラを停止させた場合は、異常から正常の復帰通知受領手段（図示省略）内で周期処理のスケジューラを開始させ、その後モジュールプログラム１２ａ、１２ｂ、１２ｃの周期処理が起動されるようにする。
【００４２】
コア１１ａにおいて、低優先度の異常を検知してから、各コアの異常通知処理が完了する前に、前記異常よりも優先して通知および処する必要がある高優先度の異常を別コアにて検知することがある。例えばコア１１ｂで高優先度の異常を検知した場合の対策としては、高優先度の異常ＩＤをＲＡＭ１３の共有メモリ部の高優先度異常番号１３３に格納した上で、コア１１ｂから別コアに対して発生させる割込みについても、低優先度の異常の通知の場合よりも高い優先度の割り込みを使用する。すなわち、優先度の高い異常を通知するために、優先度の低い異常を通知するのに用いる割込みの優先度よりも高い優先度を設定した割り込みを別に用意し、優先度の低い異常を通知する場合と優先度の高い異常を通知する場合でそれぞれ使い分ける。
【００４３】
高優先度の異常通知処理を低優先度の異常通知処理よりも優先度の高い割り込み処理とすることで、低優先度の異常の通知処理を中断し、高優先度の異常を低優先度の異常よりも先に通知可能となるため、高優先度の異常の対処が、低優先度の異常通知処理によって遅延することを防ぐことができる。
【００４４】
以上は３個のコアを含むＣＰＵ１１の場合について説明したが、本実施の形態はコア数が３以外でも使用可能である。また、コアを１個だけ含むＣＰＵ１１に、本実施の形態を適用する場合は、ＲＡＭ１３の共有メモリ部の異常通知完了カウンタ１３１、およびインターフェイスプログラム５の異常通知コア振り分け手段５１とコア１１ｂ内異常通知手段５２ｂとコア１１ｃ内以上通知手段５２ｃは不要であり、ＲＡＭ１３の共有メモリ部の低優先度異常番号１３２および高優先度異常番号１３３を優先度ごとに分けず、１種類とする。
【００４５】
本実施の形態１の詳細な説明は以上の通りであるが、本実施の形態１は次のような技術的な特徴を有している。
特徴１：一つ以上の短い周期で制御を行う短周期制御モジュールプログラムと、前記短周期制御モジュールプログラムよりも長い周期で制御を行う一つ以上の長周期制御モジュールプログラムを接続するインターフェイスプログラムにおいて、前記短周期制御モジュールプログラムまたは前記長周期制御モジュールプログラムが異常検知部をもち、前記異常検知部が自身のモジュールプログラム内の異常を検知した際に、異常を検知した前記異常検知部からインターフェイスプログラムにその異常を通知し、インターフェイスプログラムがその異常の通知を必要とするモジュールプログラムの異常通知受領部のみに対して異常を選択通知する手段を備えることを特徴とするインターフェイスプログラムである。
特徴２：特徴１に記載のインターフェイスプログラムにおいて、前記の異常を選択通知する手段は、予め発生し得る異常とその異常の通知が必要なモジュールプログラムの異常通知受領部とが登録されている対応表を有し、モジュールプログラムの任意の箇所からインターフェイスプログラムに対して異常を通知した際に、インターフェイスプログラムは該対応表を参照し、通知された異常に対してモジュールプログラムの異常受領部が登録されている場合のみ、異常受領部へ異常を通知することを特徴とするインターフェイスプログラム。
特徴３：特徴２に記載のインターフェイスプログラムにおいて、コアの数が２個以上のマルチコアプロセッサを使用する場合、予め発生し得る異常とその異常の通知が必要なコアＩＤを登録されている対応表を有し、モジュールプログラムの任意の箇所からインターフェイスプログラムに対して異常を通知した際に、インターフェイスプログラムは該対応表を参照し、通知された異常に対してコアＩＤが登録されている場合のみ、該コア内の異常通知手段を呼び出すことを特徴とするインターフェイスプログラム。
特徴４：特徴３に記載のインターフェイスプログラムにおいて、あらかじめ設定された優先度に従って、優先度の低い異常通知処理中に、優先度の高い異常が発生した場合、優先度の低い異常通知処理を中断し、優先度の高い異常通知処理を開始し、優先度の高い異常通知処理が完了した後、優先度の低い異常通知処理を再開することを特徴とするインターフェイスプログラム。
特徴５：特徴１に記載の短周期制御モジュールプログラムおよび長周期制御モジュールプログラムにおいて、異常通知受領部は、自モジュールプログラムでの対処の要・不要を自モジュールプログラムに適した形で演算・判定し、対処することを特徴とするモジュールプログラム。
特徴６：特徴５に記載のモジュールプログラムにおいて、前記異常通知受領部は、異常を即時対処が必要と判定した際に、該異常通知受領部内で対処を行うことを特徴とするモジュールプログラム。
特徴７：特徴６に記載のモジュールプログラムにおいて、前記異常通知受領部は、判定異常によって、自モジュールの周期処理を停止する必要があると判定した際に、スケジューラに対して該周期処理の呼び出しを停止する指示を行うことを特徴とするモジュールプログラム。
特徴８：特徴１から７に記載する処理事項のうち少なくとも一つが該当するインターフェイスプログラムおよびモジュールプログラムに従って処理を実行することを特徴とする処理実行装置。
特徴９：本実施の形態１に係るＥＣＵは、ソフトウェア割り込み命令を実行可能な一つ以上のコアを有するＣＰＵと、ＣＰＵによって実行されるインターフェイスプログラムと、一つ以上の短周期制御モジュールプログラムと、一つ以上の長周期制御モジュールプログラムとを記憶するＲＯＭと、ＣＰＵが２個以上のコアを有する場合は共有メモリとして利用可能なＲＡＭと、Ｉ／Ｏと、Ｉ／Ｏから制御されるアクチュエータ駆動回路とを備え、ＣＰＵが２個以上のコアを有する場合は各コアが別のコアに対して割込みを発生させることができ、インターフェイスプログラムは、通知を必要とするモジュールプログラムの異常通知受領部のみに対して異常を通知する手段を備え、各モジュールプログラムは、自モジュールに通知が必要な異常の通知のみを受け取り、通知された異常に対して自モジュールに適した判定を行い、異常が判定された際に即時対処が必要な場合は、異常の対処を行う異常通知受領部を備えている。
特徴１０：本実施の形態１に係るインターフェイスプログラムによれば、モジュールプログラム内の異常発生か所に関わらず、発生した異常を通知する処理をインターフェイスプログラムが提供し、インターフェイスプログラムは異常の通知が必要なモジュールプログラムにのみ通知することにより、異常の対処が必要なモジュールプログラムは、その処理周期ごとに異常の発生をインターフェイスプログラムに対して確認する必要がなくなり、発生した異常に対して即時対処が必要な処理が次の処理周期まで遅延することがなくなる。また、処理周期ごとに異常の発生をインターフェイスプログラムに対して確認する必要がなくなることで、モジュールプログラムの処理周期の短期化に伴う処理負荷の増加を抑えられる。
特徴１１：短い周期で実行される周期処理を実行する度に、その処理の冒頭で異常発生の有無をインターフェイスプログラムまたはフラグの参照によって確認すると、その確認処理のプロセッサ処理負荷に占める割合が増加するという課題を解決するために、本実施の形態１に係るインターフェイスプログラムは、通知を必要とするモジュールプログラムの異常通知受領部のみに対して異常を通知する手段を備え、各モジュールプログラムは、自モジュールに通知が必要な異常の通知のみを受け取り、通知された異常に対して自モジュールに適した判定を行い、異常が判定された際に即時対処が必要な場合は、異常の対処を行う異常通知受領部を備えている。
【産業上の利用可能性】
【００４６】
本発明は、短い処理周期で処理を実行する制御装置（例えば車載インバータ制御装置）において、ＣＰＵの処理量を低く抑える異常の対処策として利用することができる。
【００４７】
なお、本発明は、その発明の範囲内において、実施の形態を適宜、変形、一部省略することができる。
【符号の説明】
【００４８】
１    車載制御装置、
１０    センサ電圧およびデジタル入力回路、
１１    ＣＰＵ、    １１ａ、１１ｂ、１１ｃ    コア、
１２    ＲＯＭ、
１３    ＲＡＭ、
１４    Ｉ／Ｏ、
１５    アクチュエータ駆動回路、
１６    モータ、
１２ａ、１２ｂ、１２ｃ    モジュールプログラム、
１２１ａ、１２１ｂ、１２１ｃ    異常検知部、
１２２ａ、１２２ｂ、１２２ｃ    異常通知受領部、
１２３ａ、１２３ｂ、１２３ｃ    周期処理、
５    インターフェイスプログラム、
５１    異常通知コア振り分け手段、
５１０    異常コアＩＤコア対応表、
５２ａ、５２ｂ、５２ｃ    コア内異常通知手段、
５２１ｂ    異常ＩＤモジュールプログラム対応表、
１３１    異常通知完了カウンタ、
１３２    低優先度異常番号、
１３３    高優先度異常番号、
１３４ａ、１３４ｂ、１３４ｃ    異常ＩＤ格納配列、
１３５ａ、１３５ｂ、１３５ｃ    異常判定フラグ
【図１Ａ】
2017173947.tif 000003
【図１Ｂ】
2017173947.tif 000004
【図１Ｃ】
2017173947.tif 000005
【図１Ｄ】
2017173947.tif 000006
【図２】
2017173947.tif 000007
【図３Ａ】
2017173947.tif 000008
【図３Ｂ】
2017173947.tif 000009
【図３Ｃ】
2017173947.tif 000010
【図４】
2017173947.tif 000011
【図５Ａ】
2017173947.tif 000012
【図５Ｂ】
2017173947.tif 000013
【手続補正書】
【提出日】平成29年2月15日(2017.2.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
制御対象を制御する第１のモジュールプログラムを実行する第１のコア、前記制御対象とは異なる制御対象を前記第１のモジュールプログラムより短い周期で制御する第２のモジュールプログラムを実行する第２のコア、および前記第１のモジュールプログラムと前記第２のモジュールプログラムとを接続するインターフェイスプログラムと前記第１のモジュールプログラムと前記第２のモジュールプログラムとを格納するＲＯＭを備えた車載制御装置において、
前記第１のモジュールプログラムおよび前記第２のモジュールプログラムが異常検知部および異常通知受領部を有し、
前記異常検知部が自身のモジュールプログラム内の異常を検知した際に、異常を検知した前記異常検知部からインターフェイスプログラムに前記検知した異常を通知し、
前記インターフェイスプログラムが前記異常の通知を必要とするモジュールプログラムの前記異常通知受領部のみに対して異常を選択通知し、
前記異常を通知された前記異常通知受領部は異常対処を行う必要があるか否かを判定し前記異常対処が必要な場合は前記異常対処の処理を実行する
ことを特徴とする車載制御装置。
【請求項２】
請求項１に記載の車載制御装置において、
前記インターフェイスプログラムが、予め発生し得る異常とその異常の通知が必要なモジュールプログラムの異常通知受領部とが登録されている第１の対応表を有し、
前記第１のモジュールプログラムおよび前記第２のモジュールプログラムの任意のモジュールプログラムから前記インターフェイスプログラムに対して異常を通知した際に、前記インターフェイスプログラムは前記第１の対応表を参照し、通知された異常に対してモジュールプログラムの異常通知受領部が登録されている場合のみ、当該登録されている異常通知受領部へ異常を通知する
ことを特徴とする車載制御装置。
【請求項３】
請求項２に記載の車載制御装置において、
前記インターフェイスプログラムが、予め発生し得る異常とその異常の通知が必要なコアＩＤとが登録されている第２の対応表を有し、
前記第１のモジュールプログラムおよび前記第２のモジュールプログラムの任意のモジュールプログラムから前記インターフェイスプログラムに対して異常を通知した際に、前記インターフェイスプログラムは、前記第２の対応表を参照し、通知された異常に対してコアＩＤが登録されている場合のみ、当該登録されているコアＩＤに対応するコアで実行されるモジュールプログラムの前記異常通知受領部に異常を通知する
ことを特徴とする車載制御装置。
【請求項４】
請求項３に記載の車載制御装置において、
ＲＡＭにあらかじめ設定された優先度に従って、優先度の低い異常通知処理中に、優先度の高い異常が発生した場合、優先度の低い異常通知処理を中断し、優先度の高い異常通知処理を開始し、優先度の高い異常通知処理が完了した後、優先度の低い異常通知処理を再開する
ことを特徴とする車載制御装置。
【請求項５】
請求項１に記載の車載制御装置において、
前記第１のモジュールプログラムおよび前記第２のモジュールプログラムの各々の前記異常通知受領部は、自モジュールプログラムでの異常対処が必要と判定した場合は前記異常対処を実行する
ことを特徴とする車載制御装置。
【請求項６】
請求項５に記載の車載制御装置において、
前記異常通知受領部は、前記異常の判定によって、自モジュールプログラムの周期処理を停止する必要があると判定した際に、スケジューラに対して前記周期処理の呼び出しを停止する指示を行う
ことを特徴とする車載制御装置。
【請求項７】
請求項１から請求項６のいずれか一に記載の車載制御装置において、
前記第２のモジュールプログラムが車載のインバータの制御を行う
ことを特徴とする車載制御装置。
【請求項８】
車載の制御対象を制御する第１のモジュールプログラムと、前記制御対象とは異なる車載の制御対象を前記第１のモジュールプログラムより短い周期で制御する第２のモジュールプログラムと、前記第１のモジュールプログラムと前記第２のモジュールプログラムとを接続するインターフェイスプログラムとを格納する車載制御装置用ＲＯＭであって、
前記第１のモジュールプログラムおよび前記第２のモジュールプログラムの少なくとも一が、自身のモジュールプログラム内の異常を検知する異常検知部および前記インターフェイスプログラムから異常通知を受けると異常対処を行う必要があるか否かを判定し前記異常対処が必要な場合は前記異常対処の処理を実行する異常通知受領部を有し、
前記インターフェイスプログラムは、前記異常検知部が検知した自身のモジュールプログラム内の異常が、当該異常を検知した異常検知部から通知され、
前記インターフェイスプログラムは、前記異常の通知を必要とするモジュールプログラムの前記異常通知受領部のみに対して異常を選択通知する
ことを特徴とする車載制御装置用ＲＯＭ。
【請求項９】
請求項８に記載の車載制御装置用ＲＯＭにおいて、
前記インターフェイスプログラムが、予め発生し得る異常とその異常の通知が必要なモジュールプログラムの前記異常通知受領部とが登録されている第１の対応表を有し、
前記インターフェイスプログラムは、前記第１のモジュールプログラムおよび前記第２のモジュールプログラムの任意のモジュールプログラムから前記異常が通知されると、前記第１の対応表を参照し、通知された異常に対して前記対応表に前記モジュールプログラムの異常通知受領部が登録されている場合のみ、当該登録されている異常通知受領部へ異常を通知する
ことを特徴とする車載制御装置用ＲＯＭ。
【請求項１０】
請求項８または請求項９に記載の車載制御装置用ＲＯＭにおいて、
前記第１のモジュールプログラムおよび前記第２のモジュールプログラムがマルチコアプロセッサで実行され、
前記インターフェイスプログラムは、予め発生し得る異常とその異常の通知が必要なコアＩＤとが登録されている第２の対応表を有し、
前記インターフェイスプログラムは、前記第１のモジュールプログラムおよび前記第２のモジュールプログラムの任意のモジュールプログラムから前記異常が通知されると、前記第２の対応表を参照し、通知された異常に対してコアＩＤが登録されている場合のみ、当該登録されているコアで実行されるモジュールプログラムの前記異常通知受領部に異常を通知する
ことを特徴とする車載制御装置用ＲＯＭ。
【請求項１１】
請求項８から請求項１０のいずれか一に記載の車載制御装置用ＲＯＭにおいて、
あらかじめ設定された優先度に従って、優先度の低い異常通知処理中に、優先度の高い異常が発生した場合、優先度の低い異常通知処理を中断し、優先度の高い異常通知処理を開始し、優先度の高い異常通知処理が完了した後、優先度の低い異常通知処理を再開することを特徴とする車載制御装置用ＲＯＭ。
【請求項１２】
車載の制御対象を制御する第１のモジュールプログラムと、前記第１のモジュールプログラムより短い周期で前記制御対象とは異なる車載の制御対象を制御する第２のモジュールプログラムと、前記第１のモジュールプログラムと前記第２のモジュールプログラムとを接続するインターフェイスプログラムとを格納する車載制御装置用ＲＯＭであって、
前記第１のモジュールプログラムおよび前記第２のモジュールプログラムの少なくとも一が、自身のモジュールプログラム内の異常を検知する異常検知部、および前記インターフェイスプログラムから前記異常検知部からの異常通知に基づく異常通知を受けると異常対処を行う必要があるか否かを判定する異常通知受領部を有している
ことを特徴とする車載制御装置用ＲＯＭ。
【請求項１３】
請求項１２に記載の車載制御装置用ＲＯＭにおいて、
異常通知受領部は、前記異常対処が必要と判定した場合は前記異常対処の処理を実行する
ことを特徴とする車載制御装置用ＲＯＭ。
【請求項１４】
請求項１２または請求項１３に記載の車載制御装置用ＲＯＭにおいて、
前記異常通知受領部は、前記異常の判定によって、自モジュールプログラムの周期処理を停止する必要があると判定した際に、スケジューラに対して前記周期処理の呼び出しを停止する指示を行う
ことを特徴とする車載制御装置用ＲＯＭ。 
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、車載制御装置及び車載制御装置用ＲＯＭに関し、例えば１ミリ秒よりも短い処理周期でリアルタイム性の高い制御処理を実行するモジュールプログラムを搭載した車載制御装置において、検知したモジュールプログラムの異常を効率よく通知し、モジュールプログラム数の増加に伴い増加する異常確認処理によるＣＰＵ負荷をできるだけ抑える場合に有用である。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００３４
【補正方法】変更
【補正の内容】
【００３４】
次に、インターフェイスプログラム５の異常通知コア振り分け手段５１は、自身に含まれる第２の対応表である異常ＩＤコア対応表５１０（図１Ｃに例示の異常ＩＤコア対応表５１０）を参照し、異常ＩＤを通知する必要があるコアを特定する（Ｓ５１４）。
異常通知コア振り分け手段５１で異常ＩＤに対応するコアを特定できた場合は、そのコアに含まれるいずれかのモジュールプログラムが今回の異常ＩＤの通知を必要としているため、ＲＡＭ１３の異常通知完了カウンタ１３１に１を加算した後（Ｓ５１５）、特定したコアに対して異常を通知するために割り込みを発生させる（Ｓ５１６）。
本実施の形態では、段落番号００３０で前述したように、説明のために短周期制御用のモジュールプログラム１２ｂに異常を通知することにしているため、インターフェイスプログラム５のコア１１ｂ内異常通知手段５２ｂの処理を割り込みの発生によって開始させる。
異常ＩＤに対応して特定したコアが自コアである場合は、ソフトウェア割り込み命令を用いて、自コアに対する異常通知処理を他コアと同様に割り込みとして処理してもよい。
自コアを含め、異常ＩＤに対応するコアが該当しない場合は、今回の異常ＩＤをどこにも通知する必要がないため、異常通知コア振り分け手段５１を終了する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００３５
【補正方法】変更
【補正の内容】
【００３５】
本実施の形態では、段落番号００３０で前述したように、説明のために短周期制御用のモジュールプログラム１２ｂに異常を通知することにしているため、コア１１ｂが異常通知割込みを受けた場合、割り込み処理としてインターフェイスプログラム５のコア１１ｂ内異常通知手段５２ｂが起動される。
インターフェイスプログラム５のコア１１ｂ内異常通知手段５２ｂの異常通知処理手順について、図３Ｃを用いて説明する。
コア１１ｂ内異常通知手段５２ｂは、発生した異常をＲＡＭ１３の共有メモリ部の低優先度異常番号１３２から読み取る（Ｓ５３１）。
次に、コア１１ｂ内異常通知手段５２ｂは、コア１１ｂ内異常通知手段５２ｂ自身に含まれる第１の対応表である異常ＩＤモジュールプログラム対応表５２１ｂを参照し、異常ＩＤを通知する必要があるモジュールプログラムの異常通知受領部を特定する（Ｓ５３２）。その後、異常の通知を要するすべてのモジュールプログラムの異常通知受領部を呼び出す（Ｓ５３３）。Ｓ５３３において、異常ＩＤを通知する必要があるモジュールプログラムの異常通知受領部への異常ＩＤの通知方法の一例として、Ｓ５３１で取得した異常ＩＤを、異常ＩＤを通知する必要があるモジュールプログラムの異常通知受領部呼び出しの際に当該処理呼び出しの引数として与える。その後、異常通知完了カウンタ１３１から１を減算した後（Ｓ５３４）、コア１１ｂ内異常通知手段５２ｂの異常通知処理を終了する。