(57)【要約】【課題】従来のデータ同期装置は、サンプリングデータの受信開始後にサンプリングクロックの周波数が大きく変動する問題があった。【解決手段】本発明のデータ同期装置は、入力データの周波数に読み出しクロックＣＬＫを同期させてデータを出力する、あるいは出力データの周波数に読み込みクロックＣＬＫ´を同期させてデータを入力するデータ同期装置であって、読み出しクロックＣＬＫ、あるいは読み込みクロックＣＬＫ´の周波数を、入力データあるいは出力データの単位時間当たりのデータ量に基づき制御する周波数同期部１５を有し、周波数同期部１５は、入力データが入力される前の期間に読み出しクロックＣＬＫ、あるいは出力データを出力する前の期間に読み込みクロックＣＬＫ´の周波数を予め設定された第１の周波数設定値ＳＧ１に基づき制御するものである。【選択図】図７
2007114840.tif 000002
【特許請求の範囲】
【請求項１】
入力データに同期させた読み出しクロック周波数でデータを出力する、あるいは出力データに同期させた読み込みクロック周波数でデータを入力するデータ同期装置であって、
前記読み出しクロックの周波数あるいは前記読み込みクロックの周波数を、単位時間あたりの入力データ量あるいは出力データ量に基づき制御する周波数同期部を有し、
前記周波数同期部は、前記入力データが入力される前の期間あるいは前記出力データを出力する前の期間に、前記読み出しクロックあるいは前記読み込みクロックの周波数を、予め設定された第１の周波数設定値に基づき制御するデータ同期装置。
【請求項２】
前記第１の周波数設定値は、前記データ同期装置の内部に予め設定される値、あるいは、前記データ同期装置の外部より与えられる値であることを特徴とする請求項１に記載のデータ同期装置。
【請求項３】
前記第１の周波数設定値は、前記入力データあるいは前記出力データより抽出される第２の周波数設定値との差が所定の範囲内となる値であることを特徴とする請求項１又は２に記載のデータ同期装置。
【請求項４】
前記周波数同期部は、前記第１の周波数設定値、または前記入力データあるいは前記出力データより抽出される第２の周波数設定値と、前記読み出しクロックあるいは前記読み込みクロックの周波数に対応する値とを比較して、前記読み出しクロックあるいは前記読み込みクロックの周波数の制御を行うことを特徴とする請求項１乃至３のいずれか１項に記載のデータ同期装置。
【請求項５】
前記周波数同期部は、予め設定された内部の設定値に基づいて前記読み出しクロックあるいは前記読み込みクロックの周波数を制御する第１の期間と、前記データ同期装置の外部からの制御により設定される前記第１の周波数設定値に基づいて前記読み出しクロックあるいは前記読み込みクロックの周波数を制御する第２の期間と、前記入力データあるいは前記出力データの単位時間当たりのデータ量に基づいて設定される第２の周波数設定値に基づいて、前記読み出しクロックあるいは前記読み込みクロックの周波数を制御する第３の期間とを有していることを特徴とする請求項１乃至４のいずれか１項に記載のデータ同期装置。
【請求項６】
前記データ同期装置は、さらに前記入力データあるいは前記出力データを保持する記憶部を有し、前記記憶部から前記読み出しクロックに同期して前記入力データを読み出す、あるいは前記読み込みクロックに同期して前記出力データを前記記憶部に書き込むことを特徴とする請求項１乃至５のいずれか１項に記載のデータ同期装置。
【請求項７】
入力データに同期させた読み出しクロック周波数でデータを出力する、あるいは出力データに同期させた読み込みクロック周波数でデータを入力するデータ同期装置のクロック制御方法であって、
前記読み出しクロックの周波数あるいは前記読み込みクロックの周波数を、単位時間あたりの入力データ量、あるいは出力データ量に基づき制御し、
前記入力データが入力される前の期間は、前記読み出しクロックあるいは前記読み込みクロックの周波数を、予め設定された第１の周波数設定値に基づき制御するクロックの制御方法。
【請求項８】
前記第１の周波数設定値は、前記データ同期装置内に予め設定される値、あるいは前記データ同期装置の外部より与えられる値であることを特徴とする請求項７に記載のクロックの制御方法。
【請求項９】
前記第１の周波数設定値は、前記入力データあるいは前記出力データより抽出される第２の周波数設定値との差が所定の範囲内となる値であることを特徴とする請求項７又は８に記載のクロックの制御方法。
【請求項１０】
前記クロック周波数の制御方法は、前記第１の周波数設定値、または前記入力データあるいは前記出力データより抽出される第２の周波数設定値と、前記読み出しクロックあるいは前記読み込みクロックの周波数に対応する値とを比較して、前記読み出しクロックあるいは前記読み込みクロックの周波数の制御を行うことを特徴とする請求項７乃至９のいずれか１項に記載のクロックの制御方法。
【請求項１１】
前記クロック周波数の制御方法は、予め設定された内部の設定値に基づいて前記読み出しクロック、あるいは前記読み込みクロックの周波数を制御する第１の期間と、前記データ同期装置の外部からの制御により設定される前記第１の周波数設定値に基づいて前記読み出しクロック、あるいは前記読み込みクロックの周波数を制御する第２の期間と、前記入力データあるいは前記出力データの単位時間当たりのデータ量に基づいて設定される第２の周波数設定値に基づいて前記読み出しクロック、あるいは前記読み込みクロックの周波数を制御する第３の期間とを有していることを特徴とする請求項７乃至１０のいずれか１項に記載のクロックの制御方法。
【請求項１２】
前記データ同期装置は、さらに前記入力データあるいは前記出力データを保持する記憶部を有し、前記記憶部から前記読み出しクロックに同期して前記入力データを読み出す、あるいは前記読み込みクロックに同期して前記出力データを前記記憶部に書き込むことを特徴とする請求項７乃至１１のいずれか１項に記載のクロックの制御方法。
【請求項１３】
外部機器とデータを通信するための端子と、
前記端子から入力される入力データをアナログ信号に変換する第１の変換器、あるいはアナログ信号を前記端子から出力される出力データに変換する第２の変換器と、
受信した前記入力データに読み出しクロックを同期させて前記第１の変換器に出力し、あるいは前記第２の変換器からの読み込みクロックを前記出力データに同期させてデータを入力するデータ同期装置とを有するデータ変換装置であって、
前記データ同期装置は、前記読み出しクロックあるいは前記読み込みクロックの周波数を、前記入力データの単位時間当たりのデータあるいは前記出力データの単位時間当たりのデータ量に基づき制御する周波数同期部を有し、
前記周波数同期部は、前記入力データが入力される前の期間あるいは出力データを出力する前の期間に、前記読み出しクロックあるいは前記読み込みクロックの周波数を予め設定された第１の周波数設定値に基づき制御するデータ変換装置。
【請求項１４】
前記第１の周波数設定値は、前記データ同期装置の内部に予め設定される値、あるいは前記データ同期装置の外部より与えられる値であることを特徴とする請求項１３に記載のデータ変換装置。
【請求項１５】
前記第１の周波数設定値は、前記入力データあるいは前記出力データより抽出される第２の周波数設定値との差が所定の範囲内となる値であることを特徴とする請求項１３又は１４に記載のデータ変換装置。
【請求項１６】
前記周波数同期部は、前記第１の周波数設定値、または前記入力データあるいは前記入力データより抽出される第２の周波数設定値と、前記読み出しクロックあるいは前記読み込みクロックの周波数に対応する値とを比較して、前記読み出しクロックあるいは前記読み込みクロックの周波数の制御を行うことを特徴とする請求項１３乃至１５のいずれか１項に記載のデータ変換装置。
【請求項１７】
前記周波数同期部は、予め設定された内部の設定値に基づいて前記読み出しクロック、あるいは前記読み込みクロックを制御する第１の期間と、前記データ同期装置の外部からの制御により設定される前記第１の周波数設定値に基づいて前記読み出しクロック、あるいは前記読み込みクロックの周波数を制御する第２の期間と、前記入力データあるいは前記出力データの単位時間当たりのデータ量に基づいて設定される第２の周波数設定値に基づいて前記読み出しクロック、あるいは前記読み込みクロックの周波数を制御する第３の期間とを有していることを特徴とする請求項１３乃至１６のいずれか１項に記載のデータ変換装置。
【請求項１８】
前記データ同期装置は、さらに前記入力データあるいは前記出力データを保持する記憶部を有し、前記記憶部から前記読み出しクロックに同期して前記入力データを読み出す、あるいは前記読み込みクロックに同期して前記出力データを前記記憶部に書き込むことを特徴とする請求項１３乃至１７のいずれか１項に記載のデータ変換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ同期装置及びそのデータ同期方法に関し、特に機器間のデータ通信速度とデータの再生あるいは記録速度とが異なる場合にデータの同期を行うデータ同期装置及びそのデータ同期方法に関する。
【背景技術】
【０００２】
近年、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）規格のインターフェイスを利用して、ＰＣＭ（Ｐｕｌｓｅ  Ｃｏｄｅ  Ｍｏｄｕｌａｔｉｏｎ）データなどのアナログ信号を所定のサンプリング周波数でデジタル化したサンプリングデータを通信し、音声の再生・記録にＵＳＢ機器を利用することが行われている。このようなＵＳＢ機器として、例えばＵＳＢスピーカー、ＵＳＢマイク、ヘッドフォンとマイクが一体となったＵＳＢヘッドセットがある。ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）１０１とＵＳＢヘッドセット（ＵＳＢ機器）１０３とをＵＳＢケーブル１０２で接続したシステムを図９に示す。
【０００３】
図９に示すシステムではＵＳＢケーブル１０２を介して、ＰＣ１０１側からＵＳＢ機器１０３側に音声データを送信し、ヘッドフォンで音声を再生する。また、ヘッドセットのマイクから取り込んだ音声データをＵＳＢケーブル１０２を介してＰＣ１０１側に送信し、ＰＣ１０１でその音声データを記録するものである。
【０００４】
ここで、ＰＣ１０１は、ＵＳＢホストコントローラを有しており、ＵＳＢ機器１０３は、ＵＳＢデバイスコントローラを有している。ＵＳＢホストコントローラは、ＵＳＢデバイスコントローラに命令を出力する。ＵＳＢデバイスコントローラは、ＵＳＢホストコントローラからの命令に基づきＵＳＢ機器１０３を制御する。また、ホスト側とデバイス側との間ではＵＳＢホストコントローラの命令に基づいたユーザーデータの通信が行われる。ユーザーデータとは、機器の使用者が、その機器で行いたい処理に使用されるデータであり、例えばＰＣＭデータなどである。
【０００５】
ここで、ＰＣＭデータなどのデジタル音声データは、一般的にＤＡＣ（Ｄｉｇｉｔａｌ／Ａｎａｌｏｇ  Ｃｏｎｖｅｒｔｅｒ）を用いてデジタル信号からアナログ信号に変換して再生される。この再生は、ＤＡＣを音声の記録に使用されたサンプリング周波数で動作させ、ＤＡＣへのデータの入力もサンプリング周波数にも続いて行う必要がある。
【０００６】
しかしながら、ＵＳＢ機器１０３とＰＣ１０１側は、サンプリング周波数とは関係のないＵＳＢの転送速度に応じてデータが通信される。そのため、ＰＣ１０１側からＵＳＢケーブル１０２を経由して送信されるＰＣＭデータを直接ＤＡＣを介して再生したのでは、再生周波数が異なるために音声を正しく再生することができない問題がある。
【０００７】
そこで、ＵＳＢ機器１０３は、デバイスコントローラやデータ同期装置などを搭載し、ＵＳＢの転送速度で受信したデータを、サンプリング周波数に同期したデータに変換して、ＵＳＢ機器が適切な速度で音声を再生できるようにする必要がある。このデータ同期装置の一例が特許文献１に開示されている。
【０００８】
特許文献１に記載のデータ同期装置１００を図１０に示す。図１０に示すように、データ同期装置１００は、ＦＩＦＯ１１１、バッファ１１２、ＣＰＵ１１３、ＲＯＭ１１４、１／Ｎデバイダ１１５、外部固定発振器１１６を有している。データ同期装置１００は、ＰＣ側からの入力データＤｉを一度ＦＩＦＯ１１１に蓄積し、サンプリングクロックＦｓに同期したデータＤｏをバッファ１１２を介してＵＳＢ機器側に出力するものである。
【０００９】
データ同期装置１００のサンプリングクロックの周波数を決定するフローについて説明する。まず、ホストコントローラとデバイスコントローラとの通信は、一般的に１ｍｓｅｃあるいは１２５μｓｅｃの間隔でＳＯＦ（Ｓｔａｒｔ  ｏｆ  Ｆｒａｍｅ）パケットと呼ばれる同期信号の通信を行うことで、通信動作の同期を行う。また、ＳＯＦパケットから次のＳＯＦパケットまでの期間を１フレームとして定義している。ホストコントローラとデバイスコントローラとは、ＳＯＦパケットに続けて１フレームに収まるようにデータを分割し、このフレームを連続的に通信することで動作する。
【００１０】
このようなフレームによる通信によって、ＰＣ１０１とＵＳＢ機器１０３とが接続されてから、ＵＳＢ機器１０３が動作を開始するまでのフローを説明する。図１１の上段にＵＳＢ機器１０３の接続から音声データの通信が開始されるまでのフレームの流れを示す。図１１の上段に示すように、時刻ｔ０でＰＣにＵＳＢ機器１０３が接続されると、ＳＯＦパケットが数フレーム送信される。その後、時刻ｔ１で機器の認証を行う機器認証用制御データＲＤの通信が開始される。機器認証が完了すると、時刻ｔ２でＵＳＢ機器の制御方法を設定する機器設定用制御データＣＤの通信が開始される。機器の制御方法の設定が完了すると、時刻ｔ３からユーザーデータである音声データＡＤの通信が開始される。この時刻ｔ３以降に、例えばＵＳＢ機器１０３のヘッドフォンから音声データを出力することが可能になる。
【００１１】
データ同期装置１００は、時刻ｔ３以降で音声データＡＤに基づいてデバイダ値Ｎを決定する。デバイダ値Ｎの変化を図１１の下段に示す。データ同期装置１００のデバイダ値Ｎは、時刻ｔ３までは初期値を保持しており、時刻ｔ３以降に音声データＡＤに基づいて調整を行い、所定時間の間デバイダ値Ｎが変化しなければ、それ以降にデバイダ値Ｎがロック状態となる。このデバイダ値Ｎで外部固定発振器１１６のクロック周波数ＥｘＣＬＫを割ることでサンプリングクロックＦｓの周波数が決定される。
【００１２】
デバイダ値Ｎの調整方法について説明する。ＣＰＵ１１３はＰＣ１０１側からＳＯＦが入力されるたびに、ＦＩＦＯ１１１の空き容量を監視し、ＦＩＦＯ１１１の空き容量が所定の範囲内となるようなデバイダ値Ｎを決定する。つまり、データ同期装置１００がＦＩＦＯ１１１の空き容量が所定の範囲内となるようにデバイダ値Ｎを調整して、最終的にデバイダ値Ｎをロック状態とする。また、デバイダ値Ｎに基づき周波数が決定されるサンプリングクロックＦｓに同期させて出力信号Ｄｏを出力することで、データ同期装置１００は、ＦＩＦＯ１１１に蓄積された音声データＡＤを音声データＡＤのサンプリング周波数で出力することができる。
【００１３】
このようにデバイダ値Ｎの調整動作を行うことで、データ同期装置１００は、入力される様々なサンプリング周波数を有する音声データのそれぞれに対応した出力を行うことが可能である。
【特許文献１】特開２００１−３２０３５１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、特許文献１に記載のデータ同期装置１００は、デバイダ値Ｎの調整を音声データの受信開始後に行うため、受信開始直後のデバイダ値は、入力される音声データのサンプリング周波数に対応するものではない。そのため、音声データの受信を開始した直後からデバイダ値Ｎがサンプリング周波数に対応したものとなるまでの間は、サンプリング周波数が変動する。従って、音声データを受信してからサンプリング周波数が安定するまでの間は、音声データの再生速度が安定せず音質が低下する問題がある。
【課題を解決するための手段】
【００１５】
本発明のデータ同期装置は、入力データの周波数に読み出しクロックを同期させてデータを出力する、あるいは出力データの周波数に読み込みクロックを同期させてデータを入力するデータ同期装置であって、前記読み出しクロック、あるいは前記読み込みクロックの周波数を、前記入力データあるいは前記出力データの単位時間当たりのデータ量に基づき制御する周波数同期部を有し、前記周波数同期部は、前記入力データが入力される前の期間に前記読み出しクロック、あるいは前記出力データを出力する前の期間に前記読み込みクロックの周波数を予め設定された第１の周波数設定値に基づき制御するものである。
【００１６】
本発明のデータ同期装置によれば、入力データが入力される前の期間あるいは出力データを出力する前の期間にクロックの周波数を予め設定される第１の周波数設定値に基づき制御する。これにより、入力データの入力をあるいは出力データの出力を開始するときの、読み出しクロックあるいは読み込みクロックの周波数を入力データあるいは出力データのデータ量に応じた周波数に近づけることが可能である。また、入力データの入力を開始した後あるいは出力データの出力を開始した後は、入力データあるいは出力データのデータ量に基づいて、読み出しクロックあるいは読み込みクロックを制御することで、読み出しクロックあるいは読み込みクロックの周波数を入力データあるいは出力データのデータ量に対応したものとすることが可能である。つまり、本発明のデータ同期装置は、従来のデータ同期装置よりも入力データの入力あるいは出力データの出力を開始した後のクロックの周波数が不安定な期間を短くすることが可能である。これにより、例えば音声データを出力あるいは入力する場合に、その制御期間で音質が低下していた期間を短くすることが可能である。
【発明の効果】
【００１７】
本発明のデータ同期装置によれば、データ通信開始後のサンプリング周波数が不安定な期間を短くすることができるため、音質が低下する時間を短くすることが可能である。
【発明を実施するための最良の形態】
【００１８】
実施の形態１
以下、図面を参照して本発明の実施の形態１について説明する。なお、後述の説明では、ハードウェアによる本発明の実施について説明するが、本発明はハードウェアによる実現に限られるものではなく、ファームウェア、あるいはソフトウェアによって実現することも可能である。また、本発明は後述の実施の形態に限られたものではなく、適宜変更することが可能である。
【００１９】
本実施の形態のデータ変換装置は、所定のプロトコルで外部機器と通信を行うものであって、例えばＵＳＢ規格のプロトコルで外部機器（例えば、ＰＣ）と通信を行うＵＳＢ機器（例えば、スピーカー）１である。ＵＳＢ機器１はＰＣとＵＳＢ規格のプロトコルを用いて通信を行う端子（例えば、ＵＳＢ端子）を有しており、ＵＳＢ端子に接続されるＵＳＢケーブルを介してＰＣと接続される。ＰＣからＵＳＢ機器１へは、連続的で周期的なデータ例えばあるサンプリング周波数でサンプリングされた音声データ及び、ＵＳＢ機器１の認証や制御に用いられるシステムデータ（例えば、制御データ）などが送信される。ＵＳＢ機器１は、この制御データの設定に基づき、入力される音声データをサンプリング周波数に従って再生する。
【００２０】
ここで、連続的で周期的なデータとは、例えば所定のサンプリング周波数で音声をサンプリングしたＰＣＭデータであって、サンプリング周波数のような周期を有する連続したデータである。また、このデータは、単位時間内に所定のデータ量が入力される。例えば、１６ビットの分解能のステレオ音声（２ｃｈ）が４４．１ｋＨｚのサンプリング周波数で記録されている音声データの場合、１０ｍｓｅｃの期間に４４１×２×２ｂｙｔｅのデータ量を有する。つまり、単位時間内に受信したデータ量と分解能とチャンネル数がわかれば、サンプリング周波数を求めることができる。
【００２１】
まず、ＰＣとＵＳＢ機器１との間で通信されるデータについて説明する。ＵＳＢ規格を用いた通信を行う場合、例えばＰＣ側に搭載されるホストコントローラと、ＵＳＢ機器１側に搭載されるデバイスコントローラとの間でＵＳＢフォーマットの信号の通信を行う。
ＵＳＢ規格では、データ転送モードとして、コントロール転送モード、バルク転送モード、インタラプト転送モード、アイソクロナス転送モードの４つのモードが規定されている。本実施の形態では、制御データの通信の場合は、主にコントロール転送モードを利用し、音声データの通信の場合は、主にアイソクロナス転送モードを利用する。コントロール転送モードは、非周期的な通信のうち、リクエストとレスポンスを行う双方向通信を行うモードである。アイソクロナス転送モードは、連続的で周期的なデータの通信を行うモードであって、例えば音声データ等のリアルタイム性が必要なデータの転送で利用される。
【００２２】
ＵＳＢバス上のパケット通信状況の一例を図２に示す。図２に示すように、ＵＳＢバス上では、例えばＵＳＢ１．１フォーマットであれば１ｍｓｅｃ、ＵＳＢ２．０フォーマットであれば１２５μｓｅｃの間隔でＳＯＦ（Ｓｔａｒｔ  ｏｆ  Ｆｒａｍｅ）パケットがホストコントローラからデバイスコントローラに送信される。ＵＳＢ規格では、ＳＯＦパケットと次のＳＯＦパケットとの間隔を１フレームとして規定している。
【００２３】
ＵＳＢバスでは、１フレームをデータ送信の単位としており、ＳＯＦパケットに続けて各種のパケットを送信する。図２では、フレーム１が制御データの例を示しており、フレーム２が音声データの例を示している。制御データは、ＳＯＦパケットに続けて、トークンパケット、データパケット、ハンドシェイクパケット、トークンパケット、データパケットが送信されている。音声データは、ＳＯＦパケットに続けて、トークンパケットとデータパケットが送信されている。
【００２４】
ここで、各パケットについて説明する。図３に各パケットデータの一例を示す。各パケットの先頭には、ＳＹＮＣ領域があり、この領域を用いてホストコントローラとデバイスコントローラとは動作の同期を行う。ＳＹＮＣ領域に続く領域に各パケットそれぞれを認識するためのＰＩＤ領域があり、このＰＩＤ以降の領域は各パケットによりそれぞれ異なる領域となっている。
【００２５】
ＳＯＦパケットは、ＰＩＤ領域にＳＯＦ命令が記述されており、フレームの開始を示す。また、ＳＯＦパケットのＰＩＤ領域に続く領域にはフレームナンバーとＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）が記述される。
【００２６】
トークンパケットは、ＰＩＤ領域にＳＥＴＵＰ命令、ＩＮ命令、ＯＵＴ命令、ＰＩＮＧ命令、ＳＰＬＩＴ命令、ＰＲＥ命令のいずれかが記述される。ＳＥＴＵＰ命令は、ホストコントローラがデバイスコントローラを制御する。ＩＮ命令は、デバイスコントローラからホストコントローラへのデータ転送を行う。ＯＵＴ命令は、コントロール転送モードを指定する。また、ＰＩＮＧ命令は、ＵＳＢデバイスの状態の調査を行い、ＳＰＬＩＴ命令は、複数の転送速度の通信が混在状況下において低速なデータ転送モード（スプリットトランザクション）を指定し、ＰＲＥ命令は、スプリットトランザクションにおいてロースピードパケットを指定する。このＰＩＤに続く領域には、アドレス（ＡＤＲ）、エンドポイント（ＥＮＤＰ）、ＣＲＣが続く。アドレスは、デバイスコントローラのアドレスを指定するものである。エンドポイントは、ホストコントローラとデバイスコントローラとの間でデータ転送を行うために、デバイスコントローラに設けられたデータバッファである。
【００２７】
データパケットのＰＩＤ領域には、データ欠落を確認するための値が記述される。データ領域にはデバイスコントローラが処理するデータが記述される。データ領域に続く領域には、ＣＲＣが記述される。
【００２８】
ハンドシェイクパケットは、ＰＩＤ領域にＡＣＫ、ＮＡＫなどのデバイスコントローラからホストコントローラへの応答命令が記述される。また、ＰＩＤ領域にはトークンパケットと同様にアドレス、エンドポイント、ＣＲＣが記述される。
【００２９】
上記説明のように、ＵＳＢインターフェイスで通信を行う場合、音声データは、音声データのサンプリング周波数とは関係のない所定の転送速度（例えば、ＵＳＢ規格に基づいた通信速度）で通信される。そのため、デバイスコントローラが受信した音声データをその音声データのサンプリング周波数に基づいてデジタル信号からアナログ信号への変換を行う必要がある。本実施の形態にかかるＵＳＢ機器１のデータ同期装置１０は、入力データの周波数に読み出しクロックを同期させて出力する。例えば、ＵＳＢ規格に従った転送速度で所定期間内に所定のデータ量の入力データ（例えば、音声データ）を受信し、その音声データを音声データから抽出したサンプリング周波数に同期させて出力する。また、データ同期装置１０が出力する音声データは第１の変換器（例えば、デジタル／アナログコンバータ（ＤＡＣ））３０によってアナログ信号に変換される。これによって、本実施の形態にかかるＵＳＢ機器１は、ＵＳＢフォーマットで受信した音声データを再生するものである。
【００３０】
ＵＳＢ機器１について図１を参照して詳細に説明する。ＵＳＢ機器１は、データ同期装置１０、マイクロコンピュータ（以下、マイコンと称す）２０、ＤＡＣ３０、アンプ４０、スピーカー５０を有している。
【００３１】
データ同期装置１０は、ＵＳＢケーブルを介して入力される制御データの情報をマイコン２０に送信し、受信した音声データから抽出したサンプリング周波数に基づいた周波数のサンプリングクロック（例えば、読み出しクロック）を生成して、読み出しクロックと読み出しクロックに同期した音声データとを出力するブロックである。データ同期装置１０の詳細な説明は後述する。
【００３２】
マイコン２０は、制御データに基づきデータ同期装置１０、ＤＡＣ３０、アンプ４０を制御するブロックである。ＤＡＣ３０は、読み出しクロックで動作し、データ同期装置１０が出力するデジタル信号ＤＳｏｕｔをアナログ信号に変換して出力するブロックである。アンプ４０は、ＤＡＣ４０が出力するアナログ音声信号を増幅し、接続されるスピーカー５０を駆動する回路である。
【００３３】
データ同期装置１０について詳細に説明する。データ同期装置１０は、プロトコル変換部１１、エンドポイントＣ（ＥＰＣ）１２、仮平均周波数設定値格納部１３、セレクタ１４、周波数同期部１５、エンドポイントＡ（ＥＰＡ）１６、平均周波数抽出部１７、記憶部（例えば、ＦＩＦＯ）１８、パラレル／シリアル変換部１９を有している。
【００３４】
プロトコル変換部１１は、ＵＳＢ端子から入力されるＵＳＢフォーマットの信号を解析し、解析データを参照して対応したエンドポイントブロックに送信する。ＥＰＣ１２は、入力されるデータのうち制御データを受信し、制御データの内容に従ってマイコン２０に制御内容を通知する。
【００３５】
仮平均周波数設定値格納部１３は、例えば第１の周波数設定値（例えば、仮平均周波数設定値）ＳＧ１が格納されるブロックである。仮平均周波数設定値ＳＧ１とは、所定の周波数を指定する値であって、例えば読み出しクロックＣＬＫの周波数と音声データのサンプリング周波数との差が所定の範囲内となるように設定する値である。この仮平均周波数設定値ＳＧ１は、例えば仮に設定された音声データの単位時間当たりの平均データ量をカウントすることで生成される所定間隔を有するパルス信号である。また、仮平均周波数設定値ＳＧ１は、仮平均周波数設定値格納部１３に予め設定された値、あるいはデータ同期装置１０の外部から与えられる値である。仮平均周波数設定値ＳＧ１は、１つの設定値に限られたものではなく、予め複数の設定を準備しておき、制御データ等によっていずれの設定値を使用するかを決定することも可能である。データ同期装置１０は、仮平均周波数設定値ＳＧ１によって音声データの入力がない期間に周波数同期部１５が生成する読み出しクロックＣＬＫの周波数の制御を行う。
【００３６】
平均周波数抽出部１７は、例えばＥＰＡ１６が受信した音声データの単位時間当たりの平均データ量を算出し、そのデータ量から抽出したサンプリング周波数に相当する値であって、読み出しクロックＣＬＫの周波数の追従元となる第２の周波数設定値（例えば、平均周波数設定値）ＳＧ２を出力する。この平均周波数設定値は、例えば音声データのデータ量をカウントすることで抽出されるサンプリング周波数に相当する所定間隔を有するパルス信号である。つまり、仮平均周波数設定値ＳＧ１が仮想的な読み出しクロックＣＬＫの周波数設定値であるのに対して、平均周波数設定値ＳＧ２は実際に受信した音声データに応じた読み出しクロックＣＬＫの周波数設定値である。
【００３７】
ここで、入力される音声データのサンプリング周波数は、一般的にある程度の範囲内の周波数に限られていることから、平均周波数設定値ＳＧ２も所定の範囲内の値の値となる。そのため、仮平均周波数設定値ＳＧ１は、平均周波数設定値ＳＧ２との差が所定の範囲内になる値として設定することが可能である。例えば、音声データのサンプリング周波数が３２ｋＨｚ〜４８ｋＨｚのうちいずれかの値であると想定される場合、８ｋＨｚを所定の範囲とすることで仮平均周波数設定値ＳＧ１を４０ｋＨｚと設定することが可能である。
【００３８】
セレクタ１４は、仮平均周波数設定値ＳＧ１と平均周波数設定値ＳＧ２とのいずれか一方を選択して出力する。この選択は、バスを介してマイコンから与えられる信号に基づいて行われ、例えば音声データが入力されていない期間は、仮平均周波数設定値ＳＧ１を選択し、音声データが入力されている期間は、平均周波数設定値ＳＧ２を選択する。
【００３９】
周波数同期部１５は、周波数比較部１５１とクロック生成部１５２とを有している。周波数比較部１５１は、セレクタ１４が選択する仮平均周波数設定値ＳＧ１、あるいは平均周波数設定値ＳＧ２とクロック生成部１５２が生成する読み出しクロックＣＬＫとの周波数差に基づいて周波数制御信号ｆ＿ＡＤＪを出力する。周波数制御信号ｆ＿ＡＤＪは、例えば仮平均周波数設定値ＳＧ１、又は、平均周波数設定値ＳＧ２と読み出しクロックＣＬＫとの周波数差に基づいてデューティー比が変化するパルス信号である。また、周波数制御信号ｆ＿ＡＤＪは、仮平均周波数設定値ＳＧ１、又は、平均周波数設定値ＳＧ２の周波数よりも読み出しクロックＣＬＫの周波数が速い場合は、パルスのハイレベル期間を短く（デューティー比を低く）し、遅い場合は、パルスのハイレベル期間を長く（デューティー比を大きく）する。
【００４０】
クロック生成部１５２は、例えば周波数制御信号ｆ＿ＡＤＪのデューティー比に基づいて周波数が変化する読み出しクロックを生成するブロックである。本実施の形態では、クロック生成部１５２は、ローパスフィルタ（ＬＰＦ）１５３と電圧制御発振器（ＶＣＯ）１５４とを有している。クロック生成部１５２は、このＬＰＦ１５３で周波数制御信号ｆ＿ＡＤＪを平滑化した直流電圧を生成し、この直流電圧の大きさに基づいた周波数の読み出しクロックＣＬＫをＶＣＯ１５４が生成する。
【００４１】
本実施の形態では、周波数比較部１５１が、音声データが入力されていない期間は、仮平均周波数設定値ＳＧ１と読み出しクロックＣＬＫとの周波数差に基づいた周波数制御信号ｆ＿ＡＤＪを出力し、音声データが入力されている期間は、平均周波数設定値ＳＧ２と読み出しクロックＣＬＫとの周波数差に基づいた周波数制御信号ｆ＿ＡＤＪを出力する。クロック生成部１５２は、周波数制御信号ｆ＿ＡＤＪのデューティー比に応じた周波数の読み出しクロックＣＬＫを生成する。つまり、周波数比較部１５１が読み出しクロックＣＬＫの周波数と仮平均周波数設定値ＳＧ１、又は、平均周波数設定値ＳＧ２との周波数差がなくなるように周波数制御信号ｆ＿ＡＤＪを制御することで、読み出しクロックＣＬＫの周波数は、音声データが入力されていない期間は、仮平均周波数設定値ＳＧ１に同期した周波数となり、音声データが入力されている期間は、平均周波数設定値ＳＧ２に同期した周波数となる。
【００４２】
ＥＰＡ１６は、受信した音声データをＦＩＦＯ１８に送信する。ＦＩＦＯ１８は、読み出しクロックＣＬＫに同期して動作する先入れ先出し型のメモリであって、音声データを一時的に保持するブロックである。パラレル／シリアル変換部１９は、ＦＩＦＯ１８から音声データをパラレルデータで読み出し、読み出したデータをシリアルデータに変換して、読み出しクロックＣＬＫに同期させて出力するブロックである。
【００４３】
データ同期装置１０の動作のフローチャートを図４に示す。図４を参照してデータ同期装置１０の動作を説明する。まず、ＵＳＢ機器１がＰＣと接続されると、ＵＳＢ機器１が動作を開始する。ＵＳＢ機器１がＰＣと接続された後は、数フレームの間制御データや音声データを含まないフレームがＰＣからＵＳＢ機器１に送信される（ステップＳ１）。ステップＳ１は、例えばＵＳＢ規格に基づき行われる動作であって、ＰＣとＵＳＢ機器１が接続されてから数百ｍｓｅｃの間この通信が行われる。続いて、ＰＣからＵＳＢ機器１に機器認証用制御データＲＤを含むフレームが送信されると、ＵＳＢ機器１はＰＣに対して機器の認証処理を行う。このとき、ＵＳＢ機器１は、機器が対応できるサンプリング周波数の情報をホスト側に送信する（ステップＳ２）。
【００４４】
ステップＳ２が完了すると、続いて、ＰＣからＵＳＢ機器１に対して機器設定用制御データＣＤが送信され、ＵＳＢ機器１は機器設定用制御データＣＤに基づいてＵＳＢ機器１の各ブロックの動作設定を行う（ステップＳ３）。このステップ３の通信でホスト側からデバイス側へ仮平均周波数設定値ＳＧ１の情報が送信される。仮平均周波数設定値ＳＧ１の情報は、例えばステップ３の最初の動作として行われる。
【００４５】
また、ＵＳＢ機器１は、ステップＳ３の通信で仮平均周波数設定値ＳＧ１の情報を受信すると、ステップ３の動作と並列して読み出しクロックＣＬＫの周波数が仮平均周波数設定値ＳＧ１に同期した周波数になるように制御を行う（ステップＳ４）。このステップＳ４の動作の詳細については後述する。
【００４６】
ステップＳ３が完了すると、ＰＣのＵＳＢ機器１対する音声データの送信に応じて、ＵＳＢ機器１は、この音声データの受信を開始する。また、データ同期装置１０のセレクタ１４は、選択する信号を仮平均周波数設定値ＳＧ１から仮平均周波数設定値ＳＧ２に切り換える（ステップＳ５）。ＵＳＢ機器１が音声データを受信すると、平均周波数抽出部１７は、この音声データより平均周波数設定値ＳＧ２を抽出する。この平均周波数設定値ＳＧ２は、セレクタ１４を介し周波数比較部１５１に入力される。つまり、ステップＳ５以降の期間では周波数比較部１５１は、仮平均周波数設定値ＳＧ１に代えて平均周波数設定値ＳＧ２と読み出しクロックＣＬＫとの周波数差に基づいて周波数制御信号ｆ＿ＡＤＪを変化させる。これによって、読み出しクロックＣＬＫの周波数は、平均周波数設定値ＳＧ２に同期した周波数となるように制御される（ステップＳ６）。ステップＳ６によって制御された読み出しクロックＣＬＫは、平均周波数設定値ＳＧ２に同期した周波数のクロックとなる（ステップＳ７）。
【００４７】
また、ステップＳ６からステップＳ７までの読み出しクロックＣＬＫの制御動作が行われている期間であっても、ＵＳＢ機器１は、その制御中の読み出しクロックＣＬＫで音声データの再生を行う（ステップＳ８）。ステップＳ７で読み出しクロックＣＬＫが安定した周波数となった後は、平均周波数設定値ＳＧ２に同期した周波数の読み出しクロックＣＬＫに基づいて、音声データの再生を行う。
【００４８】
ここで、ステップＳ４の仮平均周波数設定値ＳＧ１に基づいた読み出しクロックＣＬＫの周波数の制御フローについて詳細に説明する。図５にステップＳ４の詳細なフローチャートを示す。図４に示すように、ステップＳ４はステップＳ２の完了後から開始される。ステップＳ４は、ステップＳ２が完了するとホスト側からの制御により設定される仮平均周波数設定値ＳＧ１が周波数比較部１５１に入力される（ステップＳ１１）。このとき、周波数比較部１５１は、例えば予め仮平均周波数設定値格納部１３に格納されている値のうちいずれかの値に基づいた初期周波数制御信号ｆ＿ＡＤＪを出力し、クロック生成部１５２はその初期周波数制御信号ｆ＿ＡＤＪに応じた周波数の読み出しクロックＣＬＫを生成する（ステップＳ１２）。ここで、初期周波数制御信号ｆ＿ＡＤＪを設定する値は、例えばその製品の仕様や設計時の設定によって決定することが可能である。
【００４９】
その後、周波数比較部１５１には仮平均周波数設定値ＳＧ１と、読み出しクロックＣＬＫとが入力されることになる。周波数比較部１４は、仮平均周波数設定値ＳＧ１と読み出しクロックＣＬＫとの周波数を比較し、互いの周波数が一致しているか否かを判断する（ステップＳ１３）。ステップＳ１３で２つの信号の周波数が一致していた場合、読み出しクロックＣＬＫの周波数は、仮平均周波数設定値ＳＧ１に同期した周波数としてその周波数で安定する（ステップＳ１７）。
【００５０】
また、ステップＳ１３で２つの信号の周波数が一致していない場合、周波数比較部１５１は、２つの信号の周波数差に基づいて周波数制御信号ｆ＿ＡＤＪのデューティー比を変更する（ステップＳ１４）。続いて、クロック生成部１５２は、周波数制御信号ｆ＿ＡＤＪの変化に基づいて読み出しクロックＣＬＫの周波数を変化させる（ステップＳ１５）。
【００５１】
その後、周波数比較部１５１は、ステップＳ１４からステップＳ１５によって変化した読み出しクロックＣＬＫと仮平均周波数設定値ＳＧ１とを比較し、２つの信号の周波数が一致しているか否かを判断する（ステップＳ１６）。ステップＳ１６で２つの信号の周波数差が一致していた場合、読み出しクロックＣＬＫの周波数は、仮平均周波数設定値ＳＧ１に同期した周波数となる（ステップＳ１７）。また、ステップＳ１６で２つの信号の周波数が一致していない場合、ステップＳ１４からステップＳ１６を繰り返し実行する。
【００５２】
ステップＳ１７は、ＵＳＢ機器１が音声データの受信を開始するとステップＳ５へとフローが進む。ここで、図５のフローチャートには図示していないが、ステップＳ４の動作は、ステップＳ３のＵＳＢ機器１の制御設定が完了した時点で終了する。
【００５３】
図４に示すフローチャートの動作を、ＰＣとＵＳＢ機器１とで通信されるフレームの流れと読み出しクロックＣＬＫの周波数の時間変化を示す図６を参照して説明する。図６に示すように、時刻ｔ０でＰＣとＵＳＢ機器１とが接続されると、データを含まないフレームの通信が数フレーム分行われる（図４のステップＳ１）。その後、第１の期間（時刻ｔ１から時刻ｔ２の期間）でＥＰＣ１２を指定した機器認証用制御データＲＤの通信が行われ、ＵＳＢ機器１の認証が行われる（図４のステップＳ２）。このとき、ＵＳＢ機器１は、ＵＳＢ機器１は、機器が対応できるサンプリング周波数の情報をホスト側に送信する。また、読み出しクロックＣＬＫの周波数は、初期周波数制御信号ｆ＿ＡＤＪに対応した周波数となる。
【００５４】
続いて、第２の期間（時刻ｔ２から時刻ｔ３の期間）でＰＣからＵＳＢ機器１にＥＰＣ１２を指定した機器設定用制御データＣＤが送信され、ＵＳＢ機器１の制御設定が行われる（図４のステップＳ３）。なお、本実施の形態では、この制御設定によってＵＳＢ機器１は、仮平均周波数設定値ＳＧ１の値を決定し、読み出しクロックＣＬＫの周波数を仮平均周波数設定値ＳＧ１に同期した周波数に制御する（図４のステップＳ４）。なお、仮平均周波数設定値ＳＧ１に基づいた読み出しクロックＣＬＫの周波数の制御は、機器設定用制御データＣＤの受信期間に関係なく、ＵＳＢ機器１が時刻ｔ０でＰＣと接続された後で、ＳＯＦパケットの受信状態が正常であることを確認し、さらにＵＳＢ機器１に対する給電状態が十分であることを確認した後に開始するとより好適である。
【００５５】
時刻ｔ３でＵＳＢ機器１の制御設定が完了すると、その後、ＰＣからＵＳＢ機器１に対してＥＰＡ１６を指定した音声データが送信される（図４のステップＳ５）。このとき、データ同期装置１０のセレクタ１４は、選択する信号を仮平均周波数設定値ＳＧ１から平均周波数設定値ＧＳ２に切り換える。これによって、第３の期間（時刻ｔ３以降）では、読み出しクロックＣＬＫの周波数は音声データのサンプリング周波数に同期した周波数となり、音声データは、その音声データのサンプリング周波数に従って再生される（図４のステップＳ６からステップＳ７）。
【００５６】
上記説明より、本実施の形態にかかるデータ同期装置１０によれば、音声データの受信開始前の機器設定用制御データの受信期間で、読み出しクロックＣＬＫの周波数を平均周波数設定値ＳＧ２に近い値の仮平均周波数設定値ＳＧ１に同期させるように制御する。その後、音声データ受信を開始すると、データ同期装置１０は、受信した音声データの単位時間当たりのデータ量から抽出したサンプリング周波数に相当する平均周波数設定値ＳＧ２に読み出しクロックＣＬＫを同期させる。ここで、ＵＳＢ機器１が音声データの受信を開始した直後の読み出しクロックＣＬＫの周波数は、音声データ受信開始前の仮平均周波数設定値ＳＧ１に基づく周波数の制御により、受信する音声データのサンプリング周波数に近い周波数に制御されている。これによって、本実施の形態にかかるデータ同期装置１０は、音声データ受信開始後に読み出しクロックＣＬＫの周波数が大きく変動することがない。つまり、従来のデータ同期装置では、音声データ受信後に読み出しクロックの周波数が大きく変動し、音質を劣化させる期間があったのに対して、本実施の形態のデータ同期装置１０は、音声データの受信開始後の音質が劣化する期間を大幅に削減することが可能である。
【００５７】
さらに、本実施の形態にかかるデータ同期装置１０は、受信した音声データの単位時間当たりのデータ量から平均周波数設定値ＳＧ２を抽出し、音声データ受信後の読み出しクロックＣＬＫをこの平均周波数設定値ＳＧ２に同期した周波数とすることが可能である。これによって、本実施の形態にかかるデータ同期装置１０は、ＰＣから送信される音声データのサンプリング周波数が異なる場合であっても、その音声データのサンプリング周波数に同期した読み出しクロックＣＬＫを生成して、音声データを最適な速度で再生することが可能である。
【００５８】
また、本実施の形態にかかるデータ同期装置１０によれば、音声データの受信前に読み出しクロックＣＬＫの周波数の制御を行うことで、読み出しクロックＣＬＫの周波数の制御期間が長くなる場合であっても、音声データの受信後の期間に読み出しクロックの周波数が大きく変動することはない。つまり、本実施の形態にかかるデータ同期装置１０によれば、クロック生成部１５２を構成する素子のばらつきが、読み出しクロックの周波数の制御時間に与える影響を大幅に削減することが可能である。読み出しクロックＣＬＫの周波数の制御期間は、例えばクロック生成部１５２のバラツキにより増大する場合がある。クロック生成部１５２がばらついた場合、読み出しクロックＣＬＫの周波数の初期値が目的とする周波数から大きく異なってしまうために、制御動作における周波数の変動幅が大きくなり、制御期間が増大する。このバラツキは、例えばクロック生成部１５２を構成する素子のバラツキ、あるいは周囲温度の変動による素子特性の変動などによって発生する。
【００５９】
上記説明の実施の形態１は、図６の時刻ｔ３以降で、受信した音声データから抽出した平均周波数設定値ＳＧ２に基づき読み出しクロックＣＬＫの周波数を制御していたが、この読み出しクロックＣＬＫの周波数の制御はＦＩＦＯ１８のメモリ残量を考慮して行うことも可能である。
【００６０】
実施の形態２
実施の形態１にかかるＵＳＢ機器１が音声の再生を行うものであったのに対し、実施の形態２にかかるＵＳＢ機器２は音声の再生と録音とを行うものである。ＵＳＢ機器２の再生に関わる部分については実施の形態１にかかるＵＳＢ機器１と同様であるため、実施の形態１と同様の符号を付して説明を省略する。
【００６１】
以下、図面を参照して本発明の実施の形態２の音声の録音にかかわる部分について説明する。図７に実施の形態２にかかるＵＳＢ機器２を示す。図７に示すように、実施の形態２にかかるＵＳＢ機器２は、ＵＳＢ端子、データ同期装置１０´、マイコン２０´第１の変換器（例えば、ＤＡＣ）３０、第２の変換器（例えば、ＡＤＣ（Ａｎａｌｏｇ  Ｄｉｇｉｔａｌ  Ｃｏｎｖｅｒｔｅｒ））３０´、アンプ４０、４０´スピーカー５０、マイク５０´を有している。ここで、ＤＡＣ３０、アンプ４０、スピーカー５０は実施の形態１で説明したものと同じである。
【００６２】
データ同期装置１０´は、実施の形態１のデータ同期装置１０の機能に加えて。ＵＳＢケーブルを介して入力される制御データに基づいて、音声データをサンプリングする所定の録音サンプリング周波数の読み込みクロックＣＬＫ´を生成し、読み込みクロックＣＬＫ´に基づきマイク５０´から音声データを取り込みＰＣに対して出力データ（例えば、録音データ）を出力するブロックである。例えば、ＵＳＢから所定期間内に読み出されるデータ量となるように読み込みクロックＣＬＫ´を調整して音声データを変換し録音データとして音声データをＰＣに出力する。データ同期装置１０´の詳細な説明は後述する。
【００６３】
マイコン２０´は、制御データに基づきデータ同期装置１０´、ＤＡＣ３０、ＡＤＣ３０´、アンプ４０、４０´を制御するブロックである。ＡＤＣ３０´は、読み込みクロックＣＬＫ´で動作し、アンプ４０´が出力するアナログ信号を読み込みクロックＣＬＫ´に基づいてデジタル化したデータＤＳｉｎに変換して出力するブロックである。アンプ４０´は、マイク５０´が出力するアナログ信号を増幅し、接続されるＡＤＣ３０´に伝達する回路である。
【００６４】
データ同期装置１０´について詳細に説明する。データ同期装置１０´は、実施の形態１のデータ同期装置１０に加えて、仮録音平均周波数設定値格納部１３´、セレクタ１４´、周波数同期部１５´、エンドポイントＢ（ＥＰＢ）１６´、録音平均周波数抽出部１７´、ＦＩＦＯ１８´、シリアル／パラレル変換部１９´を有している。
【００６５】
仮録音平均周波数設定値格納部１３´は、例えば制御データによって指定される、あるいは予め設定される第１の周波数設定値（例えば、仮録音平均周波数設定値）ＳＧ３が格納されるブロックである。仮録音平均周波数設定値ＳＧ３とは、実施の形態１の仮平均周波数設定値ＳＧ１に相当する値であって、送信される音声データの単位時間当たりの平均データ量より求まるサンプリング周波数に相当するパルス信号である。
【００６６】
録音平均周波数抽出部１７´は、例えばＥＰＢ１６´が送信する音声データの単位時間当たりの平均データ量を算出し、そのデータ量から抽出したサンプリング周波数に相当する値であって、読み出しクロックＣＬＫの周波数の追従元となる第２の周波数設定値（例えば、録音平均周波数設定値）ＳＧ４を出力する。この平均周波数設定値は、例えば実施の形態１の平均周波数設定値ＳＧ２に相当する値であって、送信データのデータ量から抽出されるサンプリング周波数に相当するパルス信号である。つまり、仮録音平均周波数設定値ＳＧ３が仮想的な読み出しクロックＣＬＫの周波数設定値であるのに対して、録音平均周波数設定値ＳＧ４は実際に送信する音声データに応じた読み出しクロックの周波数設定値である。
【００６７】
セレクタ１４´は、仮録音平均周波数設定値ＳＧ３と録音平均周波数設定値ＳＧ４とのいずれか一方を選択して出力する。この選択は、バスを介してマイコンから与えられる信号に基づいて行われ、例えば音声データが入力されていない期間は、仮平均周波数設定値ＳＧ３を選択し、音声データが入力されている期間は、平均周波数設定値ＳＧ４を選択する。
【００６８】
周波数同期部１５´は、周波数比較部１５１´とクロック生成部１５２´とを有している。周波数比較部１５１´は、セレクタ１４´が選択する仮録音平均周波数設定値ＳＧ３、あるいは録音平均周波数設定値ＳＧ４とクロック生成部１５２´が生成する読み込みクロックＣＬＫ´との周波数差に基づいて周波数制御信号ｆ＿ＡＤＪ´を出力する。周波数制御信号ｆ＿ＡＤＪ´は、例えば仮録音平均周波数設定値ＳＧ３、あるいは録音平均周波数設定値ＳＧ４と読み出しクロックＣＬＫとの周波数差に基づいてデューティー比が変化するパルス信号である。また、仮録音平均周波数設定値ＳＧ３、又は、録音平均周波数設定値ＳＧ４よりも読み出しクロックＣＬＫの周波数が速い場合は、パルスのハイレベル期間を短く（デューティー比を低く）し、遅い場合は、パルスのハイレベル期間を長く（デューティー比を大きく）する。
【００６９】
クロック生成部１５２´は、例えば周波数制御信号ｆ＿ＡＤＪ´のデューティー比に基づいて周波数が変化する読み込みクロックＣＬＫ´を生成するブロックである。本実施の形態では、クロック生成部１５２´は、ローパスフィルタ（ＬＰＦ）１５３´と電圧制御発振器（ＶＣＯ）１５４´とを有している。クロック生成部１５２´は、このＬＰＦ１５３´で周波数制御信号ｆ＿ＡＤＪ´を平滑化した直流電圧を生成し、この直流電圧の大きさに基づいた周波数の読み出しクロックＣＬＫ´をＶＣＯ１５４が生成する。
【００７０】
ＥＰＢ１６´は、ＦＩＦＯ１８´から音声データを読み込み、プロトコル変換部１１を介してＰＣにその音声データを送信する。ＦＩＦＯ１８´は、読み込みクロックＣＬＫに同期して動作する先入れ先出し型のメモリであって、音声データを一時的に保持するブロックである。シリアル／パラレル変換部１９´は、ＡＤＣ３０´から受信するシリアルデータをパラレルデータに変換してＦＩＦＯ１８´に送信する。
【００７１】
実施の形態２にかかるデータ同期装置１０´の動作について詳細に説明する。データ同期装置１０´の再生動作については実施の形態１と同様なため、再生動作の説明は省略し、ここでは録音動作について説明する。ＰＣとＵＳＢ機器１とで通信されるフレームの流れと読み込みクロックＣＬＫ´の周波数の時間変化を示す図８を参照して録音動作について説明する。
【００７２】
図８に示すように、時刻ｔ０でＰＣとＵＳＢ機器２とが接続されると、データを含まないフレームの通信が数フレーム分行われる。その後、第１の期間（時刻ｔ１から時刻ｔ２の期間）でＥＰＣ１２を指定した機器認証用制御データＲＤの通信が行われ、ＵＳＢ機器２の認証が行われる。このとき、ＵＳＢ機器２は、機器が対応できる録音サンプリング周波数の情報をホスト側に送信する。また、読み出しクロックＣＬＫの周波数は、初期周波数制御信号ｆ＿ＡＤＪに対応した周波数となる。
【００７３】
続いて、第２の期間（時刻ｔ２から時刻ｔ３の期間）でＰＣからＵＳＢ機器２にＥＰＣ１２を指定した機器設定用制御データＣＤが送信され、ＵＳＢ機器１の制御設定が行われる。なお、本実施の形態では、この期間の開始タイミングで仮録音平均周波数設定値ＳＧ３がホストからデバイスに送信される。これによって、ＵＳＢ機器２は読み込みクロックＣＬＫ´の周波数を仮録音平均周波数設定値ＳＧ４に同期した周波数に制御する。
【００７４】
時刻ｔ３でＵＳＢ機器２の制御設定が完了すると、その後、ＵＳＢ機器２からＰＣへの音声データの通信が開始される。このとき、データ同期装置１０´のセレクタ１４´は、選択する信号を仮録音平均周波数設定値ＳＧ３から録音平均周波数設定値ＧＳ４に切り換える。また、読み込みクロックＣＬＫ´の周波数の制御は、時刻ｔ２から時刻ｔ３の間で仮録音平均周波数設定値ＳＧ３に同期した周波数となるように制御された周波数を初期値として、第３の期間（時刻ｔ３以降）で録音平均周波数設定値ＳＧ４に基づいた周波数の制御を行う。時刻ｔ３以降では、録音平均周波数設定値ＧＳ４に同期するように読み込みクロックＣＬＫ´の周波数が制御される。なお、時刻ｔ３以降では、読み込みクロックＣＬＫ´は、ＦＩＦＯ１８´がオーバーフロー、あるいはアンダーフローするのを防ぐために、ＵＳＢ機器２からＰＣに送信される音声データのサンプリング周波数を示す第２の周波数設定値（例えば、ＦＩＦＯ１８´のメモリ残量から算出される周波数設定値）に基づいて周波数を微調整することが好ましい。
【００７５】
上記説明より、実施の形態２にかかるデータ同期装置１０´によれば、音声データの通信を開始する前に、録音平均周波数設定値ＳＧ３に基づいて読み込みクロックＣＬＫ´を制御することで、音声データの開始後は送信する音声データより抽出される録音平均周波数設定値ＳＧ４に同期した読み込みクロックＣＬＫ´の周波数で音声の録音と音声データの通信が可能である。
【００７６】
なお、本発明は上記実施の形態に限られたものでなく、適宜変更することが可能である。例えば、上記実施の形態ではＵＳＢ規格に基づく通信について説明したが、ＵＳＢ規格に限らず、アナログデータを所定のサンプリング周波数でデジタル化をしたデータを通信する場合であれば構成を適宜変更して適用することが可能である。
【００７７】
上記実施の形態では、仮平均周波数設定値ＳＧ１、平均周波数設定値ＳＧ２をパルス信号とし、周波数比較部１４で読み出しクロックＣＬＫとパルス信号との周波数を比較する例について説明した。この構成は、例えば仮平均周波数設定値ＳＧ１と平均周波数設定値ＳＧ２とをそれぞれ音声データのデータ量をデータのバイト数で表したデータ量Ａ、Ｂとし、読み出しクロックＣＬＫの周波数に対応した読み出しデータ量をバイト数で表したデータ量Ｃを算出して、音声データの入力がある期間は周波数比較部１４でデータ量Ａとデータ量Ｃとを比較し、音声データの入力がある期間は周波数比較部１４でデータ量Ｂとデータ量Ｃとを比較し、その差分に基づいて読み出しクロックＣＬＫの周波数を調整する構成とすることも可能である。
【図面の簡単な説明】
【００７８】
【図１】実施の形態１にかかるＵＳＢ機器のブロック図である。
【図２】ＵＳＢバス上のパケット通信状況の一例を示す図である。
【図３】ＵＳＢ規格のパケットデータフォーマットの一例を示す図である。
【図４】実施の形態１にかかるデータ同期装置の動作のフローチャートを示す図である。
【図５】実施の形態１にかかるデータ同期装置の仮サンプリング周波数に基づく読み出しクロックの周波数を決定する動作のフローチャートを示す図である。
【図６】実施の形態１にかかるデータ同期装置に入力されるデータの流れと読み出しクロックの周波数の変化を示す図である。
【図７】実施の形態２にかかるＵＳＢ機器のブロック図である。
【図８】実施の形態２にかかるデータ同期装置から出力するデータの流れと読み出しクロックの周波数の変化を示す図である。
【図９】一般的なＵＳＢ機器を用いたシステムの一例を示す図である。
【図１０】従来のデータ同期装置のブロック図である。
【図１１】従来のデータ同期装置に入力されるデータの流れと読み出しクロックの周波数の変化を示す図である。
【符号の説明】
【００７９】
１０    データ同期装置
１１    プロトコル変換部
１２    エンドポイントＣ
１３    仮平均周波数設定値格納部
１３´    仮録音平均周波数設定値格納部
１４、１４´    セレクタ
１５、１５´    周波数同期部
１５１、１５１´    周波数比較部
１５２、１５２´    クロック生成部
１５３、１５３´    ＬＰＦ
１５４、１５４´    ＶＣＯ
１６    エンドポイントＡ
１６´    エンドポイントＢ
１７    平均周波数抽出部
１７´    録音平均周波数抽出部
１８、１８´    ＦＩＦＯ
１９    パラレル／シリアル変換部
１９´    シリアル／パラレル変換部
２０、２０´    マイコン
３０    ＤＡＣ
３０´    ＡＤＣ
４０、４０´    アンプ
５０    スピーカー
５０´    マイク
１０１    ＰＣ
１０２    ＵＳＢケーブル
１０３    ヘッドセット（ＵＳＢ機器）
１００    データ同期装置
１１１    ＦＩＦＯ
１１２    バッファ
１１３    ＣＰＵ
１１４    ＲＯＭ
１１５    １／Ｎデバイダ部
１１６    外部固定発振器
１２１    レジスタ群
１２２    ソフトフィルタ部
１２３    デバイダ制御部
ＡＤ    音声データ
ＣＤ    機器設定用制御データ
ＲＤ    機器認証用制御データ
ＳＧ１    仮平均周波数設定値
ＳＧ２    平均周波数設定値
ＳＧ３    仮録音平均周波数設定値
ＳＧ４    録音平均周波数設定値
【図１】
2007114840.tif 000003
【図２】
2007114840.tif 000004
【図３】
2007114840.tif 000005
【図４】
2007114840.tif 000006
【図５】
2007114840.tif 000007
【図６】
2007114840.tif 000008
【図７】
2007114840.tif 000009
【図８】
2007114840.tif 000010
【図９】
2007114840.tif 000011
【図１０】
2007114840.tif 000012
【図１１】
2007114840.tif 000013