(57)【要約】【課題】  ソフトウェアに負荷をかけず高速データ通信規格に対応した高い通信性能を発揮し、かつ低速な転送モードの時に全体の消費電力を低減させることを目的としている。【解決手段】受信用、送信用のＦＩＦＯをそれぞれ所有するＰＣ周辺機器（プリンタ）において、ホストとのネゴシエーションで高速モード（ＨＳモード）での転送になることを認識すると、受信転送要求時に送信用ＦＩＦＯを受信用に切り替える。これによりホストＰＣからのデータ転送時にプリンタの内部処理が４８０Ｍｂｐｓの転送速度に追いつかない場合でも、もう片方のＦＩＦＯを使用することによりデータ転送を止めずに受信処理を行うことができる。【選択図】        図１
2006185302.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータとデータ通信規格に基づいて双方向通信可能なシリアルバスを介して接続されたデータ転送制御装置において、
複数のエンドポイントのデータバッファリング用に設けられたそれぞれのメモリ領域と、前記コンピュータと前記データ処理手段とのハンドシェークシーケンス時に前記シリアルバスのデータ転送モードを認識する認識手段と、
前記認識手段が高速のデータ転送モードであると判断した後、データの転送方向に応じて前記メモリ領域の一部を前記転送方向用に切り替える切り替え手段を有することを特徴とするデータ転送制御装置。
【請求項２】
前記データ通信規格はＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）２．０に準拠したデータ通信であり、前記メモリ領域はバルクアウト転送に対応した第１のＦＩＦＯメモリと、バルクイン転送に対応した第２のＦＩＦＯメモリで構成されることを特徴とする請求項１記載のデータ転送制御装置。
【請求項３】
前記転送制御装置の内部データ処理の空き状況に基づいて、前記第１のＦＩＦＯメモリと前記第２のＦＩＦＯメモリを前記切り替え手段によって切り替えることを特徴とした請求項２記載のデータ転送制御装置。
【請求項４】
前記認識手段がＵＳＢ２．０規格のＦＳ（フルスピード）モードでデータ転送を行うと判断した時に、ＨＳ（ハイスピード）モード用のクロック生成動作をディスエーブルすることを特徴とする請求項２記載のデータ転送制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、双方向通信可能なシリアルバスを使用した通信システムに関したものであり、特にＵＳＢ２．０規格におけるＨＳ（ハイスピード）に対応している信号送受信回路とこれを用いたデータ転送制御装置に関するものである。
【背景技術】
【０００２】
従来、ビデオ機器やオーディオ機器には、アナログ信号用の入出力信号が設けられており、ビデオやオーディオ信号は、アナログ形式で機器間の通信が行われていた。近年、アナログ通信に代わり、デジタル通信が普及しつつある。デジタル通信の代表的な規格がＵＳＢである。ＵＳＢは、従来パソコンと様々なデバイス（周辺機器）を使いやすく、安価で接続できる規格として策定されたインターフェースの規格の一つである。しかし高速な転送速度を必要とするハードディスクやＣＤ−Ｒ／ＲＷドライブといった機器には転送速度が遅いという課題が顕著化してきたため、転送速度を４８０Ｍｂｐｓに高速化したバージョン（ＵＳＢ  ２．０）のＨＳ（Ｈｉ−Ｓｐｅｅｄ）モードが新たに制定された。ＨＳモードは、手軽に接続できる次世代の高速インターフェースとしてパソコンに搭載され始め、対応周辺機器も数多く登場している。そして大きな特徴として、ＵＳＢ１．１との完全な上位互換性があげられる。特にＨＳモードに対応するデバイスで要求されることとして、ＵＳＢ２．０のＨＳで動作できない環境に接続された場合、自らの速度を相手側に合わせてＬｏｗ−ＳｐｅｅｄやＦｕｌｌ−Ｓｐｅｅｄに落として、ＵＳＢ１．１環境でも動作するように自動的に調節する必要がある。従って、速度の問題を除けば、ＨＳデバイスとＬＳ，ＦＳデバイスは混在して使用することが可能となっている。
【０００３】
新仕様であるＨＳモードはデータ転送の高速化に伴い許容される最大パケットサイズが大幅に増加する。例えば大量データの転送に適したバルクイン・バルクアウト転送において、従来のＵＳＢ１，．１規格ではパケットサイズが６４ｂｙｔｅであったことに対し、ＨＳモードでは５１２ｂｙｔｅであるため、従来と比較して８倍のパケットサイズが許容されている。その結果、ＵＳＢのエンドポイントとしてはバッファの容量が大幅に増大することになる。しかし機器内部のデータ処理がＨＳ転送に比べて遅い場合は、ホスト側で待ち状態が発生し、高速４８０ｂｐｓ転送の優位性が活かせない。
【０００４】
よってデータ転送制御装置にはより高い通信性能が要求されるため、従来例として以下の内容が出願されている。
【０００５】
特許文献１のように、デュアルポートメモリを送信／受信バッファに用いて大量のデータを転送する方式がある。この方法は送信・受信アドレス設定制御部でそれぞれ送信・受信デュアルポートメモリのアドレスをエンドポイント毎に設定制御して送信・受信バッファの数及びサイズをＣＰＵダイナミックに動的に割り当てるものである。
【０００６】
特許文献２のように、予め２つの受信バッファメモリを備えてダブルバッファ構成にする方式がある。ホストＰＣがコンピュータ周辺機器のデータ受信領域を定期的に調査して、バルクアウトに十分な空き容量がデータ受信領域に無いと判断した場合は第１の受信バッファメモリから第２の受信バッファメモリに切り替えるものである。
【特許文献１】特開平１１−３２８０６９公報
【特許文献２】特開平１４−３１８７７８公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特許文献１については、アドレス設定制御は内部のＣＰＵによって行われる。ししかしＣＰＵ自体にアドレス制御という負荷が発生するためデータ処理上の問題点がある。
【０００８】
特許文献２については、ホストＰＣが常にデータ領域の監視をする必要があるためホストＰＣ側に負担がかかる。
【０００９】
かつ両提案とも高速モードを動作させるためには高速のクロックが必要となり、このような高い周波数のクロックを生成するために回路の消費電力は非常に大きなものとなっている。しかし高速モードで無い場合（低速モード）においてもクロック回路を動作させているため、非常に大きな不必要の消費電力を生じさせてしまう。
【００１０】
本発明は上記事情のためのもので、ソフトウェアに負荷をかけず高速データ通信規格に対応した高い通信性能を発揮し、かつ低速な転送モードの時に全体の消費電力を低減させることを目的としている。
【課題を解決するための手段】
【００１１】
上記課題を解決するために本発明は、コンピュータと、前記コンピュータとの間でデータ通信規格に基づいて双方向通信可能なシリアルバスを介して接続されたデータ転送制御装置において、複数のエンドポイントのデータバッファリング用に設けられた双方向それぞれのメモリ領域と、前記コンピュータと前記データ処理手段とのハンドシェークシーケンス時に前記シリアルバスのデータ転送モードを認識する認識手段と、
前記認識手段が高速のデータ転送モードであると判断した後、データの転送方向に応じて前記メモリ領域をすべて前記転送方向用に切り替える切り替え手段を有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、シリアルデータ転送の初期に転送モードを検出し、高速転送モード（ＨＳモード）と判断したとき、バッファメモリ（ＦＩＦＯ）の構成を切り替えることによって、機器の内部処理が間に合わない場合でもデータ転送が待ち状態になることを防ぐ。またその際にホストコンピュータや機器内部のＣＰＵに負荷をかけずに、且つ回路規模を抑えながら実現させることができる。
【発明を実施するための最良の形態】
【００１３】
以下添付図面を参照して本発明の好適な実施形態について説明する。
【実施例】
【００１４】
図１−ａは本実施例の概略を示した図である。パソコン等のホスト５１とプリンタ等の記録装置５２とがＵＳＢケーブル５３で接続されている状態を示す。記録装置装置５２のＵＳＢケーブル５３が接続されている部分には、ＵＳＢインターフェースを解してホストとデータのＵＳＢ送受信を行うためのデータハンドラ５４が設けられている。まず通常の受信動作において、データハンドラ５４で受信したデータは入出力バッファ５５を通じて受信ＦＩＦＯで一時保存される。そして入出力バッファ５８を通じてデータ処理部５９に送られ、印字動作のための所定のデータ処理が行われる。通常の送信動作においては、データ処理部５９から送信されてくるデータが入出力バッファ５８を通じて送信ＦＩＦＯ５７に入る。データハンドラ回路５４はホスト５１にデータが送信できる状態になったときに送信ＦＩＦＯのデータを、入出力バッファ５５を通じて読み出しホストパソコン２に転送する。
【００１５】
ホスト５１とデータハンドラ５５との間で行われる初期のネゴシエーションにおいて、データハンドラ５４内のプロトコルコントローラ１０７がデータ通信が高速（ＨＳ）モードになると識別して大量の受信データ転送が行われることが判明した場合は、図１−ｂのようにホスト５１からバルクＯＵＴ（データ受信）要求が送られてきたときに送信ＦＩＦＯ５８を受信用ＦＩＦＯ５６の予備として受信のためのＦＩＦＯとして使用する。受信ＦＩＦＯ５６がＦＵＬＬ状態になると、送信ＦＩＦＯ５７（機能は受信ＦＩＦＯ）に受信データを格納していく。ホスト５１のバルクＩＮ（データ用）要求時には受信用ＦＩＦＯは送信ＦＩＦＯに戻す。
【００１６】
ネゴシエーションにおいて低速（ＦＳ）モードであるとプロトコルコントローラ１０７が識別した場合は、受信ＦＩＦＯ５６と送信ＦＩＦＯ５７は本来の役割で使用される。
【００１７】
次に本実施形態におけるデータハンドラ５４の詳細図を図２に示す。
【００１８】
データハンドラ５４は、転送モード識別ブロック５５の他にＨＳアナログエンド回路１０１、ＦＳアナログエンド回路１０５、プロトコルコントローラ１０７、ＨＳ回路１０２、ＦＳ回路１０６、ＯＳＣ部１０８、クロックジェネレータ１０９、ＳＩＥ  Ｉ／Ｆ部１１０が存在している。
【００１９】
プロトコルコントローラ１０７（データ処理手段）は、ＵＳＢ等に準拠したデータ転送のための種々の処理を行う。より具体的には、送信時には、送信データにＳＹＮＣ（ｓｙｎｃｈｒｏｎｉｚａｔｉｏｎ）、ＳＯＰ（Ｓｔａｒｔ  Ｏｆ  Ｐａｃｋｅｔ）、ＥＯＰ（Ｅｎｄ  Ｏｆ  Ｐａｃｋｅｔ）を付加する処理や、ビットスタッフィング処理などを行う。一方、受信時には、受信データのＳＹＮＣ、ＳＯＰ、ＥＯＰを検出／削除する処理や、ビットアンスタッフィング処理などを行う。更に、データの送受信を制御するための各種のタイミング信号を生成する処理も行う。なお、受信データはプロトコルコントローラ１０７から後段の回路（後段のデータ処理手段）であるＳＩＥ−ＩＦ部１１０（ＳＩＥとはＳｅｒｉａｌ  Ｉｎｔｅｒｆａｃｅ  Ｅｎｇｉｎｅの略）に出力され、各エンドポイントを含むＳＩＥ（不図示）に転送される。送信データはＳＩＥからＳＩＥ−ＩＦ部１１０を経由してプロトコルコントローラ１０７に入力されることになる。
【００２０】
ＨＳ回路１０２は、データ転送速度が４８０ＭｂｐｓとなるＨＳモードでのデータの送受信を行うためのロジック回路であり、ＦＳ回路１０６は、データ転送速度が１２ＭｂｐｓとなるＦＳモードでのデータの送受信を行うためのロジック回路である。
【００２１】
ここで、ＨＳモードは、ＵＳＢ２．０により新たに定義された転送モードである。一方、ＦＳモードは、従来のＵＳＢ１．１で既に定義されている転送モードである。
【００２２】
ＵＳＢ２．０では、このようなＨＳモードが用意されているため、プリンタ、オーディオ、カメラなどにおけるデータ転送のみならず、ハードディスクドライブや光ディスクドライブ（ＣＤ−ＲＯＭ，ＤＶＤ）などのストレージ機器におけるデータ転送も実現できるようになる。ＨＳ回路１０２は、ＨＳＤＬＬ（Ｈｉｇｈ  Ｓｐｅｅｄ  Ｄｅｌａｙ  Ｌｉｎｅ  ＰＬＬ）回路１０３、ＥＢＵＦ回路（エラスティシティバッファ）１０４を含む。
【００２３】
ここでＨＳ−ＤＬＬ部１０３は、受信データとクロックジェネレータ１０９からのクロックとに基づいて、データのサンプリングクロックを生成する回路である。
【００２４】
またＥＢＵＦ回路（エラスティシティバッファ）１０２は、内部装置（データ転送制御装置）と外部装置（バスに接続される外部装置）とのクロック周波数差（クロックドリフト）等を吸収するための回路である。
【００２５】
ＨＳアナログエンド回路１０１は、ＨＳでの送受信を行うためのドライバやレシーバを含むアナログ回路である。同様にＦＳアナログエンド回路１０５は、ＦＳでの送受信を行うためのドライバやレシーバを含むアナログ回路である。ＵＳＢではＤＰ（ＤＡＴＡ＋）  ＤＭ（ＤＡＴＡ−）を用いた差動信号によりデータを送受信し、またＶＢＵＳによってホストコンピュータ（不図示）との接続状態を検知する。クロックジェネレータ１０９は装置内部で使用する４８０ＭＨｚのクロックや、装置内部及びＳＩＣ部で使用する６０ＭＨｚのクロックを生成する。クロック生成回路４４０は、ＰＬＬ４８０Ｍ１２１、ＰＬＬ６０Ｍ１２２を含む。ＯＳＣ部１０８（発振回路）は、例えば外部振動子との組み合わせによりベースクロックを生成する。
【００２６】
ＰＬＬ４８０Ｍ１２１は、ＯＳＣ部１０８で生成されたベースクロックに基づいて、ＨＳモードで必要な４８０ＭＨｚのクロックを生成するＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）である。ＨＳモードで送受信を行う場合には、このＰＬＬ４８０Ｍ１５１によるクロック生成を有効にする必要がある。
【００２７】
ＰＬＬ６０Ｍ１２２は、ＯＳＣ部１０８で生成されたベースクロックに基づいて、ＦＳモード、装置内部及びＳＩＥで必要な６０ＭＨｚのクロックを生成する。なお、このＰＬＬ６０Ｍ１５２によるクロック生成を有効にしている時には、ＨＳモードでの送受信は不可となる。
【００２８】
またクロックジェネレータ１０９はプロトコルコントローラ１０７からの各種の制御信号を受け、クロック生成を制御する処理を行う。なお、クロックジェネレータ１０９により生成された６０ＭＨｚのシステムクロックはプロトコルコントローラ１０７を介してＳＩＥに出力される。
【００２９】
図３にクロックジェネレータ１０９内部と他の機能ブロックとの接続について示す。クロックジェネレータ１０９に接続されているＯＳＣ部１０８は、ＸＩＮ，ＸＯＵＴに接続された外部振動子を用いて発振動作を行い、ベースクロックＢＣＬＫ（本実施例では１２ＭＨｚ）を生成する。そして、このベースクロックＢＣＬＫは、クロックジェネレータ１０９に出力される。
【００３０】
なお、ＸＩＮに入力された外部クロックを直接にベースクロックとして用いることも可能である。クロックジェネレータ１０９が含むＰＬＬ４８０Ｍ１２１は、プロトコルコントローラ１０７からの信号ＰＬＬ４８０Ｍ＿ＳＴが‘１’であるときにＰＬＬ動作を行う。次にプロトコルコントローラ１０７からの信号ＰＬＬ４８０Ｍ＿ＥＮＢが‘１’となったときに出力がイネーブルとなり、ベースクロックＢＣＬＫに位相同期した４８０ＭＨｚのクロックを生成する。生成された４８０ＭＨｚのクロックはデータ転送制御装置内部にあるＨＳ回路１０２やプロトコルコントローラ１０７に出力される。クロックジェネレータ１０９が含むＰＬＬ６０Ｍ１２２は常にイネーブル状態であり、ベースクロックＢＣＬＫに位相同期した６０ＭＨｚのクロックを生成する。そして生成された６０ＭＨｚのクロックはデータ転送制御装置内部やＳＩＥ（後段のデータ処理手段）で使用するシステムクロック（ＳＣＬＫ）として出力される。よってＨＳモード時、後述するチャープ（ＣＨＩＲＰ）送受信時は、ＰＬＬ４８０＿ＥＮＢを‘１’にして、ＰＬＬ４８０Ｍ１５１をイネーブルにする必要がある。
【００３１】
次に図４−ａにＰＬＬ４８０Ｍ１２１の詳細な構成例を示す。
【００３２】
このＰＬＬ４８０Ｍ１２１は、位相比較器１５１、ＣＰ（チャージポンプ）回路１５２、ＬＦ（ローパスフィルタ）回路１５３、ＶＣＯ（Ｖｏｌｔａｇｅ  Ｃｏｎｔｒｏｌｌｅｄ  Ｏｓｃｉｌｌａｔｏｒ）１５４、分周器１５５などを含む。
【００３３】
ここで位相比較器１５１は、ベースクロックＢＣＬＫ（１２ＭＨｚ）と分周器１５５からのクロックＮＣＬＫの位相を比較し、位相誤差信号を出力する。ＣＰ回路８２は、位相比較器１５１からの位相信号に基づいてチャージポンプ動作を行う。そしてチャージポンプ後にフィルタ回路１５３を通し、平滑化された制御電圧がＶＣＯ１５４に与えられる。ＶＣＯ１５４は、制御電圧に応じてその発振周波数が可変に制御される発振動作を行い、４８０ＭＨｚのクロックを生成する。例えば、制御電圧ＶＣ＿４８０Ｍと発振周波数も高くなり、制御電圧ＶＣが低くなると発振周波数も低くなる。ＶＣＯ１５４により生成された４８０ＭＨｚのクロックは、ＣＬＫ４８０Ｍとして外部に出力される。分周器１５５は、ＶＣＯ１５４から入力されるクロックＣＬＫ４８０Ｍを分周（１／Ｎ）して、分周後のクロックＮＣＬＫ＿４８０Ｍ１２１を位相比較器１５１に出力する。このように図４−ａのＰＬＬ４８０Ｍ１５１によれば、ベースクロックＢＣＬＫに位相同期した高周波数の４８０ＭＨｚのクロックを生成できるようになる。
【００３４】
図４−ｂにＰＬＬ６０Ｍ１２２の詳細な構成例を示す。
【００３５】
このＰＬＬ６０Ｍ１２２は、位相比較器１５６、ＣＰ回路１５７、ＬＦ回路１５８、ＶＣＯ１５９、分周器１６０などを含む。ここで位相比較器１５６は、ベースクロックＢＣＬＫ（１２ＭＨｚ）と分周器１６０のクロックＮＣＬＫ＿６０Ｍ比較し、位相誤差信号を出力する。ＣＰ回路１５７は、位相比較器１５６からの位相信号に基づいてチャージポンプ動作を行う。そしてチャージポンプ後にフィルタ回路１５８を通し、平滑化された制御電圧がＶＣＯ１５９に与えられる。ＶＣＯ１５９は、制御電圧に応じてその発振周波数が可変に制御される発振動作を行い、４８０ＭＨｚのクロックを生成する。例えば、制御電圧ＶＣが高くなると発振周波数も高くなり、制御電圧ＶＣが低くなると発振周波数も低くなる。ＶＣＯ１５９により生成された６０ＭＨｚのクロックは、ＣＬＫ６０Ｍとして外部に出力される。分周器１６０は、ＶＣＯ１５９から入力されるクロックＣＬＫ６０Ｍを分周（１／Ｎ）して、分周後のクロックＮＣＬＫ＿６０Ｍを位相比較器１５９に出力する。
【００３６】
図４−ｂのＰＬＬ６０Ｍによれば、ベースクロックＢＣＬＫに位相同期した６０ＭＨｚのクロックを生成できるようになる。
【００３７】
次にデータハンドラからデータ処理部までの詳細接続を図５に示す。ホスト５１とデータハンドラ回路５５内のプロトコルコントローラ１０７との間で行われる初期のネゴシエーションによって転送モードが決定されたとき、データハンドラ５４は入出力バッファ５５，５８に転送方向信号２０１を送信する。またデータハンドラ５４は受信ＦＩＦＯ５６、送信ＦＩＦＯ５７共にデータＦＵＬＬ状態またはＦＵＬＬに近い状態のときにアクティブになるＦＵＬＬフラグ２０３，２０４を認識することで、ＦＩＦＯの状態を監視している。
【００３８】
［転送方向信号２０１が“受信”、かつ転送モード信号が“低速”を示す時］データハンドラ５４から、転送モード信号２０２が“低速”として入出力バッファ５８とセレクタ６０に、転送方向信号２０１が“受信”として入出力バッファ５５，５８とデータ処理部５９に、ＦＩＦＯセレクト信号２０５が“送信ＦＩＦＯ”入出力バッファ５５，５８に、それぞれ入力される。上記の条件では入出力バッファ５５はデータハンドラ５４からの転送データを入力し、受信ＦＩＦＯ５６に対してデータの出力を行う。送信ＦＩＦＯ５７に対しては未接続状態となる。入出力バッファ５８はデータ処理部５９に対して出力、受信ＦＩＦＯ５６に対して入力になるが、送信ＦＩＦＯ５７に対しては未接続状態となる。セレクタ６０は入出力バッファ５８からのデータを選択する。ＦＵＬＬフラグ２０３は受信ＦＩＦＯ５６がＦＵＬＬ状態のときに出力される信号であり、データハンドラ５４に入力される。ＦＵＬＬフラグ２０４は送信ＦＩＦＯ５７（受信ＦＩＦＯとして使用されるとき）がＦＵＬＬ状態時に出力される信号であり、データハンドラ５４に入力される。データハンドラ５４はＦＵＬＬ状態のＦＩＦＯにはデータ送信を行わない。以上の条件において、ホスト５１から送信されてくるデータは、ホスト５１→データハンドラ５４→入出力バッファ５５→受信ＦＩＦＯ５６→入出力バッファ５８→データ処理部５９、という流れになる。
【００３９】
［転送方向信号２０１が“送信”を示す時］データハンドラ５４から、転送モード信号２０２が“低速”または“高速”として入出力バッファ５８とセレクタ６０に、転送方向信号２０１が“送信”として入出力バッファ５５，５８とデータ処理部５９に、ＦＩＦＯセレクト信号２０５が“送信ＦＩＦＯ”として入出力バッファ５５，５８に、それぞれ入力される。上記の条件では入出力バッファ５５はデータハンドラ５４に対して出力、送信ＦＩＦＯ５７に対して入力になる。受信ＦＩＦＯ５６に対しては未接続状態となる。入出力バッファ５８はデータ処理部５９に対して入力、送信ＦＩＦＯ５７に対して出力になる。受信ＦＩＦＯ５６に対しては未接続状態となる。セレクタ６０は、ホスト５１とデータハンドラ５５との間で行われる初期のネゴシエーションの結果によって、送信ＦＩＦＯ５７に出力するデータを選択する回路である。“送信”と判断された場合はデータ処理部５９からのデータを選択する。
【００４０】
以上の条件において、ホストに送信されるデータはデータ処理部５９→入出力バッファ５８→データセレクタ６０→送信ＦＩＦＯ５７→入出力バッファ５５→データハンドラ５４→ホスト５１、という流れになる。
【００４１】
［転送方向信号２０１が“受信”、かつ転送モード信号２０２が“高速”を示す時］データハンドラ５４から、転送モード信号２０２が“高速”として入出力バッファ５８とセレクタ６０に、転送方向信号２０１が“受信”として入出力バッファ５５，５８とデータ処理部５９に、ＦＩＦＯセレクト信号２０５が“送信ＦＩＦＯ”として入出力バッファ５５，５８に、それぞれ入力される。上記の条件では転送モード信号が“高速”を示す時でも、初期状態では送信ＦＩＦＯ５７はそのまま送信ＦＩＦＯとして機能する。入出力バッファ５５はデータハンドラ５４に対して入力、受信ＦＩＦＯ５６に対して出力になる。データハンドラ５４から“高速”を示す転送モード信号２０２がデータセレクタ６０と入出力バッファ５８に送られると、データセレクタ６０はホスト５１から送られてくるデータを選択して送信ＦＩＦＯ５７に入力する。入出力バッファ５８は転送方向信号２０１よりも転送モード信号１２２を優先させる。よって入出力バッファ５８はデータ処理部５９に対して出力になる。受信ＦＩＦＯ５６がまだＦＵＬＬでない初期状態においては、受信ＦＩＦＯ５６に対して入力になり、送信ＦＩＦＯ５７に対しては未接続となる。以上のように構成されたホスト５１とデータ処理部５９間のデータ転送手順は以下のようになる。
【００４２】
ホスト５１からのデータはデータハンドラ５４，入出力バッファ５５を介して受信ＦＩＦＯ５６に格納される。受信ＦＩＦＯ５６のデータは入出力バッファ５８を介してデータ処理部５９に送られる。そしてデータ処理部５９が処理しきれない状態になり、受信ＦＩＦＯ５６がデータ受信できなくなる（ＦＵＬＬ状態）まで受信データ転送が行われる。受信ＦＩＦＯ５６の空き状況はＦＵＬＬフラグ２０３によってデータハンドラ５４が管理している。
【００４３】
次にデータハンドラ５４は、受信ＦＩＦＯ５６がＦＵＬＬ状態であると認識したときに初めて、ホスト５１からのデータの格納先を受信ＦＩＦＯ５６から送信ＦＩＦＯ５７に切り替える。このときデータハンドラ５４は、送信ＦＩＦＯ５７を受信ＦＩＦＯとして使用するために、ＦＩＦＯセレクト信号２０５を入出力バッファ５５，５８，セレクタ６０に送信する。すると入力バッファ５５はデータ出力先をセレクタ６０に、セレクタ６０は入力データ元を入出力バッファ５５に、入出力バッファ５８は入力元を送信ＦＩＦＯ５７にする。このときから送信ＦＩＦＯ５７は受信ＦＩＦＯとして使用される。以上のような経路において、転送データが送信ＦＩＦＯ５７に格納される。ただしこのとき送信ＦＩＦＯ５７から入出力バッファ５８へのデータ転送は実施しない。転送データの順序が逆転しないように、送信ＦＩＦＯ５７に格納したまま止めておく。送信ＦＩＦＯ５７がＦＵＬＬ状態になった場合（データハンドラ５４がＦＵＬＬフラグ２０４を認識した時）においては、データハンドラ５４はホスト５１のデータ受信要求を受け付けない。記録制御部３４内部のデータ処理が進行しデータ処理部５９に空き容量が発生すると、ホスト５１からのデータの格納先を送信ＦＩＦＯ５７から受信ＦＩＦＯ５６に切り替える。データハンドラ５４はＦＩＦＯセレクト信号２０５を“送信ＦＩＦＯ”にして入出力バッファ５５，５８とセレクタ６０に入力する。入出力バッファ５５はデータハンドラ５４からの転送データを入力し、受信ＦＩＦＯ５６に対してデータの出力を行う。送信ＦＩＦＯ５７に対しては未接続状態となる。入出力バッファ５８はデータ処理部５９に対して出力、受信ＦＩＦＯ５６に対して入力になるが、送信ＦＩＦＯ５７に対しては未接続状態となる。セレクタ６０は入出力バッファ５８からのデータを選択する。このようにしてＦＵＬＬ状態であった受信ＦＩＦＯ５６からデータ処理部５９に向けてのデータ転送が再開される。再開時において、受信ＦＩＦＯ５６に格納されていたデータ数はデータハンドラ５４もしくはデータ処理部５９に記録されており（不図示）、データ転送順序が逆転しないようになっている。
【００４４】
受信ＦＩＦＯ５６内のデータを、入出力バッファ５８を経由してデータ処理部５９に前記記録データ数だけ転送すると、一時転送を中断して送信ＦＩＦＯ５７に切り替える。切り替え方法は、前記受信ＦＩＦＯ５６がＦＵＬＬになったときと同様である。そして送信ＦＩＦＯ５７内の全データを、入出力バッファ５８を介してデータ処理部５９に転送する。送信ＦＩＦＯ５７内の全データ転送後再び受信ＦＩＦＯ５６に切り替えて、受信データ転送を行う。
【００４５】
以上のようにデータハンドラ５４が受信ＦＩＦＯ５６の空き状況を監視し，空きが無いと判断した場合に受信ＦＩＦＯ５６と送信ＦＩＦＯ５７を適宜切り替えてデータを格納していくことにより、効果的にデータ転送を行うことができる。
【００４６】
次に、転送モードの判別方法と、クロックの切り替えタイミングについて説明する。
【００４７】
図６は、本実施形態のデータ転送制御装置がＨＳモードで動作する通信機器に接続されたときのタイミング波形図の例である。
【００４８】
時間ｔ０において、ＵＳＢバスに接続される前の初期状態として本実施形態のデータ転送制御装置はＦＳモードで動作を開始する。このときプロトコルコントローラ１０７によって信号ＰＬＬ４８０＿ＥＮＢとＰＬＬ４８０＿ＳＴは‘０’に設定され、ＰＬＬ４８０Ｍ１２１は停止状態となるため４８０ＭＨｚは生成されない。また同時にプロトコルコントローラ１０７はＦＳ回路との接続データ線のみを有効とし、ＨＳ回路との接続データ線は無効としている。
【００４９】
時間ｔ１において、ＵＳＢケーブルが挿入されＶＢＵＳが‘１’（有効）になったとき、プロトコルコントローラ１０７はホストコンピュータが接続されたと判断して信号ＰＬＬ４８０＿ＳＴを‘１’に設定する。そしてこのときからＰＬＬ４８０Ｍ１２１のＰＬＬ動作が開始される。ただしＰＬＬ動作は未だ安定しないため、プロトコルコントローラ１０７はＰＬＬ４８０＿ＥＮＢを‘０’を維持させる。よって各ＨＳ制御ブロックには４８０ＭＨｚのクロックは出力されない。
【００５０】
時間ｔ２において、ホストコンピュータはＵＳＢバスに対してバスリセットを発行する。このバスリセット発行から、ＨＳデバイス検出のためのハンドシェークシーケンスが開始される。
【００５１】
時間ｔ３において、バスリセットを検知したプロトコルコントローラ１０７はＵＳＢバスに対してチャープ信号「Ｋ」（Ｃｈｉｐ−Ｋ）を送信する。Ｃｈｉｐ−Ｋはデバイス側がＨＳモードで動作することを示すためのプロトコルである。
【００５２】
時間ｔ４において、Ｃｈｉｐ−Ｋを検知したホストコンピュータはＵＳＢバスに対してチャープ信号「Ｋ」（Ｃｈｉｐ−Ｋ）とチャープ信号「Ｊ」（Ｃｈｉｐ−Ｊ）を交互に送信する。これはホストコンピュータ側がＨＳモードで動作することを示すためのプロトコルである。
【００５３】
時間ｔ５において、Ｃｈｉｐ−Ｋ／Ｃｈｉｐ−Ｊを検知したプロトコルコントローラ１０７は、ＨＳモード用のデータ通信モードに入るため、ＰＬＬ４８０＿ＥＮＢを‘１’にする。よってＰＬＬ４８０Ｍ１２１の出力はイネーブルとなり、各ＨＳ制御ブロックには４８０ＭＨｚのクロックは出力されることなる。次にプロトコルコントローラ１０７はＨＳ回路との接続データ線のみを有効とし、ＦＳ回路との接続データ線は無効とする。これでＨＳモードでのデータ転送が可能となる。
【００５４】
時間ｔ６において、ＨＳデバイス検出のためのハンドシェークシーケンスが終了し、ホストコンピュータがＨＳモードによるデータ転送を開始する。
【００５５】
時間ｔ７においてＵＳＢケーブルが抜かれてＶＢＵＳが‘０’（無効）になったとき、時間ｔ８においてプロトコルコントローラ１０７はホストコンピュータとは未接続になったと判断して信号ＰＬＬ４８０＿ＳＴとＰＬＬ４８０＿ＥＮＢを‘０’に設定する。そしてこのときからＰＬＬ４８０Ｍ１２１のＰＬＬ動作は停止する。またＦＳ回路との接続データ線のみを有効とし、ＨＳ回路との接続データ線は無効とすることによりＦＳ動作モードに戻る。
【００５６】
図７は、本実施形態のデータ転送制御装置がＦＳモードで動作する通信機器に接続されたときのタイミング波形図の例である。
【００５７】
時間ｔ０〜ｔ３においては、前記ＨＳモードで動作する通信機器に接続されたときと当用である。
【００５８】
時間ｔ４において、Ｃｈｉｐ−Ｋを検知してもホストコンピュータはＨＳモードには対応していないためＵＳＢバスに対してチャープ信号「Ｋ」（Ｃｈｉｐ−Ｋ）は送信せず無応答となる。
【００５９】
時間ｔ５において、Ｃｈｉｐ−Ｋ／Ｃｈｉｐ−Ｊを検知できなかったプロトコルコントローラ１０７は、ＰＬＬ４８０＿ＳＴを‘０’にする。このときからＰＬＬ４８０Ｍ１２１のＰＬＬ動作は停止する。
【００６０】
時間ｔ６において、ＨＳデバイス検出のためのハンドシェークシーケンスが終了し、ホストコンピュータがＦＳモードによるデータ転送を開始する。
【００６１】
時間ｔ７において、ＵＳＢケーブルが抜かれてＶＢＵＳが‘０’（無効）になったとき、既にＦＳモードになっているため現状を維持する。
【００６２】
以上のタイミングで、プロトコルコントローラ１０７は転送モード（ＨＳ・高速、ＦＳ・低速）を認識し、そしてクロックとＦＩＦＯの切り替えを行っている。
【００６３】
次に、本実施形態のデータ転送制御装置を含むインクジェット記録装置の例について説明する。
【００６４】
図８は、電子機器（記録装置）の主要な部分の構成を示す図である。図８において、１は印字ヘッド、２は印字ヘッドを搭載するキャリッジ、３はキャリッジ２を駆動するキャリッジモータ、４は記録ヘッド２と不図示のヘッド駆動制御回路を接続するフレキシブルケーブルである。５は紙送りギア、６は紙送りギア５を介して紙送りローラ７を駆動する紙送りモータである。８はリニアエンコーダ、９はキャリッジの位置検出を行う光センサであり、８、９によりキャリッジの位置を検出する光学式エンコーダを構成している。Ｐは記録用紙である。
【００６５】
図９は記録装置の制御部の構成を示すブロック図である。ブロック図は記録制御部３５とヘッド部３６に分割される。ホスト３１は記録装置とＵＳＢバスにて接続されたホストであり、記録装置に対して印字データを送信する。
【００６６】
ＵＳＢを介して送られてきたシリアルの印字データは、データ転送制御部１０（本実施形態のデータハンドラ５４からデータ処理部５９まで）にて受信され、Ｉ／Ｆ回路１２を経由してＲＡＭ１１に格納する。１３は装置全体を制御するためのＣＰＵであり、ＲＡＭ１１に格納されたデータを処理してヘッド駆動回路１７に転送する。ＲＡＭ１４は所要の作業領域を提供するために存在し、また、１５のＲＯＭには前記ＣＰＵ１３が動作するためのプログラムや、ヘッド駆動、モータ駆動等の制御テーブルがあらかじめ格納されている。１６はキャリッジ位置検出素子であるエンコーダセンサ１９の出力によりキャリッジの位置を検出するエンコーダ回路である。１７は記録ヘッド２１やヘッドドライバ２０を駆動するための駆動回路であり、またＣＰＵ１３から送られてきたデータを更にヘッドドライバ２０に転送する。ヘッドドライバ２０が転送されてきたデータを記録ヘッド３６に送信し、そして記録ヘッド３６がデータに応じて吐出をすることで印字動作は行われる。モータ駆動回路１８はキャリッジモータ２２、紙送りモータ２３を駆動するための駆動回路であり、印字動作に合わせてキャリッジモータ２２、紙送りモータ２３を駆動させることでキャリッジの移動や紙送り動作を実行させる。
【００６７】
なお本実施形態のデータ転送制御装置を適用できる電子機器としては、上記以外にも例えば、種々の光ディスクドライブ（ＣＤ−ＲＯＭ、ＤＶＤ）、光磁気ディスクドライブ（ＭＯ）、ハードディスクドライブ、ビデオカメラ、オーディオ機器、パーソナルコンピュータなど種々のものを考えることができる。
【００６８】
また、本実施例は、ＵＳＢ２．０でのデータ転送であることを基本としているが、それ以外にも、例えばＵＳＢ２．０と同様の思想に基づく規格やＵＳＢ２．０を発展させた規格におけるシリアルデータ転送にも適用できる。
【図面の簡単な説明】
【００６９】
【図１】図１−ａ，図１−ｂ  本実施例の概略図
【図２】データハンドラ回路の詳細図
【図３】クロックジェネレータ１０９内部と他の機能ブロックとの接続を示す図
【図４】図４−ａ  ＰＬＬ４８０Ｍの構成例を示すブロック図、図４−ｂ  ＰＬＬ６０Ｍの構成例を示すブロック図
【図５】データハンドラからデータ処理部までの詳細接続図
【図６】ＨＳ検出ハンドシェーク時のタイミング波形図
【図７】ＦＳ検出ハンドシェーク時のタイミング波形図
【図８】インクジェット記録装置の主要機構部分を示す図
【図９】記録装置の構成を示すブロック図
【符号の説明】
【００７０】
１  印字ヘッド
２  キャリッジ
３  キャリッジモータ
４  記録ヘッド
５  紙送りギア
６  紙送りローラを駆動するモータ
７  紙送りローラ
８  リニアエンコーダ
９  光エンコーダセンサ
１０  データ転送制御装置
１１  ＲＡＭ
１２  Ｉ／Ｆ回路
１３  ＣＰＵ
１４  ＲＡＭ
１５  ＲＯＭ
１６  エンコーダ回路
１７  ヘッド駆動回路
１８  モータ駆動回路
１９  エンコーダセンサ
２０  ヘッドドライバ
２１  記録ヘッド
２２  キャリッジモータ
２３  紙送りモータ
３１  ホスト
３４  記録制御部
３５  ヘッド部
５１  ホスト
５２  記録装置
５３  ＵＳＢケーブル（ＵＳＢバス）
５４  データハンドラ
５５、５８  入出力バッファ
５９  データ処理部
６０  セレクタ
１０１  ＨＳアナログエンド回路
１０２  ＨＳ回路
１０３  ＨＳ−ＤＬＬ
１０４  ＥＢＵＦ
１０５  ＦＳアナログエンド回路
１０６  ＦＳ回路
１０７  プロトコルコントローラ
１０８  ＯＳＣ部
１０９  クロックジェネレータ
１１０  ＳＩＥ  Ｉ／Ｆ部
１２１  ＰＬＬ４８０Ｍ
１２２  ＰＬＬ６０Ｍ
１５１  位相比較器
１５２  ＣＰ回路
１５３  ＬＦ回路
１５４  ＶＣＯ
１５５  分周器
１５６  位相比較器
１５７  ＣＰ回路
１５８  ＬＦ回路
１５９  ＶＣＯ
１６０  分周器
２０１  転送方向信号
２０２  転送モード信号
２０３，２０４  ＦＵＬＬフラグ
２０５  ＦＩＦＯセレクト信号
【図１】
2006185302.tif 000003
【図２】
2006185302.tif 000004
【図３】
2006185302.tif 000005
【図４】
2006185302.tif 000006
【図５】
2006185302.tif 000007
【図６】
2006185302.tif 000008
【図７】
2006185302.tif 000009
【図８】
2006185302.tif 000010
【図９】
2006185302.tif 000011