(57)【要約】【課題】現在デバイスとして機能している機器を操作することによって現在ホストとなってる機器をサスペンド状態にさせ、ＨＮＰが可能となるようにする。【解決手段】第１のＵＳＢ機器１０に、ホスト権を有するときにＳＯＦパケットをＵＳＢバス３０を介して第２のＵＳＢ機器２０に送信するトランシーバ１２と、ＳＯＦパケット送信中のＵＳＢバス３０の信号を受信するレシーバー１３と、レシーバ１３で受信したＳＯＦパケットのＣＲＣビットのエラーチェックを行うエラー検出部１６と、コントローラ１１とを備え、エラー検出部１６がＣＲＣエラーを検出したときに、コントローラ１１の制御により、サスペンド状態に移行する。【選択図】図１
2008108083.tif 000002
【特許請求の範囲】
【請求項１】
ホスト権を有するときに、ＳＯＦパケットを入出力端子を介して他のＵＳＢ機器に送信するトランシーバと、前記ＳＯＦパケット送信中の前記入出力端子の信号を受信するレシーバーと、該レシーバが受信した前記信号のエラーチェックを行うエラー検出部と、コントローラとを有し、
前記エラー検出部がエラーを検出したときに、前記コントローラの制御により、サスペンド状態に移行することを特徴とするＵＳＢ機器。
【請求項２】
前記ＳＯＦパケット送信中の前記エラー検出部によるエラー検出回数をカウントするカウンタを有し、該カウンタのカウント値が所定値に達したときに、前記サスペンド状態に移行することを特徴とする請求項１記載のＵＳＢ機器。
【請求項３】
入出力端子と、トランシーバと、コントローラとを有し、
ホスト権要求が必要なときに、前記コントローラの制御により、ホスト機器が送信したＳＯＦパケットを前記入出力端子に受信中に、前記トランシーバによって前記入出力端子を特定レベルに駆動することを特徴とするＵＳＢ機器。
【請求項４】
前記入出力端子の特定レベルへの駆動の後に、前記ホスト機器がサスペンド状態に移行したことを検出し、ホスト権要求プロトコルを前記入出力端子から送信することを特徴とする請求項３記載のＵＳＢ機器。
【請求項５】
入出力端子に入力する信号を受信するレシーバと、該レシーバが受信した前記信号のエラーチェックを行うエラー検出部と、前記ＳＯＦパケット受信中の前記エラー検出部によるエラー検出回数をカウントするカウンタとをさらに有し、
前記入出力端子の特定レベルへの駆動の後に、前記カウンタのカウント値が所定値に達したときに、ホスト権要求プロトコルを前記入出力端子から送信することを特徴とする請求項３記載のＵＳＢ機器。
【請求項６】
第１のＵＳＢ機器と第２のＵＳＢ機器とからなるＵＳＢシステムであって、
前記第１のＵＳＢ機器は、ホスト権を有するときに、ＳＯＦパケットを第１の入出力端子を介して前記第２のＵＳＢ機器に送信する第１のトランシーバと、前記ＳＯＦパケット送信中の前記第１の入出力端子の信号を受信する第１のレシーバーと、該第１のレシーバで受信した前記信号のエラーチェックを行うエラー検出部と、第１のコントローラとを有し、前記エラー検出部がエラーを検出したときに、前記第１のコントローラの制御により、サスペンド状態に移行し、
前記第２のＵＳＢ機器は、第２の入出力端子と、第２のトランシーバと、第２のコントローラとを有し、ホスト権要求が必要なときに、前記第２のコントローラの制御により、前記第１のＵＳＢ機器が送信したＳＯＦパケットを前記第２の入出力端子に受信中に、前記第２のトランシーバによって前記第２の入出力端子を特定レベルに駆動する、
ことを特徴とするＵＳＢシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＵＳＢ  ＯＴＧ規格で接続されるＵＳＢ機器およびＵＳＢシステムに関するものである。
【背景技術】
【０００２】
近年、パーソナルコンピュータ及びそれに接続される周辺装置（以下、デバイスと呼ぶ）類のインターフェースとして、ＵＳＢ（Universal Serial Bus）インターフェースが多用されるようになった。ＵＳＢインターフェースは、同一の規格で様々な機器との接続に使用可能、複数接続可能、ハブを使用することで接続数を容易に増加可能、電源のオン・オフに関わりなくコネクタの抜き差しが可能（ホットプラグ）等々、使い勝手が良いため、パーソナルコンピュータのみならず、コンシューマ向けの電子機器においても注目されている。この規格は、ＵＳＢシステム内の唯一のホスト装置（例えば、パーソナルコンピュータ）によって、そのホスト装置に接続された複数のデバイスすべてを制御する仕様となっており、ホストとデバイスの機能は別の装置で実現されていた。
【０００３】
一方、USB2.0 の拡張規格としてUSB On The Go（ＯＴＧ）という規格が策定された。これにより、ホストとデバイスの機能を合わせ持つ装置の仕様が標準化され、ＵＳＢインターフェースに接続される機器のいずれもが（交互に）ホストとして機能することが可能となった。
【０００４】
このＵＳＢ  ＯＴＧの規格で規定された機能の１つにＨＮＰ（Host Negotiation Protocol：ホスト権要求プロトコル)という、デバイスであった装置がホストになることを要求する機能がある。すなわち、ホストとして機能したい機器は、ＨＮＰによってホスト権を獲得することが可能となっている（非特許文献１，２）。
【非特許文献１】"USB On-The-Go Basic" DALLAS Semiconductor MAXIM Application Note 1822,Dec 20,2002
【非特許文献２】"Host Negotiation Protocol",On-The-Go Supplement to the USB 2.0 Specification Rvision 1.0a, p.50-51,June 24,2003
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところが、ＯＴＧの仕様では、ホスト機器がサスペンド状態になったときからＨＮＰが開始する。したがって、ＨＮＰによりホスト権を獲得するには、その時点でホストである機器が、機器間を接続するバスを駆動する作業を終了し、サスペンド状態になっていることが必要がある。このため、そのときホストになっている機器とデバイスである機器の両方を操作する必要があった。
【０００６】
本発明の目的は、現在デバイスとして機能している機器のみを操作することによって現在ホストとなってる機器をサスペンド状態にさせ、ＨＮＰが可能となるようにしたＵＳＢ機器およびＵＳＢシステムを提供することである。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、請求項１にかかる発明のＵＳＢ機器は、ホスト権を有するときに、ＳＯＦ（Start of Frame）パケットを入出力端子を介して他のＵＳＢ機器に送信するトランシーバと、前記ＳＯＦパケット送信中の前記入出力端子の信号を受信するレシーバーと、該レシーバが受信した前記信号のエラーチェックを行うエラー検出部と、コントローラとを有し、前記エラー検出部がエラーを検出したときに、前記コントローラの制御により、サスペンド状態に移行することを特徴とする。
請求項２にかかる発明は、請求項１に記載のＵＳＢ機器において、前記ＳＯＦパケット送信中の前記エラー検出部によるエラー検出回数をカウントするカウンタを有し、該カウンタのカウント値が所定値に達したときに、前記サスペンド状態に移行することを特徴とする。
請求項３にかかる発明のＵＳＢ機器は、入出力端子と、トランシーバと、コントローラとを有し、ホスト権要求が必要なときに、前記コントローラの制御により、ホスト機器が送信したＳＯＦパケットを前記入出力端子に受信中に、前記トランシーバによって前記入出力端子を特定レベルに駆動することを特徴とする。
請求項４にかかる発明は、請求項３に記載のＵＳＢ機器において、前記入出力端子の特定レベルへの駆動の後に、前記ホスト機器がサスペンド状態に移行したことを検出し、ホスト権要求プロトコルを前記入出力端子から送信することを特徴とする。
請求項５にかかる発明は、請求項３に記載のＵＳＢ機器において、入出力端子に入力する信号を受信するレシーバと、該レシーバが受信した前記信号のエラーチェックを行うエラー検出部と、前記ＳＯＦパケット受信中の前記エラー検出部によるエラー検出回数をカウントするカウンタとをさらに有し、前記入出力端子の特定レベルへの駆動の後に、前記カウンタのカウント値が所定値に達したときに、ホスト権要求プロトコルを前記入出力端子から送信することを特徴とする。
請求項６にかかる発明のＵＳＢシステムは、第１のＵＳＢ機器と第２のＵＳＢ機器とからなるＵＳＢシステムであって、前記第１のＵＳＢ機器は、ホスト権を有するときに、ＳＯＦパケットを第１の入出力端子を介して前記第２のＵＳＢ機器に送信する第１のトランシーバと、前記ＳＯＦパケット送信中の前記第１の入出力端子の信号を受信する第１のレシーバーと、該第１のレシーバで受信した前記信号のエラーチェックを行うエラー検出部と、第１のコントローラとを有し、前記エラー検出部がエラーを検出したときに、前記第１のコントローラの制御により、サスペンド状態に移行し、前記第２のＵＳＢ機器は、第２の入出力端子と、第２のトランシーバと、第２のコントローラとを有し、ホスト権要求が必要なときに、前記第２のコントローラの制御により、前記第１のＵＳＢ機器が送信したＳＯＦパケットを前記第２の入出力端子に受信中に、前記第２のトランシーバによって前記第２の入出力端子を特定レベルに駆動することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、ホスト機器は自ら送信したＳＯＦパケットのエラーを検出するとサスペンド状態に移行する。ホスト権を要求するデバイス機器が、ＳＯＦパケット受信中にその入出力端子を特定レベルに駆動すれば、ホスト機器側でエラー検出されてサスペンド状態になり、ホスト権要求が可能になる。従って、ホスト機器がサスペンド状態になっていなくてもホスト権要求が可能となり、ホスト権移動にかかる時間が短縮できる。
【発明を実施するための最良の形態】
【０００９】
本発明では、デバイス側の操作によって、ＵＳＢバス上で故意にＳＯＦパケットのコンフリクトを起こさせる。これによって、ＳＯＦパケットに付加されているＣＲＣ（Cyclic Redundancy Check）コードが所定のものから変化し、エラーが発生する。現状でホストである機器で送信パケットについてもＣＲＣエラーチェックを行うことにより、上記コンフリクトが発生するとＣＲＣエラーを検出できる。このＣＲＣエラーを所定回数続ける事でホスト権要求の信号とする。
【００１０】
＜第１の実施例＞
図１は第１の実施例のＵＳＢシステムの構成のブロック図を示す。１０は第１ＵＳＢ機器、２０は第２ＵＳＢ機器であり、両機器１０，２０の入出力端子の相互間はＵＳＢケーブル３０で接続されている。第１ＵＳＢ機器１０と第２ＵＳＢ機器２０は、ＩＤピン（図示せず）を持ち、そのＩＤピンの信号の状態により当該ＵＳＢ機器がホストになるかデバイスになるかがデフォルトで決まる。この信号の状態はＵＳＢケーブル３０のコネクタによって決まるため、ケーブル３０より両機器１０，２０を接続したときに、一方はホスト、他方はデバイスになる。
【００１１】
第１ＵＳＢ機器１０は、全体を制御するコントローラ１１、データ送信用のトランシーバ１２、データ受信用のレシーバ１３、受信データをシリアルデータからパラレルデータに変換する直列／並列変換部１４、受信データをデコードするデコーダ１５、ＳＯＦパケットのＣＲＣビットのエラーチェックを行うエラー検出部１６、エラー検出部１６でチェックされたエラー回数をカウントしてその結果をコントローラ１１に送るカウンタ１７を備える。
【００１２】
第２ＵＳＢ機器２０は、全体を制御するコントローラ２１、データ送信用のトランシーバ２２、データ受信用のレシーバ２３、受信データをシリアルデータからパラレルデータに変換する直列／並列変換部２４、受信データをデコードしてコントローラ２１に送るデコーダ２５を備える。
【００１３】
さて、ここでは、上記ＵＳＢケーブル３０のコネクタの形状によって、デフォルトで、第１ＵＳＢ機器１０がホスト、第２ＵＳＢ機器２０がデバイスになっているものとする。以下、第２ＵＳＢ機器２０が第１ＵＳＢ機器１０に対してホスト権を要求する動作を、図４および図５のフローチャートを参照して説明する。
【００１４】
ホストとしての第１ＵＳＢ機器１０は、ＵＳＢの仕様に従って、図２に示すようなフレーム開始を示すＳＯＦパケットを、定期的にＵＳＢケーブル３０経由で第２ＵＳＢ機器２０に対して送信する（図４のステップＳ１１）。このＳＯＦパケットは、ステップＳＹＮＣ（同期パターン）、ＰＩＤ（パケット識別子）、Frame Number、伝送誤り検出用のＣＲＣから構成されている。
【００１５】
デバイスとしての第２ＵＳＢ機器２０は、上記したＳＯＦパケットを受信する（図５のステップＳ２１）。このとき、この第２ＵＳＢ機器２０をホストとして制御したい場合、つまりホスト権要求する場合は、当該第２ＵＳＢ機器２０が、受信したＳＯＦパケット内のＰＩＤをデコードして、そのパケットがＳＯＦであることを確認して（図５のステップＳ２２）から、入出力端子よりＵＳＢバス３０に固定値を、ＳＯＦパケットのFrame Numbreの１１ビット時間が経過する以前から少なくともＣＲＣビットの一部にかかる時間が経過するまでの期間だけ、ドライブする（図５のステップＳ２３）。この固定値ドライブは、当該ＵＳＢバス３０のＤ＋，Ｄ−を特定の差動電圧にドライブするのでもよい。また、Ｄ＋，Ｄ−に特定の差動電流をドライブするのでもよい。後者の場合、ドライブされた差動電流はＵＳＢバス３０に接続された不図示のプルアップ抵抗に流れ、差動電圧が発生する。いずれの場合にも、ＳＯＦパケットが終了するとそのドライブを解除する。
【００１６】
一方、第１ＵＳＢ機器１０では、ＳＯＦパケットの送信時にはレシーバ１３を動作させておき、エラーチェックを行わせるようにする。これにより、第１ＵＳＢ機器１０がＳＯＦパケットの送信中に、第２ＵＳＢ機器２０によってＵＳＢバス３０に固定値をドライブすると、ＣＲＣエラーが発生するので、これが第１ＵＳＢ機器１０のエラー検出部１６で検出される。これをホスト権要求の契機として扱う。ここで、エラー検出部１６は、ＣＲＣとともに、ビットスタッフのエラーチェックを行う機能を有するものとすることができる。ビットスタッフは、クロック信号の送信が確実に行われるように、送信パケットにおいて“１”のビットが所定個数連続した場合に“０”のビットを挿入する処理である。そして、その処理が適切に行われていない場合にエラーとなる。この、ビットスタッフのエラーは、第２のＵＳＢ機器が固定値をドライブした場合以外にも発生することがある。従って、エラー発生が検出された場合（図４のステップＳ１２）には、再度ＣＲＣエラーが発生しているかどうかを確認する（図４のステップＳ１３）。
【００１７】
ただし、１回のＣＲＣエラーおよびビットスタッフのエラーに基づき、第２ＵＳＢ機器２０がホスト権要求を行っていると判定することは問題である。なぜなら、ＵＳＢの仕様上、ＢＥＲ（Bit Error Rate）は１０-12以下であることが推奨されていて、１Ｔｂｉｔに１回のエラーは許容される。すなわち、ハイスピードのＵＳＢで換算すると、４１００万回に１回エラーが発生可能性があるからである。時間で見ると約１．５時間に１回発生してしまう。
【００１８】
そこで、偶発的なＣＲＣエラー発生による誤動作発生を防ぐために、第１ＵＳＢ機器１０にカウンタ１７を設けてＳＯＦパケットの受信毎にＣＲＣエラー回数をカウントし（図４のステップＳ１４）、設定回数だけエラーが発生した場合（図４のステップＳ１５）にのみサスペンドを実行（入出力端子のＤ＋，Ｄ−を同じレベルにする）する（図４のステップＳ１６）。なお、エラーを検出したばあい（図４のステップＳ１２）であっても、ＣＲＣエラーを検出しなかった場合（図４のステップＳ１３）は、このカウンタ１７がそれ以前にカウントしたエラー回数をクリアする（図４のステップＳ１８）。
【００１９】
このようにして、第１ＵＳＢ機器１０がサスペンドを実行すると、第２ＵＳＢ機器２０もこれを確認し（図５のステップＳ２４）、第１および第２ＵＳＢ機器１０，２０が通常のＯＴＧのＨＮＰに移る（図４のステップＳ１７，図５のステップＳ２５）。このとき第１ＵＳＢ機器１０で処理中の転送があれば、それが終了次第サスペンドとなる。そしてＨＮＰを開始して、第１ＵＳＢ機器１０から第２ＵＳＢ機器２０にホスト権が移動する（図３(a)→(b)）。本実施例においては、第２ＵＳＢ機器２０はカウンタをもたないので、その第２ＵＳＢ機器２０は第１ＵＳＢ機器１０によって行われたサスペンドの確認によってＨＮＰに移る。
【００２０】
また、本実施例で、ＳＯＦパケットでＣＲＣのエラーおよびビットスタッフエラーを発生させるのは、もっとも動作に影響しないパケットだからである。実際の機器でＳＯＦパケットのFrame Numberが必要であることは少ない上に、デバイスでFrame Numberを予測することは可能である。従って、第２のＵＳＢ機器が固定値をドライブすることによってFrane Numberの部分のデータが破損されたとしても、実際の動作への影響は無い。
【００２１】
＜第２の実施例＞
図６は第２の実施例のＵＳＢシステムの構成のブロック図を示す。第１の実施例と異なるところは、第２のＵＳＢ機器２０に代えて、さらにエラー検出部２６とカウンタ２７を備えた第２のＵＳＢ機器２０Ａを用いた点である。したがって、本実施例では、ＳＯＦパケットのＣＲＣエラー検出を、第１ＵＳＢ機器１０と第２ＵＳＢ機器２０Ａが互いに独立して行う。
【００２２】
すなわち、第１ＵＳＢ機器１０は、図４のフローチャートに示したような前記した処理によって、サスペンドを実行し、ＨＮＰに移行する。一方、第２ＵＳＢ機器２０は、図７のフローチャートに示すように、パケットを受信する（ステップＳ３１）と、そのＳＯＦパケット内のＰＩＤをデコーダして、そのパケットがＳＯＦであることを確認して（ステップＳ３２）から、入出力端子よりＵＳＢバス３０に固定値をドライブする（ステップＳ３３）。これをＳＯＦパケットの受信毎に行うまでは、図５のフローチャートと同じである。しかし、本実施例においては、そのときＣＲＣエラーおよびビットスタッフのエラーを第２のＵＳＢ機器２０Ａのエラー検出部２６で検出し、発生したエラーをカウンタ２７でカウントする。そして、カウントされるエラー回数が設定回数を超える（ステップＳ３４）と、ＨＮＰに移行する（ステップＳ３４）。なお、ステップＳ３４の「設定回数」は図４のステップＳ１５の「設定回数」と同じ回数に設定される。
【００２３】
なお、いずれの本実施例においても、第２のＵＳＢ機器２０にＵＳＢバス３０をサスペンドにする機能を備えさせれば、その第２のＵＳＢ機器２０が一旦ホスト権を確保した後に、そのホスト権を第１のＵＳＢ機器１０に移行させることが可能となる。
【図面の簡単な説明】
【００２４】
【図１】本発明の第１の実施例のＵＳＢシステムの構成を示すブロック図である。
【図２】ＳＯＦパケットの説明図である。
【図３】ＨＮＰによるホスト権移行の説明図である。
【図４】本発明の第１および第２の実施例の第１ＵＳＢ機器の処理のフローチャートである。
【図５】本発明の第１の実施例の第２ＵＳＢ機器の処理のフローチャートである。
【図６】本発明の第２の実施例のＵＳＢシステムの構成を示すブロック図である。
【図７】本発明の第２の実施例の第２ＵＳＢ機器の処理のフローチャートである。
【符号の説明】
【００２５】
１０：第１ＵＳＢ機器、１１：コントローラ、１２：トランシーバ、１３：レシーバ、１４：直列／並列変換部、１５：デコーダ、１６：エラー検出部、１７：カウンタ
２０，２０Ａ：：第２ＵＳＢ機器、２１：コントローラ、２２：トランシーバ、２３：レシーバ、２４：直列／並列変換部、２５：デコーダ、２６：エラー検出部、２７：カウンタ
３０：ＵＳＢバス
【図１】
2008108083.tif 000003
【図２】
2008108083.tif 000004
【図３】
2008108083.tif 000005
【図４】
2008108083.tif 000006
【図５】
2008108083.tif 000007
【図６】
2008108083.tif 000008
【図７】
2008108083.tif 000009