(57)【要約】【課題】ハングアップしたバススレーブ装置を特定することが可能なシリアルバスシステムを提供する。【解決手段】シリアルデータ線２と、シリアルクロック線３と、それらに接続されるプルアップ抵抗４，５と、バスマスタ装置１２と、バススレーブ装置１４１〜１４４とを備えたシリアルバスシステム１０において、シリアルデータ線２とバススレーブ装置１４１〜１４４との間に駆動抵抗１６１〜１６４を接続し、検出用電源２０を設ける。駆動抵抗１６１〜１６４の抵抗値は互いに異なる。検出用電源２０は、バスマスタ装置１２で検出されたシリアルデータ線２の電圧が０Ｖ近くになったとき、その電圧を引き上げる。バスマスタ装置１２は、検出された電圧に基づいてハングアップしたバススレーブ装置を特定しかつリセットする。【選択図】図２
2010055472.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)等で構成され、バススレーブ装置１４１〜１４４に各種制御を行うよう指令する。バススレーブ装置１４１〜１４４は、バスマスタ装置１２からの指令に従って各種制御を行う。
【００２５】
シリアルクロック線３は、バスマスタ装置１２からバススレーブ装置１４１〜１４４へシリアルクロック信号ＳＣＬを供給するためのものである。シリアルデータ線２は、シリアルクロック信号ＳＣＬに同期して、バスマスタ装置１２からバススレーブ装置１４１〜１４４へ又はバススレーブ装置１４１〜１４４からバスマスタ装置１２へシリアルデータ信号ＳＤＡを供給するためのものである。
【００２６】
シリアルバスシステム１０はさらに、駆動抵抗１６１〜１６４を備える。駆動抵抗１６１〜１６４は、バススレーブ装置１４１〜１４４に対応して設けられ、互いに異なる抵抗値を有する。駆動抵抗１６１は、シリアルデータ線２と対応するバススレーブ装置１４１との間に接続される。駆動抵抗１６２は、シリアルデータ線２と対応するバススレーブ装置１４２との間に接続される。駆動抵抗１６３は、シリアルデータ線２と対応するバススレーブ装置１４３との間に接続される。駆動抵抗１６４は、シリアルデータ線２と対応するバススレーブ装置１４４との間に接続される。
【００２７】
シリアルバスシステム１０はさらに、アナログデジタル変換器（ＡＤＣ）１８と、検出用電源２０とを備える。ＡＤＣ１８は、シリアルデータ線２の電圧ＡＮをアナログからデジタルに変換してバスマスタ装置１２に供給する。検出用電源２０は、ＡＤＣ１８から供給された電圧ＡＮが所定の異常検出用しきい値電圧（たとえば０．９Ｖ）よりも低くなったとき、シリアルデータ線２の電圧を上昇させる。
【００２８】
バスマスタ装置１２は、ＡＤＣ１８で検出された電圧ＡＮに基づいてバススレーブ装置１４１〜１４４の中からハングアップしているバススレーブ装置を特定する機能と、その特定されたバススレーブ装置をリセットする機能とを有する。これらの機能は、後述するハングアップスレーブ特定プログラムを実行することにより実現される。
【００２９】
次に、シリアルバスシステム１０の詳細を説明する。
【００３０】
図２を参照して、プルアップ抵抗４，５の抵抗値はいずれも１．３Ｋ〜１６ＫΩであり、たとえば４．７ＫΩである。駆動抵抗１６１の抵抗値はたとえば５００Ωである。駆動抵抗１６２の抵抗値はたとえば３００Ωである。駆動抵抗１６３の抵抗値はたとえば１００Ωである。駆動抵抗１６４の抵抗値はたとえば０Ωである。これは、駆動抵抗１６４は実質的に存在せず、シリアルデータ線２がバススレーブ装置１４４に直接接続されることを意味する。
【００３１】
バススレーブ装置１４１は、シリアルデータ信号ＳＤＡを受ける入力バッファ２２と、シリアルデータ信号ＳＤＡを出力する出力バッファ２４と、出力すべきシリアルデータ信号ＳＤＡを増幅する駆動トランジスタ２６と、シリアルクロック信号ＳＣＬを受ける入力バッファ２８とを含む。駆動トランジスタ２６のオン抵抗はたとえば２０Ωである。図示は省略するが、他のバススレーブ装置１４２〜１４４もこれと同じ構成を有する。
【００３２】
検出用電源２０は、プルアップ抵抗３０と、駆動トランジスタ３２とを含む。プルアップ抵抗３０は、電源Ｖｃｃと駆動トランジスタ３２のドレインとの間に接続される。プルアップ抵抗３０の抵抗値は、プルアップ抵抗４，５の抵抗値よりも小さく、たとえば１ＫΩである。本例では、プルアップ抵抗３０はプルアップ抵抗４，５と同じ電源Ｖｃｃに接続されているが、電源Ｖｃｃよりも高い別の電源に接続されていてもよい。この場合、プルアップ抵抗３０の抵抗値はプルアップ抵抗４，５の抵抗値よりも小さくなくてもよい。駆動トランジスタ３２のソースはシリアルデータ線２に接続され、駆動トランジスタ３２のゲートはバスマスタ装置１２の入出力端子ＩＯに接続される。
【００３３】
次に、シリアルバスシステム１０の動作を説明する。
【００３４】
次の表１は、バススレーブ装置１４１〜１４４（i〜iv）のうちいずれか１つがハングアップしている場合において、検出用電源２０がオフのときのシリアルデータ線２の電圧と、検出用電源２０がオンのときのシリアルデータ線２の電圧とを示す。
【表１】
2010055472.tif 000003
【００３５】
表１に示した通り、バススレーブ装置１４１がハングアップしている場合、シリアルデータ線２の電圧は０．５０Ｖになる。バススレーブ装置１４２がハングアップしている場合、シリアルデータ線２の電圧は０．３２Ｖになる。バススレーブ装置１４３がハングアップしている場合、シリアルデータ線２の電圧は０．１２Ｖになる。バススレーブ装置１４４がハングアップしている場合、シリアルデータ線２の電圧は０．０２Ｖになる。これらの電圧は、プルアップ抵抗４と駆動抵抗１６１〜１６４とにより電源電圧が分割されて決定される。したがって、駆動抵抗が大きいバススレーブ装置ほどシリアルデータ線２の電圧は高く、逆に、駆動抵抗が小さいバススレーブ装置ほどシリアルデータ線２の電圧は低くなる。本例では、バススレーブ装置１４１の駆動抵抗１６１が最大であるので、バススレーブ装置１４１がハングアップしている場合、シリアルデータ線２の電圧が最高になる。また、バススレーブ装置１４４の駆動抵抗１６４が最小であるので、バススレーブ装置１４４がハングアップしている場合、シリアルデータ線２の電圧が最低になる。
【００３６】
シリアルデータ線２の電圧ＡＮはＡＤＣ１８によってＡＤ変換された上でバスマスタ装置１２に与えられる。上記の通り、ハングアップしているバススレーブ装置によってシリアルデータ線２の電圧ＡＮが異なるので、バスマスタ装置１２は、その電圧ＡＮを検出し、その検出された電圧ＡＮに基づいてバススレーブ装置１４１〜１４４の中からハングアップしたバススレーブ装置を特定することは理論的に可能である。しかしながら実際は、電源電圧の変動や周辺信号からのノイズなどに伴って電圧ＡＮも変動するため、０．２Ｖ以下しかない電圧ＡＮの差を確実に識別することは容易ではない。
【００３７】
そこで、バスマスタ装置１２は、ＡＤＣ１８から供給された電圧ＡＮを検出し、その検出された電圧ＡＮを所定の異常検出用しきい値電圧（たとえば０．９Ｖ）と比較し、電圧ＡＮが異常検出用しきい値電圧よりも低くなったとき、駆動トランジスタ３２をオンにするように制御する。駆動トランジスタ３２がオンになると、プルアップ抵抗３０によりシリアルデータ線２の電圧は電源電圧に向かって引き上げられる。プルアップ抵抗３０の抵抗値はプルアップ抵抗４の抵抗値よりも小さいので、上記表１に示した通り、シリアルデータ線２の電圧は上昇する。すなわち、バススレーブ装置１４１がハングアップしている場合、シリアルデータ線２の電圧は０．５０Ｖから１．９３Ｖに上昇する。バススレーブ装置１４２がハングアップしている場合、シリアルデータ線２の電圧は０．３２Ｖから１．４０Ｖに上昇する。バススレーブ装置１４３がハングアップしている場合、シリアルデータ線２の電圧は０．１２Ｖから０．６４Ｖに上昇する。バススレーブ装置１４４がハングアップしている場合、シリアルデータ線２の電圧は０．０２Ｖから０．１２Ｖに上昇する。このように上昇した電圧ＡＮの各バススレーブ装置ごとの差は０．５Ｖ以上に増幅されるので、電源電圧の変動や周辺信号からのノイズなどに伴って電圧ＡＮが多少変動しても、バスマスタ装置１２は、その検出された電圧ＡＮに基づいてバススレーブ装置１４１〜１４４の中からハングアップしたバススレーブ装置を確実に特定することができる。
【００３８】
以上、バススレーブ装置１４１〜１４４のうち１つしかハングアップしていない場合を例に説明したが、実際は２つ以上が同時にハングアップする場合もある。そして、バスマスタ装置１２はこのような場合にもハングアップしているバススレーブ装置を特定することも可能である。
【００３９】
次の表２は、バススレーブ装置１４１〜１４４（i〜iv）のうち１〜３つがハングアップしている場合において、検出用電源２０がオンのときのシリアルデータ線２の電圧を示す。
【表２】
2010055472.tif 000004
【００４０】
表２に示した通り、バススレーブ装置１４１がハングアップしている場合、シリアルデータ線２の電圧は１．９３Ｖになる。バススレーブ装置１４２がハングアップしている場合、シリアルデータ線２の電圧は１．４０Ｖになる。バススレーブ装置１４１及び１４２がハングアップしている場合、シリアルデータ線２の電圧は０．９７Ｖになる。バススレーブ装置１４３がハングアップしている場合、シリアルデータ線２の電圧は０．６４Ｖになる。バススレーブ装置１４１及び１４３がハングアップしている場合、シリアルデータ線２の電圧は０．５３Ｖになる。バススレーブ装置１４２及び１４３がハングアップしている場合、シリアルデータ線２の電圧は０．４８Ｖになる。バススレーブ装置１４１、１４２及び１４３がハングアップしている場合、シリアルデータ線２の電圧は０．４２Ｖになる。バススレーブ装置１４４がハングアップしている場合、シリアルデータ線２の電圧は０．１２Ｖになる。バススレーブ装置１４１及び１４４がハングアップしている場合、シリアルデータ線２の電圧は０．１１Ｖになる。バススレーブ装置１４２及び１４４がハングアップしている場合、シリアルデータ線２の電圧は０．１１Ｖになる。バススレーブ装置１４１、１４２及び１４４がハングアップしている場合、シリアルデータ線２の電圧は０．１１Ｖになる。バススレーブ装置１４３及び１４４がハングアップしている場合、シリアルデータ線２の電圧は０．１０Ｖになる。バススレーブ装置１４１、１４３及び１４４がハングアップしている場合、シリアルデータ線２の電圧は０．１０Ｖになる。バススレーブ装置１４２、１４３及び１４４がハングアップしている場合、シリアルデータ線２の電圧は０．１０Ｖになる。
【００４１】
表２から明らかなように、シリアルデータ線２の電圧が１．６７Ｖ（しきい値Ｖｔｈ１）よりも高ければ、バススレーブ装置１４１のみがハングアップしていることが判明するので、バススレーブ装置１４１をリセットする。シリアルデータ線２の電圧が０．８０（しきい値Ｖｔｈ２）よりも高くかつ１．６７Ｖ（しきい値Ｖｔｈ１）よりも低ければ、少なくともバススレーブ装置１４２がハングアップしていることが判明するので、バススレーブ装置１４２をリセットする。シリアルデータ線２の電圧が０．２７（しきい値Ｖｔｈ３）よりも高くかつ０．８０Ｖ（しきい値Ｖｔｈ２）よりも低ければ、少なくともバススレーブ装置１４３がハングアップしていることが判明するので、バススレーブ装置１４３をリセットする。シリアルデータ線２の電圧が０．２７Ｖ（しきい値Ｖｔｈ３）よりも低ければ、少なくともバススレーブ装置１４４がハングアップしていることが判明するので、バススレーブ装置１４４をリセットする。
【００４２】
より具体的には、バスマスタ装置１２は、図３に示したステップをコンピュータに実行させるためのハングアップスレーブ特定プログラムに従って所定の情報処理を実行することにより、ハングアップしている１〜３つのバススレーブ装置を特定し、かつ、リセットするようになっている。
【００４３】
図３を参照して、バスマスタ装置１２は、バススレーブ装置１４１〜１４４との通信が不可能になったとき（Ｓ１０でＹＥＳ）、又はＡＤＣ１８から供給されたシリアルデータ線２の電圧ＡＮを検出し、その検出された電圧ＡＮが異常検出用しきい値電圧０．９Ｖよりも低くなったとき（Ｓ１１でＹＥＳ）、駆動トランジスタ３２を制御して検出用電源２０をオンにする（Ｓ１２）。
【００４４】
続いて、バスマスタ装置１２は、ＡＤＣ１８から供給されたシリアルデータ線２の電圧ＡＮを検出し（Ｓ１３）、その検出された電圧ＡＮをしきい値電圧Ｖｔｈ３（たとえば０．２７Ｖ）と比較する（Ｓ１４）。比較の結果、その検出された電圧ＡＮがしきい値電圧Ｖｔｈ３よりも低い場合（Ｓ１４でＹＥＳ）、バスマスタ装置１２は、バススレーブ装置１４１〜１４４の中から対応する駆動抵抗１６４が最も小さいバススレーブ装置１４４をハングアップしたバススレーブ装置として特定する（Ｓ１５）。そして、バスマスタ装置１２は、その特定されたバススレーブ装置１４４にリセット信号ＲＳＴ４を与えることによりバススレーブ装置１４４をリセットする（Ｓ１６）。これによりシリアルデータ線２の電圧ＡＮが上昇するので、バスマスタ装置１２は、ＡＤＣ１８から供給されたシリアルデータ線２の電圧ＡＮを再び検出する（Ｓ１７）。
【００４５】
ステップＳ１４における比較の結果、その検出された電圧ＡＮがしきい値電圧Ｖｔｈ３以上の場合（Ｓ１４でＮＯ）、又はステップＳ１７で電圧ＡＮの再検出後、バスマスタ装置１２は、その検出された電圧ＡＮをしきい値電圧Ｖｔｈ２（たとえば０．８０Ｖ）と比較する（Ｓ１８）。比較の結果、その検出された電圧ＡＮがしきい値電圧Ｖｔｈ２よりも低い場合（Ｓ１８でＹＥＳ）、バスマスタ装置１２は、バススレーブ装置１４１〜１４４の中から対応する駆動抵抗１６３が２番目に小さいバススレーブ装置１４３をハングアップしたバススレーブ装置として特定する（Ｓ１９）。そして、バスマスタ装置１２は、リセット信号ＲＳＴ３をバススレーブ装置１４３に与えることによりバススレーブ装置１４３をリセットする（Ｓ２０）。これによりシリアルデータ線２の電圧ＡＮが上昇するので、バスマスタ装置１２は、ＡＤＣ１８から供給されたシリアルデータ線２の電圧ＡＮを再び検出する（Ｓ２１）。
【００４６】
ステップＳ１８における比較の結果、その検出された電圧ＡＮがしきい値電圧Ｖｔｈ２以上の場合（Ｓ１８でＮＯ）、又はステップＳ２１で電圧ＡＮの再検出後、バスマスタ装置１２は、その検出された電圧ＡＮをしきい値電圧Ｖｔｈ１（たとえば１．６７Ｖ）と比較する（Ｓ２２）。比較の結果、その検出された電圧ＡＮがしきい値電圧Ｖｔｈ１よりも低い場合（Ｓ２２でＹＥＳ）、バスマスタ装置１２は、バススレーブ装置１４１〜１４４の中から対応する駆動抵抗１６２が３番目に小さいバススレーブ装置１４２をハングアップしたバススレーブ装置として特定する（Ｓ２３）。そして、バスマスタ装置１２は、リセット信号ＲＳＴ２をバススレーブ装置１４２に与えることによりバススレーブ装置１４２をリセットする（Ｓ２４）。これによりシリアルデータ線２の電圧ＡＮが上昇するので、バスマスタ装置１２は、ＡＤＣ１８から供給されたシリアルデータ線２の電圧ＡＮを再び検出する（Ｓ２５）。
【００４７】
ステップＳ２２における比較の結果、その検出された電圧ＡＮがしきい値電圧Ｖｔｈ１以上の場合（Ｓ２２でＮＯ）、又はステップＳ２５で電圧ＡＮの再検出後、バスマスタ装置１２は、その検出された電圧ＡＮを電源電圧（たとえば５．０Ｖ）と比較する（Ｓ２６）。比較の結果、その検出された電圧ＡＮがまだ電源電圧（Ｖｃｃ）まで回復していない場合（Ｓ２６でＮＯ）、バスマスタ装置１２は、バススレーブ装置１４１〜１４４の中から対応する駆動抵抗１６２が最も大きいバススレーブ装置１４１をハングアップしたバススレーブ装置として特定する（Ｓ２７）。そして、バスマスタ装置１２は、リセット信号ＲＳＴ１をバススレーブ装置１４１に与えることによりバススレーブ装置１４１をリセットする（Ｓ２８）。これによりシリアルデータ線２の電圧ＡＮは電源電圧まで回復する。
【００４８】
以上のように、本発明の第１の実施の形態によれば、いずれかのバススレーブ装置１４１〜１４４がハングアップしてシリアルデータ線２の電圧ＡＮを引き下げたとしても、その電圧ＡＮはハングアップしているバススレーブ装置１４１〜１４４によって異なるので、その電圧ＡＮに基づいてハングアップしているバススレーブ装置１４１〜１４４を特定することができる。
【００４９】
また、バスマスタ装置１２は、ハングアップしているバススレーブ装置１４１〜１４４だけをリセットすることができる。したがって、ハングアップしていないバススレーブ装置１４１〜１４４は初期化されることなく、現在記憶している制御状態をそのまま維持する。そのため、シリアルバスシステム１の誤動作を防止することができる。
【００５０】
また、バススレーブ装置１４１〜１４４のうち２つ以上が同時にハングアップしたとしても、バスマスタ装置１２は、ハングアップしているバススレーブ装置１４１〜１４４を駆動抵抗１６１〜１６４が小さい方から順に特定してリセットすることができる。
【００５１】
［第２の実施の形態］
上記第１の実施の形態における駆動抵抗１６１〜１６４は固定抵抗であるが、これに代えて、図４に示すように可変抵抗３４１〜３４４を用いてもよい。この場合、可変抵抗３４１〜３４４を手動で適宜調整すれば、バススレーブ装置１４１〜１４４のハングアップによって生じる電圧ＡＮの相違を均等にばらつかせ、ハングアップしているバススレーブ装置１４１〜１４４を区別し易くすることができる。
【００５２】
また、電子調整式の可変抵抗３４１〜３４４を用い、手動ではなく、バスマスタ装置１２がＩ２Ｃバス経由で自動調整するようにしてもよい。
【００５３】
図５を参照して、バスマスタ装置１２はまず、電子調整式の可変抵抗３４１〜３４４に初期値を設定する（Ｓ３１）。可変抵抗３４１〜３４４の初期値は互いに異なる。具体的には表２に示したように、バススレーブ装置１４１がハングアップしたときにシリアルデータ線２の電圧が計算上所定の電圧１．９３Ｖになるように、可変抵抗３４１の初期値は設定される。また、バススレーブ装置１４２がハングアップしたときにシリアルデータ線２の電圧が計算上所定の電圧１．４０Ｖになるように、可変抵抗３４２の初期値は設定される。また、バススレーブ装置１４３がハングアップしたときにシリアルデータ線２の電圧が計算上所定の電圧０．６４Ｖになるように、可変抵抗３４３の初期値は設定される。また、バススレーブ装置１４４がハングアップしたときにシリアルデータ線２の電圧が計算上所定の電圧０．１２Ｖになるように、可変抵抗３４４の初期値は設定される。
【００５４】
次に、バスマスタ装置１２は、シリアルデータ線２の電圧を０Ｖまで引き下げる、つまり擬似的なハングアップを開始するようにバススレーブ装置１４１〜１４４に１つずつ順番に指令する（Ｓ３２）。
【００５５】
次に、バススレーブ装置１４１〜１４４が擬似的にハングアップしている間に、バスマスタ装置１２はシリアルデータ線２の電圧ＡＮを検出する（Ｓ３３）。
【００５６】
次に、バスマスタ装置１２は、その検出される電圧ＡＮが実際上上記所定の電圧になるように、擬似的にハングアップするように指令されたバススレーブ装置１４１〜１４４に対応する可変抵抗３４１〜３４４を調整する（Ｓ３４）。
【００５７】
調整後、バスマスタ装置１２は、擬似的なハングアップを終了するようにバススレーブ装置１４１〜１４４に指令する（Ｓ３５）。
【００５８】
全てのバススレーブ装置１４１〜１４４について上記ステップＳ３２〜Ｓ３５の処理を終了した場合（Ｓ３６でＹＥＳ）、可変抵抗３４１〜３４４の自動調整は終了する。
【００５９】
この第２の実施の形態によれば、バススレーブ装置の数が多い場合でも、可変抵抗３４１〜３４４を１つずつ手動で調整する必要がない。
【００６０】
［第３の実施の形態］
上記第１及び第２の実施の形態はバスマスタ装置１２がＡＤＣ１８から供給された電圧ＡＮを直接受け、かつ、検出用電源２０を直接制御しているが、図６に示すように、バスマスタ装置１２と通信可能な制御装置３６を追加し、バスマスタ装置１２の代わりに、この制御装置３６がＡＤＣ１８から供給された電圧ＡＮを受け、かつ、検出用電源２０を制御するようにしてもよい。この場合、制御装置３６は、ＡＤＣ１８によりＡＤ変換された電圧ＡＮを検出し、その電圧ＡＮが異常検出用しきい値電圧よりも低くなったとき起動信号ＥＮを生成する。検出用電源２０は、制御装置３６により生成された起動信号ＥＮに応答してシリアルデータ線２の電圧ＡＮを上昇させる。制御装置３６はＡＤＣ１８からの電圧ＡＮを再度検出し、どのバススレーブ装置１４１〜１４４がハングアップしているかを判断し、さらに、ハングアップしているバススレーブ装置１４１〜１４４をリセットするようにバスマスタ装置１２に指令する。その後、制御装置３６は起動信号ＥＮを不活性化することで検出用電源２０を停止する。
【００６１】
また、上記実施の形態では、バスマスタ装置１２の外にＡＤＣ１８を設けているが、バスマスタ装置に内蔵されているＡＤＣを用いてもよい。
【００６２】
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。
【図面の簡単な説明】
【００６３】
【図１】本発明の第１の実施の形態によるシリアルバスシステムの構成を示す機能ブロック図である。
【図２】図１に示したシリアルバスシステムの詳細を示す機能ブロック図である。
【図３】図１に示したシリアルバスシステムの動作、特に、複数のバススレーブ装置が同時にハングアップしている場合において、そのハングアップしているバススレーブ装置を特定してリセットするための動作を示すフロー図である。
【図４】本発明の第２の実施の形態によるシリアルバスシステムの構成を示す機能ブロック図である。
【図５】図４に示したシリアルバスシステムにおける可変抵抗の自動調整動作を示すフロー図である。
【図６】本発明の第３の実施の形態によるシリアルバスシステムの構成を示す機能ブロック図である。
【図７】従来のシリアルバスシステムの構成を示す機能ブロック図である。
【符号の説明】
【００６４】
２  シリアルデータ線
３  シリアルクロック線
４，５  プルアップ抵抗
１０  シリアルバスシステム
１２  バスマスタ装置
２０  検出用電源
１４１〜１４４  バススレーブ装置
１６１〜１６４  駆動抵抗
３４１〜３４４  可変抵抗
【図１】
2010055472.tif 000005
【図２】
2010055472.tif 000006
【図３】
2010055472.tif 000007
【図４】
2010055472.tif 000008
【図５】
2010055472.tif 000009
【図６】
2010055472.tif 000010
【図７】
2010055472.tif 000011