(57)【特許請求の範囲】
【請求項１】
１本のデータ信号線と２本の制御信号線とを有する通信線に接続されたマスタデバイスとシリアルメモリを有するスレーブデバイスとを備えるマスタ・スレーブシステムであって、
前記マスタデバイスは、
前記シリアルメモリと通信するための標準の選択信号およびタイミング信号の前に、それぞれ一定のビットパターンを追加した各ビットパターンを生成する手段と、
該生成した各ビットパターンを、通信するスレーブデバイス毎に入れ替えて前記２本の制御信号線に送出する入れ替え手段と、
を備え、
前記スレーブデバイスは、
前記２本の制御信号線とそれぞれ接続される２つの制御信号入力端子を有し、前記２本の制御信号線と前記２つの制御信号入力端子との接続の関係に応じて、通信可能な接続の関係の場合は前記一定のビットパターンを除去して前記標準の選択信号およびタイミング信号を生成する一方、逆の接続の関係の場合は全ビットパターンを除去して無信号とする制御信号生成手段、
を備え、
スレーブデバイス毎に前記２本の制御信号線と２つの制御信号入力端子との接続の関係を入れ替えて接続し、前記マスタデバイスが前記入れ替え手段により通信するスレーブデバイスを選択することを特徴とするマスタ・スレーブシステム。
【請求項２】
前記マスタデバイスは、さらに、
前記通信線のそれぞれに対応し、前記通信線の状態を監視して前記状態を折り返して読み込むための折り返し読込み手段と、
前記通信線を使用しようとする旨の要求を前記通信線に接続された他のマスタデバイスとの間で前記２本の制御信号線を介して相互に通知する通知手段と、
を備えることを特徴とする請求項１に記載のマスタ・スレーブシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マイクロプロセッサ、コンピュータなどの外部記憶装置などへのアクセス方式に関し、特に、１つのマスタデバイスと複数のスレーブデバイスとの間、複数のマスタデバイスと１つのスレーブデバイスとの間、および複数のマスタデバイスと複数のスレーブデバイスとの間で選択的に行なわれる通信制御に関する。
【０００２】
【従来の技術】
従来、少ない接続信号線数で記憶素子などをアクセスする方法として、マスタデバイスとスレーブデバイスとの間で双方向にデータ信号をシリアル伝送するデータ信号線と、マスタデバイスからスレーブデバイスに対してアクセスを制御するためのタイミング信号を伝送するクロック信号線と、マスタデバイスからスレーブデバイスに対して選択信号を伝送する選択信号線との３本の信号線を介して伝送制御するシリアルバス方法が存在した。これを従来例１とする。
【０００３】
図６は、従来例１のシリアルバス方法を説明するための図である。
図６において、マスタデバイス６４とスレーブデバイス６５は、データ信号線６１とクロック信号線６２と選択信号線６３との３本の信号線により構成される通信線（シリアルバス）６０を介して接続している。
【０００４】
このような構成において、例えば、データの読み出しを行う場合は、マスタデバイス６４がスレーブデバイス６５へアドレス情報を伝送すると、アドレス情報を受信したスレーブデバイス６５が指定されたアドレスからデータを読み出し、アドレス情報を受信してから固定時間（例えば８クロック）後に読み出したデータをマスタデバイス６４に送信する。
【０００５】
また、データの書き込みを行う場合は、マスタデバイス６４がスレーブデバイス６５へアドレス情報とデータ情報とを伝送すると、これらを受信したスレーブデバイス６５が受信したアドレス情報により指定されたアドレスに受信したデータを書き込む。
【０００６】
【発明が解決しようとする課題】
しかしながら、上述のような構成は、１つのマスタデバイスと１つのスレーブデバイスとでデータ通信を行うことが前提であったため、例えば、１つのマスタデバイスと複数のスレーブデバイスとでデータ通信を行う場合は、通信線を構成する選択信号線の数をスレーブデバイスの数と同数に増やさなければならないという問題があった。
【０００７】
図７は、１つのマスタデバイスと２つのスレーブデバイスとが通信線により接続された場合の従来例を示す図である。
図７において、１つのマスタデバイス７５と２つのスレーブデバイス７６、７７は、データ信号線７１とクロック信号線７２と第１の選択信号線７３と第２の選択信号線７４との４本の信号線により構成される通信線７０を介して接続している。
【０００８】
このような構成において、マスタデバイス７５とスレーブデバイス７６とがデータ通信を行う場合は、通信線７０を構成する信号線のうち、データ信号線７１とクロック信号線７２と第１の選択信号線７３との３本の信号線によりデータ通信が行われ、マスタデバイス７５とスレーブデバイス７７とがデータ通信を行う場合は、通信線７０を構成する信号線のうち、データ信号線７１とクロック信号線７２と第２の選択信号線７４との３本の信号線によりデータ通信が行われる。
【０００９】
すなわち、１つのマスタデバイスと２つのスレーブデバイスとが接続される場合は、データ信号線とクロック信号線が１本ずつと、２本の選択信号線との４本の信号線により構成される通信線が必要になる。
【００１０】
また、複数のマスタデバイスと１つのスレーブデバイスとでデータ通信を行う場合も同様の問題があった。
これを解決するために、別の従来例として２線式の方法がある。これを従来例２とする。
【００１１】
マスタデバイスとスレーブデバイスとの間で双方向にスレーブアドレスを含めたデータ信号をシリアル伝送するデータ信号線と、マスタデバイスからスレーブデバイスに対してアクセスを制御するためのタイミング信号を伝送するクロック信号線との２本の信号線を介して、伝送制御するシリアルバス方法が存在した。
【００１２】
スレーブデバイスは、個々にアドレスを保持しており、データ信号線のスレーブアドレスが一致した時に選択される様にする事により、複数のスレーブにアクセスできる事を可能としている。また、信号線をＷＩＲＥＤ−ＯＲとし、同時に複数のマスタがシリアルバスにアクセスした場合には、データ信号線を先にＬＯＷにしたマスタがバスを取得する事で、複数のマスタ間の調停を可能としている。
【００１３】
しかしながら、従来例２は、信号線を伝送する信号の立ち上がりおよび立ち下がりスピードがある値以上必要なため、バスの容量がある値以下にする必要があるため、原理的に、従来例１と比較してその最高伝送速度は１／１０程度となっている。また、スレーブおよびマスタの数が増加すると、その入出力容量が増加するため、更に信号伝送速度に制約がでるという問題点があるため、マスタおよびスレーブの数を制限する必要があった。
【００１４】
また、２本で信号を伝送する事から、従来例１と比較して、その処理が複雑となり、マスタ側での処理が複雑となる問題点も存在する。
また、市販のシリアルメモリーの主流は従来例１の方法であり、入手性・コスト等を勘案すると不利という問題点があった。
【００１５】
本発明の目的は、信号線の本数を増やさずに、高速に複数のスレーブデバイスとのアクセスを可能とするマスタデバイス、高速に複数のマスタデバイスとのアクセスを可能とするスレーブデバイス、および高速に複数のマスタデバイスと複数のスレーブデバイスとの間のアクセスを可能とするマスタ・スレーブシステムを提供することである。
【００１６】
【課題を解決するための手段】
本発明は、上記課題を解決するため、下記のような構成を採用した。
すなわち、本発明の一態様によれば、本発明のマスタ・スレーブシステムは、１本のデータ信号線と２本の制御信号線とを有する通信線に接続されたマスタデバイスとシリアルメモリを有するスレーブデバイスとを備えるマスタ・スレーブシステムであって、前記マスタデバイスが、前記シリアルメモリと通信するための標準の選択信号およびタイミング信号の前に、それぞれ一定のビットパターンを追加した各ビットパターンを生成する手段と、該生成した各ビットパターンを、通信するスレーブデバイス毎に入れ替えて前記２本の制御信号線に送出する入れ替え手段とを備え、前記スレーブデバイスが、前記２本の制御信号線とそれぞれ接続される２つの制御信号入力端子を有し、前記２本の制御信号線と前記２つの制御信号入力端子との接続の関係に応じて、通信可能な接続の関係の場合は前記一定のビットパターンを除去して前記標準の選択信号およびタイミング信号を生成する一方、逆の接続の関係の場合は全ビットパターンを除去して無信号とする制御信号生成手段を備え、スレーブデバイス毎に前記２本の制御信号線と２つの制御信号入力端子との接続の関係を入れ替えて接続し、前記マスタデバイスが前記入れ替え手段により通信するスレーブデバイスを選択することを特徴とする。
【００１７】
また、好適には、前記マスタデバイスがさらに、前記通信線のそれぞれに対応し、前記通信線の状態を監視して前記状態を折り返して読み込むための折り返し読込み手段と、前記通信線を使用しようとする旨の要求を前記通信線に接続された他のマスタデバイスとの間で前記２本の制御信号線を介して相互に通知する通知手段とを備えることが望ましい。
【００１８】
上記折返し読込み手段が上記通信線の状態を監視して上記状態を折り返し読むことにより、上記マスタデバイスおよび上記他のマスタデバイスとから上記通信線を使用する旨の要求が２つ（複数）あることを互いに通知するので、２つ（複数）のマスターデバイスが１つのスレーブデバイスと通信することが可能となる。
【００２０】
スレーブデバイスを制御する制御信号を生成する手段は各スレーブデバイス毎に通信線の異なる条件により、アクセスに必要な選択信号、タイミング信号などを生成するので、通信線に接続された１つのマスタデバイスと２つ（複数）のスレーブデバイスとが通信することが可能となる。
【００２６】
【発明の実施の形態】
以下、本発明の実施の形態を、図面を参照しながら詳細に説明する。
図１は、本発明の全体構成を示す図である。
【００２７】
図１において、２つのマスタデバイス２１、２２と２つのスレーブデバイス３１、３２は、データ信号線１１と第１の制御信号線１２と第２の制御信号線１３との３本の信号線により構成される通信線１０を介して接続している。
【００２８】
マスタデバイス２１、２２は、通信線１０の状態を監視して上記状態を折り返し読みこむための折返し読込み手段を有し、通信線１０を使用しようとする旨の要求をマスタデバイス２１、２１間で相互に通知する。
【００２９】
また、スレーブデバイス３１、３２は、制御信号を生成するための制御信号生成手段を有し、アクセスに必要な選択信号、タイミング信号などを生成する。
図１中の第１の制御信号線１２と第２の制御信号線１３との接続が、スレーブデバイス３１とスレーブデバイス３２とで入れ替わっている。
【００３０】
図２は、本発明が適用されるマスタデバイスの回路構成例を示す図である。
図２において、マスタデバイスは、データ信号線１１に接続しているポートＰＢ０、ＰＢ１と第１の制御信号線１２に接続しているポートＰＢ４、ＰＢ５と第２の制御信号線１３に接続しているポートＰＢ２、ＰＢ３との６つのポートを備えたＩ／Ｏポート２３と、ＭＰＵ（マイクロプロセッサユニット）２５と、データバス２４とを備えている。
【００３１】
ＭＰＵ２５は、データバス２４を介してＩ／Ｏポート２３に接続され、Ｉ／Ｏポート２３に対してデータをライトし、通信線１０上のデータ信号線１１、第１の制御信号線１２、および第２の制御信号線１３を有効にする。なお、図中のＲＥＳＥＴｎは、電源投入時などにバスに対して信号が誤出力されるのを防ぐためのものである。
【００３２】
図３は、本発明が適用されるスレーブデバイスの回路構成例を示す図である。図３において、スレーブデバイスは、データ信号線１１に接続しているデータ出力端子（ＤＯ）、データ入力端子（ＤＩ）と、第１の制御信号線１２および第２の制御信号線１３に接続しているクロック入力端子（ＳＫ）、セレクト入力端子（ＣＳ）とを備えたシリアルメモリ３４と、フリップフロップ３３とを備えている。
【００３３】
そして、通信線１０を介してマスタデバイスからのアクセスにより、シリアルメモリ３４への入出力信号が制御される。
また、別のスレーブデバイスは、図３に示したスレーブデバイスと同様に、データ信号線１１に接続しているデータ出力端子（ＤＯ）、データ入力端子（ＤＩ）と、第１の制御信号線１２および第２の制御信号線１３に接続しているクロック入力端子（ＳＫ）、セレクト入力端子（ＣＳ）とを備えたシリアルメモリ３４と、フリップフロップ３３とを備えているが、図３中の第１の制御信号線１２と第２の制御信号線１３との位置が通信線１０上で入れ替わっている。
【００３４】
すなわち、図３に示したスレーブデバイスと上記別のスレーブデバイスとにおいては、通信線１０を介して接続されたマスタデバイスで第１の制御信号線１２と第２の制御信号線１３のドライブ条件を入れ替えることで、図３に示したスレーブデバイスのアクセスと上記別のスレーブデバイスのアクセスとを選択することができる。
【００３５】
シリアルメモリ３４と通信線１０との間に存在する制御信号生成部により、バス上の容量がシリアルメモリには影響せず、制御信号生成部の回路容量だけが影響するため、スレーブおよびマスタの数による通信線の容量の増加により伝送速度の影響は受けない。
【００３６】
なお、図中のＲＥＳＥＴｘは、電源投入時などにバスに対して信号が誤出力されるのを防ぐためのものである。
図４は、図１に示した２つのスレーブデバイス３１、３２へのアクセスのタイミングを説明するためのタイミングチャートである。
【００３７】
マスタデバイス（例えば、図１に示したマスタデバイス２１）がスレーブデバイス３１を選択する場合、時刻ｔ１において、Ｉ／Ｏポート２３のポートＰＢ３に“１" をセットすることで、第２の制御信号線１３がオンされる。
【００３８】
次に、時刻ｔ２において、Ｉ／Ｏポート２３のポートＰＢ５に“１" をセットすることで、第１の制御信号線１２がオンされる。
そして、時刻ｔ３において、Ｉ／Ｏポート２３のポートＰＢ５に“０" をセットすることで第１の制御信号線１２をオフされると、選択するスレーブデバイス３１内のシリアルメモリ３４のセレクト入力端子（ＣＳ）がオンとなる。
【００３９】
以降は、Ｉ／Ｏポート２３のＰＢ５に“１" 、“０" を書込むことでシリアルメモリ３４のクロック入力が与えられ、これと同時に必要なデータをＩ／Ｏポート２３のポートＰＢ０／ＰＢ１からリード／ライトすることで、マスタデバイス２１内のＭＰＵ２５は、スレーブデバイス３１、３２内のシリアルメモリ３４をアクセスすることが可能となる。
【００４０】
また、マスタデバイス２１がスレーブデバイス３２を選択する場合、時刻ｔ１において、Ｉ／Ｏポート２３のポートＰＢ５に“１" をセットすることで、第１の制御信号線１２がオンされる。
【００４１】
次に、時刻ｔ２において、Ｉ／Ｏポート２３のポートＰＢ３に“１" をセットすることで、第２の制御信号線１３がオンされる。
そして、時刻ｔ３において、Ｉ／Ｏポート２３のポートＰＢ３に“０" をセットすることで第２の制御信号線１３をオフされると、選択するスレーブデバイス３２内のシリアルメモリ３４のセレクト入力端子（ＣＳ）がオンとなる。
【００４２】
以降は、Ｉ／Ｏポート２３のＰＢ３に“１" 、“０" を書込むことでシリアルメモリ３４のクロック入力が与えられ、これと同時に必要なデータをＩ／Ｏポート２３のポートＰＢ０／ＰＢ１からリード／ライトすることで、マスタデバイス２１内のＭＰＵ２５は、スレーブデバイス３１、３２内のシリアルメモリ３４をアクセスすることが可能となる。
【００４３】
図４でのシリアルメモリ３４のタイミングは、従来の標準的な３線式のビットパターンの一部を表している。
マスタデバイスは、上記ビットパターンの前にｔ１〜ｔ３の間、一定のビットパターンを追加したビットパターンを送出している。
【００４４】
また、スレーブデバイスでは、制御信号生成部において、ｔ１〜ｔ３の間の一定のビットパターンを除去し、従来の標準的な３線式のビットパターンに変換している。
【００４５】
従って、ｔ１〜ｔ３の間の一定のビットパターンの後に続くビットパターンは、如何なるビットパターンでも問題なく伝送でき、スレーブデバイスのシリアルメモリは如何なるプロトコルであっても、本方式により通信可能である。
【００４６】
この結果、前述した通信線の入れ替えにより、従来のシリアルメモリの接続可能なスレーブ数の増加が可能となる。
以上の説明では、スレーブデバイスの数が２つであるが、制御信号線の数Ｎを増やし、各スレーブデバイスにおけるシリアルメモリ３４のセレクト入力端子  （ＣＳ）の選択条件を変える事で、スレーブデバイスの数をＮ！まで増やす事も可能である。
【００４７】
また、スレーブデバイスにおけるシリアルメモリ３４を、従来例２の２線式のものに変更する事により２線式で可能なスレーブ数Ｍを、信号線の容量の影響を受けずにＭ＊Ｎ！個とする事も可能である。
【００４８】
図５は、図１に示した２つのマスターデバイス２１、２２がアクセスする場合の調停動作を説明するためのタイミングチャートである。
マスタデバイス２１、２２内のＭＰＵ２５は、Ｉ／Ｏポート２３経由で通信線１０の状態を監視して上記状態を読み込むことができる。
【００４９】
通信線１０の使用要求が発生した場合、基本的には第１の制御信号線１２、第２の制御信号線１３がアクティブでなければ、通信線１０が他のマスタデバイスに使用されていないため、通信線１０を使用できる。しかし同時に第１の制御信号線１２、第２の制御信号線１３がアクティブでないと判断した場合、同時にアクセスを実施してしまい衝突が発生するためこれを回避するための調停が必要となる。
【００５０】
２つのマスタデバイス２１、２２が同時にアクセス要求が生じた場合の調停手順を説明する。
マスタデバイス２１は、アクセス要求が生じた場合、第１の制御信号線１２を駆動し、マスタデバイス２２は、アクセス要求が生じた場合、第２の制御信号線１３を駆動し、それぞれ要求があることを相手マスタデバイス２１、２２に通知するものとする。また、マスタデバイス２１の方がマスタデバイス２２よりも優先権が高いものとする。
【００５１】
マスタデバイス２１は、アクセス要求が生じると、時刻ｔ１１において、第１の制御信号線１２、第２の制御信号線１３をチェックし、どちらも非アクティブであるため通信線１０が使用されていないものと判断し、時刻ｔ１２において、直ちに第１の制御信号線１２をアクティブとする。
【００５２】
一方、マスタデバイス２２も、アクセス要求が生じ第１の制御信号線１２、第２の制御信号線１３をチェックし、そのタイミングが時刻ｔ２１（時刻ｔ１１と時刻ｔ１２との間）であるすると、この場合もどちらも非アクティブであるため通信線１０が使用されていないものと判断し、時刻ｔ２２において、直ちに第２の制御信号線１３をアクティブとする。
【００５３】
マスタデバイス２１は、相互の使用権要求確認のため第１の制御信号線１２をアクティブとしてから一定時間（Ｔ）経過後の時刻ｔ１３において、再度、第１の制御信号線１２のチェックを行なう。
【００５４】
また、マスタデバイス２２も、相互の使用権要求確認のため第２の制御信号線１３をアクティブとしてから一定時間（Ｔ）経過後の時刻ｔ２３において、再度、第２の制御信号線１３のチェックを行なう。
【００５５】
そして、第１の制御信号線１２、第２の制御信号線１３ともにアクティブであることから、マスタデバイス２１および２２は、互いに他のマスタデバイスであるマスタデバイス２２および２１からもアクセス要求があることが判る。
【００５６】
この時、マスタデバイス２２は、自分の優先権がマスタデバイス２１よりも低いため、時刻ｔ２４において、自分のアクセス要求を放棄し、第２の制御信号線１３の駆動を停止する。
【００５７】
一方、マスタデバイス２１は、自分の優先権がマスタデバイス２２よりも高いため通信線１０の使用権を獲得することができ、時刻ｔ１４において、マスタデバイス２２が第２の制御信号線１３の駆動を停止するのを確認後、通信線１０を使用してスレーブデバイスへのアクセスを行なう。
【００５８】
なお、時間Ｔは、第１の制御信号線１２、第２の制御信号線１３の状態を監視して上記状態をリードし非アクティブであることを確認し第１の制御信号線１２または第２の制御信号線１３を出力するまでの時間を補償するもので、時刻ｔ１１から時刻ｔ１２までの時間、時刻ｔ２１から時刻ｔ２２までの時間よりも大きい（長い）時間とする。
【００５９】
以上、本発明を図面を用いて説明してきたが、本発明は、１つのマスタデバイスと２つのスレーブデバイスとの通信制御に関わらず、１つのマスタデバイスと複数のスレーブデバイスとの通信制御に適用することができる。
【００６０】
また、本発明は、複数のマスタデバイスと１つのスレーブデバイスとの通信制御にも適用することができる。
また、本発明は、複数のマスタデバイスと複数のスレーブデバイスとの通信制御にも適用することができる。
【００６１】
上述の実施の形態では信号線が３本の場合について説明したが、これに限らず信号線はＮ本（Ｎ≧３、Ｎ：自然数）であってもよい。また、本発明は上述の実施の形態の構成に限らず次の構成にしてもよい。
【００６２】
Ｎ本の信号線によって構成される通信線に接続された（Ｎ−１）個以下のマスタデバイスと、（Ｎ−１）！個以下のスレーブデバイスとを備えたマスタ・スレーブシステムとする。
【００６３】
Ｎ本の信号線のうち（Ｎ−１）本の信号線をスレーブデバイス毎に接続を入れ替える。
制御信号生成手段はフリップフロップで構成する。
【００６４】
Ｎ本の信号線は、１本のデータ信号線と、（Ｎ−１）本の制御信号線からなる。
すなわち、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または形状を取ることが出来る。
【００６５】
【発明の効果】
以上説明したように、本発明によれば、信号線の本数を増やさずに、複数のスレーブデバイスとの高速アクセスを可能とするマスタデバイス、複数のマスタデバイスとの高速アクセスを可能とするスレーブデバイス、および複数のマスタデバイスと複数のスレーブデバイスと間での高速アクセスを可能とするマスタ・スレーブシステムを提供することが可能となる。
【００６６】
また、本発明によれば、信号線の数を増やさずに、従来のマスタおよびスレーブアクセス可能数の増加が可能である。
【図面の簡単な説明】
【図１】本発明の全体構成を示す図である。
【図２】本発明が適用されるマスタデバイスの回路構成例を示す図である。
【図３】本発明が適用されるスレーブデバイスの回路構成例を示す図である。
【図４】図１に示した２つのスレーブデバイス３１、３２へのアクセスのタイミングを説明するためのタイミングチャートである。
【図５】図１に示した２つのマスターデバイス２１、２２がアクセスする場合の調停動作を説明するためのタイミングチャートである。
【図６】従来のシリアルバス方法を説明するための図である。
【図７】１つのマスタデバイスと２つのスレーブデバイスとが通信線により接続された場合の従来例を示す図である。
【符号の説明】
１０  通信線
１１  データ信号線
１２  第１の制御信号線
１３  第２の制御信号線
２１、２２  マスタデバイス
２３  Ｉ／Ｏポート
２４  データバス
２５  ＭＰＵ
３１、３２  スレーブデバイス
３３  フリップフロップ
３４  シリアルメモリ
６０  通信線
６１  データ信号線
６２  クロック信号線
６３  選択信号線
６４  マスタデバイス
６５  スレーブデバイス
７０  通信線
７１  データ信号線
７２  クロック信号線
７３  第１の制御信号線
７４  第２の制御信号線
７５  マスタデバイス
７６、７７  スレーブデバイス
【図１】
0003889205.tif 000002
【図２】
0003889205.tif 000003
【図３】
0003889205.tif 000004
【図４】
0003889205.tif 000005
【図５】
0003889205.tif 000006
【図６】
0003889205.tif 000007
【図７】
0003889205.tif 000008