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