(57)【特許請求の範囲】
【請求項１】
第１のパケットを受信する第１のポートと、
第２のパケットを送信する第２のポートと、
前記第１のパケットの終了コードである第１のコードを検出する第１の制御部と、
前記第２のパケットの終了コードである第２のコードを生成する第２の制御部と、を含
み、
前記第２のパケットは、前記第１のパケットとして受信したデータの前記第１のコード
以降のデータを前記第２のコードに置き換えたものであり、
前記第１のコード以降のデータは、前記第２のパケットにおけるＥＯＰコード及びドリブルビットであり、
前記第２のコードは、前記第２の制御部が生成したＥＯＰコードである、
ことを特徴とするデータ転送制御装置。
【請求項２】
更に、第１のバッファーを含み、
前記第１のバッファーは前記第１のポートで受信されたデータが前記第２のポートから
送信されるまでの間保持されるバッファーであり、
前記第１のバッファーのサイズは、前記第１のコードのデータ長よりも大きいことを特
徴とする請求項１に記載のデータ転送制御装置。
【請求項３】
前記第１の制御部において、前記第１のコードの検出はビットスタッフィングエラーに
より行われることを特徴とする請求項１又は請求項２に記載のデータ転送制御装置。
【請求項４】
請求項１乃至請求項３のいずれか一項に記載のデータ転送制御装置を有し、ＵＳＢハブ
として使用されることを特徴とする電子機器。  
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえば、パーソナルコンピューターなどの情報処理装置に接続される周辺機器に用いられるデータ転送制御装置及び電子機器に関する。
【背景技術】
【０００２】
従来、パーソナルコンピューターと周辺機器とを接続するための汎用インターフェイスの規格としてＵＳＢが存在する。ＵＳＢは使い勝手がよく、広く普及しているインターフェイスである。ＵＳＢにおいては複数のデータ転送速度が規定されており、ＵＳＢ２．０の規格において、以前から規定されていたフルスピードモード及びロースピードモードに加えて、４８０Ｍｂｐｓの転送速度のハイスピードモードが導入されている。
【０００３】
ハイスピードモードにおいては、ＵＳＢがアイドルの状態であることを示すスケルチの検出に要する時間が、４ビットのデータ長に相当する時間を要する可能性がある。このため、パケットを受信する機器においてパケット受信後に受信する本来存在しないデータ、所謂ドリブルビットが４ビットまで許容されている。このスケルチ検出のための回路が、たとえば特許文献１に提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−１９８３９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、より感度のよいスケルチ検出回路はより回路規模が大きくなる傾向にあり、このための設計に要する負荷も大きくなるという課題がある。また、ＵＳＢハブの場合は、受信したドリブルビットが規格内であっても該ドリブルビットを送信してしまうことは好ましくない。後段となる機器において発生するドリブルビットが４ビット以下であったとしても、終了コードの後に繋がる余分なデータが４ビットを超える場合も考えられ、後段の機器の設計内容によっては好ましくない動作が起こる可能性があるからである。
【課題を解決するための手段】
【０００６】
本発明は、上述した問題または課題の少なくとも一部を解決するためになされたものであり、以下の形態または適用例として実現することが可能である。
【０００７】
［適用例１］
本適用例に係るひとつのデータ転送制御装置は、第１のパケットを受信する第１のポー
トと、第２のパケットを送信する第２のポートと、前記第１のパケットの終了コードであ
る第１のコードを検出する第１の制御部と、前記第２のパケットの終了コードである第２
のコードを生成する第２の制御部と、を含み、前記第２のパケットは、前記第１のパケッ
トとして受信したデータの前記第１のコード以降のデータを前記第２のコードに置き換え
たものであり、前記第１のコード以降のデータは、前記第２のパケットにおけるＥＯＰコード及びドリブルビットであり、前記第２のコードは、前記第２の制御部が生成したＥＯＰコードである、ことを特徴とする。
【０００８】
この構成によれば、第１のパケットとして受信されたデータが、第１のコード以降にドリブルビットを有するものであっても、第１の制御部により第１のコードの検出が行われ、第１のコード以降のデータが第２の制御部で生成された終了コードである第２のコードに置き換わることで、ドリブルビットの伝播を防ぐことができる。このため、ドリブルビットを伝播させることがないことから、第２のパケットを受信する機器において受信したパケットの終了コードの後に繋がる余分なデータの数を軽減することができる。また、スケルチ検出回路の感度に関わらずドリブルビットの伝播を防ぐことができることから、スケルチ検出回路の設計負荷が低減されるとともに、回路の規模も低減することができる。
【０００９】
［適用例２］
上記適用例に係るデータ転送制御装置において、更に、第１のバッファーを含み、前記第１のバッファーは前記第１のポートで受信されたデータが前記第２のポートから送信されるまでの間保持されるバッファーであり、前記第１のバッファーのサイズは、前記第１のコードのデータ長よりも大きいことが好ましい。
【００１０】
この構成によれば、第１のバッファーのサイズが第１のコードの長さよりも大きいことにより、第１のコードが検出される前に第１のコードの一部が第２のポートから送信されることを防ぐことができる。
【００１１】
［適用例３］
上記適用例に係るデータ転送制御装置において、前記第１の制御部において、前記第１のコードの検出はビットスタッフィングエラーにより行われることを特徴とする。
【００１２】
この構成によれば、ビットスタッフィングエラーを検出することにより第１のコードの検出を容易に行うことができる。
【００１３】
［適用例４］
本適用例に係る電子機器は、上記適用例に係るデータ転送制御装置を有し、ＵＳＢハブとして使用されることが好ましい。
【００１４】
この構成によれば、本適用例に係る電子機器が上記適用例に係るデータ転送制御装置を有することで、本適用例に係る電子機器をＵＳＢハブとして使用することができる。
【図面の簡単な説明】
【００１５】
【図１】第１実施形態及び実施例１の説明に用いるＵＳＢハブのブロック図。
【図２】第１実施形態及び実施例１の説明に用いるシステムのブロック図。
【図３】パケット転送の状態を示した模式図。
【発明を実施するための形態】
【００１６】
以下、本発明について図を用いて説明する。
【００１７】
（第１実施形態）
本実施形態は、ＵＳＢ２．０の規格に対応したＵＳＢハブに本発明を適用したものである。図１にＵＳＢハブ１００のブロック図を示す。ＵＳＢハブ１００は、アップストリームポート１０、ダウンストリームポート１１、ハブリピーター部２０、トランザクショントランスレーター部２１、ハブコントローラー部２２及びルーティングロジック部２３を含む。ホスト装置又はホスト装置側に繋がるＵＳＢハブがアップストリームポート１０に接続され、スレーブ装置又はスレーブ装置に繋がるＵＳＢハブが４個あるダウンストリームポート１１のいずれかに接続される。尚、ＵＳＢ２．０の規格は公開されていることから、規格に書かれている内容で本実施形態の説明として特に必要がない内容について記載は行わないことにする。
【００１８】
ＵＳＢ２．０の規格において、転送モードにハイスピードモードが追加されている。このため、ＵＳＢ２．０の規格に対応したＵＳＢハブは、従来のロースピードモード及びフルスピードモードに加えてハイスピードモードの転送モードをサポートすることになり、異なる転送モードのスレーブの混在に対応する必要がある。たとえば、４個あるダウンストリームポート１１のひとつにフルスピードモードのスレーブ装置が接続され、他のひとつにハイスピードモードのスレーブ装置が接続されたとする。この場合、ホスト装置が接続されるアップストリームポート１０の転送モードはハイスピードモードとなる。従って、ホスト装置とフルスピードモードのスレーブ装置との間の転送においては転送速度の違いを吸収するためのバッファーが必要となる。このバッファーの役割を果たすのがトランザクショントランスレーター部２１である。ロースピードモード又はフルスピードモードのスレーブ装置とのデータ転送にはトランザクショントランスレーター部２１が介在する。ルーティングロジック部２３はダウンストリームポート１１に対しての接続をハブリピーター部２０（説明は後述する）との接続信号である信号３４とトランザクショントランスレーター部２１との接続信号である信号３５との間で切り替えるためのものである。トランザクショントランスレーター部２１が介在する場合には信号３５が選択される。
【００１９】
ＵＳＢハブ１００自体もスレーブ装置のひとつである。このスレーブ装置としての機能を制御するのがハブコントローラー部２２である。本実施形態の説明においては、既にホスト装置からＵＳＢハブとして機能するために必要な設定及び制御がなされているとして、ハブコントローラー部２２の説明は省略する。
【００２０】
ハブリピーター部２０はアップストリームポート１０とダウンストリームポート１１との間のデータ転送制御を行う部分であり、データ転送部４０とシーケンス制御部４４及びＥＯＰ生成部４５を有する。ホスト装置からデータ転送が行われる場合、ＵＳＢハブ１００においてアップストリームポート１０が受信ポートとなり、ダウンストリームポート１１が送信ポートとなる。また、スレーブ装置からホスト装置にデータ転送が行われる場合、ダウンストリームポート１１が受信ポートとなり、アップストリームポート１０が送信ポートとなる。
【００２１】
受信ポートにおいてスケルチ検出がなくなると、データ転送部４０は有効な信号を受信していると判断し、受信した信号の中から受信タイミングと受信データの抽出を行う。抽出された受信データはデータ転送部４０内のバッファー４１に一時的に保持される。また、シーケンス制御部４４は、送信ポートに対して一時的に保持された受信データの送信を許可する。その後、受信ポートの出力信号から順次抽出された受信データはバッファー４１に一時的に保持された後に送信ポートから出力される。受信ポートにおいてスケルチを検出するとデータ転送部４０は受信データの抽出を停止する。シーケンス制御部４４は送信ポートから必要なデータの送信終了を検出すると、送信ポートに対して送信を不許可とする。これにより送信ポートにおける出力はアイドル状態となる。バッファー４１のサイズは、ＥＯＰコード長よりも長いサイズであればよい。
【００２２】
ＥＯＰ生成部４５は、ＥＯＰ（Ｅｎｄ  Ｏｆ  Ｐａｃｋｅｔ）コードを生成する部分である。受信データからＥＯＰコードを検出すると、データ転送部４０はＥＯＰコードの送信のタイミングで送信ポートに出力するデータをバッファー４１の出力からＥＯＰ生成部４５からの信号５７に切り替える。「必要なデータの送信終了」と上述したが、「必要なデータの送信終了」とは、ＥＯＰ生成部４５で生成したＥＯＰコードの送信終了であり、バッファー４１に保存された受信データすべての送信終了ではない。
【実施例１】
【００２３】
次により具体的に動作の説明を行う。本実施例におけるシステム構成の概略図を図２に示す。ホスト装置２００がＵＳＢハブ１００のアップストリームポート１０に接続され、スレーブ装置３００がＵＳＢハブ１００のダウンストリームポート１１のひとつに接続されている。スレーブ装置３００の転送モードはハイスピードモードである。従って、本実施例においてルーティングロジック部２３は信号３４をダウンストリームポート１１に接続しており、ホスト装置２００とスレーブ装置３００との間のデータ転送においてトランザクショントランスレーター部２１を介さない。
【００２４】
また、本実施例における説明は、ホスト装置２００からスレーブ装置３００にデータパケットを送信する場合におけるものである。図３にホスト装置２００、ＵＳＢハブ１００及びスレーブ装置３００間のパケット転送の模式図を示す。データパケットは、送信される順番に記載して、ＳＹＮＣコード、ＰＩＤコード、ＰＩＤコードのデータを反転したデータからなるＰＩＤ’コード、ｄａｔａコード、ＣＲＣコード及びＥＯＰコードからなる。図３において、横軸は時間の経過を示している。ホスト装置２００が送信するパケットが、データパケット１００１である。ＵＳＢハブ１００が受信したパケットがデータパケット１００２であり、ＵＳＢハブ１００がスレーブ装置３００に対して送信するパケットがデータパケット１００３である。尚、ＳＹＮＣコードの長さは図３において一様に描かれているが、ＳＹＮＣコードの長さはＵＳＢ２．０の規格を満足する長さであればよく、必ずしもデータパケット１００１、１００２及び１００３において同じデータ長である必要はない。
【００２５】
まず、ホスト装置２００がＵＳＢハブ１００に対してデータパケット１００１の送信を開始する。これにより、ホスト装置２００とＵＳＢハブ１００との間はアイドル状態ではなくなる。ホスト装置２００は、データパケットを構成する各コードを上述した順番でＵＳＢハブ１００に出力し、ＥＯＰコードの送信を終えるとＵＳＢをアイドル状態とする。
【００２６】
ホスト装置２００におけるデータパケット１００１の送信を受けて、ＵＳＢハブ１００の動作は次のようになる。ホスト装置２００がデータパケット１００１の送信を開始したことによりＵＳＢがアイドル状態ではなくなったことで、アップストリームポート１０におけるスケルチの検出がなくなる。これにより、データ転送部４０はハブリピーター部２０とアップストリームポート１０との間の接続信号３１に含まれるアップストリームポート１０からの受信信号が有効であることを認識し、データパケット１００１の中で最初に送られてくるＳＹＮＣコードにより受信信号のタイミング検出が行われ、受信信号のサンプリングタイミングが決定される。これにより、シーケンス制御部４４によりダウンストリームポート１１の出力がイネーブルとなる。サンプリングされた受信データは一時的にバッファー４１に保存された後、ダウンストリームポート１１から送信される。受信信号のサンプリングは、スケルチを検出するまで行われる。
【００２７】
ホスト装置２００がＵＳＢをアイドル状態にすることにより、アップストリームポート１０はスケルチを検出するが、ホスト装置２００とＵＳＢハブ１００との間のＵＳＢがアイドル状態となってからスケルチが検出されるまでにはスケルチ検出回路の特性に応じた所定の時間が経過する。この所定の時間の間もデータ転送部４０において受信信号のサンプリングが行われる。この所定の時間の間にサンプリングされたデータがドリブルビットとなる。このため、ホスト装置２００が送信したデータパケット１００１は、ＵＳＢハブ１００においてはデータパケット１００２として受信される（図３参照）。データパケット１００２における（Ｂ）の部分がドリブルビットとなる。サンプリングされたドリブルビットはＥＯＰコードに続いてバッファー４１に保存される。ＵＳＢ２．０の規格において、上記した所定の時間は４ビット長以下の時間と規定されている。
【００２８】
データ転送部４０は、サンプリングした受信データのビットスタッフィングエラーを検出することにより、受信したデータにおけるＥＯＰコードの受信を検出する。バッファー４１はＥＯＰコード長よりも長いサイズであることから、ＥＯＰコードを検出した段階ではスレーブ装置３００へのＥＯＰコードの送信がなされていない。データ転送部４０は、データパケット１００２のＥＯＰコードの前のデータであるＣＲＣコードの送信を終えると、ダウンストリームポート１１から送信するデータの出力をバッファー４１の出力からＥＯＰ生成部４５の出力である信号５７に切り替える。シーケンス制御部４４は、ＥＯＰ生成部４５で生成したＥＯＰコードの出力が終了するとダウンストリームポート１１の出力をディスイネーブルとする。これによりＵＳＢハブ１００とスレーブ装置３００との間のＵＳＢはアイドル状態となる。
【００２９】
ＵＳＢハブ１００がスレーブ装置３００へ送信するデータパケット１００３は、ＵＳＢハブ１００が受信したデータパケット１００２におけるＥＯＰコード及びドリブルビット（図３・１００２の（Ａ）の部分）をＥＯＰ生成部４５が生成したＥＯＰコード（図３・１００３の（Ｃ）の部分）に置き換えたものになる。これにより、ＵＳＢハブ１００により受信されたドリブルビットの伝播を防ぐことができる。
【００３０】
以上、本発明を適用した実施形態及び実施例について説明を行ったが、本発明の適用は上述した実施形態及び実施例に限られるものではない。たとえば、ビットスタッフィングエラーの検出はデータ転送部４０以外の部分で行われるようにしてもよい。また、たとえば、ＥＯＰ生成部４５の出力である信号５７をルーティングロジック部２３の入力とし、送信データを切り替える機能をルーティングロジック部２３に持たせてもよい。尚、上述した実施形態及び実施例はデータパケットにおけるものであるが、他の種類のパケットにおいも本発明の適用は可能である。
【符号の説明】
【００３１】
１０…アップストリームポート、１１…ダウンストリームポート、２０…ハブリピーター部、２１…トランザクショントランスレーター部、２２…ハブコントローラー部、２３…ルーティングロジック部、３１…接続信号、３４…信号、３５…信号、４０…データ転送部、４１…バッファー、４４…シーケンス制御部、４５…ＥＯＰ生成部、５７…信号、１００…ＵＳＢハブ、２００…ホスト装置、３００…スレーブ装置、１００１…データパケット、１００２…データパケット、１００３…データパケット。
【図１】
0005482306.tif 000002
【図２】
0005482306.tif 000003
【図３】
0005482306.tif 000004