(57)【要約】【課題】簡易な処理で、時間制約違反であるか否かを判定することができるようにする。【解決手段】スロット計算部４５によって、現在のスロット番号を計算してスロット記憶部４６に格納する。認識処理部４０Ａ、車速計算部４０Ｂ、ブレーキ制御部４０Ｃ、及びステアリング制御部４０Ｄの各制御タスクでは、制御タスクを起動するとき、入力としての実行結果の出力時のスロット番号をタスクテーブル記憶部４８から取得し、制約テーブル記憶部５０に記憶された入力に対するスロット番号の許容範囲に基づいて、時間制約違反であるか否かを判定する。各制御タスクでは、制御タスクの実行結果を出力するときに、スロット記憶部４６に格納された現在のスロット番号を読み出し、制約テーブル記憶部５０に記憶された出力に対するスロット番号の許容範囲に基づいて、時間制約違反であるか否かを判定する。【選択図】図２
2011191806.tif 000002
【特許請求の範囲】
【請求項１】
周期的に実行され、かつ、周期が異なる複数の制御タスクを、マルチタスクによって入力に基づいて各々実行して実行結果を各々出力し、少なくとも１つの制御タスクが、他の制御タスクの実行結果を入力としているタスク実行制御装置であって、
所定時間毎に分割したスロット数を、前記複数の制御タスクの周期の最小公倍数を最大公約数で除した値のｎ倍（ｎは自然数である。）の値として、現在のスロット番号を計算して第１メモリに格納するスロット番号計算手段と、
前記複数の制御タスクの各々について、前記制御タスクの実行結果を出力するときに、前記第１メモリに格納された現在のスロット番号を読み出し、前記読み出されたスロット番号を、前記実行結果の出力時のスロット番号として第２メモリに格納する出力時スロット番号格納手段と、
他の制御タスクの実行結果を入力としている制御タスクについて、前記制御タスクを起動するとき、入力としての前記実行結果の出力時のスロット番号を前記第２メモリから取得し、前記取得したスロット番号と、前記制御タスクの入力に対するスロット番号の許容範囲を予め定めた入力制約条件とに基づいて、時間制約違反であるか否かを判定する判定手段と、
を含むタスク実行制御装置。
【請求項２】
周期的に実行され、かつ、周期が異なる複数の制御タスクを、マルチタスクによって入力に基づいて各々実行して実行結果を各々出力し、少なくとも１つの制御タスクが、他の制御タスクの実行結果を入力としているタスク実行制御装置であって、
所定時間毎に分割したスロット数を、前記複数の制御タスクの周期の最小公倍数を最大公約数で除した値のｎ倍（ｎは自然数である。）の値として、現在のスロット番号を計算してメモリに格納するスロット番号計算手段と、
前記複数の制御タスクの各々について、前記制御タスクの実行結果を出力するときに、前記メモリに格納された現在のスロット番号を読み出し、前記読み出したスロット番号と、前記制御タスクの出力に対するスロット番号の許容範囲を予め定めた出力制約条件とに基づいて、時間制約違反であるか否かを判定する判定手段と、
を含むタスク実行制御装置。
【請求項３】
前記判定手段は、他の制御タスクの実行結果を入力としている制御タスクについて、前記制御タスクを起動するとき、入力としての前記実行結果の出力時のスロット番号を前記第２メモリから取得して、時間制約違反であるか否かを判定し、
前記複数の制御タスクの各々について、前記制御タスクの実行結果を出力するときに、前記第１メモリに格納された現在のスロット番号を読み出し、前記読み出したスロット番号と、前記制御タスクの出力に対するスロット番号の許容範囲を予め定めた出力制約条件とに基づいて、時間制約違反であるか否かを判定する請求項１記載のタスク実行制御装置。
【請求項４】
前記時間制約違反であると判定された場合、判定結果を出力する出力手段を更に含む請求項１〜請求項３の何れか１項記載のタスク実行制御装置。
【請求項５】
周期的に実行され、かつ、周期が異なる複数の制御タスクを、マルチタスクによって入力に基づいて各々実行して実行結果を各々出力し、少なくとも１つの制御タスクが、他の制御タスクの実行結果を入力としているコンピュータを、
所定時間毎に分割したスロット数を、前記複数の制御タスクの周期の最小公倍数を最大公約数で除した値のｎ倍（ｎは自然数である。）の値として、現在のスロット番号を計算して第１メモリに格納するスロット番号計算手段、
前記複数の制御タスクの各々について、前記制御タスクの実行結果を出力するときに、前記第１メモリに格納された現在のスロット番号を読み出し、前記読み出されたスロット番号を、前記実行結果の出力時のスロット番号として第２メモリに格納する出力時スロット番号格納手段、及び
他の制御タスクの実行結果を入力としている制御タスクについて、前記制御タスクを起動するとき、入力としての前記実行結果の出力時のスロット番号を前記第２メモリから取得し、前記取得したスロット番号と、前記制御タスクの入力に対するスロット番号の許容範囲を予め定めた入力制約条件とに基づいて、時間制約違反であるか否かを判定する判定手段
として機能させるためのプログラム。
【請求項６】
周期的に実行され、かつ、周期が異なる複数の制御タスクを、マルチタスクによって入力に基づいて各々実行して実行結果を各々出力し、少なくとも１つの制御タスクが、他の制御タスクの実行結果を入力としているコンピュータを、
所定時間毎に分割したスロット数を、前記複数の制御タスクの周期の最小公倍数を最大公約数で除した値のｎ倍（ｎは自然数である。）の値として、現在のスロット番号を計算してメモリに格納するスロット番号計算手段、及び
前記複数の制御タスクの各々について、前記制御タスクの実行結果を出力するときに、前記メモリに格納された現在のスロット番号を読み出し、前記読み出したスロット番号と、前記制御タスクの出力に対するスロット番号の許容範囲を予め定めた出力制約条件とに基づいて、時間制約違反であるか否かを判定する判定手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タスク実行制御装置及びプログラムに係り、特に、周期が異なる複数の制御タスクをマルチタスクにより実行するタスク実行制御装置及びプログラムに関する。
【背景技術】
【０００２】
従来より、プリエンプティブな優先度ベース・スケジューリングでマルチタスキングを実現しているリアルタイムＯＳにおいて、遅延許容時間が設定されたタスクに対して起床が指示された時刻である事象発生時刻を記録し、起床が指示されたタスクが処理を終了し、ユーザプログラムにリターンした時刻と記録された事象発生時刻から遅延時間を算出し、算出された遅延時間が設定された遅延許容時間を超えているか否かを判定して、ユーザに報知するリアルタイムＯＳが知られている（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−３５０６５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の特許文献１に記載の技術では、制御タスクごとに現在時刻を取得して、遅延許容時間を越えているかどうかを計算する必要があり、時刻データが高精度である場合には、時刻データを取得する処理、及び遅延許容時間を越えているか否かを計算する処理の計算時間が大きくなってしまう、という問題がある。
【０００５】
本発明は、上記の問題点を解決するためになされたもので、簡易な処理で、時間制約違反であるか否かを判定することができるタスク実行制御装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記の目的を達成するために第１の発明に係るタスク実行制御装置は、周期的に実行され、かつ、周期が異なる複数の制御タスクを、マルチタスクによって入力に基づいて各々実行して実行結果を各々出力し、少なくとも１つの制御タスクが、他の制御タスクの実行結果を入力としているタスク実行制御装置であって、所定時間毎に分割したスロット数を、前記複数の制御タスクの周期の最小公倍数を最大公約数で除した値のｎ倍（ｎは自然数である。）の値として、現在のスロット番号を計算して第１メモリに格納するスロット番号計算手段と、前記複数の制御タスクの各々について、前記制御タスクの実行結果を出力するときに、前記第１メモリに格納された現在のスロット番号を読み出し、前記読み出されたスロット番号を、前記実行結果の出力時のスロット番号として第２メモリに格納する出力時スロット番号格納手段と、他の制御タスクの実行結果を入力としている制御タスクについて、前記制御タスクを起動するとき、入力としての前記実行結果の出力時のスロット番号を前記第２メモリから取得し、前記取得したスロット番号と、前記制御タスクの入力に対するスロット番号の許容範囲を予め定めた入力制約条件とに基づいて、時間制約違反であるか否かを判定する判定手段と、を含んで構成されている。
【０００７】
第２の発明に係るプログラムは、周期的に実行され、かつ、周期が異なる複数の制御タスクを、マルチタスクによって入力に基づいて各々実行して実行結果を各々出力し、少なくとも１つの制御タスクが、他の制御タスクの実行結果を入力としているコンピュータを、所定時間毎に分割したスロット数を、前記複数の制御タスクの周期の最小公倍数を最大公約数で除した値のｎ倍（ｎは自然数である。）の値として、現在のスロット番号を計算して第１メモリに格納するスロット番号計算手段、前記複数の制御タスクの各々について、前記制御タスクの実行結果を出力するときに、前記第１メモリに格納された現在のスロット番号を読み出し、前記読み出されたスロット番号を、前記実行結果の出力時のスロット番号として第２メモリに格納する出力時スロット番号格納手段、及び他の制御タスクの実行結果を入力としている制御タスクについて、前記制御タスクを起動するとき、入力としての前記実行結果の出力時のスロット番号を前記第２メモリから取得し、前記取得したスロット番号と、前記制御タスクの入力に対するスロット番号の許容範囲を予め定めた入力制約条件とに基づいて、時間制約違反であるか否かを判定する判定手段として機能させるためのプログラムである。
【０００８】
第１の発明及び第２の発明によれば、スロット番号計算手段によって、所定時間毎に分割したスロット数を、複数の制御タスクの周期の最小公倍数を最大公約数で除した値のｎ倍（ｎは自然数である。）の値として、現在のスロット番号を計算して第１メモリに格納する。出力時スロット番号格納手段によって、複数の制御タスクの各々について、制御タスクの実行結果を出力するときに、第１メモリに格納された現在のスロット番号を読み出し、読み出されたスロット番号を、実行結果の出力時のスロット番号として第２メモリに格納する。
【０００９】
そして、判定手段によって、他の制御タスクの実行結果を入力としている制御タスクについて、制御タスクを起動するとき、入力としての実行結果の出力時のスロット番号を第２メモリから取得し、取得したスロット番号と、制御タスクの入力に対するスロット番号の許容範囲を予め定めた入力制約条件とに基づいて、時間制約違反であるか否かを判定する。
【００１０】
このように、制御タスクの実行結果が出力されたときのスロット番号と、スロット番号の許容範囲を定めた入力制約条件とに基づいて、簡易な処理で、時間制約違反であるか否かを判定することができる。
【００１１】
第３の発明に係るタスク実行制御装置は、周期的に実行され、かつ、周期が異なる複数の制御タスクを、マルチタスクによって入力に基づいて各々実行して実行結果を各々出力し、少なくとも１つの制御タスクが、他の制御タスクの実行結果を入力としているタスク実行制御装置であって、所定時間毎に分割したスロット数を、前記複数の制御タスクの周期の最小公倍数を最大公約数で除した値のｎ倍（ｎは自然数である。）の値として、現在のスロット番号を計算してメモリに格納するスロット番号計算手段と、前記複数の制御タスクの各々について、前記制御タスクの実行結果を出力するときに、前記メモリに格納された現在のスロット番号を読み出し、前記読み出したスロット番号と、前記制御タスクの出力に対するスロット番号の許容範囲を予め定めた出力制約条件とに基づいて、時間制約違反であるか否かを判定する判定手段と、を含んで構成されている。
【００１２】
第４の発明に係るプログラムは、周期的に実行され、かつ、周期が異なる複数の制御タスクを、マルチタスクによって入力に基づいて各々実行して実行結果を各々出力し、少なくとも１つの制御タスクが、他の制御タスクの実行結果を入力としているコンピュータを、所定時間毎に分割したスロット数を、前記複数の制御タスクの周期の最小公倍数を最大公約数で除した値のｎ倍（ｎは自然数である。）の値として、現在のスロット番号を計算してメモリに格納するスロット番号計算手段、及び前記複数の制御タスクの各々について、前記制御タスクの実行結果を出力するときに、前記メモリに格納された現在のスロット番号を読み出し、前記読み出したスロット番号と、前記制御タスクの出力に対するスロット番号の許容範囲を予め定めた出力制約条件とに基づいて、時間制約違反であるか否かを判定する判定手段として機能させるためのプログラムである。
【００１３】
第３の発明及び第４の発明によれば、スロット番号計算手段によって、所定時間毎に分割したスロット数を、複数の制御タスクの周期の最小公倍数を最大公約数で除した値のｎ倍（ｎは自然数である。）の値として、現在のスロット番号を計算してメモリに格納する。
【００１４】
そして、判定手段によって、複数の制御タスクの各々について、制御タスクの実行結果を出力するときに、メモリに格納された現在のスロット番号を読み出し、読み出したスロット番号と、制御タスクの出力に対するスロット番号の許容範囲を予め定めた出力制約条件とに基づいて、時間制約違反であるか否かを判定する。
【００１５】
このように、制御タスクの実行結果を出力するときのスロット番号と、スロット番号の許容範囲を定めた出力制約条件とに基づいて、簡易な処理で、時間制約違反であるか否かを判定することができる。
【００１６】
第１の発明に係る判定手段は、他の制御タスクの実行結果を入力としている制御タスクについて、制御タスクを起動するとき、入力としての実行結果の出力時のスロット番号を第２メモリから取得して、時間制約違反であるか否かを判定し、複数の制御タスクの各々について、制御タスクの実行結果を出力するときに、第１メモリに格納された現在のスロット番号を読み出し、読み出したスロット番号と、制御タスクの出力に対するスロット番号の許容範囲を予め定めた出力制約条件とに基づいて、時間制約違反であるか否かを判定することができる。これによって、制御タスクの実行結果を出力するときのスロット番号と、スロット番号の許容範囲を定めた出力制約条件とに基づいて、簡易な処理で、時間制約違反であるか否かを判定することができる。
【００１７】
上記の発明では、時間制約違反であると判定された場合、判定結果を出力する出力手段を更に含むことができる。これによって、ユーザに対して時間制約違反があったことを知らせることができる。
【００１８】
本発明のプログラムは、記録媒体に格納して提供することができる。
【発明の効果】
【００１９】
以上説明したように、本発明のタスク実行制御装置及びプログラムによれば、制御タスクの実行結果が出力されたときのスロット番号と、スロット番号の許容範囲を定めた入力制約条件とに基づいて、又は、制御タスクの実行結果を出力するときのスロット番号と、スロット番号の許容範囲を定めた出力制約条件とに基づいて、簡易な処理で、時間制約違反であるか否かを判定することができる、という効果が得られる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施の形態に係る統合制御システムの構成を示す概略図である。
【図２】本発明の実施の形態に係る統合制御システムのコンピュータの構成を示すブロック図である。
【図３】タスクテーブルの一例を示す図である。
【図４】制約テーブルの一例を示す図である。
【図５】本発明の実施の形態に係る統合制御システムにおけるスロット番号計算処理ルーチンの内容を示すフローチャートである。
【図６】本発明の実施の形態に係る統合制御システムにおけるタスク実行処理ルーチンの内容を示すフローチャートである。
【図７】複数のタスクがマルチタスクにより周期的に実行される様子を示すイメージ図である。
【発明を実施するための形態】
【００２１】
以下、図面を参照して本発明の実施の形態を詳細に説明する。なお、車両に搭載された統合制御システムに本発明を適用した場合を例に説明する。
【００２２】
図１に示すように、本実施の形態に係る統合制御システム１０は、自車両の前方を撮像する前方カメラ１２と、自車両の４輪の車輪速を検出する車輪速センサ１４と、操舵トルクを検出するトルクセンサ１６と、前方カメラ１２、車輪速センサ１４、及びトルクセンサ１６からの出力に基づいて、自車両のブレーキシステム１８、及びステアリングをアシストするためのモータ２０を制御するコンピュータ２２とを備えている。なお、コンピュータ２２が、本発明のタスク実行制御装置の一例である。
【００２３】
コンピュータ２２は、ＣＰＵ２４と、ＲＡＭ２６と、後述するスロット番号計算処理ルーチン及びタスク実行処理ルーチンを実行するためのプログラムを記憶したＲＯＭ２８と、処理結果を表示するための表示部３２と、前方カメラ１２、車輪速センサ１４、トルクセンサ１６、ブレーキシステム１８、及びモータ２０との間の入出力を行うための入出力インタフェース３４を備えている。ＣＰＵ２４、ＲＡＭ２６、ＲＯＭ２８、表示部３２、及び入出力インタフェース３４は、バスＢＵＳによって相互に接続されている。
【００２４】
また、コンピュータ２２は、機能的には図２に示すように構成されている。コンピュータ２２は、マルチタスクによって複数の制御タスクを実行するマルチタスク部４０と、各制御タスクを管理して周期的に起動させる周期管理部４２と、時刻を計測するタイマ部４４と、所定時間毎に現在のスロット番号を計算するスロット計算部４５と、計算された現在のスロット番号を記憶するスロット記憶部４６と、各制御タスクの起動時及び出力時のスロット番号を格納したタスクテーブルを記憶するタスクテーブル記憶部４８と、制御タスクの入力及び出力に関する制約条件を格納した制約条件テーブルを記憶した制約テーブル記憶部５０と、を備えている。なお、スロット記憶部４６は、第１メモリの一例であり、タスクテーブル記憶部４８は、第２メモリの一例である。
【００２５】
マルチタスク部４０は、前方カメラ１２から出力された前方画像を入力として、前方車両の画像認識処理を行って、実行結果として前方車両の認識結果を出力する制御タスクを実行する認識処理部４０Ａと、車輪速センサ１４から出力された４輪の車輪速データを入力として、自車両の車速を計算し、実行結果として車速データを出力する制御タスクを実行する車速計算部４０Ｂと、認識処理部４０Ａの実行結果と車速計算部４０Ｂの実行結果を入力として、ブレーキシステム１８の制御内容を決定し、実行結果としてブレーキシステム１８を制御する制御信号をブレーキシステム１８へ出力する制御タスクを実行するブレーキ制御部４０Ｃと、トルクセンサ１６から出力されたトルクデータと車速計算部４０Ｂの実行結果を入力として、モータ２０のモータ電流を決定し、実行結果としてモータ２０のモータ電流を制御するための電流制御信号をモータ２０へ出力する制御タスクを実行するステアリング制御部４０Ｄと、を備えている。
【００２６】
認識処理部４０Ａ、車速計算部４０Ｂ、ブレーキ制御部４０Ｃ、及びステアリング制御部４０Ｄの制御タスクは、マルチタスクにより、周期的に実行され、少なくとも１つの制御タスクの周期が、他の制御タスクと異なっている。認識処理部４０Ａ、車速計算部４０Ｂ、ブレーキ制御部４０Ｃ、及びステアリング制御部４０Ｄの各制御タスクは、予め定められた周期に従って、周期管理部４２によって起動される。
【００２７】
スロット計算部４５によって計算されるスロット番号は、時間軸を５ティック（ティックは単位時間）毎に分割したスロットの番号であり、スロット数（スロット番号の上限値）が、全制御タスクの周期の最小公倍数を最大公約数で除した値のｎ倍（ｎは所定以下の自然数（大きな数字ではない）であり、例えば１倍）の値と等しくなるように定められている。例えば、認識処理部４０Ａ及びブレーキ制御部４０Ｃの各制御タスクの周期が１５ティックであり、車速計算部４０Ｂ及びステアリング制御部４０Ｄの各制御タスクの周期が１０ティックである場合には、最小公倍数である３０ティックを、最大公約数である５ティックで除した値の１倍である６を、スロット数とする。一般化して説明すると、タスク１の周期をｍｐ、タスク２の周期をｍｑ、タスク３の周期をｍｒ（ｍ、ｐ、ｑ、ｒは自然数であり、ｐ、ｑ、ｒは互いに素とする）として、周期の最小公倍数は、ｍｐｑｒであり、周期の最大公約数はｍであるため、スロット数は、ｐｑｒ（＝ｍｐｑｒ／ｍ）のｎ倍（ｎは自然数）となり、スロット数の最小値は、ｐｑｒとなる。
【００２８】
スロット計算部４５は、現在のスロット番号として、スロット番号０〜５の何れかを計算し、スロット記憶部４６に記憶する。例えば、スロット計算部４５は、１スロット当たりの時間毎に、スロット記憶部４６に記憶されたスロット番号に１を加算して、スロット記憶部４６のスロット番号を更新し、スロット記憶部４６に記憶されたスロット番号が、最大値（例えば、５）である場合には、スロット記憶部４６のスロット番号を最小値（例えば、０）に更新する。
【００２９】
認識処理部４０Ａ、車速計算部４０Ｂ、ブレーキ制御部４０Ｃ、及びステアリング制御部４０Ｄの各制御タスクは、起動されたとき、及び実行結果を出力するときに、スロット記憶部４６から現在のスロット番号を読み出し、図３（Ａ）〜（Ｄ）に示すように、読み出したスロット番号を、起動時のスロット番号及び出力時のスロット番号として、タスクテーブル記憶部４８のタスクテーブルに格納する。
【００３０】
ブレーキ制御部４０Ｃ、ステアリング制御部４０Ｄの各制御タスクは、入力とする他の制御タスクの実行結果が出力されたときのスロット番号を、タスクテーブル記憶部４８のタスクテーブルから読み出し、上記図３（Ｃ）、（Ｄ）に示すように、読み出したスロット番号を、入力のスロット番号として、タスクテーブル記憶部４８のタスクテーブルに格納する。
【００３１】
制約テーブル記憶部５０には、図４（Ａ）〜（Ｄ）に示すような、各制御タスクについて、起動時のスロット番号に対応して、入力又は出力に対するスロット番号の許容範囲を予め定めた制約条件を格納した制約テーブルが記憶されている。例えば、上記図４（Ｃ）に示すように、ブレーキ制御部４０Ｃによる制御タスクでは、起動時のスロット番号が２である場合、入力となる認識結果のスロット番号（認識処理部４０Ａにおいて認識結果を出力したときのスロット番号）の許容範囲が１であり、入力となる車速データのスロット番号（車速計算部４０Ｂにおいて車速データを出力したときのスロット番号）の許容範囲が０と１であり、実行結果の出力時の許容範囲が３であることが定められている。更に、ブレーキ制御部４０Ｃによる制御タスクについて、起動時のスロット番号が５である場合、入力となる認識結果のスロット番号の許容範囲が４であり、入力となる車速データのスロット番号の許容範囲が３と４であり、実行結果の出力時の許容範囲が０であることが定められている。
【００３２】
認識処理部４０Ａ、車速計算部４０Ｂ、ブレーキ制御部４０Ｃ、及びステアリング制御部４０Ｄの各々は、実行結果を出力するときに、スロット記憶部４６から現在のスロット番号を読み出すと共に、制約テーブル記憶部５０から、実行結果の出力時のスロット番号の許容範囲を読み出し、スロット番号が許容範囲内であるか否かを判定し、許容範囲外である場合には、時間制約違反であると判定し、出力に関する時間制約違反を示すメッセージを表示部３２に表示させる。
【００３３】
ブレーキ制御部４０Ｃ及びステアリング制御部４０Ｄの各々は、入力とする他の制御タスクの実行結果が出力されたときのスロット番号を、タスクテーブル記憶部４８のタスクテーブルから読み出すと共に、制約テーブル記憶部５０から、入力のスロット番号の許容範囲を読み出し、スロット番号が許容範囲内であるか否かを判定し、許容範囲外である場合には、時間制約違反であると判定し、入力に関する時間制約違反を示すメッセージを表示部３２に表示させる。
【００３４】
次に、本実施の形態に係る統合制御システム１０の作用について説明する。統合制御システム１０を搭載した車両の走行中に、コンピュータ２２において、予め設定された１スロット当たりの時間毎に、図５に示すスロット番号計算処理ルーチンが実行される。
【００３５】
まず、ステップ１００において、スロット記憶部４６からスロット番号を読み出し、ステップ１０２において、上記ステップ１００で読み出されたスロット番号が最大値であるか否かを判定する。スロット番号が最大値でない場合には、ステップ１０４において、読み出したスロット番号に１を加算して、スロット記憶部４６に記憶させて、スロット番号を更新し、スロット番号計算処理ルーチンを終了する。一方、上記ステップ１０２で、読み出したスロット番号が最大値である場合には、ステップ１０６において、スロット番号として０をスロット記憶部４６に記憶させて、スロット番号を更新し、スロット番号計算処理ルーチンを終了する。
【００３６】
以上のように、１スロット当たりの時間毎に、スロット番号計算処理ルーチンが実行されることにより、スロット記憶部４６に、現在のスロット番号が記憶される。
【００３７】
また、上記のスロット番号計算処理ルーチンと並行して、マルチタスクにより、周期的に各制御タスクが起動され、起動された制御タスクについて、図６に示すタスク実行処理ルーチンが実行される。なお、各制御タスクの起動は、制約テーブル記憶部５０に記憶された起動時のスロット番号に従って、周期管理部４２によって行われる。
【００３８】
まず、ステップ１１０において、スロット記憶部４６から、現在のスロット番号を読み出して、起動時のスロット番号として、タスクテーブル記憶部４８に記憶させる。次のステップ１１２では、起動された制御タスクの入力データとしての実行結果をメモリ（図示省略）から取得すると共に、当該入力データとしての実行結果が他の制御タスクから出力されたときのスロット番号を、タスクテーブル記憶部４８から取得し、入力のスロット番号として、タスクテーブル記憶部４８に記憶させる。入力データが、他の制御タスクの実行結果でない場合には、前方カメラ１２、車輪速センサ１４、又はトルクセンサ１６から入力データを取り込むと共に、スロット記憶部４６から、現在のスロット番号を読み出して、入力のスロット番号として、タスクテーブル記憶部４８に記憶させる。
【００３９】
そして、ステップ１１４において、起動された制御タスクの入力のスロット番号の許容範囲を、制約テーブル記憶部５０から取得して、上記ステップ１１２で取得したスロット番号が、許容範囲内であるか否かを判定する。許容範囲外である場合には、時間制約違反であると判定し、ステップ１１６において、入力に関する制約違反が発生したことを示すメッセージを、表示部３２に表示させて、タスク実行処理ルーチンを終了する。
【００４０】
一方、上記ステップ１１４で、上記ステップ１１２で取得したスロット番号が、許容範囲内である場合には、ステップ１１８において、上記ステップ１１２で取得した入力データに基づいて、制御タスクを実行して、実行結果を求める。
【００４１】
ステップ１２０では、スロット記憶部４６から、現在のスロット番号を読み出す。そして、ステップ１２２において、起動された制御タスクの出力時のスロット番号の許容範囲を、制約テーブル記憶部５０から取得して、上記ステップ１２０で読み出したスロット番号が、許容範囲内であるか否かを判定する。許容範囲外である場合には、時間制約違反であると判定し、ステップ１２４において、出力に関する制約違反が発生したことを示すメッセージを、表示部３２に表示させて、タスク実行処理ルーチンを終了する。
【００４２】
一方、上記ステップ１２２で、上記ステップ１２０で読み出したスロット番号が、許容範囲内である場合には、ステップ１２６において、上記ステップ１１８で求めた実行結果を出力してメモリ（図示省略）に格納すると共に、上記ステップ１２０で読み出したスロット番号を、出力時のスロット番号として、タスクテーブル記憶部４８に記憶させて、タスク実行処理ルーチンを終了する。
【００４３】
上記のようにタスク実行処理ルーチンを、図７に示すようにマルチタスクで周期的に実行される各制御タスクについて実行すると、例えば、認識処理部４０Ａのスロット番号０で起動された制御タスクの実行（上記図７における３つ目のタスクＡ参照）において、実行結果の出力が遅れ、出力時のスロット番号２が、許容範囲である１以外であるため（上記図４（Ａ）参照）、出力に関する時間制約違反であると判定される。更に、ブレーキ制御部４０Ｃのスロット番号２で起動された制御タスクの実行（上記図７における３つ目のタスクＣ参照）において、認識処理部４０Ａの実行結果の出力の遅れにより、入力のスロット番号４が、許容範囲である１以外であるため（上記図４（Ｃ）参照）、入力に関する時間制約違反であると判定される。
【００４４】
また、車速計算部４０Ｂのスロット番号２で起動された制御タスクの実行（上記図７における５つ目のタスクＢ参照）において、実行結果の出力が遅れ、出力時のスロット番号３が、許容範囲である２以外であるため（上記図４（Ｂ）参照）、出力に関する時間制約違反であると判定される。更に、ステアリング制御部４０Ｄのスロット番号３で起動された制御タスクの実行（上記図７における５つ目のタスクＤ参照）において、車速計算部４０Ｂの実行結果の出力の遅れにより、入力のスロット番号０が、許容範囲である２以外であるため（上記図４（Ｄ）参照）、入力に関する時間制約違反であると判定される。
【００４５】
以上説明したように、本実施の形態に係る統合制御システムによれば、入力データとなる制御タスクの実行結果が出力されたときのスロット番号と、制約テーブルに格納されたスロット番号の許容範囲とに基づいて、簡易な処理で、制御タスクの入力に関する時間制約違反であるか否かを判定することができる。また、制御タスクの実行結果を出力するときのスロット番号と、制約テーブルに格納されたスロット番号の許容範囲とに基づいて、簡易な処理で、制御タスクの出力に関する時間制約違反であるか否かを判定することができる。
【００４６】
また、制御タスク毎にタイマで時間を測定し、制約条件と比較して時間制約違反を判定する方法に比べて、時間制約条件のデータ表現が小さいため、メモリ消費を小さくすることができる。また、制約条件を満たすかどうかを、現在のスロット番号と共に、制約テーブルに格納されたスロット番号を参照することで判定できるため、高速に処理することができる。
【００４７】
各制御タスクは、スロット番号を参照するだけで、タイマを読み出すことは不要となるため、計算処理が高速となる。
【００４８】
スロット番号の計算処理は、全制御タスクで共通であるため、計算時間を小さくすることができる。スロット番号というビット数の少ない値を用いることにより、各制御タスクのスロット番号の参照時間と、制約テーブルの参照時間を小さくすることができる。また、制約テーブルの記憶容量を小さくすることができる。
【００４９】
なお、上記の実施の形態では、入力に関する時間制約違反であると判定された場合には、制御タスクを実行せずに、タスク実行処理ルーチンを終了する場合を例に説明したが、これに限定されるものではなく、入力に関する時間制約違反であると判定された場合であっても、制御タスクを実行するようにしてもよい。
【００５０】
また、出力に関する時間制約違反であると判定された場合には、実行結果を出力せずに、タスク実行処理ルーチンを終了する場合を例に説明したが、これに限定されるものではなく、出力に関する時間制約違反であると判定された場合であっても、実行結果を出力するようにしてもよい。
【００５１】
また、出力に関する時間制約違反であるか否かを判定せずに、入力に関する時間制約違反であるか否かの判定のみを行うようにしてもよい。また、入力に関する時間制約違反であるか否かを判定せずに、出力に関する時間制約違反であるか否かの判定のみを行うようにしてもよい。
【００５２】
また、車両に搭載される統合制御システムのコンピュータに本発明を適用した場合を例に説明したが、これに限定されるものではなく、他の用途の制御タスクを実行する装置に、本発明を適用してもよい。例えば、一般的なＯＳを搭載したコンピュータに、本発明を適用してもよい。
【００５３】
時間制約違反があった場合でも、メッセージを記録媒体などに記憶しながら、制御タスクを実行してもよい。その場合には、そのメッセージを、後日の制約違反の発生原因の解析に利用してもよい。
【００５４】
また、時間制約違反があった場合には、メッセージ内容に応じて制御モードを、適切に切り替えながら、制御タスクを実行してもよい。
【００５５】
また、スロットの長さを全てのタスク時間の公約数として、スロット数を全てのタスク時間の公倍数毎に更新（リセット）するようにしてもよい。この場合、本発明と同様な作用が奏される。
【符号の説明】
【００５６】
１０   統合制御システム
１２   前方カメラ
１４   車輪速センサ
１６   トルクセンサ
１８   ブレーキシステム
２０   モータ
２２   コンピュータ
２４  ＣＰＵ
２６  ＲＡＭ
２８  ＲＯＭ
３２   表示部
４０   マルチタスク部
４０Ａ  認識処理部
４０Ｂ  車速計算部
４０Ｃ  ブレーキ制御部
４０Ｄ  ステアリング制御部
４２   周期管理部
４４   タイマ部
４５   スロット計算部
４６   スロット記憶部
４８   タスクテーブル記憶部
５０   制約テーブル記憶部
【図１】
2011191806.tif 000003
【図２】
2011191806.tif 000004
【図３】
2011191806.tif 000005
【図４】
2011191806.tif 000006
【図５】
2011191806.tif 000007
【図６】
2011191806.tif 000008
【図７】
2011191806.tif 000009
【手続補正書】
【提出日】平成23年4月20日(2011.4.20)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００２７
【補正方法】変更
【補正の内容】
【００２７】
スロット計算部４５によって計算されるスロット番号は、時間軸を５ティック（ティックは単位時間）毎に分割したスロットの番号であり、スロット数が、全制御タスクの周期の最小公倍数を最大公約数で除した値のｎ倍（ｎは所定以下の自然数（大きな数字ではない）であり、例えば１倍）の値と等しくなるように定められている。例えば、認識処理部４０Ａ及びブレーキ制御部４０Ｃの各制御タスクの周期が１５ティックであり、車速計算部４０Ｂ及びステアリング制御部４０Ｄの各制御タスクの周期が１０ティックである場合には、最小公倍数である３０ティックを、最大公約数である５ティックで除した値の１倍である６を、スロット数とする。一般化して説明すると、タスク１の周期をｍｐ、タスク２の周期をｍｑ、タスク３の周期をｍｒ（ｍ、ｐ、ｑ、ｒは自然数であり、ｐ、ｑ、ｒは互いに素とする）として、周期の最小公倍数は、ｍｐｑｒであり、周期の最大公約数はｍであるため、スロット数は、ｐｑｒ（＝ｍｐｑｒ／ｍ）のｎ倍（ｎは自然数）となり、スロット数の最小値は、ｐｑｒとなる。
【手続補正２】
【補正対象書類名】図面
【補正対象項目名】図７
【補正方法】変更
【補正の内容】
【図７】
2011191806.tif 000010