(57)【要約】【課題】データ転送制御装置において、インピーダンス不整合を起こす等の原因から装置のハングアップが起きる問題に対処するために、ハングアップ等の異常状態から自動的に復帰する。【解決手段】ＵＳＢを介してデータの送受信を行うデータ転送制御装置１００は、データの受信状態を検出する受信ステートマシーン１１５と、データの受信異常であるか否かを、データの受信パケット始めのタイミングで、受信ステートマシーン１１５が検出する前記受信パケットの受信状態で判断する受信異常検出回路１２０（フェールセーフ回路１１７内）と、受信異常検出回路１２０が受信異常であると判断した場合、受信回路全体をリセットするための信号を出力するリセット信号生成回路１１８と、を含むことを特徴とする。【選択図】図５
2009037492.tif 000002
【特許請求の範囲】
【請求項１】
汎用シリアルバスインターフェースを介してデータの送受信を行うデータ転送制御装置であって、
データを受信するための受信回路と、
データの受信状態を検出する受信ステートマシーンと、
受信異常であるか否かを、データの受信パケット始めのタイミングで、前記受信ステートマシーンが検出する前記受信パケットの受信状態で判断する受信異常検出手段と、
前記受信異常検出手段が受信異常であると判断した場合、前記受信回路をリセットするための信号を出力するリセット信号生成手段と、
を含むことを特徴とするデータ転送制御装置。
【請求項２】
前記受信異常検出手段は、データの受信パケット終わりのタイミングで、前記受信ステートマシーンが検出するＳＹＮＣパターンの未検出状態を確認することで判断することを特徴とする請求項１記載のデータ転送制御装置。
【請求項３】
バッファへの書き込みをするライト系回路と、
前記受信異常検出手段による受信異常の判断の有無にかかわらず、毎受信パケット始めのタイミングで、前記ライト系回路をリセットするための信号を出力するライト系リセット信号生成手段と、
を含むことを特徴とする請求項１又は２記載のデータ転送制御装置。
【請求項４】
汎用シリアルバスインターフェースを介してデータの送受信を行うデータ転送制御方法であって、
受信回路により、データの受信をし、
受信ステートマシーンにより、データの受信状態を検出し、
受信異常検出手段により、受信異常であるか否かを、データの受信パケット始めのタイミングで、前記ステートマシーンが検出する前記受信パケットの受信状態で判断し、
前記受信異常検出手段が受信異常であると判断した場合、リセット信号生成手段により、前記受信回路をリセットするための信号を出力することを特徴とするデータ転送制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送制御装置及び方法に関し、特に、汎用シリアルバスのデータ転送制御に関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータと周辺機器（広義には電子機器）とを接続するためのインターフェース規格として、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）が一般的に使用されている。このＵＳＢには、従来は別々の規格のコネクタで接続されていたマウスやキーボードやプリンタなどの周辺機器を、同じ規格のコネクタで接続できるとともに、いわゆる「プラグ＆プレイ」や「ホットプラグ」も実現できるという利点がある。
【０００３】
その中で、ＵＳＢ２．０規格が策定され、物理層回路や論理層回路のインターフェース仕様を定義したＵＴＭＩ（ＵＳＢ２．０  Ｔｒａｎｓｃｅｉｖｅｒ  Ｍａｃｒｏｃｅｌｌ  Ｉｎｔｅｒｆａｃｅ）も策定されている。
【０００４】
さて、このＵＳＢ２．０では、ＨＳ（Ｈｉｇｈ  Ｓｐｅｅｄ）モード時には４８０Ｍｂｐｓでデータ転送が行われるため、高速な転送速度が要求されるハードディスクドライブや光ディスクドライブなどのストレージ機器のインターフェースとして用いることができるという利点がある。
【０００５】
しかしながら、その一方で、ＵＳＢバスに接続されるデータ転送制御装置（物理層回路、論理層回路）は、４８０Ｍｂｐｓの転送データを取り扱わなければならないため、４８０ＭＨｚのクロック周波数で動作可能な高速な回路部分が必要になる。そして、微細加工が可能な最新の半導体プロセスを用いれば、このような４８０ＭＨｚでの回路動作も実現可能だが、最新の半導体プロセスを使用できない場合には、このような高速な回路動作の実現は非常に困難になる。
【０００６】
そこで、特許文献１においては、エラスティシティバッファ（Ｅｌａｓｔｉｃｉｔｙ  Ｂｕｆｆｅｒ）への受信データのライトは４８０ＭＨｚで行うが、そのバッファのリードする時はそれよりも低い周波数（例えば６０ＭＨｚ）で動作するデータ転送装置が開示されている。
【０００７】
本発明に関連する技術としては、特許文献１に記載の技術がある。特許文献１には、シリアル／パラレル変換機能とクロック周波数差を吸収（補償）するバッファ機能とを併せ持つシリアル／パラレル変換回路であり、エラスティシティバッファ（Ｅｌａｓｔｉｃｉｔｙ  Ｂｕｆｆｅｒ）に４８０ＭＨｚでライトするがリードする時はそれよりも低い周波数（例えば６０ＭＨｚ）で動作するデータ転送装置の技術が開示されている。
【特許文献１】特許第３５８０２４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、現状の装置では、ＵＳＢケーブルの品質や、ＵＳＢケーブルを頻繁に抜き差しすることによるＵＳＢコネクタの劣化や、規格で定められ長さを超える長さのケーブルを使用する事で、インピーダンス不整合を起こし受信しにくくなり、最悪の場合、データ転送制御装置のハングアップを起こしてしまうという可能性がある。
【０００９】
本発明は、上記実情に鑑み、データ転送制御装置において、ハングアップ等の異常状態から自動的に復帰することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するための請求項１記載の発明は、汎用シリアルバスインターフェースを介してデータの送受信を行うデータ転送制御装置であって、データを受信するための受信回路と、データの受信状態を検出する受信ステートマシーンと、受信異常であるか否かを、データの受信パケット始めのタイミングで、前記受信ステートマシーンが検出する前記受信パケットの受信状態で判断する受信異常検出手段と、前記受信異常検出手段が受信異常であると判断した場合、前記受信回路をリセットするための信号を出力するリセット信号生成手段と、を含むことを特徴とするデータ転送制御装置である。
【００１１】
請求項２記載の発明は、請求項１記載のデータ転送制御装置において、前記受信異常検出手段は、データの受信パケット終わりのタイミングで、前記受信ステートマシーンが検出するＳＹＮＣパターンの未検出状態を確認することで判断することを特徴とする。
【００１２】
請求項３記載の発明は、請求項１又は２記載のデータ転送制御装置において、バッファへの書き込みをするライト系回路と、前記受信異常検出手段による受信異常の判断の有無にかかわらず、毎受信パケット始めのタイミングで、前記ライト系回路をリセットするための信号を出力するライト系リセット信号生成手段と、を含むことを特徴とする。
【００１３】
請求項４記載の発明は、汎用シリアルバスインターフェースを介してデータの送受信を行うデータ転送制御方法であって、受信回路により、データの受信をし、受信ステートマシーンにより、データの受信状態を検出し、受信異常検出手段により、受信異常であるか否かを、データの受信パケット始めのタイミングで、前記ステートマシーンが検出する前記受信パケットの受信状態で判断し、前記受信異常検出手段が受信異常であると判断した場合、リセット信号生成手段により、前記受信回路をリセットするための信号を出力することを特徴とするデータ転送制御方法である。
【発明の効果】
【００１４】
本発明によれば、ハングアップ等の異常状態から自動的に復帰することが可能となる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の好適な実施の形態について図面を参照して説明する。
本実施形態は、データ転送制御装置において、インピーダンス不整合を起こす等の原因から装置のハングアップが起きる問題に対処するために、ハングアップ等の異常状態から自動的に復帰するという目的を達成するためのものである。さらに、受信異常であるか否かを受信パケット終わりのタイミングでＳＹＮＣ未検出状態を確認することで、さらに受信異常からの復帰を確実にする目的を有する。さらに、受信異常にかかわらず毎受信パケット始めのタイミングでライト系回路のリセット信号を出力することで、非常に信頼性を高めるという目的を有する。
【００１６】
図１に本実施形態のデータ転送制御装置の構成を表したブロック図を示す。
本実施形態のデータ転送装置１００は、アナログフロントエンド回路１０１、ＨＳモード受信回路１０２、ＦＳモード受信回路１０５、受信データ処理回路１０６、受信制御回路１０７、送信データ処理回路１０８、送信制御回路１０９、クロック生成回路１１０を含む。なお、本発明のデータ転送装置１００は図１に示す回路ブロックのすべてを含む必要はなくそれらの一部を省略する構成であっても良い。
【００１７】
アナログフロントエンド回路１０１は、差動信号（Ｄａｔａ＋，Ｄａｔａ−）とのインターフェース（以下、Ｉ／Ｆということもある）であり、ＦＳモードでは１２Ｍｂｐｓで、ＨＳモードでは４８０Ｍｂｐｓで送受信を可能にするためのドライバやレシーバを含むアナログ回路である。ここで、ＦＳモードはＵＳＢ１．１で定義されている転送モードで１２Ｍｂｐｓの転送レートで送受信を行うモードであり、ＨＳモードはＵＳＢ２．０で定義されている転送モードで４８０Ｍｂｐｓの転送レートで送受信を行うモードである。
【００１８】
ＨＳモード受信回路１０２は、ＨＳＤＬＬ１０３及びエラスティシティバッファ（Ｅｌａｓｔｉｃｉｔｙ  Ｂｕｆｆｅｒ）回路１０４を含む。ＨＳＤＬＬ１０３は、ＨＳモード時に、外部から供給される４８０Ｍｂｐｓのシリアルデータとクロック生成回路発生させた４８０ＭＨｚのクロックとの位相を調整する回路である。
【００１９】
エラスティシティバッファ（Ｅｌａｓｔｉｃｉｔｙ  Ｂｕｆｆｅｒ）回路１０４は、ＨＳモード時に、外部（Ｄａｔａ＋，Ｄａｔａ−）から入力されるデータ周波数と、内部ＰＬＬで生成される４８０ＭＨｚクロックとの周波数差を吸収するための回路である。
【００２０】
ＦＳモード受信回路１０５は、ＦＳモード時にデータを復元する回路である。
受信データ処理回路１０６は、ＳＹＮＣ、ＥＯＰ等のパターン検出や、ＮＲＺＩデコード、ＢｉｔＵｎｓｔａｆｆｅｒ処理、シリアル−パラレル変換などの処理を行う回路であり、処理されたデータは論理層（ＳＩＥ）側に出力される。なお、物理層−論理層間のインターフェースはＵＴＭＩ（ＵＳＢ２．０  Ｔｒａｎｓｃｅｉｖｅｒ  Ｍａｃｒｏｃｅｌｌ  Ｉｎｔｅｒｆａｃｅ）仕様で定義されている。
送信データ処理回路１０８は、パラレル−シリアル変換、ＢｉｔＳｔｕｆｆｅｒ処理、ＮＲＺＩエンコード、ＳＹＮＣ、ＥＯＰパターンの生成等の処理を行う回路である。
【００２１】
受信制御回路１０７は、受信ステートマシーンの制御及びＳＩＥ側のコントロール信号等を生成する回路である。
送信制御回路１０９は、送信ステートマシーンの制御及びＳＩＥ側のコントロール信号等を生成する回路である。
クロック生成回路１１０は、リファレンスクロック（ＲＥＦＣＬＫ）から、ＨＳモードでは４８０ＭＨｚのクロックを生成し、各ブロックへクロックを供給するクロックを生成する。また、ＦＳモードで使用する回路及びＳＩＥインターフェース用に３０ＭＨｚのクロックを生成する。（ＳＩＥインターフェースのデータが１６ｂｉｔの場合、８ｂｉｔの場合は６０ＭＨｚとなる。）
【００２２】
図２にＨＳモード受信回路１０２内のエラスティシティバッファ回路１０４の構成例を示す。図２に図示するように、エラスティシティバッファ回路１０４は、ＦＩＦＯ１１２、書込み制御回路１１３及び読出し制御回路１１４で構成される。ＦＩＦＯ１１２は、１ｂｉｔ幅の２４段で構成される。ＦＩＦＯ１１２書込み時には外部からのシリアルデータ（ＤＡＴＡＩＮ）に同期したライト系クロック（ＣＬＫ＿ＷＲ）で処理される。ＦＩＦＯ読出し時には内部ＰＬＬに同期したリード系クロック（ＣＬＫ＿ＲＤ）で処理され１ｂｉｔデータ（ＤＡＴＡＯＵＴ）が出力される。ライト系クロックで動作する書込み制御回路１１３及びＦＩＦＯ１１２は、ライト系リセット信号（ＷＲ＿ＲＳＴ＿Ｎ信号）で初期化され、リード系クロックで動作する読出し制御回路１１４は、リード系リセット信号（ＲＤ＿ＲＳＴ＿Ｎ信号）で初期化される。図１に示す受信データ処理回路１０７についてもリード系クロックで動作し、リード系リセット信号（ＲＤ＿ＲＳＴ＿Ｎ信号）で初期化される。
【００２３】
図３にエラスティシティバッファ回路１０４の具体例を示す。図３に図示するように、ＦＩＦＯ１１２は、ライト系クロック（ＣＬＫ＿ＷＲ）で動作するＦ／Ｆ（フリップフロップ）が２４個で構成されており、それぞれ１つのセレクタが付加されている。ＦＩＦＯ書込み選択信号ＷＰ［０］〜ＷＰ［２３］は、図２に示した書込み制御回路１１３で生成され、図４のタイミングチャートのように、ライト系クロック（ＣＬＫ＿ＷＲ）で１サイクルごとにＷＰ［０］からＷＰ［２３］まで順番に１サイクルだけイネーブルになり、ＷＰ［２３］まで来ると再びＷＰ［０］から順番にイネーブルになる。この動作によりＦ／Ｆで構成される２４段のＦＩＦＯ１１２にデータが順番に書き込まれていく。
【００２４】
ＦＩＦＯ１１２のデータ読出しは、各Ｆ／Ｆの出力先が２４ビット分のセレクタに接続されており、セレクト信号（ＲＤＡＤＤ［４：０］）を切替えることによって１ビットのデータの読出しが行われる。セレクト信号（ＲＤＡＤＤ［４：０］）は、図２に示した読出し制御回路１１４でリード系クロック（ＣＬＫ＿ＲＤ）に同期して生成される。このときセレクト信号（ＲＤＡＤＤ［４：０］）はＦＩＦＯにある程度データが書き込まれてから動作し始める。例えば、図４のタイミングチャートには、ＦＩＦＯ１１２にデータが１２段分書き込まれていた時にセレクト信号（ＲＤＡＤＤ［４：０］）が動作し始めることを示している。
【００２５】
図５に受信制御回路１０７の構成例を示す。受信ステートマシーン１１５は、ＵＴＭＩ仕様で定義されているＲｅｃｅｉｖｅ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅに準拠した受信ステートマシーンの制御を行う。
基本的には、受信データ待ち状態からＳＹＮＣパターン検出で受信状態となり、その後、ＥＯＰパターンを検出すると再び受信データ待ち状態となる。
【００２６】
スケルチエッジ検出回路１１６は、アナログフロントエンド回路１０１で伝送路上のデータ（Ｄａｔａ＋，Ｄａｔａ−）から生成されるスケルチ信号（ＳＱＬ）の立上り及び立下りを検出する回路である。図６に示すように、スケルチ信号（ＳＱＬ）の立下りでスケルチ立下り信号（ＳＱＬ＿ＤＮ）を生成し、スケルチ信号（ＳＱＬ）の立上りでスケルチ立上り信号（ＳＱＬ＿ＵＰ）を生成する。
【００２７】
図７にスケルチエッジ検出回路１１６の具体例を示す。スケルチエッジ検出回路１１６はアナログ回路であってもデジタル回路であってもよい。
なお、スケルチ信号とは、伝送路上にデータ（Ｄａｔａ＋，Ｄａｔａ−）のスケルチ（無信号）状態（アイドル状態）を表す信号である。
【００２８】
フェールセーフ回路１１７は、（ＳＱＬ＿ＵＰ、ＳＱＬ＿ＤＮ、ＳＱＬ）信号及び受信ステートマシーン１１５からの受信状態情報からライト系ブロックへ供給するフェールセーフ信号及びリード系ブロックへ供給するフェールセーフ信号を生成する。
【００２９】
リセット生成回路１１８は、フェールセーフ回路１１７からのフェールセーフ信号と各ブロック先で本来使用すべきリセット信号（例えばパワーオンリセットなど）に付加され、ライト系回路にはライト系リセット信号（ＷＲ＿ＲＳＴ＿Ｎ）が供給され、リード系回路にはリード系リセット信号（ＲＤ＿ＲＳＴ＿Ｎ）が供給される。
【００３０】
図８にフェールセーフ回路１１７の構成例を示す。図８に図示するように、フェールセーフ信号にはライト系及びリード系の２種類存在する。ライト系フェールセーフ信号は、ライト系クロック（ＣＬＫ＿ＷＲ）で動作するライト系回路をリセットする為の信号であり、リード系フェールセーフ信号は、リード系クロック（ＣＬＫ＿ＲＤ）で動作するリード系回路をリセットする為の信号である。
【００３１】
ライト系フェールセーフ信号は、「受信パケット始めのリセット信号生成回路」１１９で生成したリセット信号、及び、受信異常検出回路１２０で生成したリセット信号からライト系同期化回路１２１によって生成され、ライト系クロックに同期した信号である。
【００３２】
受信パケット始めのリセット信号は、受信パケットを受信するたびにパケット始めでライト系回路のみをリセットするための信号である。これは、ノイズなどの影響で、ライト系回路がハングアップ等の異常状態（例えば図３に示す書込み制御回路１１３で生成されるＦＩＦＯ書込み選択信号ＷＰ［０］−ＷＰ［２３］がイネーブルにならない状態）に陥っても必ず受信パケットの始めでリセットされ正常動作に戻る事を可能にする。リード系回路には、このリセット信号は使用しない。これはリード系回路はライト系回路に比べて動作するタイミングが遅く、パケット始めであっても、前のパケットデータの処理を行っている場合がありうる。もしリード系回路をこのタイミングでリセットすると途中で受信動作が強制的に終了してしまう可能性がある。
【００３３】
受信異常検出回路１２０では、受信異常を検出を行い受信回路全体をリセットする為のリセット信号を生成する。受信異常は、受信パケット始めのタイミング（ＳＱＬ＿ＤＮ＝Ｈ）で、一つ前の受信パケット処理がなんらかの影響で受信ステートマシーン１１５の状態が受信中のままになっている場合を受信異常として検出する場合と、受信パケット終わりのタイミング（ＳＱＬ＿ＵＰ＝Ｈ）でＳＹＮＣパターンが未検出のままである場合を受信異常として検出する場合の少なくとも２種類を検出する。
【００３４】
「受信パケット始めのリセット信号生成回路」１１９の具体例を図９に示す。スケルチ信号（ＳＱＬ）、ライト系クロック（ＣＬＫ＿ＷＲ）及びパワーオンリセット（ＲＥＳＥＴ＿Ｎ）からスケルチ信号（ＳＱＬ）の立下り時にライト系クロックに同期した信号を生成する回路になっている。
【００３５】
ライト系クロック（ＣＬＫ＿ＷＲ）に対してスケルチ信号（ＳＱＬ）は非同期である為、ライト系クロックで動作する回路で使用するためにはライト系クロック（ＣＬＫ＿ＷＲ）で同期化する必要がある。例えば、スケルチ信号を受けるＦ／Ｆのクロックの立ち上がりと、スケルチ信号の変化が重なるとメタステーブル状態となりＦ／Ｆのデータ出力が不安定になるため、通常クロックの動作周波数が４８０ＭＨｚとなると、メタステーブル状態を回避する為Ｆ／Ｆで３段程度非同期信号を受けて同期化しておく必要がある。
【００３６】
しかし、図９の回路では非同期信号（ＳＱＬ）を１段のＦ／Ｆでしか受けていない。これは、ＵＳＢ２．０の場合、パケット先頭には必ずＳＹＮＣパターンが存在し、ＵＴＭＩ仕様ではＳＹＮＣパターンは最小１２ビットで構成されている事から、その内４ビット分で受信データの同期を取るために必要であるとすると残り８ビットでＳＹＮＣパターンを検出する必要がある。
【００３７】
それをライト系クロックで同期化するのに３ビット分使ってしまうとＳＹＮＣ検出に必要なビット数は５ビットとなり逆にＳＹＮＣを誤検出してしまう可能性がでてくる。そのため、図９では、ＳＹＮＣ誤検出回避の重要性を考慮し、（ＳＱＬ）信号の同期化にはＦ／Ｆ１段しか使用していない。これは、もしメタステーブル状態となりこのリセット信号が消失したとしても、実動作上は問題にならない為である。
【００３８】
ライト系同期化回路１２１は、受信パケット始めのリセット信号及び受信異常検出リセット信号をライト系クロックに同期化させ、ライト系フェールセーフ信号を生成する回路である。また、リード系同期化回路１２２は受信異常検出リセット信号をリード系クロックで同期化させ、リード系フェールセーフ信号を生成するための回路である。
【００３９】
以上の構成のデータ転送制御装置を用いれば、たとえ受信異常が発生し回路がハングアップ状態になってしまうような場合でも、簡単なフェールセーフ回路を追加するだけで、自動的に次のパケットからは正常にデータ転送を行う事ができる。また、本実施形態のデータ転送制御装置は、２種類の受信異常を検出し、受信回路全体をリセットするので、回路全体のハングアップを回避できる確率が高まる。また、本実施形態のデータ転送制御装置は、受信異常を検出するとともに、毎受信パケット始めでライト系回路をリセットするので、回路全体のハングアップを回避できる確率がさらに高まり、非常に信頼性が高まる。
【図面の簡単な説明】
【００４０】
【図１】本発明による実施形態のデータ転送制御装置の構成を示すブロック図である。
【図２】本発明による実施形態のＨＳモード受信回路内のエラスティシティバッファ回路の構成例を示す図である。
【図３】本発明による実施形態のエラスティシティバッファ回路の具体例を示す図である。
【図４】本発明による実施形態のエラスティシティバッファの動作タイミングを示すタイミングチャートである。
【図５】本発明による実施形態の受信制御回路の構成例を示す図である。
【図６】本発明による実施形態のスケルチエッジ検出回路の動作を説明するための図である。
【図７】本発明による実施形態のスケルチエッジ検出回路の具体例を示す図である。
【図８】本発明による実施形態のフェールセーフ回路の構成例を示す図である。
【図９】本発明による実施形態の「受信パケット始めのリセット信号生成回路」の具体例を示す図である。
【符号の説明】
【００４１】
１００    データ転送制御装置
１０１    アナログフロントエンド回路
１０２    ＨＳモード受信回路
１０３    ＨＳＤＬＬ
１０４    エラスティシティバッファ回路
１０５    ＦＳモード受信回路
１０６    受信データ処理回路
１０７    受信制御回路
１０８    送信データ処理回路
１０９    送信制御回路
１１０    クロック生成回路
１１１    ＵＴＭＩインターフェース
１１２    ＦＩＦＯ
１１３    書き込み制御回路
１１４    読み出し制御回路
１１５    受信ステートマシーン
１１６    スケルチエッジ検出回路
１１７    フェールセーフ回路
１１８    リセット生成回路
１１９    受信パケット始めのリセット信号生成回路
１２０    受信異常検出回路
１２１    ライト系同期化回路
１２２    リード系同期化回路
【図１】
2009037492.tif 000003
【図２】
2009037492.tif 000004
【図３】
2009037492.tif 000005
【図４】
2009037492.tif 000006
【図５】
2009037492.tif 000007
【図６】
2009037492.tif 000008
【図７】
2009037492.tif 000009
【図８】
2009037492.tif 000010
【図９】
2009037492.tif 000011