(57)【要約】【課題】  入力処理と演算処理と出力処理を制御周期毎に繰り返し実行する電子制御装置において、制御周期並びに入力処理から出力処理までの応答時間を、ばらつきを生じさせることなく短縮できて、制御精度等を向上させることができる入出力制御方法を提供する。【解決手段】  制御演算手段が、タイマ手段により計測される時間が入力開始タイミング及び出力開始タイミングに達すると、それぞれ入力手段及び出力手段に入力処理及び出力処理を開始させ、かつ、入力手段に、今回又は前回の演算処理又は出力処理が完了するよりも前に次回の入力処理を開始させる。【選択図】  図７
2005142229.tif 000002
【特許請求の範囲】
【請求項１】
外部からの信号を取り込んでＡ／Ｄ変換等の入力処理を行う入力手段と、該入力手段の処理結果を受けて制御演算を行う制御演算手段と、該制御演算手段の演算結果を受けて外部に対する信号の出力処理を行う出力手段と、時間を計測するタイマ手段と、が備えられた電子制御装置の入出力制御方法において、
前記制御演算手段は、前記タイマ手段により計測される時間が入力開始タイミング及び出力開始タイミングに達すると、それぞれ前記入力手段及び出力手段に入力処理及び出力処理を開始させ、かつ、前記入力手段に、今回又は前回の制御演算又は出力処理が完了するよりも前に次回の入力処理を開始させることを特徴とする入出力制御方法。
【請求項２】
内燃機関の吸排気弁を電磁コイルが発生する電磁力によって開閉制御するために、前記吸排気弁のリフト量を表す信号を取り込んでＡ／Ｄ変換等の入力処理を行う入力手段と、該入力手段の処理結果を受けて前記電磁コイルに供給すべき目標電流値を設定する制御演算手段と、該制御演算手段の演算結果を受けて前記目標電流値を出力する出力手段と、時間を計測するタイマ手段と、が備えられた電子制御装置の入出力制御方法において、
前記制御演算手段は、前記タイマ手段により計測される時間が入力開始タイミング及び出力開始タイミングに達すると、それぞれ前記入力手段及び出力手段に入力処理及び出力処理を開始させ、かつ、前記入力手段に、今回又は前回の制御演算又は出力処理が完了するよりも前に次回の入力処理を開始させることを特徴とする入出力制御方法。
【請求項３】
前記制御演算手段は、前記入力手段及び出力手段に、入力開始と出力開始とが、同じタイミングとなるように、又は、それらが一定の時間差を持つように、入力開始及び出力開始タイミングを設定することを特徴とする請求項１又は２に記載の入出力制御方法。
【請求項４】
前記制御演算手段は、今回の制御演算を、次回の入力処理の完了を待つことなく、開始することを特徴とする請求項１から３のいずれかに記載の入出力制御方法。
【請求項５】
前記制御演算手段は、前記入力手段及び出力手段に、入力処理と出力処理とを制御周期と同じ周期をもって開始させることを特徴とする請求項１から４のいずれかに記載の入出力制御方法。
【請求項６】
前記制御演算手段は、制御周期開始時点で前記入力手段に入力処理を開始させる起動処理を行うとともに、前記制御周期開始時点から一定時間が経過した時点で前記出力手段に出力処理を開始させる起動処理を行うことを特徴とする請求項１から５のいずれかに記載の入出力制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子制御装置の入出力制御方法に係り、特に、電磁コイルで駆動される吸排気弁（電磁駆動弁）を備えた内燃機関における電磁駆動弁制御装置に好適な入出力制御方法に関する。
【背景技術】
【０００２】
内燃機関の吸気弁、排気弁の開閉駆動動作を機械的な動弁機構によって行うことに代えて、電磁コイルの通電によって生じる電磁力によって開閉操作を行い、その開閉タイミングを電気的に制御可能にして、機関の性能を向上させることが知られている。例えば、下記特許文献１には、マイクロコンピュータからなる制御ユニットと電磁駆動弁の駆動電流を出力する駆動ユニットによって電磁駆動弁を制御するシステムが記載されている。このシステムでは、制御ユニットが機関の運転状態や電磁駆動弁のリフト量等に基づいて各電磁駆動弁内の電磁コイルに通電する目標電流値をそれぞれ設定し、それらをアナログ信号に変換して駆動ユニットに出力している。駆動ユニットは入力された目標電流値に基づいて各電磁駆動弁内の電磁コイルに駆動電流を通電している。
【０００３】
このようなシステムにおいては、制御精度の高さが求められており、このため制御周期は数十マイクロ秒以下と高速な制御が求められている。しかしながら、従来の電子制御装置では、基本的に１つの制御周期内で、Ａ／Ｄ変換と、Ａ／Ｄ変換データに基づく演算と、その演算結果である目標電流値の出力とを実行している。従って、制御周期は入力処理、演算処理、出力処理のそれぞれに必要な時間の総和よりも短くできない。
【０００４】
これを解決するための技術として、例えば、下記特許文献２に開示されているように、入出力処理を行うサービスプロセッサと、演算処理を行うシーケンスプロセッサが互いに同期を取りながら入出力処理と演算処理を並列実行する電子制御装置が知られている。この電子制御装置では、シーケンスプロセッサが演算を終了した後に、サービスプロセッサと信号を交換する同期処理を実行し、互いに同期してからシーケンスプロセッサは演算を実行し、サービスプロセッサは出力を実行するとともに、シーケンスプロセッサと同期してから所定の時間が経過した時点で次の入力を実行する。これにより、シーケンスプロセッサの演算処理とサービスプロセッサによる入出力処理を並列に実行できる。
【０００５】
一方、例えば、下記特許文献３には、複数の入力チャンネルを有するＡ／Ｄ変換器の制御において、外部からのタイミングでＡ／Ｄ変換（入力処理）を起動するようにし、演算処理完了前に次のＡ／Ｄ変換を開始させることを可能とした制御装置が記載されている。
【０００６】
【特許文献１】特開平２００２―４３１２７号公報（第１〜１５頁、図１〜図１３）
【特許文献２】特開平６−３５５１４号公報（第１〜７頁、図１〜図８）
【特許文献３】特開平６−３２４８１１号公報（第１〜１５頁、図１〜図９）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、上記特許文献２に所載のような電子制御装置では、シーケンスプロセッサの演算処理時間と同期処理時間によって制御周期が決まる。このため、演算処理時間が変化すると制御周期が一定でなくなり、入力処理（信号取り込み、Ａ／Ｄ変換）や目標電流値の出力処理のそれぞれの周期にばらつきが生じるだけでなく、入力処理からそれに対応する目標電流値の出力処理までの応答時間にもばらつきが生じ、制御精度等を向上させることが難しいという問題がある。
【０００８】
また、上記特許文献３に所載のような制御装置においても、Ａ／Ｄ変換（入力処理）から演算処理を経て指令値等を出力する（出力処理）までの応答時間を、ばらつきを生じさせることなく短縮することはできない。
【０００９】
本発明は、上記課題を解決するためのものであり、その目的とするところは、入力処理と演算処理と出力処理とを制御周期毎に繰り返し実行する電子制御装置において、制御周期並びに入力処理から出力処理までの応答時間を、ばらつきを生じさせることなく短縮できて、制御精度等を向上させることができる入出力制御方法を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成すべく、本発明に係る入出力制御方法は、外部からの信号を取り込んでＡ／Ｄ変換等の入力処理を行う入力手段と、該入力手段の処理結果を受けて制御演算を行う制御演算手段と、該制御演算手段の演算結果を受けて外部に対する信号の出力処理を行う出力手段と、時間を計測するタイマ手段と、が備えられた電子制御装置についてのものであり、より好ましい具体例としては、内燃機関の吸排気弁を電磁コイルが発生する電磁力によって開閉制御するために、前記吸排気弁のリフト量を表す信号を取り込んでＡ／Ｄ変換等の入力処理を行う入力手段と、該入力手段の処理結果を受けて前記電磁コイルに供給すべき目標電流値を設定する制御演算手段と、該制御演算手段の演算結果を受けて前記目標電流値を出力する出力手段と、時間を計測するタイマ手段と、が備えられた電子制御装置における入出力制御方法において、前記制御演算手段は、前記タイマ手段により計測される時間が入力開始タイミング及び出力開始タイミングに達すると、それぞれ前記入力手段及び出力手段に入力処理及び出力処理を開始させ、かつ、前記入力手段に、今回又は前回の制御演算又は出力処理が完了するよりも前に次回の入力処理を開始させることを特徴としている。
【００１１】
この場合、前記制御演算手段は、好ましくは、前記入力手段及び出力手段に、入力開始と出力開始とが、同じタイミングとなるように、又は、それらが一定の時間差を持つように、入力開始及び出力開始タイミングを設定するようにされる。
【００１２】
また、前記制御演算手段は、好ましくは、今回の制御演算を、次回の入力処理の完了を待つことなく、開始するようにされる。
【００１３】
さらに、前記制御演算手段は、好ましくは、前記入力手段及び出力手段に、入力処理と出力処理とを制御周期と同じ周期をもって開始させるようにされる。
【００１４】
他の好ましい態様では、前記制御演算手段は、制御周期開始時点で前記入力手段に入力処理を開始させる起動処理を行うとともに、前記制御周期開始時点から一定時間が経過した時点で前記出力手段に出力処理を開始させる起動処理を行うようにされる。
【００１５】
このような構成とされた本発明に係る入出力制御方法の好ましい態様では、入力処理と制御演算と出力処理を一定の周期で実行するので、入力処理と制御演算と出力処理をそれぞれ最適なタイミングで開始することができる。つまり、制御周期開始時点を基準にして、入力処理と出力処理を開始するので、入力処理と出力処理がそれぞれ一定の周期で実行され、これにより、入力処理から出力処理までの応答時間もばらつきを生じることなく一定になり、そのため、制御精度等を向上できる。
【００１６】
さらに、入力処理と制御演算と出力処理とを並列に実行するので、制御周期が短縮されて入力サンプリング周波数が高くなり、応答性、制御精度等をより向上できる。
【発明の効果】
【００１７】
以上の説明から理解されるように、本発明に係る入出力制御方法によれば、周期開始時点を基準にして入力処理と出力処理を開始するので、入力処理と出力処理がそれぞれ一定の周期で実行されるとともに、入力処理から出力処理までの応答時間も一定になり、制御精度等を向上できる。
【００１８】
さらに、入力処理と演算処理と出力処理とを並列に実行するので、制御周期が短縮されて入力サンプリング周波数が高くなり、応答性、制御精度等をより向上できる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態を図面を参照しながら説明する。
【００２０】
図１は、本発明に係る入出力制御方法の一実施形態を、それが採用された内燃機関の一例の主要部と共に示す概略構成図である。
【００２１】
内燃機関１は、４つの気筒#１、#２、#３、#４を備えている。各気筒#１、#２、#３、#４には、ピストン３、吸気ポート５、吸気弁４ａ、排気ポート６、排気弁４ｂ、点火プラグ７等が備えられている。吸気弁４ａ、排気弁４ｂは、それぞれ閉用及び開用電磁コイル（図２のアッパーコイル４３ａ及びロアコイル４４ａ）によって開閉駆動される電磁駆動弁である。以下、特に区別しない場合には吸気弁４ａ、排気弁４ｂを電磁駆動弁と呼ぶ。
【００２２】
なお、本実施形態では、各気筒＃１、＃２、＃３、＃４に、吸気弁４ａ及び排気弁４ｂが１つずつ備えられているが、吸気弁４ａ及び又は排気弁４ｂを２つ以上備えた構成にしてもよい。
【００２３】
電磁駆動弁４ａ、４ｂは、それぞれ制御ユニット８と駆動ユニット９とからなる電子制御装置２によって制御される。
【００２４】
制御ユニット８は、機関の回転周期よりもさらに短い制御周期で動作しており、制御周期毎に電磁駆動弁４ａ、４ｂにそれぞれ備えられたリフトセンサ４６ａ、４６ｂから得られるリフト量信号４７ａ、４７ｂに基づいて電磁駆動弁４ａ、４ｂの各電磁コイル４３ａ、４３ｂに流すべき通電量を設定し、この設定された目標電流値をシリアル伝送路８０６を経由して駆動ユニット９に送信する。
【００２５】
なお、制御ユニット８は、電磁駆動弁４ａ、４ｂの各電磁コイル４３ａ、４３ｂに流す通電量を設定する際に、図示していない各種センサや別の制御ユニットから受け取る機関１の運転情報、例えばクランク角度なども参照し、それらを加味して目標電流値を設定する。
【００２６】
駆動ユニット９は、制御ユニット８から受信した目標電流値に従って電磁駆動弁４ａ、４ｂへの駆動電流信号９０４ａ、９０５ａ、９０４ｂ、９０５ｂの通電量を調整する。
【００２７】
図２は、吸気弁である電磁駆動弁４ａの概略構成を示している。なお、排気弁である電磁駆動弁４ｂも同様の構成である。
【００２８】
電磁駆動弁４ａ（４ｂ）は、電磁力を発生する電磁コイルとしてのアッパーコイル４３ａ及びロアコイル４４ａ、弁体４０ａ、シャフト４１ａ、シャフト４１ａに固定され、アッパーコイル４３ａ及びロアコイル４４ａの電磁力によって吸引される素材で形成されたアーマチャ４２ａ、及び、両端が固定されてアーマチャ４２ａを上下方向に付勢する上下一対のスプリング４５ａ、４５ａ、を備えており、その上端部付近には、弁体４０ａのリフト量を検出するリフトセンサ４６ａが付設されている。
【００２９】
アッパーコイル４３ａは、駆動ユニット９から送られる駆動電流信号９０４ａによって電磁力を発生してアーマチャ４２ａを上方に吸引する。これにより閉弁動作が行われる。ロアコイル４４ａは、駆動ユニット９から送られる駆動電流信号９０５ａによって電磁力を発生してアーマチャ４２ａを下方に吸引する。これにより開弁動作が行われる。アッパーコイル４３ａ、ロアコイル４４ａの電磁力は駆動電流信号９０４ａ、９０５ａの通電量によって決まるので、この通電量を変えることによって弁体４０ａの開閉速度が調整される。
【００３０】
アッパーコイル４３ａとロアコイル４４ａに電流が供給されていない、すなわち電磁力が発生していない状態では、アーマチャ４２ａはスプリング４５ａによってアッパーコイル４３ａとロアコイル４４ａの中間に位置するようになっている。この場合、弁体４０ａは全閉状態と全開状態の間の真ん中付近に位置する。アッパーコイル４３ａによってアーマチャ４２ａが上方に吸引されると弁体４０ａは全閉状態になるが、この状態ではスプリング４５ａによって開き方向に力が加わっているので、弁体４０ａを全閉状態で維持するためにアッパーコイル４３ａに微少の電流を流す必要がある。しかしながら、弁体４０ａを全閉状態から全開状態に移行させる際にはスプリング４５ａによって開き方向の力が加わるため、下方向へ吸引するロアコイル４４ａの通電量を抑えることができる。また、弁体４０ａが全開状態のときも同様である。
【００３１】
リフトセンサ４６ａは、弁体４０ａのリフト量（開き量）を検出して、そのリフト量に応じたアナログ信号であるリフト量信号４７ａを制御ユニット８に出力する。
【００３２】
図３は、制御ユニット８の構成を示すブロック図である。
制御ユニット８は、システムバス８０５によって互いに接続されたＣＰＵ（中央演算処理ユニット）８００、メモリ８０１、Ａ／Ｄ変換器（ＡＤＣ）８０２、シリアル通信モジュール（ＳＣＭ）８０３、タイマ８０４によって構成されている。
【００３３】
タイマ８０４は、予め定められた制御周期毎にＣＰＵ８００に制御周期の起点を通知する。
【００３４】
ＣＰＵ８００は、タイマ８０４からの通知を受信すると、Ａ／Ｄ変換器８０２にリフト量信号４７ａ、４７ｂの入力（Ａ／Ｄ変換処理）を要求する。Ａ／Ｄ変換器８０２はリフト量信号４７ａ、４７ｂを取り込んでデジタル値に変換し、メモリ８０１に書き込む。
【００３５】
ＣＰＵ８００は、メモリ８０１上にあるリフト量のデジタル値のほか、図示していない各種センサや別の制御ユニットから得られる機関１の運転情報を参照して演算を実行し、電磁駆動弁４ａ、４ｂの各コイル４３ａ、４４ａに与える通電量を設定してメモリ８０１に目標電流値として書き込み、シリアル通信モジュール８０３に目標電流値の送信（シリアル転送）を要求する。
【００３６】
シリアル通信モジュール（ＳＣＭ）８０３は、メモリ８０１上にある目標電流値をシリアル伝送路８０６経由で駆動ユニット９に送信する。
【００３７】
図４は、駆動ユニット９の構成を示すブロック図である。
駆動ユニット９は、シリアルポート９００、電流値判定部（回路）９０１、駆動回路９０２ａ、９０３ａ、９０２ｂ、９０３ｂで構成されている。なお、４つの駆動回路９０２ａ（吸気弁アッパー側用）、９０３ａ（排気弁アッパー側用）、９０２ｂ（吸気弁ロア側用）、９０３ｂ（排気弁ロア側用）は、１気筒分（吸気弁４ａと排気弁４ｂのアッパーコイル４３ａ及びロアコイル４４ａ）に対応しており、他の気筒に対応する駆動回路も同様に備えているがここでは省略されている。
【００３８】
シリアルポート９００は、制御ユニット８からシリアル伝送路８０６を経由して送られる目標電流値を受信するためのものである。シリアルポート９００は受信した目標電流値を電流値判定部９０１に送信する。
【００３９】
電流値判定部９０１は、シリアルポート９００からの目標電流値を元に、電磁駆動弁４ａ、４ｂの各コイル４３ａ、４４ａに与える駆動電流信号９０４ａ、９０５ａ、９０４ｂ、９０５ｂの目標値を判定して駆動回路９０２ａ、９０３ａ、９０２ｂ、９０３ｂにそれぞれの目標電流値に応じた信号を転送する。
【００４０】
駆動回路９０２ａ、９０３ａ、９０２ｂ、９０３ｂは、それぞれ電磁駆動弁４ａ、４ｂの各コイル４３ａ、４４ａを流れる電流が、電流値判定部９０１から受信した目標電流値に一致するように、駆動電流信号９０４ａ、９０５ａ、９０４ｂ、９０５ｂの通電量を調整する。以上により、電磁駆動弁４ａ、４ｂの開閉操作速度の変更や全開状態あるいは全閉状態を維持する制御が行われる。
【００４１】
なお、電流値判定部９０１は、ＳＣＭ９００によって制御ユニット８から目標電流値を受信したタイミングを基準タイミングとして駆動回路９０２ａ、９０３ａ、９０２ｂ、９０３ｂにそれぞれの目標電流値を送信する。したがって、制御ユニット８は予め定められたタイミングで駆動ユニット９に目標電流値を送信する必要がある。
【００４２】
本実施形態の制御ユニット８及び駆動ユニット９を備えた電磁駆動弁制御システム２においては、上記のような制御を各気筒＃１、＃２、＃３、＃４の電磁駆動弁４ａ、４ｂに対して同様に行う。
【００４３】
図５は、吸気弁４ａのリフト量と、同弁のアッパーコイル４３ａの目標電流値（IcomUP）とロアコイル４４ａの目標電流値（IcomLW）の関係を示すタイムチャートである。排気弁４ｂや他の気筒の吸気弁、排気弁も同様である。
【００４４】
リフト量は上側を閉じ、下側を開きとして示しており、目標電流値IcomUP、IcomLWは“０”を基準にして上側を正、下側を負として示している。
【００４５】
期間（ａ）では、吸気弁４ａを全閉状態に維持している。制御ユニット８はアッパーコイル４３ａの目標電流値（IcomUP）をアッパーコイル４３ａがスプリング４５ａの下方向への付勢力よりも上回る吸引力を発生する一定の電流値（以下、保持電流値）に設定してアッパーコイル４３ａに電流を供給し、ロアコイル４４ａの目標電流値（IcomLW）を“０”に設定してロアコイル４４ａの電流供給を停止する。
【００４６】
また、期間（ｅ）では、吸気弁４ａを全開状態に維持している。制御ユニット８はロアコイル４４ａの目標電流値（IcomLW）を保持電流値に設定してロアコイル４４ａに電流を供給し、アッパーコイル４３ａの目標電流値（IcomUP）を“０”に設定してアッパーコイル４３ａへの電流供給を停止する。
【００４７】
期間（ｂ）では、吸気弁４ａを全閉状態から全開状態に向けて移行させている。制御ユニット８はアッパーコイル４３ａの目標電流値（IcomUP）を“０”に設定してアッパーコイル４３ａの電流供給を停止する。これにより、アッパーコイル４３ａの電磁力が消失し、吸気弁４ａはスプリング４５ａの付勢力によって下方向に移動する。更に、制御ユニット８はロアコイル４４ａの目標電流値（IcomLW）を吸気弁４ａのリフト量に応じた適度な値に設定して、ロアコイル４４ａに電流供給を行い、それに電磁力を発生させる。これにより、アーマチャ４２ａがロアコイル４４ａに吸引され、吸気弁４ａはさらに下方向に移動して全開状態に近づく。
【００４８】
期間（ｃ）、（ｄ）では、吸気弁４ａを滑らかに全開状態に移行させるべく、制御ユニット８は、吸気弁４ａのリフト量が全開状態に近づくと、目標電流値（IcomLW）を適度な値に設定して、吸気弁４ａのリフト速度を徐々に減速させ、全開状態でリフト速度が０になるようにする。
【００４９】
一方、期間（ｆ）では、吸気弁４ａを全開状態から全閉状態に移行させるべく、制御ユニット８はロアコイル４４ａの目標電流値（IcomLW）を“０”に設定してロアコイル４４ａへの電流供給を停止する。これにより、ロアコイル４４ａの磁力が消失し、吸気弁４ａはスプリング４５ａの引力によって上方向に移動する。更に、制御ユニット８は目標電流値（IcomUP）を吸気弁４ａのリフト量に応じた適度な値に設定して、アッパーコイル４３ａに電流供給を行い、それに電磁力を発生させる。これにより、アーマチャ４２ａがアッパーコイル４３ａに吸引され、吸気弁４ａはさらに上方向に移動して全閉状態に近づく。
【００５０】
期間（ｇ）、（ｈ）では、吸気弁４ａを滑らかに全閉状態（全閉）に移行させるべく、制御ユニット８は、吸気弁４ａのリフト量が全閉状態に近づくと、アッパーコイル４３ａの目標電流値（IcomUP）を適度な値に設定して、吸気弁４ａのリフト速度を徐々に減速させ、全閉状態でリフト速度が０になるようにする。
【００５１】
上記によれば、吸気弁４ａを開閉操作する場合、期間（ａ）〜（ｈ）のそれぞれの制御態様が異なる（排気弁４ｂも同様である）。このため制御ユニット８のＣＰＵ８００が実行する制御演算アルゴリズムは期間によって異なり、演算処理に要する時間が変化することになる。
【００５２】
一方で、制御ユニット８は、吸気弁４ａの開閉操作よりもさらに短い一定の制御周期（Tｃ）でＡＤＣ８０２によるリフト量信号４７ａ、４７ｂの取り込みと、ＣＰＵ８００による制御演算と、ＳＣＭ８０３による目標電流値の送信とを繰り返し実行しているが、制御精度を向上するためには、ＡＤＣ８０２によるリフト量信号４７ａ、４７ｂの取り込みとＳＣＭ８０３による目標電流値の送信はそれぞれ一定の周期で実行する必要があり、さらに、ＡＤＣ８０２によるリフト量信号４７ａ、４７ｂの取り込みからＳＣＭ８０３による目標電流値の送信までの応答時間も一定にする必要がある。
【００５３】
このため、ＣＰＵ８００は、タイマ８０４からの周期開始通知によってＡＤＣ８０２のＡ／Ｄ変換とＳＣＭ８０３のシリアル送信を起動する。
【００５４】
図６は、制御ユニット８が実行するＡＤＣ８０２とＳＣＭ８０３の起動処理（プログラム）の一例を示すフローチャートである。
【００５５】
ＣＰＵ８００は、タイマ８０４から周期開始時点（tｃ）の通知を受けると、ＡＤＣ８０２とＳＣＭ８０３の起動処理を実行する。
【００５６】
先ず、ＣＰＵ８００はＳＣＭ８０３の前回の目標電流値送信が完了したかどうかを確認する（ステップ６０１）。目標電流値送信が完了したならば、ＳＣＭ８０３による目標電流値の送信を起動し（ステップ６０２）、次にＡＤＣ８０２によるＡ／Ｄ変換を起動する（ステップ６０３）。
【００５７】
その後、Ａ／Ｄ変換の完了を待ち（ステップ６０４）、Ａ／Ｄ変換が完了すると制御演算を開始する（ステップ６０５）。
【００５８】
なお、ＡＤＣ８０２によるＡ／Ｄ変換を先に起動して、その次にＳＣＭ８０３の前回（ｎ-1）の目標電流値送信を確認後、ＳＣＭ８０３による目標電流値の送信を起動してもよい。
【００５９】
図７は、図６に示される如くの処理を行う場合の制御ユニット８の動作例を示すタイムチャートである。
【００６０】
ＣＰＵ８００は、タイマ８０４からの周期開始時点（ｔｃ）の通知を受けると、起動処理を実行する。
【００６１】
Ａ／Ｄ変換は一制御周期（Tｃ）で実行する制御演算に必要なリフト量を取り込むためのものであり、シリアル送信は前回（ｎ-1）の制御周期の制御演算によって確定した目標電流値を駆動ユニット９に送信するためのものである。
【００６２】
ＣＰＵ８００は、ＡＤＣ８０２のＡ／Ｄ変換とＳＣＭ８０３のシリアル送信を起動した後、Ａ／Ｄ変換の完了を待つ。この待ち時間に上記演算処理とは別の処理を実行してもよい。
【００６３】
ＡＤＣ８０２は、Ａ／Ｄ変換が完了するとＣＰＵ８００にＡ／Ｄ変換完了を通知する。
ＣＰＵ８００は、ＡＤＣ８０２からのＡ／Ｄ変換完了通知を受けると、取り込まれたリフト量を参照して制御演算を実行する。
【００６４】
また、ＣＰＵ８００は、制御演算を完了すると、タイマ８０４からの周期開始時点（ｔｃ）の通知を待つ。そして、タイマ８０４からの周期開始時点（ｔｃ）の通知を受けると、ＡＤＣ８０２のＡ／Ｄ変換とＳＣＭ８０３のシリアル送信を起動する、という一連の動作を繰り返す。
【００６５】
本例によれば、ＣＰＵ８００は、タイマ８０４から一定周期毎に通知される周期開始時点（ｔｃ）にＡＤＣ８０２のＡ／Ｄ変換とＳＣＭ８０３のシリアル送信を起動するので、ＡＤＣ８０２によるリフト量信号４７ａ、４７ｂの取り込み（入力処理）とＳＣＭ８０３による目標電流値の送信（出力処理）はそれぞれ制御周期と同じ間隔で実行され、さらに、ＡＤＣ８０２によるリフト量信号４７ａ、４７ｂの取り込み（入力処理）からＳＣＭ８０３による目標電流値の送信（出力処理）までの時間（応答時間）もばらつきを生じることなく一定になるので、制御精度等を向上できる。
【００６６】
図８は、制御ユニット８が実行するＡＤＣ８０２とＳＣＭ８０３の起動処理（プログラム）の他の例を示すフローチャートである。
【００６７】
ＣＰＵ８００は、タイマ８０４からの周期開始時点（ｔｃ）の通知を受けると、起動処理を実行する。
【００６８】
先ず、ＣＰＵ８００はＳＣＭ８０３の前回の目標電流値送信が完了したかどうかを確認する（ステップ８０１）。目標電流値送信が完了したならば、ＳＣＭ８０３による目標電流値の送信を起動し（ステップ８０２）、次にＡＤＣ８０２によるＡ／Ｄ変換を起動する（ステップ８０３）。
その後、Ａ／Ｄ変換の完了を待たずに制御演算を開始する（ステップ８０４）。
【００６９】
なお、ＡＤＣ８０２によるＡ／Ｄ変換を先に起動して、その次にＳＣＭ８０３の前回の目標電流値送信を確認後、ＳＣＭ８０３による目標電流値の送信を起動してもよい。
【００７０】
図９は、図８に示される如くの処理を行う場合の制御ユニット８の動作例を示すタイムチャートである。
【００７１】
ＣＰＵ８００は、タイマ８０４からの周期開始時点（ｔｃ）の通知を受けると、ＡＤＣ８０２とＳＣＭ８０３の起動処理を実行する。Ａ／Ｄ変換は次（ｎ+1）の制御周期で実行する制御演算に必要なリフト量を取り込むためのものであり、シリアル送信は前回（ｎ-1）の制御周期の制御演算によって確定した目標電流値を駆動ユニット９に送信するためのものである。
【００７２】
ＣＰＵ８００は、ＡＤＣ８０２のＡ／Ｄ変換とＳＣＭ８０３のシリアル送信を起動した後、演算処理を開始する。
ＡＤＣ８０２は、Ａ／Ｄ変換が完了するとＣＰＵ８００にＡ／Ｄ変換完了を通知する。
【００７３】
また、ＣＰＵ８００は、制御演算を完了すると、タイマ８０４からの周期開始時点（ｔｃ）の通知を待つ。そして、タイマ８０４の周期開始時点（ｔｃ）の通知を受けると、ＡＤＣ８０２のＡ／Ｄ変換とＳＣＭ８０３のシリアル送信を起動する、という一連の動作を繰り返す。
【００７４】
本例においては、ＣＰＵ８００は、タイマ８０４から一定周期毎に通知される周期開始時点（ｔｃ）にＡＤＣ８０２のＡ／Ｄ変換とＳＣＭ８０３のシリアル送信を起動するので、ＡＤＣ８０２によるリフト量信号４７ａ、４７ｂの取り込み（入力処理）とＳＣＭ８０３による目標電流値の送信（出力処理）はそれぞれ制御周期と同じ間隔で実行され、さらに、ＡＤＣ８０２によるリフト量信号４７ａ、４７ｂの取り込み（入力処理）からＳＣＭ８０３による目標電流値の送信（出力処理）までの応答時間も一定になるので、制御精度等を向上できる。
【００７５】
さらに、ＣＰＵ８００は、次回（ｎ+1）のＡ／Ｄ変換の完了を待つことなく今回（ｎ）の制御演算を開始するので、制御周期を短縮することができ、これによっても、前記応答時間の短縮や制御精度等の向上を図れる。
【００７６】
図１０は、制御ユニット８の構成の他の例を示すブロック図である。
本例の制御ユニット８は、図３に示される例と基本的には同じであるが、タイマ８０４に遅延レジスタ８０９が備えられている点が異なる。
【００７７】
遅延レジスタ８０９は、ＣＰＵ８００によって遅延時間（Ｔｄ）が設定されてから同設定時間（Ｔｄ）が経過したときにタイマ８０４からＣＰＵ８００に遅延終了時点（ｔｄ）を通知する。なお、遅延終了時点（ｔｄ）の通知は、タイマ８０４が図示していないフラグレジスタをセットし、ＣＰＵ８００がこのフラグレジスタを読み出して確認するようにしてもよいし、タイマ８０４がＣＰＵ８００に割込み信号を出力するようにしてもよい。
【００７８】
図１１は、図１０に示される如くの構成とされた制御ユニット８が実行するＡＤＣ８０２とＳＣＭ８０３の起動処理（プログラム）の一例を示すフローチャートである。
【００７９】
ＣＰＵ８００は、まず、タイマ８０４からの通知が周期開始時点（ｔｃ）又は遅延終了時点（ｔｄ）のいずれであるかを判別する（ステップ１１０１）。
【００８０】
タイマ８０４からの通知が周期開始時点（ｔｃ）の場合、ＣＰＵ８００は、ＡＤＣ８０２によるＡ／Ｄ変換を起動し（ステップ１１０２）、遅延レジスタ８０９をセットし（ステップ１１０３）、その後、制御演算を開始する（ステップ１１０４）。
【００８１】
なお、遅延レジスタ８０９のセットを先に行い、その後でＡＤＣ８０２によるＡ／Ｄ変換を起動してもよい。
【００８２】
タイマ８０４からの通知が遅延終了時点（ｔｄ）の場合、ＣＰＵ８００は、ＳＣＭ８０３の前回（ｎ-1）の目標電流値送信が完了したかどうかを確認し（ステップ１１０５）、送信が完了したならば、ＳＣＭ８０３による目標電流値の送信を起動し（ステップ１１０６）、次に制御演算とは別の処理、例えば、自己診断処理や他の制御装置との通信処理等を実行する（ステップ１１０７）。
【００８３】
図１２は、図１１に示される如くの処理を行う場合の制御ユニット８の動作例を示すタイムチャートである。
【００８４】
ＣＰＵ８００は、タイマ８０４からの周期開始時点（ｔｃ）の通知を検知すると、ＡＤＣ８０２によるＡ／Ｄ変換を起動し、遅延レジスタ８０９をセットする。その後、遅延時間（Ｔｄ）が経過すると、タイマ８０４はＣＰＵ８００に遅延終了時点（ｔｄ）を通知する。
【００８５】
ＣＰＵ８００は、タイマ８０４の遅延終了時点（ｔｄ）の通知を受けると、ＳＣＭ８０３の完了を確認し、ＳＣＭ８０３による目標電流値の送信を起動する。その後、ＣＰＵ８００は上記演算処理とは別の処理、例えば、自己診断処理や他の制御装置との通信処理など、を実行する。
【００８６】
また、ＣＰＵ８００は、これらの処理を完了すると、タイマ８０４からの周期開始時点（ｔｃ）の通知を待つ。そして、タイマ８０４からの周期開始時点（ｔｃ）通知を受けると、ＡＤＣ８０２のＡ／Ｄ変換の起動とタイマ８０４の遅延レジスタ８０９のセットを実行する、という一連の動作を繰り返す。
【００８７】
本例においては、ＣＰＵ８００は、タイマ８０４から一定周期毎に通知される周期開始時点（ｔｃ）にＡＤＣ８０２のＡ／Ｄ変換を起動し、さらにその時点から一定時間が経過した遅延終了時点（ｔｄ）でＳＣＭ８０３のシリアル送信を起動するので、ＡＤＣ８０２によるリフト量信号４７ａ、４７ｂの取り込みとＳＣＭ８０３による目標電流値の送信はそれぞれ一定の周期で実行され、さらに、ＡＤＣ８０２によるリフト量信号４７ａ、４７ｂの取り込みからＳＣＭ８０３による目標電流値の送信までの応答時間も一定になるので制御精度等を向上できる。
【００８８】
さらに、ＣＰＵ８００の制御演算を待つことなくＡＤＣ８０２による次回のＡ／Ｄ変換を開始するので、制御周期を短縮することができ、これによっても、応答性、制御精度の向上等を図れる。
【００８９】
さらに、制御周期開始時点（ｔｃ）に対して、ＳＣＭ８０４のシリアル送信を開始する遅延終了時点（ｔｄ）を任意に設定できるので、制御周期と入力処理から出力処理までの応答時間の両方を共に短縮することができる。
【図面の簡単な説明】
【００９０】
【図１】本発明に係る電子制御装置の入出力制御方法の一実施形態が適用された内燃機関の要部を示す概略構成図。
【図２】図１に示される吸気弁としての電磁駆動弁の構成を示す概略断面図。
【図３】図１に示される制御ユニットの構成を示すブロック図。
【図４】図１に示される駆動ユニットの構成を示すブロック図。
【図５】吸気弁のリフト量と、同弁のアッパーコイル及びロアコイルの目標電流値と、の関係を示すタイムチャート。
【図６】制御ユニットが実行するＡＤＣとＳＣＭの起動処理（プログラム）の一例を示すフローチャート。
【図７】図６に示される如くの処理を行う場合の制御ユニットの動作例を示すタイムチャート。
【図８】制御ユニットが実行するＡＤＣとＳＣＭの起動処理（プログラム）の他の例を示すフローチャート。
【図９】図８に示される如くの処理を行う場合の制御ユニットの動作例を示すタイムチャート。
【図１０】制御ユニットの構成の他の例を示すブロック図。
【図１１】図１０に示される如くの構成とされた制御ユニットが実行するＡＤＣとＳＣＭの起動処理（プログラム）の一例を示すフローチャート。
【図１２】図１１に示される如くの処理を行う場合の制御ユニットの動作例を示すタイムチャート。
【符号の説明】
【００９１】
１…内燃機関、２…電子制御装置、３…ピストン、４ａ…電磁駆動弁（吸気弁）、４ｂ…電磁駆動弁（排気弁）、５…吸気ポート、６…排気ポート、７…点火プラグ、８…制御ユニット、９…駆動ユニット、＃１、＃２、＃３、＃４…気筒、４３ａ…アッパーコイル、４４ａ…ロアコイル、４６…リフトセンサ、８００…ＣＰＵ、８０２…ＡＤＣ（Ａ／Ｄ変換器）、８０３…シリアル通信モジュール（ＳＣＭ）、８０４…タイマ
【図１】
2005142229.tif 000003
【図２】
2005142229.tif 000004
【図３】
2005142229.tif 000005
【図４】
2005142229.tif 000006
【図５】
2005142229.tif 000007
【図６】
2005142229.tif 000008
【図７】
2005142229.tif 000009
【図８】
2005142229.tif 000010
【図９】
2005142229.tif 000011
【図１０】
2005142229.tif 000012
【図１１】
2005142229.tif 000013
【図１２】
2005142229.tif 000014