(57)【要約】【課題】バスマスタ装置からバススレーブ装置へのリセット専用線が不要なシリアルバスシステムを提供する。【解決手段】シリアルデータ線２、シリアルクロック線３、プルアップ抵抗４，５、バスマスタ装置６１，６２、及び通常のバススレーブ装置７１，７２を備えたシリアルバスシステム１４において、バススレーブ装置のハングアップを検出すると、バススレーブ装置をシリアルデータ線から切り離すハングアップ検出回路８１，８２と、リセット用バススレーブ装置１６とを設ける。バスマスタ装置は、通常のバススレーブ装置のうち、コマンドを送信したにもかかわらず応答しないバススレーブ装置をハングアップしたものとして特定し、そのバススレーブ装置をリセットするようにリセットコマンドをＩ２Ｃバス経由でリセット用バススレーブ装置に送信する。【選択図】図１
2010055474.tif 000002
【特許請求の範囲】
【請求項１】
シリアルデータ線と、
前記シリアルデータ線と電源との間に接続される第１のプルアップ抵抗と、
シリアルクロック線と、
前記シリアルクロック線と電源との間に接続される第２のプルアップ抵抗と、
前記シリアルデータ線及び前記シリアルクロック線に接続される第１のバススレーブ装置と、
前記シリアルデータ線と前記第１のバススレーブ装置との間に接続され、前記第１のバススレーブ装置のハングアップを検出すると、前記第１のバススレーブ装置を前記シリアルデータ線から切り離す第１のハングアップ検出回路と、
前記シリアルデータ線及び前記シリアルクロック線に接続され、所定のリセットコマンドに応答して前記第１のバススレーブ装置をリセットする第２のバススレーブ装置と、
前記シリアルデータ線及び前記シリアルクロック線に接続され、前記第１のバススレーブ装置のハングアップを検出すると、前記所定のリセットコマンドを前記シリアルデータ線経由で前記第２のバススレーブ装置に送信するバスマスタ装置とを備える、シリアルバスシステム。
【請求項２】
請求項１に記載のシリアルバスシステムであって、
前記第１のバススレーブ装置は複数設けられ、
前記バスマスタ装置は、前記複数の第１のバススレーブ装置のうち、所定のコマンドを送信したにもかかわらず応答しない第１のバススレーブ装置をハングアップしたものとして特定し、その特定した第１のバススレーブ装置をリセットするように前記所定のリセットコマンドを前記シリアルデータ線経由で前記第２のバススレーブ装置に送信する、シリアルバスシステム。
【請求項３】
請求項１に記載のシリアルバスシステムであって、
前記第１のハングアップ検出回路は、
前記シリアルデータ線と前記第１のバススレーブ装置との間に接続される第１のスイッチング素子と、
前記第１のバススレーブ装置がハングアップしてから所定時間経過後に前記第１のスイッチング素子をオフにする第１のターンオフ手段とを含む、シリアルバスシステム。
【請求項４】
請求項１に記載のシリアルバスシステムであってさらに、
前記第１のバススレーブ装置のシリアルデータ入出力端子と電源との間に接続される第３のプルアップ抵抗を備え、
前記第１のハングアップ検出回路は、
第１の充放電ノードと接地との間に接続される第１のキャパシタと、
前記第１の充放電ノードに接続される制御電極と、前記シリアルデータ線に接続される一方導通電極と、前記第１のバススレーブ装置のシリアルデータ入出力端子に接続される他方導通電極とを有するトランジスタと、
前記第１の充放電ノードと前記第１のバススレーブ装置のシリアルデータ入出力端子との間に接続される第１の抵抗とを含む、シリアルバスシステム。
【請求項５】
請求項１に記載のシリアルバスシステムであってさらに、
前記シリアルデータ線と前記第２のバススレーブ装置との間に接続され、前記第２のバススレーブ装置のハングアップを検出すると、前記第２のバススレーブ装置を前記シリアルデータ線から切り離し、前記第２のバススレーブ装置をリセットする第２のハングアップ検出回路を備える、シリアルバスシステム。
【請求項６】
請求項５に記載のシリアルバスシステムであって、
前記第２のハングアップ検出回路は、
前記シリアルデータ線と前記第２のバススレーブ装置との間に接続される第２のスイッチング素子と、
前記第２のバススレーブ装置がハングアップしてから所定時間経過後に前記第２のスイッチング素子をオフにする第２のターンオフ手段とを含む、シリアルバスシステム。
【請求項７】
請求項５に記載のシリアルバスシステムであってさらに、
前記第２のバススレーブ装置のシリアルデータ入出力端子と電源との間に接続される第４のプルアップ抵抗を備え、
前記第２のハングアップ検出回路は、
第２の充放電ノードと接地との間に接続される第２のキャパシタと、
前記第２の充放電ノードに接続される制御電極と、前記シリアルデータ線に接続される一方導通電極と、前記第２のバススレーブ装置のシリアルデータ入出力端子に接続される他方導通電極とを有するトランジスタと、
前記第２の充放電ノードと前記第２のバススレーブ装置のシリアルデータ入出力端子との間に接続される第２の抵抗と、
前記第２の充放電ノードの電圧に応答して前記第２のバススレーブ装置をリセットするためのリセット信号を生成するバッファとを含む、シリアルバスシステム。
【請求項８】
請求項１又は２に記載のシリアルバスシステムであって、
前記第２のバススレーブ装置は、前記所定のリセットコマンドをデコードして前記第１のバススレーブ装置をリセットするためのリセット信号を生成するコマンドデコーダを含む、シリアルバスシステム。
【請求項９】
シリアルデータ線と、
前記シリアルデータ線と電源との間に接続される第１のプルアップ抵抗と、
シリアルクロック線と、
前記シリアルクロック線と電源との間に接続される第２のプルアップ抵抗と、
各々が前記シリアルデータ線及び前記シリアルクロック線に接続される複数の第１のバススレーブ装置と、
前記シリアルデータ線と前記第１のバススレーブ装置との間に接続され、前記第１のバススレーブ装置のハングアップを検出すると、前記第１のバススレーブ装置を前記シリアルデータ線から切り離す複数の第１のハングアップ検出回路と、
前記シリアルデータ線及び前記シリアルクロック線に接続され、所定のリセットコマンドに応答して前記第１のバススレーブ装置をリセットする第２のバススレーブ装置と、
前記シリアルデータ線と前記第２のバススレーブ装置との間に接続され、前記第２のバススレーブ装置のハングアップを検出すると、前記第２のバススレーブ装置を前記シリアルデータ線から切り離し、前記第２のバススレーブ装置をリセットする第２のハングアップ検出回路と、
前記シリアルデータ線及び前記シリアルクロック線に接続され、前記第１のバススレーブ装置のハングアップを検出すると、前記複数の第１のバススレーブ装置のうち、所定のコマンドを送信したにもかかわらず応答しない第１のバススレーブ装置をハングアップしたものとして特定し、その特定した第１のバススレーブ装置をリセットするように前記所定のリセットコマンドを前記シリアルデータ線経由で前記第２のバススレーブ装置に送信するバスマスタ装置とを備える、シリアルバスシステム。
【請求項１０】
シリアルデータ線と、前記シリアルデータ線と電源との間に接続される第１のプルアップ抵抗と、シリアルクロック線と、前記シリアルクロック線と電源との間に接続される第２のプルアップ抵抗と、前記シリアルデータ線及び前記シリアルクロック線に接続されるバスマスタ装置と、前記シリアルデータ線及び前記シリアルクロック線に接続される第１のバススレーブ装置と、前記シリアルデータ線及び前記シリアルクロック線に接続される第２のバススレーブ装置とを備えたシリアルバスシステムにおけるハングアップスレーブリセット方法であって、
前記シリアルバスシステムはさらに、前記シリアルデータ線と前記第１のバススレーブ装置との間に接続される第１のハングアップ検出回路を備え、
前記ハングアップスレーブリセット方法は、
前記第１のハングアップ検出回路が前記第１のバススレーブ装置のハングアップを検出すると、前記第１のバススレーブ装置を前記シリアルデータ線から切り離すステップと、
前記バスマスタ装置が前記第１のバススレーブ装置のハングアップを検出すると、所定のリセットコマンドを前記シリアルデータ線経由で前記第２のバススレーブ装置に送信するステップと、
前記第２のバススレーブ装置が前記所定のリセットコマンドに応答して前記第１のバススレーブ装置をリセットするステップとを含む、ハングアップスレーブリセット方法。
【請求項１１】
請求項１０に記載のハングアップスレーブリセット方法であって、
前記シリアルバスシステムはさらに、前記シリアルデータ線と前記第２のバススレーブ装置との間に接続される第２のハングアップ検出回路を備え、
前記ハングアップスレーブリセット方法はさらに、
前記第２のハングアップ検出回路が前記第２のバススレーブ装置のハングアップを検出すると、前記第２のバススレーブ装置を前記シリアルデータ線から切り離し、前記第２のバススレーブ装置をリセットするステップを含む、ハングアップスレーブリセット方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シリアルバスシステムに関し、さらに詳しくは、Ｉ２Ｃ（Inter Integrated Circuit、以下「Ｉ２Ｃ」と表記する。）バスを利用したシリアルバスシステムに関する。
【背景技術】
【０００２】
Ｉ２Ｃバスは、ＩＣ（集積回路）間の通信用にオランダのフィリップス社が開発した二線式双方向シリアルバスで、コンピュータ製品等のほぼ全てに採用されている。Ｉ２Ｃバスの代表的な用途としては、シリアルＥＥＰＲＯＭ(Electrically Erasable Programmable Read Only Memory)へのアクセス、ＤＩＭＭ(Dual Inline Memory Module)におけるＳＰＤ(Serial Presence Detect)、温度センサの読み取り、ＧＰＩＯ(General Purpose I/O)エキスパンダの制御、モニタプラグアンドプレイ等の通信がある。
【０００３】
図６は、Ｉ２Ｃを利用したシリアルバスシステムの一例を示す。図６を参照して、このシリアルバスシステム１は、シリアルデータ線２と、シリアルクロック線３と、プルアップ抵抗４，５と、バスマスタ装置６と、バススレーブ装置７とを備える。プルアップ抵抗４は、電源Ｖｃｃ（たとえば５．０Ｖ）とシリアルデータ線２との間に接続される。プルアップ抵抗５は、電源Ｖｃｃとシリアルクロック線３との間に接続される。バスマスタ装置６の各々は、シリアルデータ線２及びシリアルクロック線３に接続される。バススレーブ装置７の各々は、シリアルデータ線２及びシリアルクロック線３に接続される。バスマスタ装置６はＣＰＵ(Central Processing Unit)等で構成され、バススレーブ装置７に各種制御を行うよう指令する。バススレーブ装置７は、バスマスタ装置６からの指令に従って各種制御を行う。シリアルクロック線３は、バスマスタ装置６からバススレーブ装置７へシリアルクロック信号ＳＣＬを供給するためのものである。シリアルデータ線２は、シリアルクロック信号ＳＣＬに同期して、バスマスタ装置６からバススレーブ装置７へ又はバススレーブ装置７からバスマスタ装置６へシリアルデータ信号ＳＤＡを供給するためのものである。
【０００４】
シリアルバスシステム１では、シリアルデータ線２及びシリアルクロック線３からなるＩ２Ｃバスが複数のバスマスタ装置６及び複数のバススレーブ装置７によって共用されている。もしバススレーブ装置７の１つが何らかの原因でハングアップすると、シリアルデータ線２の電圧を０Ｖまで引き下げてしまう。そのため、ハングアップしているバススレーブ装置７以外のバススレーブ装置７もＩ２Ｃバスを使用できなくなる。この状態では、バスマスタ装置６はいずれのバススレーブ装置７とも通信することができないので、ハングアップしているバススレーブ装置７を特定することは不可能である。
【０００５】
バススレーブ装置７の１つがハングアップしている場合、バスマスタ装置６はそのバススレーブ装置７を特定することができないので、全てのバススレーブ装置７をリセットするしかない。具体的には、各バスマスタ装置６はリセット信号ＲＳＴをＯＲ回路８経由で全てのバススレーブ装置７に送信する。したがって、ハングアップしているバススレーブ装置７だけでなくハングアップしていないバススレーブ装置７もリセット信号ＲＳＴに応答してリセットされる。ハングアップしていないバススレーブ装置７は現在の制御状態を正常に記憶しているにもかかわらず、初期化されてしまう。そのため、シリアルバスシステム１が誤動作する場合がある。
【０００６】
リセット信号ＲＳＴをバスマスタ装置６からバススレーブ装置７へ送信するためには、リセット専用線９を追加し、バスマスタ装置６にリセット信号ＲＳＴの出力ピンを追加する必要もある。バスマスタ装置６及びバススレーブ装置７が同一基板上に搭載される場合であれば、リセット専用線９を追加することは比較的容易である。しかしながら、図６に示すように、バスマスタ装置６がマザーボードのようなメインカード１０側に配置され、バススレーブ装置７がオプションボードのようなサブカード１１側に配置される場合、リセット専用線９を追加することは容易ではない。すなわち、メインカード１０側のＩ２Ｃバスとサブカード１１側のＩ２Ｃバスとはコネクタ１２で相互に接続されているため、コネクタ１２に２ピンしかなければ、もう１つピンを増設しなければならない。また、コネクタ１２にピンを増設できなければ、もう１つコネクタ１３を増設しなければならない。
【０００７】
一方、特表２００４−５２８６２７号公報（特許文献１）は、ハングアップしているバススレーブ装置の特定を可能にしたシリアルバスシステムを開示する。このシステムは、複数のバススレーブ装置に対応して設けられる複数のスイッチを備える。各スイッチは、Ｉ２Ｃバスの途中であって、対応するバススレーブ装置よりもバスマスタ装置に近い側に挿入される。バススレーブ装置の１つがハングアップすると、スイッチは全てオフにされる。その後、スイッチはバスマスタ装置に近い方から順にオンにされる。これにより、ハングアップしているバススレーブ装置が特定される。しかしながら、バススレーブ装置と同じ数のスイッチが必要で、しかも、それらのスイッチを順にオンにしていく必要があるので、回路構成が複雑になるという問題がある。
【０００８】
また、特開平１０−３０３９５０号公報（特許文献２）は、三線式双方向シリアルバスに接続された複数の機能ユニットのうちのある機能ユニットが故障しても、シリアルバスには影響を与えず、他の機能ユニット間での通信を可能にし、さらに障害発生機能ユニットの特定を容易にするシリアルバス接続装置を開示する。障害時においては、シリアルバス出力制御部の故障によってシリアルバス出力線のいずれかがオン状態のまま解除されないため、自己スタック検出回路内のカウンタがカウントアップをし続ける。そして、予め設定されたカウンタオーバーフロー値に達すると、カウンタがキャリー端子からキャリー信号を出力する。キャリー信号が出力されると、これがインバータ素子で反転され、出力イネーブル線がオフになる。これにより、実際にシリアルバス出力線に出力されているデータが、シリアルバスに出力されることを抑えることが可能となる。また、出力イネーブル線の信号は、自己スタック検出回路内で、アンド素子を介してカウンタのイネーブル端子に入力され、このイネーブル端子がオフになる。すると、カウントアップ動作が停止すると共に、キャリー端子からキャリー信号を出力し続ける。以降、シリアルバス出力線がオフになり、カウンタのリセット端子がオンになるまで、出力イネーブル線がオフのままである。
【０００９】
しかしながら、カウンタのリセット端子には、入力端子が３本のシリアルバス出力線に接続された３入力オア素子及びインバータ素子を介してシリアルバス出力制御部が接続されており、カウンタはシリアルバス出力制御部によってリセットされるようになっている。したがって、シリアルバス出力制御部が故障しているにもかかわらず、どのようにしてカウンタをリセットするのか、その詳細は記載されていない。
【特許文献１】特表２００４−５２８６２７号公報
【特許文献２】特開平１０−３０３９５０号公報
【特許文献３】特開２００４−６１４４８号公報
【特許文献４】特開平１０−１４３４６３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明の目的は、バスマスタ装置からバススレーブ装置へのリセット専用線が不要なシリアルバスシステム及びハングアップスレーブリセット方法を提供することである。
【課題を解決するための手段及び発明の効果】
【００１１】
本発明によるシリアルバスシステムは、シリアルデータ線と、第１のプルアップ抵抗と、シリアルクロック線と、第２のプルアップ抵抗と、第１のバススレーブ装置と、第１のハングアップ検出回路と、第２のバススレーブ装置と、バスマスタ装置とを備える。第１のプルアップ抵抗は、シリアルデータ線と電源との間に接続される。第２のプルアップ抵抗は、シリアルクロック線と電源との間に接続される。第１のバススレーブ装置は、シリアルデータ線及びシリアルクロック線に接続される。第１のハングアップ検出回路は、シリアルデータ線と第１のバススレーブ装置との間に接続され、第１のバススレーブ装置のハングアップを検出すると、第１のバススレーブ装置をシリアルデータ線から切り離す。第２のバススレーブ装置は、シリアルデータ線及びシリアルクロック線に接続され、所定のリセットコマンドに応答して第１のバススレーブ装置をリセットする。バスマスタ装置は、シリアルデータ線及びシリアルクロック線に接続され、第１のバススレーブ装置のハングアップを検出すると、所定のリセットコマンドをシリアルデータ線経由で第２のバススレーブ装置に送信する。
【００１２】
本発明によれば、第１のバススレーブ装置がハングアップしてシリアルデータ線の電圧が引き下げられても、第１のハングアップ検出回路がそのハングアップを検出すると、第１のバススレーブ装置をシリアルデータ線から切り離す。そのため、シリアルデータ線の使用が可能になり、バスマスタ装置はシリアルデータ線経由でリセットコマンドを第２のバススレーブ装置に送信し、第２のバススレーブ装置がリセットコマンドに応答して第１のバススレーブ装置をリセットする。その結果、バスマスタ装置からバススレーブ装置へのリセット専用線は不要である。
【００１３】
好ましくは、第１のバススレーブ装置は複数設けられる。バスマスタ装置は、複数の第１のバススレーブ装置のうち、所定のコマンドを送信したにもかかわらず応答しない第１のバススレーブ装置をハングアップしたものとして特定し、その特定した第１のバススレーブ装置をリセットするように所定のリセットコマンドをシリアルデータ線経由で第２のバススレーブ装置に送信する。
【００１４】
この場合、第２のバススレーブ装置がハングアップした第１のバススレーブ装置だけをリセットする。
【００１５】
好ましくは、シリアルバスシステムはさらに、第２のハングアップ検出回路を備える。第２のハングアップ検出回路は、シリアルデータ線と第２のバススレーブ装置との間に接続され、第２のバススレーブ装置のハングアップを検出すると、第２のバススレーブ装置をシリアルデータ線から切り離し、第２のバススレーブ装置をリセットする。
【００１６】
この場合、第２のバススレーブ装置がハングアップしても、第２のハングアップ検出回路がそのハングアップを検出すると、第２のバススレーブ装置をシリアルデータ線から切り離し、かつ、第２のバススレーブ装置をリセットする。
【００１７】
本発明によるハングアップスレーブリセット方法は、第１のハングアップ検出回路が第１のバススレーブ装置のハングアップを検出すると、第１のバススレーブ装置をシリアルデータ線から切り離すステップと、バスマスタ装置が第１のバススレーブ装置のハングアップを検出すると、所定のリセットコマンドをシリアルデータ線経由で第２のバススレーブ装置に送信するステップと、第２のバススレーブ装置が所定のリセットコマンドに応答して第１のバススレーブ装置をリセットするステップとを含む。
【００１８】
好ましくは、ハングアップスレーブリセット方法はさらに、第２のハングアップ検出回路が第２のバススレーブ装置のハングアップを検出すると、第２のバススレーブ装置をシリアルデータ線から切り離し、第２のバススレーブ装置をリセットするステップを含む。
【発明を実施するための最良の形態】
【００１９】
以下、図面を参照し、本発明の実施の形態を詳しく説明する。図中同一又は相当部分には同一符号を付してその説明は繰り返さない。
【００２０】
図１を参照して、本発明の実施の形態によるシリアルバスシステム１４は、シリアルデータ線２と、シリアルクロック線３と、プルアップ抵抗４，５と、バスマスタ装置６１，６２と、バススレーブ装置７１〜７ｎとを備える。シリアルデータ線２及びシリアルクロック線３はＩ２Ｃバスを構成する。プルアップ抵抗４は、電源Ｖｃｃ（たとえば５．０Ｖ）とシリアルデータ線２との間に接続される。プルアップ抵抗５は、電源Ｖｃｃとシリアルクロック線３との間に接続される。バスマスタ装置６１，６２の各々は、シリアルデータ線２及びシリアルクロック線３に接続される。バススレーブ装置７１〜７ｎの各々は、シリアルデータ線２及びシリアルクロック線３に接続される。
【００２１】
本例では、バスマスタ装置が２つ例示されているが、バスマスタ装置は１つだけでもよい。また、バススレーブ装置が複数例示されているが、バススレーブ装置は１つだけでも又は３つ以上でもよい。
【００２２】
バスマスタ装置６１，６２はＣＰＵ(Central Processing Unit)等で構成され、バススレーブ装置７１〜７ｎに各種制御を行うよう指令する。バススレーブ装置７１〜７ｎは、バスマスタ装置６１，６２からの指令に従って各種制御を行う。
【００２３】
シリアルクロック線３は、バスマスタ装置６１，６２からバススレーブ装置７１〜７ｎへシリアルクロック信号ＳＣＬを供給するためのものである。シリアルデータ線２は、シリアルクロック信号ＳＣＬに同期して、バスマスタ装置６１，６２からバススレーブ装置７１〜７ｎへ又はバススレーブ装置７１〜７ｎからバスマスタ装置６１，６２へシリアルデータ信号ＳＤＡを供給するためのものである。
【００２４】
プルアップ抵抗４，５及びバスマスタ装置６１，６２はマザーボードのようなメインカード１０側に配置され、バススレーブ装置７１〜７ｎはオプションボードのようなサブカード１１側に配置される。メインカード１０側のＩ２Ｃバスとサブカード１１側のＩ２Ｃバスとはコネクタ１２で相互に接続される。
【００２５】
シリアルバスシステム１４はさらに、ハングアップ検出回路８１〜８ｎを備える。ハングアップ検出回路８１〜８ｎは、バススレーブ装置７１〜７ｎに対応して設けられる。ハングアップ検出回路８１は、シリアルデータ線２と対応するバススレーブ装置７１との間に接続される。ハングアップ検出回路８１は、対応するバススレーブ装置７１のハングアップを検出すると、そのバススレーブ装置７１をシリアルデータ線２から切り離す。ハングアップ検出回路８２は、シリアルデータ線２と対応するバススレーブ装置７２との間に接続される。ハングアップ検出回路８２は、対応するバススレーブ装置７２のハングアップを検出すると、そのバススレーブ装置７２をシリアルデータ線２から切り離す。同様に、ハングアップ検出回路８ｎは、シリアルデータ線２と対応するバススレーブ装置７ｎとの間に接続される。ハングアップ検出回路８ｎは、対応するバススレーブ装置７ｎのハングアップを検出すると、そのバススレーブ装置７ｎをシリアルデータ線２から切り離す。
【００２６】
シリアルバスシステム１４は、バススレーブ装置（以下、リセット用バススレーブ装置１６と区別するために、「通常のバススレーブ装置」という場合がある。）７１〜７ｎ以外に、リセット用バススレーブ装置１６を備える。リセット用バススレーブ装置１６は、シリアルデータ線２及びシリアルクロック線３に接続される。リセット用バススレーブ装置１６は、バスマスタ装置６１，６２から送信される所定のリセットコマンドに応答してバススレーブ装置７１〜７ｎをリセットする。バスマスタ装置６１，６２は、バススレーブ装置７１〜７ｎのハングアップを検出すると、所定のリセットコマンドをＩ２Ｃバス経由でバススレーブ装置１６に送信する。
【００２７】
シリアルバスシステム１４はさらに、リセット機能付きハングアップ検出回路１８を備える。ハングアップ検出回路１８は、シリアルデータ線２とリセット用バススレーブ装置１６との間に接続される。ハングアップ検出回路１８は、リセット用バススレーブ装置１６のハングアップを検出すると、リセット用バススレーブ装置１６をシリアルデータ線２から切り離すとともに、リセット用バススレーブ装置１６をリセットする。
【００２８】
図２を参照して、ハングアップ検出回路８１は、スイッチング素子であるＮ型電界効果トランジスタ２０と、ターンオフ回路２２とを含む。Ｎ型電界効果トランジスタ２０は、充放電ノード２４に接続されるゲート（制御電極）と、シリアルデータ線２に接続されるドレイン（一方導通電極）と、バススレーブ装置７１のシリアルデータ入出力端子２６に接続されるソース（他方導通電極）とを有する。ターンオフ回路２２は、バススレーブ装置７１がハングアップしてから所定時間経過後にＮ型電界効果トランジスタ２０をオフにする。
【００２９】
ターンオフ回路２２は、キャパシタ２８と、抵抗３０とを含む。キャパシタ２８は、充放電ノード２４と接地ＧＮＤとの間に接続される。抵抗３０は、充放電ノード２４とバススレーブ装置７１のシリアルデータ入出力端子２６との間に接続される。キャパシタ２８及び抵抗３０は時定数回路を構成する。バススレーブ装置７１のシリアルデータ入出力端子２６と電源Ｖｃｃとの間にはプルアップ抵抗３２が接続される。
【００３０】
ハングアップ検出回路８２〜８ｎも上記と同じ構成を有するので、その図示及び説明は繰り返さない。
【００３１】
図３を参照して、リセット機能付きハングアップ検出回路１８は、スイッチング素子であるＮ型電界効果トランジスタ３４と、ターンオフ回路３６と、バッファ３８とを含む。Ｎ型電界効果トランジスタ３４は、充放電ノード４０に接続されるゲートと、シリアルデータ線２に接続されるドレインと、リセット用バススレーブ装置１６のシリアルデータ入出力端子４２に接続されるソースとを有する。ターンオフ回路３６は、リセット用バススレーブ装置１６がハングアップしてから所定時間経過後にＮ型電界効果トランジスタ３４をオフにする。
【００３２】
ターンオフ回路３６は、キャパシタ４４と、抵抗４６とを含む。キャパシタ４４は、充放電ノード４０と接地ＧＮＤとの間に接続される。抵抗４６は、充放電ノード４０とリセット用バススレーブ装置１６のシリアルデータ入出力端子４２との間に接続される。キャパシタ４４及び抵抗４６は時定数回路を構成する。リセット用バススレーブ装置１６のシリアルデータ入出力端子４２と電源Ｖｃｃとの間にはプルアップ抵抗４８が接続される。
【００３３】
バッファ３８は、充放電ノード４０の電圧に応答してリセット用バススレーブ装置１６をリセットするためのリセット信号／ＲＳＴ０（スラッシュ「／」はローアクティブ信号を示す。以下同じ。）を生成する。
【００３４】
図４を参照して、リセット用バススレーブ装置１６は、コマンドデコーダ５０と、複数の出力トランジスタ（Ｎ型電界効果トランジスタ）５１〜５ｎとを含む。複数の出力トランジスタ５１〜５ｎは複数のバススレーブ装置７１〜７ｎに対応して設けられる。コマンドデコーダ５０は、バスマスタ装置６１，６２から送信されるリセットコマンドをデコードしてバススレーブ装置７１〜７ｎをリセットするためにハイレベルのリセット信号ＲＳＴ１〜ＲＳＴｎを生成する。出力トランジスタ５１〜５ｎは、リセット信号ＲＳＴ１，ＲＳＴ２〜ＲＳＴｎに応答して選択的にオンになる。出力トランジスタ５１〜５ｎはオンになると、ローレベルのリセット信号／ＲＳＴ１〜／ＲＳＴｎを生成する。図１に示したように、リセット信号／ＲＳＴ１はバススレーブ装置７１に送信され、リセット信号／ＲＳＴ２はバススレーブ装置７２に送信され、リセット信号／ＲＳＴｎはバススレーブ装置７ｎに送信される。
【００３５】
次に、シリアルバスシステム１４の動作を説明する。
【００３６】
再び図１を参照して、たとえばバススレーブ装置７１がハングアップすると、バススレーブ装置７１はシリアルデータ線２の電圧を接地電圧（０Ｖ）まで引き下げる。この間、ハングアップしたバススレーブ装置７１だけでなく、バスマスタ装置６１，６２、その他のバススレーブ装置７２〜７ｎ、及びリセット用バススレーブ装置１６もＩ２Ｃバスを使用できない。
【００３７】
図２を参照して、バススレーブ装置７１がハングアップする前の正常状態においては、ハングアップ検出回路８１のキャパシタ２８はプルアップ抵抗３２及び抵抗３０により充電されているので、充放電ノード２４の電圧は電源電圧である。このとき、Ｎ型電界効果トランジスタ２０はオンになっているので、バススレーブ装置７１はシリアルデータ線２に接続されている。
【００３８】
しかしながら、バススレーブ装置７１がハングアップすると、そのシリアルデータ入出力端子２６の電圧を接地電圧まで引き下げ、かつ、その状態を維持するので、キャパシタ２８は抵抗３０により放電され、充放電ノード２４の電圧は接地電圧になる。そのため、Ｎ型電界効果トランジスタ２０はオフになり、バススレーブ装置７１はシリアルデータ線２から切り離される。すなわち、図５に示すように、ハングアップ検出回路８１がバススレーブ装置７１のハングアップを検出すると（Ｓ１０でＹＥＳ）、バススレーブ装置７１をシリアルデータ線２から切り離す（Ｓ１１）。これにより、シリアルデータ線２の電圧は接地電圧（０Ｖ）から電源電圧Ｖｃｃに復帰し、バスマスタ装置６１，６２、バススレーブ装置７２〜７ｎ及びリセット用バススレーブ装置１６は、Ｉ２Ｃバスを使用できるようになる。なお、バススレーブ装置７１がハングアップしてからシリアルデータ線２から切り離されるまでの時間は、キャパシタ２８及び抵抗３０の時定数及びＮ型電解効果トランジスタ２０のゲートのオン電圧によってあらかじめ決定される。Ｎ型電解効果トランジスタ２０のゲートのオン電圧は、ハングアップを誤検出しないように、十分低いものを選択するのが好ましい。
【００３９】
図５を参照して、バスマスタ装置６１，６２は各種コマンドをＩ２Ｃバス経由でバススレーブ装置７１〜７ｎへ送信する（Ｓ２０）。バススレーブ装置７１〜７ｎは正常に動作している限り各種コマンドに応答して応答信号をバスマスタ装置６１，６２へ返信する。バスマスタ装置６１，６２がコマンドを送信したにもかかわらず、バススレーブ装置７１〜７ｎから応答信号が返信されて来ず、所定時間が経過したとき（Ｓ２１でＮＯ）、バスマスタ装置６１，６２はリセットコマンドをリセット用バススレーブ装置１６へ送信する（Ｓ２２）。応答信号を待つ時間はハングアップ検出回路８１のキャパシタ２８及び抵抗３０の時定数で決定される時間よりも少し長く設定されれば、ハングアップしたバススレーブ装置７１がシリアルデータ線２から切り離された後に、バスマスタ装置６１，６２はＩ２Ｃバス経由でリセットコマンドをリセット用バススレーブ装置１６へ送信することができる。
【００４０】
また、バスマスタ装置６１，６２は複数のバススレーブ装置７１〜７ｎの中から１つを特定し、その特定したバススレーブ装置に各種コマンドを送信しているので、応答信号が返信されて来ないバススレーブ装置をハングアップしたものとして特定することができる。したがって、バスマスタ装置６１，６２は、ハングアップしたバススレーブ装置をリセットするようにリセット機能付きハングアップ検出回路１８を介してリセット用バススレーブ装置１６に指令している。
【００４１】
図４を参照して、リセット用バススレーブ装置１６内のコマンドデコーダ５０は、バスマスタ装置６１，６２から送信されて来たリセットコマンドをデコードし、バスマスタ装置６１，６２がリセットしようとするバススレーブ装置用のリセット信号を生成する。たとえばバススレーブ装置７１がハングアップしている場合、バススレーブ装置７１用のリセット信号ＲＳＴ１がハイレベルになる。ハイレベルのリセット信号ＲＳＴ１に応答して出力トランジスタ５１がオンになるので、リセット信号／ＲＳＴ１がローレベルになる。ローレベルのリセット信号／ＲＳＴ１に応答してバススレーブ装置７１はリセットされ、ハングアップは解消される。すなわち、図５に示すように、バススレーブ装置１６はバスマスタ装置６１，６２から送信されて来たリセットコマンドを受信し（Ｓ３０）、リセットコマンドをデコードしてバススレーブ装置７１〜７ｎをリセットする（Ｓ３１）。
【００４２】
再び図３を参照して、リセット用バススレーブ装置１６がハングアップすると、そのシリアルデータ入出力端子４２の電圧を接地電圧まで引き下げるので、リセット機能付きハングアップ検出回路１８のキャパシタ４４は抵抗４６により放電され、充放電ノード４０の電圧は接地電圧になる。そのため、Ｎ型電界効果トランジスタ３４はオフになり、リセット用バススレーブ装置１６はシリアルデータ線２から切り離される。また、充放電ノード４０の電圧は接地電圧になると、バッファ３８はローレベルのリセット信号／ＲＳＴ０を生成する。リセット信号／ＲＳＴ０に応答してリセット用バススレーブ装置１６はリセットされ、ハングアップは解消される。すなわち、図５に示すように、リセット機能付きハングアップ検出回路１８は、リセット用バススレーブ装置１６のハングアップを検出すると（Ｓ４０でＹＥＳ）、リセット用バススレーブ装置１６をシリアルデータ線２から切り離し、かつ、リセット用バススレーブ装置１６をリセットする（Ｓ４１）。
【００４３】
なお、ハングアップ検出回路８１〜８ｎの代わりに、リセット機能付きハングアップ検出回路１８をバススレーブ装置７１〜７ｎにも対応して設ける方法も考えられる。しかしながら、バスマスタ装置６１，６２からの指令の有無に関係なく、リセット機能付きハングアップ検出回路１８が通常のバススレーブ装置７１〜７ｎを勝手にリセットしてしまうと、バスマスタ装置６１，６２が通常のバススレーブ装置７１〜７ｎの制御状態を把握できなくなる。そのため、シリアルバスシステム１４が誤動作する場合があるという問題がある。これに対し、このシリアルバスシステム１４は、リセット用バススレーブ装置１６のみに対応してリセット機能付きハングアップ検出回路１８を備えているため、上記のような問題はない。一方、リセット用バススレーブ装置１６は通常のバススレーブ装置７１〜７ｎのように現在の制御状態を記憶していないので、バスマスタ装置６１，６２からの指令の有無に関係なく、リセット機能付きハングアップ検出回路１８がリセット用バススレーブ装置１６を勝手にリセットしても問題はない。
【００４４】
以上のように、本発明の実施の形態によれば、たとえば通常のバススレーブ装置７１がハングアップしてシリアルデータ線２の電圧が引き下げられても、ハングアップ検出回路８１がそのハングアップを検出すると、バススレーブ装置７１をシリアルデータ線２から切り離す。そのため、Ｉ２Ｃバスの使用が可能になり、バスマスタ装置６１，６２はＩ２Ｃバス経由でリセットコマンドをリセット用バススレーブ装置１６に送信し、リセット用バススレーブ装置１６がリセットコマンドに応答してコマンドデコーダ５０及び出力トランジスタ５１を介してリセット信号／ＲＳＴ１を生成して通常のバススレーブ装置７１をリセットする。その結果、バスマスタ装置６１，６２からバススレーブ装置７１〜７ｎへのリセット専用線は不要である。特に、バスマスタ装置６１，６２がメインカード１０側に配置され、バススレーブ装置７１〜７ｎがサブカード１１側に配置される場合であっても、バスマスタ装置６１，６２からバススレーブ装置７１〜７ｎへのリセット専用線は不要であるため、コネクタ１２にピンを増設したり、もう１つコネクタを増設したりする必要はない。
【００４５】
また、バスマスタ装置６１，６２は、複数の通常のバススレーブ装置７１〜７ｎのうち、所定のコマンドを送信したにもかかわらず確認信号を返信して来ない通常のバススレーブ装置、たとえばバススレーブ装置７１をハングアップしたバススレーブ装置として特定することができる。また、バスマスタ装置６１，６２は、その特定したバススレーブ装置７１をリセットするようにリセットコマンドをＩ２Ｃ経由でリセット用バススレーブ装置１６に送信するため、リセット用バススレーブ装置１６がハングアップした通常のバススレーブ装置７１だけをリセットすることができる。したがって、ハングアップしていないバススレーブ装置７２〜７ｎはリセットによって初期化されることなく、現在記憶している制御状態をそのまま維持する。そのため、シリアルバスシステム１４の誤動作を防止することができる。
【００４６】
また、リセット用バススレーブ装置１６がハングアップしても、リセット機能付きハングアップ検出回路１８がそのハングアップを検出すると、リセット用バススレーブ装置１６をシリアルデータ線２から切り離し、かつ、リセット用バススレーブ装置１６をリセットするため、リセット用バススレーブ装置１６自体がハングアップしてしまってもシステムとして自己修復が可能である。
【００４７】
上記実施の形態はバスマスタ装置が２つあるが、少なくとも１つあればよい。また、通常のバススレーブ装置は複数あるが、少なくとも１つあればよい。また、図１に示したようにシリアルバスシステム１４はメインカード１０及びサブカード１１上に分離して配置されている必要はない。
【００４８】
上記実施の形態は、ターンオン時にしきい値電圧だけ電圧降下が生じないようにＮ型電界効果トランジスタ２０，３４，５１，５２〜５ｎを用いているが、代わりに、Ｐ型電界効果トランジスタ、ＰＮＰ型トランジスタ、ＮＰＮ型トランジスタ、Ｎ型電界効果トランジスタ及びＰ型電界効果トランジスタを並列接続したトランスファゲートなどを用いてもよい。また、ローアクティブの信号はハイアクティブの信号でもよく、逆に、ハイアクティブの信号はローアクティブの信号でもよい。
【００４９】
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。
【図面の簡単な説明】
【００５０】
【図１】本発明の実施の形態によるシリアルバスシステムの構成を示す機能ブロック図である。
【図２】図１中の通常のバススレーブ装置に対応するハングアップ検出回路の構成を示す回路図である。
【図３】図１中のリセット用バススレーブ装置に対応するハングアップ検出回路の構成を示す回路図である。
【図４】図１中のリセット用バススレーブ装置の構成を示す回路図である。
【図５】図１中のバスマスタ装置によるリセット処理を示すフロー図である。
【図６】従来のシリアルバスシステムの構成を示す機能ブロック図である。
【符号の説明】
【００５１】
２  シリアルデータ線
３  シリアルクロック線
４，５，３２，４８  プルアップ抵抗
１４  シリアルバスシステム
１６  リセット用バススレーブ装置
１８  ハングアップ検出回路
２０，３４  Ｎ型電界効果トランジスタ
２２，３６  ターンオフ回路
２４、４０  充放電ノード
２６，４２  シリアルデータ入出力端子
２８、４４  キャパシタ
３０，４６  抵抗
３８  バッファ
６１，６２  バスマスタ装置
７１〜７ｎ  バススレーブ装置
８１〜８ｎ  ハングアップ検出回路
【図１】
2010055474.tif 000003
【図２】
2010055474.tif 000004
【図３】
2010055474.tif 000005
【図４】
2010055474.tif 000006
【図５】
2010055474.tif 000007
【図６】
2010055474.tif 000008