(57)【要約】【課題】制御性能の低下を抑制しつつタスク抜けを防止する。【解決手段】一定時間毎に実行されるべきタスクが記憶された記憶手段と、前記タスクを一定時間毎に実行する処理手段と、を備える電子制御装置において、前記タスクを構成する複数の関数としては、簡易化が不能な第１種ロジック関数と、簡易化しても制御対象の制御に対する影響が少ない第２種ロジック関数とがあり、記憶手段には、第２種ロジック関数として、簡易化されていない通常ロジック関数と、簡易化された簡易ロジック関数とが記憶されている。そして、前記タスクの実行モードとしては、第２種ロジック関数として通常ロジック関数の方を実行する通常ロジックモード（Ｓ１５０）と、簡易ロジック関数の方を実行する簡易ロジックモード（Ｓ１６０〜Ｓ２００）とがあり、処理手段は、タスク抜けの発生可能性があると判定すると、通常ロジックモードから簡易ロジックモードに切り替える。【選択図】図３
2016162330.tif 000002
【特許請求の範囲】
【請求項１】
制御対象を制御するために一定時間毎に実行されるべきタスクが記憶された記憶手段（７）と、前記タスクを前記一定時間毎に実行する処理手段（５）と、を備える電子制御装置（１）において、
前記タスクを構成する複数の関数として、簡易化が不能なロジックの関数である第１種ロジック関数と、簡易化しても前記制御対象の制御に対する影響が少ないロジックの関数である第２種ロジック関数と、があり、
前記記憶手段には、前記第２種ロジック関数として、簡易化されていない通常演算のための通常ロジック関数と、前記通常演算よりも簡易化された演算のための簡易ロジック関数とが、記憶されており、
前記処理手段が前記タスクを実行する際の実行モードとしては、前記第２種ロジック関数として前記通常ロジック関数の方を実行する通常ロジックモード（Ｓ１５０）と、前記第２種ロジック関数として前記簡易ロジック関数の方を実行する簡易ロジックモード（Ｓ１６０〜Ｓ２００）と、があり、
前記処理手段は、
前記タスクを前記一定時間毎に実行できないタスク抜けが発生する可能性があるか否かを判定する判定手段（Ｓ１１０，Ｓ２２０）と、
前記判定手段により前記タスク抜けが発生する可能性があると判定されると、前記実行モードを、前記通常ロジックモードから前記簡易ロジックモードに切り替えるモード切替手段（Ｓ２３０）と、を備えること、
を特徴とする電子制御装置。
【請求項２】
請求項１に記載の電子制御装置において、
前記判定手段は、前記タスクの実行が開始されると、当該タスクの前回の終了時から今回の開始時までの時間を余裕時間として計測し、その計測した余裕時間が規定値未満であれば、前記タスク抜けが発生する可能性があると判定すること、
を特徴とする電子制御装置。
【請求項３】
請求項１又は請求項２に記載の電子制御装置において、
前記第２種ロジック関数は複数あると共に、前記記憶手段には、複数の前記第２種ロジック関数の各々について、前記通常ロジック関数と前記簡易ロジック関数とが記憶されており、
前記処理手段は、
前記タスクにおいては、前記第１種ロジック関数を前記第２種ロジック関数よりも先に実行するようになっており（Ｓ１２０）、
更に、前記簡易ロジックモードの場合の前記タスクでは、前記第１種ロジック関数の実行を完了した後、当該タスクの次回の開始予定時刻までに当該タスクを終了させることが可能な範囲で極力多くの前記簡易ロジック関数を実行すること（Ｓ１６０〜Ｓ２００）、
を特徴とする電子制御装置。
【請求項４】
請求項３に記載の電子制御装置において、
前記処理手段は、前記簡易ロジックモードの場合の前記タスクでは、前記簡易ロジック関数を、処理時間が小さいものから順に実行すること、
を特徴とする電子制御装置。
【請求項５】
請求項４に記載の電子制御装置において、
前記処理手段は、前記簡易ロジックモードの場合の前記タスクにおいて、全ての前記簡易ロジック関数を実行することができなかった場合には（Ｓ１７０：ＮＯ）、次回の前記タスクでは、前回の前記タスクで最後に実行した前記簡易ロジック関数の次の順番の簡易
ロジック関数から実行すること（Ｓ２００，Ｓ１６０，Ｓ１８０）、
を特徴とする電子制御装置。
【請求項６】
請求項１ないし請求項５の何れか１項に記載の電子制御装置において、
前記処理手段は、
前記実行モードが前記通常ロジックモードから前記簡易ロジックモードに切り替えられた後、前記タスク抜けが発生する可能性が無くなったか否かを判定する復帰判定手段（Ｓ２４０）と、
前記復帰判定手段により前記タスク抜けが発生する可能性が無くなったと判定されると、前記実行モードを前記簡易ロジックモードから前記通常ロジックモードに切り替えるモード復帰手段（Ｓ２５０）と、を備えること、
を特徴とする電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子制御装置に関する。
【背景技術】
【０００２】
例えば、車両のエンジンを制御する電子制御装置では、マイクロコンピュータのＣＰＵ（Central Processing Unit）が、エンジンを制御するためのタスクを一定時間毎に実行する。一定時間毎に実行されるタスクは、定期タスクと呼ばれる。
【０００３】
また近年、パワートレイン系の制御ソフトウェアは大規模化しており、ＣＰＵの処理負荷も増大する傾向にある。ＣＰＵの処理負荷が大きくなると、一定時間毎に実行されるべきタスクを、予定の一定時間毎に実行できない状態（いわゆるタスク抜け）が発生する可能性がある。タスク抜けが起こると、そのタスクが本来の実行タイミングで実行されなくなるため、制御対象の良好な制御を実施することができなくなる。
【０００４】
一方、例えば特許文献１には、処理負荷（演算負荷）がしきい値より大きい場合には制御プログラムの一部の実行を停止する、という技術が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−３６６３７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１の技術は、タスク抜けを防止するものではなく、また、処理負荷が大きい場合に、制御プログラムの一部を実行しなくなるため、その実行されなくなった制御プログラムによる制御機能を失うこととなり、制御性能の大幅な低下を招く。
【０００７】
そこで、本発明は、制御性能の低下を抑制しつつ、タスク抜けを防止することを目的としている。
【課題を解決するための手段】
【０００８】
第１発明の電子制御装置は、制御対象を制御するために一定時間毎に実行されるべきタスクが記憶された記憶手段と、前記タスクを一定時間毎に実行する処理手段と、を備える。そして、前記タスクを構成する複数の関数として、簡易化が不能なロジックの関数である第１種ロジック関数と、簡易化しても制御対象の制御に対する影響が少ないロジックの関数である第２種ロジック関数とがある。
【０００９】
記憶手段には、第２種ロジック関数として、簡易化されていない通常演算のための通常ロジック関数と、通常演算よりも簡易化された演算のための簡易ロジック関数とが、記憶されている。また、処理手段がタスクを実行する際の実行モードとしては、第２種ロジック関数として通常ロジック関数の方を実行する通常ロジックモードと、第２種ロジック関数として簡易ロジック関数の方を実行する簡易ロジックモードとがある。
【００１０】
そして、処理手段は、判定手段と、モード切替手段と、を備える。判定手段は、タスクを一定時間毎に実行できないタスク抜けが発生する可能性があるか否かを判定する。モード切替手段は、判定手段によりタスク抜けが発生する可能性があると判定されると、タスクの実行モードを、前記通常ロジックモードから前記簡易ロジックモードに切り替える。
【００１１】
この電子制御装置によれば、処理手段の処理負荷が大きくなってタスク抜けが発生する可能性がでてくると、タスクを構成する関数のうち、第１種ロジック関数以外の第２種ロジック関数については、通常ロジック関数に代えて、通常ロジック関数よりも簡易化された簡易ロジック関数が実行されるようになる。
【００１２】
このため、処理手段の処理負荷が低減されてタスク抜けの発生が防止される。また、第２種ロジック関数の処理が全く実行されなくなるのではなく、第２種ロジック関数として簡易ロジック関数が実行されるため、制御性能の低下を抑制することができる。よって、制御性能の低下を抑制しつつ、タスク抜けを防止することができる。
【００１３】
なお、特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本発明の技術的範囲を限定するものではない。
【図面の簡単な説明】
【００１４】
【図１】実施形態の電子制御装置の構成を表す構成図である。
【図２】ロジックテーブルを説明する説明図である。
【図３】タスク処理のフローチャートである。
【図４】ロジックモード判定処理のフローチャートである。
【発明を実施するための形態】
【００１５】
以下に、本発明が適用された実施形態の電子制御装置について説明する。
図１に示す実施形態の電子制御装置（以下、ＥＣＵという）１は、例えば車両のエンジンを制御するＥＣＵであり、当該ＥＣＵ１の動作を司る処理部として、マイクロコンピュータ（以下、マイコンという）３を備える。尚、ＥＣＵは、「Electronic Control Unit」の略である。そして、マイコン３は、処理手段としてのＣＰＵ５と、ＣＰＵ５によって実行されるプログラムが記憶された記憶手段としてのＲＯＭ７と、ＣＰＵ５による演算結果が記憶されるＲＡＭ９と、を備える。
【００１６】
ＥＣＵ１には、エンジンを制御するために用いる情報を検出するためのセンサとして、吸気量センサ１１、クランク角センサ１２、水温センサ１３、吸気温センサ１４及び空燃比センサ１５などが接続されている。また、ＥＣＵ１には、駆動対象としてのインジェクタ１７が接続されている。
【００１７】
各センサ１１〜１５からの信号は、図示しない信号入力回路を介してマイコン３に入力される。マイコン３では、ＣＰＵ５が、ＲＯＭ７内のプログラムを実行することにより、各センサ１１〜１５からの信号に基づいてエンジンに対する燃料噴射量を演算し、その演算結果に基づいてインジェクタ１７の駆動を制御する。尚、図示を省略しているが、ＥＣＵ１には、マイコン３からの噴射指令信号に応じてインジェクタ１７に駆動信号を出力する駆動回路も備えられている。
【００１８】
マイコン３のＲＯＭ７に記憶されたエンジン制御用のプログラムとしては、一定時間毎に実行されるべきタスク（以下、定期タスクという）がある。
その定期タスクに割り当てられたエンジン制御用のロジックは、ＣＰＵ５の高負荷時でも通常演算が必須な第１種ロジックと、簡易演算でもエンジンの制御に対する影響が少ない第２種ロジックとに、分類されている。第１種ロジックは、エンジンの制御において簡易化が不能な必須のロジックであり、第２種ロジックは、簡易化してもエンジンの制御に対する影響が少ないロジックである。
【００１９】
このため、定期タスクを構成するエンジン制御用の関数のうち、第１種ロジックの関数である第１種ロジック関数（以下、必須ロジック関数ともいう）は、簡易化することができない。一方、第２種ロジックの関数である第２種ロジック関数は、簡易化してもエンジンの制御に対する影響が少ないため、ＣＰＵ５の高負荷時には簡易化して実行することができる。また、第１種ロジック関数と第２種ロジック関数とのうち、少なくとも第２種ロジック関数は複数ある。
【００２０】
そこで、マイコン３のＲＯＭ７には、定期タスクを構成する第２種ロジック関数の各々について、簡易化されていない通常演算のための通常ロジック関数と、通常演算よりも簡易化された演算のための簡易ロジック関数とが、記憶されている。
【００２１】
通常ロジック関数と簡易ロジック関数は、具体的には、図２に示すロジックテーブルの形態でＲＯＭ７に記憶されている。
図２に示すように、ロジックテーブルは、第２種ロジック関数の各々について通常ロジック関数を記録した通常ロジックテーブルと、第２種ロジック関数の各々について簡易ロジック関数を記録した簡易ロジックテーブルとの、２つによって構成されている。図２において、「Ｆｕｎｃ Ａ（）」、「Ｆｕｎｃ Ｂ（）」、「Ｆｕｎｃ Ｃ（）」、「Ｆｕｎｃ Ｄ（）」…は、通常ロジック関数であり、「Ｆｕｎｃ ａ（）」、「Ｆｕｎｃ ｂ（）」、「Ｆｕｎｃ ｃ（）」、「Ｆｕｎｃ ｄ（）」…は、簡易ロジック関数である。ＲＯＭ７には、第２種ロジック関数として、通常ロジック関数と簡易ロジック関数との両方がそれぞれ記憶されているということになる。通常ロジック関数は、本来の第２種ロジック関数に該当し、その通常ロジック関数を簡易化したものが簡易ロジック関数である。
【００２２】
そして、簡易ロジックテーブルには、簡易ロジック関数の各々について、その簡易ロジック関数の処理時間も記録されている。
また、簡易ロジックテーブルにおいて、簡易ロジック関数の記録順は、処理時間が小さいもの順になっている。そして、簡易ロジック関数の処理順序は、図２における左端の「処理順序」の欄に示すように、簡易ロジックテーブルにおける簡易ロジック関数の記録順（即ち、処理時間が小さいもの順）となっている。
【００２３】
例えば、第１種ロジック関数としては、エンジンの吸気量及び回転数から、噴射量の基本値である基本噴射量を算出するための基本噴射量演算関数と、既に算出されている複数の各補正係数を用いて基本噴射量を補正して、インジェクタ１７の駆動制御に用いる最終的な噴射量を算出する制御噴射量演算関数とがある。
【００２４】
そして、第２種ロジック関数は、上記複数の各補正係数を算出するための関数である。
例えば、第２種ロジック関数としては、エンジンの水温に基づいて補正係数を算出する関数（例えば、Ｆｕｎｃ Ａ（），Ｆｕｎｃ ａ（））や、エンジンの吸気温に基づいて補正係数を算出する関数（例えば、Ｆｕｎｃ Ｂ（），Ｆｕｎｃ ｂ（））や、エンジン始動時からの経過時間に基づいて補正係数を算出する関数（例えば、Ｆｕｎｃ Ｃ（），Ｆｕｎｃ ｃ（））や、空燃比に基づいて補正係数を算出する関数（例えば、Ｆｕｎｃ Ｄ（），Ｆｕｎｃ ｄ（））などがある。
【００２５】
次に、ＣＰＵ５が実行する定期タスクの処理について、図３を用い説明する。
マイコン３においては、予め定められた一定時間毎に定期タスクの起床要求が発生するようになっており、ＣＰＵ５は、その起床要求が発生すると、図３の定期タスクの実行を開始する。
【００２６】
図３に示すように、ＣＰＵ５は、定期タスクでは、まずＳ１１０にて、定期タスクについての余裕時間を算出する。余裕時間とは、当該定期タスクの前回の終了時から今回の開
始時までの時間である。例えば、当該定期タスクを終了するときに、マイコン３におけるフリーランタイマ値を、タスク終了時刻としてＲＡＭ９に記憶しておき、今回の起床要求が発生したときのフリーランタイマ値から、ＲＡＭ９に記憶しておいたタスク終了時刻を引いた値を、余裕時間として算出することができる。
【００２７】
ＣＰＵ５は、次のＳ１２０にて、必須ロジック関数を実行する。前述の通り必須ロジック関数は、第１種ロジック関数である。
ＣＰＵ５は、次のＳ１３０にて、図４に示すロジックモード判定処理を行う。
【００２８】
ＣＰＵ５が定期タスクを実行する際の実行モードとしては、通常ロジックモードと、簡易ロジックモードとがある。通常ロジックモードは、第２種ロジック関数として通常ロジック関数の方を実行するモードであり、簡易ロジックモードは、第２種ロジック関数として簡易ロジック関数の方を実行するモードである。そして、ロジックモード判定処理は、定期タスクの実行モードを、通常ロジックモードと簡易ロジックモードとに切り替えるための処理である。
【００２９】
図４に示すように、ＣＰＵ５は、ロジックモード判定処理では、Ｓ２１０にて、現在の実行モードが簡易ロジックモードであるか否かを判定し、簡易ロジックモードでなければ（つまり、通常ロジックモードであれば）、Ｓ２２０に進む。
【００３０】
ＣＰＵ５は、Ｓ２２０では、図３のＳ１１０で算出した余裕時間が規定値未満であるか否かを判定する。そして、余裕時間が規定値未満でなければ（Ｓ２２０：ＮＯ）、そのまま当該ロジックモード判定処理を終了するが、余裕時間が規定値未満であれば（Ｓ２２０：ＹＥＳ）、定期タスクのタスク抜けが発生する可能性があると判断して、Ｓ２３０に進む。
【００３１】
ＣＰＵ５は、Ｓ２３０では、タスク抜けを防止するために、通常ロジックモードを解除して、簡易ロジックモードにセットする。つまり、定期タスクの実行モードを通常ロジックモードから簡易ロジックモードに切り替える。そして、その後、当該ロジックモード判定処理を終了する。
【００３２】
また、ＣＰＵ５は、上記Ｓ２１０にて、現在の実行モードが簡易ロジックモードであると判定した場合には、Ｓ２４０に進む。
ＣＰＵ５は、Ｓ２４０では、当該ＣＰＵ５の現在の処理負荷が低負荷状態であるか否かを判定する。低負荷状態とは、定期タスクのタスク抜けが発生する可能性が無い、と考えられる処理負荷の状態である。
【００３３】
例えば、マイコン３では、特定の入力信号に応じてＣＰＵ５の処理負荷が変化する。
一例を挙げると、クランク角センサ１２から出力される信号（以下、クランク角信号という）には、エンジンのクランク軸が所定角度回転する毎にパルスが生じる。そして、マイコン３では、クランク角信号にパルスが生じる毎に、割り込みが発生して、ＣＰＵ５が割り込み処理を行う。このため、エンジン回転数が大きくなるほど、割り込みの発生頻度が高くなり、ＣＰＵ５の処理負荷が大きくなる。よって、ＣＰＵ５は、Ｓ２４０では、例えば、クランク角信号におけるパルスの発生間隔に基づいて検出されるエンジン回転数が所定値以下であるか否かを判定し、エンジン回転数が所定値以下であれば、低負荷状態であると判定する。
【００３４】
ＣＰＵ５は、上記Ｓ２４０にて、低負荷状態ではないと判定した場合には、そのまま当該ロジックモード判定処理を終了するが、低負荷状態であると判定した場合には、定期タスクのタスク抜けが発生する可能性が無くなったと判断して、Ｓ２５０に進む。
【００３５】
ＣＰＵ５は、Ｓ２５０では、簡易ロジックモードを解除して、通常ロジックモードにセットする。つまり、定期タスクの実行モードを簡易ロジックモードから通常ロジックモードに切り替える。そして、その後、当該ロジックモード判定処理を終了する。
【００３６】
図３の説明に戻る。ＣＰＵ５は、Ｓ１３０にて図４のロジックモード判定処理を終了すると、Ｓ１４０に進む。
ＣＰＵ５は、Ｓ１４０では、現在の実行モードが簡易ロジックモードであるか否かを判定し、簡易ロジックモードでなければ（つまり、通常ロジックモードであれば）、Ｓ１５０に進む。
【００３７】
ＣＰＵ５は、Ｓ１５０では、第２ロジック関数の各々として、前述の通常ロジックテーブル（図２）に記録されている通常ロジック関数の各々を全て実行し、その後、当該定期タスクを終了する。
【００３８】
一方、ＣＰＵ５は、上記Ｓ１４０にて、現在の実行モードが簡易ロジックモードであると判定した場合には、Ｓ１６０に進む。
ＣＰＵ５は、Ｓ１６０では、前述の簡易ロジックテーブル（図２）から、実行対象の簡易ロジック関数を１つ選択すると共に、その選択した簡易ロジック関数の処理時間も読み出す。Ｓ１６０での簡易ロジック関数の選択規則は下記の通りである。
【００３９】
・処理時間が小さいものから順に選択する。
・但し、前回実行した当該定期タスクにおいて、後述するＳ２００で次回開始関数情報がＲＡＭ９に記憶されていれば、その次回開始関数情報が示す簡易ロジック関数から順に選択する。尚、次回開始関数情報は、簡易ロジックテーブルに記録されている簡易ロジック関数のうち、前回の定期タスクで最後に実行した簡易ロジック関数の次に処理時間が小さい簡易ロジック関数を示す。また、次回開始関数情報は、簡易ロジックモードから通常ロジックモードに戻った場合には消去される。
【００４０】
そして、ＣＰＵ５は、次のＳ１７０にて、現在から当該定期タスクの次回の開始予定時刻（具体的には、次回の起床要求の発生予定時刻）までの残り時間を計測する。例えば、次回の起床要求の発生予定時刻に相当するフリーランタイマ値から、現在のフリーランタイマ値を引き、その引き算した値にフリーランタイマ値の分解能時間を乗じた時間を、残り時間として算出する。更に、ＣＰＵ５は、Ｓ１７０では、計測した残り時間から所定時間Ｔαを引いた時間（以下、処理可能時間という）が、Ｓ１６０で選択した簡易ロジック関数の処理時間以上であるか否かを判定する。所定時間Ｔαは、後述するＳ１８０で簡易ロジック関数の実行を完了してから、次の簡易ロジック関数を実行することなく当該定期タスクを終了するまでに必要な最大の処理時間である。よって、処理可能時間（＝残り時間−Ｔα）は、当該定期タスクの次回の開始予定時刻までに当該定期タスクを終了させることが可能な範囲で、簡易ロジック関数の実行に使用することが可能な時間である。
【００４１】
ＣＰＵ５は、上記Ｓ１７０にて、処理可能時間が処理時間以上であると判定した場合には、Ｓ１６０で選択した簡易ロジック関数を実行しても、次回の起床要求が発生するまでに当該定期タスクを終了することができると判断して、Ｓ１８０に進み、Ｓ１６０で選択した簡易ロジック関数を実行する。
【００４２】
そして、ＣＰＵ５は、次のＳ１９０にて、簡易ロジックテーブルに記録されている全ての簡易ロジック関数の実行を完了したか否かを判定し、全ての簡易ロジック関数の実行を完了していないと判定した場合には、Ｓ１６０に戻る。ＣＰＵ５は、この場合のＳ１６０では、前回のＳ１６０で選択した簡易ロジック関数の次に処理時間が小さい簡易ロジック
関数を選択する。
【００４３】
また、ＣＰＵ５は、上記Ｓ１９０にて、全ての簡易ロジック関数の実行を完了したと判定した場合には、当該定期タスクを終了する。
一方、ＣＰＵ５は、上記Ｓ１７０にて、処理可能時間が処理時間以上ではないと判定した場合には、Ｓ１６０で選択した簡易ロジック関数を実行せずに、Ｓ２００に進む。この場合には、Ｓ１６０で選択した簡易ロジック関数を実行すると、次回の起床要求が発生するまでに当該定期タスクを終了することができず、タスク抜けを発生させてしまうからである。
【００４４】
そして、ＣＰＵ５は、Ｓ２００では、Ｓ１６０で選択した簡易ロジック関数を示す情報を、前述の次回開始関数情報としてＲＡＭ９に記憶し、その後、当該定期タスクを終了する。この場合、次回の定期タスクにおいて、最初のＳ１６０では、次回開始関数情報が示す簡易ロジック関数から順に選択される。よって、次回の前記タスクでは、前回の定期タスクで最後に実行した簡易ロジック関数の次の順番の簡易ロジック関数から実行されることとなる。また、次回開始関数情報としては、例えば、該当する簡易ロジック関数の処理順序（図２の左端の欄参照）が記憶される。
【００４５】
以上のようなＥＣＵ１において、マイコン３のＣＰＵ５は、定期タスクのタスク抜けが発生する可能性があると判定すると（Ｓ２２０：ＹＥＳ）、定期タスクの実行モードを、通常ロジックモードから簡易ロジックモードに切り替える（Ｓ２３０）。そして、定期タスクにおいて、簡易ロジックモードの場合には、第２種ロジック関数として、通常ロジック関数を簡易化した簡易ロジック関数を実行する（Ｓ１６０〜Ｓ１９０）。
【００４６】
このため、ＣＰＵ５の処理負荷が低減されて（具体的には定期タスクの処理時間が短縮されて）タスク抜けの発生が防止される。また、第２種ロジック関数の処理が全く実行されなくなるのではなく、第２種ロジック関数として簡易ロジック関数が実行されるため、エンジンの制御性能の低下を抑制することができる。よって、制御性能の低下を抑制しつつ、タスク抜けを防止することができる。
【００４７】
また、ＣＰＵ５は、定期タスクの実行を開始すると、当該定期タスクの前回の終了時から今回の開始時までの時間を余裕時間として計測し（Ｓ１１０）、その計測した余裕時間が規定値未満であれば、定期タスクのタスク抜けが発生する可能性があると判定する（Ｓ２２０）。このため、タスク抜けが発生する可能性があるか否かを正しく判定することができる。
【００４８】
また、ＣＰＵ５は、定期タスクにおいては、第２種ロジック関数よりも先に第１種ロジック関数を実行する（Ｓ１２０）ようになっている。そして、簡易ロジックモードの場合の定期タスクでは、第１種ロジック関数の実行を完了した後、当該タスクの次回の開始予定時刻までに当該タスクを終了させることが可能な範囲で、極力多くの簡易ロジック関数を実行する（Ｓ１６０〜Ｓ１９０）。このため、タスク抜けを防止しつつ、できるだけ多くの簡易ロジック関数を実行して制御への影響を抑制することができる。
【００４９】
しかも、ＣＰＵ５は、簡易ロジックモードの場合の定期タスクでは、簡易ロジック関数を、処理時間が小さいものから順に実行する。このため、より多くの簡易ロジック関数を実行することができる。
【００５０】
また、ＣＰＵ５は、簡易ロジックモードの場合の定期タスクにおいて、全ての簡易ロジック関数を実行することができなかった場合には（Ｓ１７０：ＮＯ）、今回の定期タスクで最後に実行した簡易ロジック関数の次の順番の簡易ロジック関数を示す情報を、次回開
始関数情報としてＲＡＭ９に記憶する（Ｓ２００）。そして、ＣＰＵ５は、次回の定期タスクでは、その次回開始関数情報が示す簡易ロジック関数（つまり、前回の定期タスクで最後に実行した簡易ロジック関数の次の順番の簡易ロジック関数）から実行する（Ｓ１６０，Ｓ１８０）。このため、全ての簡易ロジック関数を複数回の定期タスクによって実行することができるようになる。このことからも制御への影響を抑制することができる。
【００５１】
また、ＣＰＵ５は、簡易ロジックモードに移行した後、定期タスクのタスク抜けが発生する可能性が無くなったと判定すると（Ｓ２４０：ＹＥＳ）、定期タスクの実行モードを、簡易ロジックモードから通常ロジックモードに切り替える（Ｓ２５０）。このため、通常モードに復帰することができる。
【００５２】
尚、図４のＳ２４０では、図３のＳ１１０で算出した余裕時間が所定値以上であるか否かを判定し、余裕時間が所定値以上であれば、タスク抜けが発生する可能性が無くなったと判定して、Ｓ２５０に進むようになっていても良い。
【００５３】
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されることなく、種々の形態を採り得る。また、前述の数値も一例であり他の値でも良い。
例えば、図３のＳ２００では、今回の定期タスクで最後に実行した簡易ロジック関数を示す情報を、ＲＡＭ９に記憶し、次回の定期タスクでは、その情報が示す簡易ロジック関数の次の順番の簡易ロジック関数から実行するようになっていても良い。また、制御対象はトランスミッションなどでも良い。
【００５４】
また、上記実施形態における１つの構成要素が有する機能を複数の構成要素として分散させたり、複数の構成要素が有する機能を１つの構成要素に統合させたりしてもよい。また、上記実施形態の構成の少なくとも一部を、同様の機能を有する公知の構成に置き換えてもよい。また、上記実施形態の構成の一部を省略してもよい。なお、特許請求の範囲に記載した文言によって特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。また、上述した電子制御装置（ＥＣＵ）の他、当該電子制御装置を構成要素とするシステム、当該電子制御装置としてコンピュータを機能させるためのプログラム、このプログラムを記録した媒体、タスク抜け防止方法など、種々の形態で本発明を実現することもできる。
【符号の説明】
【００５５】
１…ＥＣＵ（電子制御装置）、５…ＣＰＵ、７…ＲＯＭ
【図１】
2016162330.tif 000003
【図２】
2016162330.tif 000004
【図３】
2016162330.tif 000005
【図４】
2016162330.tif 000006