(57)【特許請求の範囲】
【請求項１】
第１のポート回路と、
第２のポート回路と、
前記第１のポート回路と前記第２のポート回路との間のデータの転送を制御するハブロジック回路と、
入力される受信データを少なくとも整形することにより、ビットロス又はドリブルビットを低減して出力するリピーター回路と、
第１のモードにおいて、アップストリームポート動作を行う前記第１のポート回路を前記ハブロジック回路に電気的に接続し、第２のモードにおいて、ダウンストリームポート動作を行う前記第１のポート回路を前記リピーター回路に電気的に接続する第１のセレクター回路と、
前記第１のモードにおいて、ダウンストリームポート動作を行う前記第２のポート回路を前記ハブロジック回路に電気的に接続し、前記第２のモードにおいて、アップストリームポート動作を行う前記第２のポート回路を前記リピーター回路に電気的に接続する第２のセレクター回路と、
を備えるデータ転送制御装置。
【請求項２】
第１のポート回路と、
第２のポート回路と、
第１のモードにおいて、アップストリームポート動作を行う前記第１のポート回路とダウンストリームポート動作を行う前記第２のポート回路との間のデータの転送を制御し、第２のモードにおいて、アップストリームポート動作を行う前記第２のポート回路から入力される受信データを少なくとも整形することにより、ビットロス又はドリブルビットを低減して前記第１のポート回路に出力すると共に、ダウンストリームポート動作を行う前記第１のポート回路から入力される受信データを少なくとも整形することにより、ビットロス又はドリブルビットを低減して前記第２のポート回路に出力するハブリピーターロジック回路と、
を備えるデータ転送制御装置。
【請求項３】
前記第２のモードにおいて、前記第２のポート回路から機器が切断されたか、又は、前記第２のポート回路に接続されている機器が通信を停止したことが検出されたときに、前記第１のポート回路に接続されたバスをサスペンドにするか、又は、前記第１のポート回路に接続されたバスコネクターの電源端子に対するバス電源電位の供給を停止するように前記第１のポート回路を制御する制御回路をさらに備える、請求項１又は２記載のデータ転送制御装置。
【請求項４】
前記制御回路が、前記第１のポート回路に接続されている機器が前記バスコネクターの所定の端子のプルアップを解除したことが検出されたときに、前記データ転送制御装置を前記第２のモードから前記第１のモードに移行させる、請求項３記載のデータ転送制御装置。
【請求項５】
複数の第２のポート回路を備え、
前記制御回路が、前記複数の第２のポート回路の内から選択されたポート回路を特定する識別コードに基づいて、前記第２のモードにおいて、前記選択されたポート回路におけるデータ送信動作を許可する信号を出力すると共に、前記複数の第２のポート回路の内の他のポート回路におけるデータ送信動作を禁止する信号を出力する、請求項３又は４記載のデータ転送制御装置。
【請求項６】
請求項１〜５のいずれか１項記載のデータ転送制御装置を備える電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の機器の間のデータの転送を制御するデータ転送制御装置に関する。さらに、本発明は、そのようなデータ転送制御装置を用いた電子機器等に関する。
【背景技術】
【０００２】
近年においては、ホスト機器に様々な周辺機器を接続するために、ＵＳＢ（ユニバーサルシリアルバス）規格等で規格化されたシリアルインターフェースが普及している。そのようなシリアルインターフェースは、パーソナルコンピューターとプリンターとの接続、デジタルカメラとプリンターとの接続、又は、カーナビゲーション装置とポータブルオーディオ機器との接続等において広く用いられている。
【０００３】
例えば、パーソナルコンピューターには、２個〜４個程度のＵＳＢポートが設けられているが、ＵＳＢ対応の周辺機器としては、キーボード、マウス、プリンター、ＵＳＢメモリー、外付けＨＤＤ（ハードディスクドライブ）等が存在する。そこで、ＵＳＢによるパーソナルコンピューターと多数の周辺機器との接続には、ＵＳＢハブが用いられている。
【０００４】
その場合に、ＵＳＢハブのアップストリームポート回路には、ＵＳＢを介してホスト機器が接続され、ＵＳＢハブのダウンストリームポート回路には、ＵＳＢを介してスレーブ機器が接続される。そして、ＵＳＢハブが、ホスト機器とスレーブ機器との間のデータの転送を制御する。
【０００５】
しかしながら、そのような構成では、アップストリームポート回路の接続対象がホスト機器に限定され、ダウンストリームポート回路の接続対象がスレーブ機器に限定されてしまう。従って、スレーブ機能に加えてホスト機能を有するデュアルロールデバイスをダウンストリームポート回路に接続してシステムを制御したり、アップストリームポート回路に接続されたホスト機器をスレーブ機器として制御することができないという問題があった。
【０００６】
関連する技術として、特許文献１には、ポートの接続対象を切り換えられるデータ転送制御装置が開示されている。このデータ転送制御装置は、アップストリームポート回路と、複数のダウンストリームポート回路と、アップストリームポート回路と複数のダウンストリームポート回路との間のデータ転送制御を行うハブロジック回路とを含み、複数のダウンストリームポート回路の内の少なくとも１つとしてアップ／ダウンストリームポート回路が設けられている。
【０００７】
そして、ハブモードでは、アップストリームポート回路が、アップストリームポート動作を行い、アップ／ダウンストリームポート回路が、ダウンストリームポート動作を行う。また、デバイスモードでは、アップストリームポート回路が、アップ／ダウンストリームポート回路の物理層回路とのインターフェース処理を行い、アップ／ダウンストリームポート回路が、アップストリームポート動作を行う。
【０００８】
また、特許文献２には、ＯＴＧ（On-The-Go）規格（ＵＳＢ対応の周辺機器同士を接続するために定められた規格）に準拠したＵＳＢ機器を接続した際に、ＵＳＢホストとＵＳＢデバイスとの間の切り換えを容易に行うことができるＵＳＢ機器制御方法が開示されている。
【０００９】
このＵＳＢ機器制御方法は、ＵＳＢデバイス又はＵＳＢホストとして機能するデュアルロールデバイスを含む複数のＵＳＢ機器をハブを介して結合する場合に、デュアルロールデバイスの接続時の機能を判断し、デュアルロールデバイスをＵＳＢデバイスとＵＳＢホストとの間で切り換えることを特徴とする。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０１０−９３４３７号公報（段落０００５〜０００６、図２）
【特許文献２】特開２００４−１５７６０４号公報（段落０００５〜０００６、図１）
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、デュアルロールデバイスの中には、ＵＳＢハブを制御できない機器も存在する。また、ＵＳＢ規格においてはパケット間遅延時間が規定されているが、ポート回路のスケルチ検出回路における受信データの検出の遅れに起因してビットロスやドリブルビットが発生すると、パケット間遅延時間が変化して、ＵＳＢ規格を順守することができない。さらに、デュアルロールデバイスの中には、ホストになることはできてもスレーブに戻るプロトコルを持たない機器も存在する。そのような機器にホスト権を与えたホスト機器は、再びホスト権を取得することができない。
【００１２】
そこで、本発明の第１の目的は、ホスト機能を有していてもハブを制御できない機器がデータ転送制御装置に接続された場合に、そのような機器がホスト動作を行うことを可能にすることである。また、本発明の第２の目的は、ハブを制御できない機器がデータ転送制御装置を介して他の機器との間でデータを転送する際に、ビットロス又はドリブルビット等を低減することである。さらに、本発明の第３の目的は、ホストになることはできてもスレーブに戻るプロトコルを持たない機器にホスト権を与えたホスト機器が、再びホスト権を取得できるようにすることである。
【課題を解決するための手段】
【００１３】
以上の課題の少なくとも一部を解決するため、本発明の第１の観点に係るデータ転送制御装置は、第１のポート回路と、第２のポート回路と、第１のポート回路と第２のポート回路との間のデータの転送を制御するハブロジック回路と、入力される受信データを少なくとも整形することにより、ビットロス又はドリブルビットを低減して出力するリピーター回路と、第１のモードにおいて、アップストリームポート動作を行う第１のポート回路をハブロジック回路に電気的に接続し、第２のモードにおいて、ダウンストリームポート動作を行う第１のポート回路をリピーター回路に電気的に接続する第１のセレクター回路と、第１のモードにおいて、ダウンストリームポート動作を行う第２のポート回路をハブロジック回路に電気的に接続し、第２のモードにおいて、アップストリームポート動作を行う第２のポート回路をリピーター回路に電気的に接続する第２のセレクター回路とを備える。
【００１４】
また、本発明の第２の観点に係るデータ転送制御装置は、第１のポート回路と、第２のポート回路と、第１のモードにおいて、アップストリームポート動作を行う第１のポート回路とダウンストリームポート動作を行う第２のポート回路との間のデータの転送を制御し、第２のモードにおいて、アップストリームポート動作を行う第２のポート回路から入力される受信データを少なくとも整形することにより、ビットロス又はドリブルビットを低減して第１のポート回路に出力すると共に、ダウンストリームポート動作を行う第１のポート回路から入力される受信データを少なくとも整形することにより、ビットロス又はドリブルビットを低減して第２のポート回路に出力するハブリピーターロジック回路とを備える。
【００１５】
本発明の第１又は第２の観点によれば、データ転送制御装置が、第２のモードにおいて、アップストリームポート動作を行う第２のポート回路から入力される受信データを少なくとも整形することにより、ビットロス又はドリブルビットを低減して第１のポート回路に出力すると共に、ダウンストリームポート動作を行う第１のポート回路から入力される受信データを少なくとも整形することにより、ビットロス又はドリブルビットを低減して第２のポート回路に出力するリピーターとして動作する。それにより、ホスト機能を有していてもハブを制御できない機器が第２のポート回路に接続された場合に、そのような機器がホスト動作を行うことが可能になる。ここで、リピーター回路は、入力される受信データを整形することにより、ビットロス又はドリブルビットを低減すると共に、バスケーブルや物理層回路で鈍った波形を改善することができる。
【００１６】
本発明の第１又は第２の観点において、データ転送制御装置は、第２のモードにおいて、第２のポート回路から機器が切断されたか、又は、第２のポート回路に接続されている機器が通信を停止したことが検出されたときに、第１のポート回路に接続されたバスをサスペンドにするか、又は、第１のポート回路に接続されたバスコネクターの電源端子に対するバス電源電位の供給を停止するように第１のポート回路を制御する制御回路をさらに備えるようにしても良い。それにより、第１のポート回路に接続されているホスト機器は、第２のポート回路に接続されている機器にホスト権を一旦与えても、その機器が既にホスト権を必要としていないと判定することができる。
【００１７】
その場合に、制御回路は、第１のポート回路に接続されている機器がバスコネクターの所定の端子のプルアップを解除したことが検出されたときに、データ転送制御装置を第２のモードから第１のモードに移行させるようにしても良い。それにより、所定の端子のプルアップを解除したホスト機器は、再びホスト権を取得することができる。
【００１８】
以上において、データ転送制御装置が、複数の第２のポート回路を備え、制御回路が、複数の第２のポート回路の内から選択されたポート回路を特定する識別コードに基づいて、第２のモードにおいて、選択されたポート回路におけるデータ送信動作を許可する信号を出力すると共に、複数の第２のポート回路の内の他のポート回路におけるデータ送信動作を禁止する信号を出力するようにしても良い。それにより、他のポート回路がサスペンド状態又はディスコネクト状態等に設定されるので、使用しないポート回路における消費電力を低減することができる。
【００１９】
本発明の１つの観点に係る電子機器は、上記いずれかのデータ転送制御装置を備える。それにより、ホスト機能を有していてもハブを制御できない機器が接続された場合に、そのような機器がホスト動作を行うことを可能にする電子機器を提供することができる。
【図面の簡単な説明】
【００２０】
【図１】第１の実施形態に係るデータ転送制御装置を含むシステムの構成を示す図。
【図２】データ転送制御装置のリピーターモードにおける接続状態を示す回路図。
【図３】図２に示すスケルチ検出回路の構成例を示す回路図。
【図４】図２に示すサンプリングクロック信号生成回路の構成例を示すブロック図。
【図５】図２に示すリピーター回路の動作を説明するためのタイミングチャート。
【図６】データ転送制御装置の動作例を説明するためのタイミングチャート。
【図７】第２の実施形態に係るデータ転送制御装置の構成例を示す図。
【図８】本発明の一実施形態に係る電子機器の構成例を示すブロック図。
【発明を実施するための形態】
【００２１】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。なお、同一の構成要素には同一の参照符号を付して、重複する説明を省略する。
＜第１の実施形態＞
図１は、本発明の第１の実施形態に係るデータ転送制御装置を含むシステムの構成例を示すブロック図である。図１に示すように、このシステムは、メインコントローラー１０と、データ転送制御装置２０と、少なくとも１つのデバイス３０とを含んでいる。
【００２２】
＜メインコントローラー＞
メインコントローラー１０は、例えば、カーナビゲーション装置等の車載装置、又は、パーソナルコンピューター等であり、ホスト機能に加えてスレーブ機能を有している。メインコントローラー１０は、リンクコントローラー１１と、ＵＴＭＩ規格又はＵＬＰＩ規格を含むＵＳＢ規格等に準拠するインターフェース回路（Ｉ／Ｆ）１２とを備えている。
【００２３】
ここで、ＵＴＭＩ規格とは、ＵＳＢ２．０ Transceiver Macrocell Interfaceの略称であり、ＵＳＢのコントローラー（論理層回路）とトランシーバー（物理層回路）との間のインターフェース規格である。また、ＵＬＰＩ規格とは、ＵＴＭＩ＋ Low Pin Interfaceの略称で、ＵＴＭＩ規格のインターフェースの配線本数を削減した規格である。
【００２４】
あるいは、メインコントローラー１０は、インターフェース回路１２に加えて、又は、インターフェース回路１２の替りに、ルートハブを備えても良い。ルートハブは、データ転送制御装置２０との間でデータを送受信する以外に、他のデバイスとの間でデータを送受信することもできる。
【００２５】
＜デバイス＞
デバイス３０は、例えば、キーボード、マウス、プリンター、メモリー、外付けＨＤＤ、又は、ポータブルオーディオ機器等であり、ＵＳＢ規格等に準拠するインターフェース回路を備えている。デバイス３０の内の少なくとも１つは、スレーブ機能に加えてホスト機能を有するデュアルロールデバイス３０ａであり、データ転送制御装置２０を介してメインコントローラー１０を制御することができる。例えば、デュアルロールデバイス３０ａとしては、スマートフォンや携帯端末等が該当する。
【００２６】
＜データ転送制御装置＞
データ転送制御装置２０は、ポート回路２１と、ポート回路２２と、ハブロジック回路２３と、リピーター回路２４と、セレクター回路２５及び２６と、制御回路２７と、格納部２８とを含んでいる。
【００２７】
ポート回路２１は、アップストリームポート機能及びダウンストリームポート機能を有し、バスを介してメインコントローラー１０に接続される。ポート回路２２は、ダウンストリームポート機能を有し、バスを介してデバイス３０に接続される。ポート回路２２の内の少なくとも１つのポート回路２２ａは、ダウンストリームポート機能及びアップストリームポート機能を有し、バスを介してデュアルロールデバイス３０ａに接続される。
【００２８】
ポート回路２１は、ＵＳＢ規格等に準拠するインターフェース回路４０を備えている。インターフェース回路４０は、メインコントローラー１０との間でインターフェース処理を行う。そして、ポート回路２１は、メインコントローラー１０とハブロジック回路２３又はリピーター回路２４との間のデータの転送や、インターフェース信号の変換処理を行う。
【００２９】
例えば、メインコントローラー１０のインターフェース回路１２がＵＴＭＩ規格に準拠する場合に、インターフェース回路４０は、インターフェース回路１２にＵＴＭＩ規格のバスを介して接続され、インターフェース回路１２との間でＵＴＭＩ規格のインターフェース処理を行っても良い。
【００３０】
あるいは、メインコントローラー１０のリンクコントローラー１１がＵＬＰＩ規格に準拠する場合に、インターフェース回路４０は、リンクコントローラー１１にＵＬＰＩ規格のバスで接続され、リンクコントローラー１１との間でＵＬＰＩ規格のインターフェース処理を行っても良い。その場合に、インターフェース回路４０は、トランシーバー（物理層回路）を介すことなく、リンクコントローラー１１との間のインターフェース処理を直接行うことができる。
【００３１】
ポート回路２２は、ＵＳＢ規格等に準拠するインターフェース回路５０を備えている。インターフェース回路５０は、デバイス３０との間でインターフェース処理を行う。そして、ポート回路２２は、デバイス３０とハブロジック回路２３又はリピーター回路２４との間のデータの転送や、インターフェース信号の変換処理を行う。
【００３２】
ハブロジック回路２３は、例えば、組み合わせ論理回路又は順序回路等で構成され、ポート回路２１とポート回路２２との間のデータの転送を制御することにより、メインコントローラー１０とデバイス３０との間のデータの転送の制御を行う。
【００３３】
具体的には、ハブロジック回路２３は、ポート回路２１のデータの転送を制御して、メインコントローラー１０との間でデータの転送を行う。あるいは、ハブロジック回路２３は、ポート回路２２のデータの転送を制御して、デバイス３０との間でデータの転送を行う。例えば、ハブロジック回路２３は、ポート回路２１又は２２とメインコントローラー１０又はデバイス３０との接続処理や切断処理を行ったり、バスのエラー（fault）を検出する処理を行ったり、バスのエラーから復帰する処理を行ったりして、データの転送を制御する。
【００３４】
ハブロジック回路２３は、ＵＳＢ２．０規格に準拠するＨＳモード（ハイスピードモード：４８０Ｍｂｐｓ）、ＦＳモード（フルスピードモード：１２Ｍｂｐｓ）、ＬＳモード（ロースピードモード：１．５Ｍｂｐｓ）のデータ転送速度をサポートすることができる。例えば、ハブロジック回路２３は、メインコントローラー１０から送信されるＨＳトランザクションを、ＦＳトランザクション又はＬＳトランザクションにトランスレート処理してポート回路２２に転送する。
【００３５】
＜ホスト動作とスレーブ動作との切換＞
メインコントローラー１０及びデュアルロールデバイス３０ａは、ホスト動作とスレーブ動作とを切り換え可能であり、ホストコントローラーとしてもデバイスとしても動作することができる。
【００３６】
例えば、メインコントローラー１０は、ホスト動作として、データ転送制御装置２０との間の制御フローやデータ転送フローの管理を行う。また、デュアルロールデバイス３０ａは、ホスト動作として、メインコントローラー１０に各種のリクエストを送信する。一方、メインコントローラー１０及びデュアルロールデバイス３０ａは、スレーブ動作として、ホストコントローラーからのリクエストの処理やエニュメレーション処理を行う。
【００３７】
しかしながら、スレーブ機能に加えてホスト機能を有するデュアルロールデバイスの中には、ハブを制御できない機器も存在する。そこで、本実施形態においては、デュアルロールデバイス３０ａがハブを制御できない機器であっても他の機器を制御できるように、リピーター回路２４と、セレクター回路２５及び２６と、制御回路２７と、格納部２８とが設けられている。
【００３８】
リピーター回路２４は、入力される受信データを整形及びリタイミングして出力する。第１のセレクター回路であるセレクター回路２５は、例えば、複数のトランジスター又は複数のトランスミッションゲートで構成され、ポート回路２１をハブロジック回路２３とリピーター回路２４との内の選択された一方に電気的に接続する。
【００３９】
第２のセレクター回路であるセレクター回路２６は、例えば、複数のトランジスター又は複数のトランスミッションゲートで構成され、ポート回路２２ａをハブロジック回路２３とリピーター回路２４との内の選択された一方に電気的に接続すると共に、他のポート回路２２をハブロジック回路２３に電気的に接続する。
【００４０】
制御回路２７は、例えば、組み合わせ論理回路又は順序回路等で構成され、データ転送制御装置２０の各部を制御する。格納部２８は、例えば、レジスター又は不揮発性メモリー等を含み、データ転送制御装置２０の制御に用いられるレジスター値又は識別コードを格納する。また、格納部２８は、ホスト機能を有するデバイスのアドレスを含むデバイス情報等を格納しても良い。
【００４１】
メインコントローラー１０がホスト動作を行う第１のモードにおいて、制御回路２７は、アップストリームポート動作を行うようにポート回路２１を制御すると共に、ダウンストリームポート動作を行うようにポート回路２２ａを制御する。また、制御回路２７は、アップストリームポート動作を行うポート回路２１をハブロジック回路２３に電気的に接続するようにセレクター回路２５を制御すると共に、ダウンストリームポート動作を行うポート回路２２ａをハブロジック回路２３に電気的に接続するようにセレクター回路２６を制御する。
【００４２】
デュアルロールデバイス３０ａがホスト動作を行う第２のモードにおいて、制御回路２７は、ダウンストリームポート動作を行うようにポート回路２１を制御すると共に、アップストリームポート動作を行うようにポート回路２２ａを制御する。また、制御回路２７は、ダウンストリームポート動作を行うポート回路２１をリピーター回路２４に電気的に接続するようにセレクター回路２５を制御すると共に、アップストリームポート動作を行うポート回路２２ａをリピーター回路２４に電気的に接続ようにセレクター回路２６を制御する。
【００４３】
以下においては、メインコントローラー１０がホスト動作を行う第１のモードを「ハブモード」ともいい、デュアルロールデバイス３０ａがホスト動作を行う第２のモードを「リピーターモード」ともいう。制御回路２７は、データ転送制御装置２０をハブモードに設定するときに、モード設定信号ＭＯＤを第１の論理レベルにし、データ転送制御装置２０をリピーターモードに設定するときに、モード設定信号ＭＯＤを第２の論理レベルにする。
【００４４】
例えば、メインコントローラー１０及びデュアルロールデバイス３０ａは、ＯＴＧ（On-The-Go）規格に準拠しても良く、ＯＴＧ規格に従ってホスト動作とスレーブ動作とを切り換えても良い。あるいは、メインコントローラー１０及びデュアルロールデバイス３０ａは、データ転送制御装置２０との接続時のネゴシエーションによって接続相手を認識し、その認識結果に基づいて、ホスト動作とスレーブ動作とを切り換えても良い。それらの場合に、制御回路２７は、メインコントローラー１０又はデュアルロールデバイス３０ａによって設定されるバスの状態に基づいて、モード設定信号ＭＯＤを出力しても良い。
【００４５】
あるいは、メインコントローラー１０からハブロジック回路２３に送信されるリクエストに基づいて、格納部２８がモードを設定するためのレジスター値を格納しても良い。その場合に、制御回路２７は、格納部２８に格納されているレジスター値に基づいて、モード設定信号ＭＯＤを出力しても良い。
【００４６】
あるいは、データ転送制御装置２０又はそれを用いた電子機器等にモード設定端子又はモード設定スイッチが設けられ、メインコントローラー１０及びデュアルロールデバイス３０ａが、モード設定端子又はモード設定スイッチからの信号を受けて、ホスト動作とスレーブ動作とを切り換えても良い。その場合に、モード設定端子又はモード設定スイッチからの信号が、モード設定信号ＭＯＤとして使用されても良い。
【００４７】
ハブモードにおいては、ポート回路２１及び２２がハブロジック回路２３に電気的に接続されて、ポート回路２１に接続されたメインコントローラー１０がホスト動作を行うと共に、ポート回路２２に接続されたデバイス３０がスレーブ動作を行い、データ転送制御装置２０は通常のハブとして動作する。
【００４８】
一方、リピーターモードにおいては、ポート回路２１及び２２ａがリピーター回路２４に電気的に接続されて、ポート回路２２ａに接続されたデュアルロールデバイス３０ａがホスト動作を行うと共に、ポート回路２１に接続されたメインコントローラー１０がスレーブ動作を行い、データ転送制御装置２０はリピーターとして動作する。それにより、ホスト機能を有していてもハブを制御できないデュアルロールデバイス３０ａがポート回路２２ａに接続された場合に、デュアルロールデバイス３０ａがホスト動作を行うことが可能になる。
【００４９】
また、ＵＳＢ規格においては、１つのトランザクション内におけるパケット間の時間間隔（Inter Packet Delay：パケット間遅延時間）が規定されているが、ポート回路のスケルチ検出回路における受信データの検出の遅れに起因してビットロスやドリブルビットが発生すると、パケット間遅延時間が変化して、ＵＳＢ規格を順守することができない。
【００５０】
例えば、ＵＳＢ２．０規格のＨＳモードにおいては、ＵＳＢがアイドル状態であることを示すスケルチの検出に要する時間が、４ビットのデータ長に相当する時間となる可能性がある。このため、受信側の機器において本来のパケット受信後に受信される本来は存在しないはずのデータ、所謂ドリブルビットが、４ビットまで許容されている。
【００５１】
しかしながら、データ転送制御装置の場合には、受信されるドリブルビットが規格内であっても、そのドリブルビットを送信してしまうことは好ましくない。データ転送制御装置の後段の機器に送信されるドリブルビットが４ビット以下であったとしても、後段の機器において終了コードの後に繋がる余分なデータが４ビットを超える場合も考えられ、後段の機器の設計内容によっては好ましくない動作が生じる可能性があるからである。
【００５２】
本実施形態によれば、リピーター回路２４が、入力される受信データを整形及びリタイミングして出力するので、ビットロス又はドリブルビットを低減すると共に、バスケーブルや物理層回路で鈍った波形を改善することができる。次に、リピーター回路２４について、図２を参照しながら詳しく説明する。
【００５３】
図２は、図１に示すデータ転送制御装置のリピーターモードにおける接続状態を示す回路図である。図２には、第１のポート回路２１と、第２のポート回路２２ａと、リピーター回路２４と、セレクター回路２５及び２６の一部とが示されている。以下においては、一例として、第１のポート回路２１及び第２のポート回路２２ａがＵＳＢ規格に準拠するインターフェース回路を備える場合について説明する。
【００５４】
＜第１のポート回路＞
第１のポート回路２１は、データ端子Ｄ＋、データ端子Ｄ−、電源端子ＶＢ、及び、電源端子ＶＧを備える第１のＵＳＢコネクターと、インターフェース回路４０と、サンプリングクロック信号生成回路４５と、バッファー回路（エラスティシティバッファー）４６と、パラレル／シリアル変換回路４７とを含んでいる。インターフェース回路４０は、差動レシーバー４１と、差動ドライバー４２と、接続状態検出回路４３と、スケルチ検出回路４４と、スイッチ回路ＳＷ１〜ＳＷ４と、抵抗Ｒ１〜Ｒ３、Ｒ１１及びＲ１２とを含んでいる。
【００５５】
差動レシーバー４１は、第１のＵＳＢコネクターのデータ端子Ｄ＋に接続された非反転入力端子と、第１のＵＳＢコネクターのデータ端子Ｄ−に接続された反転入力端子とを有しており、それらの入力端子に入力される信号を差動増幅して受信データＤＩＮを出力する。
【００５６】
差動ドライバー４２は、データ送信時において送信イネーブル信号ＥＮ１が活性化されているときに動作し、入力端子に入力される送信データＤＯＵＴを増幅して出力信号及び反転出力信号を生成する。差動ドライバー４２の出力端子は、抵抗Ｒ１１を介して第１のＵＳＢコネクターのデータ端子Ｄ＋に接続され、反転出力端子は、抵抗Ｒ１２を介して第１のＵＳＢコネクターのデータ端子Ｄ−に接続されている。送信イネーブル信号ＥＮ１が非活性化されているときには、差動ドライバー４２の出力端子及び反転出力端子がアイドル状態（ハイインピーダンス状態）になる。
【００５７】
スイッチ回路ＳＷ１〜ＳＷ４は、制御回路２７（図１）から供給される制御信号に従って、オン状態又はオフ状態に制御される。ポート回路２１がアップストリームポート動作を行う際には、スイッチＳＷ１及びＳＷ２がオフすると共に、スイッチ回路ＳＷ３がオンする。それにより、第１のＵＳＢコネクターのデータ端子Ｄ＋が、抵抗Ｒ３を介して高電位側の電源電位ＶＤＤにプルアップされる。また、第１のＵＳＢコネクターの電源端子ＶＢからスイッチ回路ＳＷ４を介してポート回路２１に、バス電源電位ＶＢＵＳが供給される。
【００５８】
一方、ポート回路２１がダウンストリームポート動作を行う際には、スイッチ回路ＳＷ１及びＳＷ２がオンすると共に、スイッチ回路ＳＷ３がオフする。それにより、第１のＵＳＢコネクターのデータ端子Ｄ＋が、抵抗Ｒ１を介して低電位側の電源電位ＶＳＳにプルダウンされると共に、データ端子Ｄ−が、抵抗Ｒ２を介して電源電位ＶＳＳにプルダウンされる。また、ポート回路２１からスイッチ回路ＳＷ４を介して第１のＵＳＢコネクターの電源端子ＶＢに、バス電源電位ＶＢＵＳが供給される。
【００５９】
ポート回路２１がダウンストリームポート動作を行う際に、第１のＵＳＢコネクターにＵＳＢバスを介してＨＳモード又はＦＳモードの機器が接続されると、データ端子Ｄ＋にハイレベルの信号が入力され、ＬＳモードの機器が接続されると、データ端子Ｄ−にハイレベルの信号が入力される。
【００６０】
接続状態検出回路４３は、例えば、電源電圧（ＶＤＤ−ＶＳＳ）を分圧する分圧回路と、第１のＵＳＢコネクターのデータ端子Ｄ＋及びＤ−のレベルを分圧電圧と比較するコンパレーターとを含み、第１のＵＳＢコネクターのデータ端子Ｄ＋及びＤ−のレベルを判定する。
【００６１】
接続状態検出回路４３は、判定されたレベルに基づいて、第１のＵＳＢコネクターに機器が接続されたことや、第１のＵＳＢコネクターから機器が切断されたことを検出する。また、接続状態検出回路４３は、判定されたレベルに基づいて、第１のＵＳＢコネクターのデータ端子Ｄ＋又はＤ−が、第１のＵＳＢコネクターに接続されている機器によってプルアップされているか否かを検出する。接続状態検出回路４３は、検出結果に基づいて、第１のＵＳＢコネクターにおける機器の接続状態を表す接続状態信号ＣＳ１を生成し、接続状態信号ＣＳ１を図１に示すハブロジック回路２３及び制御回路２７に出力する。
【００６２】
スケルチ検出回路４４は、バスアクティビティ又は電流変化量に基づいて、第１のＵＳＢコネクターのデータ端子Ｄ＋及びＤ−における有効な信号の有無を検出し、検出結果を表すスケルチ信号ＳＱ１を生成する。スケルチ検出回路４４は、スケルチ信号ＳＱ１を、バッファー回路４６、パケット検出補正回路６１、及び、図１に示すハブロジック回路２３及び制御回路２７に出力する。
【００６３】
図３は、図２に示すスケルチ検出回路の構成例を示すブロック図である。図３に示すように、スケルチ検出回路４４は、トリガー回路７１と、インバーター７２と、ＡＮＤ回路７３と、ダイオードＤ０と、抵抗Ｒ０と、キャパシターＣ０と、トリガー回路７４とを含んでいる。
【００６４】
トリガー回路７１は、第１のＵＳＢコネクターのデータ端子Ｄ＋及びＤ−に入力される信号を差動増幅して出力信号を生成する。インバーター７２は、トリガー回路７１の出力信号を反転する。ＡＮＤ回路７３は、トリガー回路７１の出力信号とインバーター７２の出力信号との論理積を表す信号を生成する。ＡＮＤ回路７３から出力される信号は、ダイオードＤ０、抵抗Ｒ０、及び、キャパシターＣ０によって検波される。トリガー回路７４は、ヒステリシス特性を有しており、検波された信号のレベルを判定してスケルチ信号ＳＱ１を生成する。
【００６５】
第１のＵＳＢコネクターのデータ端子Ｄ＋及びＤ−に入力される信号の電位差が所定の値以上になると、トリガー回路７１の出力信号とインバーター７２の出力信号との論理積が短いパルスになる。この短いパルスによる電荷が、ダイオードＤ０を介してキャパシターＣ０に蓄積される。それにより、トリガー回路７４の入力電圧が所定の値以上になって、スケルチ信号ＳＱ１がハイレベルに活性化される。また、第１のＵＳＢコネクターのデータ端子Ｄ＋及びＤ−に入力される信号の電位差が所定の値以下になると、トリガー回路７４の入力電圧が所定の値以下になって、スケルチ信号ＳＱ１がローレベルに非活性化される。
【００６６】
再び図２を参照すると、サンプリングクロック信号生成回路４５は、差動レシーバー４１から出力される受信データＤＩＮに含まれている特定の周波数成分に基づいて、受信データＤＩＮをサンプリングするために用いられるサンプリングクロック信号を生成する。
【００６７】
図４は、図２に示すサンプリングクロック信号生成回路の構成例を示すブロック図である。サンプリングクロック信号生成回路４５は、ＰＬＬ回路８１と、ＤＬＬ回路８２とを含んでいる。ＰＬＬ回路８１は、例えば、ＶＣＯ（電圧制御発振器）を含み、受信データＤＩＮに含まれている特定の周波数成分に基づいて、周波数が同一で位相が互いに異なる多相クロック信号ＣＬＫ０〜ＣＬＫ４を生成する。
【００６８】
ＤＬＬ回路８２は、例えば、エッジ検出回路８３と、クロック信号選択回路８４とを含んでいる。エッジ検出回路８３は、受信データＤＩＮのエッジを検出する。より具体的には、エッジ検出回路８３は、ＰＬＬ回路８１から供給される多相クロック信号ＣＬＫ０〜ＣＬＫ４のエッジ（立ち上がりエッジ又は立ち下がりエッジ）の内のいずれのエッジ間に受信データＤＩＮのエッジが位置するかを検出し、検出結果を表すエッジ検出情報をクロック信号選択回路８４に出力する。クロック信号選択回路８４は、エッジ検出情報に基づいて、多相クロック信号ＣＬＫ０〜ＣＬＫ４の内から１つのクロック信号を選択し、選択されたクロック信号をサンプリングクロック信号ＳＣＬＫとしてバッファー回路４６に出力する。
【００６９】
再び図２を参照すると、バッファー回路４６は、例えば、シフトレジスター等を含み、スケルチ信号ＳＱ１が活性化されているときに、サンプリングクロック信号ＳＣＬＫに同期して、差動レシーバー４１から入力されるシリアル形式の受信データＤＩＮを格納する。バッファー回路４６に格納された受信データＤＩＮは、パラレルデータとして読み出すことができる。
【００７０】
このように、受信データＤＩＮをバッファーリングすることにより、データ転送制御装置に接続される機器において用いられているクロック信号の周波数とデータ転送制御装置の内部クロック信号の周波数との差を吸収することができる。また、バッファー回路４６は、スケルチ信号ＳＱ１が非活性化されているときに、入力データをローレベル又はハイレベルに固定する。
【００７１】
パラレル／シリアル変換回路４７は、例えば、シフトレジスター等を含み、内部クロック信号ＩＣＬＫ１に同期して、リピーター回路２４から供給されるパラレルデータを格納する。また、パラレル／シリアル変換回路４７は、内部クロック信号ＩＣＬＫ２に同期して、格納されているデータを読み出し、シリアル形式の送信データＤＯＵＴに変換してインターフェース回路４０の差動ドライバー４２に出力する。
【００７２】
＜第２のポート回路＞
第２のポート回路２２ａは、データ端子Ｄ＋、データ端子Ｄ−、電源端子ＶＢ、及び、電源端子ＶＧを備える第２のＵＳＢコネクターと、インターフェース回路５０と、サンプリングクロック信号生成回路５５と、バッファー回路（エラスティシティバッファー）５６と、パラレル／シリアル変換回路５７とを含んでいる。インターフェース回路５０は、差動レシーバー５１と、差動ドライバー５２と、接続状態検出回路５３と、スケルチ検出回路５４と、スイッチ回路ＳＷ５〜ＳＷ８と、抵抗Ｒ５〜Ｒ７、Ｒ２１及びＲ２２とを含んでいる。
【００７３】
差動レシーバー５１は、第２のＵＳＢコネクターのデータ端子Ｄ＋に接続された非反転入力端子と、第２のＵＳＢコネクターのデータ端子Ｄ−に接続された反転入力端子とを有しており、それらの入力端子に入力される信号を差動増幅して受信データＤＩＮを出力する。
【００７４】
差動ドライバー５２は、データ送信時において送信イネーブル信号ＥＮ２が活性化されているときに動作し、入力端子に入力される送信データＤＯＵＴを増幅して出力信号及び反転出力信号を生成する。差動ドライバー５２の出力端子は、抵抗Ｒ２１を介して第２のＵＳＢコネクターのデータ端子Ｄ＋に接続され、反転出力端子は、抵抗Ｒ２２を介して第２のＵＳＢコネクターのデータ端子Ｄ−に接続されている。送信イネーブル信号ＥＮ２が非活性化されているときには、差動ドライバー５２の出力端子及び反転出力端子がアイドル状態（ハイインピーダンス状態）になる。
【００７５】
スイッチ回路ＳＷ５〜ＳＷ８は、制御回路２７（図１）から供給される制御信号に従って、オン状態又はオフ状態に制御される。ポート回路２２ａがダウンストリームポート動作を行う際には、スイッチＳＷ５及びＳＷ６がオンすると共に、スイッチ回路ＳＷ７がオフする。それにより、第２のＵＳＢコネクターのデータ端子Ｄ＋が、抵抗Ｒ５を介して電源電位ＶＳＳにプルダウンされると共に、データ端子Ｄ−が、抵抗Ｒ６を介して電源電位ＶＳＳにプルダウンされる。また、ポート回路２２ａからスイッチ回路ＳＷ８を介して第２のＵＳＢコネクターの電源端子ＶＢに、バス電源電位ＶＢＵＳが供給される。
【００７６】
一方、ポート回路２２ａがアップストリームポート動作を行う際には、スイッチ回路ＳＷ５及びＳＷ６がオフすると共に、スイッチ回路ＳＷ７がオンする。それにより、第２のＵＳＢコネクターのデータ端子Ｄ＋が、抵抗Ｒ７を介して電源電位ＶＤＤにプルアップされる。また、第２のＵＳＢコネクターの電源端子ＶＢからスイッチ回路ＳＷ８を介してポート回路２２ａに、バス電源電位ＶＢＵＳが供給される。
【００７７】
ポート回路２２ａがダウンストリームポート動作を行う際に、第２のＵＳＢコネクターにＵＳＢバスを介してＨＳモード又はＦＳモードの機器が接続されると、データ端子Ｄ＋にハイレベルの信号が入力され、ＬＳモードの機器が接続されると、データ端子Ｄ−にハイレベルの信号が入力される。
【００７８】
接続状態検出回路５３は、第２のＵＳＢコネクターのデータ端子Ｄ＋及びＤ−のレベルを判定し、判定されたレベルに基づいて、第２のＵＳＢコネクターに機器が接続されたことや、第２のＵＳＢコネクターから機器が切断されたことを検出する。また、接続状態検出回路５３は、判定されたレベルに基づいて、第２のＵＳＢコネクターのデータ端子Ｄ＋又はＤ−が、第２のＵＳＢコネクターに接続されている機器によってプルアップされているか否かを検出する。接続状態検出回路５３は、検出結果に基づいて、第２のＵＳＢコネクターにおける機器の接続状態を表す接続状態信号ＣＳ２を生成し、接続状態信号ＣＳ２を図１に示すハブロジック回路２３及び制御回路２７に出力する。
【００７９】
スケルチ検出回路５４は、バスアクティビティ又は電流変化量に基づいて、第２のＵＳＢコネクターのデータ端子Ｄ＋及びＤ−における有効な信号の有無を検出し、検出結果を表すスケルチ信号ＳＱ２を生成する。スケルチ検出回路５４は、スケルチ信号ＳＱ２を、バッファー回路５６、パケット検出補正回路６２、及び、図１に示すハブロジック回路２３及び制御回路２７に出力する。
【００８０】
第２のポート回路２２ａにおける接続状態検出回路５３、スケルチ検出回路５４、サンプリングクロック信号生成回路５５、バッファー回路５６、及び、パラレル／シリアル変換回路５７の構成及び動作は、第１のポート回路２１における接続状態検出回路４３、スケルチ検出回路４４、サンプリングクロック信号生成回路４５、バッファー回路４６、及び、パラレル／シリアル変換回路４７と同様である。
【００８１】
＜リピーター回路＞
リピーター回路２４は、内部クロック信号生成回路６０と、パケット検出補正回路６１及び６２とを含んでいる。内部クロック信号生成回路６０は、例えば、水晶振動子等を用いて発振動作を行う発振回路を含み、パラレルデータ転送用の内部クロック信号ＩＣＬＫ１と、シリアルデータ転送用の内部クロック信号ＩＣＬＫ２とを生成する。なお、内部クロック信号生成回路６０は、リピーター回路２４の外部に設けられても良い。
【００８２】
例えば、データ転送制御装置が受信又は送信する転送データは、フレームと呼ばれる単位で構成されており、１つのフレームは、ＳＯＦ（Start Of Frame）と呼ばれるパケットと、それに続くパケットで構成される複数のトランザクションとを含んでいる。１つのトランザクションは、意味のあるデータ転送の単位である。パケットの種類としては、ＳＯＦパケットの他にも、トークンパケット、データパケット、及び、ハンドシェイクパケット等が用いられる。
【００８３】
ＳＯＦパケットは、同期コード（ＳＹＮＣ：synchronization）と、パケット識別コード（ＰＩＤ：Packet Identifier）と、フレーム番号と、ＣＲＣ(巡回冗長検査)コードと、パケット終了コード（ＥＯＰ：End Of Packet）とを含んでいる。トークンパケットは、同期コードと、パケット識別コードと、アドレスコード（ＡＤＤＲ：Device Address）と、終了点コード（ＥＮＤＰ：End Point）と、ＣＲＣコードと、パケット終了コードとを含んでいる。データパケットは、同期コードと、パケット識別コードと、データコード（ＤＡＴＡ）と、ＣＲＣコードと、パケット終了コードとを含んでいる。ハンドシェイクパケットは、同期コードと、パケット識別コードと、パケット終了コードとを含んでいる。
【００８４】
パケット検出補正回路６１は、例えば、組み合わせ論理回路又は順序回路等で構成され、スケルチ信号ＳＱ１が活性化されているときに、内部クロック信号ＩＣＬＫ１に同期して、ポート回路２１のバッファー回路４６から受信データを読み出す。パケット検出補正回路６１は、同期コード、パケット識別コード、パケット終了コード、又は、それらの一部に基づいて、受信データの開始パケット又は終了パケットを検出する。
【００８５】
例えば、パケット検出補正回路６１は、開始パケットにおいて同期コードにビットの欠落（ビットロス）が生じている場合に、欠落したビットを同期コードに追加して同期コードを補正する。あるいは、パケット検出補正回路６１は、終了パケットに不要なビット（ドリブルビット）が付加されている場合に、不要なビットを除去してパケット終了コードを補正する。
【００８６】
パケット検出補正回路６２は、スケルチ信号ＳＱ２が活性化されているときに、内部クロック信号ＩＣＬＫ１に同期して、ポート回路２２ａのバッファー回路５６から受信データを読み出す。パケット検出補正回路６２の構成及び動作は、パケット検出補正回路６１と同様である。
【００８７】
それにより、リピーターモードにおいて、リピーター回路２４は、アップストリームポート動作を行うポート回路２２ａから入力される受信データを整形及びリタイミングしてポート回路２１に出力する。また、リピーター回路２４は、ダウンストリームポート動作を行うポート回路２１から入力される受信データを整形及びリタイミングしてポート回路２２ａに出力する。
【００８８】
リピーターモードにおいて、複数のポート回路２２の内からアップストリームポート動作を行うポート回路２２ａが選択できるようにしても良い。その場合に、格納部２８は、複数のポート回路２２の内から選択されたポート回路２２ａを特定する識別コードを格納する。例えば、識別コードは、ハブモードにおいて、メインコントローラー１０から格納部２８に格納されても良いし、工場出荷時に格納部２８の不揮発性メモリーに格納されても良い。
【００８９】
制御回路２７は、リピーターモードにおいて、ポート回路２１をリピーター回路２４に電気的に接続するようにセレクター回路２５を制御すると共に、識別コードによって特定されるポート回路２２ａをリピーター回路２４に電気的に接続するようにセレクター回路２６を制御する。
【００９０】
また、制御回路２７は、格納部２８に格納されている識別コードに基づいて、リピーターモードにおいて、複数のポート回路２２の内から選択されたポート回路２２ａにイネーブル信号を出力すると共に、複数のポート回路２２の内の他のポート回路にディスエーブル信号を出力しても良い。それにより、他のポート回路がサスペンド状態又はディスコネクト状態等に設定されるので、使用しないポート回路における消費電力を低減することができる。
【００９１】
図５は、図２に示すリピーター回路の動作を説明するためのタイミングチャートである。図５には、一例として、受信データのデータパケットに含まれている同期コード（ＳＹＮＣ）と、データコード（ＤＡＴＡ）と、パケット終了コード（ＥＯＰ）とが示されている。
【００９２】
図５の「アップポート側」において、デュアルロールデバイス３０ａ（図１）からポート回路２２ａに送信されるパケットＡと、ポート回路２２ａからデュアルロールデバイス３０ａに送信されるパケットＢとが示されている。また、図５の「ダウンポート側」において、ポート回路２１からメインコントローラー１０（図１）に送信されるパケットＡと、メインコントローラー１０からポート回路２１に送信されるパケットＢとが示されている。
【００９３】
図５（Ａ）は、リピーター回路２４が無い場合の動作を示している。デュアルロールデバイス３０ａからポート回路２２ａに同期コード（ＳＹＮＣ）、データコード（ＤＡＴＡ）、及び、パケット終了コード（ＥＯＰ）を含むパケットＡが送信されると、ポート回路２２ａはパケットＡを格納する。その際に、スケルチ信号ＳＱ２の活性化及び非活性化の遅れにより、同期コード（ＳＹＮＣ）の先端の一部が欠落してビットロスが生じると共に、パケット終了コード（ＥＯＰ）の後にドリブルビットが付加される。その後、パケットＡは、ポート回路２１からメインコントローラー１０に送信される。
【００９４】
また、メインコントローラー１０からポート回路２１に同期コード（ＳＹＮＣ）、データコード（ＤＡＴＡ）、及び、パケット終了コード（ＥＯＰ）を含むパケットＢが送信されると、ポート回路２１はパケットＢを格納する。その際に、スケルチ信号ＳＱ１の活性化及び非活性化の遅れにより、同期コード（ＳＹＮＣ）の先端の一部が欠落してビットロスが生じると共に、パケット終了コード（ＥＯＰ）の後にドリブルビットが付加される。その後、パケットＢは、ポート回路２２ａからデュアルロールデバイス３０ａに送信される。その結果、図５（Ａ）に示すように、パケット間の間隔が広がり、データ転送において同期がずれてしまう。
【００９５】
図５（Ｂ）は、リピーター回路２４が有る場合の動作を示している。デュアルロールデバイス３０ａからポート回路２２ａにパケットＡが送信されると、ポート回路２２ａは、パケットＡを格納する。パケット検出補正回路６２が、欠落したビットを同期コード（ＳＹＮＣ）に追加すると共に、ドリブルビットを除去してパケット終了コード（ＥＯＰ）を補正することにより、デュアルロールデバイス３０ａからポート回路２２ａに送信されたパケットＡが、変更されることなくポート回路２１に出力される。その後、パケットＡは、ポート回路２１からメインコントローラー１０に送信される。
【００９６】
また、メインコントローラー１０からポート回路２１にパケットＢが送信されると、ポート回路２１はパケットＢを格納する。パケット検出補正回路６１が、欠落したビットを同期コード（ＳＹＮＣ）に追加すると共に、ドリブルビットを除去してパケット終了コード（ＥＯＰ）を補正することにより、メインコントローラー１０からポート回路２１に入力されたパケットＢが、変更されることなくポート回路２２ａに出力される。その後、パケットＢは、ポート回路２２ａからデュアルロールデバイス３０ａに送信される。それにより、図５（Ｂ）に示すように、デュアルロールデバイス３０ａとメインコントローラー１０との間のデータ転送に及ぼす影響を小さくすることができる。
【００９７】
ところで、デュアルロールデバイス３０ａとして使用される機器の中には、ホストになることはできてもスレーブに戻るプロトコルを持たない機器も存在する。メインコントローラー１０は、そのような機器にホスト権を与えると、再びホスト権を取得することができなくなってしまう。
【００９８】
そこで、本実施形態においては、図１に示す制御回路２７が、例えば、ポート回路２２ａの接続状態検出回路５３から出力される接続状態信号ＣＳ２に基づいて、リピーターモードにおいて、ポート回路２２ａから機器が切断されたことを検出する。あるいは、制御回路２７は、ポート回路２２ａのスケルチ検出回路５４から出力されるスケルチ信号ＳＱ２に基づいて、リピーターモードにおいて、ポート回路２２ａに接続されている機器が通信を停止したことを検出する。
【００９９】
制御回路２７は、リピーターモードにおいて、ポート回路２２ａから機器が切断されたか、又は、ポート回路２２ａに接続されている機器が通信を停止したことを検出したときに、ポート回路２１に接続されたバスをサスペンドにするか、又は、ポート回路２１に接続された第１のＵＳＢコネクターの電源端子ＶＢに対するバス電源電位ＶＢＵＳの供給を停止するようにポート回路２１を制御しても良い。それにより、ポート回路２１に接続されているメインコントローラー１０は、ポート回路２２ａに接続されているデュアルロールデバイス３０ａにホスト権を一旦与えても、デュアルロールデバイス３０ａが既にホスト権を必要としていないと判定することができる。
【０１００】
その場合に、制御回路２７は、ポート回路２１に接続されたメインコントローラー１０によって第１のＵＳＢコネクターのデータ端子Ｄ＋又はＤ−のプルアップが解除されたことを検出したときに、データ転送制御装置２０を第２のモードから第１のモードに移行させるようにしても良い。それにより、第１のＵＳＢコネクターのデータ端子Ｄ＋又はＤ−のプルアップを解除したメインコントローラー１０は、再びホスト権を取得することができる。
【０１０１】
以上説明したように、本実施形態によれば、ホスト機能を有していてもハブを制御できないデュアルロールデバイス３０ａがポート回路２２ａに接続された場合に、デュアルロールデバイス３０ａがホスト動作を行うことが可能になる。また、リピーター回路２４が、入力される受信データを整形及びリタイミングして出力するので、ビットロス又はドリブルビットを低減すると共に、バスケーブルや物理層回路で鈍った波形を改善することができる。
【０１０２】
図６は、本発明の第１の実施形態に係るデータ転送制御装置の動作例を説明するためのタイミングチャートである。図１に示すように、メインコントローラー１０は、バスを介してデータ転送制御装置２０のポート回路２１に接続されており、デュアルロールデバイス３０ａは、バスを介してデータ転送制御装置２０のポート回路２２ａに接続されている。この例において、メインコントローラー１０及びデュアルロールデバイス３０ａは、ＯＴＧ（On-The-Go）規格に準拠するものとする。デュアルロールデバイス３０ａは、ホスト権を要求する所定のステータスをＯＴＧレジスターに格納している。
【０１０３】
図６に示すステップＳ１において、ホスト権を有するメインコントローラー１０が、ハブモードで動作するデータ転送制御装置２０を介してデュアルロールデバイス３０ａとの間でトランザクションを送受信し、デュアルロールデバイス３０ａのＯＴＧレジスターをポーリングする。
【０１０４】
ステップＳ２において、メインコントローラー１０が、所定のステータスを検出すると、複数のポート回路２２の内から選択されたポート回路２２ａを特定する識別コードと共に、ポート回路２２ａをダウンストリームポートからアップストリームポートに切り換えるリクエストをデータ転送制御装置２０に送信する。また、メインコントローラー１０は、ホスト権を許可する通知を、データ転送制御装置２０を介してデュアルロールデバイス３０ａに送信する。
【０１０５】
データ転送制御装置２０のハブロジック回路２３は、メインコントローラー１０から送信されたリクエストを検出して、複数のポート回路２２の内から選択されたポート回路２２ａを特定する識別コード、及び、モードを設定するためのレジスター値を、格納部２８に格納する。それにより、制御回路２７は、データ転送制御装置２０をハブモードからリピーターモードに移行させて、ポート回路２１及び２２ａをリピーター回路２４に電気的に接続するようにセレクター回路２５及び２６を制御する。
【０１０６】
ステップＳ３において、デュアルロールデバイス３０ａが、ポート回路２２ａが接続されている第２のＵＳＢコネクターのデータ端子Ｄ＋のプルアップを解除する。データ転送制御装置２０の制御回路２７は、例えば、接続状態信号ＣＳ２に基づいて第２のＵＳＢコネクターのデータ端子Ｄ＋のプルアップが解除されたことを検出すると、ポート回路２１が接続されている第１のＵＳＢコネクターのデータ端子Ｄ＋のプルアップを解除してデータ端子Ｄ＋及びＤ−をプルダウンする。
【０１０７】
ステップＳ４において、メインコントローラー１０が、第１のＵＳＢコネクターのデータ端子Ｄ＋をプルアップする。データ転送制御装置２０の制御回路２７は、第１のＵＳＢコネクターのデータ端子Ｄ＋のプルアップを検出すると、第２のＵＳＢコネクターのデータ端子Ｄ＋をプルアップする。ステップＳ５において、バスがリセットされて、第１及び第２のＵＳＢコネクターのデータ端子Ｄ＋が一旦ローレベルになる。
【０１０８】
ステップＳ６において、ホスト権を獲得したデュアルロールデバイス３０ａが、ホスト動作を行う。例えば、デュアルロールデバイス３０ａは、リピーターモードで動作するデータ転送制御装置２０を介してメインコントローラー１０との間でトランザクションを送受信し、メインコントローラー１０のＯＴＧレジスターをポーリングする。
【０１０９】
ステップＳ７において、デュアルロールデバイス３０ａが、データ転送制御装置２０のポート回路２２ａから切断されるか、又は、通信を停止する。データ転送制御装置２０の制御回路２７は、デュアルロールデバイス３０ａの切断又は通信停止を検出すると、ポート回路２１に接続されたバスをサスペンドにするか、又は、ポート回路２１に接続された第１のＵＳＢコネクターの電源端子ＶＢに対するバス電源電位ＶＢＵＳの供給を停止する。ここで、サスペンドとは、バスにおける通信が休止された状態のことである。
【０１１０】
ステップＳ８において、メインコントローラー１０は、バスのサスペンド又はバス電源電位ＶＢＵＳの供給停止を検出すると、再びホスト権を取得するために、所望のタイミングで第１のＵＳＢコネクターのデータ端子Ｄ＋のプルアップを解除する。データ転送制御装置２０の制御回路２７は、第１のＵＳＢコネクターのデータ端子Ｄ＋のプルアップが解除されたことを検出したときに、第２のＵＳＢコネクターのデータ端子Ｄ＋のプルアップを解除してデータ端子Ｄ＋及びＤ−をプルダウンする。その際に、制御回路２７は、データ転送制御装置２０をリピーターモードからハブモードに移行させても良い。
【０１１１】
ステップＳ９において、データ転送制御装置２０は、ＯＧＴ規格に規定されている時間内に第１のＵＳＢコネクターのデータ端子Ｄ＋をプルアップして、ハブモードにおける動作を開始する。また、デュアルロールデバイス３０ａは、データ転送制御装置２０のポート回路２２ａから切断されていない場合に、第２のＵＳＢコネクターのデータ端子Ｄ＋をプルアップする。ステップＳ１０において、バスがリセットされて、第１及び第２のＵＳＢコネクターのデータ端子Ｄ＋が一旦ローレベルになる。
【０１１２】
＜第２の実施形態＞
次に、本発明の第２の実施形態に係るデータ転送制御装置について説明する。
図７は、本発明の第２の実施形態に係るデータ転送制御装置の構成例を示すブロック図である。第２の実施形態においては、ハブロジック回路２３ａのハブリピーターロジック回路２１０が、図２に示す第１の実施形態におけるリピーター回路２４の機能を有している。その他の点に関しては、第２の実施形態は、第１の実施形態と同様である。
【０１１３】
図７に示すように、データ転送制御装置２０ａは、ポート回路２１と、ポート回路２２と、ハブロジック回路２３ａと、格納部２８とを含んでいる。ポート回路２１は、アップストリームポート機能及びダウンストリームポート機能を有し、メインコントローラー１０（図１）に接続される。ポート回路２２は、ダウンストリームポート機能を有し、デバイス３０に接続される。その内の少なくとも１つのポート回路２２ａは、ダウンストリームポート機能及びアップストリームポート機能を有し、デュアルロールデバイス３０ａ（図１）に接続される。
【０１１４】
ハブロジック回路２３ａは、トランザクショントランスレーター２００と、ハブリピーターロジック回路２１０と、ハブステートマシン２２０と、ハブコントローラー２３０と、ルーティングロジック回路２４０と、フレームタイマー２５０とを含んでいる。なお、ハブロジック回路２３ａの構成は、図７に示す構成に限定されず、その構成の一部を省略したり、他の構成要素を追加する等の種々の変形実施が可能である。
【０１１５】
トランザクショントランスレーター２００は、例えば、ホスト動作を行うメインコントローラー１０がポート回路２１にＨＳモードで接続され、スレーブ動作を行うデバイス３０がポート回路２２にＦＳモード又はＬＳモードで接続されている場合に、アップストリーム側のＨＳモードのトランザクションとダウンストリーム側のＦＳモード又はＬＳモードのトランザクションとの間の変換処理を行う。
【０１１６】
ハブリピーターロジック回路２１０は、ハブモードにおいて、ポート回路２１に接続されたメインコントローラー１０とポート回路２２に接続されたデバイス３０との間のデータ転送速度のモードが同じ場合に、ポート回路２１とポート回路２２との間のデータの転送を制御する。
【０１１７】
また、ハブリピーターロジック回路２１０は、リピーターモードにおいて、ホスト動作を行うデュアルロールデバイス３０ａに接続されたポート回路２２ａと、スレーブ動作を行うメインコントローラー１０に接続されたポート回路２１との間で、リピーター動作を行う。
【０１１８】
そのために、ハブリピーターロジック回路２１０は、内部クロック信号生成回路６０と、パケット検出補正回路６１及び６２とを含んでいる。内部クロック信号生成回路６０は、パラレルデータ転送用の内部クロック信号ＩＣＬＫ１と、シリアルデータ転送用の内部クロック信号ＩＣＬＫ２とを生成し、内部クロック信号ＩＣＬＫ１をパケット検出補正回路６１及び６２に供給し、内部クロック信号ＩＣＬＫ１及びＩＣＬＫ２をポート回路２１及び２２に供給する。なお、内部クロック信号生成回路６０は、ハブリピーターロジック回路２１０の外部に設けられても良い。
【０１１９】
パケット検出補正回路６１は、図２に示すスケルチ信号ＳＱ１が活性化されているときに、内部クロック信号ＩＣＬＫ１に同期して、ポート回路２１のバッファー回路４６から受信データを読み出す。パケット検出補正回路６１は、同期コード、パケット識別コード、パケット終了コード、又は、それらの一部に基づいて、受信データの開始パケット又は終了パケットを検出する。
【０１２０】
例えば、パケット検出補正回路６１は、開始パケットにおいて同期コードにビットの欠落（ビットロス）が生じている場合に、欠落したビットを同期コードに追加して同期コードを補正する。あるいは、パケット検出補正回路６１は、終了パケットに不要なビット（ドリブルビット）が付加されている場合に、不要なビットを除去してパケット終了コードを補正する。
【０１２１】
パケット検出補正回路６２は、図２に示すスケルチ信号ＳＱ２が活性化されているときに、内部クロック信号ＩＣＬＫ１に同期して、ポート回路２２ａのバッファー回路５６から受信データを読み出す。パケット検出補正回路６２の構成及び動作は、パケット検出補正回路６１と同様である。
【０１２２】
それにより、リピーターモードにおいて、ハブリピーターロジック回路２１０は、アップストリームポート動作を行うポート回路２２ａから入力される受信データを整形及びリタイミングしてポート回路２１に出力する。また、ハブリピーターロジック回路２１０は、ダウンストリームポート動作を行うポート回路２１から入力される受信データを整形及びリタイミングしてポート回路２２ａに出力する。
【０１２３】
さらに、ハブモードにおいて、ハブリピーターロジック回路２１０は、アップストリームポート動作を行うポート回路２１から入力される受信データを整形及びリタイミングしてポート回路２２に出力しても良い。また、ハブリピーターロジック回路２１０は、ダウンストリームポート動作を行うポート回路２２から入力される受信データを整形及びリタイミングしてポート回路２１に出力しても良い。
【０１２４】
ハブステートマシン２２０は、データ転送制御装置２０ａのステートを制御する。例えば、ハブステートマシン２２０は、ポート回路２１又は２２とメインコントローラー１０又はデバイス３０との接続や切断を検出したり、ポート回路２１又は２２とメインコントローラー１０又はデバイス３０との接続処理や切断処理を行ったり、ポート回路２１又は２２のリセット、停止、又は、復帰を制御する。また、ハブステートマシン２２０は、バスのエラー（fault）を検出する処理を行ったり、バスのエラーから復帰する処理を行ったりして、データの転送を制御する。
【０１２５】
ハブコントローラー２３０は、データ転送制御装置２０ａとメインコントローラー１０との間の通信を制御する。例えば、ハブコントローラー２３０は、エニュメレーションを行って、データ転送制御装置２０ａのリソース情報や設定等をメインコントローラー１０と交換したり、メインコントローラー１０からのリクエストを処理する。
【０１２６】
ルーティングロジック回路２４０は、トランザクショントランスレーター２００とポート回路２２とを電気的に接続する。あるいは、ルーティングロジック回路２４０は、ハブリピーターロジック回路２１０とポート回路２２とを電気的に接続する。フレームタイマー２５０は、アップストリーム側のフレームとダウンストリーム側のフレームとの同期を取り、フレームインターバルの制御を行うために用いられる。
【０１２７】
ここで、ハブステートマシン２２０は、図１に示す第１の実施形態における制御回路２７に相当する。ハブステートマシン２２０は、例えば、組み合わせ論理回路又は順序回路等で構成され、データ転送制御装置２０ａの各部を制御する。
【０１２８】
メインコントローラー１０がホスト動作を行うハブモードにおいて、ハブステートマシン２２０は、アップストリームポート動作を行うようにポート回路２１を制御すると共に、ダウンストリームポート動作を行うようにポート回路２２ａを制御する。また、デュアルロールデバイス３０ａがホスト動作を行うリピーターモードにおいて、ハブステートマシン２２０は、アップストリームポート動作を行うようにポート回路２２ａを制御すると共に、ダウンストリームポート動作を行うようにポート回路２１を制御する。
【０１２９】
ハブモードにおいては、ハブリピーターロジック回路２１０がポート回路２１とポート回路２２との間のデータの転送を制御し、データ転送制御装置２０ａは通常のハブとして動作する。一方、リピーターモードにおいては、ハブリピーターロジック回路２１０が、ポート回路２１とポート回路２２ａとの間でリピーターとして動作する。
【０１３０】
それにより、ホスト機能を有していてもハブを制御できないデュアルロールデバイス３０ａがポート回路２２ａに接続された場合に、デュアルロールデバイス３０ａがホスト動作を行うことが可能になる。また、ハブリピーターロジック回路２１０が、入力される受信データを整形及びリタイミングして出力するので、ビットロス又はドリブルビットを低減すると共に、バスケーブルや物理層回路で鈍った波形を改善することができる。
【０１３１】
リピーターモードにおいて、複数のポート回路２２の内からアップストリームポート動作を行うポート回路２２ａが選択できるようにしても良い。その場合に、格納部２８は、複数のポート回路２２の内から選択されたポート回路２２ａを特定する識別コードを格納する。例えば、識別コードは、ハブモードにおいて、メインコントローラー１０から格納部２８に格納されても良いし、工場出荷時に格納部２８の不揮発性メモリーに格納されても良い。
【０１３２】
ハブステートマシン２２０は、リピーターモードにおいて、識別コードによって特定されるポート回路２２ａをハブリピーターロジック回路２１０に電気的に接続するようにルーティングロジック回路２４０を制御する。
【０１３３】
また、ハブステートマシン２２０は、格納部２８に格納されている識別コードに基づいて、リピーターモードにおいて、複数のポート回路２２の内から選択されたポート回路２２ａにイネーブル信号を出力すると共に、複数のポート回路２２の内の他のポート回路にディスエーブル信号を出力しても良い。それにより、他のポート回路がサスペンド状態又はディスコネクト状態等に設定されるので、使用しないポート回路における消費電力を低減することができる。
【０１３４】
ところで、デュアルロールデバイス３０ａとして使用される機器の中には、ホストになることはできてもスレーブに戻るプロトコルを持たない機器も存在する。メインコントローラー１０は、そのような機器にホスト権を与えると、再びホスト権を取得することができなくなってしまう。
【０１３５】
そこで、本実施形態においては、ハブステートマシン２２０が、例えば、ポート回路２２ａの接続状態検出回路５３（図２）から出力される接続状態信号ＣＳ２に基づいて、リピーターモードにおいて、ポート回路２２ａから機器が切断されたことを検出する。あるいは、ハブステートマシン２２０は、ポート回路２２ａのスケルチ検出回路５４（図２）から出力されるスケルチ信号ＳＱ２に基づいて、リピーターモードにおいて、ポート回路２２ａに接続されている機器が通信を停止したことを検出する。
【０１３６】
ハブステートマシン２２０は、リピーターモードにおいて、ポート回路２２ａから機器が切断されたか、又は、ポート回路２２ａに接続されている機器が通信を停止したことを検出したときに、ポート回路２１に接続されたバスをサスペンドにするか、又は、ポート回路２１に接続された第１のＵＳＢコネクターの電源端子ＶＢに対するバス電源電位ＶＢＵＳの供給を停止するようにポート回路２１を制御しても良い。それにより、ポート回路２１に接続されているメインコントローラー１０は、ポート回路２２ａに接続されているデュアルロールデバイス３０ａにホスト権を一旦与えても、デュアルロールデバイス３０ａが既にホスト権を必要としていないと判定することができる。
【０１３７】
その場合に、ハブステートマシン２２０は、ポート回路２１に接続されたメインコントローラー１０によって第１のＵＳＢコネクターのデータ端子Ｄ＋又はＤ−のプルアップが解除されたことを検出したときに、データ転送制御装置２０を第２のモードから第１のモードに移行させるようにしても良い。それにより、第１のＵＳＢコネクターのデータ端子Ｄ＋又はＤ−のプルアップを解除したメインコントローラー１０は、再びホスト権を取得することができる。
【０１３８】
＜電子機器＞
図８は、本発明の一実施形態に係る電子機器の構成例を示すブロック図である。例えば、本発明に係るデータ転送制御装置は、カーナビゲーション装置等の車載装置、パーソナルコンピューター、家庭用ゲーム機、プリンター、テレビジョン受像機、デジタルカメラ、デジタルフォトフレーム、ＡＶレコーダー、又は、ＡＶプレーヤー等の電子機器に適用することができる。
【０１３９】
図８に示すように、電子機器３００は、ＣＰＵ３１０と、データ転送制御装置３２０と、デバイス３３０と、ＲＯＭ（Read Only Memory）３４０と、ＲＡＭ（Random Access Memory）３５０と、通信部３６０と、表示部３７０と、音声出力部３８０と、操作部３９０とを含んでいる。なお、図８に示す構成要素の一部を省略又は変更しても良いし、あるいは、図８に示す構成要素に他の構成要素を付加しても良い。
【０１４０】
ここで、ＣＰＵ３１０は、図１に示すメインコントローラー１０に相当し、データ転送制御装置３２０は、図１に示すデータ転送制御装置２０又は図７に示すデータ転送制御装置２０ａに相当し、デバイス３３０は、図１に示すデバイス３０に相当する。デバイス３３０の内の少なくとも１つは、スレーブ機能に加えてホスト機能を有するデュアルロールデバイス３３０ａであり、図１に示すデバイス３０ａに相当する。
【０１４１】
ＣＰＵ３１０とデータ転送制御装置３２０とは、ＵＳＢ等のバスを介して通信する。データ転送制御装置３２０とデバイス３３０とは、ＵＳＢ等のバスを介して通信する。ＣＰＵ３１０とＲＯＭ３４０〜操作部３９０とは、ＣＰＵバスを介して通信する。
【０１４２】
ＣＰＵ３１０は、ＲＯＭ３４０等に記憶されているプログラムに従って、外部から供給されるデータ等を用いて各種の演算処理や制御処理を行う。例えば、ＣＰＵ３１０は、操作部３９０から供給される操作信号に応じて各種のデータ処理を行ったり、外部との間でデータ通信を行うために通信部３６０を制御したり、表示部３７０に各種の画像を表示させるための画像信号を生成したり、音声出力部３８０に各種の音声を出力させるための音声信号を生成したりする。
【０１４３】
ＲＯＭ３４０は、ＣＰＵ３１０が各種の演算処理や制御処理を行うためのプログラムやデータ等を記憶している。また、ＲＡＭ３５０は、ＣＰＵ３１０の作業領域として用いられ、ＲＯＭ３４０から読み出されたプログラムやデータ、操作部３９０を用いて入力されたデータ、又は、ＣＰＵ３１０がプログラムに従って実行した演算結果等を一時的に記憶する。
【０１４４】
通信部３６０は、例えば、アナログ回路及びデジタル回路で構成され、ＣＰＵ３１０と外部装置との間のデータ通信を行う。表示部３７０は、例えば、ＬＣＤ（液晶表示装置）等を含み、ＣＰＵ３１０から供給される画像信号に基づいて各種の画像を表示する。音声出力部３８０は、例えば、スピーカー等を含み、ＣＰＵ３１０から供給される音声信号に基づいて音声を出力する。操作部３９０は、例えば、操作キーやボタンスイッチ等を含む入力装置であり、ユーザーによる操作に応じた操作信号をＣＰＵ３１０に出力する。
【０１４５】
以上においては、データ転送制御装置がＨＳモード又はＦＳモードで動作する場合について説明した。データ転送制御装置がＬＳモードで動作する場合には、ハブモードにおいて、第１のＵＳＢコネクターのデータ端子Ｄ−が抵抗を介してプルアップされ、リピーターモードにおいて、第２のＵＳＢコネクターのデータ端子Ｄ−が抵抗を介してプルアップされる。このように、本発明は、以上説明した実施形態に限定されるものではなく、当該技術分野において通常の知識を有する者によって、本発明の技術的思想内で多くの変形が可能である。
【符号の説明】
【０１４６】
１０…メインコントローラー、１１…リンクコントローラー、１２、４０、５０…インターフェース回路、２０、２０ａ…データ転送制御装置、２１、２２、２２ａ…ポート回路、２３、２３ａ…ハブロジック回路、２４…リピーター回路、２５、２６…セレクター回路、２７…制御回路、２８…格納部、３０…デバイス、３０ａ…デュアルロールデバイス、４１、５１…差動レシーバー、４２、５２…差動ドライバー、４３、５３…接続状態検出回路、４４、５４…スケルチ検出回路、４５、５５…サンプリングクロック信号生成回路、４６、５６…バッファー回路、４７、５７…パラレル／シリアル変換回路、６０…内部クロック信号生成回路、６１、６２…パケット検出補正回路、７１、７４…トリガー回路、７２…インバーター、７３…ＡＮＤ回路、８１…ＰＬＬ回路、８２…ＤＬＬ回路、８３…エッジ検出回路、８４…クロック信号選択回路、２００…トランザクショントランスレーター、２１０…ハブリピーターロジック回路、２２０…ハブステートマシン、２３０…ハブコントローラー、２４０…ルーティングロジック回路、２５０…フレームタイマー、３００…電子機器、３１０…ＣＰＵ、３２０…データ転送制御装置、３３０…デバイス、３３０ａ…デュアルロールデバイス、３４０…ＲＯＭ、３５０…ＲＡＭ、３６０…通信部、３７０…表示部、３８０…音声出力部、３９０…操作部、ＳＷ１〜ＳＷ８…スイッチ回路、Ｒ０〜Ｒ２２…抵抗、Ｃ０…キャパシター、Ｄ０…ダイオード
【図１】
0006596901.tif 000002
【図２】
0006596901.tif 000003
【図３】
0006596901.tif 000004
【図４】
0006596901.tif 000005
【図５】
0006596901.tif 000006
【図６】
0006596901.tif 000007
【図７】
0006596901.tif 000008
【図８】
0006596901.tif 000009