(57)【要約】【課題】  簡単な構成でスタックバス時にシリアルバスとの接続を切断することができるバス接続装置及びバス接続方法を提供する。【解決手段】  アクセス信号を生成するバスアクセス制御部と、シリアルバスの信号線に接続され、アクセス信号に基づいた送信信号を信号線に出力する出力部と、信号線のレベルが特定のレベルにあるときの継続時間を計測するレベル継続時間測定部と、レベル継続時間測定部によって計測された継続時間が閾値を越えたときアクセス信号のレベルに応じて出力部の信号線に対する接続を切断状態に制御するバス切断制御部と、を含む。【選択図】  図２
2019040336.tif 000002
【特許請求の範囲】
【請求項１】
シリアルバスに接続されるバス接続装置であって、
アクセス信号を生成するバスアクセス制御部と、
前記シリアルバスの信号線に接続され、前記アクセス信号に基づいた送信信号を前記信号線に出力する出力部と、
前記信号線のレベルが特定のレベルにあるときの継続時間を計測するレベル継続時間測定部と、
前記レベル継続時間測定部によって計測された前記継続時間が閾値を越えたとき前記アクセス信号のレベルに応じて前記出力部の前記信号線に対する接続を切断状態に制御するバス切断制御部と、を含むことを特徴とするバス接続装置。
【請求項２】
前記出力部はドレインが前記信号線に接続される電界効果トランジスタを有し、オープンドレイン出力からなり、
前記バス切断制御部は前記切断状態には前記オープンドレイン出力をハイインピーダンス状態にせしめることを特徴とすることを特徴とする請求項１記載のバス接続装置。
【請求項３】
前記レベル継続時間測定部は、前記信号線のレベルが前記特定レベルとしてローレベルにあることを検出するローレベル検出部と、
前記ローレベル検出部によって前記ローレベルが継続して検出されているときの前記継続時間を計測するローレベル継続時間カウンタと、を有することを特徴とする請求項１記載のバス接続装置。
【請求項４】
前記バス切断制御部は、前記レベル継続時間測定部によって計測された前記継続時間が前記閾値を越えかつ前記アクセス信号のレベルがハイレベルであるとき切替信号を生成するスタックバス判定部と、前記切替信号に応答して前記アクセス信号に代えてローレベルを前記電界効果トランジスタのゲートに供給するセレクタと、を有することを特徴とする請求項２記載のバス接続装置。
【請求項５】
前記スタックバス判定部は、前記切替信号の生成後、前記アクセス信号のレベルがローレベルに変化したことを検出すると、前記切替信号の生成を停止し、
前記セレクタは前記切替信号の生成停止に応答して前記ローレベルに代えて前記アクセス信号を前記電界効果トランジスタのゲートに供給することを特徴とする請求項４記載のバス接続装置。
【請求項６】
シリアルバスの信号線に接続され、バスアクセス制御部で生成されたアクセス信号を前記信号線に出力する出力部を有するバス接続装置のバス接続方法であって、
前記信号線のレベルが特定のレベルにあるときの継続時間を計測するレベル継続時間測定ステップと、
前記レベル継続時間測定ステップによって計測された前記継続時間が閾値を越えたとき前記アクセス信号のレベルに応じて前記出力部の前記信号線に対する接続を切断状態に制御するバス切断制御ステップと、を含むことを特徴とするバス接続方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｉ２Ｃバス等のシリアルバスに接続されるバス接続装置及びバス接続方法に関する。
【背景技術】
【０００２】
Ｉ２Ｃバスは、フィリップス（登録商標）社により開発された双方向シリアルバスである。Ｉ２ＣはInter Integrated Circuitの略称である。Ｉ２Ｃバスはシリアルクロック信号(ＳＣＬ：Serial CLock)とシリアルデータ信号(ＳＤＡ：Serial DAta)の２本の信号線を用いてデータの送受信を行う。これらの信号線はオープンドレイン形式の出力を有するデバイスを容易に接続することができる。Ｉ２Ｃバスに接続されるデバイスには、マスタ（Master）デバイスとスレーブ（Slave）デバイスとがある。マスタデバイスの主導の下でＩ２Ｃバスを介してマスタデバイスとスレーブデバイスとの間でデータの送受信を行うことができる。また、Ｉ２Ｃバスには複数のマスタデバイス、複数のスレーブデバイスを接続することができる。
【０００３】
Ｉ２Ｃバスに複数のデバイスが接続されている場合においては、そのうちのいずれか１つのデバイスに故障等の不具合が発生すると、Ｉ２Ｃバスがローレベルに固定されるスタックバス(stuck bus)状態を起こしてしまうことがある。Ｉ２Ｃバスは上記したようにオープンドレイン形式であるので、Ｉ２Ｃバスの信号線レベルがローレベルに固定されると、Ｉ２Ｃバスに接続されている正常な他のデバイスの間でも通信が行えなくなるという問題がある。
【０００４】
特許文献１には、Ｉ２Ｃバスのスタックバス時でも、Ｉ２Ｃバスに接続している正常な他のデバイス間での通信が行えるようにするバス接続回路及び方法が開示されている。特許文献１の開示技術では、Ｉ２Ｃバス故障検出ＩＣをＩ２Ｃバス上に実装し、スタックバス（バスビジー）が発生すると、スタックバスを引き起こした原因デバイスをＩ２Ｃバスから切り離す処理が実現されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−６８９０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１の開示技術では、Ｉ２Ｃバスからスタックバスの原因デバイスを切り離すためのＩ２Ｃバス故障検出回路等のデバイスを別途追加することが必要になる。Ｉ２Ｃバスに接続されるデバイス数が増加するとそれに合わせＩ２Ｃバス故障検出回路を外部に追加しなくてはならなくなり、バス通信システムとしての構成が複雑になるという問題点があった。
【０００７】
そこで、本発明の目的は、簡単な構成でスタックバス時にシリアルバスとの接続を切断することができるバス接続装置及びバス接続方法を提供することである。
【課題を解決するための手段】
【０００８】
本発明のバス接続装置は、シリアルバスに接続されるバス接続装置であって、アクセス信号を生成するバスアクセス制御部と、前記シリアルバスの信号線に接続され、前記アクセス信号に基づいた送信信号を前記信号線に出力する出力部と、前記信号線のレベルが特定のレベルにあるときの継続時間を計測するレベル継続時間測定部と、前記レベル継続時間測定部によって計測された前記継続時間が閾値を越えたとき前記アクセス信号のレベルに応じて前記出力部の前記信号線に対する接続を切断状態に制御するバス切断制御部と、を含むことを特徴としている。
【０００９】
本発明のバス接続方法は、シリアルバスの信号線に接続され、バスアクセス制御部で生成されたアクセス信号を前記信号線に出力する出力部を有するバス接続装置のバス接続方法であって、前記信号線のレベルが特定のレベルにあるときの継続時間を計測するレベル継続時間測定ステップと、前記レベル継続時間測定ステップによって計測された前記継続時間が閾値を越えたとき前記アクセス信号のレベルに応じて前記出力部の前記信号線に対する接続を切断状態に制御するバス切断制御ステップと、を含むことを特徴としている。
【発明の効果】
【００１０】
本発明のバス接続装置及びバス接続方法によれば、シリアルバスの信号線のレベルが特定のレベルにあるときの継続時間が閾値を越えたときバスアクセス制御部で生成されたアクセス信号のレベルに応じて出力部の信号線に対する接続を切断状態に制御するだけの構成であるので、簡単な構成でスタックバス時にバス接続装置とシリアルバスとの接続を切断することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明によるバス接続装置のＩ２Ｃバスへの接続例を示す図である。
【図２】図１のバス接続装置のうちのスレーブデバイスの構成を示すブロック図である。
【図３】図２のスレーブデバイス内のオープンドレイン出力部の真理値表である。
【図４】図２のスレーブデバイスの動作を示すフローチャートである。
【図５】図１のバス接続装置のうちのマスタデバイスの動作を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施例を、図面を参照しつつ詳細に説明する。
【００１３】
図１は本発明によるバス接続装置のＩ２Ｃバスへの接続例を示している。バス接続装置としてマスタデバイス１１と、２つのスレーブデバイス１２、１３とを用いた場合が示されている。これらデバイス１１〜１３はＩ２Ｃバス１４に接続されている。Ｉ２Ｃバス１４はシリアルクロック信号用のＳＣＬ線及びシリアルデータ信号用のＳＤＡ線の２本の信号線からなる。
【００１４】
スレーブデバイス１２、１３は同一構成であり、その各々には、マスタデバイス１１からのアクセスに応答するためのＩ２Ｃバスアクセス制御部２１と、Ｉ２Ｃバスのレベルを監視するためのＩ２Ｃバス監視部２２とが備えられている。Ｉ２Ｃバスアクセス制御部２１は応答のためのアクセス信号を生成する。
【００１５】
スレーブデバイス１２は、具体的には図２に示すように、電界効果トランジスタ２３を有するオープンドレイン出力部２４を有する。電界効果トランジスタ２３のドレインＤは接続端子２５に接続されており、オープン状態にされている。電界効果トランジスタ２３のソースＳは接地され、また、そのゲートＧにはセレクタ２６が接続されている。
【００１６】
接続端子２５はＩ２Ｃバス１４のいずれか一方の信号線（ＳＣＬ線又はＳＤＡ線）に接続される。例えば、Ｉ２Ｃバスアクセス制御部２１が生成するアクセス信号がデータ信号である場合には接続端子２５はＳＤＡ線に接続されるが、アクセス信号がクロック信号である場合には接続端子２５はＳＣＬ線に接続される。
【００１７】
図３はオープンドレイン出力部２４の真理値表を示している。電界効果トランジスタ２３のゲートＧが論理０に相当するローレベル(Low)にあるときドレインＤはハイインピーダンス状態(Hi-Z)となり、ゲートＧが論理１に相当するハイレベル(High)にあるときドレインＤはローレベルとなる。
【００１８】
セレクタ２６は後述のスタックＩ２Ｃバス判定部２９と共にバス切断制御部を構成する。セレクタ２６は、２つの入力端と選択制御端とを有し、一方の入力端にＩ２Ｃバスアクセス制御部２１が接続され、他方の入力端はローレベルに固定されている。選択制御端はＩ２Ｃバス監視部２２に接続されている。セレクタ２６は通常の場合には一方の入力端を介して供給されるＩ２Ｃバスアクセス制御部２１のアクセス信号を選択的に出力する状態にあるが、Ｉ２Ｃバス監視部２２からの切替信号に応答してＩ２Ｃバスアクセス制御部２１の出力信号に代えて他方の入力端のローレベルを選択的に出力する。
【００１９】
Ｉ２Ｃバス監視部２２は、ローレベル検出部２７と、ローレベル継続時間カウンタ２８と、スタックＩ２Ｃバス判定部２９とを有している。ローレベル検出部２７とローレベル継続時間カウンタ２８とからなる部分がレベル継続時間測定部に相当する。ローレベル検出部２７は接続端子２５に接続されており、Ｉ２Ｃバス１４の信号線のレベルがローレベルにあるか否かを検出する。ローレベル継続時間カウンタ２８はローレベル検出部２７の検出出力に接続されており、ローレベル検出部２７の検出結果に基づいてＩ２Ｃバス１４の信号線のレベルがローレベルを継続している時間を計測するカウンタである。スタックＩ２Ｃバス判定部２９はＩ２Ｃバスアクセス制御部２１とローレベル継続時間カウンタ２８とに接続されている。スタックＩ２Ｃバス判定部２９はＩ２Ｃバスアクセス制御部２１の出力レベルとローレベル継続時間カウンタ２８によって測定された継続時間とに基づいてＩ２Ｃバス１４がローレベル固定状態にあるか否かを判定する。
【００２０】
なお、上記したＩ２Ｃバスアクセス制御部２１、Ｉ２Ｃバス監視部２２及びセレクタ２６はスレーブデバイス１２内に設けられたマイクロコンピュータ（図示せず）がソフトウエアを実行することによって構成することができる。
【００２１】
また、スレーブデバイス１３はスレーブデバイス１２の上記した構成と同一構成を有している。
【００２２】
次に、上記した構成のバス接続回路の動作について図４を用いて説明する。図４は図２のバス接続回路の動作例を示すフローチャートである。図４の動作例は、マスタデバイス１１からスレーブデバイス１２へアクセスした際にスレーブデバイス１２でスタックバス状態としてローレベル固定状態が生じた場合を示している。
【００２３】
先ず、ローレベル継続時間カウンタ２８はカウント値をクリアする（ステップＳ１０１）。ローレベル検出部２７はＩ２Ｃバス１４の信号線のレベルを検出し（ステップＳ１０２）、その信号線のレベルがローレベルにあるか否かを判別する（ステップＳ１０３）。ローレベル検出部２７は信号線のレベルがハイレベルであると判別した場合には動作をステップＳ１０１に戻ってステップＳ１０１〜Ｓ１０３の動作を繰り返させる。信号線のレベルがローレベルであると判別した場合にはローレベル継続時間カウンタ２８はローレベル検出部２７のローレベル検出出力に応じてカウント値を１だけインクリメントする（ステップＳ１０４）。
【００２４】
スタックＩ２Ｃバス判定部２９はローレベル継続時間カウンタ２８のカウント値が閾値を越えたか否かを判別する（ステップＳ１０５）。閾値はＩ２Ｃバス１４に接続されたマスタデバイス１１及びスレーブデバイス１２、１３の正常動作時にＩ２Ｃバス１４の信号線がローレベルを継続し得る最大時間、又はそれより若干大なる時間に設定される。スタックＩ２Ｃバス判定部２９はローレベル継続時間カウンタ２８のカウント値が閾値を越えていないと判別した場合には動作をステップＳ１０２に戻してステップＳ１０２〜Ｓ１０５の動作を繰り返させる。スタックＩ２Ｃバス判定部２９は、ローレベル継続時間カウンタ２８のカウント値が閾値を越えたと判別した場合には、Ｉ２Ｃバスアクセス制御部２１の出力レベルを検出し（ステップＳ１０６）、その出力レベルがハイレベルであるか否かを判別する（ステップＳ１０７）。Ｉ２Ｃバスアクセス制御部２１の出力レベルがローレベルであれば、スタックＩ２Ｃバス判定部２９は正常動作中とみなして動作をステップＳ１０１に戻ってステップＳ１０１からの動作を繰り返させる。このように正常動作時には、Ｉ２Ｃバスアクセス制御部２１からアクセス信号が生成されると、それは電界効果トランジスタ２３のゲートＧに供給され、ドレインＤから送信信号として接続端子２５を介してＩ２Ｃバス１４に送出される。
【００２５】
一方、Ｉ２Ｃバスアクセス制御部２１の出力レベルがハイレベルであれば、スタックＩ２Ｃバス判定部２９はＩ２Ｃバス１４の信号線のレベルがローレベルに固定されたローレベル固定状態にあると判定し（ステップＳ１０８）、セレクタ２６を制御してローレベルを選択させるようにする（ステップＳ１０９）。
【００２６】
セレクタ２６がローレベルを選択的に出力すると、そのローレベルはオープンドレイン出力部２４の電界効果トランジスタ２３をオフ状態にさせるので、電界効果トランジスタ２３のドレインＤはハイインピーダンス状態となる（ステップＳ１１０）。これにより、スレーブデバイス１２はＩ２Ｃバス１４の信号線に対して切断された状態となる。
【００２７】
ステップＳ１１０の実行後、スタックＩ２Ｃバス判定部２９は、Ｉ２Ｃバスアクセス制御部２１の出力レベルを検出し（ステップＳ１１１）、その出力レベルがローレベルであるか否かを判別する（ステップＳ１１２）。Ｉ２Ｃバスアクセス制御部２１の出力レベルがハイレベルのままであれば、ステップＳ１１１とＳ１１２が繰り返される。一方、Ｉ２Ｃバスアクセス制御部２１の出力レベルがローレベルであれば、Ｉ２Ｃバスアクセス制御部２１の出力レベルはハイレベルからローレベルに変化したことになる。この場合には、スタックＩ２Ｃバス判定部２９は、セレクタ２６を制御してＩ２Ｃバスアクセス制御部２１の出力レベルを選択させるようにする（ステップＳ１１３）。
【００２８】
セレクタ２６がＩ２Ｃバスアクセス制御部２１の出力レベルを選択的に出力すると、その出力レベルがハイレベルであれば電界効果トランジスタ２３はハイインピーダンス状態を解除してオン状態になる（ステップＳ１１４）。これにより、スレーブデバイス１２はＩ２Ｃバス１４の信号線に対して接続された状態に回復することができる。
【００２９】
このように、上記した実施例によれば、スレーブデバイス１２の内部にＩ２Ｃバス監視部２２を設け、Ｉ２Ｃバス１４の信号線レベルと、スレーブデバイス１２の内部のＩ２Ｃバスアクセス制御部２１が生成するアクセス信号のレベルとを監視することによりスタックバスを検出し、オープンドレイン出力部２４をハイインピーダンス出力とすることによりスレーブデバイス１２のＩ２Ｃバス１４に対する接続を切断状態とすることができる。また、Ｉ２Ｃバス１４に対する接続を切断状態とするために、オープンドレイン出力部２４を利用するのでスレーブデバイス１２の内部構成を複雑にすることはないという効果もある。
【００３０】
また、スレーブデバイス１２内にＩ２Ｃバス１４のスタックバス状態を判定する構成を有するので、Ｉ２Ｃバス１４にＩ２Ｃバス故障検出を行う部品を追加して配線する必要がない。また、部品及び配線の追加が不要となることにより、デバイスのパッケージの小型化やコスト低減につながる効果を得ることができる。
【００３１】
上記した実施例では、ステップＳ１１０においてスレーブデバイス１２がＩ２Ｃバス１４の信号線に対して開放した状態になってしまうと、マスタデバイス１１からスレーブデバイス１２へのアクセスが行われても、スレーブデバイス１２はそれに対して応答することができなくなる。そこで、マスタデバイス１１は、スレーブデバイス１２へのアクセス信号の送信毎にスレーブデバイス１２の故障判定を行っても良い。すなわち、図５に示すように、マスタデバイス１１は、スレーブデバイス１２に対してアクセス信号を送信信号としてＩ２Ｃバス１４の信号線に出力し（ステップＳ２０１）、アクセス信号に対して応答信号があるか否かを判別する（ステップＳ２０２）。応答信号が例えば、アクセス信号の送信から予め定められた応答待機時間内に応答信号がある場合にはスレーブデバイス１２を正常と判定し（ステップＳ２０３）、一方、応答待機時間内に応答信号がない場合にはスレーブデバイス１２を故障と判定する（ステップＳ２０４）。マスタデバイス１１は、スレーブデバイス１２を正常と判定した場合には通信を継続し、スレーブデバイス１２を故障と判定した場合にはスレーブデバイス１２へのそれ以降のアクセスを中止することになる。このように、スレーブデバイス１２がスタックバス状態のためにＩ２Ｃバス１４の信号線に対する接続を切断した場合にはスレーブデバイス１２は当然、応答することができなくなる。一方、スレーブデバイス１２の切断によりＩ２Ｃバス１４は使用可能となるので、マスタデバイス１１はスレーブデバイス１２からの応答なしによりスレーブデバイス１２が故障デバイスであることを特定することができる。よって、それ以降のマスタデバイス１１からスレーブデバイス１２への無駄なアクセスを回避することが可能となる。
【００３２】
なお、上記した実施例においては、Ｉ２Ｃバスに接続されたバス接続装置を示したが、本発明は、Ｉ２Ｃバスに限定されず、Ｉ２Ｃバスと同様にスタックバス状態が起き得る他のシリアルバスに接続されるデバイスにも適用することができる。
【００３３】
また、上記した実施例においては、スレーブデバイスにＩ２Ｃバス監視部２２とセレクタ２６とを実装した例としたが、マスタデバイスにＩ２Ｃバス監視部２２とセレクタ２６とに相当する構成を設けても良い。
【００３４】
また、上記した実施例においては、単一のマスタデバイス１１と２つのスレーブデバイス１２、１３とがＩ２Ｃバス１４に接続されたバス通信システムを示したが、本発明はこれに限定されず、マスタデバイス及びスレーブデバイスの各々を複数有するバス通信システムであっても本発明を適用することができる。
【符号の説明】
【００３５】
１１  マスタデバイス
１２，１３  スレーブデバイス
１４  Ｉ２Ｃバス
２１  Ｉ２Ｃバスアクセス制御部
２２  Ｉ２Ｃバス監視部
２３  電界効果トランジスタ
２４  オープンドレイン出力部
２５  接続端子
２６  セレクタ
２７  ローレベル検出部
２８  ローレベル継続時間カウンタ
２９  スタックＩ２Ｃバス判定部
【図１】
2019040336.tif 000003
【図２】
2019040336.tif 000004
【図３】
2019040336.tif 000005
【図４】
2019040336.tif 000006
【図５】
2019040336.tif 000007