本発明の各実施形態について、添付の図面を参照して説明する。本発明の各実施形態に示す通信システムは、マスタスレーブ方式の通信が行われることを想定する。そして、本発明の各実施形態に示す通信システムでは、一つのマスタが、一つ以上の任意の数のスレーブと通信する例を想定する。一例として、サーバの電源ユニットや配電ボード等の生産における試験工程で本発明の各実施形態に示す通信システムが用いられる場合には、スレーブは、生産中の電源ユニット等であり、マスタは、電源ユニット等をテストするテスト装置である。
なお、本発明の各実施形態において、マスタとスレーブとを接続するバスは、I2C方式のバスであることを想定する。ただし、本発明の各実施形態に示す通信システムにおいては、その構成が適用可能であれば、マスタとスレーブとを接続するバスとしてI2C方式のバスとは異なる任意のシリアルバスが用いられてもよい。
(第1の実施形態)
まず、本発明の第1の実施形態について説明する。図1は、本発明の第1の実施形態における通信システムの構成を示す図である。
図1に示すとおり、本発明の第1の実施形態における通信システム100は、マスタ送信部110と、分離機構120−1から120−Nと、マスタ受信部130−1から130−Nとを備える。マスタ送信部110は、バス140を介してスレーブ装置150−1から150−Nの各々に情報を送信する。分離機構120−1から120−Nの各々は、スレーブ装置150−1から150−Nの各々に対応して設けられている。そして、分離機構120−1から120−Nの各々は、対応するスレーブ装置150−1から150−Nとマスタ送信部110とを接続するバス140を分離する。すなわち、分離機構120−1から120−Nの各々は、対応するスレーブ装置150−1から150−Nとマスタ送信部110との通信を遮断する。受信部130−1から130−Nの各々は、スレーブ装置150−1から150−Nにそれぞれ対応して、スレーブ装置150−1から150−Nの各々と分離機構120−1から120−Nの各々との間のバス140に接続される。そして、受信部130−1から130−Nの各々は、スレーブ装置150−1から150−Nのうち、対応するスレーブ装置から送信される情報を受信する。
なお、スレーブ装置150−1から150−Nの各々は、マスタ装置と接続される任意の装置である。スレーブ装置150−1から150−Nの各々は、例えば、I2C方式におけるスレーブ機能を備える任意のモジュールや回路等である。スレーブ装置150−1から150−Nの各々は、同一の装置であってもよいし、それぞれ異なる種類の装置であってもよい。
本実施形態を含む本発明の各実施形態においては、上述したNは1以上の任意の整数である。すなわち、マスタ送信部110は、1台以上の任意の数のスレーブ装置150−1から150−Nに対して情報を送信する。また、スレーブ装置150−1から150−Nの各々に対応して、分離機構120−1から120−N及びマスタ受信部130−1から130−Nがそれぞれ設けられる。
なお、以降の説明において、数がN個である構成要素について、N個の各々に対する区別が必ずしも必要ない場合には、添字は適宜省略される。例えば、マスタ受信部130−1から130−Nの各々に共通する構成や動作等を説明する場合には、単にマスタ受信部130と称する場合がある。
すなわち、本実施形態における通信システム100は、マスタスレーブ方式の通信におけるマスタ装置の送信部と受信部が分離して設けられる。そして、マスタ装置の送信部と受信部との間の通信経路に、当該経路を分離する分離機構が配置される。このような構成とすることで、マスタ装置は、スレーブ装置150−1から150−Nの各々からの応答を個々に受信することが可能となる。
続いて、本実施形態における通信システム100の各構成要素について説明する。
マスタ送信部110は、マスタ装置の送信機能を備え、各種のデータやスレーブ装置の制御信号等を含む情報を送信する。例えば、マスタ送信部110は、I2C方式のマスタ装置としての機能を備え、バス140を介してクロック信号やデータ等を含む情報の送出を行う。
本実施形態では、マスタ送信部110は、スレーブ装置150−1から150−Nのうち、複数のスレーブ装置に対して一斉に同一のデータを送信することを想定する。例えば、マスタ送信部110は、スレーブ装置150−1から150−Nのうち、同一のアドレスが定められた複数のスレーブ装置に対して情報を送信する。又は、マスタ送信部110は、アドレス指定が含まれず、スレーブ装置150−1から150−Nの全てのスレーブ装置を対象とする命令やデータ等の情報を送信してもよい。
分離機構120−1から120−Nの各々は、対応するスレーブ装置150−1から150−Nとマスタ送信部110とを接続するバス140を分離する。分離機構120−1から120−Nの各々は、それぞれ、スレーブ装置150−1から150−Nのいずれかと対応付けられる。そして、分離機構120−1から120−Nの各々は、図1に示すように、バス140におけるスレーブ装置150−1から150−Nの各々に対する分岐点よりスレーブ装置150−1から150−Nに近い位置に設けられる。すなわち、分離機構120−1から120−Nの各々は、スレーブ装置150−1から150−Nのうち、対応するスレーブ装置とマスタ送信部110との通信を個々に遮断する。なお、分離機構120−1から120−Nの各々は、スレーブ装置150−1から150−Nの各々とマスタ送信部110との間の通信が行われる場合には、接続するバス140を接続する。
分離機構120は、対応するスレーブ装置150から何らかの信号を対応するマスタ受信部130に送信する場合に、バス140を分離する。すなわち、この場合には、分離機構120は、バス140を介した通信を遮断して、スレーブ装置150からの信号のマスタ送信部110への伝搬を抑止する。例えば、スレーブ装置150が、ACK(Acknowledge)、NACK(Negative Acknowledge)信号、データ応答等の応答信号を送信する場合に、分離機構120は、バス140を分離して通信を遮断する。
なお、分離機構120は、スレーブ装置150が情報の送信を行う場合に限ってバス140を分離してもよい。すなわち、分離機構120は、マスタ送信部110からの情報の送信は常に遮断せず、スレーブ装置150からの情報の送信のみを遮断する構成であってもよい。
マスタ受信部130−1から130−Nの各々は、対応するスレーブ装置150−1から150−Nからの応答等の情報を受信する。マスタ受信部130−1から130−Nの各々は、それぞれ、スレーブ装置150−1から150−Nのいずれか及び分離機構120−1から120−Nのいずれかと対応付けられている。すなわち、マスタ受信部130−1から130−Nの各々は、スレーブ装置150−1から150−Nのうち、対応するスレーブ装置からの応答等の情報を受信する。マスタ送信部130は、対応するスレーブ装置150から情報を受信した場合には、例えば、マスタ送信部110からのクロック信号に従い、スレーブ装置から受信した情報に応じてACK又はNACK信号を送出する。
本実施形態においては、スレーブ装置150−1から150−Nの各々は、対応付けられた分離機構がバス140を分離し、通信を遮断している際に情報を送信する。マスタ受信部130−1から130−Nの各々は、対応付けられたスレーブ装置から送信された情報を受信する。対応する分離機構にて通信が遮断されていることから、スレーブ装置150−1から150−Nの各々は、互いに他のスレーブ装置から影響を受けることなく、対応するマスタ受信部に対して情報を送信することが可能である。すなわち、スレーブ装置150−1から150−Nの各々は、並行してマスタ送信部110からの通信に対する応答等を含む情報の送信を行うことが可能である。したがって、マスタから複数のスレーブに対して通信を行う場合に、高速な通信が可能となる。
以上のとおり、本発明の第1の実施形態における通信システム100は、マスタスレーブ方式の通信におけるマスタ装置の送信部と受信部が分離して設けられる。すなわち、スレーブ装置150−1から150−Nの各々に対して、マスタ受信部130−1から130−Nの各々が対応して設けられる。そして、マスタ装置の送信部であるマスタ送信部110とマスタ装置の受信部であるマスタ受信部130との間には、分離機構120が設けられる。このような構成を備えることから、本実施形態における通信システム100では、同じ時点において複数のスレーブ装置からの応答を得ることが可能となる。したがって、本実施形態における通信システム100は、複数の装置に対する効率的な通信を可能にする。
そして、上述した特徴から、本実施形態における通信システム100を用いてスレーブ機能を備えるモジュールの試験を行う場合には、試験の対象とするモジュールの数を容易に増やすことが可能となる。更に、マスタとモジュールとの通信が効率よく行われることから、効率の良い試験が可能となる。
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。図2は、本発明の第2の実施形態における通信システムの構成を示す図である。
上述のように、本実施形態においては、マスタとスレーブとを接続するバスは、I2C方式のバスであることを想定する。I2C方式のバスには、データ線とクロック線とが含まれる。
図2に示すように、本発明の第2の実施形態における通信システム200は、マスタ送信部110と、ダイオード221−1から221−Nと、マスタ受信部130−1から130−Nとを備える。マスタ送信部110及びマスタ受信部130−1から130−Nは、第1の実施形態における通信システム100が備える同じ構成要素と同一である。ダイオード221−1から221−Nの各々は、第1の実施形態における分離機構120−1から120−Nの各々に関連する要素であり、スレーブ装置150−1から150−Nの各々に対応して設けられる。各々の装置は、上述のようにI2Cバス141にて接続される。I2Cバス141は、クロック線142とデータ線143とを含む。クロック線142とデータ線143では、それぞれ、High又はLowの2つの値の信号が伝搬する。この場合に、“High”の値の信号は、例えば高電位(高電圧)の信号であり、“Low”の値の信号は、例えば低電位(低電圧)の信号である。
本実施形態においては、ダイオード221−1から221−Nの各々は、マスタ送信部110と、スレーブ装置150−1から150−Nの各々とを接続するI2Cバス141のデータ線143に接続される。ダイオード221−1から221−Nの各々は、図2に示すように、I2Cバス141におけるスレーブ装置150−1から150−Nの各々に対する分岐点よりスレーブ装置150−1から150−Nに近い位置に設けられる。
具体的には、ダイオード221−1から221−Nの各々は、マスタ送信部110からスレーブ装置150−1から150−Nへの電流のみを通過させるようにデータ線143に接続される。つまり、ダイオード221−1から221−Nの各々は、アノードがデータ線143のマスタ送信部の側に接続され、カソードがデータ線143の対応するスレーブ装置150の側に接続される。なお、マスタ受信部130は、対応するダイオード221のカソードの側に接続される。このような接続態様により、マスタ送信部110からスレーブ装置150−1から150−Nの各々に向かう情報のみが、ダイオード221−1から221−Nの各々を通過する。
上述の構成から、マスタ送信部110からデータ線143を介して送信される情報は、スレーブ装置150−1から150−Nの各々に対してダイオード221−1から221−Nの各々の影響を受けずに送信される。一方、スレーブ装置150−1から150−Nの各々からデータ線143を介して送信される情報は、ダイオード221−1から221−Nの各々にて遮断される。ただし、マスタ受信部130−1から130−Nの各々は、スレーブ装置150−1から150−Nの各々から送信される情報を受信することが可能である。そのため、一定の正常な通信が行われている場合には、マスタ送信部110からの一回の情報の送信によって、マスタ送信部110は、スレーブ装置150−1から150−Nの全てに対して情報を送信することが可能である。そして、スレーブ装置150−1から150−Nの全てが、マスタ送信部110からの情報の送信に対して応答することが可能である。
なお、本実施形態においては、ダイオード221の電圧降下を考慮して、データ線143のプルアップ電圧や、スレーブ装置150のプルダウン抵抗等の選択が必要となる場合がある。そこで、ダイオード221に代えて、リレーやMOSFET(metal−oxide−semiconductor field−effect transistor)等のスイッチ機構が用いられてもよい。
以上のとおり、本発明の第2の実施形態における通信システム200は、分離機構120として、ダイオード221を備える。したがって、本実施形態における通信システム200は、本発明の第1の実施形態における通信システム100と同様の効果を奏する。また、本実施形態における通信システム200は、各々のスレーブ装置に対してダイオードのみを用いて実現される。本実施形態における通信システム200は、簡易に実現することが可能である。
(第3の実施形態)
次に、本発明の第3の実施形態について説明する。図3は、本発明の第3の実施形態における通信システムの構成を示す図である。図4は、本発明の第3の実施形態における通信システムの動作シーケンスを示す図である。図5は、本発明の第3の実施形態における通信システムのクロックストレッチ動作に関する動作シーケンスを示す図である。
図3に示すように、本発明の第3の実施形態における通信システム300は、マスタ送信部110と、第1のスイッチ322−1から322−Nと、第2のスイッチ323−1から323−Nと、第1のスイッチ制御部324−1から324−Nと、第2のスイッチ制御部325と、マスタ受信部130−1から130−Nとを備える。マスタ送信部110及びマスタ受信部130−1から130−Nは、第1の実施形態における通信システム100が備える同じ構成要素と同一である。第1のスイッチ322−1から322−Nの各々及び第1のスイッチ制御部324−1から324−Nの各々は、第1の実施形態における分離機構120−1から120−Nの各々に関連する要素である。同様に、第2のスイッチ323−1から323−Nの各々及び第2のスイッチ制御部325は、第1の実施形態における分離機構120−1から120−Nの各々に関連する要素である。これらの要素は、スレーブ装置150−1から150−Nの各々に対応して設けられる。各々の装置は、上述のようにクロック線142とデータ線143とを含むI2Cバス141にて接続される。
なお、図3及び以降の図においては、図中の矢印は、制御の対象を示す。制御に際して、信号の流れは矢印の方向に限られない。
本実施形態においては、第1のスイッチ322−1から322−Nの各々は、マスタ送信部110と、スレーブ装置150−1から150−Nの各々とを接続するI2Cバス141のクロック線142に接続される。第1のスイッチ制御部324−1から324−Nの各々は、第1のスイッチ322−1から322−Nの各々に対応付けられる。第2のスイッチ323−1から323−Nの各々は、マスタ送信部110と、スレーブ装置150−1から150−Nの各々とを接続するI2Cバス141のデータ線143に接続される。なお、第1のスイッチ322−1から322−Nとして、リレーやMOSFET等が用いられる。
なお、図3に示すように、第1のスイッチ322−1から322−Nの各々は、I2Cバス141におけるスレーブ装置150−1から150−Nの各々に対する分岐点よりスレーブ装置150−1から150−Nに近い位置に設けられる。同様に、第2のスイッチ323−1から323−Nの各々は、の各々は、I2Cバス141におけるスレーブ装置150−1から150−Nの各々に対する分岐点よりスレーブ装置150−1から150−Nに近い位置に設けられる。
I2C方式の通信では、クロックストレッチと呼ばれる動作が存在する。クロックストレッチの発生時には、スレーブが強制的にクロック線の値をLowに設定してマスタからの情報の受信を保留する。第2の実施形態における通信システム200では、スレーブ装置150−1から150−Nの一つにおいてクロックストレッチが生じた場合に、スレーブ装置150−1から150−Nの全てに関するクロック線143の値がLowに設定される場合がある。また、分離機構としてダイオード221を用いる場合には、当該ダイオードの順方向電圧降下を考慮して、データ線143のプルアップ電圧を設定する必要が生じる可能性がある。
続いて、本実施形態における通信システム300の各構成要素について説明する。
第1のスイッチ322−1から322−Nの各々は、一動作例として、スレーブ装置150−1から150−Nの各々に起因するクロックストレッチに応じて、個別にスイッチの開閉が制御される。すなわち、第1のスイッチ322−1から322−Nの各々は、通常は短絡されており、対応するスレーブ装置150−1から150−Nにおいてクロックストレッチが生じた際に開放される。そのため、スレーブ装置150−1から150−Nの各々は、個々にスイッチの開閉が制御可能となるよう、スレーブ装置150−1から150−Nの各々に対応して第1のスイッチ制御部324−1から324−Nが設けられる。
第1のスイッチ制御部324−1から324−Nの各々は、例えば、対応するスレーブ装置150−1から150−Nにクロックストレッチが生じた際に、第1のスイッチ322−1から322−Nのうち制御対象とするスイッチを開放する。クロックストレッチの検出を行うため、第1のスイッチ制御部324−1から324−Nの各々は、例えば、対応する第1のスイッチ322−1から322−Nを挟んだ2つの側のクロック線142の電圧を個々に監視する。
第2のスイッチ322−1から322−Nの各々は、マスタ送信部110からの情報の送信と、その送信に対するスレーブ装置150−1から150−Nの応答に応じてスイッチの開閉が制御される。したがって、第2のスイッチ322−1から322−Nの各々は、単一の第2のスイッチ制御部325によって制御される。
なお、本実施形態においては、マスタ送信部110及びスレーブ装置150−1から150−Nの各々が、I2Cバス141の電圧が同じ電圧となるようにプルアップ電圧を設定する。
第2のスイッチ制御部325は、マスタ送信部110の情報の送信動作に応じて、第2のスイッチ322−1から322−Nの各々の開閉を制御する。第2のスイッチ制御部325と第2のスイッチ322−1から322−Nとの各々とは、例えば制御信号線を介して制御が行われる。例えば、第2のスイッチ制御部325は、制御信号線がHighとすることで、第2のスイッチ322−1から322−Nの各々を開放するように制御する。
更に、図4及び図5に示す動作シーケンスを用いて、本実施形態における通信システム300の動作を説明する。図5において、“クロック線”及び“データ線”は、スレーブ装置150−1から150−Nの一つに着目した場合において、当該スレーブ装置に接続されたクロック線142及びデータ線143の動作シーケンスを表す。SW1及びSW2は、それぞれ第1のスイッチ323及び第2のスイッチ324の動作シーケンスを示す。各々の動作シーケンスにおいて、“OPEN”はスイッチが開放された状態を示し、“SHORT”はスイッチが短絡した状態を示す。すなわち、第1のスイッチ323又は第2のスイッチ324の状態が“SHORT”である場合には、各々のスイッチを介した信号の伝搬が可能である。また、第1のスイッチ323又は第2のスイッチ324の状態が“OPEN”である場合には、各々のスイッチを介した信号の伝搬が遮断される。“Master Write Address”及び“Master Write Data”は、マスタからの書込み要求であり、それぞれ書込み対象となるスレーブのアドレス及び書き込みデータが送信されることを示す。同様に、“Master Read Address”及び“Master Read Data”は、マスタからの読出し要求であり、それぞれ読出し対象となるスレーブのアドレス及び読出しデータが送信されることを示す。“マスタACK”又は“スレーブACK”のそれぞれは、マスタ又はスレーブの他方からの情報の送信に対する応答を示す。
図4に示す例では、マスタ送信部110が通信を開始する際に、第2のスイッチ制御部325は、マスタ送信部110からの指示に基づいて、第2のスイッチ323−1から323−Nの各々を短絡する(閉じる)ように制御する。マスタ送信部110からアドレス又はデータが送信されている間は、第2のスイッチ323−1から323−Nの各々は短絡された状態となる。
マスタ送信部110からの情報の送信が完了すると、第2のスイッチ制御部325は、第2のスイッチ323−1から323−Nの各々を開放する(開く)ように制御する。スレーブ装置150は、図4において“スレーブACK”として示されているように、第2のスイッチ323が解放されている場合に、ACK又はNACKの応答を行う。この場合には、マスタ受信部130−1から130−Nの各々は、対応するスレーブ装置150−1から150−Nの各々からの応答を個々に受信する。
また、スレーブ装置150−1から150−Nの各々が、マスタ送信部110からの要求に応答して情報を送信する場合には、第2のスイッチ制御部325は、第2のスイッチ323−1から323−Nの各々を開放するように制御する。スレーブ装置150−1から150−Nの各々からの応答の後、対応するマスタ受信部130−1から130−NがACK又はNACKの応答を行う場合も、第2のスイッチ323−1から323−Nの各々は開放した状態となるように制御される。この状態は、図4における“マスタACK”の応答が行われている状態に相当する。
予め定められた通信が終了すると、マスタ送信部110は、通信を終了させる。この場合に、マスタ送信部110からの指示に基づいて、第2のスイッチ制御部325は、第2のスイッチ323−1から323−Nの各々を短絡するように制御する。そして、マスタ送信部110は、スレーブ装置150−1から150−Nの各々に対して、NACK応答とストップビットを送信して通信を完了させる。通信の完了後には、第2のスイッチ制御部325は、第2のスイッチ323−1から323−Nの各々を開放するように制御する。
図4に示す例は、スレーブ装置150の各々が通常の動作を行う場合を示す。したがって、第1のスイッチ322は短絡した状態である。しかしながら、スレーブ装置150は、上述したクロックストレッチを生じさせる場合がある。図5に示す動作シーケンスは、クロックストレッチが生じた場合における通信システム300の動作の一例を示す。
なお、図5に示す例において、“CLOCK_Vm”は、第1のスイッチ322を基準としてマスタ送信部110に近い側におけるクロック線142の電圧を示す。“データ線”は、データ線143の値を示す。また、“通常の動作”は、スレーブ装置150がクロックストレッチを生じさせずに通常の動作を行う場合における動作の例を示す。“クロックストレッチ発生”は、スレーブ装置150がクロックストレッチを生じさせた場合の例を示す。“SW1”は、スレーブ装置150に対応する第1のスイッチ322の状態を表す。CLOCL_Vsは、第1のスイッチ322を基準としてスレーブ装置150に近い側におけるクロック線142の電圧を示す。
以下、図5を用いて、スレーブ装置150がクロックストレッチを生じさせた場合の動作の一例を説明する。
まず、第1のスイッチ制御部324−1から324−Nの各々は、継続してクロック線142の電圧を監視する。この場合に、クロック線142のうち、対応する第1のスイッチ322のマスタ送信部にある側の電圧と、スレーブ装置150にある側の電圧との双方を監視する。上述のように、本実施形態においては、前者の電圧はCLOCK_Vmにて、後者の電圧はCLOCK_Vsにて表される。なお、第1のスイッチ322−1から322−Nの各々は、当初は短絡するように制御されていることを想定する。また、マスタ送信部110及びスレーブ装置150−1から150−Nの各々は、クロック線142及びデータ線143のそれぞれに対してプルアップ電圧を印加することを想定する。
上述のように、クロックストレッチの発生の際には、スレーブ装置150は、クロック線142をLowに設定する。クロックストレッチの発生により、クロック線142では、CLOCK_Vm及び各々のCLOCK_VsがLowとなる。第1のスイッチ制御部324−1から324−Nの各々は、CLOCK_Vm及びCLOCK_Vsが予め定められた時間を超えてLowであることを検知すると、第1のスイッチ322−1から322−Nを開放するように制御する(図5の(1))。上述のように、スレーブ装置150はクロック線142に対してプルアップ電圧を印加する。したがって、第1のスイッチ322の解放に伴い、クロックストレッチが生じていないスレーブ装置150に関するCLOCK_VsはHighとなる。一方、クロックストレッチが生じたスレーブ装置150に関するCLOCK_Vsは、Lowのままの状態が継続する。
そして、第1のスイッチ制御部324−1から324−Nの各々は、CLOCK_Vm及び対応するCLOCK_Vs引き続き監視する。図5の“通常の動作”に示すように、クロックストレッチが生じていないスレーブ装置150に対応する第1のスイッチ制御部324は、対応する第1のスイッチ322を短絡するように制御する。すなわち、CLOCK_VsがHighとなるスレーブ装置150に関しては、第1のスイッチ制御部324−1から324−Nの各々は、対応する第1のスイッチ322を再び短絡するように制御する(図5の(2))。
一方、図5の“クロックストレッチ発生”に示すように、クロックストレッチが生じたスレーブ装置150に対応する第1のスイッチ制御部324は、制御の対象となる第1のスイッチ322を開放した状態が継続するように制御する。すなわち、CLOCK_VsがLowのままであるスレーブ装置150に関しては、対応する第1のスイッチ制御部324は、制御の対象となる第1のスイッチ322を開放した状態が継続するように制御する(図5の(3)等)。
以上のとおり、本発明の第3の実施形態における通信システム300は、スレーブ装置の各々に対応して、バスのクロック線及びデータ線のそれぞれにスイッチが設けられる。スイッチの開閉は、マスタ又はスレーブの各々からの情報の送受信の状況に応じて制御される。したがって、本実施形態における通信システム300は、本発明の第1の実施形態における通信システム100及び第2の実施形態における通信システム200と同様の効果を奏する。また、本実施形態における通信システム300は、バスがI2Cバスである場合に、スレーブのクロックストレッチ動作に対応することが可能となる。
(第4の実施形態)
次に、本発明の第4の実施形態について説明する。図6は、本発明の第4の実施形態における通信システムの構成を示す図である。
図6に示すように、本発明の第4の実施形態における通信システム400は、マスタ送信部110と、第1のスイッチ322−1から322−Nと、第2のスイッチ323−1から323−Nと、第1のスイッチ制御部324−1から324−Nと、第2のスイッチ制御部325と、テスト回路431−1から431−Nとを備える。マスタ送信部110及びマスタ受信部130−1から130−Nは、第1の実施形態における通信システム100が備える同じ構成要素と同一である。第1のスイッチ322−1から322−N、第2のスイッチ323−1から323−N、第1のスイッチ制御部324−1から324−N及び第2のスイッチ制御部325は、第3の実施形態における通信システム300が備える同じ構成要素と同一である。また、テスト回路431−1から431−Nの各々は、第1の実施形態における通信システム100等のマスタ受信部130の一つの変形例である。本実施形態においては、テスト回路431−1から431−Nの各々は、一例として、第3のスイッチ432−1から432−Nと、第4のスイッチ433−1から433−Nと、フリップフロップ434−1から434−Nと、XOR(Exclusive−OR:排他的論理和)ゲート435−1から435−Nと、ラッチ436−1から436−Nと、LED(Light Emitting Diode)437−1から437−Nとを有する。
なお、図6に示すように、テスト回路431−1から431−Nの各々は、I2Cバス141におけるスレーブ装置150−1から150−Nの各々に対する分岐点よりスレーブ装置150−1から150−Nに近い位置に設けられる。
第1から第3の実施形態における通信システム100等では、スレーブ装置150−1から150−Nの各々に対応してマスタ受信部130−1から130−Nが設けられた。これらの実施形態においては、マスタ受信部130−1から130−Nは、一例として必要に応じて通信ネットワークを介して接続され、各々が受信した情報が集約される。しかしながら、各々のスレーブ装置に対応してマスタ受信部を設けることや、マスタ受信部の各々を接続することは、配線を複雑にし、また、コストの増加の原因となる可能性がある。
一方で、通信システム100等が電源ユニットや配電ボード等を含む種々の装置を生産する際の試験工程等にて用いられる場合には、スレーブからは当該試験に必要となる情報が取得可能であればよい可能性がある。
そこで、本実施形態における通信システム400は、マスタ受信部130−1から130−Nとして、テスト回路431−1から431−Nの各々を備える。テスト回路431−1から431−Nは、対応するスレーブ装置150−1から150−Nの動作の妥当性に関する判定を行う。テスト回路431−1から431−Nの構成は、抽出すべきI2Cバス141の通信内容等に応じて適宜定められる。
本実施形態においては、テスト回路431は、スレーブ装置150−1から150−Nの各々から期待通りの応答がなされるか否かを検出するように構成される。すなわち、テスト回路431は、期待通りの応答を行わないスレーブ装置150が存在することを通知する。そして、テスト回路431は、一例として、スレーブ装置150−1から150−Nからの応答を比較するように構成される。この場合に、テスト回路431は、他と異なる応答を行うスレーブ装置150を検出する。
なお、本実施形態においては、マスタはスレーブからの応答を受信しない。したがって、本実施形態においては、マスタ送信部110は、マスタからの応答として常にAckを応答することを想定する。
続いて、本実施形態における通信システム400のテスト回路431の構成要素及び動作を説明する。
第3のスイッチ432−1から432−N及び第4のスイッチ433−1から433−Nは、それぞれ、一端がクロック線142及びデータ線143に接続され、他端がフリップフロップ434−1から434−Nに接続される。すなわち、第3のスイッチ432−1から432−N及び第4のスイッチ433−1から433−Nの各々は、テスト回路431への入力を制御する。
これらのスイッチは、第2のスイッチ制御部325の制御に応じてスイッチの開閉が制御される。第2のスイッチ制御部325は、第2のスイッチ323が解放される場合に、第3のスイッチ432及び第4のスイッチ433を短絡するように制御する。このような制御により、テスト回路431は、第2のスイッチ323が解放され、スレーブ装置150が応答する場合における応答信号の参照が可能となる。
なお、第3のスイッチ432−1から432−Nの各々及び第4のスイッチ433−1から433−Nの各々として、リレーやMOSFET等が用いられる。
フリップフロップ434−1から434−Nの各々は、本実施形態ではDフリップフロップである。第3のスイッチ432を介してフリップフロップ434のクロック端子とクロック線142とが接続され、第4のスイッチ434を介してD端子とデータ線143が接続される。第3のスイッチ432及び第4のスイッチ433の開閉が上述のように制御されることから、スレーブ装置150からの応答がD端子へ入力される。フリップフロップ434は、データ線143の値を保持し、Q端子から出力する。
XORゲート435−1から435−Nは、対応するフリップフロップ434−1から434−NのQ端子から出力された値と、基準信号とを入力として受付ける。XORゲート435は、2つの入力の値が一致する場合にLowを出力し、2つの入力の値が異なる場合にHighを出力する。
つまり、XORゲート435−1から435−Nは、データ線143の値と基準信号との比較を行う。第3のスイッチ432及び第4のスイッチ433の開閉が上述のように制御されることから、XORゲート435−1から435−Nは、結果として、スレーブ装置150からの応答と基準信号との比較を行う。そして、XORゲート435−1から435−Nは、スレーブ装置150からの応答と基準信号の値とが一致する場合にはLowを出力し、スレーブ装置150からの応答と基準信号の値とが異なる場合にはHighを出力する。
すなわち、XORゲート435の出力がHighである場合には、スレーブ装置150からの応答と基準信号の値とが異なっている。言い換えると、XOR435は、対応するスレーブ装置150からの応答が基準信号の値と同じか否かを判定する判定手段として機能する。したがって、基準信号にスレーブ装置150からの応答に応じた値が適切に定められている場合には、XORゲート435の出力を参照することで、スレーブ装置150からの応答が期待通りであるかを判定することが可能となる。
基準信号は、スレーブ装置150からの応答の妥当性を判定する際の基準となる信号である。基準信号の値は、例えば、スレーブ装置150が出力すべき正しい信号の値であってもよいし、他のスレーブ装置150に関するフリップフロップ434のQ端子の値であってもよい。
ラッチ436−1から436−Nは、XORゲート435の出力を入力として受付ける。そして、ラッチ436−1から436−Nは、受付けた値を保持する。ラッチ436−1から436−Nの出力は、それぞれLED437−1から437−Nに接続される。
LED437は、ラッチ436−1から436−Nからの出力に応じて点灯する。すなわち、LED437は、対応するスレーブ装置150からの応答が期待通りでなく、何らかの異常が生じている可能性がある場合に点灯することが可能である。LED437が点灯することで、通信システム400の利用者は、点灯したLED437に対応するスレーブ装置150に異常が生じている(期待通りの動作を行っていない)可能性があることを把握することが可能となる。
なお、XORゲート435の出力は、ラッチ436又はLED437とは異なる装置等に接続されてもよい。すなわち、本実施形態における通信システム400は、スレーブ装置150に異常が生じていることをLED437の点灯とは異なる任意の手段で通知してもよい。又は通信システム400は、スレーブ装置150に異常が生じている可能性がある場合に、通常とは異なる任意の動作を行ってもよい。
例えば、スレーブ装置150に異常が生じている可能性がある場合には、図示しないディスプレイやスピーカ等のLED437とは異なる任意の出力手段へ通知されてもよい。また、通信システム400は、この場合には、異常が生じている可能性があるスレーブ装置150に対してその旨を通知してもよい。異常が生じている可能性があるスレーブ装置150をI2Cバス141から分離するよう、その旨が対応する第1のスイッチ制御部324又は第2のスイッチ制御部325へ通知されてもよい。更に、通信システム400の動作が停止するよう、マスタ送信部110に対してスレーブ装置150のいずれかに異常が生じている可能性がある旨が通知されてもよい。上述した例においては、XORゲート435の出力は、スレーブ装置150に異常が生じている可能性がある場合に行われる動作に応じて、当該動作に関連する装置等に適宜接続される。
また、本実施形態におけるテスト回路431の構成は一例に過ぎない。テスト回路431は、上述した機能を実行する任意の他の構成であってもよい。
以上のとおり、本発明の第4の実施形態における通信システム400は、第1から第3の実施形態における通信システムのマスタ受信部130の変形例として、テスト回路431を備える。本実施形態においては、テスト回路431は、スレーブ装置の試験などに際して、当該試験に必要となる情報を抽出する。そのため、テスト回路は、第1の実施形態における通信システム100等が備えるマスタ送信部130と比較して簡易な構成にて実現される。また、図6に示す例のように、各々のテスト回路431において結果が出力されることから、テスト回路431は、複雑な配線を用いずに実現可能である。すなわち、テスト回路431は、低いコストで配置される。したがって、本実施形態における通信システム400は、低いコストでのバスに接続されるスレーブ装置の数の増加を可能とする。そして、本実施形態における通信システム400は、1台のマスタを用いた多数のスレーブに対する通信試験の実行を可能にする。
(第5の実施形態)
次に、本発明の第5の実施形態について説明する。図7は、本発明の第5の実施形態における通信システムの構成を示す図である。
図7に示すように、本発明の第5の実施形態における通信システム500は、マスタ送信部110と、第1のスイッチ322−1から322−Nと、第2のスイッチ323−1から323−Nと、第1のスイッチ制御部324−1から324−Nと、第2のスイッチ制御部325と、テスト回路531−1から531−Nとを備える。マスタ送信部110及びマスタ受信部130−1から130−Nは、第1の実施形態における通信システム100が備える同じ構成要素と同一である。第1のスイッチ322−1から322−N、第2のスイッチ323−1から323−N、第1のスイッチ制御部324−1から324−N及び第2のスイッチ制御部325は、第3の実施形態における通信システム300が備える同じ構成要素と同一である。また、テスト回路531−1から531−Nの各々は、第1の実施形態における通信システム100等のマスタ受信部130の別の変形例である。
本実施形態においては、テスト回路531−1から531−Nの各々は、一例として、ラッチ536−1から536−Nと、LED537−1から537−Nと、AND(論理積)ゲート538−1から538−Nとを有する。なお、ラッチ536−1から536−N及びLED537−1から537−Nは、第4の実施形態におけるラッチ436−1から436−N及びLED437−1から437−Nとそれぞれ同様の動作を行う。
本実施形態においては、第4の実施形態における通信システム400のテスト回路431と同様に、テスト回路531は、対応するスレーブ装置150から期待通りの応答がなされるか否かを検出するように構成される。そして、本実施形態におけるテスト回路531は、対応するスレーブ装置150からの応答に含まれる情報の特徴に基づいて、対応するスレーブ装置150から期待通りの応答がなされるか否かを検出する。
上述のように、SMBusでは、物理層としてI2Cが用いられる。PMBusのステータス情報では、スレーブに異常が生じた場合に、スレーブからの応答のうち、当該異常に応じたビットがHighになる動作がある。更に、スレーブからのACK応答はLowである。すなわち、スレーブが正常に動作する場合には、スレーブの応答はすべてのビットがLowとなる。
そこで、テスト回路531−1から531−Nの各々は、スレーブの応答にHighとなるビットが含まれるかを判定して、スレーブ装置150に異常が生じている(期待通りの動作を行っていない)可能性があることを検知する。そして、テスト回路531−1から531−Nの各々は、スレーブの応答にHighとなるビットが含まれる場合に、スレーブが期待する動作を行っていないとする判定が可能な構成を有する。
続いて、本実施形態における通信システム500のテスト回路531の構成要素及び動作を説明する。
ANDゲート538−1から538−Nの各々は、クロック線142と、データ線143と、第2のスイッチ制御部325からの制御信号線とを入力として受付ける。ANDゲート538−1から538−Nの各々は、入力のいずれもがHighである場合にHighを出力し、それ以外の場合には、Lowを出力する。
本実施形態においては、第2のスイッチ制御部325は、第2のスイッチ323−1から323−Nの各々を解放するように制御する場合に、制御信号線をHighとすることを想定する。第2のスイッチ323−1から323−Nの各々が解放された場合には、ANDゲート538−1から538−Nの各々に接続されるデータ線143には、対応するスレーブ装置150からの応答が伝搬する。また、スレーブ装置150が応答する場合には、クロック線142はHighとなる。すなわち、スレーブ装置150からのデータ線143を介した応答がHighとなる場合に、ANDゲート538はHighを出力する。
したがって、上述したSMBusのように、異常が生じたスレーブ装置150がデータ線143を介して値にHighを含む応答を行う場合に、ANDゲート538−1から538−NはHighを出力する。言い換えると、ANDゲート538−1から538−Nは、スレーブ装置150の異常の有無を判定する判定部として機能する。そして、ANDゲート538−1から538−NがHighを出力した場合に、対応するLED537は点灯する。すなわち、上述したSMBusの例等において、LED537は、対応するスレーブ装置150に何らかの異常が生じている可能性がある場合に点灯する。LED537が点灯することで、通信システム400の利用者は、点灯したLED537に対応するスレーブ装置150に異常が生じている可能性があることを把握することが可能となる。
なお、ANDゲート538の出力は、ラッチ536又はLED537とは異なる装置等に接続されてもよい。すなわち、本実施形態における通信システム500は、第4の実施形態における通信システム400と同様に、スレーブ装置150に異常が生じていることをLED537の点灯とは異なる任意の手段で通知してもよい。
また、本実施形態におけるテスト回路531の構成は一例に過ぎない。テスト回路531は、上述した機能を実行する任意の他の構成であってもよい。
以上のとおり、本発明の第5の実施形態における通信システム500は、第4の実施形態と同様に、テスト回路を備える。本実施形態においては、テスト回路は、スレーブ装置の試験などに際して、スレーブ装置に異常が生じた場合に通知が可能な構成を有する。そのため、本実施形態におけるテスト回路は、第4の実施形態におけるテスト回路と同様に、第1の実施形態における通信システム100等が備えるマスタ送信部と比較して簡易な構成にて実現される。したがって、本実施形態における通信システム500は、低いコストでのバスに接続されるスレーブ装置の数の増加を可能とする。そして、本実施形態における通信システム500は、1台のマスタを用いた多数のスレーブに対する通信試験の実行を可能にする。
(第6の実施形態)
次に、本発明の第6の実施形態について説明する。図8は、本発明の第6の実施形態における通信システムの構成を示す図である。図9は、本発明の第6の実施形態における通信システムの別の構成を示す図である。図10は、本発明の第6の実施形態における通信システムのクロックストレッチ動作に関する動作シーケンスを示す図である。
図8に示すように、本発明の第6の実施形態における通信システム600は、マスタ送信部110と、テスト制御部626と、テスト回路631−1から631−Nと、無線通信部660とを備える。テスト制御部626は、テスト回路631−1から631−Nの動作及びその動作に関連する通信を制御する。テスト回路631−1から631−Nの各々は、第4又は第5の実施形態におけるテスト回路431−1から431−N又はテスト回路531−1から531−Nと同様の構成を備える。
また、無線通信部660は、一例として、第1の送信部661と、第1の受信部661−1から661−Nと、制御部663−1から663−Nと、スイッチ部664−1から664−Nと、第2の送信部665−1から665−Nと、第2の受信部666−1から666−Nとを有する。
なお、図9に示すように、本実施形態における通信システム600は、テスト回路631−1から631−Nに代えて、マスタ受信部630−1から630−Nを備えてもよい。マスタ受信部630−1から630−Nの各々は、例えば、第1から第3の実施形態等におけるマスタ受信部130−1から130−Nの各々と同様の構成を備える。
すなわち、本実施形態における通信システム600は、I2Cバス141を介した通信が、無線通信部660を用いて行われる。これ以外の点については、本実施形態における通信システム600は、他の実施形態における通信システムと基本的に同様の動作を行う。
続いて、本実施形態における通信システム600の構成及び動作の例について説明する。
マスタ送信部110は、他の実施形態におけるマスタ送信部110と同様に、I2Cバス141を介してスレーブ装置150−1から150−Nの各々へ情報を送信する。マスタ送信部110側のI2Cバス141を伝搬する情報は、第1の送信部661から第1の受信部662−1から662−Nへ無線にて送信される。第1の受信部662−1から662−Nにて受信された当該情報は、制御部663−1から663−Nの各々へ伝搬される。制御部663−1から663−Nの各々は、I2Cバス141の各々の信号線等に設けられたスイッチ部664−1から664−Nを適宜制御する等により、当該情報をスレーブ装置150側のI2Cバス141へ伝搬する。
スレーブ装置150−1から150−Nの各々は、マスタ送信部110から送信された情報に対して適宜応答する。スレーブ装置150からの応答に応じて、テスト回路631は、第4又は第5の実施形態における例のように、対応するスレーブ装置150の動作の妥当性に関する判定を行う。テスト回路テスト回路631−1から631−Nに代えてマスタ受信部631−0から630−Nが設けられている場合には、マスタ受信部630は、対応するスレーブ装置150から必要な情報を受信する。
また、本実施形態においても、スレーブ装置150−1から150−Nの各々においてクロックストレッチが生じる場合がある。この場合の動作の一例を、図10に示す動作シーケンスを参照して説明する。
なお、図10に示す動作シーケンスの例では、“マスタ”はマスタ送信部110に関する動作を示す。“マスタ”において、“クロック線”はマスタ送信部110からクロック線142へ送られるクロック信号の値を示し、“CS受信”は、第2の受信部666が受信した信号の値を示す。
また、図10においては、“クロックストレッチ発生”は、クロックストレッチが生じたスレーブ装置150に関する動作を示す。“クロックストレッチ発生”において、“クロック線”は、当該スレーブ装置150と接続するクロック線142におけるクロック信号の値を示し、“CS送信”は、対応する第2の受信部665が送信した信号の値を示す。また、“クロックストレッチ未発生”は、クロックストレッチが生じていないスレーブ装置150に関する動作を示す。“クロックストレッチ未発生”において、“クロック線”は、当該スレーブ装置150と接続するクロック線142におけるクロック信号の値を示し、“CS送信”は、対応する第2の受信部665が送信した信号の値を示す。
マスタ送信部110がクロック線142をHighした後、スレーブ装置150においてクロックストレッチが生じると、スレーブ装置150と接続するクロック線142の値がLowとなる。この場合に、当該スレーブ装置150に対応する第2の送信部665は、クロック線142がLowであることを検知して、クロックストレッチが生じた旨の情報を送信する。すなわち、当該スレーブ装置150における“CS送信”がHighとなる(図10の(1))。
第2の受信部666は、第2の送信部665−1から665−Nのいずれかからのクロックストレッチが生じた旨の情報を受信する。この場合には、“CS受信”の値がHighとなる(図10の(2))。クロックストレッチが生じた旨の情報の受信に応じて、マスタ送信部110は、以降のクロック信号の送信を停止する。
一方、クロックストレッチが生じたスレーブ装置150において、クロックストレッチが終了すると、当該スレーブ装置150は、クロック線142を解放してその後に1サイクル分のパルスを生成する。すなわち、スレーブ装置150は、1サイクルの間に亘り、クロック線142の値をHighとする。この動作に応じて、第2の受信部666は、クロックストレッチが生じた旨の情報の送信を停止する。すなわち、当該スレーブ装置150における“CS送信”がLowとなる(図10の(3))。
第2の受信部666が、第2の送信部665−1から665−Nのいずれからもクロックストレッチが生じた旨の情報を受信しない状態である場合には、“CS受信”はLowとなる。これに応じてマスタ送信部110は、以降のクロック信号の送信を行う(図10の(4))。
なお、通信システム600は、スレーブ装置150においてクロックストレッチが生じた場合に、図10に示す動作シーケンスと異なる動作を行ってもよい。
例えば、クロックストレッチが生じている状態が予め定められた時間を超えて計測する場合には、通信システム600は、クロックストレッチが生じているスレーブ装置150に関する系統を切り離してもよい。すなわち、この場合には、クロックストレッチが生じているスレーブ装置150に対応する第2の送信部666は、クロックストレッチが生じた旨の情報の送信を停止する。そして、当該スレーブ装置150に対応する第1の受信部662は、第1の送信部661から送信される情報の受信を停止する。
又は、テスト回路631は、対応するスレーブ装置150においてクロックストレッチが生じた場合には、その旨を検知して外部に通知してもよい。
以上のとおり、本発明の第6の実施形態における通信システム600は、I2Cバス141等のバスを介した通信を、無線通信部660を用いて行う構成を備える。バスの一部に無線通信部660が用いられることで、通信システム600においては、配線の複雑化を回避しつつ、マスタ送信部110に接続されるスレーブ装置の数の増加が可能となる。また、本実施形態における通信システム600は、第1から第5の各実施形態における通信システムと同様の効果を奏する。したがって、本実施形態における通信システム500は、低いコストでのバスに接続されるスレーブ装置の数の増加を可能とする。そして、本実施形態における通信システム500は、1台のマスタを用いた多数のスレーブに対する通信試験の実行を可能にする。
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、各実施形態における構成は、本発明のスコープを逸脱しない限りにおいて、互いに組み合わせることが可能である。
本発明の一部または全部は、以下の付記のように表されるが、これに限られない。
(付記1)
少なくとも一つのスレーブ装置にバスを介して情報を送信するマスタ送信部と、
前記スレーブ装置の各々に対応して設けられており、前記バスを分離する少なくとも一つの分離機構と、
前記スレーブ装置の各々に対応して前記スレーブ装置と前記分離機構との間の前記バスに接続されており、対応する前記スレーブ装置から送信される情報を受信する少なくとも一つのマスタ受信部とを備える、通信システム。
(付記2)
前記分離機構は、前記バスに設けられるスイッチである、付記1に記載の通信システム。
(付記3)
前記バスは、データ線とクロック線とを含み、
前記分離機構は、前記クロック線に設けられる第1のスイッチと、前記データ線に設けられる第2のスイッチとを有する、付記1又は2に記載の通信システム。
(付記4)
前記第1のスイッチに対応して設けられ、前記クロック線が予め定められた期間を超えて所定の低電位状態である場合に前記第1のスイッチを開放する少なくとも一つの第1のスイッチ制御部を備える、付記3に記載の通信システム。
(付記5)
前記第1のスイッチ制御部は、前記第1のスイッチに対する前記マスタ送信部側にある前記クロック線の電圧と、前記第1のスイッチに対する前記スレーブ装置側にある前記クロック線の電圧とを比較して、前記第1のスイッチの開閉を制御する、付記3又は4に記載の通信システム。
(付記6)
前記第2のスイッチに対応して設けられ、前記第2のスイッチに対応する前記スレーブ装置からの応答に応じて、前記第2のスイッチを開放するように制御する少なくとも一つの第2のスイッチ制御部を備える、付記3から5のいずれか一項に記載の通信システム。
(付記7)
前記マスタ受信部は、対応する前記スレーブ装置からの前記マスタ送信部に対する応答が所定の条件を満たすか否かを判定するテスト回路である、付記1から6のいずれか一項に記載の通信システム。
(付記8)
前記テスト回路は、対応する前記スレーブ装置からの前記応答と所定の基準信号との比較結果に基づいて、前記応答が所定の条件を満たすか否かを判定する、
付記7のいずれか一項に記載の通信システム。
(付記9)
前記テスト回路は、対応する前記スレーブ装置からの前記応答が所定の値を含むか否かの判定結果に基づいて、前記応答が所定の条件を満たすか否かを判定する、付記7又は8に記載の通信システム。
(付記10)
前記マスタ送信部と前記スレーブ装置との間の前記バスに設けられ、前記マスタ送信部から送信される情報を無線で送信する第1の送信部及び第1の受信部と、
前記マスタ送信部と前記スレーブ装置との間の前記クロック線に設けられ、前記スレーブ装置からのクロックに関する情報を無線で送信する第2の送信部及び第2の受信部とを備える、付記3から9のいずれか一項に記載の通信システム。
(付記11)
前記分離機構は、前記バスの少なくともデータ線に配置されたダイオードである、付記1から9のいずれか一項に記載の通信システム。
(付記12)
少なくとも一つのスレーブ装置にバスを介して情報を送信し、
前記スレーブ装置の各々に対応する位置にて前記バスを分離し、
前記バスが分離された状態で、前記スレーブ装置の各々から送信される情報を受信する、通信方法。