(57)【要約】【課題】  タスクに異常が発生した場合、クリティカルセクション実行中に関わらず、あらかじめ設定したタスクの実行時間と一定の時間で設計上必要なクリティカルセクション（ＣＳ）か判別し必要な割込み禁止と異常な割込み禁止を区別して、タイムアウト検出を実現する。【解決手段】  システムにタスクを実行させるタスク実行手段と、タスクの実行時に割り込み処理をする割り込み処理手段と、を備え、マスク可能割り込みと、このマスク可能割り込みよりも後に実行指令されるマスク不可能割り込みと、を含み、割り込み禁止時間中にマスク可能割り込みが実行指令されて、マスク不可能割り込みが実行される。【選択図】  図１
2019020869.tif 000002
【特許請求の範囲】
【請求項１】
システムにタスクを実行させるタスク実行手段と、
前記タスクの実行時に割り込み処理をする割り込み処理手段と、を備え、
マスク可能割り込みと、該マスク可能割り込みよりも後に実行指令されるマスク不可能割り込みと、を含み、割り込み禁止時間中に前記マスク可能割り込みが実行指令されて、前記マスク不可能割り込みが実行されることを特徴とする車両制御装置。
【請求項２】
前記マスク不可能割り込みは、前記マスク可能割り込みが実行不可により実行されることを特徴とする、請求項１に記載の車両制御装置。
【請求項３】
前記割り込み処理手段は、前記システムの障害を監視する際に前記割り込み処理をすることを特徴とする、請求項１に記載の車両制御装置。
【請求項４】
タスクを実行させるタスク実行手段と、
前記タスクの実行時に割り込み処理をする割り込み処理手段と、を備え、
前記割り込み処理手段は、
第一マスク不可能割り込みと、該第一マスク不可能割り込みから所定時間後に実行指令されるマスク可能割り込みと、前記第一マスク不可能割り込みから所定時間後であって、前記マスク可能割り込みよりも後に実行指令される第二マスク不可能割り込みと、を含み、割り込み禁止時間中に前記第一マスク不可能割り込みが実行指令されて、前記割り込み禁止時間の解除後に前記マスク可能割り込みが実行される場合と、
割り込み禁止時間中に前記第一マスク不可能割り込み、前記マスク可能割り込みが実行指令されて、前記第二マスク不可能割り込みが実行される場合と、を含むことを特徴とする車両制御装置。
【請求項５】
前記第二マスク不可能割り込みは、マスク可能割り込みが実行不可により実行されることを特徴とする、請求項4に記載の車両制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は車両制御装置のＯＳ（オペレーティングシステム）が管理する処理の実行時間異常の検出方法に関するものである。
【背景技術】
【０００２】
近年多くの車両制御システムは、電子化された車両制御機器を操作するＥＣＵ、すなわち電子制御装置（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）と、複数のＥＣＵ間の通信を可能にする車載ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）から構成されている。これら車両制御システムは環境負荷の低減や安全要求に伴い、システムの高機能化、機能の分散化、複雑化が進んでいる。その結果、ＥＣＵのソフトウェアアーキテクチャの標準化、安全装置の電子制御化とその安全性確保の仕組みの重要性が増大している。
【０００３】
車両制御機器における安全装置の電子制御化にともない機能安全の仕組みが車両制御システムに導入されてきている。ここで、機能安全とは電気。・電子システムに不具合が生じたときにシステムが安全側に遷移することで安全を確保する考えである。例えば自動車向け機能安全規格ＩＳＯ２６２６２では、規格独自の安全度水準であるＡＳＩＬ（Ａｕｔｏｍｏｔｉｖｅ Ｓａｆｅｔｙ  Ｉｎｔｅｇｒｉｔｙ  Ｌｅｖｅｌ）が設けられており、最上位レベルＡＳＩＬ Ｄに準拠するには、車両制御装置の安全に関わる機能の構成が、主機能、安全装置、監視装置が明確に分離していることを第三者に対し証明できることが求められている。
【０００４】
一般的な車両制御装置に機能安全規格ＩＳＯ２６２６２を適用すると車両制御システムはさまざまなＡＳＩＬのソフトウェアが混在することがわかっている。そのため、既存のソフトウェアが機能安全規格に準拠するには、ソフトウェア間の干渉防止する仕組みやそれに関わる処理の高速化、軽量化、信頼性向上などの技術が必要となる。システムを構成するソフトウェア間の相互作用を防止する仕組みとして時間保護機能やメモリ保護機能、データ保護機能がある。具体的には、安全度水準の低いＱＭのソフトウェアが暴走し、ＡＳＩＬ Ｄのソフトウェアといった安全度水準の高いソフトウェアの動作を阻害しシステムに影響を及ぼすことを防ぐことである。
【０００５】
下記特許文献１では、発生した障害をリアルタイムに検出する仕組みを提供するため、複数段階のＷＤＴを連動させる手順と連動したＷＤＴが段階的に強力にシステムに介入する手順と、割り込みによって回復する軽度の障害には割り込みによって、マスク不可能割り込み以外では回復できない中程度の障害にはマスク不可能割り込みによって、そして、再起動以外に回復できないような重度の障害に対しては、システムリセットによって障害に対応する手段を実現している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−２５１３００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
異常が発生しても一定時間システムの動作継続性が求められるシステムでは、異常が発生した処理のみを停止させ、システム全体の機能を維持し、できるだけ停止させない仕組みが必要である。しかし、従来手法では実行時間の異常（タイムアウト）検出にはタイマ割り込みを使用していたため、タイマ割り込みでは割り禁時に異常検出できない。また、前述した課題を解決するためにマスク不可能な割り込み（ＮＭＩ）を利用すると設計上必要なクリティカルセクション（ＣＳ）か異常な割禁か区別できないことが課題である。
【課題を解決するための手段】
【０００８】
本発明に関わる車両制御は、システムの障害を監視する車両制御装置であって、前記システムにタスクを実行させるタスク実行手段と、前記タスクの実行時に割り込み処理をする割り込み処理手段とを備え、マスク可能割り込みと、前記マスク可能割り込みよりも後に実行指令されるマスク不可能割り込みと、を含み、割り込み禁止時間中に前記マスク可能割り込みが実行指令された場合、さらに前記マスク不可能割り込が実行されることで、割り込み禁止でもリアルタイムに異常を検出し、適切なフェールセーフ処理を適用できることを特徴とする車両制御装置。
【発明の効果】
【０００９】
本発明に関わる車両制御装置によれば、タスクに異常が発生した場合、クリティカルセクション実行中に関わらず、あらかじめ設定したタスクの実行時間と一定の時間で設計上必要なクリティカルセクション（ＣＳ）か判別し必要な割込み禁止と異常な割込み禁止を区別して、タイムアウト検出を実現する。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１に係るエンジン制御装置ＥＣＵ１の構成図である。
【図２】エンジン制御装置ＥＣＵ１のデータ管理テーブル４０１の例を示す図である。
【図３】エンジン制御装置ＥＣＵ１のデータ記録テーブル４０２の例を示す図である。
【図４】エンジン制御装置ＥＣＵ１のタイマレジスタテーブル５００の例を示す図である。
【図５】エンジン制御装置ＥＣＵ１のハードウェアタイマ５の動作フローの例を示す図である。
【図６】エンジン制御装置ＥＣＵ１のソフトウェア制御部２０１の動作フローの例を示す図である。
【図７】エンジン制御装置ＥＣＵ１のタスク実行部２０２の動作フローの例を示す図である。
【図８】エンジン制御装置ＥＣＵ１のマスク不可割り込み実行部２０３の動作フローの例を示す図である
【図９】エンジン制御装置ＥＣＵ１のソフトウェア割り込み実行部２０４の動作フローの例を示す図である
【発明を実施するための形態】
【００１１】
＜実施の形態１＞
図１は、本発明に関わるエンジン制御装置ＥＣＵ１の構成図である。エンジン制御装置ＥＣＵ１はプログラム領域２、演算部３、記憶領域４、ハードウェアタイマ５、割り込みコントローラ６、共有バス７を備える。
【００１２】
演算部３は、プログラム領域２が格納しているプログラムを実行するプロセッサコア（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。プログラム領域２は、ソフトウェア制御部２０１、タスク実行部２０２、ノンマスカブル割り込み実行部２０３、ソフトウェア割り込み実行部２０４を格納する。
【００１３】
記憶領域４は、後述する図２で説明するデータ管理テーブル４０１、図３で説明するデータ記録テーブル４０２を格納する。
【００１４】
ハードウェアタイマ５はクロックをカウンタするもので、クロックのカウンタ値により経過時間を分かる。タイマには比較回路が備わっている。後述する図４で説明するタイマレジスタに格納された数値とタイマカウンタのカウント値は常に比較回路で比較されており、両者の値が一致すると割り込みコントローラ６にノンマスカブル信号を発生する。これにより設定した時間が経過したら割込みを発生させて、時間管理が必要な処理を行なうことができます。また、ハードウェアタイマ５は後述する図４のタイマレジスタテーブル６００を格納する。
【００１５】
割り込みコントローラ６は、ハードウェアタイマ５から前述したノンマスカブル信号を受け取ると、演算部の実行中の処理を中断させ、マスク不可の割り込み（以下、ノンマスカブル割り込み）を発生させる。
【００１６】
本実施の形態１におけるエンジン制御ＥＣＵ１の構成はこれに限らない。例えば、データを保存するための不揮発性メモリ（バックアップＲＡＭ）や各演算部がアクセスするための共有メモリや異なるセンサなどを備えてもよい。
【００１７】
エンジン制御装置ＥＣＵ１の記憶領域４およびハードウェアタイマ５に格納されるテーブル下記より説明する。図２は記憶領域４に格納される演算部データ管理テーブル４０１の例を示す図である。データ管理テーブル４０１は、名称フィールド４０１０１、設定値フィールド４０１０２からなる。名称フィールド４０１０１は、データ管理テーブル４０１で管理する対象の名称である。本実施例では、ＨＷタイマカウンタ最大値、第1コンペアマッチ時間、第2コンペアマッチ時間からなるが管理する対象の種類や数および管理方法はこれに限らない。設定値フィールド４０１０２は、データ管理テーブル４０１が管理する対象の設定値を格納された値を表す。
【００１８】
図３は記憶領域４に格納されるデータ記録テーブル４０２の例を示す図である。データ記録テーブル４０２は、名称フィールド４０２０１、値フィールド４０２０２からなる。名称フィールド４０２０１はデータ記録テーブル４０２が管理する対象の名称である。本実施例では、ＨＷタイマカウンタ値、ノンマスカブル割り込み実行回数からなるが管理する対象の種類や対象の数および管理方法はこれに限らない。値フィールド４０２０２は、データ記録テーブル４０２で管理する対象の値を格納した値を表す。
【００１９】
図４はハードウェアタイマ５に格納されるタイマレジスタテーブル５００の例を示す図である。タイマレジスタテーブル５００は、名称フィールド５０１、設定値フィールド５０２からなる。名称フィールド５００はタイマレジスタテーブル５００が管理する対象の名称である。本実施例では、コンペアマッチフラグ、コンペアマッチカウンタからなるが管理する対象の種類や対象の数および管理方法はこれに限らない。設定値フィールド５００は、タイマレジスタテーブル５００で管理する対象の設定値を格納した値を表す。
【００２０】
以上のテーブルが実施例１のエンジン制御ＥＣＵ１の記憶領域４およびハードウェアタイマ５に格納されるが、テーブルの格納先これに限らない。
【００２１】
これよりエンジン制御ＥＣＵ１のハードウェアタイマ６の動作とプログラム領域２に格納され、演算部３で実行されるプログラムの動作フローについて説明する。
【００２２】
図５はハードウェアタイマ６の動作フローである。以下、図５の各ステップについて説明する。
【００２３】
（図５：テップ６００）
ハードウェアタイマ６は、ハードウェアタイマカウンタ値をインクリメントし、ハードウェアタイマカウント値を更新する。
【００２４】
（図５：ステップ６０１）
ハードウェアタイマ６は、ハードウェアタイマカウンタ値が最大値に達した場合、ステップ６０２に進み、それ以外はステップ６０３に進む。
【００２５】
（図５：ステップ６０２）
ハードウェアタイマ６は、カウンタをリセットしステップ４０３０１へ進む。
【００２６】
（図５：ステップ６０３）
ハードウェアタイマ６は、タイマレジスタテーブル５００が管理するコンペアマッチフラグが１であれば、一致していればステップ６０４に進み、それ以外であればステップ６０６に進む。
【００２７】
（図５：ステップ６０４）
ハードウェアタイマ６は、ハードウェアタイマとタイマレジスタテーブル５００が管理するコンペアマッチカウンタと比較し、一致していればステップ６０４に進み、一致していなければステップ６０６に進む。
【００２８】
（図５：ステップ６０５）
ハードウェアタイマ６は、後述するノンマスカブル割り込みを呼び、ステップ６０６に進む。
【００２９】
（図５：ステップ６０６）
ハードウェアタイマ６は、終了条件が満たされているか判定し、満たされていれば処理を終了し、満たされていなければステップ６０１へ進む。
【００３０】
図６はソフトウェア制御部２０１の動作フローである。以下、図６の各ステップについて説明する。
【００３１】
（図６：ステップ２０１００）
ソフトウェア演算部２０１は、記憶領域４およびＨＷタイマ５を初期化し、ステップ２０１０１に進む。
【００３２】
（図６：ステップ２０１０１）
ソフトウェア演算部２０１は、後述するタスク実行部を呼びステップ２０１０２に進む。
【００３３】
（図６：ステップ２０１０２）
ソフトウェア演算部２０１は、終了条件が満たされているか判定し、満たされていれば処理を終了、満たされていなければステップ２０１０１に進む。
【００３４】
図７はタスク実行部２０２の動作フローである。以下、図７の各ステップについて説明する。
【００３５】
（図７：ステップ２０２００）
タスク実行部２０２は、タイマレジスタテーブル５００のコンペアマッチの設定値を設定し、ステップ２０２０１に進む。ここで、コンペアマッチの設定値の設定とは、タイマレジスタテーブル５００のコンペアマッチフラグに１をたて、コンペマッチを発生するモードに設定する処理と、インプットキャプチャレジスタから現在のＨＷタイマのカウンタを取得し、コンペアマッチは発生するまでの期間（コンペアマッチカウンタ）を設定する処理をさす。
【００３６】
（図７：ステップ２０２０１）
タスク実行部２０２は、ＣＳ開始処理を実行し、ステップ２０２０２に進む。ここで、ＣＳ開始処理とは、クリティカルセクション中の処理が他の処理によって割り込まれないための割り込み禁止処理などである。
【００３７】
（図７：ステップ２０２０２）
タスク実行部２０２は、ＣＳ処理を実行、ステップ２０２０３に進む。
【００３８】
（図７：ステップ２０２０３）
タスク実行部２０２は、ＣＳ終了処理を実行し、ステップ２０２０４に進む。ここで、ＣＳ終了処理とは、クリティカルセクションが他の処理によって割り込まれないための割り込み禁止処理などを開放する処理である。
【００３９】
（図７：ステップ２０２０４）
タスク実行部２０２は、コンペアマッチ終了処理を実行、処理を終了する。ここで、コンペアマッチ終了処理とは、タイマレジスタテーブル５００のコンペアマッチフラグに０をたて、コンペアマッチ機能をオフにする処理である。
【００４０】
（図８：ステップ２０３００）
ＮＭＩ実行部２０３は、データ記録テーブル４０２のノンマスカブル割り込み実行回数を判定し、１回目ならステップ２０３０１に進み、それ以外ならステップ２０３０４に進む。
【００４１】
（図８：ステップ２０３０１）
ＮＭＩ実行部２０３は、コンペアマッチ設定処理を実行し、ステップ２０３０２に進む。ここで、コンペアマッチ設定処理とはデータ管理テーブル４０１から第2コンペアマッチ時間を取得し、タイマレジスタテーブル５００のコンペアマッチカウンタに設定する処理をさす。
【００４２】
（図８：ステップ２０３０２）
ＮＭＩ実行部２０３は、ＳＷ割り込み呼び出し処理を実行し、ステップ２０３０３に進む。ここで、ＳＷ割り込み処理とは、後述する図９のソフトウェア割り込み実行部を呼ぶための割り込み発生処理である。
【００４３】
（図８：ステップ２０３０３）
ＮＭＩ実行部２０３は、ＮＭＩ実行カウンタ更新処理を実行し、処理を終了する。ここで、ＮＭＩ実行カウンタ更新処理とはデータ記録テーブル４０２のノンマスカブル割り込み実行回数をインクリメントする処理をさす。
【００４４】
（図８：ステップ２０３０４）
ＮＭＩ実行部２０３は、リセット処理を実行し処理を終了する。
【００４５】
（図９：ステップ２０３００）
ソフトウェア割り込み実行部２０４は、退避処理を実行し、ステップ２０４０１に進む。ここで、退避処理とは、現在実行中の処理のレジスタ値やプログラムカウンタ値、ＨＷタイマのカウンタ値を、記憶領域４に格納する処理をさすがこれに限らない。
【００４６】
（図９：ステップ２０３０１）
ソフトウェア割り込み実行部２０４は、タスク停止処理を実行し、ステップ２０４０１に進む。タスク停止処理とは、コンペアマッチによって異常が検出されたタスクを停止させる処理をさす。
【００４７】
（図９：ステップ２０３０２）
ソフトウェア割り込み実行部２０４は、コンペアマッチ終了処理を実行し処理を終了する。コンペアマッチ終了処理とは、タイマレジスタテーブル５００のコンペアマッチフラグに０をたて、コンペアマッチ機能をオフにする処理である。
【００４８】
以上のように、本実施形態１によれば、タスクに異常が発生した場合、クリティカルセクション実行中に関わらず、あらかじめ設定したタスクの実行時間と一定の時間で設計上必要なクリティカルセクション（ＣＳ）か判別し必要な割込み禁止と異常な割込み禁止を区別して、タイムアウト検出を実現する。
【００４９】
本実施形態は、次のような構成を表現することができる。
【００５０】
システムにタスクを実行させるタスク実行手段と、前記タスクの実行時に割り込み処理をする割り込み処理手段と、を備え、マスク可能割り込みと、該マスク可能割り込みよりも後に実行指令されるマスク不可能割り込みと、を含み、割り込み禁止時間中に前記マスク可能割り込みが実行指令されて、前記マスク不可能割り込みが実行される。
【００５１】
前記マスク不可能割り込みは、前記マスク可能割り込みが実行不可により実行される。
【００５２】
前記割り込み処理手段は、前記システムの障害を監視する際に前記割り込み処理をする。
【００５３】
タスクを実行させるタスク実行手段と、前記タスクの実行時に割り込み処理をする割り込み処理手段と、を備え、前記割り込み処理手段は、第一マスク不可能割り込みと、該第一マスク不可能割り込みから所定時間後に実行指令されるマスク可能割り込みと、前記第一マスク不可能割り込みから所定時間後であって、前記マスク可能割り込みよりも後に実行指令される第二マスク不可能割り込みと、を含み、割り込み禁止時間中に前記第一マスク不可能割り込みが実行指令されて、前記割り込み禁止時間の解除後に前記マスク可能割り込みが実行される場合と、割り込み禁止時間中に前記第一マスク不可能割り込み、前記マスク可能割り込みが実行指令されて、前記第二マスク不可能割り込みが実行される場合と、を含む。
【００５４】
前記第二マスク不可能割り込みは、マスク可能割り込みが実行不可により実行される。
【図１】
2019020869.tif 000003
【図２】
2019020869.tif 000004
【図３】
2019020869.tif 000005
【図４】
2019020869.tif 000006
【図５】
2019020869.tif 000007
【図６】
2019020869.tif 000008
【図７】
2019020869.tif 000009
【図８】
2019020869.tif 000010
【図９】
2019020869.tif 000011