(57)【特許請求の範囲】
【請求項１】
データを転送するためのシリアルデータラインおよび前記データを保持するクロック信号を転送するためのシリアルクロックラインを介して接続される少なくとも１つのマスタデバイスと、複数のスレーブデバイスと、論理手段とを有し、
ノーマルモードにおいて、前記マスタデバイスの１つから前記シリアルデータラインを介して前記スレーブデバイスの１つを指定する固有アドレスが転送され、当該固有アドレスを有するスレーブデバイスが第１の端子より前記シリアルデータラインにアクノリッジ信号を出力し、
ローカルモードにおいて、前記マスタデバイスの１つから前記シリアルデータラインを介して指定しようとする任意個数の前記スレーブデバイスの固有アドレスを順次転送し、当該指定された固有アドレスを有する任意個数のスレーブデバイスが前記第１の端子よりアクノリッジ信号を順次前記シリアルデータラインに出力し、前記指定された固有アドレスを有する任意個数のスレーブデバイスが前記マスタデバイスから同じデータを同時に受信したときには、前記第１の端子とは異なる第２の端子よりアクノリッジ信号を前記論理手段に各々出力し、当該論理手段は、前記指定された固有アドレスを有する任意個数のスレーブデバイスから各々出力される前記アクノリッジ信号の論理をとって前記シリアルデータラインに出力することを特徴とするシリアルデータ転送装置。
【請求項２】
前記論理手段は、前記複数のスレーブデバイスの前記第２の端子に入力端子が接続されたＯＲゲートであることを特徴とする請求項１に記載のシリアルデータ転送装置。
【請求項３】
データを転送するためのシリアルデータラインおよび前記データを保持するクロック信号を転送するためのシリアルクロックラインを介して少なくとも１つのマスタデバイスと接続されるスレーブデバイスであって、
前記マスタデバイスとの間で前記シリアルデータラインを介してデータを送受信する手段と、
前記マスタデバイスから前記シリアルデータラインを介して転送されるアドレス情報と当該スレーブデバイスに独自の固有アドレスとを比較する手段と、
前記データの転送モードが前記マスタデバイスとの間で１対１にデータの送受信を行うノーマルモードなのか、前記マスタデバイスから任意個数のスレーブデバイスに対して同じデータを同時に送信するローカルモードなのかを検出する手段と、
前記ノーマルモードが指定された場合、前記マスタデバイスからデータを受信したときに、第１の端子からアクノリッジ信号を出力する手段と、
前記ローカルモードが指定された場合、前記マスタデバイスからデータを受信したときに、前記第１の端子とは異なる第２の端子からアクノリッジ信号を出力する手段とを有することを特徴とするスレーブデバイス。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マスタデバイスとスレーブデバイスとの間でシリアルにデータの転送を行うシリアルデータ転送装置に関するものである。
【０００２】
【従来の技術】
例えば、マイクロコントローラとその周辺デバイスとの間では、８ビット（１バイト）のデータを１つの単位としてデータのやり取りが行われている。シリアルデータ転送装置は、例えばＩＩＣ（Ｉ2   Ｃ）−ｂｕｓ（Inter-IC Controlバス）（以下、単にＩＩＣバスという）に代表されるように、８ビットのデータを単位としてデータのやり取りを行うマスタデバイスと複数のスレーブデバイスとの間でシリアルにデータの転送を行うものである。
【０００３】
前述のＩＩＣバスを適用するシリアルデータ転送装置では、例えばマイクロコントローラ等の制御する側のマスタデバイスと、周辺機器等の制御される側の複数のスレーブデバイスとの間は、データを転送するためのシリアルデータライン（ＳＤＡ）と、データを保持するクロック信号を転送するためのシリアルクロックライン（ＳＣＬ）という、プルアップ抵抗により電源に接続された２つの双方向のシリアルラインで相互に接続されている。
【０００４】
ここで、シリアルデータラインは、基本的に、シリアルクロックラインがローレベルの期間に変化する。シリアルクロックラインがハイレベルの間に、シリアルデータラインがハイレベルからローレベルに変化すると、データの転送開始を指示するスタート信号（ＳＴＡＲＴ）であることを意味し、ローレベルからハイレベルに変化すると、データの転送終了を指示するストップ信号（ＳＴＯＰ）であることを意味する。
【０００５】
マスタデバイスは、まず、１ビットのスタート信号をシリアルデータライン上に出力する。続いて、各々のスレーブデバイスにあらかじめ独自に割り当てられている７ビットの固有アドレスと、これに続くスレーブデバイスへのデータライトまたはスレーブデバイスからのデータリードを指示する１ビットのデータ制御信号とからなる８ビットのパラレルデータを、シリアルデータライン上にＭＳＢ（Most Significant Bit）側から順次シリアルに出力する。
【０００６】
各々のスレーブデバイスでは、マスタデバイスからシリアルデータライン上に出力される８ビットのパラレルデータを、シリアルクロックラインから供給されるクロック信号に同期して順次シリアルに受信し、これを自分自身にあらかじめ割り当てられている固有アドレスと比較する。そして、自分自身の固有アドレスに一致するスレーブデバイスが、シリアルデータライン上に１ビットのアクノリッジ信号（肯定応答信号）を出力する。
【０００７】
マスタデバイスは、スレーブデバイスからシリアルデータライン上に出力されたアクノリッジ信号を確認した後、スレーブデバイスへのデータライトの場合、転送すべき８ビットのパラレルデータをシリアルデータライン上に順次シリアルに出力する。アクノリッジ信号を出力したスレーブデバイスは、シリアルデータライン上にマスタデバイスから出力される８ビットのパラレルデータを順次シリアルに受信し、その後、同じく１ビットのアクノリッジ信号を出力する。
【０００８】
マスタデバイスからスレーブデバイスに対しては、必要に応じて所定バイト数のデータが転送される。その後、マスタデバイスは、１ビットのストップ信号をシリアルデータライン上に出力し、スレーブデバイスは、このストップ信号を受け取ってデータの送信終了を確認する。以後同じようにして、マスタデバイスは、所望の固有アドレスを出力して、次にデータを転送すべきスレーブデバイスを順次指定してデータを転送することを繰り返し行う。
【０００９】
ＩＩＣバスを適用するシリアルデータ転送装置では、データを転送すべき複数のスレーブデバイスを順次アクセスする必要がある。したがって、複数の同じスレーブデバイスに対して、例えばスタート、ストップ、アボート等のスレーブデバイスに接続される複数の同じ装置を制御するための同じ制御信号等を含むデータを転送する場合であっても、複数のスレーブデバイスを同時にアクセスすることができないという問題がある。
【００１０】
これを解決するために、従来のシリアルデータ転送装置では、マスタデバイスから、複数のスレーブデバイスに各々接続されている装置に制御信号を直接接続して同時に制御したり、あるいは、同時に制御することが無理な場合は、シリアルクロックラインから供給されるクロック信号の周波数を高くして、複数のスレーブデバイスにデータを転送したり、制御する時間差を小さくするなどの手法がとられている。
【００１１】
しかし、制御信号をスレーブデバイスに接続されている装置に対してマスタデバイスから直接接続すると、シリアルデータラインやシリアルクロックラインの他にライン数が増大して、シリアルデータ転送のメリットが減少するし、クロック信号の周波数を高くしたとしても、同じデータを各々のスレーブデバイスに繰り返し転送するため、スレーブデバイスの数が多くなるほど長時間が必要になり、無駄が多くなるという問題点がある。
【００１２】
【発明が解決しようとする課題】
本発明の目的は、前記従来技術に基づく問題点をかえりみて、マスタデバイスから任意の個数のスレーブデバイスに対して同じデータを同時に転送することができるシリアルデータ転送装置を提供することにある。
【００１３】
【課題を解決するための手段】
上記目的を達成するために、本発明は、データを転送するためのシリアルデータラインおよび前記データを保持するクロック信号を転送するためのシリアルクロックラインを介して接続される少なくとも１つのマスタデバイスと、複数のスレーブデバイスと、論理手段とを有し、
ノーマルモードにおいて、前記マスタデバイスの１つから前記シリアルデータラインを介して前記スレーブデバイスの１つを指定する固有アドレスが転送され、当該固有アドレスを有するスレーブデバイスが第１の端子より前記シリアルデータラインにアクノリッジ信号を出力し、
ローカルモードにおいて、前記マスタデバイスの１つから前記シリアルデータラインを介して指定しようとする任意個数の前記スレーブデバイスの固有アドレスを順次転送し、当該指定された固有アドレスを有する任意個数のスレーブデバイスが前記第１の端子よりアクノリッジ信号を順次前記シリアルデータラインに出力し、前記指定された固有アドレスを有する任意個数のスレーブデバイスが前記マスタデバイスから同じデータを同時に受信したときには、前記第１の端子とは異なる第２の端子よりアクノリッジ信号を前記論理手段に各々出力し、当該論理手段は、前記指定された固有アドレスを有する任意個数のスレーブデバイスから各々出力される前記アクノリッジ信号の論理をとって前記シリアルデータラインに出力することを特徴とするシリアルデータ転送装置を提供するものである。
ここで、前記論理手段は、前記複数のスレーブデバイスの前記第２の端子に入力端子が接続されたＯＲゲートであるのが好ましい。
また、本発明は、データを転送するためのシリアルデータラインおよび前記データを保持するクロック信号を転送するためのシリアルクロックラインを介して少なくとも１つのマスタデバイスと接続されるスレーブデバイスであって、
前記マスタデバイスとの間で前記シリアルデータラインを介してデータを送受信する手段と、
前記マスタデバイスから前記シリアルデータラインを介して転送されるアドレス情報と当該スレーブデバイスに独自の固有アドレスとを比較する手段と、
前記データの転送モードが前記マスタデバイスとの間で１対１にデータの送受信を行うノーマルモードなのか、前記マスタデバイスから任意個数のスレーブデバイスに対して同じデータを同時に送信するローカルモードなのかを検出する手段と、
前記ノーマルモードが指定された場合、前記マスタデバイスからデータを受信したときに、第１の端子からアクノリッジ信号を出力する手段と、
前記ローカルモードが指定された場合、前記マスタデバイスからデータを受信したときに、前記第１の端子とは異なる第２の端子からアクノリッジ信号を出力する手段とを有することを特徴とするスレーブデバイスを提供する。
【００１４】
【発明の実施の形態】
以下に、添付の図面に示す好適実施例に基づいて、本発明のシリアルデータ転送装置を詳細に説明する。
【００１５】
図１は、本発明のシリアルデータ転送装置の一実施例のシステム構成図である。同図に示すシリアルデータ転送装置１０は、マスタデバイス（ＭＡＳＴＥＲ）１２と、本発明を適用するスレーブデバイス（Ｓｌａｖｅ１〜３）１４およびＯＲゲート１６と、従来構成のスレーブデバイス（Ｓｌａｖｅ）１８と、プルアップ抵抗１９，２０と、シリアルデータラインＳＤＡおよびシリアルクロックラインＳＣＬとを有する。
【００１６】
ここで、シリアルデータラインＳＤＡはデータ（制御信号を含む）を転送するためのライン、シリアルクロックラインＳＣＬは、データを保持するクロック信号を供給するためのラインであって、それぞれプルアップ抵抗１９および２０を介して電源ＶＤＤに接続されている。マスタデバイス１２はスレーブデバイス１４を制御する側のデバイスで、そのＳＣＬ端子およびＳＤＡ端子は、各々シリアルクロックラインＳＣＬおよびシリアルデータラインに接続されている。
【００１７】
続いて、スレーブデバイス１４は、マスタデバイス１２により制御される側のデバイスであって、そのＳＣＬ端子およびＳＤＡ１端子は、各々シリアルクロックラインＳＣＬおよびシリアルデータラインＳＤＡに接続され、そのＳＤＡ２端子はいずれもＯＲゲート１６に入力されている。また、ＯＲゲート１６の出力は、オープンドレインまたはオープンコレクタの出力であって、シリアルデータラインＳＤＡに接続されている。
【００１８】
同じく、スレーブデバイス１８は、マスタデバイス１２により制御される側のデバイスで、そのＳＣＬ端子およびＳＤＡ端子は、各々シリアルクロックラインＳＣＬおよびシリアルデータラインに接続されている。なお、スレーブデバイス１４およびＯＲゲート１６を除く、マスタデバイス１２、スレーブデバイス１８、プルアップ抵抗１９，２０、シリアルデータラインＳＤＡおよびシリアルクロックラインＳＣＬは従来公知の構成のものである。
【００１９】
本発明のシリアルデータ転送装置１０では、シリアルデータラインＳＤＡおよびシリアルクロックラインＳＣＬを介して、マスタデバイス１２と複数のスレーブデバイス１４，１８との間でシリアルにデータの転送が行われる。詳細は後述するが、ＩＩＣバス規格に準拠してマスタデバイス１２とスレーブデバイス１４，１８との間で１対１にデータを転送する他、マスタデバイス１２から任意の個数のスレーブデバイス１４に対して同じデータを同時に送信することもできる。
【００２０】
続いて、図２に、マスタデバイスの一実施例の構成概略図を示す。
同図に概念的に示すように、マスタデバイス１２は、マイクロコントローラ（ＣＰＵ）２２と、シリアルクロックラインＳＣＬを駆動するオープンドレインタイプのＮ型ＭＯＳトランジスタ（以下、ＮＭＯＳという）からなる出力バッファ２４、および、シリアルデータラインＳＤＡを駆動するオープンドレインタイプのＮＭＯＳからなる入出力バッファ２６とを有する。
【００２１】
マスタデバイス１２では、マイクロコントローラ２２が、あらかじめ設計されているプログラムに応じて全体の動作を制御する。そして、出力バッファ２４により、シリアルクロックラインＳＣＬ上にクロック信号を出力したり、入出力バッファ２６により、転送すべきデータをシリアルデータラインＳＤＡ上に出力する、あるいは、シリアルデータラインＳＤＡ上に出力されている受信すべきデータを、入力バッファ２８を介して取り込む。
【００２２】
続いて、図３に、スレーブデバイスの一実施例のブロック構成図を示す。
スレーブデバイス１４は本発明に特有の回路構成を有するもので、同図に示すように、フィルタ３０と、バスコントロール回路３２と、Ｓ／Ｐ（シリアル／パラレル）変換回路３４と、Ｐ／Ｓ（パラレル／シリアル）変換回路３６と、出力レジスタ４０（ＯＵＴＲＥＧ）と、Ｉ／Ｏ（入力／出力）ポート４２と、入出力（の出力部）バッファ４４とを有する。
【００２３】
スレーブデバイス１４において、まず、フィルタ３０には、シリアルクロックライン上に出力されるシリアルクロック信号ＳＣＬ、および、シリアルデータライン上に出力されるシリアルデータ信号ＳＤＡ１が入力される。これらの信号ＳＣＬおよびＳＤＡ１はフィルタ３０によってノイズを除去され、それぞれシリアルクロック入力信号ＳＣＬＩＮおよびシリアルデータ入力信号ＳＤＡＩＮとしてフィルタ３０から出力される。
【００２４】
フィルタ３０から出力されるシリアルクロック入力信号ＳＣＬＩＮおよびシリアルデータ入力信号ＳＤＡＩＮは、バスコントロール回路３２に入力される。この他、バスコントロール回路３２には、リセット信号ＲＳＴＬ、固有アドレス信号Ａ０〜２、Ｓ／Ｐ変換回路３４から出力されるパラレルデータ、および、Ｐ／Ｓ変換回路３６から出力されるシリアルデータが入力される。
【００２５】
ここで、リセット信号ＲＳＴＬは、このスレーブデバイス１４をリセットして初期化するもので、例えばローレベルの時に、スレーブデバイス１４はリセットされる。本発明のシリアルデータ転送装置１０では、マスタデバイス１２からスレーブデバイス１４，１８に対して、所望のスレーブデバイス１４，１８を指定するために、例えば７ビットの固有アドレスが送信される。固有アドレス信号Ａ０〜２は、各々のスレーブデバイス１４に独自の固有アドレスを設定するための信号である。
【００２６】
バスコントロール回路３２は、このスレーブデバイス１４全体の動作を制御する。バスコントロール回路３２からは、フィルタ３０から入力されるシリアルデータ入力信号ＳＤＡＩＮをシリアルクロック入力信号ＳＣＬＩＮで順次保持して得られるシリアルデータの他、ライトクロック信号ＷＣＬＫ、Ｉ／Ｏコントロール信号Ｉ／ＯＣＯＮＴ、シリアルデータ出力ＳＤＡＯＵＴ、および、シリアルデータ出力ＳＤＡ２が出力される。
【００２７】
ここで、ライトクロック信号ＷＣＬＫは、Ｓ／Ｐ変換回路３４から出力されるＳ／Ｐ変換後のパラレルデータを出力レジスタ４０に保持するためのクロック信号である。
【００２８】
本発明のシリアルデータ転送装置１０では、固有アドレスに続き、スレーブデバイスへのデータライト、または、スレーブデバイスからのデータリードを指示する１ビットのデータ制御信号が送信される。Ｉ／Ｏコントロール信号Ｉ／ＯＣＯＮＴは、このデータ制御信号の状態に応じて、スレーブデバイス１４と、このスレーブデバイス１４に接続される装置（以下、接続装置という）との間で、パラレルデータの入出力方向を切り替えるための信号である。
【００２９】
データ制御信号がローレベルの時には、マスタデバイス１２からスレーブデバイス１４，１８へのデータライトを意味し、マスタデバイス１２からスレーブデバイス１４，１８を介して接続装置にデータが送信される。一方、データ制御信号がハイレベルの時には、スレーブデバイス１４，１８からマスタデバイス１２へのデータリードを意味し、接続装置側からスレーブデバイス１４，１８を介してマスタデバイス１２にデータが受信される。
【００３０】
続いて、図４に、バスコントロール回路の一実施例のブロック構成図を示す。バスコントロール回路３２は、デバイスアドレス検出回路５０と、ＷＣＬＫ生成回路５４と、スタート信号／ストップ信号／モード検出回路５６と、データ制御信号検出回路５８と、ＳＣＬカウンタ６０と、ＳＤＡ１およびＳＤＡ２コントローラ６２および６４と、シリアルデータ保持回路６６と、コントローラ６８とを有する。
【００３１】
まず、コントローラ６８は、このバスコントロール回路３２全体の動作を制御するものである。コントローラ６８から出力される各種の制御信号は、スタート信号／ストップ信号／モード検出回路５６を除く、他のデバイスアドレス検出回路５０、ＷＣＬＫ生成回路５４、データ制御信号検出回路５８、ＳＣＬカウンタ６０、ＳＤＡ１およびＳＤＡ２コントローラ６２および６４、ならびに、シリアルデータ保持回路６６に供給される。
【００３２】
続いて、スタート信号／ストップ信号／モード検出回路５６には、シリアルクロック入力信号ＳＣＬＩＮおよびシリアルデータ入力信号ＳＤＡＩＮが入力される。スタート信号／ストップ信号／モード検出回路５６は、データの転送開始を指示するスタート信号（ＳＴＡＲＴ）、データの転送終了を指示するストップ信号（ＳＴＯＰ）の他、後述する転送モードを検出する。スタート信号／ストップ信号／モード検出回路５６による検出結果はコントローラ６８に入力される。
【００３３】
本発明のシリアルデータ転送装置１０では、基本的に、シリアルデータ入力信号ＳＤＡＩＮは、シリアルクロック入力信号ＳＣＬＩＮがローレベルの間に変化する。スタート信号／ストップ信号／モード検出回路５６は、シリアルクロック入力信号ＳＣＬＩＮがハイレベルの間に、シリアルデータ入力信号ＳＤＡＩＮのハイレベルからローレベルへの変化を見てスタート信号を検出し、ローレベルからハイレベルへの変化を見てストップ信号を検出する。
【００３４】
また、スタート信号／ストップ信号／モード検出回路５６は、シリアルクロック入力信号ＳＣＬＩＮがハイレベルの間に、シリアルデータ入力信号ＳＤＡＩＮがハイレベルからローレベルに何回変化するかを検出して、転送モードが、ＩＩＣバス規格との互換性のあるノーマルモードなのか、それとも、本発明の提案するローカルモードなのかを検出する。ローカルモードでは、まず、任意の個数のスレーブデバイス１４を指定し、その後、指定した任意の個数のスレーブデバイス１４に対して同じデータを同時に送信することが可能である。
【００３５】
ここで、図５に、スタート信号検出回路の一実施例の構成回路図を示す。
同図に示すように、スタート信号検出回路７０は、フリップフロップ７２，７４と、ＡＮＤゲート７６，７８とを有する。ＡＮＤゲート７６，７８の一方の端子にはともにリセット信号ＲＳＴＬが入力され、その出力は、それぞれフリップフロップ７２，７４のＣＬＲ端子に入力されている。
【００３６】
フリップフロップ７２の１Ｄ端子にはシリアルクロック信号ＳＣＬが入力され、その反転クロック端子にはシリアルデータ信号ＳＤＡが入力されている。また、フリップフロップ７２の１Ｑ端子からの出力信号はＡＮＤゲート７８の他方の端子に入力され、その１Ｑ端子からはスタート検出信号ＳＴＡＲＴＬが出力されている。同じように、フリップフロップ７４の反転２Ｄ端子にはシリアルデータ信号ＳＤＡが入力され、その反転クロック端子にはシリアルクロック信号ＳＣＬが入力されている。また、フリップフロップ７４の２Ｑ￣端子からの出力信号はＡＮＤゲート７６の他方の端子に入力されている。
【００３７】
スタート信号検出回路７０では、リセット信号ＲＳＴＬがローレベルとされると、フリップフロップ７２，７４はともにクリアされ、フリップフロップ７２の１Ｑ端子からの出力信号はローレベル、１Ｑ￣端子からの出力信号すなわちスタート検出信号ＳＴＡＲＴＬはハイレベルとなり、フリップフロップ７４の２Ｑ￣端子からの出力信号もハイレベルとなる。本実施例では、スタート検出信号ＳＴＡＲＴＬは、ローレベルの時にスタート信号を検出したことを意味する。
【００３８】
リセット信号ＲＳＴＬがハイレベルとされた後、図６のタイミングチャートに示すように、シリアルクロック信号ＳＣＬがハイレベルの期間に、シリアルデータ信号ＳＤＡがハイレベルからローレベルに変化すると、シリアルクロック信号ＳＣＬのハイレベルが、シリアルデータ信号ＳＤＡの立ち下りに同期してフリップフロップ７２に保持される。この時、フリップフロップ７２の１Ｑ端子からの出力信号はハイレベル、スタート検出信号ＳＴＡＲＴＬはローレベルとなる。
【００３９】
フリップフロップ７２の１Ｑ端子からの出力信号がハイレベルになると、フリップフロップ７４のクリアが解除される。その後、シリアルクロック信号ＳＣＬの立ち下りで、シリアルデータ信号ＳＤＡの反転信号であるハイレベルがフリップフロップ７４に保持され、フリップフロップ７４の２Ｑ￣端子からの出力信号はローレベルとなる。続いて、ＡＮＤゲート７６を介してフリップフロップ７２がクリアされ、その１Ｑ端子からの出力信号はローレベル、スタート検出信号ＳＴＡＲＴＬはハイレベルとなる。さらに、ＡＮＤゲート７８を介してフリップフロップ７４はクリアされ、リセット後の初期状態となる。
【００４０】
図示例のスタート信号検出回路７０では、シリアルクロック信号ＳＣＬがハイレベルの期間に、シリアルデータ信号ＳＤＡがハイレベルからローレベルに変化したことを検出して、スタート検出信号ＳＴＡＲＴＬが、シリアルデータ信号ＳＤＡの立ち下りからシリアルクロック信号ＳＣＬの立ち下りまでの間ローレベルとなる。
【００４１】
続いて、図７に、ストップ信号検出回路の一実施例の構成回路図を示す。
同図に示すストップ信号検出回路８０は、フリップフロップ８２，８４と、ＡＮＤゲート８６，８８とを有する。ＡＮＤゲート８６，８８の一方の端子にはともにリセット信号ＲＳＴＬが入力され、その出力は、それぞれフリップフロップ８２，８４のＣＬＲ端子に入力されている。
【００４２】
フリップフロップ８２の１Ｄ端子にはシリアルクロック信号ＳＣＬが入力され、そのクロック端子にはシリアルデータ信号ＳＤＡが入力されている。また、フリップフロップ８２の１Ｑ端子からの出力信号はＡＮＤゲート７８の他方の端子に入力され、その１Ｑ￣端子からはストップ検出信号ＳＴＯＰＬが出力されている。フリップフロップ８４の２Ｄ端子にはシリアルクロック信号ＳＣＬが入力され、その反転クロック端子にはシリアルデータ信号ＳＤＡが入力されている。また、フリップフロップ８４の２Ｑ￣端子からの出力信号はＡＮＤゲート７６の他方の端子に入力されている。そして、フリップフロップ８２，８４のイネーブル端子Ｅにはともにスタート検出信号ＳＴＡＲＴＬが入力されている。
【００４３】
ストップ検出回路８０では、リセット信号ＲＳＴＬがローレベルとされると、フリップフロップ８２，８４がともにクリアされ、フリップフロップ８２の１Ｑ端子からの出力信号はローレベル、１Ｑ￣端子からの出力信号すなわちストップ検出信号ＳＴＯＰＬはハイレベルとなり、フリップフロップ８４の２Ｑ￣端子からの出力信号もハイレベルとなる。本実施例では、ストップ検出信号ＳＴＯＰＬは、ローレベルの時にストップ信号を検出したことを意味する。
【００４４】
リセット信号ＲＳＴＬがハイレベルとされた後、図８のタイミングチャートに示すように、シリアルクロック信号ＳＣＬがハイレベルの期間に、シリアルデータ信号ＳＤＡがローレベルからハイレベルに変化すると、シリアルクロック信号ＳＣＬのハイレベルが、シリアルデータ信号ＳＤＡの立ち上がりに同期してフリップフロップ８２に保持される。この時、フリップフロップ８２の１Ｑ端子からの出力信号はハイレベル、ストップ検出信号ＳＴＯＰＬはローレベルとなる。
【００４５】
フリップフロップ８２の１Ｑ端子からの出力信号がハイレベルになると、フリップフロップ８４のクリアが解除される。その後、シリアルデータ信号ＳＤＡの立ち下りで、シリアルクロック信号ＳＣＬのハイレベルがフリップフロップ８４に保持され、フリップフロップ８４の２Ｑ￣端子からの出力信号はローレベルとなる。続いて、ＡＮＤゲート８６を介してフリップフロップ８２はクリアされ、その１Ｑ端子からの出力信号はローレベル、ストップ検出信号ＳＴＯＰはハイレベルとなる。さらに、ＡＮＤゲート８８を介してフリップフロップ８４はクリアされ、リセット後の初期状態となる。
【００４６】
なお、シリアルデータ信号ＳＤＡの立ち下りにより、先に述べたスタート検出信号ＳＴＡＲＴＬがローレベルとなり、これ以後、シリアルクロック信号ＳＣＬが立ち下り、スタート検出信号ＳＴＡＲＴＬがハイレベルとなるまで、フリップフロップ８２，８４の状態、すなわち、ストップ検出信号ＳＴＯＰＬの状態も変化しない。
【００４７】
図示例のストップ信号検出回路８０では、シリアルクロック信号ＳＣＬがハイレベルの期間に、シリアルデータ信号ＳＤＡがローレベルからハイレベルに変化したことを検出して、ストップ検出信号ＳＴＯＰＬが、シリアルデータ信号ＳＤＡの立ち下りから、その次の立ち下りまでの間ローレベルとなる。
【００４８】
続いて、図９に、モード検出回路の一実施例の構成回路図を示す。
同図に示すモード検出回路９０は、フリップフロップ９２と、フリップフロップ９４，９６，９８と、ＡＮＤゲート１００と、ＮＡＮＤゲート１０２，１０４，１０６と、ＯＲゲート１０８と、フリップフロップ１１０とを有する。
【００４９】
フリップフロップ９２のＤ端子にはスタート検出信号ＳＴＡＲＴＬが入力され、その反転クロック端子にはシリアルクロック信号ＳＣＬが入力され、そのＰＲ端子にはリセット信号ＲＳＴＬが入力されている。また、フリップフロップ９２のＱ端子からの出力信号はＡＮＤゲート１００の一方の端子に入力されている。ＡＮＤゲート１００の他方の端子にはリセット信号ＲＳＴＬが入力され、その出力はフリップフロップ９４，９６，９８のＣＬＲ端子に入力されている。
【００５０】
フリップフロップ９４，９６，９８のＤ端子には、それぞれ電源、フリップフロップ９４，９６のＱ１端子およびＱ２端子からの出力信号Ｑ１およびＱ２が入力されている。また、フリップフロップ９４，９６，９８の反転クロック端子にはともにシリアルデータ信号ＳＤＡが入力され、そのイネーブル端子Ｅにはともにシリアルクロック信号ＳＣＬが入力されている。また、フリップフロップ９４，９６，９８のＱ１端子、Ｑ２端子、Ｑ３端子からの出力信号Ｑ１，Ｑ２，Ｑ３はＮＡＮＤゲート１０２，１０４，１０６に各々入力されている。
【００５１】
ＮＡＮＤゲート１０２，１０４，１０６の出力は各々フリップフロップ１１０に入力され、フリップフロップ１１０からは、これらに各々対応してノーマル信号ＮｏｒｍａｌＬ、モード１信号Ｍｏｄｅ１Ｌおよびモード２信号Ｍｏｄｅ２Ｌが出力されている。また、ＯＲゲート１０８には、シリアルクロック信号ＳＣＬおよびスタート検出信号ＳＴＡＲＴＬが入力され、その出力はフリップフロップ１１０の反転クロック端子に入力されている。
【００５２】
図示例のモード検出回路９０では、図１０のタイミングチャートに示すように、リセット信号ＲＳＴＬがローレベルとされると、フリップフロップ９２はプリセットされて、そのＱ端子からの出力信号はハイレベルとなり、フリップフロップ９４，９６，９８はともにクリアされて、そのＱ１，Ｑ２，Ｑ３端子からの出力信号Ｑ１，Ｑ２，Ｑ３は全てローレベルとなる。
【００５３】
リセット信号ＲＳＴＬがハイレベルとされると、フリップフロップ９４，９６，９８のクリアは解除される。その後、シリアルクロック信号ＳＣＬがハイレベルの期間に、シリアルデータ信号ＳＤＡがハイレベルからローレベルに変化すると、前述のスタート信号検出回路７０によりスタート信号が検出されて、スタート検出信号ＳＴＡＲＴＬがローレベルとなるとともに、フリップフロップ９４のＱ１端子からの出力信号Ｑ１がハイレベルとなる。
【００５４】
その後、図１０のタイミングチャートに示すように、シリアルクロック信号ＳＣＬがハイレベルの期間に、例えばシリアルデータ信号ＳＤＡが連続して２回立ち下ると、フリップフロップ９４，９６からの出力信号Ｑ１，Ｑ２がハイレベルとなる。また、シリアルデータ信号ＳＤＡが連続して３回立ち下ると、フリップフロップ９４，９６，９８からの出力信号Ｑ１，Ｑ２，Ｑ３が全てハイレベルとなる。
【００５５】
これらの出力信号Ｑ１，Ｑ２，Ｑ３はＮＡＮＤゲート１０２，１０４，１０６にそれぞれ入力される。そして、出力信号Ｑ１がハイレベルで、かつ、出力信号Ｑ２およおびＱ３がローレベルである時、すなわち、シリアルクロック信号ＳＣＬがハイレベルの間に、シリアルデータ信号ＳＤＡが１回だけ立ち下った場合に、ＮＡＮＤゲート１０２からローレベルが出力され、ＮＡＮＤゲート１０４，１０６からはハイレベルが出力される。
【００５６】
同じく、出力信号Ｑ１およびＱ２がハイレベルで、かつ、出力信号Ｑ３がローレベルである時には、すなわち、シリアルデータ信号ＳＤＡが２回立ち下った場合には、ＮＡＮＤゲート１０４からローレベルが出力され、ＮＡＮＤゲート１０２，１０６からはハイレベルが出力される。また、出力信号Ｑ１，Ｑ２およびＱ３の全てがハイレベルの時には、すなわち、シリアルデータ端子ＳＤＡが３回立ち下った場合には、ＮＡＮＤゲート１０６の出力信号がローレベルとなり、ＮＡＮＤゲート１０２，１０４の出力信号はハイレベルとなる。
【００５７】
その後、スタート信号ＳＴＡＲＴＬがローレベルの期間に、シリアルクロック信号ＳＣＬの立ち下りでＮＡＮＤゲート１０２，１０４，１０６からの出力信号がフリップフロップ１１０に保持され、各々ノーマル信号ＮｏｒｍａｌＬ、モード１信号Ｍｏｄｅ１Ｌおよびモード２信号Ｍｏｄｅ２Ｌとして出力される。
【００５８】
本実施例では、ノーマル信号ＮｏｒｍａｌＬがローレベルとなった場合がノーマルモードであり、モード１信号Ｍｏｄｅ１Ｌまたはモード２信号Ｍｏｄｅ２Ｌがローレベルとなった場合がローカルモードであることを意味する。また、モード１信号Ｍｏｄｅ１Ｌがローレベルの場合が、任意の個数のスレーブデバイス１４を指定するモード１であり、モード２信号Ｍｏｄｅ２Ｌがローレベルの場合が、マスタデバイス１２から、指定した複数個のスレーブデバイス１４に対して同じデータを送信するモード２である。
【００５９】
前述のシリアルクロック信号ＳＣＬの立ち下りで、フリップフロップ９２にスタート検出信号ＳＴＡＲＴＬのローレベルが保持され、フリップフロップ９４，９６，９８の出力信号Ｑ１，Ｑ２，Ｑ３が初期化されて全てローレベルとなる。その後、スタート信号検出回路７０の制御によってスタート検出信号ＳＴＡＲＴＬがハイレベルとなり、これが次のシリアルクロック信号ＳＣＬの立ち下りでフリップフロップ９２に保持されて、モード検出回路９０は初期状態に戻る。
【００６０】
図示例のモード信号検出回路９０では、シリアルクロック信号ＳＣＬがハイレベルの期間に、シリアルデータ信号ＳＤＡが何回ハイレベルからローレベルに変化したのかを検出して、ノーマル信号ＮｏｒｍａｌＬ、モード１信号Ｍｏｄｅ１Ｌおよびモード２信号Ｍｏｄｅ２Ｌのいずれかがローレベルとなる。
【００６１】
続いて、デバイスアドレス検出回路５０には、シリアルクロック信号ＳＣＬ、固有アドレス信号Ａ０〜２、および、Ｓ／Ｐ変換回路３４から供給されるパラレルデータ（Ｓ／Ｐ変換出力）が入力される。デバイスアドレス検出回路５０は、Ｓ／Ｐ変換出力（固有アドレス）と各々のスレーブデバイス１４にあらかじめ設定されている固有アドレス信号Ａ０〜２とを比較する。デバイスアドレス検出回路５０の比較結果はコントローラ６８に入力される。
【００６２】
ＷＣＬＫ生成回路５４は、コントローラ６８の制御により、データ制御信号によってマスタデバイス１２からスレーブデバイス１４へのデータライトが指定されている場合、前述のライトクロック信号ＷＣＬＫを生成する。
【００６３】
続いて、データ制御信号検出回路５８には、シリアルデータ入力信号ＳＤＡＩＮが入力される。データ制御信号検出回路５８はデータ制御信号を検出し、マスタデバイス１２からスレーブデバイス１４，１８へのデータライトであるのか、スレーブデバイス１４，１８からマスタデバイス１２へのデータリードであるのかを判断して、Ｉ／Ｏコントロール信号Ｉ／ＯＣＯＮＴを発生する。データのライト／リードの識別結果はコントローラ６８にも入力される。
【００６４】
ＳＣＬカウンタ６０には、シリアルクロック入力信号ＳＣＬＩＮおよびシリアルデータ入力信号ＳＤＡＩＮが入力される。データの送受信は、例えば８ビット（１バイト）を１つの単位として転送される。このため、ＳＣＬカウンタ６０は、スタート信号を基準として、シリアルクロック入力信号ＳＣＬＩＮをカウントすることにより、データの送信および受信のタイミングを調整する。ＳＣＬカウンタ６０によるカウント結果はコントローラ６８に入力される。
【００６５】
同じく、シリアルデータ保持回路６６にも、シリアルクロック入力信号ＳＣＬＩＮおよびシリアルデータ入力信号ＳＤＡＩＮが入力される。シリアルデータ保持回路６６は、シリアルクロック入力信号ＳＣＬＩＮに同期して、シリアルデータ入力信号ＳＤＡＩＮを順次保持する。シリアルデータ保持回路６６に保持されたシリアルデータは、図３に示すように、Ｓ／Ｐ変換回路３４に対して順次出力される。
【００６６】
ＳＤＡ１コントローラ６２には、Ｐ／Ｓ変換回路３６から供給されるシリアルデータ（Ｐ／Ｓ変換出力）が入力される。ＳＤＡ１コントローラ６２は、Ｐ／Ｓ変換回路３６からＰ／Ｓ変換出力を受け取り、これをシリアルデータ出力信号ＳＤＡＯＵＴとして入出力バッファ４４に対して出力する。また、ＳＤＡ２コントローラ６４は、ローカルモードである場合に、コントローラ６８の制御により適時アクノリッジ信号を出力する。
【００６７】
データライト時には、バスコントロール回路３２からシリアルデータが出力され、Ｓ／Ｐ変換回路３４に入力される。Ｓ／Ｐ変換回路３４は、バスコントロール回路３２から供給されるシリアルデータを、例えば８ビットのパラレルデータに変換する。Ｓ／Ｐ変換後のパラレルデータは、出力レジスタ４０の他、固有アドレス信号Ａ０〜２との比較のために、バスコントロール回路３２にもフィードバックされる。
【００６８】
続いて、出力レジスタ４０は、バスコントロール回路３２から入力される前述のライトクロック信号ＷＣＬＫにより、Ｓ／Ｐ変換回路３４から出力される、例えば８ビットのパラレルデータを保持する。出力レジスタ４０から出力されるパラレルデータはＩ／Ｏポート４２に入力される。
【００６９】
Ｉ／Ｏポート４２には、上記パラレルデータの他、リセット信号ＲＳＴＬや、バスコントロール回路３２からのＩ／Ｏコントロール信号Ｉ／ＯＣＯＮＴが入力される。Ｉ／Ｏポート４２は、Ｉ／Ｏコントロール信号Ｉ／ＯＣＯＮＴの状態に応じて、出力レジスタ４０から供給されるパラレルデータを接続装置に対して出力するか、あるいは、接続装置から供給されるパラレルデータを、次に述べるＰ／Ｓ変換回路３６に対して出力するのかを制御する。
【００７０】
Ｉ／Ｏポート４２と接続装置との間は、８ビットのパラレルバスで双方向に接続されている。データリード時に接続装置から供給されるパラレルデータは、Ｉ／Ｏポート４２からＰ／Ｓ変換回路３６に対して出力される。
Ｐ／Ｓ変換回路３６は、Ｉ／Ｏポート４２から供給される８ビットのパラレルデータをシリアルデータに変換する。Ｐ／Ｓ変換回路３６から出力されるシリアルデータは、前出のバスコントロール回路３２に入力される。
【００７１】
バスコントロール回路３２は、Ｐ／Ｓ変換回路３６から供給されるシリアルデータをシリアルデータ出力ＳＤＡＯＵＴとして順次出力する。このシリアルデータ出力ＳＤＡＯＵＴは、入出力バッファ４４のインバータ４６を介してＮＭＯＳ４８のゲートに入力される。入出力バッファ４４のＮＭＯＳ４８のソースはグランドに接続され、そのドレインは、シリアルデータ信号ＳＤＡ１としてシリアルデータライン上に出力される。
【００７２】
入出力バッファ４４からは、シリアルデータ信号ＳＤＡ１として、バスコントロール回路３２から供給されるシリアルデータ出力ＳＤＡＯＵＴが順次出力される。なお、アクノリッジ信号は、ノーマルモードの場合には、固有アドレスによって指定される１つのスレーブデバイス１４のＳＤＡ１端子またはスレーブデバイス１８のＳＤＡ端子からのみ出力され、ローカルモードの場合には、全てのスレーブデバイス１４のＳＤＡ２端子から同時に出力される。
【００７３】
次に、図１１に示すフローチャートを参照しながら、本発明のシリアルデータ転送装置の動作について説明する。
【００７４】
同図フローチャートのステップＳ１に示すように、まず、リセット信号ＲＳＴＬがローレベルとされ、シリアルデータ転送装置１０が初期化される。初期化の後、ステップＳ２へ進み、スレーブデバイス１４，１８は、マスタデバイス１２からスタート信号（ＳＴＡＲＴ）が出力されるのを検出する。なお、スレーブデバイス１４，１８は、スタート信号が検出されない場合（Ｎ）、スタート信号が検出される（Ｙ）まで繰り返し検出を行う。スタート信号が検出されると、スタート信号検出回路７０の制御により、スタート検出信号ＳＴＡＲＴＬがローレベルとなる。
【００７５】
続いて、ステップＳ３として、モード検出回路９０により、転送モードが、ノーマルモードなのかローカルモードなのかが検出される。
その結果、ノーマルモードである場合（Ｎ）にはステップＳ４に進み、ＩＩＣバスの規格に準拠して通常処理が行われ、マスタデバイス１２とスレーブデバイス１４または１８との間で１対１にデータのやり取りが行われる。
【００７６】
一方、ローカルモードである場合（Ｙ）にはステップＳ５に進み、モード１であるかどうかが検出される。なお、この場合、指定されるスレーブデバイスは、言うまでもなく本発明を適用するスレーブデバイス１４のみである。
ここで、モード１ではない場合（Ｎ）には、イリガル動作であるためステップＳ２に戻る。モード１であることが検出されると（Ｙ）、モード検出回路９０の制御により、モード１信号Ｍｏｄｅ１Ｌがローレベルとなる。
【００７７】
その後、マスタデバイス１２から全てのスレーブデバイス１４に対して、固有アドレスおよびデータ制御信号（この場合、ライトのみ）からなる１バイト目のデータが送信される。ステップＳ６に示すように、各々のスレーブデバイス１４は、図４に示すＳＣＬカウンタ６０のタイミング制御により、受信した固有アドレスと自分自身に設定されている固有アドレス信号とを比較して、自分自身が指定されているのかどうかを検出する。
【００７８】
そして、固有アドレスとの一致が検出された場合（Ｙ）、スレーブデバイス１４は、ステップＳ７に示すように、ＳＤＡ１端子から、図１に示すシリアルデータラインＳＤＡ上にローレベルのアクノリッジ信号を出力する。これを受信して、マスタデバイス１２は、指定しようとするスレーブデバイス１４に対応する固有アドレスおよびデータ制御信号からなる１バイトのデータを必要に応じて順次送信し、固有アドレスによって指定されるスレーブデバイス１４からアクノリッジ信号が出力される。
【００７９】
以上の動作を繰り返し行うことにより、任意の個数のスレーブデバイス１４を指定することができる。なお、ローカルモードの場合に１つのスレーブデバイス１４のみを指定しても構わないが、その場合には、ノーマルモードを使用する方が好ましい。
一方、スレーブデバイス１４において、最終的に、固有アドレスとの一致が検出されなかった場合（Ｎ）、後述するステップＳ１４に進む。
【００８０】
続いて、ステップＳ８に進み、全てのスレーブデバイス１４において、図４に示すＳＣＬカウンタ６０のタイミング制御により、データ制御信号（Ｒ／Ｗ）が検出される。ローカルモードの場合には、任意の個数のスレーブデバイス１４が同時にアクセスされるが、マスタデバイス１２は全てのスレーブデバイス１４から同時にデータを受信（リード）することはできないため、データライト（Ｗ）ではない場合（Ｎ）にはイリガル動作であるとしてステップＳ２へ戻る。
【００８１】
一方、データライト（Ｗ）である場合（Ｙ）、次のステップＳ９へ進む。ステップＳ９では、モード２であるかどうかの検出が行われる。
そして、モード２ではない場合（Ｎ）、すなわち、ノーマルモードやローカルモードのモード１が検出された場合には、リスタートであるものと認識され、ステップＳ２に戻る。
【００８２】
これに対して、モード２が検出された場合（Ｙ）、シリアルデータを順次取り込み、ステップＳ１０において、図４に示すＳＣＬカウンタ６０の制御により、８ビット（１バイト）のデータを受信したかどうかが検出される。この時、８ビットのデータ入力がない場合（Ｎ）には続くデータは存在せず、送信は終了であるからステップＳ１３に進む。８ビットのデータ入力がある場合（Ｙ）には次のステップＳ１１へ進む。
【００８３】
ステップＳ１１において、指定されている全てのスレーブデバイス１４のＳＤＡ２端子から、ローレベルのアクノリッジ信号が出力され、後述するステップＳ１６において出力される指定されていないスレーブデバイス１４からのアクノリッジ信号と共に、図１に示すＯＲゲート１６により、シリアルデータラインＳＤＡ上にローレベルのアクノリッジ信号が出力される。マスタデバイス１２は、シリアルデータラインＳＤＡ上のアクノリッジ信号を検出して、全てのスレーブデバイス１４がデータを受信したことを確認し、次のデータを送信する。
【００８４】
一方、指定された任意の個数のスレーブデバイス１４では、ステップＳ１２に示すように、図３に示すバスコントロール回路３２によって発生されるライトクロックＷＣＬＫにより、Ｐ／Ｓ変換回路３４によるＰ／Ｓ変換後のパラレルデータが出力レジスタ４０に保持される。
【００８５】
そして、ステップＳ１３において、スレーブデバイス１４はストップ信号を検出する。スレーブデバイス１４によりストップ信号が検出された場合（Ｙ）、ストップ信号検出回路８０の制御により、ストップ検出信号ＳＴＯＰＬがローレベルとされ、マスタデバイス１２からスレーブデバイス１４へのデータの送信は終了となる。一方、ストップ信号が検出されない場合（Ｎ）、マスタデバイス１２からスレーブデバイス１４へ送信されるデータは複数バイトであるから、ステップＳ１０へ戻って次の８ビットのデータを繰り返し受信する。
【００８６】
一方、ステップＳ６において、最終的に、固有アドレスとの一致が検出されなかったスレーブデバイス１４においては、ステップＳ１４でモード２が検出される。モード２が検出されない場合（Ｎ）、すなわち、ノーマルモードやローカルモードのモード１が検出された場合（Ｎ）、リスタートであると認識され、ステップＳ３に戻る。モード２が検出された場合（Ｙ）、ＳＣＬカウンタ６０の値が８になっているかどうかをステップＳ１５で検出する。すなわち、ステップＳ６において、固有アドレスによって指定された任意の個数のスレーブデバイス１４が８ビットのデータを受信したかどうかを検出する。なお、指定されていないスレーブデバイス１４には、マスタデバイス１２から出力されるデータは受信（保持）されない。
【００８７】
ここで、ＳＣＬカウンタ６０の値が８である場合（Ｙ）には、ステップＳ１６において固有アドレスによって指定されなかったスレーブデバイス１４からも、固有アドレスによって指定されたスレーブデバイス１４と同じタイミングで、すなわち、ステップＳ１１で指定されたスレーブデバイス１４がアクノリッジ信号を返すのと同じタイミングでＳＤＡ２端子からアクノリッジ信号が出力され、図１に示すＯＲゲート１６を介して、シリアルデータラインＳＤＡ上にローレベルのアクノリッジ信号が出力される。マスタデバイス１２は、このアクノリッジ信号を受信する。
【００８８】
また、ＳＣＬカウンタ６０の値が８ではない場合（Ｎ）には、固有アドレスによって指定されたスレーブデバイス１４に続けて送信されるデータは存在せず、送信は終了であるからステップＳ１７に進む。ステップＳ１７は、ステップＳ１３の場合と同じであるから、ここでは、その繰り返しの説明は省略する。
【００８９】
次に、図１２および図１３に示すタイミングチャートを参照して、本発明のシリアルデータ転送装置の動作を具体例を挙げて説明する。ここで、図１２は、ローカルモードのモード１に入る場合の動作の一例を表すもので、続く、図１３は、図１２のタイミングチャートに続く本発明のシリアルデータ転送装置の動作を表すもので、モード１からモード２に入り、その後、ノーマルモードに入る場合の動作の一例を表している。
【００９０】
まず、図１２に示すように、リセット信号ＲＳＴＬがローレベルとされ、装置全体が初期化される。リセット信号がハイレベルとされた後、シリアルクロック信号ＳＣＬがハイレベルの期間に、シリアルデータ信号ＳＤＡを２回立ち下げる。これにより、スタート検出信号ＳＴＡＲＴＬが、１回目のシリアルデータ信号ＳＤＡの立ち下りからシリアルクロック信号ＳＣＬの立ち下りまでの間ローレベルとなるとともに、モード１信号Ｍｏｄｅ１Ｌが、シリアルクロック信号ＳＣＬの立ち下りでローレベルとなり、ローカルモードのモード１に入る。
【００９１】
続いて、マスタデバイス１２から、固有アドレス（‘０１０００００’）およびデータ制御信号（Ｗ）からなる１バイトのデータが送信される。既に述べたように、データは、シリアルクロック信号ＳＣＬがローレベルの間に変化する。図１２のタイミングチャートに示すように、ＳＣＬカウンタ６０の値が１〜７の間は、固有アドレスのビット６〜０が順次シリアルに送信され、ＳＣＬカウンタ６０の値が８の時にはデータ制御信号が送信される。
【００９２】
そして、各々のスレーブデバイス１４は、固有アドレスおよびデータ制御信号からなる１バイトのデータを受信して、マスタデバイス１２から送信されてきた固有アドレスと自分自身にあらかじめ設定されている固有アドレス信号とを比較し、自分自身の固有アドレス（‘０１０００００’）と一致したスレーブデバイス１４（図示せず）のＳＤＡ１端子から、シリアルデータラインＳＤＡ上にローレベルのアクノリッジ信号が出力され、これをマスタデバイス１２は受信して確認する。
【００９３】
図１２のタイミングチャートでは、続いて、固有アドレス（‘０１００００１’）およびデータ制御信号（Ｗ）からなる１バイトのデータが送信される。同じく、図１２のタイミングチャートにＳＤＡＯＵＴ（ＳＤＡ１）で示すように、自分自身にあらかじめ設定されている固有アドレス（‘０１００００１’）と一致したスレーブデバイス１４からアクノリッジ信号が出力され、これをマスタデバイス１２は受信して確認する。
【００９４】
続いて、図１３のタイミングチャートに示すように、シリアルクロック信号ＳＣＬがハイレベルの期間に、シリアルデータ信号ＳＤＡを３回立ち下げる。これにより、スタート検出信号ＳＴＡＲＴＬが、１回目のシリアルデータ信号ＳＤＡの立ち下りからシリアルクロック信号ＳＣＬの立ち下りまでの間ローレベルとなるとともに、モード２信号Ｍｏｄｅ２Ｌのみがローレベルとなり、ローカルモードのモード２に入る。
【００９５】
続いて、マスタデバイス１２から１バイトのデータが送信される。図１３のタイミングチャートに示すように、ＳＣＬカウンタ６０の値が１〜８の間は、データ（ＦＦｈ）（１６進数）のビット７〜０が順次シリアルに送信される。
そして、全てののスレーブデバイス１４のＳＤＡ２端子からアクノリッジ信号が出力され、図１に示すＯＲゲート１６を介してシリアルデータラインＳＤＡ上にローレベルのアクノリッジ信号が出力される。これをマスタデバイス１２は受信して確認する。なお、アクノリッジ信号は、指定されているいないに係わらず、全てのスレーブデバイス１４のＳＤＡ２端子から出力される。
【００９６】
これは、指定されていないスレーブデバイス１４のＳＤＡ２端子からアクノリッジ信号を出力しないと、図１に示すＯＲゲート１６からローレベルのアクノリッジ信号を出力することができないからである。したがって、指定されていないスレーブデバイス１４のＳＤＡ２端子からも、指定されているスレーブデバイス１４と同じタイミングでアクノリッジ信号を出力する必要がある。
以下同じようにして、マスタデバイス１２から、指定されているスレーブデバイス１４に対して同じデータが同時に送信され、スレーブデバイス１４からは、データを受信した後、アクノリッジ信号が出力される。
【００９７】
そして最後に、シリアルクロック信号ＳＣＬがハイレベルの期間に、シリアルデータ信号ＳＤＡを立ち上げる。これにより、ストップ検出信号ＳＴＯＰＬが、シリアルデータ信号ＳＤＡの立ち上がりから、その次の立ち下りまでの間ローレベルとなるとともに、このシリアルデータ信号ＳＤＡの立ち下りによってノーマルモードに入り、スタート検出信号ＳＴＡＲＴＬがローレベルとなる。
【００９８】
本発明のシリアルデータ転送装置は、基本的に以上のようなものである。
なお、マスタデバイス１２は１つ以上何個あってもよいし、スレーブデバイス１４は２つ以上の複数個であれば何個であってもよい。また、本発明のシリアルデータ転送装置は、ノーマルモードではＩＩＣバス規格に準拠しているため、上記実施例にも示すように、本発明を適用するスレーブデバイスと従来構成のスレーブデバイスとを共存させて使用するこができる。
【００９９】
上記実施例では、ＩＩＣバス規格との互換性を考慮して、各信号の極性や転送するデータのビット数、具体的な回路構成等を例示しているが、ＩＩＣバス規格との互換性が不要であれば、本発明は上記具体例には何ら限定されない。
以上、本発明のシリアルデータ転送装置について詳細に説明したが、本発明は上記実施例に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。
【０１００】
【発明の効果】
以上詳細に説明した様に、本発明のシリアルデータ転送装置は、ノーマルモードでは、マスタデバイスからスレーブデバイスに対して固有アドレスに対応するアドレス情報を送信して、マスタデバイスとアドレス情報に一致する固有アドレスを有するスレーブデバイスとの間で１対１にデータの送受信を行い、ローカルモードでは、マスタデバイスから、指定しようとするスレーブデバイスに対応する任意の個数のアドレス情報を順次送信して、このアドレス情報に対応する任意の個数のスレーブデバイスを指定し、指定された任意の個数のスレーブデバイスに対して同じデータを同時に送信するものである。
したがって、本発明のシリアルデータ転送装置によれば、マスタデバイスと任意の複数個のスレーブデバイスとの間で同じデータを転送したい場合に、これを一度のデータ転送で実現することができる。例えば、従来は３個のスレーブデバイスに同じデータを順次送信していたものが、本発明では１回の送信で済み、２回分の送信時間を削減することができる。
本発明は、例えば複数のＲＡＭ（ランダムアクセスメモリ）に同時に００ｈ（１６進数）を書き込んで、その内容をクリアする時などのように、データ量が多い場合に特に有効である。
【図面の簡単な説明】
【図１】  本発明のシリアルデータ転送装置の一実施例のブロック構成図である。
【図２】  マスタデバイスの一実施例の構成概略図である。
【図３】  スレーブデバイスの一実施例のブロック構成図である。
【図４】  バスコントロール回路の一実施例のブロック構成図である。
【図５】  スタート信号検出回路の一実施例の構成回路図である。
【図６】  図５に示すスタート信号検出回路の動作を表す一実施例のタイミングチャートである。
【図７】  ストップ信号検出回路の一実施例の構成回路図である。
【図８】  図７に示すストップ信号検出回路の動作を表す一実施例のタイミングチャートである。
【図９】  モード検出回路の一実施例の構成回路図である。
【図１０】  図９に示すモード検出回路の動作を表す一実施例のタイミングチャートである。
【図１１】  本発明のシリアルデータ転送装置の動作を表す一実施例のフローチャートである。
【図１２】  本発明のシリアルデータ転送装置の動作を表す一実施例のタイミングチャートである。
【図１３】  図１２に示す本発明のシリアルデータ転送装置の動作の続きを表す一実施例のタイミングチャートである。
【符号の説明】
１０  シリアルデータ転送装置
１２  マスタデバイス
１４，１８  スレーブデバイス
１６，１０８  ＯＲゲート
１９，２０  プルアップ抵抗
２２  マイクロコントローラ
２４  出力バッファ
２６，４４  入出力バッファ
２８  入力バッファ
３０  フィルタ
３２  バスコントロール回路
３４  Ｓ／Ｐ変換回路
３６  Ｐ／Ｓ変換回路
４０  出力レジスタ
４２  Ｉ／Ｏポート
５０  デバイスアドレス検出回路
５４  ＷＣＬＫ生成回路
５６  スタート信号／ストップ信号／モード検出回路
５８  データ制御信号検出回路
６０  ＳＣＬカウンタ
６２  ＳＤＡ１コントローラ
６４  ＳＤＡ２コントローラ
６６  シリアルデータ保持回路
６８  コントローラ
７０  スタート信号検出回路
７２，７４，８２，８４，９２，９４，９６，９８，１１０  フリップフロップ
７６，７８，８６，８８，１００  ＡＮＤゲート
ストップ信号検出回路８０
モード検出回路９０
１０２，１０４，１０６  ＮＡＮＤゲート
ＳＤＡ  シリアルデータライン
ＳＣＬ  シリアルクロックライン
【図１】
0003900327.tif 000002
【図２】
0003900327.tif 000003
【図３】
0003900327.tif 000004
【図４】
0003900327.tif 000005
【図５】
0003900327.tif 000006
【図６】
0003900327.tif 000007
【図７】
0003900327.tif 000008
【図８】
0003900327.tif 000009
【図９】
0003900327.tif 000010
【図１０】
0003900327.tif 000011
【図１１】
0003900327.tif 000012
【図１２】
0003900327.tif 000013
【図１３】
0003900327.tif 000014