(57)【要約】【課題】車両用制御装置において重要度の高いがタスクの待ち時間が長い場合に、待ち時間を短縮する。【解決手段】複数の各タスクに、実行順序の優先度に応じて設定した初期重み値を与え、該初期重み値に基づく実行順序に従って前記複数のタスクを実行する車両制御装置において、各タスクの重要度に応じて重み付け値（Ｗ）を付与しておき、実行待ちタスクの待ち時間に基づいてタスクの実行順序の優先度を変更する。【選択図】図２
2009280021.tif 000002
【特許請求の範囲】
【請求項１】
複数の各タスクに、実行順序の優先度に応じて設定した初期重み値を与え、該初期重み値に基づく実行順序に従って前記複数のタスクを実行する車両制御装置において、
実行待ちタスクの待ち時間に基づいて前記実行順序の優先度を変更することを特徴とする車両制御装置。
【請求項２】
前記各タスク毎に重要度に応じた重み付け値（Ｗ）を設定し、該重み付け値（Ｗ）よりタスクの一定時間の待ち回数（Ｎ）と前記初期重み値とを乗じ数値を減算した変更重み付け値を算出し、この変更重み付け値に基づいて前記複数のタスクの実行順序の優先度を変更する請求項１に記載の車両用制御装置。
【請求項３】
前記設定した初期重み値および前記重み付け値は、実行順序の優先度が低くなって後順位となるに従って大きな数値とし、変更重み付け値の小さい順に実行順序の優先度を設定している請求項２に記載の車両用制御装置。
【請求項４】
オートマチックトランスミッション制御、エンジン点火制御、ブレーキ制御、ステアリング制御、省燃費促進制御から選択される１種以上の車両制御用である請求項１乃至請求項３のいずれか１項に記載の車両用制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両用制御装置に関し、詳しくは、目的とする制御動作を行うためになされる一連の複数のタスクのうち、実行順序が先のタスク処理が行えない場合に、制御機能として重要度は高いが、実行順序は後順位としたタスクの処理を先に行えるようにするものである。
【背景技術】
【０００２】
従来、車両には、エンジン点火制御、ブレーキ制御、オートマチックトランスミッション（ＡＴ）制御などを行う車両用制御装置が搭載されている。車両用制御装置は制御用のタスクを決められたタイミングで実行している。
タスクとは、ＣＰＵがセンサから信号を受け取り、該信号を用いて所定の処理を行い、必要に応じてＲＡＭにデータを書き込み又は読み込み、アクチュエータに制御信号を送信する等の一連の処理を指す。
【０００３】
車両用制御装置においては、車両の高機能化および高性能化に伴い制御動作は複雑化している。よって、例えば、ＡＴ制御を行うために必要なタスクの数が増大し、それに伴い、複数のタスクを処理するに必要な時間（処理時間）が増大する傾向にある。
通常、タスクの実行順序は予め設定されており、例えば、センサからのデータを取得するタスクが実行順序で優先タクスとして設定されている。
しかしながら、センサに異常が発生してタスクが実行されないと、後順位のタスクは実行されないこととなる。
【０００４】
このため、例えば、特開２００６−９０３５６号公報（特許文献１）においては、負荷状態判定タスクを設けた車両用制御装置が提案されている。該負荷常態判定タスクは、ＡＴ制御用タスクの終了から開始までの余裕時間を測定し、該余裕時間に基づいてタスクの処理内容を変化させている。余裕時間が所定のタスク混雑基準を満たさない場合には、タスクの処理内容を一部省略して簡略化し、タスクの処理負荷を通常よりも下げることで、タスクの込み合い度合いを軽減している。
【０００５】
しかし、特許文献１においては、前記のように、タスクの処理内容を一部省略するためタスク抜けが発生しやすくなる。
また、負荷状態判定タスクを新たに設けているため、車両用制御装置が実行するタスクが増えるという問題がある。特に、負荷状態判定タスクが余裕時間を測定しているＡＴ制御タスクはシフトチェンジにより実行されるタスクであるため、シフトチェンジする度に負荷状態判定タスクも実行される。このため、車両用制御装置はＡＴ制御タスク、負荷状態判定タスクを含め実行すべきタスクの数が多くなり、車両用制御装置が全てのタスクを実行する実行時間が長くなる問題がある。
即ち、「シフトチェンジするために、このタスクが走ること」と「シフトチェンジ毎に余裕時間を算出しなおしていること」により、処理が重くなるため、オーバーヘッド、および待ち時間が長くなる。
また、各タスクを一定時間づつ順番に実行すると、優先度の低いタスクが長時間待たされる問題は解決できない。
【０００６】
【特許文献１】特開２００６−９０３５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、前記問題に鑑みてなされたもので、負荷状態判定タスク等の新たなタスクを設けることなく、実行順序が後順位となっているが、制御機能の点からは重要度の高いタスクの待ち時間の減少をはかり、必要なタスクが確実に実行できるようにすることを課題としている。
【課題を解決するための手段】
【０００８】
前記課題を解決するため、本発明は、複数の各タスクに、実行順序の優先度に応じて設定した初期重み値を与え、該初期重み値に基づく実行順序に従って前記複数のタスクを実行する車両制御装置において、
実行待ちタスクの待ち時間に基づいて前記実行順序の優先度を変更することを特徴とする車両制御装置を提供している。
【０００９】
具体的には、前記各タスク毎に重要度に応じた重み付け値（Ｗ）を設定し、該重み付け値（Ｗ）よりタスクの一定時間の待ち回数（Ｎ）と前記初期重み値とを乗じ数値を減算した変更重み付け値を算出し、この変更重み付け値に基づいて前記複数のタスクの実行順序の優先度を変更している。
前記のように、タスクの重要度に応じて重み付け値（Ｗ）を設定し、重要度の大きいタスクの待ち時間が長くなると、実行順序が先順位に設定された優先度の高いタスクが実行されていない場合に、後順位の優先度の低いタスクを先に実行できるようにしている。
【００１０】
例えば、前記設定した初期重み値および前記重み付け値は、実行順序の優先度が低くなって後順位となるに従って大きな数値とし、変更重み付け値の小さい順に実行順序の優先度を設定している。
【００１１】
このように、タスクの実行順序の優先度を、タスクの待ち時間に応じて逐次変更し、実行順序の優先度を固定化しないことにより、重要度の高いタスクの待ち時間を減少している。即ち、実行順序の優先度が後順位となるタスクでも、長時間待ちを回避したい重要度の高いタスクに変更重み付け値を与えることにより、長時間待たされることを防き、リアルタイム性を維持している。よって、特許文献１の負荷状態判定タスク等からなる新たなタスクを設けることなく、タスク抜けや時間待ちを低減することができる。
【００１２】
前記本発明の車両用制御装置は、具体的には、演算処理手段（ＣＰＵ）と、該ＣＰＵに接続したＲＯＭ、ＲＡＭからなるメモリおよびドライバを備えた電子制御ユニットからなり、該電子制御ユニットにセンサおよびアクチュエータを接続している。
前記ＲＯＭは、各タスクの実行順序の優先度に応じて設定した初期重み値と、各タスクに重要度に応じて付した係数値を記憶している。
前記ＲＡＭは、各センサから受信したデータ値、受信時間、各タスクの抜け回数もしくは待ち時間等を逐次記憶している。
【００１３】
前記ＣＰＵは、実行キューに新たなタスクが挿入された時にソート手段で実行順序を再ソートとている。
即ち、ＣＰＵは、ＲＡＭよりタスクの待ち時間を取得すると共に、ＲＯＭより重み付け値を取得し、該タスクの待ち時間回数に優先度の初期重み値を乗じて取得した数値を、該タスクの重み付け値より減算して変更重み付け値を演算し、この変更重み付け値に基づいて、タスクの実行順序を変更している。
なお、新たに追加されるタスクを蓄積する蓄積用キューを設け、設定時間経過後、設定数のタスクが蓄積された場合、予め定めた特定タスクが蓄積された時に、前記ソートでタスクの実行順序を変更してもよい。
【００１４】
前記複数のタスクを実行して行う車両制御は、オートマチックトランスミッション制御、エンジン点火制御、ブレーキ制御、ステアリング制御、省燃費促進制御から選択される１種以上の制御である。
【発明の効果】
【００１５】
前述したように、本発明の車両用制御装置によれば、重要度が高いタスクの待ち時間が長くなると実行順序を変更し、実行順序が後順位となっている重要なタスクに付いては、タスク抜けや長時間待ちを回避し、制御のリアルタイム性を維持することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の車両用制御装置の実施形態を図面を参照して説明する。
図１乃至図４に本発明の実施形態を示す。
本実施形態の車両用の制御装置（ＥＣＵ）１０は省燃費促進制御装置としている。
【００１７】
図１に示すように、制御装置１０は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ドライバ１４を有している。
ドライバ１４は、複数のセンサ２０（２０Ａ、２０Ｂ）及び複数のアクチュエータ２１（２１Ａ、２１Ｂ）と接続している。
制御装置１０はセンサ２０からの信号を受け取り、アクチュエータ２１に制御信号を送信している。
センサ２０は、本実施形態では、車速センサ、クランク角センサ、アクセル開度用角度センサ、燃料流量センサ、エンジン付加センサ等からなる。
アクチュエータ２１は省燃費運転制御用であり、省燃費運転モードの表示を行う警告灯を点灯させる制御信号をアクチュエータ２１に送信している。
【００１８】
ＣＰＵ１１はドライバ１４と接続すると共に、ＲＯＭ１２、ＲＡＭ１３と接続している。ＣＰＵ１１は、センサ２０から入力された信号を用い、ＲＯＭ１２に記憶されたプログラムを、ＲＡＭ１３を参照して実行することで、複数のタスクの実行順序を設定している。
【００１９】
前記タスクとは、ＣＰＵ１１がセンサ２０から信号を受け取り、該信号を用いて所定の処理を行い、必要に応じてＲＡＭ１３にデータを書き込み、または読み込み、ドライバ１４よりアクチュエータ２１に制御信号を送信する等の一連の処理を指す。
【００２０】
前記ＲＯＭ１２は、書き込み不可のメモリであり、ＣＰＵ１１が各タスクを実行するためのプログラムが記憶されている。具体的には、図２の表に示すような、各タスクの実行順序の優先度Ｐに応じて設定した初期重み値と、各タスクの重み付け値Ｗ、タスクの一定待ち時間の回数等を記憶している。
タスクの実行順序の優先度Ｐは、優先順位に応じて、１、２、３、４と設定し、初期重み値の数値が小さい程、実行順序の優先度を高くしている。
また、同一の優先度Ｐのタスクでは、図３に示すように、受信順に実行順序を規定している。
【００２１】
前記重み付け値Ｗはタスクの制御機能の重要度に応じて、重要度が小さいタスクは重み付け値Ｗを大きくしている。例えば、図２に示すように、タスクＡ＝２、タスクＢ＝３、タスクＣ＝１５、タスクＤ＝２０、タスクＺ＝２０としている。
実行順序の優先度Ｐが同一であるタスク（図２でタスクＡとタスクＢ）であっても、重要度の高いタスクＡの重み付け値Ｗは「２」、タスクＡより重要度が低いタスクＢの重み付け値Ｗは「３」である。
【００２２】
前記ＲＡＭ１３は書き換え用のメモリであり、各センサ２０から受信したデータ値、受信時間、各タスクの抜け回数もしくは待ち時間等を逐次記憶している。
【００２３】
前記ＣＰＵ１１は、ソート手段を備え、実行キューに新たなタスクが挿入され、該タスクが待ち時間無しに処理される場合には、初期重み値と受信順にタスクの実行順序を規定している。
一方、実行キューに新たなタスクが挿入された時、タスクに待ち時間が発生している場合、ＲＡＭ１２よりタスクの待ち回数（即ち、一定時間で規定した待ち時間を１回とし、該待ち時間の回数）を取得すると共に、ＲＯＭ１１よりタスクの重み付け値Ｗを取得する。該重み付け値（Ｗ）より、タスクの一定時間の待ち回数（Ｎ）と前記初期重み値Ｐとを乗じ数値を減算した変更重み付け値を演算している。この変更重み付け値の値が小さい順をタスクの実行順序となるように変更してソート手段で再ソートしている。
【００２４】
具体的には、図２および図３に示す処理順序の優先度４のタスクが一定時間待たされると、タスクＺの待ち時間回数＊Ｎｘ＝１という情報をＲＡＭ１３に保存している。
再ソート時には、図２に示す優先度Ｐの初期重み値、係数値Ｋ、タスクが待たされた回数Ｎｘを用いて、タスクの重要度に応じた加算重み値を下式（１）で算出する
加算重み値＝Ｗ−Ｐ・Ｎｘ
前記図２で、タスクＺの待ち時間が１回であるとすると、
タスクＺは２０−４・１で変更重み値は１６となる。
タスクＡ、Ｂ、Ｃ、Ｄに待ち時間が発生していない場合、各タスクＡ、Ｂ、Ｃ，Ｄの変更後の重み値はタスクＡ＝２、タスクＢ＝３、タスクＣ＝１５、タスクＤ＝２０である。タスクＤよりタスクＺの方が小さくなるため実行順序はタスクＺが繰り上がり、タスクＤより優先する。即ち、タスクＡ→Ｂ→Ｃ→Ｄ→Ｚの実行順序から、タスクＡ→Ｂ→Ｃ→Ｚ→Ｄの実行順序に再ソートしている。
【００２５】
また、前記順序でタスクを実行して、再度同じタスク（例えばタスクＡ）等が応答待ち時間が長時間占有してしまう状況に陥った場合、タスクＺｈａ一定時間経過後、さらに「タスクＺの待ち回数Ｎｚ＝２」をＲＡＭ１３で保存して、前記式（１）を用いて再計算し、その結果に従って再ソートする。
その結果、タスクＺは２０−４・２＝１２となり、実行順序は、タスクＡ→Ｂ→Ｚ→Ｃ→ＤとさらにタスクＺは繰り上がる。
【００２６】
前記制御装置１０の作動工程を図４のフローチャートに示す。
ステップ（１）で、タスク（ｘ）が実行キューに追加されると、該追加時間からの実行時間までをカウントし、タスク（ｘ）が追加されてから前記規定した一定の待ち時間が経過された否かを検出する。
ステップ（２）でタスク（ｘ）が一定待ち時間経過していると、前記した（１）式でタスク（ｘ）の変更重み付け値を算出し、算出した変更重み付け値に基づいて、未処理のタスク間で実行順序を変更して再ソートする。
ステップ（３）で再ソートした結果でタスクを実行する。
【００２７】
省燃費運転促進用の制御装置１０のタスクについて説明する。
必要な一連のタスクをまとめると、下記のタスクＡ→タスクＢ→タスクＣからなる。
タスクＡは、複数の下記に列挙するセンサに現在のデータを要求するタスクである。これらセンサは、クランク用角度センサ、アクセル開度用角度センサ、燃料流量センサ、車速センサ、エンジン負荷センサからなる。      
タスクＢは、タスクＡの要求に応じてセンサから受信した各データを用いて、エンジン回転数、アクセル開度、燃料流量、車速、エンジン負荷を計算するタスクである。
タスクＣは、タスクＢで演算した各種値を用いて車両の燃料消費量および燃費を計算し、省燃費運転を促す制御（例えば、警告等を点灯）を行う電子制御ユニット（ＥＣＵ）へデータを送信するタスクである。
【００２８】
通常は、タスクＡ→Ｂ→Ｃの順序で実行されるが、例えば、タスクＡで一部のセンサ２０（例えば、燃料流量センサ）に要求したデータが、該センサに異常が発生してデータが長時間受信出来ない場合は、該センサからのデータが取得できるまで、即ち、タスクＡで要求したすべてのセンサ２０のデータを取得できるまで、タスクＢの処理ができない事となる。
前記センサが故障等で永遠に該センサからデータを受信できない場合、ハードリセット等を発生させて復帰することは可能であるが、それより前にタスクＡが一定時間以上待たされる場合（前記ステップ（１）がＹＥＳの場合）、ステップ（２）でタスクの実行順序をソートし直して、実行順序をタスクＢ→Ａ→Ｃに変更する。
【００２９】
其の際、タスクＢでの演算の基となるデータは、前に受信しているセンサのデータに基づいて演算する。この場合、タスクＢは最新のデータではなく１つ古いデータを利用することになるが、影響が少ないデータであれば、ハードリセットを回避でき、リアルタイム性を維持することができる。
【００３０】
このように、長時間の待ち時間が発生する場合、センサに異常が発生したと判断されるため、タスクＢ→Ａ→Ｃに並び変えたとしても、タスクＡは異常センサからのデータは待ちで正常に終了しないため、一定時間経過後、ソートをし直し、結果的にＢ→Ｃ→Ａの順序で実行されることになる。
即ち、タスクの実行順序は、Ａ→Ｂ→ＣからＢ→Ａ→Ｃへ変更し、さらに、Ｂ→Ａ→ＣからＢ→Ｃ→Ａへと変更する。
このように、予期しない異常によって特定タスクが複数回未実行の状態となる場合、これを各タスクは自分が何回実行されなかったか、またはその理由（どのセンサに異常が発生しているか等）を管理し、通知を行うことにより、ハードリセットと比べて比較的安全に車両制御を行うことができる。
【００３１】
なお、前記実施形態では実行キューに新たなタスクが追加された場合に、タスクの待ち時間に応じて実行順序の並び替えを行っているが、定期的にタスクの追加状況をチェックして、其の都度、タスクの並び替えを行ってもよい。
その場合、新たに追加されるタスクを蓄積する蓄積用キューを設けている。
設定した時間経過後、設定数のタスクが蓄積された時、あるいは、予め定めた特定のタスクが追加された時、追加されたタスクをソートされているタスクに加えて、前記実施形態に基づいて、タスクの実行順序を入れ替えてソートし直している。
【００３２】
なお、追加されたタスクを加えてタスクの実行順序を並び替える場合、全タスクを対象とせずに、優先度の高いタスク（優先度１または優先度１と２のタスク）は処理時間が短時間のものが多いため、優先順序を変えず、優先度の低いタスク（優先度４または優先度３と４のタスク）の実行順序だけソートし直しても良い。該方式とすると、ソート時間を短縮できる。
【図面の簡単な説明】
【００３３】
【図１】本発明である車両用制御装置の構成を示す概略図である。
【図２】タスクの優先度と重み付け値を示す表である。
【図３】タスクの実行順序を示す図である、
【図４】車両用制御装置の動作を示すフローチャートである。
【符号の説明】
【００３４】
１０  車両用制御装置(ＥＣＵ）
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  ドライバ
２０  センサ
２１  アクチュエータ
【図１】
2009280021.tif 000003
【図２】
2009280021.tif 000004
【図３】
2009280021.tif 000005
【図４】
2009280021.tif 000006