(57)【特許請求の範囲】
【請求項１】
誘導性負荷に流れる電流を制御するために、所定周期のＰＷＭ信号で駆動されるスイッチング手段と、
前記誘導性負荷に流れる電流に応じた検出信号を出力する電流検出手段と、
Ａ／Ｄ変換器と、
一定周期の検出タイミング毎に、前記電流検出手段からの検出信号を前記Ａ／Ｄ変換器にデジタル値へと変換させて、該デジタル値を取り込むことにより前記誘導性負荷に流れる電流を検出し、その検出電流値が目標値となるように、前記スイッチング手段への前記ＰＷＭ信号のデューティ比を制御する電流コントローラとを備え、
更に、前記Ａ／Ｄ変換器は、前記電流コントローラによりセットされたＡ／Ｄ変換実施時刻になったことを検知すると、前記電流検出手段からの検出信号をデジタル値に変換して、その変換が完了したことを前記電流コントローラに通知するようになっており、
前記電流コントローラは、前記通知を受けると、前記Ａ／Ｄ変換器にて変換されたデジタル値を取り込み、そのデジタル値を用いて前記ＰＷＭ信号のデューティ比を計算するための演算処理を行うと共に、前記Ａ／Ｄ変換器の次のＡ／Ｄ変換実施時刻をセットする誘導性負荷の電流制御装置において、
前記電流コントローラは、前記Ａ／Ｄ変換器からの前記通知を受けて、前記デジタル値を取り込んだ後、まず、前記Ａ／Ｄ変換器の次のＡ／Ｄ変換実施時刻をセットし、その後、前記演算処理を行うこと、
を特徴とする誘導性負荷の電流制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、誘導性負荷の電流制御装置に関するものである。
【０００２】
【従来の技術】
リニアソレノイド等の誘導性負荷に流れる電流をフィードバック（Ｆ／Ｂ）制御する技術が、例えば特開平１１−３０８１０７号公報や特開２０００−１１４０３８号公報に開示されている。そして、上記両公報に記載の装置では、Ａ／Ｄ変換器と、コントローラとしてのＣＰＵとを内蔵したリニアソレノイド制御ＩＣ（以下単に、制御ＩＣという）により、複数チャンネルのリニアソレノイドの電流制御を行っている。
【０００３】
例えば、特開平１１−３０８１０７号公報の装置では、リニアソレノイドと直列に接続された電流検出抵抗の両端の各電圧を、制御ＩＣ内の差動増幅器に入力させている。そして、制御ＩＣでは、ＣＰＵが、一定周期の検出タイミング毎に、電流検出手段の検出信号に相当する上記差動増幅器の出力電圧をＡ／Ｄ変換器にＡ／Ｄ変換（デジタル値に変換）させて、その変換されたデジタル値（以下、Ａ／Ｄ変換値ともいう）をリニアソレノイドの実電流値（即ち、リニアソレノイドに流れている電流値）として取り込み、更に、その実電流値が目標値となるように、リニアソレノイドへの通電を断続させるスイッチング素子の駆動信号であるＰＷＭ（パルス幅変調）信号のデューティ比を制御している。
【０００４】
また、特開２０００−１１４０３８号公報の装置では、上記電流検出抵抗の両端の各電圧を、制御ＩＣ内のＡ／Ｄ変換器に夫々入力させている。そして、制御ＩＣでは、ＣＰＵが、一定周期の検出タイミング毎に、電流検出手段の検出信号に相当する上記両端の各電圧をＡ／Ｄ変換器に夫々Ａ／Ｄ変換させて、その両Ａ／Ｄ変換値の差分からリニアソレノイドの実電流値を検出し、その実電流値が目標値となるように、上記ＰＷＭ信号のデューティ比を制御している。
【０００５】
つまり、上記両公報の何れにしても、制御ＩＣ内のＣＰＵは、一定周期の検出タイミング毎に、電流検出抵抗（或いは更に差動増幅器）からなる電流検出手段からの検出信号を同制御ＩＣ内のＡ／Ｄ変換器にＡ／Ｄ変換させて、そのＡ／Ｄ変換値を取り込むことによりリニアソレノイドの実電流値を検出し、その検出電流値が目標値となるように、スイッチング素子へのＰＷＭ信号のデューティ比を決定している。
【０００６】
【発明が解決しようとする課題】
ここで、特開２０００−１１４０３８号公報の装置では、制御ＩＣに内蔵されたＡ／Ｄ変換器を、ＣＰＵが、エンジンのノック信号（ノックセンサからの信号）や水温信号（冷却水温センサからの信号）等、リニアソレノイドの制御以外の制御を行うのに必要な信号（即ち、リニアソレノイドの実電流値を検出するための信号以外の他の信号）のＡ／Ｄ変換にも共通使用している。
【０００７】
しかしながら、近年、リニアソレノイドの制御においては、その制御性能を高めるために、実電流値検出のためのＡ／Ｄ変換及びＰＷＭ信号のデューティ比の計算を、より短い周期で行うことが要求されており、しかも、ＰＷＭ信号のデューティ比を計算するための演算処理も複雑化している。
【０００８】
このため、特開２０００−１１４０３８号公報に記載の装置のように、制御ＩＣ内に１つのＣＰＵを設けたのでは、リニアソレノイドの電流制御と、それ以外の他の制御処理とを、十分に実施することができない状況となっている。
また、従来より、この種のリニアソレノイドの電流制御装置では、以下のような問題もあった。
【０００９】
まず、この種の装置に用いられるＡ／Ｄ変換器は、コントローラとしてのＣＰＵによりセットされたＡ／Ｄ変換実施時刻になったことを検知すると、電流検出手段からの検出信号をＡ／Ｄ変換して、そのＡ／Ｄ変換が完了したことを、例えば割込要求のかたちでＣＰＵに通知するようになっている。
【００１０】
そして、ＣＰＵは、Ａ／Ｄ変換器からの割込要求に応じて起動される割込ルーチンにて、Ａ／Ｄ変換器によるＡ／Ｄ変換値を取り込み、そのＡ／Ｄ変換値を用いてＰＷＭ信号のデューティ比を計算するための演算処理を行う。そして、計算したデューティ比をスイッチング素子へのＰＷＭ信号に反映させるための処理を行った後、最後にＡ／Ｄ変換器の次のＡ／Ｄ変換実施時刻をセットして、当該割込ルーチンを終了する。
【００１１】
尚、次のＡ／Ｄ変換実施時刻は、前回セットしたＡ／Ｄ変換実施時刻に、Ａ／Ｄ変換を実施すべき一定周期（つまり、前述の検出タイミングの周期）Ｔを加算した時刻である。また例えば、制御対象のリニアソレノイドが複数ある場合、Ａ／Ｄ変換器は、Ａ／Ｄ変換実施時刻になったことを検知すると、リニアソレノイド毎に設けられた各電流検出手段からの検出信号を順次Ａ／Ｄし、全てのＡ／Ｄ変換が終了すると、ＣＰＵに割込要求を行う。
【００１２】
例えば図９に例示するように、現在セットされているＡ／Ｄ変換実施時刻が時刻ｔ１であるとする。この場合、Ａ／Ｄ変換器は、時刻ｔ１になると、リニアソレノイド毎に設けられた各電流検出手段からの検出信号を順次Ａ／Ｄ変換し、全てのＡ／Ｄ変換が終了すると、ＣＰＵに割込要求を行う。尚、図９は、制御対象のリニアソレノイドが４個であると共に、Ａ／Ｄ変換器は、特開２０００−１１４０３８号公報の装置と同様に、リニアソレノイド毎に設けられた各電流検出抵抗の両端の各電圧を夫々Ａ／Ｄ変換する場合を例示している。このため、図９では、Ａ／Ｄ変換器が８（＝４×２）入力分のＡ／Ｄ変換を行っている。
【００１３】
すると、ＣＰＵは、Ａ／Ｄ変換器からの割込要求に対応した割込ルーチン（以下、Ｆ／Ｂ制御ルーチンという）にて、Ａ／Ｄ変換器によるＡ／Ｄ変換値を取り込み、各リニアソレノイドについて、ＰＷＭ信号のデューティ比を計算するための演算処理（図９では、「ソレノイドのＦ／Ｂ計算」と記している）を行う。そして、その計算したデューティ比をスイッチング素子へのＰＷＭ信号に反映させる処理を行った後、時刻ｔ１に上記一定周期Ｔを加算した時刻ｔ２を、次のＡ／Ｄ変換実施時刻としてセットし、当該ルーチンを終了する。
【００１４】
このため、正常であれば、時刻ｔ２になると、再び、Ａ／Ｄ変換器が各電流検出手段からの検出信号を順次Ａ／Ｄ変換し、その後、上述の動作が繰り返されることとなる。
ここで、例えば、Ａ／Ｄ変換器がＣＰＵに割込要求を行っても、そのときにＣＰＵが優先度の高い他の処理を実行していたならば、図９にて時刻ｔ２〜ｔ３間の右方向の実線矢印で示すように、ＣＰＵがＦ／Ｂ制御ルーチンを開始するのが遅れる。
【００１５】
そして、Ａ／Ｄ変換器がＡ／Ｄ変換を開始してからＣＰＵが少なくとも上記演算処理（ソレノイドのＦ／Ｂ計算）を終えるまでの時間が、検出タイミングの周期Ｔを越えてしまうと、その回のＦ／Ｂ制御ルーチンで次のＡ／Ｄ変換実施時刻をセットするタイミングが、そのセットしようとしているＡ／Ｄ変換実施時刻（図９の例では時刻ｔ３）よりも遅れてしまう。
【００１６】
すると、Ａ／Ｄ変換器は、本来のＡ／Ｄ変換実施時刻ｔ３よりも遅れたタイミング（つまり、次のＡ／Ｄ変換実施時刻がセットされた時点）でＡ／Ｄ変換を開始することとなる。
そして、このようなＡ／Ｄ変換の開始遅れが発生すると、リニアソレノイドの制御を一定時間Ｔ毎に正確に実施することができなくなり、制御性能が悪化してしまう。
【００１７】
本発明は、上記各問題に鑑みなされたものであり、誘導性負荷の電流制御装置の制御性能を低コストで向上させることを目的としている。
【００１８】
【課題を解決するための手段及び発明の効果】
上記目的を達成するためになされた請求項１に記載の誘導性負荷の電流制御装置は、従来装置と同様に、誘導性負荷に流れる電流を制御するために所定周期のＰＷＭ信号で駆動されるスイッチング手段と、誘導性負荷に流れる電流に応じた検出信号を出力する電流検出手段と、Ａ／Ｄ変換器と、電流コントローラとを備えている。そして、電流コントローラは、一定周期の検出タイミング毎に、電流検出手段からの検出信号を前記Ａ／Ｄ変換器にデジタル値へと変換（Ａ／Ｄ変換）させて、該デジタル値を取り込むことにより誘導性負荷に流れる電流を検出し、その検出電流値が目標値となるように、スイッチング手段へのＰＷＭ信号のデューティ比を制御する。
【００２５】
また、Ａ／Ｄ変換器は、電流コントローラによりセットされたＡ／Ｄ変換実施時刻になったことを検知すると、電流検出手段からの検出信号をデジタル値に変換して、その変換が完了したことを電流コントローラに通知する。そして、電流コントローラは、Ａ／Ｄ変換器からの上記通知を受けると、Ａ／Ｄ変換器によりＡ／Ｄ変換された検出信号のデジタル値を取り込み、そのデジタル値を用いてＰＷＭ信号のデューティ比を計算するための演算処理を行うと共に、Ａ／Ｄ変換器の次のＡ／Ｄ変換実施時刻をセットする。
【００２６】
ここで、電流コントローラが、比較的時間のかかるデューティ比計算用の演算処理を行ってから、Ａ／Ｄ変換器の次のＡ／Ｄ変換実施時刻をセットするようにすると、図９を用いて述べた問題が生じる。即ち、電流コントローラがＡ／Ｄ変換器からの通知を受けて処理を開始するまでに遅れが生じるなどして、Ａ／Ｄ変換器がＡ／Ｄ変換を開始してから電流コントローラが演算処理を終えるまで時間が、検出タイミングの周期Ｔを越えてしまうと、次のＡ／Ｄ変換実施時刻のセットが、そのＡ／Ｄ変換実施時刻よりも後になってしまい、その結果、Ａ／Ｄ変換器が本来のＡ／Ｄ変換実施時刻よりも遅れたタイミングで次のＡ／Ｄ変換を開始して、制御性能の悪化を招いてしまう。
【００２７】
そこで特に、請求項１の電流制御装置において、電流コントローラは、Ａ／Ｄ変換器からの上記通知を受けて、そのＡ／Ｄ変換器によりＡ／Ｄ変換されたデジタル値を取り込んだ後、まず、Ａ／Ｄ変換器の次のＡ／Ｄ変換実施時刻をセットし、その後、デューティ比計算用の演算処理を行うようにしている。
【００２８】
このような請求項１の電流制御装置によれば、電流コントローラがＡ／Ｄ変換器からの通知を受けて処理を開始するまでに遅れが生じたり、電流コントローラが行う演算処理が複雑化されるなどして、Ａ／Ｄ変換器がＡ／Ｄ変換を開始してから電流コントローラが演算処理を終えるまで時間が、検出タイミングの周期Ｔを越えたとしても、次のＡ／Ｄ変換実施時刻のセットを、そのＡ／Ｄ変換実施時刻よりも前に行うことができるようになる。よって、Ａ／Ｄ変換の開始遅れ及びそれによる制御性能の悪化を防ぐことができる。
【００２９】
よって、請求項１の電流制御装置によれば、その装置の制御性能をコストアップを招くことなく向上させることができる。
尚、電流コントローラは、プログラムに従い動作するＣＰＵで構成しても、固定の動作を行う論理集積回路（所謂ハードウエアロジック回路）で構成しても良い。
【００３０】
また、電流コントローラは、検出タイミング毎の１回の検出電流値を用いてＦ／Ｂ計算（つまり、ＰＷＭ信号のデューティ比を計算するための演算処理）を実施するように構成しても良いし、複数回の検出電流値の平均値を用いて、Ｆ／Ｂ計算を実施するようにしても良い。
【００３１】
【発明の実施の形態】
以下、本発明が適用された実施形態の電子制御装置について、図面を用いて説明する。
まず図１は、本実施形態の電子制御装置（以下、ＥＣＵという）１の構成を表すブロック図である。
【００３２】
本実施形態のＥＣＵ１は、自動車に搭載されたエンジンを目標状態に制御するものであり、そのために、少なくとも、エンジンに設けられた複数（本実施形態では４個）のリニアソレノイドＬ１〜Ｌ４（図ではＬ１のみ示す）を各々に通電制御する。
【００３３】
そして、このＥＣＵ１には、リニアソレノイドＬ１〜Ｌ４の通電制御を主な目的として構成された制御ＩＣ２と、エンジンコントロール用のホストＣＰＵ３とが備えられており、制御ＩＣ２は、ホストＣＰＵ３にて演算された各リニアソレノイドＬ１〜Ｌ４に流すべき電流を表すデータ（目標電流値）に従って、各リニアソレノイドＬ１〜Ｌ４に流れる電流をフィードバック制御する。
【００３４】
ここで、制御ＩＣ２は、電流コントローラとしての制御ＣＰＵ４と、第２のコントローラとしての汎用ＣＰＵ５と、Ａ／Ｄ変換器６と、そのＡ／Ｄ変換器６のＡ／Ｄ変換結果が格納されると共に、制御ＣＰＵ４及び汎用ＣＰＵ５からアクセス可能なＡ／Ｄデータ受渡用のＲＡＭ７と、ホストＣＰＵ３と当該ＩＣ２とのインターフェースであって、ホストＣＰＵ３のＲＡＭ７へのアクセスを可能にすると共に、ホストＣＰＵ３と制御ＣＰＵ４及び汎用ＣＰＵ５との間のデータ転送を実現するダイレクト・メモリ・アクセス回路（ＤＭＡ）８とを備えている。
【００３５】
更に、制御ＩＣ２は、各リニアソレノイドＬ１〜Ｌ４をデューティ制御するためのＰＷＭ信号ＰＷＭ１〜ＰＷＭ４を夫々生成して出力するＰＷＭ信号出力回路９と、ＰＷＭ信号出力回路９がＰＷＭ信号ＰＷＭ１〜ＰＷＭ４を生成するために用いるＰＷＭデータ（ＰＷＭ指示値）が、制御ＣＰＵ４によって格納されるＰＷＭデータ受渡用のレジスタ１０と、制御ＣＰＵ４，汎用ＣＰＵ５，及びＡ／Ｄ変換器６が時間を計測するために共用するフリーランタイマ１１と、当該ＩＣ２の外部に設けられる発振子１２に接続されて所定周波数（本実施形態では例えば２０ＭＨｚ）のクロック信号ＣＫ１を出力すると共に、そのクロック信号ＣＫ１を内蔵の分周器１３ａで分周した分周信号ＣＫ２（本実施形態では例えば１０ＭＨｚ）も出力する発振回路１３（クロック源に相当）とを備えている。
【００３６】
そして、本実施形態において、制御ＣＰＵ４と汎用ＣＰＵ５との各々には、発振回路１３からのクロック信号ＣＫ１が動作クロックとして供給され、Ａ／Ｄ変換器６とＰＷＭ信号出力回路９とフリーランタイマ１１との各々には、発振回路１３内の分周器１３ａから出力される分周信号ＣＫ２が動作クロックとして供給される。
【００３７】
また、制御ＩＣ２には、制御ＣＰＵ４が実行するプログラムなどが格納されたＲＯＭ１４と、制御ＣＰＵ４が処理の実行に用いるＲＡＭ１５と、汎用ＣＰＵ５が実行するプログラムなどが格納されたＲＯＭ１６と、汎用ＣＰＵ５が処理の実行に用いるＲＡＭ１７とが備えられている。尚、２つのＲＯＭ１４，１６及び２つのＲＡＭ１５，１７を設ける代わりに、図２に示す如く、制御ＣＰＵ４と汎用ＣＰＵ５とが、１つのＲＯＭ１８及びＲＡＭ１９を共用するように構成しても良い。
【００３８】
このような制御ＩＣ２において、制御ＣＰＵ４は、各リニアソレノイドＬ１〜Ｌ４をデューティ制御するためのＰＷＭ信号ＰＷＭ１〜ＰＷＭ４のデューティ比を定期的に計算し、その計算結果をＰＷＭデータ（ＰＷＭ指示値）としてＰＷＭデータ受渡用のレジスタ１０に格納する。ＰＷＭデータは、ＰＷＭ信号の１周期時間を表す周期データと、ＰＷＭ信号の１周期内に該ＰＷＭ信号をアクティブレベル（リニアソレノイドに通電する方のレベルであり、本実施形態ではハイレベル）に保持すべきオン時間を表すオン時間データとからなっている。
【００３９】
そして、ＰＷＭ信号出力回路９は、レジスタ１０から各リニアソレノイドＬ１〜Ｌ４に対するＰＷＭデータを定期的に読み込み、その各ＰＷＭデータが示すデューティ比のＰＷＭ信号ＰＷＭ１〜ＰＷＭ４を夫々生成して出力する。
具体的に説明すると、ＰＷＭ信号出力回路９は、出力する各ＰＷＭ信号ＰＷＭ１〜ＰＷＭ４について、そのＰＷＭ信号の周期を、該当するＰＷＭデータの周期データが示す周期に設定すると共に、その周期中に、該当するＰＷＭデータのオン時間データが示す時間だけ、そのＰＷＭ信号の出力レベルをアクティブレベル（ハイレベル）にすることにより、各ＰＷＭ信号ＰＷＭ１〜ＰＷＭ４を、該当するＰＷＭデータが示すデューティ比の信号にする。
【００４０】
尚、このようなＰＷＭ信号出力回路については、例えば特開平１１−３０８１０７号公報や特開２０００−１１６１８２号公報に詳しく記載されている。また、本実施形態において、ＰＷＭ信号ＰＷＭ１〜ＰＷＭ４の周期は一定であり、ＰＷＭデータ中の周期データは変更されないため、以下の説明において、ＰＷＭデータとは、上記オン時間データのことを指すものとする。
【００４１】
一方、ＤＭＡ８は、ホストＣＰＵ３に内蔵されたＲＡＭから各リニアソレノイドＬ１〜Ｌ４の目標電流値を読み込み、制御ＣＰＵ４に入力させる。
また、本実施形態のＥＣＵ１において、電流制御の対象となるリニアソレノイドＬ１は、バッテリの正極（電源電圧＋Ｂ）からバッテリの負極（グランド）に至る通電経路中に配置されている。そして、その通電経路におけるリニアソレノイドＬ１の電源電圧＋Ｂ側には、所謂ハイサイドスイッチとしてのＰチャンネルＭＯＳＦＥＴ（スイッチング手段に相当し、以下単にＦＥＴという）２１が設けられており、更に、そのＦＥＴ２１のゲートには、エミッタがグランドに接続されたＮＰＮトランジスタ２２のコレクタが接続されている。
【００４２】
ＮＰＮトランジスタ２２は、ＦＥＴ２１のゲートを接地することにより、該ＦＥＴ２１をオンさせるためのものであり、このＮＰＮトランジスタ２２のベースには、ＰＷＭ信号出力回路９からリニアソレノイドＬ１通電用のＰＷＭ信号ＰＷＭ１が入力される。
【００４３】
このため、ＮＰＮトランジスタ２２及びＦＥＴ２１は、ＰＷＭ信号ＰＷＭ１がハイレベルであるときに、オン状態となって、バッテリからリニアソレノイドＬ１への通電経路を導通させ、逆に、ＰＷＭ信号ＰＷＭ１がローレベルであるときに、オフ状態となり、リニアソレノイドＬ１への通電経路を遮断する。
【００４４】
そして、リニアソレノイドＬ１が接続されるＦＥＴ２１のドレインとグランドとの間には、リニアソレノイドＬ１のフライバックエネルギーを吸収するためのダイオード２３が、アノードをグランド側にして接続されている。
尚、図示は省略しているが、他の３つのリニアソレノイドＬ２〜Ｌ４についても、リニアソレノイドＬ１と同様のスイッチング素子（ＮＰＮトランジスタ２２及びＦＥＴ２１）とダイオード２３とが夫々設けられており、ＰＷＭ信号出力回路９から出力されるＰＷＭ信号ＰＷＭ２〜ＰＷＭ４に従い、各スイッチング素子がオン・オフして、各リニアソレノイドＬ２〜Ｌ４に流れる電流がデューティ制御されるようになっている。
【００４５】
そして更に、リニアソレノイドＬ１のグランド側には、電流検出手段としての電流検出抵抗Ｒ１が設けられている。つまり、電源電圧＋Ｂだけ電位差のある通電経路中に、スイッチング手段としてのＦＥＴ２１と、誘導性負荷としてのリニアソレノイドＬ１と、電流検出抵抗Ｒ１とが、直列に接続されている。
【００４６】
このため、電流検出抵抗Ｒ１の両端α１，β１には、リニアソレノイドＬ１に流れる電流に応じた検出信号としての電圧が発生することとなる。尚、電流検出抵抗Ｒ１の両端α１，β１の電圧波形は図７のようになり、高圧側（Ｈ側）の端子α１の電圧波形は、勿論、低圧側（Ｌ側）の端子β１の電圧波形よりも大きく変動する。
【００４７】
また、本ＥＣＵ１において、電流検出抵抗Ｒ１の両端α１，β１は、入力保護抵抗Ａ１，Ｂ１を介して、制御ＩＣ２に接続されている。
そして、電流検出抵抗Ｒ１の両端α１，β１の各電圧は、制御ＩＣ２に内蔵された同一構成のレベルシフト回路（入力電圧を所定電圧だけシフトさせて出力する回路）Ｃ１，Ｄ１を介して、制御ＩＣ２内のマルチプレクサ（ＭＰＸ）２４に入力され、更に、そのマルチプレクサ２４を介してＡ／Ｄ変換器６に入力される。
【００４８】
尚、図示は省略しているが、本ＥＣＵ１には、他の３つのリニアソレノイドＬ２〜Ｌ４についても、上記電流検出抵抗Ｒ１と同様の電流検出抵抗Ｒ２〜Ｒ４と、上記入力保護抵抗Ａ１，Ｂ１と同様の入力保護抵抗Ａ２，Ｂ２〜Ａ４，Ｂ４とが夫々設けられている。また、制御ＩＣ２の内部においても、他の３つのリニアソレノイドＬ２〜Ｌ４に対応して、上記レベルシフト回路Ｃ１，Ｄ１と同様のレベルシフト回路Ｃ２，Ｄ２〜Ｃ４，Ｄ４が夫々設けられている。
【００４９】
更に、制御ＩＣ２内のマルチプレクサ２４には、ノックセンサ，冷却水温センサ，吸気温センサ，及び空燃比センサ等の各種センサからのアナログ信号も入力されている。そして、マルチプレクサ２４を制御することにより、４つの電流検出抵抗Ｒ１〜Ｒ４の両端の各電圧と、上記各種センサからの信号とを、択一的にＡ／Ｄ変換器６へ入力させることができるようになっている。
【００５０】
このため、Ａ／Ｄ変換器６は、制御ＣＰＵ４と汎用ＣＰＵ５との各々からの要求に応じて、上記４つの電流検出抵抗Ｒ１〜Ｒ４の両端の各電圧と、上記各種センサからの信号との何れかを、マルチプレクサ２４を介して択一的に取り込み、その取り込んだ信号をデジタル値に変換（Ａ／Ｄ変換）して、該デジタル値（Ａ／Ｄ変換結果）をＡ／Ｄデータ受渡用のＲＡＭ７に格納する。
【００５１】
次に、本ＥＣＵ１の各部の動作について、更に詳しく説明する。
まず、制御ＩＣ２内の制御ＣＰＵ４は、図３にて「ソレノイドのＡ／Ｄ」と記した２段目に示すように、一定周期Ｔ（本実施形態では１００μｓ）の検出タイミング毎に、上記４つの電流検出抵抗Ｒ１〜Ｒ４の両端の各電圧をＡ／Ｄ変換器６にＡ／Ｄ変換させる。
【００５２】
尚、図３において、「Ｒ１Ｈ」は、リニアソレノイドＬ１に対応した電流検出抵抗Ｒ１の高圧側の端子α１の電圧をＡ／Ｄ変換している期間を表し、「Ｒ１Ｌ」は、同電流検出抵抗Ｒ１の低圧側の端子β１の電圧をＡ／Ｄ変換している期間を表している。同様に、図３における「Ｒ２Ｈ」，「Ｒ３Ｈ」，「Ｒ４Ｈ」は、リニアソレノイドＬ２〜Ｌ４の各々に対応した各電流検出抵抗Ｒ２〜Ｒ４の高圧側の端子の電圧を夫々Ａ／Ｄ変換している期間を表しており、図３における「Ｒ２Ｌ」，「Ｒ３Ｌ」，「Ｒ４Ｌ」は、上記各電流検出抵抗Ｒ２〜Ｒ４の低圧側の端子の電圧を夫々Ａ／Ｄ変換している期間を表している。つまり、Ａ／Ｄ変換器６は、電流検出抵抗Ｒ１〜Ｒ４の両端の各電圧を、Ｒ１の高圧側→Ｒ１の低圧側→Ｒ２の高圧側→Ｒ２の低圧側→Ｒ３の高圧側→Ｒ３の低圧側→Ｒ４の高圧側→Ｒ４の低圧側、の順にＡ／Ｄ変換する。また、電流検出抵抗Ｒ１〜Ｒ４の各電圧をＡ／Ｄ変換する周期Ｔは、図７に示すように、ＰＷＭ信号ＰＷＭ１〜ＰＷＭ４の周期に比べて十分に短い時間となっている。
【００５３】
そして、制御ＣＰＵ４は、Ａ／Ｄ変換器６が上記各電圧についてのＡ／Ｄ変換を完了して、そのＡ／Ｄ変換結果をＡ／Ｄデータ受渡用のＲＡＭ７に格納すると、図３にて「ソレノイドのＦ／Ｂ計算」と記した５段目に示すように、そのタイミングで起動される割込ルーチンにより、ＲＡＭ７から電流検出抵抗Ｒ１〜Ｒ４の両端の各電圧のＡ／Ｄ変換値を取り込むと共に、そのＡ／Ｄ変換値を用いて各リニアソレノイドＬ１〜Ｌ４に対するＰＷＭ信号ＰＷＭ１〜ＰＷＭ４のデューティ比を計算し、その計算結果に応じたＰＷＭデータをＰＷＭデータ受渡用のレジスタ１０に格納する。
【００５４】
具体的に説明すると、Ａ／Ｄ変換器６は、電流検出抵抗Ｒ１〜Ｒ４の両端の各電圧をＡ／Ｄ変換すべき時刻（Ａ／Ｄ変換実施時刻）が、制御ＣＰＵ４からのＡ／Ｄ変換要求によってセットされるようになっており、そのセットされたＡ／Ｄ変換実施時刻になったことをフリーランタイマ１１の値に基づき検知すると、マルチプレクサ２４を制御して、電流検出抵抗Ｒ１〜Ｒ４の両端の各電圧を上記の順に取り込んで夫々Ａ／Ｄ変換すると共に、その各Ａ／Ｄ変換値をＲＡＭ７に格納する。そして、８（＝４×２）個全てのＡ／Ｄ変換値をＲＡＭ７に格納し終えると、制御ＣＰＵ４へ、Ａ／Ｄ変換の完了を示す通知として、割込要求を出すようになっている。
【００５５】
そこで、制御ＣＰＵ４は、図４に示すように、Ａ／Ｄ変換器６からの上記割込要求に応答して起動される割込ルーチンにて、まず、レジスタ値の退避（所謂スタック）を行い（Ｓ１１０）、次のＳ１２０で、ＲＡＭ７からＡ／Ｄ変換器６によりＡ／Ｄ変換された４ｃｈ分のＡ／Ｄ変換値を取り込む。尚、４ｃｈ分のＡ／Ｄ変換値とは、４つのリニアソレノイドＬ１〜Ｌ４に夫々対応した各電流検出抵抗Ｒ１〜Ｒ４の両端の各電圧のＡ／Ｄ変換値であり、合計８個のＡ／Ｄ変換値である。
【００５６】
そして、制御ＣＰＵ４は、次のＳ１３０にて、Ａ／Ｄ変換器６に対して次のＡ／Ｄ変換要求をかける。即ち、前回セットしたＡ／Ｄ変換実施時刻に、Ａ／Ｄ変換を実施すべき一定周期（前述の検出タイミングの周期）Ｔを加算した時刻を、次のＡ／Ｄ変換実施時刻としてセットする。
【００５７】
その後、制御ＣＰＵ４は、続くＳ１４０にて、各リニアソレノイドＬ１〜Ｌ４の目標電流値をホストＣＰＵ３からＤＳＰ８を介して取り込み、上記Ｓ１２０で取り込んだＡ／Ｄ変換値を用いて、各リニアソレノイドＬ１〜Ｌ４に流れる電流値をホストＣＰＵ３からの目標電流値に制御するための、ＰＷＭ信号ＰＷＭ１〜ＰＷＭ４のデューティ比を計算する。そして、次のＳ１５０にて、Ｓ１４０での計算結果に応じた各リニアソレノイドＬ１〜Ｌ４毎のＰＷＭデータを、ＰＷＭデータ受渡用のレジスタ１０に格納し、最後のＳ１６０にて、レジスタ値を復帰させた後、当該割込ルーチンを終了する。
【００５８】
このため、Ａ／Ｄ変換器６がリニアソレノイドＬ１〜Ｌ４に関するＡ／Ｄ変換（即ち、電流検出抵抗Ｒ１〜Ｒ４の両端の各電圧のＡ／Ｄ変換）を行うタイミングと、制御ＣＰＵ４が図４の割込ルーチンを実行するタイミングは、図５のようになる。尚、図５の１段目における各□印は、図３の２段目と同様に、Ａ／Ｄ変換器６が電流検出抵抗Ｒ１〜Ｒ４の両端の各電圧の何れかを夫々Ａ／Ｄ変換している期間を示しており、図５の２段目における各□印は、制御ＣＰＵ４が図４のＳ１４０でＰＷＭ信号ＰＷＭ１〜ＰＷＭ４のうちの何れかのデューティ比を夫々計算してる期間を示している。
【００５９】
即ち、図５に例示するように、現在セットされているＡ／Ｄ変換実施時刻が時刻ｔ１であるとする。この場合、Ａ／Ｄ変換器６は、時刻ｔ１になると、電流検出抵抗Ｒ１〜Ｒ４の両端の各電圧を前述の順にＡ／Ｄ変換し、その各電圧のＡ／Ｄ変換値（４ｃｈ分のＡ／Ｄ変換値）を全てＲＡＭ７に格納し終えると、制御ＣＰＵ４に割込要求を行う。
【００６０】
すると、制御ＣＰＵ４は、図４の割込ルーチンを実行して、ＲＡＭ７から４ｃｈ分のＡ／Ｄ変換値を取り込み（Ｓ１２０）、その直後に、Ａ／Ｄ変換器６に対して次のＡ／Ｄ変換要求をかけることで、時刻ｔ１に一定周期Ｔを加算した時刻ｔ２を、次のＡ／Ｄ変換実施時刻としてセットする（Ｓ１３０）。そして、その後、制御ＣＰＵ４は、各ＰＷＭ信号ＰＷＭ１〜ＰＷＭ４のデューティ比を計算するための演算処理を行って（Ｓ１４０）、各リニアソレノイドＬ１〜Ｌ４毎のＰＷＭデータをレジスタ１０に更新して書き込む（Ｓ１５０）。
【００６１】
このため、時刻ｔ２になると、再び、Ａ／Ｄ変換器６が電流検出抵抗Ｒ１〜Ｒ４の両端の各電圧を順次Ａ／Ｄ変換し、その後、制御ＣＰＵ４が再び図４の割込ルーチンを実行することとなる。
ここで、例えば、Ａ／Ｄ変換器６が制御ＣＰＵ４に割込要求を行っても、そのときに制御ＣＰＵ４が図４の割込ルーチンよりも優先度の高い他の処理を実行していたならば、図５にて時刻ｔ２〜ｔ３間の右方向の実線矢印で示すように、制御ＣＰＵ４が図４の割込ルーチンを開始するのが遅れる。そして、もし、その回の割込ルーチンで次のＡ／Ｄ変換実施時刻をセットするタイミングが、そのセットしようとしているＡ／Ｄ変換実施時刻（図５の例では時刻ｔ２から周期Ｔだけ後の時刻ｔ３）よりも遅れてしまうと、図９を用いて説明したように、Ａ／Ｄ変換器６が本来のＡ／Ｄ変換実施時刻よりも遅れたタイミングで次のＡ／Ｄ変換を開始することとなり、リニアソレノイドＬ１〜Ｌ４の制御性能が悪化する。
【００６２】
ところが、本実施形態において、制御ＣＰＵ４は、Ａ／Ｄ変換器６からの割込要求に応じた割込ルーチンにて、ＲＡＭ７から４ｃｈ分のＡ／Ｄ変換値を取り込むと、まず最初に、Ａ／Ｄ変換器６に対して次のＡ／Ｄ変換要求をかけ（即ち、次のＡ／Ｄ変換実施時刻をセットし）、その後で、比較的時間のかかるデューティ比計算用の演算処理（Ｓ１４０）を行うようにしている。
【００６３】
このため、制御ＣＰＵ４での割込ルーチンの開始が遅れたり、その割込ルーチンでのデューティ比計算用の演算処理が複雑化されるなどして、図５の時刻ｔ２〜ｔ３付近に示す如く、Ａ／Ｄ変換器６が電流検出抵抗Ｒ１〜Ｒ４の各電圧のＡ／Ｄ変換を開始してから制御ＣＰＵ４が上記演算処理を終えるまで時間が、検出タイミングの周期Ｔを越えたとしても、次のＡ／Ｄ変換実施時刻ｔ３のセットを、そのＡ／Ｄ変換実施時刻ｔ３よりも前に行うことができる。よって、Ａ／Ｄ変換器６は、次のＡ／Ｄ変換実施時刻ｔ３で遅れなくＡ／Ｄ変換を開始することができ、Ａ／Ｄ変換の開始遅れ及びそれによる制御性能の悪化を防ぐことができる。
【００６４】
次に、制御ＣＰＵ４が図４の割込ルーチンのＳ１４０で行うデューティ比計算用の演算処理（即ち、ＰＷＭデータを求めるための演算処理であり、以下、デューティ比演算処理という）の内容について、図６を用いて説明する。尚、図６は、制御ＣＰＵ４がＰＷＭ信号のデューティ比（ＰＷＭデータ）を計算するために行うデューティ比演算処理の内容を表す機能ブロック図である。そして、ここでは、リニアソレノイドＬ１についてのデューティ比演算処理について説明するが、他のリニアソレノイドＬ２〜Ｌ４についても、夫々同じ処理が行われる。
【００６５】
図６に示すように、制御ＣＰＵ４は、リニアソレノイドＬ１に流れる電流をホストＣＰＵ３からの目標電流値Ｖｔに制御するためのＰＷＭデータを求めるために、目標値なまし部３０，誤差検出部４０，及び減算部５０を備えている。そして、ホストＣＰＵ３からの目標電流値Ｖｔが、目標値なまし部３０に入力される。
【００６６】
目標電流値Ｖｔが目標値なまし部３０に入力されると、その目標電流値Ｖｔがなまし演算部３１にてなまされて、乗算部３２でゲインＭが乗算される。
ここで、なまし演算部３１の伝達関数は、１／（ｍｍ・ｓ＋１）で表される。
尚、ｍｍは積分定数である。そして、このなまし演算部３１では、入力される目標電流値Ｖｔに対して、例えば次式の１／２５６なまし演算を行うことで、その目標電流値Ｖｔの平均値Ｖｔａｖｒを求めている。
【００６７】
Ｖｔａｖｒ＝（Ｖｔ＋２５５×Ｖｔａｖｒの前回値）／２５６
つまり、目標電流値Ｖｔは、例えば、０ｍＡ→５００ｍＡといった具合にステップ値として与えられるため、この値を直接制御に用いると実際の電流値がオーバーシュートを起こしてしまう。このため、それを防止する目的で、なまし演算部３１により目標電流値Ｖｔをなますようにしている。また、乗算部３２にて、なまし演算部３１の出力値ＶｔａｖｒにゲインＭを乗算することにより、目標電流値Ｖｔのなまし値と、Ａ／Ｄ変換器６のＡ／Ｄ変換値によって求められる電流値（後述するＶＩＯ）とのＬＳＢが調節される。
【００６８】
このような目標値なまし部３０の出力値（目標なまし値）ＶＲＦは、誤差検出部４０に入力される。
また、誤差検出部４０には、電流検出抵抗Ｒ１の両端の各電圧のＡ／Ｄ変換値ＶＩＯＨ，ＶＩＯＬの差分ＶＩＯが入力されている。つまり、Ａ／Ｄ変換器６による電流検出抵抗Ｒ１の高圧側（Ｈ側）のＡ／Ｄ変換値（即ち、端子α１側の電圧のＡ／Ｄ変換値）ＶＩＯＨと、Ａ／Ｄ変換器６による電流検出抵抗Ｒ１の低圧側（Ｌ側）のＡ／Ｄ変換値（即ち、端子β１側の電圧のＡ／Ｄ変換値）ＶＩＯＬとが、減算部５０に入力され、その減算部５０にて、「ＶＩＯＨ−ＶＩＯＬ」の演算が行わて、該減算部５０の出力値（電圧差）ＶＩＯが、誤差検出部４０に入力されている。尚、電流検出抵抗Ｒ１の両端の電圧差ＶＩＯは、電流検出抵抗Ｒ１及びリニアソレノイドＬ１に流れている実電流値に比例する値であり、リニアソレノイドＬ１に流れている電流を検出した検出電流値に相当する。
【００６９】
誤差検出部４０では、減算部４１にて、「ＶＲＦ−ＶＩＯ」の演算が行われ、その算出結果Ｘが、積分演算部４２に出力される。そして、積分演算部４２にて、減算部４１からの入力Ｘ（＝ＶＲＦ−ＶＩＯ）が積分される。ここで、積分演算部４２の伝達関数は、１／（ｇｇ・ｓ＋１）で表される。尚、ｇｇは積分定数である。そして、乗算部４３にて、積分演算部４２の出力Ｙに対して誤差ゲインＧが乗算される。
【００７０】
このようにして、電圧差ＶＩＯと目標なまし値ＶＲＦとの誤差分が算出され、その誤差分が、加算部４４にて、目標なまし値ＶＲＦに加算される。
更に、誤差検出部４０では、乗算部４５にて、加算部４４の出力に対しゲインＰが乗算され、この乗算によりＬＳＢが調節されたデータが、ＰＷＭ信号ＰＷＭ１のデューティ比を表すＰＷＭデータとして、ＰＷＭデータ受け渡し用のレジスタ１０に格納されるようになっている。
【００７１】
従って、誤差検出部４０の動作としては、目標なまし値ＶＲＦと電圧差ＶＩＯを比較し、目標なまし値よりも実電流値が小さい場合（ＶＩＯ＜ＶＲＦ）には、リニアソレノイドＬ１に電流をもっと流すべくＰＷＭデータの値を増大させる。
一方、目標なまし値よりも実電流値が大きい場合（ＶＩＯ＞ＶＲＦ）には、リニアソレノイドＬ１への電流を減らすべくＰＷＭデータの値を減少させる。
【００７２】
このように、レジスタ１０にＰＷＭデータが格納されると、ＰＷＭ信号出力回路９にて、そのＰＷＭデータに対応したデューティ比のＰＷＭ信号ＰＷＭ１が生成され、そのＰＷＭ信号ＰＷＭ１がＮＰＮトランジスタ２２に出力される。そして、このＰＷＭ信号ＰＷＭ１により、ＮＰＮトランジスタ２２及びＦＥＴ２１がデューティ駆動され、リニアソレノイドＬ１の電流が制御される。具体的には、ＰＷＭデータの値が０ならば、ＮＰＮトランジスタ２２及びＦＥＴ２１がオフ状態（デューティ比＝０％）とされ、リニアソレノイドＬ１の電流は０Ａとなる。また、ＰＷＭデータの値が大きくなるほど、ＮＰＮトランジスタ２２及びＦＥＴ２１がオンする時間割合が増大して、リニアソレノイドＬ１の電流は大きくなる。
【００７３】
一方、本ＥＣＵ１において、制御ＩＣ２内の汎用ＣＰＵ５は、図３にて「ＫＣＳ等のＡ／Ｄ」と記した３段目に示すように、ノックセンサ（ＫＣＳ）からのノック信号を、エンジンの回転に同期して到来する期間であってエンジンにノッキングが発生すると見なされる所定のノック判定期間中に、Ａ／Ｄ変換器６にＡ／Ｄ変換させ、そのＡ／Ｄ変換値に基づいて、エンジンにノッキングが発生しているか否かを判定するノック検出処理を行う。尚、ノック信号のＡ／Ｄ変換を行うノック判定期間が到来する時間間隔は、例えばエンジンがＶ型６気筒であって、そのノック判定期間が１２０°ＣＡ毎に到来すると仮定すると、１００００ｒｐｍの場合でも２ｍｓとなる。よって、汎用ＣＰＵ５がＡ／Ｄ変換器６にノック信号をＡ／Ｄ変換させるタイミングの時間間隔は、制御ＣＰＵ４がＡ／Ｄ変換器６に電流検出抵抗Ｒ１〜Ｒ４の各電圧をＡ／Ｄ変換させる周期Ｔよりも非常に長い。
【００７４】
更に、汎用ＣＰＵ５は、例えば特開平１１−２０１９３５号等に開示の如く空燃比センサの素子インピーダンスを測定するために、その空燃比センサへの印加電圧を急峻に変化させてから該空燃比センサの出力がピーク値になると見なされるタイミングが到来した時に、その空燃比センサの出力をＡ／Ｄ変換器６にＡ／Ｄ変換させ、そのＡ／Ｄ変換値に基づいて空燃比センサの素子インピーダンスを算出する処理を行う。尚、汎用ＣＰＵ５が空燃比センサの素子インピーダンスを算出するためにＡ／Ｄ変換器６に空燃比センサの出力をＡ／Ｄ変換させるタイミングは、図３の１段目に示しており、そのタイミングの時間間隔も、制御ＣＰＵ４がＡ／Ｄ変換器６に電流検出抵抗Ｒ１〜Ｒ４の各電圧をＡ／Ｄ変換させる周期Ｔよりも非常に長い。
【００７５】
また、ホストＣＰＵ３は、ＤＭＡ８を介した通信により、図３にて「水温，吸気温等のＡ／Ｄ」と記した４段目に示す如く、水温センサや吸気温センサからの信号を、上記周期Ｔよりも長い周期（例えば４０００μｓ）毎に、Ａ／Ｄ変換器６にＡ／Ｄ変換させる。そして、そのＡ／Ｄ変換値を、ＲＡＭ７から読み出して、エンジンへの燃料噴射量などの計算に用いる。
【００７６】
ここで、各信号のＡ／Ｄ変換の優先順位（即ち、Ａ／Ｄ変換のタイミングが重なった場合に何れを優先するかの順番）としては、図３に示しているように、最も優先順位が高いのが、空燃比センサの素子インピーダンス算出のための空燃比センサ出力のＡ／Ｄ変換であり、２番目が、リニアソレノイドＬ１〜Ｌ４を制御するための電流検出抵抗Ｒ１〜Ｒ４の各電圧のＡ／Ｄ変換であり、その次が、ノック検出のためのノック信号のＡ／Ｄ変換である。そして、最も優先順位が低いのが、ホストＣＰＵ３からの要求による定期的な水温センサ信号や吸気温センサ信号のＡ／Ｄ変換である。これは、ホストＣＰＵ３は、制御ＩＣ２の外部に存在しており、該制御ＩＣ２と通信を行って、Ａ／Ｄ変換器６に対するＡ／Ｄ変換の要求やＲＡＭ７からのＡ／Ｄ変換結果の取り出しを行っているためである。
【００７７】
つまり、本実施形態において、ホストＣＰＵ３と制御ＩＣ２内の汎用ＣＰＵ５は、制御ＩＣ２内の制御ＣＰＵ４がＡ／Ｄ変換器６に電流検出抵抗Ｒ１〜Ｒ４の各電圧をＡ／Ｄ変換させる周期Ｔよりも長い時間間隔で、Ａ／Ｄ変換器６を使用して、リニアソレノイドの制御以外の制御処理に必要な他の信号をＡ／Ｄ変換するようにしている。また、電流検出抵抗Ｒ１〜Ｒ４の各電圧のＡ／Ｄ変換は、一定時間毎に実施される信号のＡ／Ｄ変換のうちで、最も短い周期で行われるようになっている。
【００７８】
以上のような本実施形態のＥＣＵ１によれば、リニアソレノイドＬ１〜Ｌ４の電流を高速にフィードバック制御するために設けられるＡ／Ｄ変換器６を、他の制御（空燃比センサの素子インピーダンス検出やノック検出）にも用いることから、優れたコストメリットが得られ、更に、リニアソレノイドＬ１〜Ｌ４の電流フィードバック制御と、他の制御とを、制御ＩＣ２内の２つのＣＰＵ４，５で夫々行うため、それら各制御を十分に実施することができる。特に、汎用ＣＰＵ５は、制御ＣＰＵ４がＡ／Ｄ変換器６を使用する周期（即ち、Ａ／Ｄ変換器６に電流検出抵抗Ｒ１〜Ｒ４の各電圧をＡ／Ｄ変換させる周期）Ｔよりも長い間隔で、そのＡ／Ｄ変換器６を用いて、他の制御処理に必要な信号の値を検出するようにしているため、その汎用ＣＰＵ５による制御処理によって、リニアソレノイドＬ１〜Ｌ４の電流制御に支障を与えることがない。
【００７９】
そして、本ＥＣＵ１に搭載した制御ＩＣ２によれば、特別に処理能力が高い１つのＣＰＵを用いるよりも低コストで済み、更に、２つのＣＰＵ４，５とＡ／Ｄ変換器６とを１つのＩＣとして１パッケージ化しているため、一層の低コスト化を達成することができる。しかも、ＩＣ化（１パッケージ化）のメリットとして、各ＣＰＵ４，５とＡ／Ｄ変換器６との間の通信時間を短くでき、リニアソレノイドＬ１〜Ｌ４の電流フィードバック制御のための処理や他の制御処理を効率的に行うことができるようになる。
【００８０】
しかも、制御ＩＣ２では、制御ＣＰＵ４と、汎用ＣＰＵ５と、Ａ／Ｄ変換器６と、フリーランタイマ１１と、ＰＷＭ信号出力回路９とが、同一の発振回路１３からのクロック信号ＣＫ１或いはそのクロック信号ＣＫ１の分周信号ＣＫ２を用いて動作するように構成されている。このため、クロック源としての発振回路が１つで済み、更にコストダウンが可能となる。また、制御ＣＰＵ４と、汎用ＣＰＵ５と、Ａ／Ｄ変換器６と、フリーランタイマ１１との、各部の動作タイミング（例えば、ＣＰＵ４，５同士のＲＡＭやＡ／Ｄ変換器６などへのアクセスタイミング）のずれを無くすことができ、制御性能を一層向上させることができる。
【００８１】
また更に、本実施形態において、制御ＣＰＵ４は、前述したように、Ａ／Ｄ変換器６からの割込要求に応じた割込ルーチンにて、比較的時間のかかるデューティ比演算処理（Ｓ１４０）の前に、Ａ／Ｄ変換器６に対して次のＡ／Ｄ変換実施時刻をセット（Ｓ１３０）するようにしているため、リニアソレノイド制御のためのＡ／Ｄ変換の開始遅れ及びそれによる制御性能の悪化を防ぐことができる。特に、この手法は、制御対象のリニアソレノイドの数が増えたり、デューティ比演算処理の内容が複雑化されるなどして、そのデューティ比演算処理に時間がかかる場合に有効である。
【００８２】
以上、本発明の一実施形態について説明したが、本発明は、種々の形態を採り得ることは言うまでもない。
例えば、上記実施形態では、４つのリニアソレノイドＬ１〜Ｌ４の分の電流検出抵抗Ｒ１〜Ｒ４の各電圧をまとめて順次Ａ／Ｄ変換して、４つのリニアソレノイドＬ１〜Ｌ４の分の各ＰＷＭデータ（ＰＷＭ信号ＰＷＭ１〜ＰＷＭ４のデューティ比）をまとめて計算するようにしたが（図３，図５）、図８（特に２段目及び５段目）に例示するように、電流検出抵抗の電圧のＡ／Ｄ変換とＰＷＭデータの計算とを、１つのリニアソレノイド分（１ｃｈ分）毎に夫々分けて実施するようにしても良い。但し、上記実施形態のように、４つのリニアソレノイドＬ１〜Ｌ４の制御に関するＡ／Ｄ変換とＰＷＭデータの計算とをまとめて実施するようにした方が、Ａ／Ｄ変換の間隔の隙間をまとめて確保することができ、Ａ／Ｄ変換器６の使用効率を上げることができるという点で有利である。また、４つのリニアソレノイドの分のＰＷＭデータの計算を一括に実施できるため、ソフト処理のオーバーヘッドが少なくなり効率的である。
【００８３】
一方、上記実施形態において、制御ＣＰＵ４は、ＤＳＰであっても良い。また、制御ＣＰＵ４に代えて、それと同様の動作を行うハードウエアロジック回路を用いても良い。そして、このことは、汎用ＣＰＵ５についても同様である。
また、上記実施形態において、制御ＣＰＵ４は、周期Ｔ毎の１回の電圧差（検出電流値）ＶＩＯを用いてデューティ比演算処理を実施するようにしていたが、複数回の電圧差（検出電流値）ＶＩＯの平均値を用いて、デューティ比演算処理を実施するようにしても良い。この場合、制御ＣＰＵ４では、図６の減算部５０の出力を平均し、その平均値が誤差検出部４０の減算部４１に入力されるようにすれば良い。
【図面の簡単な説明】
【図１】  実施形態の電子制御装置（ＥＣＵ）１の構成を表すブロック図である。
【図２】  変形例の構成を説明する説明図である。
【図３】  Ａ／Ｄ変換器のＡ／Ｄ変換タイミングを表すタイムチャートである。
【図４】  制御ＩＣ内の制御ＣＰＵがリニアソレノイドを制御するために実行する割込ルーチンを表すフローチャートである。
【図５】  図４の割込ルーチンの作用を説明するタイムチャートである。
【図６】  制御ＣＰＵがＰＷＭ信号のデューティ比（ＰＷＭデータ）を計算するために行うデューティ比演算処理の内容を表す機能ブロック図である。
【図７】  ＰＷＭ信号の周期とＡ／Ｄ変換周期との関係、及び電流検出抵抗の両端電圧の波形を表すタイムチャートである。
【図８】  変形例のＡ／Ｄ変換タイミングを表すタイムチャートである。
【図９】  従来技術の問題を説明するタイムチャートである。
【符号の説明】
１…電子制御装置（ＥＣＵ）、２…制御ＩＣ、３…ホストＣＰＵ、４…制御ＣＰＵ、５…汎用ＣＰＵ、６…Ａ／Ｄ変換器、７…Ａ／Ｄデータ受渡用ＲＡＭ、８…ダイレクト・メモリ・アクセス回路（ＤＭＡ）、９…ＰＷＭ信号出力回路、１０…ＰＷＭデータ受渡用レジスタ、１１…フリーランタイマ、１２…発振子、１３…発振回路、１３ａ…分周器、１４，１６，１８…ＲＯＭ、１５，１７，１９…ＲＡＭ、２１…ＰチャンネルＭＯＳＦＥＴ、２２…ＮＰＮトランジスタ、２３…ダイオード、２４…マルチプレクサ、３０…目標値なまし部、３１…なまし演算部、３２，４３，４５…乗算部、４０…誤差検出部、４１，５０…減算部、４２…積分演算部、４４…加算部、Ａ１，Ｂ１…入力保護抵抗、Ｃ１，Ｄ１…レベルシフト回路、Ｌ１…リニアソレノイド、Ｒ１…電流検出抵抗
【図１】
0004660987.tif 000002
【図２】
0004660987.tif 000003
【図３】
0004660987.tif 000004
【図４】
0004660987.tif 000005
【図５】
0004660987.tif 000006
【図６】
0004660987.tif 000007
【図７】
0004660987.tif 000008
【図８】
0004660987.tif 000009
【図９】
0004660987.tif 000010