(57)【特許請求の範囲】
【請求項１】
シリアル通信用のクロック信号を出力するマイクロコンピュータが、前記クロック信号に同期して送信するシリアルデータを受信するとその受信データに基づく処理を実行し、以降は自身が通信開始を指示するための同期信号を前記データの受信時間よりも長い周期で出力して前記マイクロコンピュータから次のシリアルデータを送信させると共に、自身も前記処理の実行結果に基づいて発生するシリアルデータを前記マイクロコンピュータに送信して全二重シリアル通信を行うためのシリアル通信回路において、
前記クロック信号のクロックパルス数をカウントし、そのカウント値が予め設定された受信データのビット数に一致すると、受信データを受信レジスタにロードするための信号を出力するデータカウンタと、
前記ロード信号が最初に出力された後に計時動作を開始して、以降は、前記受信データの転送時間よりも長く且つ前記転送の間隔よりも短い周期で繰り返し計時動作を行なうタイマとを備え、
前記タイマの計時周期に基づいて、前記同期信号の出力と前記データカウンタのゼロクリアとが行なわれ、更に、前記マイクロコンピュータに送信するためのデータが送信レジスタにロードされるように構成されていることを特徴とするシリアル通信回路。
【請求項２】
請求項１記載のシリアル通信回路と、前記マイクロコンピュータと、複数のアナログ信号が与えられ、それらの信号入力を切り替えてＡ／Ｄ変換可能なＡ／Ｄ変換装置とで構成され、
前記マイクロコンピュータは、前記Ａ／Ｄ変換装置に対するＡ／Ｄ変換指令を前記シリアル通信回路に送信し、
前記シリアル通信回路は、前記Ａ／Ｄ変換指令を受信すると、その指令内容に応じた制御信号を前記Ａ／Ｄ変換装置に出力すると共に、前記Ａ／Ｄ変換装置によってＡ／Ｄ変換されたデータを前記マイクロコンピュータに送信するように構成されることを特徴とするＡ／Ｄ変換システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータとの間で全二重シリアル通信を行うためのシリアル通信回路、及び前記シリアル通信回路と、マイクロコンピュータと、Ａ／Ｄ変換装置とで構成されるＡ／Ｄ変換システムに関する。
【背景技術】
【０００２】
特許文献１には、図９に示す構成が開示されている。即ち、マイコン１とＩＣ２からなるシリアル伝送送受信回路であって、ＩＣ２は、シフトレジスタ４及び６、処理回路５、カウンタ７、タイマ９で構成される。タイマ９は、マイコン１が出力するシリアルクロック信号ＳＣＬＫの最初のビットで動作を開始し、伝送頻度時間より短く且つシリアル入力信号のデータ長より長い時間Ｔでカウンタ７をクリアする信号を発生させる。従って、シリアルクロック信号ＳＣＬＫのビット数が変化してカウンタ７がカウント途中で停止した場合でも、カウンタ７をクリアして正常な状態にリセットすることができる。
【特許文献１】特開２００１−７７８００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
特許文献１に開示されている技術を、例えばＩＣ２側から一定処理時間毎に、マイコン１にシリアルデータを送信するシステムに適用した場合、上記のように、ノイズ等の影響でシリアルクロック信号のクロックパルスが欠落したケースやパルスの挿入が発生したケースでは、その状態をクリアして正常状態に復帰することが可能となる。
しかしながら、例えばマイコン１において割り込み処理が発生したことにより、マイコン１が出力するシリアルクロック信号の出力タイミングに遅れが生じた場合を想定すると、それに伴いタイマ９のカウント動作の開始タイミングも遅延するが、送信用のシフトレジスタ６については一定処理時間毎にデータがセットされるため、ＩＣ２は誤ったデータを送信し続けることになるという問題がある。
【０００４】
本発明は上記事情に鑑みてなされたものであり、その目的は、外部より供給されるシリアルクロック信号の出力タイミングに遅れが生じた場合でも、誤動作状態を解消することができるシリアル通信回路、及びそのシリアル通信回路と、マイクロコンピュータと、Ａ／Ｄ変換装置とで構成されるＡ／Ｄ変換システムを提供することにある。
【課題を解決するための手段】
【０００５】
請求項１記載のシリアル通信回路によれば、データカウンタは、マイクロコンピュータが出力するシリアル通信用クロック信号のクロックパルス数をカウントし、そのカウント値が予め設定された受信データのビット数に一致すると受信データのロード信号を出力する。また、タイマは、前記ロード信号が最初に出力された後に計時動作を開始し、以降は受信データの転送時間よりも長く且つ前記転送の間隔よりも短い周期で繰り返し計時動作を行なう。そして、タイマの計時周期に基づいて同期信号の出力とデータカウンタのゼロクリアとが行なわれ、更に、マイクロコンピュータに送信するためのデータが送信レジスタにロードされる。
従って、シリアルクロック信号にパルスの欠落や挿入があった場合は、タイマの作用により、従来技術と同様にデータカウンタをゼロクリアすることができる。また、マイクロコンピュータ側の処理状況などによりシリアルクロック信号の出力タイミングが遅延した場合でも、タイマの周期的な計時動作によって送信データが順次送信レジスタにロードされるので、次回以降には正常なデータをマイクロコンピュータに送信することが可能となる。
【０００６】
請求項２記載のＡ／Ｄ変換システムによれば、マイクロコンピュータは、Ａ／Ｄ変換装置に対するＡ／Ｄ変換指令をシリアル通信回路に送信し、シリアル通信回路は、Ａ／Ｄ変換指令を受信すると、その指令内容に応じた制御信号をＡ／Ｄ変換装置に出力する。また、シリアル通信回路は、Ａ／Ｄ変換装置によってＡ／Ｄ変換されたデータをマイクロコンピュータに送信する。
斯様なＡ／Ｄ変換システムにおいて、例えばマイクロコンピュータが監視対象の状態を継続的に監視する必要があり、その監視に必要なＡ／Ｄ変換データが連続的にマイクロコンピュータに送信され続ける場合も想定される。その様な状況下でシリアル通信がノイズの影響などを受け、データが正常に送受信できなくなった場合には、迅速に正常なデータを送受信できる状態に復帰させる必要がある。従って、請求項１記載のシリアル通信回路を有効に適用することができる。
【発明を実施するための最良の形態】
【０００７】
以下、本発明のシリアル通信回路を、車両のエンジンに配置されている各種センサ信号をＡ／Ｄ変換するためのシステムに適用した場合の一実施例について図１乃至図８を参照して説明する。図２は、Ａ／Ｄ変換システムの構成を示すものである。Ａ／Ｄ変換システムは、マイクロコンピュータ１１，シリアル通信回路１２，Ａ／Ｄ変換装置１３及びマルチプレクサ（ＭＰＸ）１４で構成されている。
【０００８】
マイコン１１は、ＣＰＵ１５，ＲＯＭ１６，ＲＡＭ１７，ＤＳＰ／デジタルフィルタ１８などで構成されていると共に、図示しないシリアルインターフェイス回路を備えている。そして、マイコン１１は、シリアル通信回路１２に対して、チップセレクト信号ＣＳ，シリアルクロック信号ＳＣＬＫ，シリアルデータＳＩＮを送信し、また、シリアル通信回路１２から、通信用同期信号ＳＹＮＣＯ，シリアルデータＳＯＵＴを受信するようになっている。このマイコン１１は、Ａ／Ｄ変換装置１３によって行われるＡ／Ｄ変換を制御するためのデータを、シリアル通信回路１２に対してシリアルに送信し、Ａ／Ｄ変換装置１３によってＡ／Ｄ変換されたデータをシリアルに受信する。
【０００９】
マルチプレクサ１４には、エンジンに配置された各種センサより、例えばノック信号，ＣＰＳ（筒内圧）信号，エンジンの燃焼状態を検出するためのイオン電流信号などのアナログ信号が与えられており、それらの入力を、シリアル通信回路１２を介して与えられる制御データに応じて切り替え、Ａ／Ｄ変換装置１３に出力する。また、これらのアナログ信号は、エンジンが有しているシリンダ毎に出力される。
また、各アナログ信号の電圧範囲は異なっているため、Ａ／Ｄ変換装置１３に入力される前段に配置される増幅回路（図示せず）により、信号の種類に応じて増幅ゲインが切り替えられ、入力電圧範囲が適切になるように調整される。そのゲインの設定も、シリアル通信回路１２を介して与えられる制御データによって行われる。Ａ／Ｄ変換装置１３における変換時間は例えば９μｓである。尚、シリアル通信回路１２，Ａ／Ｄ変換装置１３及びマルチプレクサ１４は、１つのＩＣとして構成されている。また、Ａ／Ｄ変換装置１３は周知の構成であり、その一例は特開２００５−２２３８１８号公報などに開示されている。
【００１０】
図１は、シリアル通信回路１２の詳細構成を示すものである。マイコン１１より出力されるチップセレクト信号ＣＳは、ＯＲゲート１９を介してリセット信号ＣＳＲＥＳとして出力される。そのＯＲゲート１９のもう１つの入力端子には、シリアル通信回路１２内部で生成されるリセット信号ＲＥＳが与えられている。尚、チップセレクト信号ＣＳはロウアクティブ，リセット信号ＣＳＲＥＳはハイアクティブである。
【００１１】
また、マイコン１１より出力されるシリアルデータＳＩＮは、受信シフトレジスタ２０に入力されており、シリアルクロック信号ＳＣＬＫは、受信シフトレジスタ２０並びに送信シフトレジスタ２１，データカウンタ２２に与えられている。受信シフトレジスタ２０は、シリアルデータＳＩＮをパラレルに変換して受信レジスタ２３に出力し、受信レジスタ２３は、データカウンタ２２より受信ロード信号が出力されるタイミングで受信データをロードするようになっている。データカウンタ２２は、シリアルクロック信号ＳＣＬＫの入力パルス数をカウントしており、そのカウント値が規定のデータビット数（例えば、１６ビット）に一致すると受信ロード信号を出力する。
【００１２】
受信データは、受信レジスタ２３を介して処理回路２４に出力される。処理回路２４はＡ／Ｄ変換装置１３とのインターフェイスとして機能するハードロジック回路であり、受信データに含まれるマイコン１１のコマンドをデコードして、Ａ／Ｄ変換装置１３に出力すべき制御指令を出力するようになっている。また、Ａ／Ｄ変換装置１３によってＡ／Ｄ変換されたデータをラッチして保持する機能も備えている。
また、処理回路２４は、受信レジスタ２３を介して最初にデータを受信すると、タイマ２５に対して起動信号ＳＴＡＲＴを出力する。タイマ２５は、起動信号ＳＴＡＲＴが与えられると計時動作を開始し、以降はシリアルデータの送受信期間より若干長く且つ前記送受信の間隔よりも短い周期（例えば１０μｓ）で繰り返し計時を行うようになっている。そして、タイマ２５は、上記の計時周期に基づき送信ロード信号を送信レジスタ２６に出力する。また、その送信ロード信号は、データカウンタ２２に対してはリセット信号ＲＥＳＥＴとして出力され、ＯＲゲート２７を介して与えられている。
【００１３】
処理回路２４は、Ａ／Ｄ変換装置１３によってＡ／Ｄ変換されたデータを送信レジスタ２６に出力し、送信レジスタ２６は、送信ロード信号が出力されたタイミングで送信データをロードすると、送信シフトレジスタ２１にデータを出力する。そして、送信シフトレジスタ２１は、シリアルクロック信号ＳＣＬＫに同期して、シリアルデータＳＯＵＴをマイコン１１に順次送信する。
更に、送信ロード信号は、ラッチ２８にセット信号ＳＥＴとして与えられており、ラッチ２８はセット状態でマイコン１１に対して出力する同期信号ＳＹＮＣＯをアクティブにする。また、タイマ２５は、上記セット信号を出力する周期の１／２で、ラッチ２８のリセット信号ＲＥＳも出力するようになっている。従って、同期信号ＳＹＮＣＯは、タイマ２５の計時周期でデューティ５０％の矩形波として出力される。
【００１４】
マイコン１１は、シリアル通信回路１２を介して与えられるシリアルデータＳＯＵＴを受信すると、内部のＤＳＰ／デジタルフィルタ１８により信号波形の解析処理などを行ない、その解析結果に基づいて車両のエンジンの動作状態を監視するようになっている。そして、マイコン１１が起動して、最初にシリアル通信回路１２にデータを送信する場合は、マイコン１１がシリアル通信を主導するマスタとして機能するが、それ以降は、シリアル通信回路１２によって出力される同期信号ＳＹＮＣＯによってシリアル通信の開始が制御される。従って、以降はシリアル通信回路１２がマスタとして機能するようになる。
【００１５】
次に、本実施例の作用について図３乃至図８も参照して説明する。図３は、マイコン１１が起動して、最初にシリアル通信回路１２にデータを送信する場合のタイミングチャートである。マイコン１１は、チップセレクト信号ＣＳをハイからロウに変化させて、シリアル通信を開始する（ａ）。そして、チップセレクト信号ＣＳがハイとなっている間は、シリアル通信回路１２はリセットされ続けている。
【００１６】
続いて、マイコン１１は、シリアルクロック信号ＳＣＬＫの出力を開始すると共に（ｂ）、そのクロックの立ち上がりに同期してシリアルデータＳＩＮ：Ｄ１５〜Ｄ０をＭＳＢファーストで送信する（ｃ）。シリアル通信回路１２側では、データカウンタ２２がシリアルクロック信号ＳＣＬＫのカウントを行ない、入力されるクロックパルスがデータビット数の「１６」即ちＦＨ→０Ｈになると、受信ロード信号をワンショットパルスで出力する（ｉ）。すると、その時点で受信シフトレジスタ２０に格納されている１６ビットデータは（ｈ）受信レジスタ２３にロードされ（ｊ）、処理回路２４に受信データが入力される。また、マイコン１１は、１６ビットのデータを送信した時点で、シリアルクロック信号ＳＣＬＫの出力を一旦停止する（ｂ）。
【００１７】
そして、処理回路２４に最初の受信データが入力されると、図３では図示しないが、処理回路２４は、タイマ２５に対する起動信号ＳＴＡＲＴを出力し、タイマ２５は計時動作を開始する。尚、タイマ２５のカウント周期は、例えば１μｓに設定されている。タイマ２５が起動してそのカウント値が「０」から「１」に変化すると（ｇ）、そのタイミングで送信ロード信号が出力され（ｋ）、データカウンタ２２はゼロクリアされる（ｅ）。同時に、ラッチ２８がセットされ、同期信号ＳＹＮＣＯがロウからハイに変化する（ｆ）。
【００１８】
マイコン１１は、同期信号ＳＹＮＣＯがハイに変化したことを認識すると、シリアルクロック信号ＳＣＬＫの出力を再開して次のシリアルデータの送信を開始する（ａ）。また、送信ロード信号が出力された時点で処理回路２４が出力していたデータが送信レジスタ２６にロードされているので（ｌ）、シリアルクロック信号ＳＣＬＫの出力が再開されると、送信シフトレジスタ２１よりシリアルデータＳＯＵＴがＭＳＢファーストでマイコン１１に送信される（ｄ）。
【００１９】
以上に説明した図３は正常なケースであるが、図４は、初回の通信時においてシリアルクロック信号ＳＣＬＫにパルスの欠落が生じた場合を示す。この場合、受信データＤ１３，Ｄ１１に同期して出力されるべきクロック信号ＳＣＬＫのパルスが欠落したとする（（ｂ），（ｃ））。すると、データカウンタ２２のカウント値はＥＨまでしかカウントされないため（ｅ）、受信ロード信号は出力されず（ｉ）、受信データは受信レジスタ２３にロードされない（ｊ）。
また、タイマ２５は計時動作を開始せず同期信号ＳＹＮＣＯは出力されないので（ｆ）、マイコン１１は次のデータを送信するためのＳＣＬＫ，ＳＩＮを出力しない。この場合はマイコン１１側の処理により、シリアル通信回路１２側の応答がないことを認識してチップセレクト信号ＣＳ（ａ）をインアクティブにすれば、シリアル通信回路１２はリセットされ、正常化される。
【００２０】
図５は、初回の通信時においてシリアルクロック信号ＳＣＬＫにパルスの挿入が生じた場合を示す。この場合、受信データＤ１３に同期して出力されるべきクロック信号ＳＣＬＫのパルスが重複して２回出力されたとする（（ｂ），（ｃ））。すると、データカウンタ２２のカウント値がＦＨ→０Ｈに達した場合（ｅ）、受信レジスタ２３には受信データＤ１５〜Ｄ１（Ｄ１３が２ビット重複）ロードされる（ｊ）。また、その時同期信号ＳＹＮＣＯが出力されて（ｆ）データカウンタ２２はゼロクリアされるので（ｅ）、次回の通信は正常化される。
尚、データＤ１５〜Ｄ１を受信した処理回路２４では、当該データが使用されているコマンドコードに一致しないものとなっていれば、受信データにエラーが生じていることが認識できる。
【００２１】
図６は、２回目以降の通信途中においてシリアルクロック信号ＳＣＬＫにパルスの欠落が生じた場合であり、受信データＤ１３，Ｄ１１に同期して出力されるべきクロック信号ＳＣＬＫのパルスが欠落したとする（（ｂ），（ｃ））。すると、図４のケースと同様にデータカウンタ２２のカウント値はＥＨまでしかカウントされないため（ｅ）受信ロード信号は出力されず（ｉ）、受信データは受信レジスタ２３にロードされない（ｊ）。また、送信データＳＯＵＴは、２ビット分のパルスが欠落したことでＤ２までしか送信されない（ｄ）。
【００２２】
但し、タイマ２５は周期的に計時動作を行っているので、同期信号ＳＹＮＣＯは出力されて（ｆ）データカウンタ２２をクリアする（ｅ）。従って、次回以降の通信は正常化される。そして、上記エラーが発生した通信に関しては、正常化された以降の通信において、例えば処理回路２４が所定時間内にデータを受信しなかったことを以ってエラーが発生したことを認識し、エラーメッセージをマイコン１１に送信することが可能である。そして、マイコン１１は、前回受信したデータが誤っていたことを認識できる。
【００２３】
図７は、２回目以降の通信時においてシリアルクロック信号ＳＣＬＫにパルスの挿入が生じた場合であり、受信データＤ１３に同期して出力されるべきクロック信号ＳＣＬＫのパルスが重複して２回出力されたとする（（ｂ），（ｃ））。すると、図５のケースと同様にデータカウンタ２２のカウント値がＦＨ→０Ｈに達した場合（ｅ）、受信レジスタ２３には受信データＤ１５〜Ｄ１（Ｄ１３が２ビット重複）ロードされる（ｊ）。この場合の処理回路２４における受信データの取扱いは、図５のケースと同様である。
【００２４】
また、送信データＳＯＵＴは、やはりＤ１３が２ビット重複したことによりＭＳＢのＤ１５がはじき出され、最下位ビットには無意味なデータ「×」が挿入される。但し、やはりタイマ２５が周期的に計時を行っているので、同期信号ＳＹＮＣＯが出力されて（ｆ）データカウンタ２２はゼロクリアされ（ｅ）、次回の通信は正常化される。この場合も図６のケースと同様に、エラーの発生を認識した処理回路２４がエラーメッセージをマイコン１１に送信すれば、マイコン１１は受信したデータの誤りを認識できる。
【００２５】
図８は、同期信号ＳＹＮＣＯの出力時点（立上がりエッジ）を基準として、マイコン１１によって出力されるシリアルクロック信号ＳＣＬＫ及びデータＳＩＮの出力タイミングが遅れた場合を示す。この場合、クロック信号ＳＣＬＫの出力タイミングが遅れたことで、データカウンタ２２のカウント値がＣＨになった後に（ｅ）タイマ２５のカウント値が「１」となり、同期信号ＳＹＮＣＯが出力されて（ｆ）データカウンタ２２はリセットされる（ｅ）。従って、受信ロード信号は出力されず（ｉ）、受信レジスタ２３の内容は前回の受信データのままとなる（ｊ）。
一方、送信データＳＯＵＴは、データ［ｎ］の送信途中で同期信号ＳＹＮＣＯが出力されるため（ｆ）、データ［ｎ］のＤ２〜Ｄ０に替わってデータ［ｎ＋１］のＤ１５〜Ｄ１３が送信されるが、その次からはタイマ２５の作用により同期信号ＳＹＮＣＯが出力されると、データカウンタ２２がリセットされて正常な通信が可能となる。
【００２６】
以上のように本実施例によれば、シリアル通信回路１２のデータカウンタ２２は、マイコン１１が出力するシリアル通信用クロック信号ＳＣＬＫのクロックパルス数をカウントし、そのカウント値が予め設定された受信データのビット数に一致すると受信ロード信号を出力する。また、タイマ２５は、受信ロード信号が最初に出力された後に計時動作を開始し、以降は周期的な計時動作を行なう。そして、タイマ２５の計時周期に基づいて、通信開始を指示する同期信号ＳＹＮＣＯをマイコン１１に出力すると共に、データカウンタ２２をゼロクリアし、マイコン１１に送信するデータを送信レジスタ２６にロードするようにした。
【００２７】
従って、シリアルクロック信号ＳＣＬＫにパルスの欠落や挿入があった場合は、タイマ２５の作用によりデータカウンタ２２をゼロクリアすることができる。また、マイコン１１側の処理状況などにより、同期信号ＳＹＮＣＯの出力に対してシリアルクロック信号ＳＣＬＫの出力タイミングが遅延した場合でも、タイマ２５の計時周期に基づいて送信データＳＯＵＴが送信レジスタ２６にロードされるので、シリアル通信回路１２は、次回以降に正常なデータをマイコン１１に送信することが可能となる。
【００２８】
また、マイコン１１は、Ａ／Ｄ変換装置１３に対するＡ／Ｄ変換指令をシリアル通信回路１２に送信し、シリアル通信回路１２は、Ａ／Ｄ変換指令を受信すると、その指令内容に応じた制御信号をＡ／Ｄ変換装置１３に出力する。そして、シリアル通信回路１２は、Ａ／Ｄ変換装置１３によってＡ／Ｄ変換されたデータをマイコン１１に送信する。
即ち、マイコン１１が車両のエンジンの状態を継続的に監視する必要があり、その監視に必要なＡ／Ｄ変換データが連続的にマイコン１１に送信され続ける状況下で、シリアル通信がノイズの影響などを受けてデータが正常に送受信できなくなった場合には、迅速に正常なデータを送受信できる状態に復帰させる必要がある。従って、本発明のシリアル通信回路１２を有効に適用することができる。
【００２９】
本発明は上記し又は図面に記載した実施例にのみ限定されるものではなく、以下のような変形が可能である。
送信データのビット数は適宜変更すれば良い。
通信レートやＡ／Ｄ変換時間も、個別の設計に応じて適宜変更すれば良い。
車両のエンジンを監視対象とするものに限らない。
マイコン１１は、Ａ／Ｄ変換装置１３を制御するものに限ることはない。
【図面の簡単な説明】
【００３０】
【図１】本発明の一実施例であり、シリアル通信回路の詳細構成を示す図
【図２】Ａ／Ｄ変換システムの構成を示す図
【図３】マイコンが起動して、最初にシリアル通信回路にデータを送信する場合のタイミングチャート
【図４】シリアルクロック信号ＳＣＬＫにパルスの欠落が生じた場合の図３相当図
【図５】シリアルクロック信号ＳＣＬＫにパルスの挿入が生じた場合の図３相当図
【図６】２回目以降の通信の途中においてシリアルクロック信号ＳＣＬＫにパルスの欠落が生じた場合のタイミングチャート
【図７】シリアルクロック信号ＳＣＬＫにパルスの挿入が生じた場合図６相当図
【図８】同期信号ＳＹＮＣＯの出力時点を基準として、シリアルクロック信号ＳＣＬＫ及びデータの出力タイミングが遅れた場合を示すタイミングチャート
【図９】従来技術を示す図１相当図
【符号の説明】
【００３１】
図面中、１１はマイクロコンピュータ、１２はシリアル通信回路、１３はＡ／Ｄ変換装置、１４はマルチプレクサ、２２はデータカウンタ、２３は受信レジスタ、２５はタイマ、２６は送信レジスタを示す。
【図１】
0004508072.tif 000002
【図２】
0004508072.tif 000003
【図３】
0004508072.tif 000004
【図４】
0004508072.tif 000005
【図５】
0004508072.tif 000006
【図６】
0004508072.tif 000007
【図７】
0004508072.tif 000008
【図８】
0004508072.tif 000009
【図９】
0004508072.tif 000010