(57)【要約】【課題】  既存の装置等に手を入れずに、複数のデバイスが接続されている場合、転送レートが落ち、所望の処理が素早く終了しないという状態が発生してしまうところを、転送のタイプを変換することにより、転送レートを保持することを可能にハブ装置およびハブシステムを提供することを目的とする。【解決手段】  デバイス装置とホスト装置間のデータを中継するハブ装置であって、デバイス装置とホスト装置間のバルク転送をアイソクロナス転送に変換する転送モード変換手段を有することを特徴とするハブ装置。【選択図】  図１
2006238209.tif 000002
【特許請求の範囲】
【請求項１】
デバイス装置とホスト装置間のデータを中継するハブ装置であって、
デバイス装置とホスト装置間のバルク転送をアイソクロナス転送に変換する転送モード変換手段を有することを特徴とするハブ装置。
【請求項２】
転送モード変換手段が、
ホスト装置からのデバイス情報取得コマンドに対するデバイス装置からの応答データを受信する応答データ受信手段と、
受信した応答データの中の転送モード情報がバルク転送モードか否かを判別する転送モード判別手段と、
判別結果がバルク転送モードのときには、応答データの中の転送モード情報をアイソクロナス転送モードに変更する転送モード情報変更手段と、
変換した応答データをホストに転送する応答データ転送手段と、
デバイス装置からのバルク転送データを受信し、それに対するハンドシェークデータをデバイス装置に返送するハンドシェークデータ返送手段と、
ホストデータ受信に対するデバイス装置からハンドシェークデータを受信したときは、そのデータを削除するハンドシェークデータ削除手段とを有することを特徴とする請求項１記載のハブ装置。
【請求項３】
ホスト装置とハブ間では、アイソクロナス転送データにエラー訂正符号を付加して送受信するエラー符号付加データ送受信手段を有することを特徴とする請求項２記載のハブ装置。
【請求項４】
エラー符号付加データ送受信手段は、
デバイス装置からの転送データに対しては、エラー符号を付加し、ホスト装置からのエラー訂正符号を付加した転送データに対しては、エラー符号を削除することを特徴とする請求項３記載のハブ装置。
【請求項５】
ハブ装置とホストドライバとデバイスドライバとを有するホスト装置とを備えるハブシステムであって、
請求項２記載のハブ装置と、
デバイスドライバからのバルク転送データをアイソクロナス転送データに変換してホストドライバに提供し、ホストドライバからのアイソクロナス転送データをバルク転送データに変換してデバイスドライバに提供するフィルタドライバを備えるホスト装置と、
を有することを特徴とするハブシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストとデバイスとを中継するハブ装置とハブシステムに関する。
【背景技術】
【０００２】
近年、PCのインターフェースとして、Universal Serial Bus(以下USBと記す)が標準的なものとなってきている。
【０００３】
それに伴い、本インタフェースに対応したＰＣ周辺デバイスが多く出回るようになって来ている。このUSBでは、１ホストに対し１２７台ものデバイスが接続可能であるため、１つのＰＣに同時に複数のUSBデバイスが接続し動作するシチュエーションが増えている。
【０００４】
図９に、従来例のＵＳＢハブシステムを示す。
ＵＳＢは、まず１つのホストとその配下に（この例では4port所有の）ルートハブが有り、その下に、デバイスまたはハブが接続される。更に、そのハブの配下にデバイス（またはこの例では無いが）ハブを接続することが出来る。これを繰り返し最大１２７台のデバイスが１つのホストの下にぶら下がることが可能である。
【０００５】
このように複数のデバイスを接続した際、例えばハブｂ配下のバルク転送(以降Bulk転送と記載)をサポートしたデバイスが存在した場合（例えばｆ）、他のデバイス（ａorｂorｃorｄ）転送に邪魔をされ、ホストとのデータ通信の転送レートが著しく低下してしまう。巷に多く存在するUSBデバイスは、データ転送用にBulk転送をサポートしたものが多く見受けられるが、Bulk転送はそもそもデータ転送レートを保証しない転送なため、多くのデバイスを同時使用すると、データを中々、転送出来ず、転送スピードが落ちるということが起きてしまう。 
【０００６】
このため、ＵＳＢバスの状況を見て、バルク転送のバンド幅の空いているときはバルク転送を行い、バンド幅の空きが少ないときはアイソクロナス転送を行う方式がある(特許文献１参照)。
【特許文献１】特開２００３−２４８５５８号公報（第８頁、図４）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
この方式では、バスの状況を監視しなければならず、そのための機能を外部装置に加える必要がある。本発明は、既存のＵＳＢ装置等に手を入れずに、複数のデバイスが接続されている場合、転送レートが落ち、所望の処理が素早く終了しないという状態が発生してしまうところを、転送のタイプを変換することにより、転送レートを保持することを可能にするＵＳＢハブ装置およびＵＳＢハブシステムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明のハブ装置は、デバイス装置とホスト装置間のデータを中継するハブ装置であって、デバイス装置とホスト装置間のバルク転送をアイソクロナス転送に変換する転送モード変換手段を有する構成である。
【０００９】
この構成により、バルク転送とアイソクロナス転送を変換することができるので、複数のデバイス装置が接続されても、特定のデバイス装置については、転送速度を落とさずに使用することができる。
【００１０】
また、転送モード変換手段が、ホスト装置からのデバイス情報取得コマンドに対するデバイスからの応答データを受信する応答データ受信手段と、受信した応答データの中の転送モード情報がバルク転送モードか否かを判別する転送モード判別手段と、判別結果がバルク転送モードのときには、応答データの中の転送モード情報をアイソクロナス転送モードに変更する転送モード情報変更手段と、変換した応答データをホストに転送する応答データ転送手段と、デバイス装置からのバルク転送データを受信し、それに対するハンドシェークデータをデバイス装置に返送するハンドシェークデータ返送手段と、ホストデータ受信に対するデバイス装置からハンドシェークデータを受信したときは、そのデータを削除するハンドシェークデータ削除手段とを有する構成である。
【００１１】
この構成により、バルク転送とアイソクロナス転送を変換することができるので、複数のデバイス装置が接続されても、特定のデバイス装置については、転送速度を落とさずに使用することができる。
【００１２】
また、ホスト装置とハブ間では、アイソクロナス転送データにエラー訂正符号を付加して送受信するエラー符号付加データ送受信手段を有する構成である。
【００１３】
この構成により、アイソクロナス転送上のみエラー訂正符号を付加して通信することができる。
【００１４】
また、エラー符号付加データ送受信手段は、デバイス装置からの転送データに対しては、エラー符号を付加し、ホスト装置からのエラー訂正符号を付加した転送データに対しては、エラー符号を削除する構成である。
【００１５】
この構成により、アイソクロナス転送上のみエラー訂正符号を付加して通信することができる。
【００１６】
また、ハブ装置とホストドライバとデバイスドライバとを有するホスト装置とを備えるハブシステムであって、ハブ装置と、デバイスドライバからのバルク転送データをアイソクロナス転送データに変換してホストドライバに提供し、ホストドライバからのアイソクロナス転送データをバルク転送データに変換してデバイスドライバに提供するフィルタドライバを備えるホスト装置とを有する構成である。
【００１７】
この構成により、ホスト装置側のフィルタドライバが転送モード変換処理を行なうので、ホスト装置の中のデバイス装置に対応するデバイスドライバを修正せずに、そのまま使用することができる。
【発明の効果】
【００１８】
本発明により、この構成により、バルク転送とアイソクロナス転送を変換することができるので、複数のデバイス装置が接続されても、特定のデバイス装置については、転送速度を落とさずに使用することができる。
【発明を実施するための最良の形態】
【００１９】
【実施例】
【００２０】
図１に実施例のＵＳＢハブ装置の構成図を示す。
【００２１】
デバイス装置よりUSBトランシーバ２を経由して入って来たデータを、ポートロジック４を介してハブコントローラ６にてデータ解析し、該当データが存在した際は、ハブリピータ３に入ったデータを、ビット変換部５により制御しビットを置換えし、USBトランシーバ２を経てホスト装置へ転送する。
【００２２】
ＵＳＢハブ装置１は、ＵＳＢトランシーバ２と、ハブリピータ３と、ポートロジック４と、ビット変換部５とハブコントローラ６とを有する。
【００２３】
ＵＳＢトランシーバ２は、外部と接続されるインタフェース回路である。
【００２４】
ハブリピータ３は、外部から受信したデータをそのまま他のデバイス装置またはホスト装置に送信処理をする。
【００２５】
ポートロジック４は、各ＵＳＢトランシーバ２からのデータをハブリピータ３に接続する中継部である。
【００２６】
ビット変換部５は、ハブコントローラ６の制御を受け、ハブリピータ３からのデータのビット変換をし、ＵＳＢトランシーバ２に送り出す。
【００２７】
ハブコントローラ６は、デバイス装置からのデータを解析する。バルク転送モードを認識し、ビット変換部で転送モードをアイソクロナス転送（以降ISO転送と記述）に変換しホスト装置に転送する。また、アイソクロナス転送を実現するため、ハンドシェイクデータの発生、削除の制御を行う。また、エラー訂正信号の追加、削除を行なう。
【００２８】
図２に実施例のＵＳＢハブシステムの構成図を示す。
まず１つのホスト装置とその配下に（この例では4port所有の）ルートハブが有り、その下に、USBインタフェースを有するデバイス装置またはＵＳＢハブ装置１（図では、Deviceと記載）が接続される。更に、そのＵＳＢハブ装置１の配下にデバイス装置、（またはこの例では無いが）ＵＳＢハブ装置１を接続することが出来る。
【００２９】
ホスト装置は、パーソナルコンピュータ等であり、デバイス装置等の接続を制御するために、ホストドライバ、フィルタドライバ、デバイスドライバを有する。
【００３０】
ホストドライバは、パーソナルコンピュータ等に搭載されているOS付属のドライバであり、デバイス装置等との初期設定処理を行なう。
【００３１】
フィルタドライバは、デバイスドライバからの転送データをホストドライバに転送し、ホストドライバからの転送データをデバイスドライバに転送する。また、デバイスドライバからの転送データに対してハンドシェイクデータを返送する。また、デバイスドライバからのハンドシェイクデータを削除する。また、デバイスドライバからの転送データにエラー訂正符号を挿入して、ホストドライバに転送する。また、ホストドライバからの転送データに対して、エラー訂正符号をもとにエラーチェックし、エラーのときには、自動訂正を行なう。エラーチェック後、エラー訂正符号を削除した転送データをデバイスドライバに転送する。
【００３２】
デバイスドライバは、デバイス装置との転送データの送受信を制御する。
このシステムにおいては、ホスト装置とUSBハブ装置１（ここではハブb）間のBulk転送をISO転送に変換する。
【００３３】
USB規格上、Bulk転送はバンド幅やレイテンシが保証されないが、ISO転送は一定のデータ・レートが保証されるよう、ホストドライバによりトランザクションがスケジューリングされる。これにより、優先させたいバルク転送をサポートしたデバイス装置との通信を、転送レートを劣化させること無く行うことが可能となる。
【００３４】
これを実現する為には、ＵＳＢハブ装置１にBulk転送をISO転送に変換する機能を設けている。
【００３５】
以下に各処理について説明を行なう。
ＵＳＢハブ装置１に以下の処理を実施させる必要がある。
（１）コンフィギュレーション時にデバイス装置のサポート転送タイプをBulk→ISO転送に変換すること、および(２）ホストからのISOトランザクションをBulkトランザクションへ変換することが必要である。
まず（１）について説明する。
【００３６】
図３にUSBの標準デバイスリクエストの説明図を示す。
デバイス装置をPlug-INした際、または電源ON時に、ホスト装置がデバイス装置の情報を取得する。このため、標準デバイスリクエストのＧet_Descriptorコマンド（以下ディスクリプタ取得コマンドと呼ぶ）が発行される。その発行を行った後、デバイス装置に対し初期設定を行うコンフィギュレーションが行われる。
【００３７】
このホストからのディスクリプタ取得コマンドに伴い、USBデバイスは自らの情報をホスト装置へ伝えるが、その中でENDPOINT Descriptorという情報を送信する。
【００３８】
図４に、ENDPOINT Descriptorの説明図を示す。
ENDPOINT Descriptor情報の中の<bmAttributes>FieldのBit０〜１を、「１０」：Bulkまたは、「０１」：Isochronousへ変換することで、ホストに対し、ISO転送用ENDPOINTであると通知をする。この処理は、ＵＳＢハブ装置１においてデータをバッファリングし、データを解析後、該当データ(2bit)を置き換えることで可能となる。
次に（２）について説明する。
【００３９】
図５に転送フォーマットの説明図を示す。
図５(a)に、ISO転送フォーマット、図５(b)にBulk転送フォーマットを示す。
【００４０】
ISO転送はToken／Dataの２フェーズ存在するのに対し、Bulk転送はHandshakeフェーズが追加で存在する。
【００４１】
ＩＮ転送時には、DataフェーズのDATA０／１がデバイス装置からホストへ転送された後、ＵＳＢハブ装置１によりACKを生成し、デバイス装置に送信することで転送を変換できる。
【００４２】
ＯＵＴ転送時には、DataフェーズのDATA0/１がホスト装置からデバイス装置へ転送された後、デバイス装置からHandshakeフェーズのACK/NAK/STALLが転送されてくるが、ＵＳＢハブ装置１により削除し、ホスト装置へ転送しないことで転送を変換できる。
【００４３】
元々bulk転送であったものをISO転送にすると、USB規格に謳われているように、エラーによって転送が失敗しても、データの再転送はリトライされない。
よって、USBバス上で発生したエラーはUSBレベルでは救うことが出来ない。
【００４４】
これを回避するために、エラー訂正符号を付加し、データバス上のエラーを極力減少させ、実通信に影響を与えないようにする。
【００４５】
図６に、ホスト側ドライバの説明図を示す。
USBのホスト側にあるドライバというのは、通常、ホスト装置とRoot ハブを制御するホストドライバと、各デバイス装置を制御するデバイスドライバが存在する。
【００４６】
このとき、デバイス装置のBulk転送をサポートするエンドポイントに対する転送を、USBハブ装置１によってISO転送に変換してしまうので、そのデバイス装置用のドライバでは動作しなくなってしまう。そこで、これを解決するために、ホストドライバとデバイスドライバの間に、フィルタドライバを追加する。
【００４７】
本フィルタドライバにおいて、ホストドライバと特定のUSBハブ装置１間でだけ、Bulk転送をISO転送に変換することが出来る。
【００４８】
図７に転送処理の説明図を示す。
ＩＮ転送時には、転送データDATA０／１がデバイス装置からＵＳＢハブ装置１に送信され、ホストドライバ、フィルタドライバを経由してデバイスドライバに転送された後、デバイスドライバからのACKをフィルタドライバが受けるが削除することで、転送を変換できる。
【００４９】
ＯＵＴ転送時には、転送データのDATA０／１がデバイスドライバからフィルタドライバ、ホストドライバを経由してＵＳＢハブ装置１からデバイス装置へ転送された後、デバイス装置からHandshakeフェーズのACK/NAK/STALLが転送されてくるが、ハブにより削除し、ホストドライバへ転送しないことで転送を変換できる。
【００５０】
これにより、通常USBデバイスと共にデバイスメーカより提供されるデバイスドライバに手を入れる事無く、転送の変換を行うことが可能となる。 
【００５１】
図８にエラー訂正処理の説明図を示す。
ＩＮ転送時には、デバイス装置から転送データがＵＳＢハブ装置１に来たときに、転送データにエラー訂正符号を付加する。この転送データは、フィルタドライバでエラー訂正符号をもとに、エラーの発生をチェックする。エラー検知すると訂正処理を行なう。エラーチェック後、エラー訂正符号を削除して、転送データをデバイスドライバに転送する。
【００５２】
また、ＯＵＴ転送時には、デバイスドライバから転送データをフィルタドライバが受信するとエラー訂正データを付加してＵＳＢハブ装置１に送信する。
【００５３】
そして、ＵＳＢハブ装置１でエラー訂正符号をもとに、エラーの発生をチェックする。エラー検知すると訂正処理を行なう。その後、エラー訂正符号を削除して、転送データをデバイスへ転送する。
【００５４】
エラー訂正処理は、エラー訂正符号を用いて行なわれる。ここで、エラー訂正符号としては、誤り訂正符号(ECC:Error Correcting Code)を用いている。
フィルタドライバは、デバイスドライバにその機能を搭載することもできる。
【００５５】
この結果、バルク転送とアイソクロナス転送を変換することができるので、複数のデバイス装置が接続されても、特定のデバイス装置については、転送速度を落とさずに使用することができる。
【００５６】
以上の実施例１を含む実施形態に関し、更に以下の付記を開示する。
【００５７】
（付記１）デバイス装置とホスト装置間のデータを中継するハブ装置であって、デバイス装置とホスト装置間のバルク転送をアイソクロナス転送に変換する転送モード変換手段を有することを特徴とするハブ装置。
【００５８】
（付記２）転送モード変換手段が、ホスト装置からのデバイス情報取得コマンドに対するデバイス装置からの応答データを受信する応答データ受信手段と、受信した応答データの中の転送モード情報がバルク転送モードか否かを判別する転送モード判別手段と、判別結果がバルク転送モードのときには、応答データの中の転送モード情報をアイソクロナス転送モードに変更する転送モード情報変更手段と、変換した応答データをホストに転送する応答データ転送手段と、デバイス装置からのバルク転送データを受信し、それに対するハンドシェークデータをデバイス装置に返送するハンドシェークデータ返送手段と、ホストデータ受信に対するデバイス装置からハンドシェークデータを受信したときは、そのデータを削除するハンドシェークデータ削除手段とを有することを特徴とする付記１記載のハブ装置。
【００５９】
（付記３）ホスト装置とハブ間では、アイソクロナス転送データにエラー訂正符号を付加して送受信するエラー符号付加データ送受信手段を有することを特徴とする付記２記載のハブ装置。
【００６０】
（付記４）エラー符号付加データ送受信手段は、デバイス装置からの転送データに対しては、エラー符号を付加し、ホスト装置からのエラー訂正符号を付加した転送データに対しては、エラー符号を削除することを特徴とする付記３記載のハブ装置。
【００６１】
（付記５）ハブ装置とホストドライバとデバイスドライバとを有するホスト装置とを備えるハブシステムであって、付記２記載のハブ装置と、デバイスドライバからのバルク転送データをアイソクロナス転送データに変換してホストドライバに提供し、ホストドライバからのアイソクロナス転送データをバルク転送データに変換してデバイスドライバに提供するフィルタドライバを備えるホスト装置とを有することを特徴とするハブシステム。
【００６２】
（付記６）フィルタドライバは、デバイスドライバの転送データに対してハンドシェイクデータを返送し、デバイスドライバからのハンドシェイクデータを削除することを特徴とする付記５記載のハブシステム。
【産業上の利用可能性】
【００６３】
本発明により、バルク転送とアイソクロナス転送を変換することができるので、複数のデバイス装置が接続されても特定のデバイス装置については、転送速度を落とさずに使用するハブ装置およびハブシステムを提供する用途に適用できる。
【図面の簡単な説明】
【００６４】
【図１】実施例のＵＳＢハブ装置の構成図
【図２】実施例のＵＳＢハブシステムの構成図
【図３】標準デバイスリクエストの説明図
【図４】ＥＮＤＰＯＩＮＴ Ｄｅｓｃｒｉｐｔｏｒの説明図
【図５】転送フォーマットの説明図
【図６】ホスト側ドライバの説明図
【図７】転送処理の説明図
【図８】エラー訂正処理の説明図
【図９】従来例のＵＳＢハブシステムの構成図
【符号の説明】
【００６５】
１      ＵＳＢハブ装置
２      ＵＳＢトランシーバ
３      ハブリピータ
４      ポートロジック
５      ビット変換部
６      ハブコントローラ
【図１】
2006238209.tif 000003
【図２】
2006238209.tif 000004
【図３】
2006238209.tif 000005
【図４】
2006238209.tif 000006
【図５】
2006238209.tif 000007
【図６】
2006238209.tif 000008
【図７】
2006238209.tif 000009
【図８】
2006238209.tif 000010
【図９】
2006238209.tif 000011