(57)【特許請求の範囲】
【請求項１】
制御対象を駆動制御するための情報をシリアル送信する制御手段と、
該制御手段からのシリアルデータを受信し、パラレルデータに変換して、前記制御対象の駆動信号として出力する駆動手段と、
を備えた電子制御装置において、
前記駆動手段は、前記シリアルデータを受信して保持する受信手段と、該受信手段が受信したシリアルデータを前記制御手段に転送する転送手段と、前記制御手段からの指令信号に従い前記受信手段が保持したシリアルデータをパラレルデータに変換して前記駆動信号として出力する出力手段と、を備え、
前記制御手段は、前記シリアルデータを前記駆動手段の受信手段に向けて送信する送信手段と、前記駆動手段の前記転送手段から転送されてきたシリアルデータが、前記送信手段が送信したシリアルデータと一致するか否かを判定する判定手段と、該判定手段にて前記両シリアルデータが一致していると判断されると、前記駆動手段の前記出力手段に対して、前記指令信号を出力することにより、前記駆動信号の出力を許可する許可手段と、前記判定手段にて前記両シリアルデータが一致していないと判断されると、前記送信手段から前記シリアルデータを再送信させるデータ再送信手段と、を備え、
しかも、前記制御手段において、前記送信手段は、前記制御対象を駆動制御するためのｎビットの制御データの後ろにｍビット（但し、ｍ≧ｎ）のダミーデータを付与したｎ＋ｍビットのシリアルデータを、該シリアルデータの各ビットに同期した同期信号と共に送信するよう構成され、
前記駆動手段において、前記受信手段は、前記送信手段からの同期信号に同期して前記シリアルデータを１ビットずつ順に受信するｎ＋ｍビットのシフトレジスタからなり、前記転送手段は、前記送信手段からの同期信号に同期して前記シリアルデータを１ビットずつ順に受信し、シフト動作によって吐き出だしたビットデータを、前記制御手段の前記判定手段に送信するｎビットのシフトレジスタからなり、前記出力手段は、前記許可手段から指令信号を受けると、前記受信手段を構成するシフトレジスタに蓄積されたｎ＋ｍビットのシリアルデータの内、該シフトレジスタが受信した最初のｎビット分をラッチし、該ラッチしたｎビットのデータをパラレルデータとして出力するラッチ用レジスタからなることを特徴とする電子制御装置。
【請求項２】
前記制御対象は、ステップモータであり、前記制御手段が前記駆動手段にシリアル送信する情報は、前記ステップモータ各相の相巻線への通電・非通電を表す情報であることを特徴とする請求項１に記載の電子制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、制御回路から駆動回路に対して制御対象を駆動制御するための情報をシリアル送信し、駆動回路側では、受信したシリアルデータをパラレルデータに変換することにより駆動信号を発生する電子制御装置に関する。
【０００２】
【従来の技術】
従来より、例えば、汎用ＩＣである東芝社製「ＴＤ６３３６」等を利用することにより、シリアル通信によって得られた制御対象の制御データをパラレルデータに変換し、これを制御対象各部の駆動信号として出力するようにした駆動回路が知られている。
【０００３】
この種の駆動回路では、通常、制御対象の制御量を設定するマイクロコンピュータ等からなる制御回路との間で、制御回路側から送信されてくるクロック信号と同期してシリアルデータの各ビットデータを順に取り込む、所謂クロック同期のシリアル通信を行うが、こうしたシリアル通信では誤り検出ができないことから、ノイズの影響等によって、送受信されるシリアルデータにビットずれが起こると、制御対象を誤ったデータにて駆動してしまうことがあった。
【０００４】
しかし、こうしたビットずれの問題は、制御回路−駆動回路間の通信を周期的（例えば４ｍsec.毎）に繰り返し行うことにより、速やかに解消できるので、従来では、特に対策がなされず、黙認されていた。
つまり、シリアル通信を繰り返し行えば、駆動回路側での受信データが一時的に異常になっても、次の通電タイミングでは正常に戻すことができることから、従来では、ビットずれ等が発生することのないように各種ノイズ対策を施すことはあっても、受信データがビットずれを起こした際の対策等については、特に考えられていなかった。
【０００５】
【発明が解決しようとする課題】
ところが、上記のように駆動回路側で受信データにビットずれが起こった場合、制御対象が電球，発光体等のランプ負荷であったり、ソレノイド等のＬ負荷である場合には、制御対象を一時的に誤制御してしまうだけで、その後、制御を速やかに正常復帰させることができるものの、例えば、制御対象がステップモータである場合には、一度ビットずれが起こると、制御回路側で認識しているステップモータの駆動ステップ数と実際の駆動ステップ数とが異なる値となってしまい、ステップモータを所望の回転位置に制御できなくなる、といった問題があった。
【０００６】
つまり、ステップモータを駆動制御する電子制御装置では、ステップモータ各相の相巻線への通電・非通電を切り替えながらステップモータを所望の回転位置に制御する。このため、制御回路から駆動回路には、ステップモータを１ステップ分駆動する毎に、ステップモータ各相の相巻線への通電・非通電を表す情報がシリアル送信されることになる。例えば、４相ステップモータを、第１相φ１を通電している初期状態（ステップ数：α）から、３ステップ分正方向に回転させる際には、制御回路からは、図５（ａ）に例示するように、通電する相巻線をφ２→φ３→φ４へと順に切り換えるためのシリアルデータが、所定の通信時間間隔で順に送信されることになる。
【０００７】
そして、この場合、制御回路−駆動回路間でシリアル通信が正常になされれば、図５（ａ）に示すように、１回の通信毎に、ステップモータの励磁相が、φ１からφ２→φ３→φ４と順に切り換えられて、ステップモータを、初期状態（ステップ数：α）から、３ステップ分正方向に回転させた回転位置（ステップ数：α＋３）に制御することができる。
【０００８】
しかし、例えば図５（ｂ）に示すように、第２相φ２の巻線に通電させるためのデータ送信時に、駆動回路側で受信データのビットずれが起き、受信データが第４相φ４の巻線に通電させるものに変化してしまうと、ステップモータの励磁相が、φ１からφ４→φ３→φ４と切り換えられてしまい、ステップモータが２ステップ分逆転した後、１ステップ分正転することになる。そして、この場合には、ステップモータの実際の回転位置が、初期状態（ステップ数：α）から１ステップ分逆転した回転位置（ステップ数：α−１）となり、制御回路が認識している正常時の回転位置（ステップ数：α＋３）と異なるものになってしまう。
【０００９】
このため、上記従来の電子制御装置では、通信中に生じた一回のビットずれにて制御結果が変化してしまうステップモータ等の制御対象を制御することはできなかった。
一方、従来より、データ通信の誤りを検出する方法として、データを受信した回路側からデータを送信した回路側へと、受信データを転送（エコーバック）し、データを送信した回路側で、エコーバックされたデータと送信したデータとが一致しているかどうかを判断して、データが一致していない場合には、データ送信を再度行うことにより、正常なデータを確実に送信できるようにした制御装置が知られている（例えば、特公平６−７４０１５号公報参照）。
【００１０】
このため、上記のように制御回路と駆動回路との間でシリアル通信を行い、駆動回路側でシリアルデータをパラレルデータに変換して、駆動信号を出力するようにした電子制御装置においても、こうした従来技術を適用することにより、制御回路−駆動回路間でのデータ通信の精度を向上することが考えられる。
【００１１】
しかしながら、受信データをエコーバックすることにより通信精度を向上する従来装置では、データを送信する回路側で、前回行った通信が正常であったか否かを判断して、通信異常時にデータを再送信するだけであり、データを受信した回路側では、受信データを使用して制御対象を制御してしまうことから、従来技術を、上述したステップモータ駆動用の電子制御装置に適用しても、ステップモータを良好に制御することは困難である。
【００１２】
つまり、上記従来技術をステップモータ駆動用の電子制御装置に適用した場合、駆動回路側では、シリアルデータを一旦受信すると、そのシリアルデータをパラレルデータに変換して、ステップモータを駆動してしまうことになるため、ステップモータは、一時的にせよ、誤ったデータにて駆動されてしまうことになる。  また、制御回路が、エコーバックデータから通信異常を検出して、シリアルデータを再送信し、駆動回路が、これを正常に受信したとしても、ステップモータの回転位置（ステップ数）が正常に戻るかどうかは解らないため、ビットずれ等によってステップモータを誤制御してしまった場合に、ステップモータの回転位置を確実に正常に復帰させるには、制御回路側で、エコーバックされたデータから、誤制御されたステップモータの現在の回転位置を認識して、その回転位置に基づき、ステップモータを所望の回転位置まで回転させる必要がある。しかし、こうした制御を行うには時間がかかり、また、エコーバックもシリアル通信で行われるので、エコーバックデータ自体がノイズ等でビットずれを起こすことも考えられ、このような場合には、ステップモータを制御回路が認識している回転位置に制御することは不可能である。
【００１３】
本発明は、こうした問題に鑑みなされたものであり、制御回路から送信されたシリアルデータを駆動回路側で受信し、これをパラレルデータに変換することにより、制御対象の駆動信号を出力するようにした電子制御装置において、制御回路−駆動回路間でのシリアル通信に異常が生じた際に、制御対象が誤って駆動されるのを確実に防止できるようにすることを目的とする。
【００１４】
【課題を解決するための手段】
かかる目的を達成するためになされた請求項１に記載の電子制御装置において、制御対象を駆動する際には、まず制御手段側の送信手段が、駆動手段に対して、制御対象駆動制御のためのシリアルデータを送信する。すると、駆動手段側では、受信手段が、このシリアルデータを受信し、転送手段が、その受信したシリアルデータを制御手段側に転送（エコーバック）する。すると、制御手段側では、判定手段が、この転送されてきたシリアルデータ（エコーバックデータ）が、送信手段が送信したシリアルデータと一致するか否か（換言すれば、駆動手段へのシリアルデータの送信を正常に実行できたか否か）を判定する。
【００１５】
そして、両シリアルデータが一致しており、判定手段が、シリアル通信を正常に実行できたと判断すると、許可手段が、駆動手段に、指令信号を出力する。すると、駆動手段側では、出力手段が、その指令信号に従い、受信手段が受信し保持しているシリアルデータを、パラレルデータに変換し、制御対象駆動のための駆動信号として出力する。また逆に、制御手段において、判定手段が、両シリアルデータが一致していない（換言すればシリアル通信に異常が生じた）と判断すると、データ再送信手段が、送信手段からシリアルデータを再送信させる。
【００１６】
このように、本発明の電子制御装置によれば、駆動手段において、出力手段が、受信手段にて受信されたシリアルデータをパラレルデータに変換して駆動信号として出力するのは、制御手段にて制御手段−駆動手段間のシリアル通信が正常に実行されたと判断されたときであり、制御手段側でシリアル通信の正常動作を確認できなければ、受信したシリアルデータがパラレルデータに変換されて駆動信号として出力されることはない。
【００１７】
このため、本発明の電子制御装置によれば、制御手段−駆動手段間でのシリアル通信に異常が生じた際に、制御対象が誤ったデータで制御されるのを確実に防止することができ、制御対象の制御精度を向上できる。
また、制御手段側では、シリアル通信に異常が生じたと判断した際には、シリアルデータを再送信し、その再送信により駆動手段から転送（エコーバック）されてくるシリアルデータ（エコーバックデータ）が再送信したシリアルデータと一致していれば、許可手段が、駆動信号の出力を許可する指令信号を送信するので、シリアル通信に一時的に異常が生じたとしても、制御対象を、所望の状態に確実に制御することができる。
【００１８】
また更に、本発明の電子制御装置では、駆動手段において、受信手段がｎ＋ｍビットのシフトレジスタ、転送手段がｎビットのシフトレジスタ、出力手段がｎビットのラッチ用シフトレジスタから夫々構成される。そして、制御手段からのシリアルデータの送信によって駆動手段を上記のように動作させるために、送信手段が、制御対象駆動制御のためのｎビットの制御データの後ろにｍビット（但し、ｍ≧ｎ）のダミーデータを付与したｎ＋ｍビットのシリアルデータを、同期信号と共に送信する。
【００１９】
このため、本発明の電子制御装置においては、駆動手段側の各シフトレジスタが、制御手段の送信手段から送信されてくる同期信号に同期して、シリアルデータの各ビットデータを順に受信し、転送手段を構成するシフトレジスタは、送信手段から送信されてくるシリアルデータの内、制御対象の駆動制御に必要なｎビット分の制御データを受信した後、ダミーデータを受信する度に、先に受信した制御データを１ビット単位で順に制御手段に戻す（エコーバックする）ことになり、制御手段側では、ｎ＋ｍビットのシリアルデータの送信を完了した時点で、駆動手段からエコーバックされてきた制御データと実際に送信した制御データとの一致・不一致を速やかに判定できる。
【００２０】
そして、これら各データの一致を判定したときに指令信号を出力することにより、駆動手段側の出力手段を構成するラッチ用レジスタに、受信手段を構成するシフトレジスタに蓄積されたｎ＋ｍビットのシリアルデータの内、シフトレジスタが受信した最初のｎビット分（つまり制御対象の駆動制御に必要な制御データ）をラッチさせ、このｎビットのデータをパラレルデータとして出力させることができる。
【００２１】
つまり、本発明の電子制御装置では、制御手段と駆動手段との間のシリアル通信をクロック同期で行うことにより、駆動手段を、３つのレジスタからなる半導体集積回路（ＩＣ）にて簡単に実現できるようにしており、上記のように、３つのレジスタが、受信手段，転送手段，出力手段として動作するので、極めて簡単な構成にて実現できることになる。
【００２２】
尚、本発明は、制御手段（制御回路）から駆動手段（駆動回路）に対して制御対象を駆動制御するための情報をシリアル送信し、駆動回路側では、受信したシリアルデータをパラレルデータに変換することにより制御対象駆動のための駆動信号を出力する電子制御装置であれば適用できるが、特に、請求項２に記載のように、制御手段が、駆動手段に対して、ステップモータ各相の相巻線への通電・非通電を表す情報をシリアル送信する、ステップモータ制御用の電子制御装置に本発明を適用すれば、その効果をより有効に発揮することができる。
【００２３】
つまり、既述したように、ステップモータを制御手段と駆動手段との間のシリアル通信にて駆動制御する場合、駆動手段を、単に、シリアルデータを受信した際にその受信データに従ってステップモータを駆動するように構成すると、シリアル通信の異常によって駆動手段側での受信データに一度ビットずれが起こると、制御手段側で認識しているステップモータの駆動ステップ数と実際の駆動ステップ数とが異なる値となってしまい、ステップモータの回転位置（ステップ数）を制御することができなくなるが、本発明によれば、制御手段側でシリアル通信の良・否を確認し、シリアル通信を正常に実行できた際にだけ、駆動手段に対して、受信データのシリアル−パラレル変換を許可するようにしているため、請求項２に記載のように、本発明（請求項１）をステップモータ制御用の電子制御装置に適用すれば、制御手段側で認識しているステップモータの駆動ステップ数と実際の駆動ステップ数とを常に一致させて、ステップモータを高精度に制御することが可能になる。
【００２４】
【発明の実施の形態】
以下に、本発明の一実施例を図面と共に説明する。
図１は、本発明が適用された実施例の自動車用内燃機関の制御装置（エンジン制御装置）全体の構成を表すブロック図である。
【００２５】
図１に示す如く、エンジン制御装置は、エンジンの所定回転角度毎に検出信号を発生する回転角センサ１０，車速に応じた検出信号を発生する車速センサ１２，スロットルバルブの開度を検出するスロットルセンサ１４，排気中の酸素濃度（延いてはエンジンに供給された燃料混合気の空燃比）を検出するＯ2 センサ１６，冷却水温を検出する水温センサ１８等からなる、運転状態検出用の各種センサと、これら各センサからの検出信号に基づきエンジン制御を行う電子制御回路（ＥＣＵ）３０とから構成されている。
【００２６】
ＥＣＵ３０は、上記各センサからの検出信号を取り込み、エンジンの吸気系に設けられた燃料噴射弁（インジェクタ）２０からの燃料噴射量、イグナイタ２２による点火コイル一次巻線への通電・非通電のタイミング（換言すれば点火時期）、４相ステップモータ２４の回転位置等を制御するためのものであり、ＣＰＵ，ＲＯＭ，ＲＡＭ等からなるマイクロコンピュータ（以下単にＣＰＵという）５０を中心に構成されている。
【００２７】
尚、４相ステップモータ２４は、エンジンの吸気系に設けられたアイドルスピードコントロールバルブ（ＩＳＣＶ）、或いは、エンジンの給排気系を連通する排気再循環通路に設けられたＥＧＲバルブ等を開閉するためのアクチュエータであり、ＥＣＵ３０は、４相ステップモータ２４の回転位置（ステップ数）を制御することにより、ＩＳＣＶ或いはＥＧＲバルブ等のバルブ開度を制御する。
【００２８】
また、ＥＣＵ３０には、回転角センサ１０，車速センサ１２等から入力されるパルス状の検出信号を波形整形してＣＰＵ５０に入力する入力回路３２、スロットルセンサ１４，Ｏ2 センサ１６，水温センサ１８等から入力されるアナログ電圧信号をデジタルデータに変換してＣＰＵ５０に入力するＡ／Ｄ変換回路（ＡＤＣ）３４、ＣＰＵ５０からの制御信号を受けてインジェクタ２０，イグナイタ２２，４相ステップモータ２４を夫々駆動するための駆動信号を出力する駆動回路（ＩＣ）３６，３８，４０、及び、イグニッションスイッチＩＧのオン時にバッテリＢＴから電源供給（バッテリ電圧＋Ｂ）を受けて、上記各内部回路を動作させるための電源電圧（定電圧）Ｖｃｃを生成する電源回路（ＩＣ）３１等が備えられている。
【００２９】
このように構成されたＥＣＵ３０においては、ＣＰＵ５０が、入力回路３２及びＡＤＣ３４を介して入力される各種検出信号に基づき、燃料噴射量，点火時期，バルブ開度（ＩＳＣＶ或いはＥＧＲバルブ等の開度）を演算し、その演算結果に従い、駆動回路３６，３８，４０に制御信号を出力することにより、各駆動回路３６，３８，４０を介して、インジェクタ２０，イグナイタ２２，４相ステップモータ２４を制御するのであるが、こうしたエンジン制御全体については、本発明に特に関係なく、また従来より周知であるため、説明は省略し、次に、ＣＰＵ５０が実行する本発明にかかわる主要な処理である４相ステップモータ２４駆動のための処理（ステップモータ駆動処理）、及び、この処理を実現するための駆動回路４０の構成について説明する。
【００３０】
図２に示す如く、本実施例では、ＣＰＵ５０は、４相ステップモータ２４駆動用の制御データとして、４相ステップモータ２４各相の相巻線毎に通電・非通電を表す２値データからなる４ビットの制御データ（データ１〜４）を生成し、これに予め設定された４ビットのダミーデータを付与した、計８ビットのシリアルデータを、制御信号ＳＯＵＴとして、駆動回路４０にシリアル送信する。また、この制御信号ＳＯＵＴ送信時には、この制御信号ＳＯＵＴに同期したクロック信号（同期信号）ＣＬＫも同時に駆動回路４０に出力する。
【００３１】
一方、４相ステップモータ２４駆動のための駆動回路４０は、図３に示す如く、ＣＰＵ５０が出力する制御信号ＳＯＵＴの全ビットを、クロック信号ＣＬＫに同期して順時受信し、保持するための８ビットの受信用シフトレジスタ４２と、ＣＰＵ５０が出力する制御信号ＳＯＵＴをクロック信号ＣＬＫに同期して順時受信すると共に、制御信号ＳＯＵＴの内、４相ステップモータ２４の駆動に必要な制御データ４ビット分を受信した後のダミーデータの受信時には、シフト動作によって制御データを順に吐き出し、エコーバックデータＳＩＮ（図２のデータ１′〜４′参照）としてＣＰＵ５０側に転送する、４ビットのエコーバック用シフトレジスタ４４とを備える。
【００３２】
また、駆動回路４０には、図２に示すように、後述のステップモータ駆動処理によってＣＰＵ５０が出力してくるコントロール信号ＣＳの立ち上がりタイミングで、受信用シフトレジスタ４２に保持された制御データ（データ１〜４）をラッチし、そのラッチしたデータ（４ビット）を、４相ステップモータ２４駆動のための（詳しくは、各相巻線を通電・非通電するための）の駆動信号ＯＵＴ１，ＯＵＴ２，ＯＵＴ３，ＯＵＴ４としてパラレル出力するデータ出力用ラッチレジスタ４６が設けられている。
【００３３】
尚、本実施例では、駆動回路４０が、本発明の駆動手段に相当するものであり、駆動回路４０において、８ビットの受信用シフトレジスタ４２は、本発明の受信手段に相当し、４ビットのエコーバック用シフトレジスタ４４は、本発明の転送手段に相当し、データ出力用ラッチレジスタ４６は、本発明の出力手段に相当する。
【００３４】
次に、図４は、ＣＰＵ５０において４相ステップモータ２４駆動のために実行されるステップモータ駆動処理を表す。尚、この処理は、本発明の制御手段としての機能をＣＰＵ５０に実現させるためのものであり、ＩＳＣＶ或いはＥＧＲバルブの開度を制御するために４相ステップモータ２４を回転させるに当たって、４相ステップモータ２４を１ステップ分回転駆動するために実行され、例えば、４相ステップモータ２４を３ステップ分回転駆動する際には、この処理が３回繰り返し実行されることになる。
【００３５】
図４に示す如く、ステップモータ駆動処理では、まずＳ１１０（Ｓは処理のステップを表す）にて、駆動回路４０に出力する指令信号としてのコントロール信号ＣＳを値０（Low レベル）にリセットする（図２の時点ｔ１参照）。
そして、続くＳ１２０では、４相ステップモータ２４を現在の回転位置から１ステップ分正又は逆方向に回転させるのに必要な制御データ（データ１〜４）を求め、この制御データの後ろに４ビットのダミーデータを付与することによりシリアル出力データをセットし、続くＳ１３０にて、このシリアル出力データを前述の制御信号ＳＯＵＴとして、送信用のクロック信号ＣＬＫと共に駆動回路４０に出力するシリアル送信を起動する、本発明の送信手段としての処理を実行する。
【００３６】
このように、Ｓ１３０にて、シリアル送信を起動すると、図２に示したように、ＣＰＵ５０から駆動回路４０には、制御信号ＳＯＵＴとして、４相ステップモータ２４の各相巻線への通電・非通電を表す４ビットの制御データ（データ１〜４）と４ビットのダミーデータとが順に送信されることになるが、このシリアル出力データの送信中に、制御データ４ビット分の送信が完了し、ダミーデータの送信に入ると、駆動回路４０側では、クロック信号ＣＬＫに同期して（具体的には図２に示すクロック信号ＣＬＫの立ち上がりタイミングで）ダミーデータを受信する度に、エコーバック用シフトレジスタ４４から制御データがデータ１から順に１ビットずつ吐き出され、これがエコーバックデータ（データ１′〜４′）として、ＣＰＵ５０に転送されてくる（図２に示す時点ｔ２以降参照）。
【００３７】
このため、続くＳ１４０では、駆動回路４０から転送されてくるエコーバックデータを取り込む入力処理を実行し、この入力処理にて、エコーバックデータを４ビット分取り込むと（換言すればシリアル出力データの送信が完了すると）、続くＳ１５０にて、取り込んだエコーバックデータ（データ１′〜４′）と、制御信号ＳＯＵＴとして今回送信した制御データである出力データ（データ１〜４）とが一致しているか否かを判断する、本発明の判定手段としての処理を実行する。
【００３８】
そして、Ｓ１５０にて、エコーバックデータと出力データとが一致していないと判断すると、再度Ｓ１２０に移行して、送信用のシリアル出力データとして前回送信したものと同じデータをセットし、Ｓ１３０にてシリアル送信を起動することにより、シリアル出力データを再送信させる、本発明のデータ再送信手段としての処理を実行する。
【００３９】
一方、Ｓ１５０にて、エコーバックデータと出力データとが一致していると判断すると、駆動回路４０への制御信号ＳＯＵＴの送信は正常に実行できたものとして、続くＳ１６０に移行し、指令信号としてのコントロール信号ＣＳを値１（Highレベル）にセットする（図２に示す時点ｔ３参照）ことにより、駆動回路４０に対して、今回受信した制御データ（データ１〜４）のパラレル出力を許可する、本発明の許可手段としての処理を実行し、当該処理を一旦終了する。
【００４０】
尚、コントロール信号ＣＳを値１（Highレベル）にセットすると、前述したように、駆動回路４０側では、データ出力用ラッチレジスタ４６が受信用シフトレジスタ４２に保持された制御データ（データ１〜４）をラッチし、そのラッチしたデータ（４ビット）を、駆動信号ＯＵＴ１〜４として、４相ステップモータ２４側にパラレル出力する。すると４相ステップモータ２４の各相巻線は、この駆動信号ＯＵＴ１〜４に対応して通電・非通電され、４相ステップモータ２４の回転位置が、１ステップ分だけ正又は逆方向に変化する。
【００４１】
以上説明したように、本実施例では、４相ステップモータ２４を駆動する際には、ＣＰＵ５０から駆動回路４０に対して、４相ステップモータ２４の各相の相巻線への通電・非通電を表す４ビットの制御データに４ビットのダミーデータを付与した合計８ビットのデータをクロック信号ＣＬＫと共にシリアル送信し、駆動回路４０側では、そのシリアルデータをクロック同期で受信すると共に、受信データの内、ダミーデータを除く制御データをエコーバックデータとしてＣＰＵ５０に送信する。そして、ＣＰＵ５０側では、このエコーバックデータと、送信した制御データ（出力データ）とが一致している場合に、駆動回路４０に対して、コントロール信号ＣＳ（Highレベル）を出力することにより、駆動回路４０が受信した制御データ（４ビット）を、４相ステップモータ２４の駆動信号として、パラレル出力させる。
【００４２】
このため、本実施例によれば、駆動回路４０が、シリアル通信により受信した制御データを、４相ステップモータ２４駆動のための駆動信号（４ビットのパラレルデータ）として出力するのは、ＣＰＵ５０側で、エコーバックデータに基づき、ＣＰＵ５０−駆動回路４０間のシリアル通信が正常に実行されたと判断されたときだけであり、ＣＰＵ５０側でシリアル通信の正常動作が確認されなければ、駆動回路４０が受信した制御データを駆動信号としてパラレル出力することはない。よって、本実施例によれば、ＣＰＵ５０−駆動回路４０間でのシリアル通信に異常が生じた際に、４相ステップモータ２４が、誤ったデータで駆動されるのを確実に防止することができる。
【００４３】
また、ＣＰＵ５０は、エコーバックデータと、送信した制御データとが一致していないと判断すると、制御データを再送信するが、この再送信動作は、再送信した制御データと、それに対応したエコーバックデータとが一致するまで繰り返し実行され、これら各データが一致したときにだけ、駆動回路４０に対してコントロール信号ＣＳ（Highレベル）を出力して、受信した制御データのパラレル出力を許可することから、ＣＰＵ５０が認識している４相ステップモータ２４の駆動ステップ数と実際の駆動ステップ数とが常に一致することになり、４相ステップモータ２４の制御精度を高め、延いては、４相ステップモータ２４により開閉されるＩＳＣＶ或いはＥＧＲバルブの開度を高精度に制御することが可能になる。
【００４４】
以上、本発明の一実施例について説明したが、本発明は、上記実施例に限定されるものではなく、種々の態様を採ることができる。
例えば、上記実施例では、駆動回路４０は、単に、ＣＰＵ５０からのコントロール信号ＣＳの立ち上がりで駆動信号を出力するものとして説明したが、この場合、コントロール信号ＣＳの信号線にノイズが重畳されると、駆動回路４０がそのノイズによって、不適当なタイミングで駆動信号を出力してしまうことも考えられる。
【００４５】
そこで、コントロール信号ＣＳの信号線のノイズ対策が十分でない場合や、ノイズの影響を受け易い環境下等では、例えば、駆動回路４０側で、制御信号ＳＯＵＴの全ビットの受信が完了する最終クロック後に、コントロール信号ＣＳの入力を受け付ける、というように、駆動回路４０側でのコントロール信号ＣＳの入力区間を制限するとよい。また、例えば、駆動回路４０側で、ＣＰＵ５０からのコントロール信号ＣＳの立ち上がりを検出すると、所定時間経過後に、コントロール信号ＣＳの信号レベルを検出し、コントロール信号ＣＳの信号レベルが適正（上記実施例ではHighレベル）であれば、コントロール信号ＣＳが実際に入力されたものとして、データ出力用ラッチレジスタ４６から駆動信号を出力させる、というように、コントロール信号ＣＳの２度読み処理を行うようにしてもよい。
【００４６】
つまり、このようにすれば、駆動回路４０がコントロール信号ＣＳの信号線に重畳されたノイズによって駆動信号を誤出力するのを防止し、制御対象である４相ステップモータ２４の駆動制御をより高精度に行うことができるようになる。一方、上記実施例では、エンジン制御用の電子制御装置（ＥＣＵ）３０において、ＩＳＣＶ或いはＥＧＲバルブの開度を制御するための４相ステップモータ２４を駆動する駆動回路４０とＣＰＵ５０との間でシリアル通信を行う制御系に本発明を適用した場合について説明したが、本発明は、こうした制御系に限らず、ステップモータ等の所望の制御対象の制御量を演算するマイクロコンピュータ等の制御回路と、この制御回路からシリアル送信された制御信号（制御データ）を受信し、これをパラレルデータに変換することにより、制御対象の駆動信号を発生する駆動回路とからなる制御装置であれば、適用することができる。
【００４７】
また例えば、上記実施例では、駆動回路４０は、特定の４相ステップモータ２４に対する駆動信号を出力するものとして説明したが、例えば、ＣＰＵ５０からシリアル送信されてくるシリアルデータをパラレルデータに変換することにより、複数のステップモータに対する駆動信号を同時に生成するものであっても、本発明を適用して、上記実施例と同様の効果を得ることができる。
【図面の簡単な説明】
【図１】  実施例のエンジン制御装置全体の構成を表すブロック図である。
【図２】  ＣＰＵとステップモータ用の駆動回路との間で送受信される信号及び駆動回路からの出力を説明するタイムチャートである。
【図３】  ステップモータ用の駆動回路（ＩＣ）の構成を表す説明図である。
【図４】  ＣＰＵにて実行されるステップモータ駆動処理を表すフローチャートである。
【図５】  シリアル通信を利用してステップモータを駆動制御する従来装置の問題を説明する説明図である。
【符号の説明】
２４…４相ステップモータ、４０…駆動回路、４２…受信用シフトレジスタ、４４…エコーバック用シフトレジスタ、４６…データ出力用ラッチレジスタ、５０…ＣＰＵ（マイクロコンピュータ）。
【図１】
0003952634.tif 000002
【図２】
0003952634.tif 000003
【図３】
0003952634.tif 000004
【図４】
0003952634.tif 000005
【図５】
0003952634.tif 000006