(57)【要約】  第１デバイスと少なくとも１つの第２デバイスとを同期させる方法及びシステムであって、それぞれがローカルオシレータとマイクロコントローラとを有し、前記第２デバイスは、通信バスを介し前記第１デバイスとデータ通信する。当該方法は、前記第１デバイスが、複数の信号を前記第２デバイスに送信するステップと、前記第２デバイスが、前記複数の信号を用いてそれのローカルオシレータの周波数を測定するステップと、前記第１デバイスが、同期されることが要求される周波数を示す信号を前記第２デバイスに送信するステップと、前記第２デバイスが、それのマイクロコントローラを使用して、それのマイクロコントローラの周波数を用いて前記要求される周波数によりローカルクロック信号を生成するよう自らを設定するステップとを有する。
2012500430.tif 000002
【特許請求の範囲】
【請求項１】
第１デバイスと少なくとも１つの第２デバイスとを同期させる方法であって、それぞれがローカルオシレータとマイクロコントローラとを有し、前記第２デバイスは、通信バスを介し前記第１デバイスとデータ通信し、
当該方法は、
前記第１デバイスが、複数の信号を前記第２デバイスに送信するステップと、
前記第２デバイスが、前記複数の信号を用いてそれのローカルオシレータの周波数を測定するステップと、
前記第１デバイスが、同期されることが要求される周波数を示す信号を前記第２デバイスに送信するステップと、
前記第２デバイスが、それのマイクロコントローラを使用して、それのマイクロコントローラの周波数を用いて前記要求される周波数によりローカルクロック信号を生成するよう自らを設定するステップと、
を有する方法。
【請求項２】
ローカルクロックと、カウンタ／タイマー機能を有するマイクロコントローラと、オシレータとを有するＵＳＢデバイスであって、前記マイクロコントローラは、複数のクロックキャリア信号の実質的にすべてに対して同期リファレンス信号として使用されるよう構成される出力信号を生成することによって、所定のソフトウェアインタラプトに応答するよう構成され、前記ＵＳＢデバイスはＵＳＢホストコントローラにアタッチ可能であるＵＳＢデバイスと、
ＵＳＢトラフィックを観察し、ＵＳＢデータストリームから前記ホストコントローラにより送信され、分散されたクロック周波数と位相とに関する情報を含むクロックキャリア信号を有する定期的な信号を復号化し、復号化されたキャリア信号を出力するよう構成される回路と、
前記復号化されたキャリア信号を受信し、所定のデータパケットを受信すると、前記所定のソフトウェアインタラプトを生成し、前記ソフトウェアインタラプトを前記マイクロコントローラにわたすよう構成される回路と、
前記ローカルオシレータの時間領域における前記同期リファレンス信号の受信間のインターバルを測定する回路であって、前記測定が前記基地のキャリア信号周波数に関して前記ローカルオシレータの周波数に関する情報を提供する回路と、
を有する装置であって、
当該装置は、要求される同期周波数と前記ローカルオシレータの周波数とに基づき第２カウンタ／タイマー回路の設定を計算することによって、前記同期周波数に関する情報を含む前記ＵＳＢホストコントローラからのメッセージに応答するよう構成され、
前記ＵＳＢデバイスは、カウンタ機能のケースでは終了カウントイベントに達すると、またはタイマー機能のケースではタイムアウトイベントに達すると、出力信号を生成するため、前記マイクロコントローラ内の前記カウンタ／タイマー回路の設定をセットし、
前記第２カウンタ／タイマーは、前記オシレータによりクロック処理され、
前記第２カウンタ／タイマーが前記終了カウントまたは前記タイムアウトイベントに達すると、前記カウンタ／タイマーの設定をリセットする装置。
【請求項３】
ＵＳＢホストコントローラにアタッチされたローカルオシレータとマイクロコントローラとを有するＵＳＢデバイスのローカルクロックを同期させる方法であって、前記マイクロコントローラは、カウンタ／タイマー機能を有し、
当該方法は、
前記ホストコントローラが、クロックキャリア信号を構成する定期的な信号を前記ＵＳＢデバイスに送信するステップと、
ＵＳＢトラフィックを観察し、ＵＳＢデータストリームから分散されたクロック周波数と位相とに関する情報を含む前記定期的な信号を復号化し、復号化されたキャリア信号を出力するステップと、
前記復号化されたキャリア信号を受信し、所定のデータパケットの受信に応答してインタラプトを生成し、前記ソフトウェアインタラプトを前記ＵＳＢマイクロコントローラにわたすステップと、
前記ＵＳＢマイクロコントローラが、前記クロックキャリア信号の実質的にすべてについて同期リファレンス信号として用いられるよう構成される出力信号を生成することによって、前記ソフトウェアインタラプトに応答するステップと、
前記既知のキャリア信号周波数に関して前記ローカルオシレータの周波数に関する情報を提供するため、前記ローカルオシレータの時間領域における前記同期リファレンス信号の受信間のインターバルを測定するステップと、
前記ＵＳＢホストコントローラが、前記ＵＳＢデバイスに前記要求される同期周波数に関する情報を含むメッセージを送信するステップと、
前記同期周波数と前記ローカルオシレータの周波数とを用いて第２カウンタ／タイマー回路の設定を計算するステップと、
前記ＵＳＢデバイスが、カウンタ機能のケースにおいて終了カウントイベントに達すると、またはタイマー機能のケースにおいてタイムアウトイベントに達すると、出力信号を生成するため、前記マイクロコントローラ内の前記カウンタ／タイマー回路の設定をセットするステップと、
前記ローカルオシレータによりクロック処理される前記第２カウンタ／タイマーが前記終了カウント又は前記タイムアウトイベントに達すると、前記カウンタ／タイマーの設定をリセットするステップと、
を有する方法。
【請求項４】
ローカルクロック位相同期の精度を向上させる方法であって、
通信バスにアタッチされたデバイスのローカルクロックを同調するステップと、
前記通信バスのバストラフィックを所定の定期的なキャリア信号について復号化するステップと、
前記定期的なキャリア信号のそれぞれの受信時において、前記ローカルクロックのローカルクロック信号の位相を決定するステップと、
前記定期的なキャリア信号に関して前記ローカルクロック信号の真の位相を統計的方法により決定するステップと、
前記ローカルクロックが同期されるように、前記ローカルクロックの位相を調整するステップと、
を有する方法。
【請求項５】
通信バスにアタッチされた複数のデバイスの各自のローカルクロックを同期させる精度を向上させる方法であって、
前記ローカルクロックを同調するステップと、
前記デバイスのそれぞれが、所定の定期的なキャリア信号について前記通信バスのバストラフィックを復号化するステップと、
前記デバイスのそれぞれが、前記定期的なキャリア信号のそれぞれの受信時にそれのローカルクロックのローカルクロック信号の位相を決定するステップと、
前記デバイスのそれぞれが、前記定期的なキャリア信号に関してそれのローカルクロック信号の真の位相を統計的な方法により決定するステップと、
前記デバイスのそれぞれが、前記ローカルクロックが同期されるように、それのローカルクロックの位相を調整するステップと、
を有する方法。
【請求項６】
第１デバイスと少なくとも１つの第２デバイスとを同期させる方法であって、前記第１デバイスはローカルオシレータを有し、前記第２デバイスは通信バスを介し前記第１デバイスとデータ通信し、
当該方法は、
前記第１デバイスが、前記第１デバイスの時間領域を示す複数のキャリア信号を前記第２デバイスに送信するステップと、
前記第２デバイスが、前記複数のキャリア信号を用いてそれのローカルオシレータの周波数を測定するステップと、
前記第１デバイスが、同期されることが要求される周波数を示す信号を前記第２デバイスに送信するステップと、
前記第２デバイスが、前記第１デバイスの時間領域に同期されるローカルクロック信号を生成するステップと、
を有する方法。
【請求項７】
前記第１デバイスと前記第２デバイスとは、ＵＳＢデバイスであり、
前記通信バスは、ＵＳＢである、請求項６記載の方法。
【請求項８】
前記第１デバイスと前記第２デバイスとの一方は、ＵＳＢデバイスであり、
前記第１デバイスと前記第２デバイスとの他方は、ＵＳＢホストコントローラである、請求項６又は７記載の方法。
【請求項９】
前記複数のキャリア信号は、定期的である、請求項６乃至８何れか一項記載の方法。
【請求項１０】
前記複数のキャリア信号は、非定期的であり、既知の時間に送信される、請求項６乃至８何れか一項記載の方法。
【請求項１１】
前記各自の既知の時間を前記第２デバイスに送信するステップをさらに有する、請求項１０記載の方法。
【請求項１２】
前記各自の既知の時間を前記第２デバイスに前記キャリア信号と同じデータパケットにより送信するステップをさらに有する、請求項１０記載の方法。
【請求項１３】
ＵＳＢ  ＳＯＦ（Ｓｔａｒｔ  Ｏｆ  Ｆｒａｍｅ）境界の近くで前記複数のキャリア信号を送信するステップをさらに有する、請求項６乃至１２何れか一項記載の方法。
【請求項１４】
協調されたユニバーサル時間（ＵＴＣ）の１秒の境界の近くで前記複数のキャリア信号を送信するステップをさらに有する、請求項６乃至１２何れか一項記載の方法。
【請求項１５】
ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）時間の１秒の境界の近くで前記複数のキャリア信号を送信するステップをさらに有する、請求項６乃至１２何れか一項記載の方法。
【請求項１６】
位相同期ループ（ＰＬＬ）アーキテクチャにより前記ローカルクロック信号を生成するステップをさらに有する、請求項６乃至１５何れか一項記載の方法。
【請求項１７】
前記ローカルオシレータは、フリーランニングである、請求項６乃至１５何れか一項記載の方法。
【請求項１８】
プログラマブルプリスケーラとプログラマブルカウンタ機能とを有するプログラマブルカウンタ／タイマーにより前記ローカルクロック信号を生成するステップをさらに有し、
前記カウンタ／タイマーは、前記ローカルオシレータからクロック処理される、請求項１７記載の方法。
【請求項１９】
プログラマブルカウンタ／タイマーにより前記ローカルクロック信号を生成するステップをさらに有する、請求項１７記載の方法。
【請求項２０】
前記プログラマブルカウンタ／タイマーは、プログラマブルプリスケーラと、プログラマブルカウンタ機能と、前記入力されたローカルオシレータの位相をシフトする機構とを有し、
前記カウンタ／タイマーは、前記ローカルオシレータからクロック処理される、請求項１９記載の方法。
【請求項２１】
前記カウンタ／タイマーは、マイクロコントローラの一部である、請求項１９又は２０記載の方法。
【請求項２２】
前記カウンタ／タイマーは、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）デバイスの一部である、請求項１９又は２０記載の方法。
【請求項２３】
前記カウンタ／タイマーは、プログラマブルロジックデバイスの一部である、請求項１９又は２０記載の方法。
【請求項２４】
前記カウンタ／タイマーは、複合半導体デバイスの一部である、請求項１９又は２０記載の方法。
【請求項２５】
前記通信バスは、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスである、請求項６乃至２４何れか一項記載の方法。
【請求項２６】
前記通信バスは、ＰＣＩ−Ｅｘｐｒｅｓｓバスである、請求項６乃至２４何れか一項記載の方法。
【請求項２７】
前記通信バスは、イーサネットバスである、請求項６乃至２４何れか一項記載の方法。
【請求項２８】
前記通信バスは、Ｆｉｒｅｗｉｒｅバスである、請求項６乃至２４何れか一項記載の方法。
【請求項２９】
前記通信バスは、無線バスである、請求項６乃至２４何れか一項記載の方法。
【請求項３０】
前記複数のキャリア信号は、定期的であり、
当該方法はさらに、電圧制御水晶オシレータ（ＶＣＸＯ）又は位相同期ループ（ＰＬＬ）アーキテクチャによって前記ローカルクロック信号を生成するステップを有する、請求項２５乃至２９何れか一項記載の方法。
【請求項３１】
ローカルオシレータと、マイクロコントローラと、カウンタ／タイマーとを有し、複数のバスにより導出されたタイムスタンプされたクロックキャリア信号の実質的にすべてに応答するよう構成されるＵＳＢデバイスと、
ＵＳＢトラフィックを観察し、ＵＳＢデータストリームからＵＳＢホストコントローラにより送信され、分散されたクロック周波数と位相とに関する情報を含むクロックキャリア信号を有する信号を復号化し、復号化されたキャリア信号を出力するよう構成される回路と、
前記ローカルオシレータの時間領域における前記クロックキャリア信号の受信間のインターバルを測定するよう構成される第１カウンタ／タイマーであって、前記測定は前記既知のキャリア信号周波数に関する前記ローカルオシレータの周波数に関する情報を提供する第１カウンタ／タイマーと、
を有し、
当該装置は、要求される同期周波数と前記ローカルオシレータの周波数とに基づき第２カウンタ／タイマーの設定を計算することによって、前記要求される周波数に関する情報を含む前記ＵＳＢホストコントローラからのメッセージに応答するよう構成され、
前記ＵＳＢデバイスは、終了カウントイベント又はタイムアウトイベントからなる出力条件に達すると、出力信号を生成するよう前記ＵＳＢデバイスのカウンタ／タイマーを設定し、
前記第２カウンタ／タイマーは、前記出力条件に達すると、前記ローカルオシレータの周波数に関する更新された情報に基づき新たな設定にリセットし、再びイネーブルとされるように設定される装置。
【請求項３２】
ＵＳＢホストコントローラにアタッチされたＵＳＢデバイスのローカルクロックを同期させる方法であって、
前記ホストコントローラが、前記ＵＳＢホストコントローラの時間領域における既知の時間のクロックキャリア信号から構成される複数の信号を前記ＵＳＢデバイスに送信するステップと、
前記ＵＳＢデバイスによりＵＳＢトラフィックを観察し、前記トラフィックから分散されたクロック周波数と位相とに関する情報を含む前記複数の信号を復号化し、復号化されたキャリア信号を出力するステップと、
前記ＵＳＢホストコントローラの時間領域に関する情報を提供するため、前記ローカルクロックの時間領域における前記復号化されたキャリア信号の受信間のインターバルを測定するステップと、
前記複数の復号化されたキャリア信号に関して前記ローカルクロックの位相を決定するステップと、
前記ＵＳＢホストコントローラが、前記クロックキャリア信号の実質的にすべての各自の既知の時間を前記ＵＳＢデバイスに送信するステップと、
前記ＵＳＢホストコントローラが、前記要求された同期周波数と位相とを示すメッセージを前記ＵＳＢデバイスに送信するステップと、
前記ローカルクロックが前記ＵＳＢホストコントローラの時間の概念で同相に同調されるように、前記ローカルクロックの周波数と位相とを制御するステップと、
を有する方法。
【請求項３３】
前記複数の信号は、定期的である、請求項３２記載の方法。
【請求項３４】
前記定期的な信号は、ＵＳＢ  ＳＯＦ信号である、請求項３２記載の方法。
【請求項３５】
前記各自の既知の時間を前記ＵＳＢデバイスに前記複数の信号と同じデータパケットにより送信するステップをさらに有する、請求項３４記載の方法。
【請求項３６】
協調されたユニバーサル時間（ＵＴＣ）又はＧＰＳ時間の１秒の境界の近くで前記複数のキャリア信号を送信するステップをさらに有する、請求項３２乃至３５何れか一項記載の方法。
【請求項３７】
前記ローカルクロックは、位相同期ループ（ＰＬＬアーキテクチャ又は電圧制御水晶オシレータ（ＶＣＸＯ）を有する、請求項３２乃至３６何れか一項記載の方法。
【請求項３８】
ＦＰＧＡデバイスによって前記ローカルクロックを生成するステップをさらに有する、請求項３２乃至３７何れか一項記載の方法。
【請求項３９】
プログラマブルロジックデバイスによって前記ローカルクロックを生成するステップをさらに有する、請求項３２乃至３６何れか一項記載の方法。
【請求項４０】
前記カウンタ／タイマーは、プログラマブルプリスケーラと、プログラマブルカウンタ機能とを有し、
前記カウンタ／タイマーは、前記ローカルオシレータからクロック処理される、請求項３２乃至３６何れか一項記載の方法。
【請求項４１】
前記プログラマブルカウンタ／タイマーはさらに、前記入力されたローカルオシレータの位相をシフトする機構を有する、請求項４０記載の方法。
【請求項４２】
前記カウンタ／タイマーは、マイクロコントローラの一部である、請求項４０又は４１記載の方法。
【請求項４３】
アタッチされるＵＳＢホストコントローラの時間領域とＵＳＢデバイスのローカルクロックとを同期させる方法であって、前記ＵＳＢデバイスは、ローカルオシレータとカウンタ／タイマー機能とを有し、
当該方法は、
前記ホストコントローラが、前記ＵＳＢホストコントローラの時間領域において既知の周波数のクロックキャリア信号を構成する複数の信号を前記ＵＳＢデバイスに送信するステップと、
前記ＵＳＢデバイスによりＵＳＢトラフィックを観察し、前記ＵＳＢトラフィックから分散されたクロック周波数と位相とに関する情報を含む前記複数の信号を復号化し、それから復号化されたキャリア信号を生成するステップと、
前記ローカルオシレータの時間領域における第１カウンタ／タイマー機能により前記復号化されたキャリア信号の受信間のインターバルを測定し、前記インターバルから前記既知のキャリア信号インターバルに関して前記ローカルオシレータの周波数を決定するステップと、
前記複数の復号化されたキャリア信号に関して前記ローカルオシレータの位相を決定するステップと、
前記ＵＳＢホストコントローラが、前記要求されたローカルクロック周波数に関する情報を含むメッセージを前記ＵＳＢデバイスに送信するステップと、
前記ローカルオシレータの要求されたローカルクロック周波数と位相とを用いて第２カウンタ／タイマー機能の設定を計算するステップと、
前記ＵＳＢデバイスの時間領域における所定の時間にローカルクロック移行信号を生成するよう前記第２カウンタ／タイマー機能を設定するステップと、
を有し、
前記第２カウンタ／タイマー機能は、前記ローカルオシレータによりクロック処理され、
前記ローカルクロック移行信号は、前記ローカルクロック出力を切り替える方法。
【請求項４４】
前記ローカルオシレータは、フリーランニングである、請求項４３記載の方法。
【請求項４５】
前記各自の複数の信号の既知の時間を前記ＵＳＢデバイスに前記複数の信号と同じデータパケットにより送信するステップをさらに有する、請求項４４記載の方法。
【請求項４６】
前記第１カウンタ／タイマーからの時系列な読み込みは、前記復号化されたキャリア信号のそれぞれの受信時における前記ローカルオシレータの位相に関する情報を含む、請求項４５記載の方法。
【請求項４７】
前記第２カウンタ／タイマーを設定するステップは、次に要求されるローカルクロック移行前に、前記ローカルオシレータのサイクル数を表すスタート値をセットすることを含む、請求項４６記載の方法。
【請求項４８】
前記第２カウンタ／タイマーがカウンタ機能のケースにおいて終了カウントに達すると、前記ローカルクロック移行信号を生成するステップをさらに有する、請求項４７記載の方法。
【請求項４９】
前記２カウンタ／タイマーがタイマー機能のケースにおいてタイムアウト状態に達すると、前記ローカルクロック移行信号を生成するステップをさらに有する、請求項４７記載の方法。
【請求項５０】
ローカルオシレータの周波数と位相とを繰り返し測定するステップをさらに有する、請求項４３乃至４９何れか一項記載の方法。
【請求項５１】
前記ローカルオシレータの周波数と位相との繰り返しの測定を統計的に解析し、前記測定の精度を向上させるステップをさらに有する、請求項５０記載の方法。
【請求項５２】
前記ローカルクロック信号の同期を維持するように前記第２カウンタ／タイマーの設定を継続的に更新するステップをさらに有する、請求項５０又は５１記載の方法。
【請求項５３】
前記第１カウンタ／タイマー機能は、マイクロコントローラ内に含まれる、請求項４３乃至５２何れか一項記載の方法。
【請求項５４】
前記第１カウンタ／タイマー機能は、ＦＰＧＡデバイス内に含まれる、請求項４３乃至５２何れか一項記載の方法。
【請求項５５】
前記第１カウンタ／タイマー機能は、プログラマブルロジックデバイス内に含まれる、請求項４３乃至５２何れか一項記載の方法。
【請求項５６】
前記第１カウンタ／タイマーを読み込み、前記復号化されたキャリア信号の受信に応答して前記第１カウンタ／タイマーをリセットするステップをさらに有する、請求項４３乃至５５何れか一項記載の方法。
【請求項５７】
前記複数の信号は、定期的である、請求項４３乃至５６何れか一項記載の方法。
【請求項５８】
前記複数の信号は、ＵＳＢ  ＳＯＦ信号である、請求項５７記載の方法。
【請求項５９】
前記複数の信号は、非定期的であり、
当該方法はさらに、前記ＵＳＢホストコントローラの時間領域の既知の時間に前記信号を生成するステップを有する、請求項４３乃至５６何れか一項記載の方法。
【請求項６０】
ＵＳＢ  ＳＯＦ信号の近くで前記複数の信号を送信するステップをさらに有する、請求項５９記載の方法。
【請求項６１】
協調されたユニバーサル時間（ＵＴＣ）の１秒の境界又はＧＰＳ時間の１秒の境界の近くで前記複数のキャリア信号を送信するステップをさらに有する、請求項４３乃至６０何れか一項記載の方法。
【請求項６２】
通信バスにアタッチされ、ローカルオシレータを有するデバイスのローカルオシレータの周波数と位相とを決定する方法であって、
前記デバイスが、前記通信バスのバストラフィックをモニタリングし、前記バストラフィックから前記バスにアタッチされた他の複数のデバイスの少なくとも１つにより生成された複数の時間キャリア信号を復号化するステップと、
前記デバイスが、前記既知のキャリア信号インターバルに関して前記ローカルオシレータの周波数に関する情報を提供するため、前記ローカルオシレータの時間境域の前記復号化されたキャリア信号の受信間のインターバルを測定するステップと、
前記複数の復号化されたキャリア信号に関して前記ローカルオシレータの位相を決定するステップと、
を有する方法。
【請求項６３】
前記複数のキャリア信号は、前記第２デバイスの時間領域においてタイムスタンプされる、請求項６２記載の方法。
【請求項６４】
前記複数のキャリア信号は、非定期的である、請求項６２記載の方法。
【請求項６５】
前記タイムスタンプされたキャリア信号の受信間の複数のインターバルは、前記他のデバイスの時間領域の前記ローカルオシレータの周波数の複数の測定を提供する、請求項６３又は６４記載の方法。
【請求項６６】
前記インターバルの時系列は、前記復号化されたキャリア信号のそれぞれの受信時の前記ローカルオシレータの位相を示す、請求項６５記載の方法。
【請求項６７】
前記インターバルの時系列は、前記他のデバイスの時間領域の前記ローカルオシレータによる時間の進行を示す、請求項６５記載の方法。
【請求項６８】
前記ローカルオシレータの周波数の決定の精度を向上させるため、前記他のデバイスの時間領域における前記複数の測定を統計的に解析するステップをさらに有する、請求項６５記載の方法。
【請求項６９】
前記ローカルオシレータの時間領域の前記復号化されたキャリア信号の受信間のインターバルを測定するステップは、前記タイムスタンプされたキャリア信号の受信によってゲート処理されるウィンドウ内の前記ローカルオシレータの移行回数をカウントすることを含む、請求項６２乃至６８何れか一項記載の方法。
【請求項７０】
前記他のデバイスの１つは、バスマスタデバイスである、請求項６２乃至６９何れか一項記載の方法。
【請求項７１】
前記他のデバイスは、ピアデバイスである、請求項６２乃至６９何れか一項記載の方法。
【請求項７２】
複数の第２クロックの少なくとも１つの時間領域における移行の時間において第１フリーランニングクロックの時間を予測する方法であって、
前記複数の第２クロックの少なくとも１つの時間領域における前記第１クロックのローカル時間の複数の測定を含むデータセットを読み込むステップと、
前記第１クロックの時間領域と前記複数の第２時間領域のそれぞれとの間の関係を計算するステップと、
前記第１クロックの時間領域と前記複数の第２時間領域の少なくとも１つのとの間の時間について順方向に関係を推定するステップと、
前記複数の時間領域の間の関係に基づき移行の時間における前記第１クロックのローカル時間を決定するステップと、
を有する方法。
【請求項７３】
前記複数の時間領域の間の複数の関係の統計解析によって、前記第１クロックのローカル時間の決定を向上させるステップをさらに有する、請求項７２記載の方法。
【請求項７４】
前記推定は、線形、多項式、指数外挿技術又はそれらの組み合わせからなる、請求項７２記載の方法。
【請求項７５】
前記推定は、カルマン又はＧ−Ｈフィルタリング技術からなる、請求項７２記載の方法。
【請求項７６】
複数のリファレンスクロックの少なくとも１つの時間領域における移行の時間の複数のフリーランニングクロックの時間を予測する方法であって、
前記複数のリファレンスクロックの少なくとも１つの時間領域における前記複数のフリーランニングクロックのローカル時間の複数の測定を含むデータセットを読み込むステップと、
前記フリーランニングクロックのそれぞれの時間領域と前記複数のリファレンス時間領域のそれぞれとの間の関係を計算するステップと、
前記フリーランニングクロックのそれぞれの時間領域と前記複数のリファレンス時間領域の少なくとも１つとの間の時間について順方向に関係を推定するステップと、
前記複数の時間領域の間の前記複数の関係に基づき移行の時間に前記フリーランニングクロックのそれぞれのローカル時間を決定するステップと、
を有する方法。
【請求項７７】
前記複数の時間領域の間の複数の関係の統計解析によって、前記フリーランニングクロックのローカル時間の決定を向上させるステップをさらに有する、請求項７６記載の方法。
【請求項７８】
前記推定は、線形、多項式、指数外挿技術又はそれらの組み合わせからなる、請求項７６記載の方法。
【請求項７９】
前記推定は、カルマン又はＧ−Ｈフィルタリング技術からなる、請求項７６記載の方法。
【請求項８０】
ローカルオシレータからタイミング決定されるイベントを制御する方法であって、
前記イベントが前記ローカルオシレータの時間領域において生成される第１時間を示すデータを受信するステップと、
前記ローカルオシレータからクロック信号を生成するステップと、
前記第１時間と現在の時間との間のインターバルを示すデータによってカウンタ／タイマー機能をリセット及び設定するステップと、
カウンタ機能のケースにおいて終了カウントに達すると、又はタイマー機能のケースにおいてタイムアウトに達すると、前記イベントを生成するステップと、
前記ローカルオシレータにより前記カウンタ／タイマーをクロック処理するステップと、
を有する方法。
【請求項８１】
前記クロック信号は、前記ローカルオシレータと同じ周波数であり、同相である、請求項８０記載の方法。
【請求項８２】
前記クロック信号は、前記ローカルオシレータと同相で前記周波数の倍数であり、
前記クロック信号は、前記ローカルオシレータより大きなクロック処理解像度を提供する、請求項８０記載の方法。
【請求項８３】
前記ローカルオシレータは、フリーランニングである、請求項８０乃至８２何れか一項記載の方法。
【請求項８４】
前記ローカルオシレータは、電圧制御水晶オシレータ（ＶＣＸＯ）又は位相同期ループ（ＰＬＬ）であり、要求される周波数に固定される、請求項８０乃至８２何れか一項記載の方法。
【請求項８５】
ローカルオシレータからローカルクロック信号を生成する方法であって、
ｉ）前記ローカルオシレータの時間領域において前記ローカルクロックの移行が生成される第１時間を示すデーらを受信するステップと、
ｉｉ）前記ローカルオシレータからクロック信号を生成するステップと、
ｉｉｉ）現在の時間と前記第１時間との間のインターバルを示すデータによりカウンタ／タイマー機能をリセット及び設定するステップと、
ｉｖ）カウンタ機能のケースでは終了カウントイベントに達すると、又はタイマー機能のケースではタイムアウトイベントに達すると、前記ローカルクロックの移行を生成するステップと、
ｖ）前記ローカルクロックによって前記カウンタ／タイマーをクロック処理するステップと、
ｖｉ）前記ローカルクロックの移行を１回以上生成すると、前記ステップｉ）〜ｖ）を繰り返すステップと、
を有する方法。
【請求項８６】
前記クロック信号は、前記ローカルオシレータと同一の周波数と位相である、請求項８５記載の方法。
【請求項８７】
前記クロック信号は、前記ローカルオシレータと同一の位相であり、ある倍数の周波数であり、
前記クロック信号は、前記ローカルオシレータより大きなクロック処理解像度を提供する、請求項８５記載の方法。
【請求項８８】
前記ローカルオシレータは、フリーランニングである、請求項８５乃至８７何れか一項記載の方法。
【請求項８９】
前記ローカルオシレータは、電圧制御水晶オシレータ（ＶＣＸＯ）又は位相同期ループ（ＰＬＬ）であり、要求される周波数に固定される、請求項８５乃至８７何れか一項記載の方法。
【請求項９０】
前記ローカルクロック信号の周波数と位相とのより細かい制御を提供するため、複数の設定の間の前記カウンタタイマーの設定を調整又はディザリングするステップをさらに有する、請求項８５乃至８９何れか一項記載の方法。
【請求項９１】
共通の通信バスにアタッチされる複数の非同期デバイスによって取得されるデータを同期させる方法であって、
前記複数のデバイスの非同期の時間領域の間のマッピングを決定するステップと、
各デバイスの時間領域において取得される前記データをタイムスタンプするステップと、
前記タイムスタンプされたデータを中央位置に送信するステップと、
前記複数のデバイスからのデータを共通の時間領域において時間調整するステップと、
を有し、
前記決定するステップは、請求項６２乃至７１何れか一項記載の方法により前記デバイスのそれぞれのローカルオシレータの周波数と位相とを決定するステップと、
請求項７２乃至７９何れか一項記載の方法により複数の第２ローカルオシレータの少なくとも１つの時間領域における以降の時間に前記ローカルオシレータの時間を予測するステップと、
を有する方法。
【請求項９２】
ＵＳＢにアタッチされる複数の非同期のＵＳＢデバイスにより取得されるデータを同期させる方法であって、それぞれは、フリーランニングローカルオシレータを有し、
当該方法は、
前記複数のＵＳＢデバイスが前記ＵＳＢトラフィックをモニタリングし、前記ＵＳＢからＵＳＢホストコントローラにより生成された複数の時間キャリア信号を復号化するステップと、
前記複数のＵＳＢデバイスが、前記既知のキャリア信号インターバルに関して前記ローカルオシレータの周波数に関する情報を提供するため、前記ローカルオシレータの時間領域における前記復号化されたキャリア信号の受信間のインターバルを測定するステップと、
前記複数の復号化されたキャリア信号に関して前記各ＵＳＢデバイスのローカルオシレータの位相を決定するステップと、
前記複数のＵＳＢデバイスが、データを取得するステップであって、前記各フリーランニングローカルオシレータによりデータ取得がクロック処理される、ステップと、
各ＵＳＢデバイスのそれぞれの時間領域において取得されるデータをタイムスタンプするステップと、
前記タイムスタンプされたデータを中央位置に送信するステップと、
前記複数のデバイスからのデータを共通の時間領域に時間調整するステップと、
を有する方法。
【請求項９３】
バスにより導出される時間ベースに１以上のデバイスのローカルオシレータを同期させるシステムであって、
前記バスにより導出される時間ベースに関して前記ローカルオシレータを特徴付けるよう構成される測定段階と、
前記ローカルオシレータのそれぞれにおける時間の進捗を決定するよう構成される予測段階と、
前記各自のローカルオシレータから前記各デバイスのそれぞれにローカルな同期クロック信号を生成するよう構成される制御段階と、
を有するシステム。
【請求項９４】
前記測定段階は、請求項６２乃至７１何れか一項記載の方法を実行するよう構成され、
前記予測段階は、請求項７２乃至７９何れか一項記載の方法を実行するよう構成され、
前記制御段階は、請求項８０乃至９０何れか一項記載の方法を実行するよう構成される、請求項９３記載のシステム。
【請求項９５】
前記予測段階は、中央配置された計算機構を有し、
当該システムは、前記デバイスのそれぞれに前記第１時間を示すデータを送信するよう構成される、請求項９４記載のシステム。
【請求項９６】
前記複数の計算機構は、各デバイス内に配置され、
前記第１時間を示すデータは、前記デバイスのそれぞれにローカルに計算される、請求項９４記載のシステム。
【請求項９７】
通信バスを介し接続される複数のデバイスを同期させる方法であって、それぞれは、ローカルオシレータを有し、
当該方法は、
前記複数のデバイスから選ばれた第１又はマスタタイミングデバイスを指定するステップと、
前記マスタタイミングデバイスは、複数の第２デバイスのそれぞれに複数のクロックキャリア信号を送信するステップと、
前記複数の第２デバイスのそれぞれは、請求項６２乃至７１何れか一項記載の方法により前記マスタタイミングデバイスの時間領域に関して各自のローカルオシレータの周波数と位相とを決定するステップと、
請求項７２乃至７９何れか一項記載の方法により前記マスタタイミングデバイスの時間領域において前記複数の他のデバイスのそれぞれにおいて時間の進捗を予測するステップと、
請求項８０乃至９０何れか一項記載の方法により前記マスタタイミングデバイスの時間の概念と前記複数のデバイスのそれぞれのローカルクロックを同期させるステップと、
を有する方法。
【請求項９８】
前記第１時間を示すデータを中央計算し、前記データを前記デバイスのそれぞれに送信するステップをさらに有する、請求項９７記載の方法。
【請求項９９】
前記デバイスのそれぞれにローカルな前記第１時間を示すデータを計算するステップをさらに有する、請求項９７記載の方法。
【請求項１００】
前記クロックキャリア信号は、定期的である、請求項９７乃至９９何れか一項記載の方法。
【請求項１０１】
前記クロックキャリア信号は、非定期的であり、前記マスタタイミングデバイスの時間領域において既知の時間にタイムスタンプ又は送信される、請求項９７又は９８記載の方法。
【請求項１０２】
複数の相互接続された通信バスを介し接続される複数のデバイスを同期させる方法であって、それぞれは、ローカルオシレータを有し、
当該方法は、
前記複数のデバイスから選択された各バス相互接続に対してマスタタイミングデバイスを指定するステップと、
前記複数のマスタタイミングデバイスは、前記複数の他のデバイスのそれぞれに複数のクロックキャリア信号を送信するステップと、
前記複数の他のデバイスのそれぞれは、請求項６２乃至７１何れか一項記載の方法により前記マスタタイミングデバイスの時間領域に関して各自のローカルオシレータの周波数と位相とを決定するステップと、
請求項７２乃至７９何れか一項記載の方法により前記マスタタイミングデバイスの時間領域において前記複数の他のデバイスのそれぞれにおける時間の進捗を予測するステップと、
請求項８０乃至９０何れか一項記載の方法により前記マスタタイミングデバイスの時間の概念と前記複数のデバイスのそれぞれのローカルクロックを同期させるステップと、
を有する方法。
【請求項１０３】
複数の相互接続される通信バスにおける前記複数のデバイスのそれぞれにおける時間の進捗は、任意の精度まで知られ、
クロックキャリア信号の周波数の精度は、より低い程度まで知られる、請求項１０２記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、出願された内容のすべてが参照することによりここに援用される、２００８年８月２１日に出願された米国出願第６１／０９０，６３８号の出願日の利益を基礎及び請求する。
【０００２】
本発明は、マイクロコントローラベースの同期タイミングシステムを提供する方法及び装置に関し、限定されるものでないが、特にテスト測定装置の同調クロック、データ取得、自動化及び制御、操作インタフェース及び処理制御装置、並びにローカル又は分散環境における実質的に任意の程度での上記クロックの同期を提供するのに利用される。
【背景技術】
【０００３】
ＵＳＢの仕様は、オープンアーキテクチャの各ベンダからのデバイスの相互動作を実現するためのものである。ＵＳＢデータは、差動信号を用いて、すなわち、情報を伝送する２本の配線の信号レベル間の差分の形式により符号化される。ＵＳＢ仕様は、ＰＣアーキテクチャ、スパニングポータブル、デスクトップ及びホーム環境へのエンハンスメントとして意図されている。
【０００４】
ＵＳＢ仕様は、デバイスが異なることを想定している。これは、複数のメーカーからのデバイスが接続される意図された環境に対してはそうであるが、類似した性質を有する複数のデバイスを同期して動作させるための仕様を要求する他の環境（特定の共通の産業又は研究環境など）が存在する。仕様は、この問題を十分に解決するものでない。このような環境は、典型的には、テスト、測定又はモニタリングが実行され、デバイスが規定よりも高い精度まで同期されること要求するものである。ＵＳＢ仕様は、１ｋＨｚクロック信号をすべてのデバイスに提供することによって、限定的なデバイス間同期を可能にする。しかしながら、多くの研究及び産業環境は、メガヘルツ以上の周波数における同期を要求する。
【０００５】
ＵＳＢは、ハブがＵＳＢデバイスのためのアタッチメントポイントを提供する階層的なスタートポロジーを利用する。ユーザのパーソナルコンピュータ（ＰＣ）、ラップトップ又はＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）に備えられたＵＳＢホストコントローラは、システムのすべてのＵＳＢポートの起点となるルートハブを有する。ルートハブは、ＵＳＢ機能デバイス又は追加的なハブがアタッチ可能ないくつかのＵＳＢポートを提供する。
【０００６】
また、これらのポートの何れかにより多くのハブ（ＵＳＢコンポジットデバイスなど）をアタッチ可能であり、さらなるＵＳＢデバイスのためのポートを介し追加的なアタッチメントポイントが提供される。このようにして、ＵＳＢは、何れのデバイスも多くても５レベルの深さであるという制限はあるが、最大で１２７個のデバイス（ハブを含む）を接続することを可能にする。
【０００７】
ホストのルートハブは、１ｍｓ毎にすべてのデバイスにＳＯＦ（Ｓｔａｒｔ  Ｏｆ  Ｆｒａｍｅ）シグナルパケットを送信する。２つのＳＯＦパケットの間の時間はフレームと呼ばれる。各モジュールは、ＵＳＢトポロジーに固有の電気的遅延のため、異なる時点でＳＯＦパケットを受信する。このことは、ホストコントローラに直接接続されるデバイスと５レベル下方のデバイスとにおける信号の受信間の時間遅延を有意なもの（≦３８０ｎｓとして規定される）にする可能性があることを意味する。これは、メガヘルツレベル以上のデバイスを同期させることが所望されるときに厳しい制約となる。さらに、ＵＳＢ仕様は、ホストコントローラが５つまでの連続するＳＯＦトークンを送信することに失敗することを許容している。
【０００８】
ＵＳＢホストとＵＳＢデバイスとの間の現在の同期は、２つのタイプのＵＳＢ伝送、インタラプト（Ｉｎｔｅｒｒｕｐｔ）とアイソクロナス（Ｉｓｏｃｈｒｏｎｏｕｓ）によって可能である。インタラプト伝送は、１２５μｓの最小期間によるデバイスの保障されたポーリング頻度を可能にし、アイソクロナス伝送は、一定の伝送レートを保障する。両者は、デバイスとホストの間の同期のためのトラフィックが発生し、より高い程度の同期のためにより多くの帯域幅を確保することを求める。残念ながら、これは、最大数のデバイスが接続される前に、利用可能なＵＳＢ帯域幅が使い切ってしまう可能性があることを意味する。このアプローチはまた、ソフトウェアを用いて１２７個のデバイスがホストに同期され続けるのに大きな計算負荷をホストに与えるものであり、各デバイスが個別のプロセスを表すホストに関するデバイス間の同調性を維持することに対処できない。
【０００９】
レーザダイオードや光センサなどのある種の物理的なトランデューサを有するデバイスは、クロック及びトリガ情報を必要とするかもしれない。１ＭＨｚによる変調された光出力によるレーザダイオードなどのデバイスは、クロック信号を用いて定期的なインターバル又は一定の頻度によりトランスデューサ機能を実行するかもしれない。トリガ信号は、通常は設定された時間に処理を開始又は終了するのに利用される。レーザダイオードの例では、トリガ信号は、変調された光出力をオン又はオフに切り替えるのに利用可能である。
【００１０】
これらのクロック及びトリガ信号は、すべてのデバイスに共通で同時である場合、複数のデバイスを互いに同期させるのに利用可能である（以下において、“同期情報”として参照されるものを構成する）。ここでの“共通”及び“同時”とは、デバイス間の上記信号の時間に関する変化が規定量であるδｔ未満であることを意味する。レーザダイオードの例では、これは、複数のレーザダイオードが１つの周波数によりそれらの光出力を変調することを可能にするであろう。すべてのデバイスの変調周波数は同一となり、それらの波形は同相となるであろう。現在のＵＳＢ仕様（ｖｉｚ．２．０）は、０．３５μｓまでのδｔを許容する。１ＭＨｚの周波数と１．０μｓの期間による信号に対して、この遅延は当該期間のほぼ１／２を表す。このため、それは、通常の使用のための同期情報としては利用できない。
【００１１】
ハブやＵＳＢコントローラチップなどのデバイスは、ＵＳＢプロトコルを復号化するため、通常はある大きさのエンドポイント位相固定を利用する。他の電子回路がロックするための同期パターンを提供することが、ＵＳＢプロトコルにおけるＳＹＮＣパターンの目的である。しかしながら、これは、データストリームを解釈するのに十分な精度でＵＳＢビットストリームとデバイスエンドポイントとを同期させるためのものである。それは、２つの異なるデバイスの機能を互いに同期させることを意図するものでない。特に、それは、多くのテスト測定装置により要求されるレベルまでデバイス機能を同期させることを意図してない。ＵＳＢ仕様は、それがデバイス間同期を扱う程度まで、ＵＳＢとスピーカーのペアの出力のために十分にＵＳＢ−ＣＤオーディオストリームのデータパケットを同期させることに取得して関係するものである。このような調整の要求はｋＨｚの範囲内であり、この用途のため、ＵＳＢ仕様は、データ損失が許容されるイソクロナスパイプの実現を可能にする。しかしながら、仕様は、１００個のＵＳＢとスピーカのペアなどを同期させる潜在的な問題を解決するものでない。現在の手段は、単にデバイスの機能でなくエンドポイントのペアを同期させるものである。それは、大多数の用途において許容されないデータ損失に関する問題を解決するものでない。
【００１２】
上述されるように、ＵＳＢ通信は、通常の１ｍｓフレーム期間中にデータを伝送する（又は高速ＵＳＢの仕様の場合には、１ｍｓのフレーム毎に８つのマイクロフレームによる）。ＳＯＦパケットが、各フレームの始めに低速デバイスを除くすべてのデバイスと、各マイクロフレームの始めにすべての高速デバイスとに送信される。このため、ＳＯＦパケットは、所与のホストコントローラに接続される低速デバイスを除くすべてのデバイスにブロードキャストされる周期的な低解像度信号を表す。
【００１３】
このブロードキャストされるＳＯＦパケットは、１ｋＨｚの名目周波数により発生する（又は、高速ＵＳＢ仕様のケースでは、８ｋＨｚ）。しかしながら、ＵＳＢ仕様は、５００ｐｐｍの大変大きな周波数公差（装置規格によって）を許容する。背景技術は、クロック同期を提供するため各デバイスにブロードキャストされる低解像度周波数信号を利用するが、ＵＳＢホストコントローラにより提供されるややあいまいな周波数を利用する。
【００１４】
米国特許第６，３４３，３６４号（Ｌｅｙｄｉｅｒ  ｅｔ  ａｌ．）は、スマートカードリーダ向けのＵＳＢトラフィックへの周波数固定の一例を開示する。当該文献は、ＵＳＢ  ＳＹＮＣ及びパケットＩＤストリームと比較されるローカルなフリーランニングクロックを教示する。それの期間はこの周波数にマッチするよう更新され、１．５ＭＨｚの名目周波数によるローカルクロックを生じさせる。これは、スマートカード情報をホストＰＣに読み込むのに十分な程度の同期を提供するが、当該アプローチはスマートカードリーダ向けのものであるため、デバイス間同期は扱っていない。
【００１５】
米国特許第６，０１２，１１５号と以降の継続的な米国特許第６，２２６，７０１号（Ｃｈａｍｂｅｒｓ  ｅｔ  ａｌ．）は、ＵＳＢ  ＳＯＦの周期性とタイミングのためのナンバリングに関する。当該文献は、ＵＳＢホストコントローラからそれに接続される周辺デバイスに送信されるフレームパルスのスタートを利用することによって、リアルタイムの周辺デバイス内に所定のイベントが発生する時点の正確な決定を実行可能なコンピュータシステムを開示する。
【００１６】
米国特許第６，０９２，２１０号（Ｌａｒｋｅｙ  ｅｔ  ａｌ．）は、２つのＵＳＢホストのデータストリームにローカルデバイスクロックを同期させるため、ＵＳＢ−ｔｏ−ＵＳＢ接続デバイスを利用することによって、データ伝送のために２つのＵＳＢホストを接続する方法を開示する。位相同期ループは、ローカルクロックを同期させるため利用され、データ損失が発生しないことを保障するため、オーバサンプリングが利用される。しかしながら、当該文献は、情報伝送がホスト間で可能となるように、２つのＵＳＢホストのデータストリームの相互の同期（限定的な精度による）に関するものである。複数のＵＳＢデバイスを１つのＵＳＢホスト又は複数のＵＳＢホストと同期させる方法は提供されていない。
【００１７】
米国特許第５，７６１，５３７号（Ｓｔｕｒｇｅｓ  ｅｔ  ａｌ．）は、２以上のスピーカーのペアを各クロックと同期させる方法について開示している。ここで、１つのペアはＰＣのステレオオーディオ回路から外れて動作し、他のペアはＵＳＢにより制御されている。両方のスピーカーペアは各自のクロックを利用し、このため、それらは同期される必要があり、当該文献は、非同期クロック間の可能性のあるクロックの歪みにもかかわらず、オーディオ信号の同期を維持する１つの技術を教示する。
【００１８】
米国特許出願第１０／６２０，７６９号（Ｆｏｓｔｅｒ  ｅｔ  ａｌ．）は、各デバイスのローカルクロックが所与のＵＳＢ上で任意の程度で同期されるＵＳＢの同期バージョンを開示する。当該文献はまた、トリガ信号によってイベントが複数のデバイス上で同期的に開始されるように、ＵＳＢ内の各デバイスにトリガ信号を提供する方法及び装置を開示する。
【００１９】
複数のＵＳＢデバイスのそれぞれにおけるローカルクロックの同期のためのアーキテクチャは、ＵＳＢトラフィックにすでにある周期的なデータ構造を利用する。米国出願第１０／６２０，７６９号に開示される実施例は、ローカルクロックを周波数と位相においてＵＳＢデバイスのＳＯＦパケットトークンの検出に実質的に固定させる。ＵＳＢを介しトラフィックを観察し、バストラフィック（一実施例では、ＳＯＦパケット）からクロックキャリア信号を復号化するための回路が利用され、１ｋＨｚ（又はＵＳＢ高速については８ｋＨｚ）の名目キャリア信号周波数を生じさせる。被制御オシレータクロックからのローカルクロック信号は、位相と周波数の双方においてＵＳＢ  ＳＯＦパケットの受信に固定される。これは、ルートハブにアタッチされたすべてのデバイスが、周波数についてＳＯＦパケットトークンを受信したポイントに固定されることを保障する。しかしながら、このアプローチは、正確に知られているクロック周波数を各デバイスに提供する能力において限定的である。
【００２０】
さらに、当該開示は、ＵＳＢにアタッチされたデバイスの高い精度のクロック同期を教示するが、開示されたアプローチは、典型的には電圧制御された電圧オシレータの形式による精密被制御オシレータを利用し、安定的な供給電圧を提供するための配慮がなされる必要がある。このとき、閉ループ制御回路が精密オシレータに適用される。これは、同期されるＵＳＢデバイスの設計に対してコストと複雑さを加えるものである。
【００２１】
２００７年２月１５日に出願された米国特許出願第６０／７７３，５３７号（Ｆｏｓｔｅｒ  ｅｔ  ａｌ．）に開示される他の同期ＵＳＢデバイスは、ホストＰＣにおけるクロックの精度に関係なく、ＵＳＢデバイス上で正確なクロック周波数を生成することを可能にする。この開示では、ＵＳＢ  ＳＯＦパケットは、ローカルクロックが同期されるリファレンス信号でなくクロックキャリアとして扱われる。キャリア信号は、ＵＳＢトラフィックから復号化されると、同期情報を生成し、クロック周波数の正確な制御によってローカルクロック信号を同期させるため、スケーリングファクタと合成される。このようにして、ローカルクロック信号の周波数は、キャリア信号のややあいまいな周波数より正確なものとなりうる。
【００２２】
この構成は、数十メガヘルツのクロック周波数などの任意の高周波数のローカルクロック信号を生成し、これにより所与のＵＳＢに接続される各デバイスのローカルクロックが周波数同期されることを保障することが可能になると言われている。米国出願第１０／６２０，７６９号はまた、ホストから各デバイスへの信号伝搬時間を測定することによって複数のローカルクロックを位相同期するための方法及び装置を教示し、各ＵＳＢデバイスにおけるクロック位相補償を提供する。
【００２３】
このようなシンクロナスＵＳＢシステムは正確なクロック周波数の生成によって、ＵＳＢデバイス間の正確なクロック同期を実行可能であるが、それらは、ＵＳＢ上のデータを復号化し、キャリア信号の受信時を正確に決定する特別なハードウェアコンポーネントを必要とする。これらのコンポーネントは、通常のＵＳＢバスのインタフェース回路やマイクロコントローラに加えて要求され、このため、これらのアプローチは、シェルフＵＳＢインタフェースマイクロコントローラを使わないＵＳＢの汎用的な実装と互換しない。
【００２４】
さらに、ＵＳＢ仕様は、ＵＳＢデバイスが存在しうるキャパシタンスのレベルをバスに制限する。グラウンドへのパラレルな有効レジスタンスの存在におけるグラウンドへのＵＳＢの各データラインの有効キャパシタンスは、極めてしっかりと制御される。一般に、準拠したＵＳＢデバイスによると小さなキャパシタンスマージンしか存在しない。従来のＵＳＢデバイスへのパラレルデータパスウェイ回路の追加は、典型的には、キャパシタンス制限を超過する。
【００２５】
他方、国際特許出願第ＰＣＴ／ＡＵ２００８／０００６６３号（Ｆｏｓｔｅｒ）は、従来技術によるパラレルデータパスウェイでなくマイクロコントローラを介し単一のＵＳＢコネクションポイントを用いて、ソフトウェアベースのフレーム検出機構を利用して、各デバイスのローカルクロックが所与のＵＳＢ上で同期されるＵＳＢの同期バージョンを開示する。しかしながら、これは精度を犠牲にしたものである。このアプローチは、制御ループを簡単化し、同期精度を犠牲にして影響を受けやすいアナログ位相同期ループアーキテクチャの必要性を回避することを目的とするものである。
【発明の概要】
【００２６】
第１の広範な態様では、本発明は、第１デバイスと少なくとも１つの第２デバイス（当該第２デバイスは１以上であってもよい）とを同期させる方法であって、それぞれがローカルオシレータ（フリーランニングオシレータ）とマイクロコントローラとを有し、前記第２デバイスは、通信バスを介し前記第１デバイスとデータ通信し、当該方法は、前記第１デバイスが、複数の信号を前記第２デバイスに送信するステップと、前記第２デバイスが、前記複数の信号を用いてそれのローカルオシレータの周波数を測定するステップと、前記第１デバイスが、同期されることが要求される周波数を示す信号を前記第２デバイスに送信するステップと、前記第２デバイスが、それのマイクロコントローラを使用して、それのマイクロコントローラの周波数を用いて前記要求される周波数によりローカルクロック信号を生成するよう自らを設定するステップとを有する方法を提供する。
【００２７】
デバイスは、ＵＳＢデバイスであってもよい。
【００２８】
一実施例では、本方法は、第２デバイスが要求される周波数によるローカルクロック信号を任意の程度に生成するよう自らを設定することを含む。
【００２９】
従って、本実施例では、マイクロコントローラベースのマルチデバイス同期が提供され、これにより、各自のオシレータを備える（少なくとも１つの）第２デバイスが共通バスにアタッチされ、当該バスからの信号を用いて同期される。典型的には、各デバイスは、リファレンスキャリア信号として用いられる共通信号をバスから受信する。各デバイスのローカルクロックは、マイクロコントローラにおいて通常利用可能なリソースを用いて共通のキャリア信号により特徴付けし、これにより同期させることが可能である。
【００３０】
通信バスがＵＳＢである場合などの一部の実施例では、ＵＳＢホストコントローラを有するパーソナルコンピュータなどのシステムコントローラは、それのフリーランニングローカルクロックの周波数に関する情報をアタッチされた各デバイスから受信する。その後、システムは、キャリア信号からの各自の同期信号とローカルフリーランニングクロックとを同期させるための情報を各デバイスに提供する。
【００３１】
統計手段が、より高い同期精度を提供するため、上記情報を処理するのに利用されてもよい。さらなるハードウェアサポートが、各自のクロック合成のリゾルーション、分解能又は解像度（ｒｅｓｏｌｕｔｉｏｎ）と精度とを向上させるため、各デバイスにより利用されてもよい。
【００３２】
本発明は、ＵＳＢ又は外部バスへの適用に限定されるものでないが、ＰＣＩ、ＰＣＩ−ｅ、イーサネット、Ｆｉｒｅｗｉｒｅなどの何れか汎用的な通信バスにおいて適用されてもよい。同様に、本発明は、プリント配線基板や集積シリコンチップ上のコンポーネント間のバス又は無線若しくは光ファイバ通信システムなどに適用可能である。
【００３３】
特定の実施例では、複数の信号は複数の定期的な信号を有する。
【００３４】
特定の実施例では、本方法は、第１デバイスが複数の信号を所定の時間（ローカルユニバーサル時間における１秒の境界（ｏｎｅ  ｓｅｃｏｎｄ  ｂｏｕｎｄａｒｙ）など）に送信するステップを含む。
【００３５】
第１デバイスはマスタ又はコントローラデバイスであってもよく、第２デバイスはスレーブデバイスである。本方法はまた、第１デバイスが第２デバイスを制御せず、単に同期信号ソースとして動作するように、デバイスのピア・ツー・ピアネットワークを有してもよい。
【００３６】
一実施例では、本方法は、第１デバイスが、タイムスタンプによって被定期的な方法で第２デバイスに複数の信号を送信するステップを有する。タイムスタンプは、ホストシステム又はマスタ時間デバイスの時間領域からのものであってもよい。
【００３７】
マイクロコントローラは、カウンタ／タイマーなどのクロック生成装置を有してもよい。
【００３８】
特定の実施例では、マイクロコントローラは、複数の信号を検出すると、インタラプトサービスルーチンを実行するよう構成される。
【００３９】
マイクロコントローラは、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）ロジックデバイス又は他のロジック要素の形式により提供されてもよい。
【００４０】
好ましくは、マイクロコントローラは、ローカルオシレータからクロック処理されるカウンタ／タイマー（ハードウェア、ソフトウェアなど）の形式などによって、同期リファレンス信号の受信間のインターバルを測定する回路を有する。好ましくは、マイクロコントローラは、同じローカルオシレータからクロック処理されるカウンタ／タイマー又は他のクロック生成回路を有するローカルクロック信号を生成する回路を有する。
【００４１】
カウンタ／タイマー又は他のクロック生成機能は、ＦＰＧＡロジックデバイス又は他のロジック要素内に含まれてもよい。
【００４２】
通信バスは、シリアルバス、パラレルバス又は他の形式の通信バスであってもよく、第１及び第２デバイスは、各自のバスにアタッチされたタイプを有するものであってもよい。通信バスは、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ＰＣＩ−Ｅｘｐｒｅｓｓバス、イーサネット、Ｆｉｒｅｗｉｒｅバス、ＲＳ２３２又は他のシリアルインタフェースバスの形式によるシリアルバスであってもよい。通信バスは、ＰＣＩバス、ＰＸＩバス、ＶＭＥバス、ＶＸＩバス、ＧＰＩＢ又は他のパラレルインタフェースバスの形式によるパラレルバスであってもよい。通信バスは、有線、光若しくは無線バス、ラックベース機器のためのバックプレーンバス、プリント回路基板若しくはイントラチップバス上のバス上でデバイス間に設けられてもよい。
【００４３】
通信バスは、単一のバス又は複数の異なる接続されたバスからなるハイブリッド相互接続されたバス（電子テスト装置に使用されるものなど）などの複数の相互接続されたバスから構成されてもよい。この態様によると、第１及び（少なくとも１つの）第２デバイスは、複数の異なるバスにアタッチされ、すべてが同期されてもよい。例えば、ＵＳＢデバイス、イーサネットデバイス及びＰＣＩデバイスはすべて、本発明のこの態様により同期されてもよい。
【００４４】
一実施例では、第２デバイスは、通信バスを介し第１デバイスとデータ通信する複数の第２デバイスの１つであり、本方法は、前記第１デバイスが、複数の信号を複数の他のデバイスに送信するステップと、前記第２デバイスのそれぞれが、前記複数の信号を用いてそれのローカルオシレータの周波数を測定するステップと、前記第１デバイスが、同期されることが要求される周波数を示す信号を前記第２デバイスに送信するステップと、前記第２デバイスが、それのマイクロコントローラを使用して、それのマイクロコントローラの周波数を用いて前記要求される周波数によりローカルクロック信号を生成するよう自らを設定するステップとを有する。
【００４５】
第２の広範な態様では、本発明は、ローカルクロックと、カウンタ／タイマー機能を有するマイクロコントローラと、オシレータ（フリーランニングローカルオシレータなど）とを有するＵＳＢデバイスであって、前記マイクロコントローラは、複数のクロックキャリア信号の実質的にすべてに対して同期リファレンス信号として使用されるよう構成される出力信号を生成することによって、所定のソフトウェアインタラプト（ここに提供されるインタラプトサービスルーチンなど）に応答するよう構成され、前記ＵＳＢデバイスはＵＳＢホストコントローラにアタッチ可能であるＵＳＢデバイスと、ＵＳＢトラフィックを観察し、ＵＳＢデータストリームから前記ホストコントローラにより送信され、分散されたクロック周波数と位相とに関する情報を含むクロックキャリア信号を有する定期的な信号を復号化し、復号化されたキャリア信号を出力するよう構成される回路と、前記復号化されたキャリア信号を受信し、所定のデータパケット（ＳＯＦパケットなど）を受信すると、前記所定のソフトウェアインタラプトを生成し、前記ソフトウェアインタラプトを前記マイクロコントローラにわたすよう構成される回路と、前記ローカルオシレータの時間領域における前記同期リファレンス信号（及びキャリア信号）の受信間のインターバルを測定する回路であって、前記測定が前記既知のキャリア信号周波数（第１カウンタ／タイマー機能などを用いて）に関して前記ローカルオシレータの周波数に関する情報を提供する回路とを有する装置であって、当該装置は、要求される同期周波数と前記ローカルオシレータの周波数とに基づき第２カウンタ／タイマー回路の設定を計算することによって、前記同期周波数に関する情報を含む前記ＵＳＢホストコントローラからのメッセージに応答するよう構成され、前記ＵＳＢデバイスは、カウンタ機能のケースでは終了カウントイベントに達すると、またはタイマー機能のケースではタイムアウトイベントに達すると、出力信号を生成するため、前記マイクロコントローラ内の前記カウンタ／タイマー回路の設定をセットし、前記第２カウンタ／タイマーは、前記オシレータ（それの周波数が定期的なキャリア信号を参照して特徴付けされた）によりクロック処理され、前記第２カウンタ／タイマーが前記終了カウントまたは前記タイムアウトイベントに達すると、前記カウンタ／タイマーの設定をリセットする装置を提供する。
【００４６】
本態様によると、標準的なマイクロコントローラに利用可能な特徴と安価なフリーランニングオシレータとを利用するのに適した、通信バスにアタッチされたデバイス上で同期ローカルクロックを生成する方法が提供される。
【００４７】
好ましくは、同期リファレンス信号の受信間のインターバルを測定する回路は、ローカルオシレータからクロック処理された第１カウンタ／タイマーである。
【００４８】
好ましくは、第２カウンタ／タイマーは、同期クロック信号を生成するのに用いられる。好ましくは、ローカルオシレータの周波数はまた、クロックキャリア信号に関して継続的に測定され、第２カウンタ／タイマー回路の設定に対する変更は、ローカルオシレータが周波数についてドリフトしながら、ローカルクロック信号の同期を維持するため、継続的に行われる。
【００４９】
好ましくは、ローカルオシレータの周波数を測定するのに用いられるインターバルは、連続するキャリア信号の受信間のインターバルである。好ましくは、ローカルオシレータの測定精度は、複数の連続するインターバルの測定と統計手段を用いることによって増加する。
【００５０】
好ましくは、マイクロコントローラは、カウンタ／タイマー機能を有するデバイスである。このようなカウンタ／タイマーは、限定されることなく、ＦＰＧＡ又はＣＰＬＤ（Ｃｏｍｐｌｅｘ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）などのロジックデバイスのマイクロコントローラの外部に複製可能であることが当業者に理解されるであろう。
【００５１】
好ましくは、マイクロコントローラは、インタラプトサービスルーチンを有し、これにより、インタラプトサービスルーチンは、キャリア信号の検出により呼び出し又はトリガ可能である。
【００５２】
好ましくは、インタラプトは、ＩＳＲ（Ｉｎｔｅｒｒｕｐｔ  Ｓｅｒｖｉｃｅ  Ｒｏｕｔｉｎｅ）からの要求される出力を生成する際の遅延が最小になるハードウェアインタラプトである。
【００５３】
好ましくは、第２カウンタ／タイマー回路は、要求される出力信号を生成する際の遅延が最小になる終了カウント又はタイムアウトに達すると、ハードウェア出力信号を生成するよう動作可能である。
【００５４】
好ましくは、カウンタ／タイマー回路の設定の計算は、ＵＳＢデバイスにおいて行われる。好ましくはまた、カウンタ／タイマー回路の設定の計算は、ＵＳＢホストコントローラにおいて行われる。
【００５５】
ローカルオシレータが経済性のためフリーランニングであってもよいが、精度を向上させるため、電圧制御水晶オシレータ（ＶＣＯＸ）（特に位相同期ループ（ＰＬＬ）アーキテクチャにおいて）、温度補償水晶オシレータ（ＴＣＸＯ）、オーブン制御水晶オシレータ（ＯＣＸＯ）又はマルチタップクロックなどの形式であってもよいことは当業者に理解されるであろう。
【００５６】
カウンタ／タイマー回路はローカルオシレータから直接クロック処理されるのでなく、ローカルオシレータからの周波数について除算又は乗算されたクロックソースからクロック処理されてもよいことが当業者に理解されるであろう。
【００５７】
本態様によると、本発明は、ＵＳＢホストコントローラにアタッチされたローカルオシレータ（フリーランニングローカルオシレータなど）とマイクロコントローラとを有するＵＳＢデバイスのローカルクロックを同期させる方法であって、前記マイクロコントローラは、カウンタ／タイマー機能を有し、当該方法は、前記ホストコントローラが、クロックキャリア信号を構成する定期的な信号を前記ＵＳＢデバイスに送信するステップと、ＵＳＢトラフィックを観察し、ＵＳＢデータストリームから分散されたクロック周波数と位相とに関する情報を含む前記定期的な信号を復号化し、復号化されたキャリア信号を出力するステップと、前記復号化されたキャリア信号を受信し、所定のデータパケット（ＳＯＦパケットなど）の受信に応答してインタラプトを生成し、前記ソフトウェアインタラプトを前記ＵＳＢマイクロコントローラにわたすステップと、前記ＵＳＢマイクロコントローラが、前記クロックキャリア信号の実質的にすべてについて同期リファレンス信号として用いられるよう構成される出力信号を生成することによって、前記ソフトウェアインタラプト（提供されるインタラプトサービスルーチンなどを有する）に応答するステップと、（第１カウンタ／タイマー機能を用いて）前記既知のキャリア信号周波数に関して前記ローカルオシレータの周波数に関する情報を提供するため、前記ローカルオシレータの時間領域における前記同期リファレンス信号（及びキャリア信号）の受信間のインターバルを測定するステップと、前記ＵＳＢホストコントローラが、前記ＵＳＢデバイスに前記要求される同期周波数に関する情報を含むメッセージを送信するステップと、前記同期周波数と前記ローカルオシレータの周波数とを用いて第２カウンタ／タイマー回路の設定を計算するステップと、前記ＵＳＢデバイスが、カウンタ機能のケースにおいて終了カウントイベントに達すると、またはタイマー機能のケースにおいてタイムアウトイベントに達すると、出力信号を生成するため、前記マイクロコントローラ内の前記カウンタ／タイマー回路の設定をセットするステップと、前記ローカルオシレータ（それの周波数が、定期的なキャリア信号を参照して特徴付けされた）によりクロック処理される前記第２カウンタ／タイマーが前記終了カウント又は前記タイムアウトイベントに達すると、前記カウンタ／タイマーの設定をリセットするステップとを有する方法を提供する。
【００５８】
本態様によると、複数のＵＳＢデバイスが任意の程度に同期され、本方法は、共通のＵＳＢホストコントローラにアタッチされる複数のＵＳＢデバイスを同期させるのに適用される。
【００５９】
ローカルオシレータに関する連続するキャリア信号の受信間の期間の測定は、ローカルオシレータの時間領域におけるキャリア信号の複数の受信時間を知ることに等しいことが当業者により理解されるであろう。また、このような時間の相対的な概念は、時間の絶対的な概念と参照可能であることが理解される。
【００６０】
第３の広範な態様では、本発明は、バスにより導出される時間ベースにデバイスのローカルクロックを同期させるシステムであって、測定段階と、予測段階と制御段階とを有する。
【００６１】
各段階は、対応する方法（以下でそれぞれ測定、予測及び制御方法と呼ばれる）を実行する。
【００６２】
好適な実施例では、測定段階は、通信バスにアタッチされたローカルオシレータと、オシレータによりクロック処理されたカウンタ／タイマーを含むマイクロコントローラとを有する第１デバイスと、バストラフィックをモニタリングする回路値、バスにアタッチされた少なくとも１つの第２デバイスにより生成される既知の周波数のクロックキャリア信号をバスから復号化する回路とを有し、測定段階は、通信バスからの複数のキャリア信号の受信に応答して、カウンタ／タイマー回路のローカル時間の複数の測定を実行するよう構成され、各測定は、各キャリア信号の受信に対応する。
【００６３】
典型的なマイクロコントローラのカウンタ／タイマー回路は、一般に１６ビットの分解能より少なく、しばしば１２ビットより少ない。これは、カウンタ／タイマーが高周波数オシレータによりクロック処理されると頻繁にロールオーバすることを意味する。一実施例では、測定段階は、ロールオーバイベントを追跡し、複数の低ビットカウントタイマーの測定を高分解能の６４ビット又は他の時間表現に変換するよう構成される。
【００６４】
このようにして、測定段階は、第１デバイスの時間領域の時間に対応する６４ビットタイマー値と１以上の第２デバイスの時間領域の複数のキャリア信号の時間の測定のアレイを提供する。
【００６５】
好ましくは、キャリア信号は、定期的であるが、測定方法の結果としてキャリア信号時間対ローカルオシレータ時間のマップである必要はない。
【００６６】
少なくとも１つの第２デバイスは、バスコントローラ、ホストコントローラデバイス又はマスタバスデバイスであってもよい。第２デバイスはまた、ピア・ツー・ピアバスアーキテクチャにおける標準的なデバイスであってもよい。
【００６７】
好ましくは、複数のタイミング信号は、当該信号の期間と絶対時間とが第２デバイスの時間領域において知られている定期的な信号である。複数のタイミングリファレンス信号はまた、非定期的なものであってよいが、第２デバイスの時間領域においてそれぞれタイムスタンプされる。
【００６８】
好ましくは、測定段階は連続的に動作するよう構成され、各測定が最も最近の測定期間における第２デバイスのオシレータの周波数の新たな測定値を提供する。測定回数が増えるに従って（又はオシレータの特徴付けが向上する）、予測方法の可能な精度が向上する。
【００６９】
本態様によると、通信バスは、シリアルバス、パラレルバス、又は他の形式の通信バスであってもよく、デバイスは各バスにアタッチされるタイプを有する。シリアルバスである場合、通信バスは、ＵＳＢ、ＰＣＩ−Ｅｘｐｒｅｓｓバス、イーサネット、Ｆｉｒｅｗｉｒｅバス、ＲＳ２３２又は他のシリアルインタフェースバスであってもよい。パラレルバスである場合、通信バスは、ＰＣＩバス、ＰＸＩバス、ＶＭＥバス、ＶＸＩバス、ＧＰＩＢ又は他のパラレルインタフェースバスであってもよい。通信バスは、有線、光若しくは無線バス、ラックべース機器のバックプレーンバス、プリント回路基板上のバス、又はイントラチップバスのデバイス間のものであってもよい。
【００７０】
通信バスは、単一のバス又は複数の相互接続されたバスであってもよい。複数の異なるバスにアタッチされた複数のデバイスがすべて同期されてもよいことは、本態様の範囲内である。例えば（限定されることなく）、ＵＳＢデバイス、イーサネットデバイス及びＰＣＩデバイスはすべて、本発明の本態様を用いて同期されてもよい。
【００７１】
複数の相互接続されたバスの場合、測定段階は、バスとそれにアタッチされたデバイスとの相互接続に適用されてもよい。このようにして、アタッチされたバスとデバイスのそれぞれの相対的なクロックレートのマップ（相互に関連する測定のアレイ）が経時的に構築される。
【００７２】
好ましくは、バスはＵＳＢであり、第１デバイスはＵＳＢホストコントローラであり、この場合、キャリア信号はＵＳＢ仕様で規定されるＵＳＢパケット信号構造、ＵＳＢデバイスに送信されるコマンドシーケンス、ＵＳＢデバイスに送信されるデータシーケンス、ＯＵＴトークン、ＩＮトークン、ＡＣＫトークン、ＮＡＫトークン、ＳＴＡＬＬトークン、ＰＲＥトークン、ＳＯＦトークン、ＳＥＴＵＰトークン、ＤＡＴＡ０トークン、ＤＡＴＡ１トークン又はＵＳＢデータパケットの所定のビットパターンシーケンスの何れかを有してもよい。
【００７３】
本態様によると、オシレータは、複数のタイミングリファレンス信号に関してある期間において特徴付けされる。このようにして、オシレータの周波数のドリフトは、第１デバイスの時間領域に関して拡張された期間において正確に知ることが可能である。参考までに、第２デバイスの時間ベースが知られる場合、オシレータの周波数と第１デバイスの時間ベースとが絶対的に特徴付け可能である。
【００７４】
当業者により理解されるように、クロック信号のレート解析及び制御のための複数のアルゴリズムが存在する。有用な制御アルゴリズムは、汎用的なシステムの状態がランダムなエラー（オシレータの周波数の決定における打ち切り誤差など）を含む測定系列から推定可能であるＫａｌｍａｎフィルタリングとして知られる。このアプローチを用いて、オシレータは、極めて長い期間において高い精度により特徴付け可能であり、以降の周波数ドリフトの正確な予測をもたらす。
【００７５】
好ましくは、予測段階は、複数の時間領域における複数のタイムスタンプされた測定に対応するデータセットを読み込み、複数の時間領域の間の関係を決定し、時間に関して順方向に関係を推定する。
【００７６】
好ましくは、データセットは、測定値からなる。好ましくは、予測段階は、関係を決定する精度を向上させるため、統計計算を利用する。
【００７７】
好ましくは、推定は、線形、多項式若しくは指数推定又は外挿（ｅｘｔｒａｐｏｌａｔｉｏｎ）又はＫａｌｍａｎフィルタリングや同様の統計技術に基づく予測アプローチからなる。
【００７８】
予測段階により実行される計算は、少なくとも１つの第２デバイスの１つにおいて、又は第１及び第２デバイスと通信する他のデバイスにおいて第１デバイスにより実行されてもよい。
【００７９】
このようにして、予測段階の出力は、複数の時間領域のマップである。これは、各時間領域におけるローカル時間の推定値を提供する。後述される実施例では、複数の第２デバイスの少なくとも１つのリファレンス時間領域と、ローカルオシレータからクロック処理される第１デバイスの時間領域との間のマッピングが存在する。
【００８０】
データセットは、複数の相互接続されるバスに対応するものであってもよい。複数の異なるバスにアタッチされる複数のデバイスがすべて同期されてもよいことは、本態様の範囲内である。例えば（限定されることなく）、ＵＳＢデバイス、イーサネットデバイス及びＰＣＩデバイスはすべて、本態様を用いて同期されてもよい。
【００８１】
複数の相互接続されるバスの場合、上記時間のマッピングと予測は、ハイブリッド相互接続バスの幅にわたって複数のバスとデバイスとのそれぞれに適用される。
【００８２】
上記マッピングの精度は、時間が以降に推定されるに従って減少することが理解される。
【００８３】
好ましくは、制御段階は、測定又は予測段階から第１デバイスのカウンタ／タイマーの現在時間（ｔ１）を示すデータを受信し、以降のイベントが生成される時点（ｔ２）を選択し、出力信号が以降のイベントの時点（ｔ２）において生成されるように、第２カウンタ／タイマーのリソースにより出力信号を制御し、カウンタ機能のケースにおいて終了カウントイベントに達すると、又はタイマー機能のケースにおいてタイムアウトイベントに達すると、時点ｔ２において出力信号を生成することが要求される第２カウンタ／タイマーのチック回数（又は“チックカウント”）を計算し、カウンタ機能のケースにおいて終了カウントイベントに達すると、又はタイマー機能のケースにおいてタイムアウトイベントに達すると、出力信号を生成するためチックにより第２カウンタ／タイマー機能を設定するよう構成され、第２カウンタ／タイマーは、オシレータによりクロック処理され（その周波数は、定期的なキャリア信号を参照して特徴付けされた）、終了カウントイベント又はタイムアウトイベントに達すると、出力信号を生成するよう構成される。
【００８４】
制御段階は、ローカルクロック信号を生成するよう構成されてもよい。本実施例によると、制御段階は、時点ｔ１において出力信号を生成し、新たなチックカウントにより第２カウンタ／タイマーをロードすることによって時点ｔ２において出力信号を生成し、次のタイムアウト又は終了カウントが時点ｔ２＋（ｔ２−ｔ１）において発生するように、チックカウント設定により第２カウンタ／タイマーをリセットするよう構成される。
【００８５】
これらのステップは、その後に制御段階により繰り返されてもよい。
【００８６】
好ましくは、測定及び予測段階はまた、オシレータの周波数におけるドリフトが測定されるように継続的に利用され、予測段階は、第２デバイスのリファレンスクロックによりローカルクロック信号の同調を維持するため、チックカウントの更新値を提供する。
【００８７】
このようにして、制御段階は、オシレータの十分な高い動作周波数を与えられた任意の高さの周波数までローカルクロック信号を合成することが可能である。
【００８８】
好ましくは、オシレータの周波数は、定期的なキャリア信号の周波数より実質的に高い。これは、定期的なキャリア信号の間のインターバルの決定における高い分解能、解像度又はリゾルーション（ｒｅｓｏｌｕｔｉｏｎ）を可能にするのと同様に、非定期的であるがタイムスタンプされたキャリア信号のケースでは、オシレータの期間（周波数の逆数）は、キャリア信号の受信間のインターバルより実質的に小さくなる。
【００８９】
好ましくは、ローカルクロック信号の周波数は、ローカルクロック周波数を制御するのに高い分解能を可能にするため、オシレータの周波数より実質的に低い。さらに、ローカルクロック期間（すなわち、周波数の逆数）が、特にローカルクロックが外部の周波数リファレンスに制御され、オシレータが周波数においてドリフトすることが予想されるため、オシレータの期間のちょうど倍数となる可能性が低い。この場合、少なくとも１つのオシレータ期間のローカルクロックの期間においてジッタが生じることになる。
【００９０】
本態様によると、最終的な同期クロック信号のより精密な制御を提供するため、各種方法が利用されてもよい。一実施例では、ローカルクロックの最終的な出力周波数を制御する方法は、カウンタ／タイマーがクロック処理されるレートへの調整を伴う可能性がある。さらに、ローカルクロック信号の連続するサイクル期間中の“チックカウント”の慎重な選択は、周波数の同調が行われるときのクロック周波数のノイズの効果を減少させるのに利用されてもよい。例えば、ローカルオシレータ（フリーランニングであってもよい）のドリフトを考慮するため、ローカルクロック信号が調整される必要がある場合、ステップ変更を用いるのでなく複数サイクルの期間におけるローカルクロックレートをゆっくり調整することが好ましい。このような方法は、クロックノイズの周波数スペクトルに有意に影響を与え、ノイズスペクトルへの大きな振幅の狭い周波数のコンポーネントを生成するのでなく、広い周波数帯域（低振幅の）における制御ノイズを拡散することが可能である。このような方法の他の同様の方法及びアプリケーションは、当業者に容易に明らかとなるであろう。
【００９１】
本態様によると、ローカルクロック信号に求められる定期的な周波数を設定するのに求められる名目的な設定において第２カウンタ／タイマーの設定をディザリング（ｄｉｔｈｅｒ）するための方法が利用される。これは、クロックジッタを低減する効果を有する。制御段階は、その後に更新された同期情報を待機しながら、次のインターバルにおける位相のデジタル調整（以降のカウンタ／タイマー期間の設定）を管理する方法を調整することが可能である。
【００９２】
このような制御段階の基本的な精度は、測定インターバル、オシレータの周波数及びオシレータの周波数におけるドリフトにより限定される。測定インターバルの増加は、オシレータの周波数を測定する可能な分解能を増加させるが、これはまた、インターバル期間中のオシレータの周波数のより大きなドリフトをもたらす。測定精度とオシレータドリフトとの間にはトレードオフがある。予測システムによる制御クロックアプローチは、より長い期間におけるオシレータの周波数におけるより高い確実性と精度とを可能にする。
【００９３】
ローカルオシレータは、好ましくは、フリーランニングローカルオシレータであるが、電圧制御水晶オシレータ（ＶＣＸＯ）（特に位相同期ループ（ＰＬＬ）アーキテクチャにおける）、温度補償水晶オシレータ（ＴＣＸＯ）、オーブン制御水晶オシレータ（ＯＣＸＯ）マルチタップクロック又は他のより正確なクロックソースがまた、精度を向上させるためフリーランニングローカルオシレータの代わりに利用可能であることが当業者に理解されるであろう。
【００９４】
また、カウンタ／タイマー回路はローカルオシレータから直接的でなく、ローカルオシレータからの周波数を除算又は乗算されたクロックソースからクロック処理されてもよいことが、当業者に理解されるであろう。同様に、位相調整は、イベント生成の分解能を向上させるため、カウンタ／タイマー回路をクロック処理するのに使用される前に、ローカルオシレータ信号について位相調整が可能である。
【００９５】
同期したローカルクロック信号は、その後に複数の出力信号を生成し、及び／又は外部イベント又は信号を正確にタイムスタンプするのに利用可能である。
【００９６】
通信バスは、単一のバス又は複数の相互接続されたバスとすることが可能である。複数の異なるバスにアタッチされる複数のデバイスがしべて同期されてもよいことは、本態様の範囲内である。例えば（限定されることなく）、ＵＳＢデバイス、イーサネットデバイス及びＰＣＩデバイスはすべて、本態様を用いて同期されてもよい。
【００９７】
複数のバスのケースでは、制御段階は、好ましくは、バスとそれにアタッチされたデバイスとの各相互接続に適用される。
【００９８】
本態様のこれら３つの段階は、本発明によると、上述されるように組み合わせ、又は所望されるように個別に利用可能な各方法（測定、予測及び制御）を実現する。それらはまた、本開示に教示される他の発明と共に利用されてもよい。
【００９９】
本態様によると、上述された３つの段階により実現される方法の１以上が提供される。
【０１００】
さらに、広範な態様の測定及び予測段階を単に利用することによって、複数のデバイスにより取得されるデータを同期させることが可能である。
【０１０１】
本態様によると、本発明は、通信バスにアタッチされる複数のデバイスにより取得されるデータを同期させる方法であって、本開示に教示される方法の何れかを用いて複数のデバイスの同期されていない時間領域の間のマッピングを決定するステップと、各デバイスの時間領域において取得されるデータをタイムスタンプするステップと、タイムスタンプされたデータを中央位置に送信するステップと、複数のデバイスからデータを時間調整するステップとを有する方法を提供する。
【０１０２】
一実施例では、ＵＳＢにアタッチされる複数のＵＳＢデバイスはそれぞれ、フリーランニングローカルオシレータを有し、各自のフリーランニングローカルオシレータは、各ＵＳＢデバイスのデータ取得を制御するのに用いられる。複数のＵＳＢデバイスは、ここに開示される方法を介しＵＳＢホストコントローラの時間領域にマッピングされる各自の時間領域を有する。各ＵＳＢデバイスにより取得されるデータは、各取得ポイントに係るタイムスタンプによってホストＰＣにおいて時間調整される。
【０１０３】
各ＵＳＢデバイスによりデータは同期的（同時）にサンプリングされるものでないが、それは共通の時間ベースに調整可能であることが留意されるべきである。さらに、この技術は、本発明の第６の広範な態様に示されるような複数の通信バスを介し接続される複数のデバイスに適用可能である。
【０１０４】
第４の広範な態様によると、本発明は、ローカルクロック位相同期の精度を向上させる方法であって、通信バスにアタッチされたデバイスのローカルクロックを同調するステップと、前記通信バスのバストラフィックを所定の定期的なキャリア信号について復号化するステップと、前記定期的なキャリア信号のそれぞれの受信時において、前記ローカルクロックのローカルクロック信号の位相を決定するステップと、前記定期的なキャリア信号に関して前記ローカルクロック信号の真の位相を統計的方法により決定するステップと、前記ローカルクロックが同期されるように、前記ローカルクロックの位相を調整するステップとを有する方法を提供する。
【０１０５】
好ましくは、ローカルクロックを同調させるステップは、ローカルクロックの周波数を定期的なクロックキャリア信号に固定するよう調整する。このようにして、連続する定期的なキャリア信号の受信間において整数個のクロックサイクルがあり、ローカルクロックの位相を統計的に決定する方法を簡単化する。
【０１０６】
本態様によると、通信バスは、シリアルバス、パラレルバス又は他の何れかの形式の通信バスであってもよく、デバイスは各バスにアタッチされたタイプを有する。シリアルバスの場合、通信バスは、ＵＳＢ、ＰＣＩ−Ｅｘｐｒｅｓｓバス、イーサネット、Ｆｉｒｅｗｉｒｅバス、ＲＳ２３２又は他のシリアルインタフェースバスであってもよい。パラレルバスの場合、通信バスは、ＰＣＩバス、ＰＸＩバス、ＶＭＥバス、ＶＸＩバス、ＧＰＩＢ又は他のパラレルインタフェースバスであってもよい。通信バスは、有線、光若しくは無線バス、ラックベース機器のバックプレーンバス、プリント回路基板のバス又はイントラチップバスのデバイス間のものであってもよい。
【０１０７】
通信バスは、単一のバス又は複数の相互接続されたバスであってもよい。複数の異なるバスにアタッチされた複数のデバイスがすべて同期されてもよいことは、本態様の範囲内である。例えば（限定されることなく）、ＵＳＢデバイス、イーサネットデバイス及びＰＣＩデバイスはすべて、本発明の本態様を用いて同期されてもよい。
【０１０８】
好ましくは、通信バスはＵＳＢであり、キャリア信号はＵＳＢ仕様で規定されるＵＳＢパケット信号構造、ＵＳＢデバイスに送信されるコマンドシーケンス、ＵＳＢデバイスに送信されるデータシーケンス、ＯＵＴトークン、ＩＮトークン、ＡＣＫトークン、ＮＡＫトークン、ＳＴＡＬＬトークン、ＰＲＥトークン、ＳＯＦトークン、ＳＥＴＵＰトークン、ＤＡＴＡ０トークン、ＤＡＴＡ１トークン又はＵＳＢデータパケットの所定のビットパターンシーケンスの何れかを有してもよい。
【０１０９】
本発明の第５の広範な態様によると、通信バスにアタッチされる複数のデバイスのローカルクロックを同期させる精度を向上させる方法であって、通信バスにアタッチされた複数のデバイスに適用される上述された第４態様の方法を有する方法が提供される。
【０１１０】
本態様によると、通信バスは、シリアルバス、パラレルバス又は他の形式の通信バスであってよく、デバイスは各バスにアタッチされるタイプを有する。
【０１１１】
さらなる他の広範な態様では、本発明は、外部に提供されるリファレンス信号に関してバスにアタッチされた複数のデバイスを同期させる方法を提供する。
【０１１２】
本態様によると、各デバイスのローカルクロックは、本開示に教示される方法の何れかによってホストコントローラ又はバス上のデバイスの１つの定期的な信号（キャリア信号）に関してある期間において特徴付けされる。アタッチされたデバイスの少なくとも１つに提供される外部のリファレンス信号はまた、定期的な信号構造に関して特徴付けされる。外部のリファレンス信号に関する情報が、各デバイスに送信される。デバイスは、その後に外部信号と各自のローカル同期クロックとを周波数と位相に関して合成可能である。
【０１１３】
本発明の第６の態様によると、デバイスの少なくとも１つに提供される外部信号路通信バスにアタッチされる複数のデバイスとを同期させる方法であって、本発明の第３態様の測定及び予測方法を用いて複数のデバイスのフリーランニングオシレータを特徴付けるステップと、第３態様の測定及び予測方法を用いて複数のデバイスの少なくとも１つに提供される外部信号を特徴付けるステップと、第３態様の制御方法を用いて各デバイスの同期ローカルクロックを生成するステップとを有し、ローカルクロックはそれぞれ外部信号の時間ベースに同期される方法が提供される。
【０１１４】
このようにして、リファレンスクロック信号が、上述されたバスにアタッチされた複数のデバイスの１つに提供可能であり、アタッチされた各デバイスは各自のローカルクロックを外部リファレンス信号に合成可能である。外部リファレンス信号は、（限定されることなく）アトミックリファレンスクロック、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）、ＩＥＥＥ−１５８８などの同期イーサネットプロトコル、ＰＸＩ、ＰＸＩ−ｅ、ｃＰＣＩ、ＶＸＩ、ＶＭＥなどの機器シャーシ又は他の何れかのクロックソースから導出されたクロック信号とすることが可能である。
【０１１５】
この点をさらに説明するため、ＵＳＢバスを介しＵＳＢホストコントローラにアタッチされる第１ＵＳＢデバイスにＧＰＳクロックが印加される具体例が提供される。これは、限定的な具体例でなく、単なる例示的な実施例である。
【０１１６】
従って、ＵＳＢホストコントローラは、第１ＵＳＢデバイスに複数のクロックキャリア信号を送信する。キャリア信号は、定期的なＳＯＦ信号であってもよい。キャリア信号は、あるいはＵＳＢホストコントローラの時間領域においてタイムスタンプされた非定期的な信号であってもよい。ＧＰＳクロックは、キャリア信号に関して特徴付けされる。このシナリオを見る他の方法は、キャリア信号とＵＳＢホストコントローラの時間領域とがＧＰＳクロックに従って特徴付けされるというものである。同様の方法では、ＵＳＢにアタッチされる第２ＵＳＢデバイスのローカルオシレータは、キャリア信号に関して特徴付け可能である。
【０１１７】
第１及び第２ＵＳＢデバイスの双方が、ブロードキャストキャリア信号と同様に、同一のキャリア信号を用いて特徴付けされてもよい。あるいは、第１及び第２ＵＳＢデバイスは、キャリア信号の双方のセットが同一の時間領域、すなわち、ＵＳＢホストコントローラから発信されたものである限り、異なるキャリア信号セットを用いて特徴付けされてもよい。
【０１１８】
第２ＵＳＢデバイスの時間領域は、ｉ）ＧＰＳ時間領域がキャリア信号を介しＵＳＢホストコントローラの時間領域にマッピングされ、第２ＵＳＢデバイスの時間領域がキャリア信号を介しＵＳＢホストコントローラの時間領域にマッピングされることによって、ＧＰＳ時間領域にマッピング及び同期可能である。
【０１１９】
第２ＵＳＢデバイスの時間領域は各自の時間領域のキャリア信号の同様のやりとりによって、第３デバイスにマッピングされてもよいことは、当業者に理解されるであろう。また、第３デバイスはＵＳＢデバイスである必要はなく、第２デバイスとキャリア及びタイムスタンプ情報を通信可能な何れかのデバイスであってもよいことに留意すべきである。
【０１２０】
第３デバイスは、ＰＣＩバス、ＰＣＩ−Ｅｘｐｒｅｓｓバス、イーサネット、Ｆｉｒｅｗｉｒｅバス、ＰＣＩ−Ｅｘｐｒｅｓｓバス、ＲＳ２３２バス、ＶＭＥバス、ＶＸＩバス、ＧＰＩＢ又は他のシリアル若しくはパラレルインタフェースバスであってもよい。通信バスは、有線、光若しくは無線バス、ラックベース機器のバックプレーンバス、プリント回路基板上のバス又はイントラチップバス上のデバイス間に設けられてもよい。
【０１２１】
時間領域マッピングの当該方法は、キャリア信号のための極めて正確なクロックソースに依拠しない。それは時間領域間のマッピングを利用するため（タイムスタンプを含む場合、本来的には非定期的でなくてもよい）、デバイスは互いに同期されてもよく、所望される場合には、キャリア信号情報のクオリティに関係なく高度に絶対時間に同期されるようにしてもよい。
【０１２２】
第７の広範な態様では、本発明は、複数の相互接続されたバスにアタッチされる複数のデバイスを同期させる方法であって、バスは各種異なるタイプを有し（限定されることなく、ＵＳＢ、イーサネット、ＰＣＩを含む）、当該方法は、複数のバスにアタッチされた各デバイス（及び適切な場合にはバスコントローラ）間に適用される第１態様の方法と、複数のバスにアタッチされる各デバイス（及び適切な場合にはバスコントローラ）間に適用される第３態様の予測方法と、上記マッピングは各バスにアタッチされる各デバイスの時間ベース間の相互関係を有し、各バスにアタッチされた各デバイスの同期ローカルクロックを生成する制御段階（第３態様など）とを有する方法を提供する。
【０１２３】
好ましくは、複数のバスは、異なるバスタイプ及び／又は同一のバスタイプを有する。例えば、この態様は、ＵＳＢ、ＰＣＩ及び２つのイーサネットバスを有し、又は複数のＵＳＢバスを有するネットワークに等しく良好に適用される。
【０１２４】
好ましくは、制御システムは、本発明の第３態様の制御方法を有する。しかしながら、予測システムにより生成されるマッピングに同期したローカルクロック信号を生成する手段は等しく適用可能であることが理解されるべきである。
【０１２５】
バスは、何れか２つのノード間の１つのみの接続パスと単に接続されてもよいし、又は何れか２つのノード間に複数の接続パスが存在する複数接続されてもよい。
【０１２６】
この広範な態様は、相互関係を構築するため、時間ベース間の複数の相互測定が実行されるバス及びデバイスのネットワークを有する。
【０１２７】
本発明の上記態様のそれぞれの各種特徴は所望される場合には組み合わせ可能であることに留意すべきである。また、教示された方法に基づき装置及びシステムが構成可能であることに留意すべきである。
【０１２８】
ここに提供される各種実施例では、ローカルオシレータの時間の概念は通信バス上のキャリア信号と呼ばれる。キャリア信号は、必ずしも絶対的な時間の概念に対応する必要はなく、何れか適切な時間リファレンスが複数の独立した時間の概念を有するシステムから選択されてもよいことが当業者に理解される。他方、キャリア信号は、ある追跡可能な周波数規格に結び付けられてもよい。実際、所与のローカルオシレータは、システムのための絶対的な時間リファレンス（リファレンスに対してキャリブレートされたキャリア信号による）として選択され、タイムフレームの選択は、最終的には特定のシステムによる。
【０１２９】
さらに、本発明の態様の何れも相互接続における信号伝搬遅延の測定及び補償と組み合わせ可能である。これは、Ｆｏｓｔｅｒらの方法（米国特許出願第１０／６２０，７６９号）又はＩＥＥＥ−１５８８の方法などを含む他の何れかの補償方式を用いて実現可能である。
【０１３０】
さらに、本発明による装置及びシステムが各種方法により実現可能である。例えば、このようなデバイスは、プリント回路若しくはプリント配線基板、セラミック基板、又は半導体レベル、すなわち、単一のシリコン（又は他の半導体物質）チップ上の複数のコンポーネントの形式により構成可能である。さらに、本発明によるシステムは、当業者に容易に理解されるように、協調システム又は単一の機能ユニットとして機能する複数のコンポーネントして実現されてもよい。
【０１３１】
第８の広範な態様によると、本発明は、第１デバイスと少なくとも１つの第２デバイスとを同期させる方法であって、前記第１デバイスはローカルオシレータを有し、前記第２デバイスは通信バスを介し前記第１デバイスとデータ通信し、当該方法は、前記第１デバイスが、前記第１デバイスの時間領域を示す複数のキャリア信号を前記第２デバイスに送信するステップと、前記第２デバイスが、前記複数のキャリア信号を用いてそれのローカルオシレータの周波数を測定するステップと、前記第１デバイスが、同期されることが要求される周波数を示す信号を前記第２デバイスに送信するステップと、前記第２デバイスが、前記第１デバイスの時間領域に同期されるローカルクロック信号を生成するステップとを有する方法を提供する。
【０１３２】
一実施例では、前記第１デバイスと前記第２デバイスとは、ＵＳＢデバイスであり、前記通信バスは、ＵＳＢである。
【０１３３】
一実施例では、前記第１デバイスと前記第２デバイスとの一方は、ＵＳＢデバイスであり、前記第１デバイスと前記第２デバイスとの他方は、ＵＳＢホストコントローラである。
【０１３４】
前記複数のキャリア信号は、定期的であってもよい。
【０１３５】
前記複数のキャリア信号は、非定期的であり、既知の時間に送信されてもよい。
【０１３６】
当該方法は、前記各自の既知の時間を前記第２デバイスに送信するステップをさらに有してもよい。
【０１３７】
当該方法は、前記各自の既知の時間を前記第２デバイスに前記キャリア信号と同じデータパケットにより送信するステップをさらに有してもよい。
【０１３８】
当該方法は、ＵＳＢ  ＳＯＦ境界の近くで前記複数のキャリア信号を送信するステップをさらに有してもよい。
【０１３９】
当該方法は、協調されたユニバーサル時間（ＵＴＣ）の１秒の境界の近くで前記複数のキャリア信号を送信するステップをさらに有してもよい。
【０１４０】
当該方法は、ＧＰＳ時間の１秒の境界の近くで前記複数のキャリア信号を送信するステップをさらに有してもよい。
【０１４１】
当該方法は、位相同期ループ（ＰＬＬ）アーキテクチャにより前記ローカルクロック信号を生成するステップをさらに有してもよい。
【０１４２】
前記ローカルオシレータは、フリーランニングであってもよい。
【０１４３】
当該方法は、プログラマブルプリスケーラとプログラマブルカウンタ機能とを有するプログラマブルカウンタ／タイマーにより前記ローカルクロック信号を生成するステップをさらに有し、前記カウンタ／タイマーは、前記ローカルオシレータからクロック処理される。
【０１４４】
当該方法は、プログラマブルカウンタ／タイマーにより前記ローカルクロック信号を生成するステップをさらに有してもよい。
【０１４５】
前記プログラマブルカウンタ／タイマーは、プログラマブルプリスケーラと、プログラマブルカウンタ機能と、前記入力されたローカルオシレータの位相をシフトする機構とを有し、前記カウンタ／タイマーは、前記ローカルオシレータからクロック処理される。
【０１４６】
前記カウンタ／タイマーは、マイクロコントローラ、ＦＰＧＡデバイス、プログラマブルロジックデバイス又は複合半導体デバイスの一部であってもよい。
【０１４７】
前記通信バスは、ＰＣＩバス、ＰＣＩ−Ｅｘｐｒｅｓｓバス、イーサネットバス、Ｆｉｒｅｗｉｒｅバス又は無線バスであってもよい。
【０１４８】
前記複数のキャリア信号は、定期的であり、当該方法はさらに、電圧制御水晶オシレータ（ＶＣＸＯ）又は位相同期ループ（ＰＬＬ）アーキテクチャによって前記ローカルクロック信号を生成するステップを有する。
【０１４９】
第９の広範な態様によると、本発明は、ローカルオシレータと、マイクロコントローラと、カウンタ／タイマー（カウンタ／タイマー回路の形式など）とを有し、複数のバスにより導出されたタイムスタンプされたクロックキャリア信号の実質的にすべてに応答するよう構成されるＵＳＢデバイスと、ＵＳＢトラフィックを観察し、ＵＳＢデータストリームからＵＳＢホストコントローラにより送信され、分散されたクロック周波数と位相とに関する情報を含むクロックキャリア信号を有する信号を復号化し、復号化されたキャリア信号を出力するよう構成される回路と、前記ローカルオシレータの時間領域における前記クロックキャリア信号の受信間のインターバルを測定するよう構成される第１カウンタ／タイマーであって、前記測定は前記既知のキャリア信号周波数に関する前記ローカルオシレータの周波数に関する情報を提供する第１カウンタ／タイマー（カウンタ／タイマー回路の形式など）とを有し、当該装置は、要求される同期周波数と前記ローカルオシレータの周波数とに基づき第２カウンタ／タイマー（カウンタ／タイマー回路の形式など）の設定を計算することによって、前記要求される周波数に関する情報を含む前記ＵＳＢホストコントローラからのメッセージに応答するよう構成され、前記ＵＳＢデバイスは、（カウンタ機能のケースでは）終了カウントイベント又はタイムアウトイベント（第２カウンタ／タイマーがローカルオシレータによりクロック処理されるタイマー機能のケースでは）からなる出力条件に達すると、出力信号を生成するよう前記ＵＳＢデバイスのカウンタ／タイマーを設定し、前記第２カウンタ／タイマーは、前記出力条件（終了カウント又はタイムアウト）に達すると、前記ローカルオシレータの周波数に関する更新された情報に基づき新たな設定にリセットし、再びイネーブルとされるように設定される装置を提供する。
【０１５０】
第１０の広範な態様によると、本発明は、ＵＳＢホストコントローラにアタッチされたＵＳＢデバイスのローカルクロックを同期させる方法であって、前記ホストコントローラが、前記ＵＳＢホストコントローラの時間領域における既知の時間のクロックキャリア信号から構成される複数の信号を前記ＵＳＢデバイスに送信するステップと、前記ＵＳＢデバイスによりＵＳＢトラフィックを観察し、前記トラフィックから分散されたクロック周波数と位相とに関する情報を含む前記複数の信号を復号化し、復号化されたキャリア信号を出力するステップと、前記ＵＳＢホストコントローラの時間領域に関する情報を提供するため、前記ローカルクロックの時間領域における前記復号化されたキャリア信号の受信間のインターバルを測定するステップと、前記複数の復号化されたキャリア信号に関して前記ローカルクロックの位相を決定するステップと、前記ＵＳＢホストコントローラが、前記クロックキャリア信号の実質的にすべての各自の既知の時間を前記ＵＳＢデバイスに送信するステップと、前記ＵＳＢホストコントローラが、前記要求された同期周波数と位相とを示すメッセージを前記ＵＳＢデバイスに送信するステップと、前記ローカルクロックが前記ＵＳＢホストコントローラの時間の概念で同相に同調されるように、前記ローカルクロックの周波数と位相とを制御するステップとを有する方法を提供する。
【０１５１】
前記複数の信号は、定期的であってもよい。
【０１５２】
前記定期的な信号は、ＵＳＢ  ＳＯＦ信号であってもよい。
【０１５３】
当該方法は、前記各自の既知の時間を前記ＵＳＢデバイスに前記複数の信号と同じデータパケットにより送信するステップをさらに有してもよい。
【０１５４】
当該方法は、協調されたユニバーサル時間（ＵＴＣ）又はＧＰＳ時間の１秒の境界の近くで前記複数のキャリア信号を送信するステップをさらに有してもよい。
【０１５５】
前記ローカルクロックは、位相同期ループ（ＰＬＬ）アーキテクチャ又は電圧制御水晶オシレータ（ＶＣＸＯ）を有してもよい。
【０１５６】
当該方法は、ＦＰＧＡデバイスやプログラマブルロジックデバイスによって前記ローカルクロックを生成するステップをさらに有してもよい。
【０１５７】
前記カウンタ／タイマーは、プログラマブルプリスケーラと、プログラマブルカウンタ機能とを有し、前記カウンタ／タイマーは、前記ローカルオシレータからクロック処理される。
【０１５８】
前記プログラマブルカウンタ／タイマーはさらに、前記入力されたローカルオシレータの位相をシフトする機構を有してもよい。
【０１５９】
前記カウンタ／タイマーは、マイクロコントローラの一部であってもよい。
【０１６０】
第１１の広範な態様によると、本発明は、アタッチされるＵＳＢホストコントローラの時間領域とＵＳＢデバイスのローカルクロックとを同期させる方法であって、前記ＵＳＢデバイスは、ローカルオシレータとカウンタ／タイマー機能とを有し、当該方法は、前記ホストコントローラが、前記ＵＳＢホストコントローラの時間領域において既知の周波数のクロックキャリア信号を構成する複数の信号を前記ＵＳＢデバイスに送信するステップと、前記ＵＳＢデバイスによりＵＳＢトラフィックを観察し、前記ＵＳＢトラフィックから分散されたクロック周波数と位相とに関する情報を含む前記複数の信号を復号化し、それから復号化されたキャリア信号を生成するステップと、前記ローカルオシレータの時間領域における第１カウンタ／タイマー機能により前記復号化されたキャリア信号の受信間のインターバルを測定し、前記インターバルから前記既知のキャリア信号インターバルに関して前記ローカルオシレータの周波数を決定するステップと、前記複数の復号化されたキャリア信号に関して前記ローカルオシレータの位相を決定するステップと、前記ＵＳＢホストコントローラが、前記要求されたローカルクロック周波数に関する情報を含むメッセージを前記ＵＳＢデバイスに送信するステップと、前記ローカルオシレータの要求されたローカルクロック周波数と位相とを用いて第２カウンタ／タイマー機能の設定を計算するステップと、前記ＵＳＢデバイスの時間領域における所定の時間にローカルクロック移行信号を生成するよう前記第２カウンタ／タイマー機能を設定するステップとを有し、前記第２カウンタ／タイマー機能は、前記ローカルオシレータによりクロック処理され、前記ローカルクロック移行信号は、前記ローカルクロック出力を切り替える方法を提供する。
【０１６１】
前記ローカルオシレータは、フリーランニングであってもよい。
【０１６２】
当該方法は、前記各自の複数の信号の既知の時間を前記ＵＳＢデバイスに前記複数の信号と同じデータパケットにより送信するステップをさらに有してもよい。
【０１６３】
一実施例では、前記第１カウンタ／タイマーからの時系列な読み込みは、前記復号化されたキャリア信号のそれぞれの受信時における前記ローカルオシレータの位相に関する情報を含む。
【０１６４】
前記第２カウンタ／タイマーを設定するステップは、次に要求されるローカルクロック移行前に、前記ローカルオシレータのサイクル数を表すスタート値をセットすることを含むものであってもよい。
【０１６５】
当該方法は、前記第２カウンタ／タイマーがカウンタ機能のケースにおいて終了カウントに達すると、前記ローカルクロック移行信号を生成するステップをさらに有してもよい。
【０１６６】
当該方法は、前記２カウンタ／タイマーがタイマー機能のケースにおいてタイムアウト状態に達すると、前記ローカルクロック移行信号を生成するステップをさらに有してもよい。
【０１６７】
当該方法は、ローカルオシレータの周波数と位相とを繰り返し測定するステップをさらに有してもよい。
【０１６８】
当該方法は、前記ローカルオシレータの周波数と位相との繰り返しの測定を統計的に解析し、前記測定の精度を向上させるステップをさらに有してもよい。
【０１６９】
当該方法は、前記ローカルクロック信号の同期を維持するように前記第２カウンタ／タイマーの設定を継続的に更新するステップをさらに有してもよい。
【０１７０】
前記第１カウンタ／タイマー機能は、マイクロコントローラ、ＦＰＧＡデバイス又はプログラマブルロジックデバイス内に含まれてもよい。
【０１７１】
当該方法は、前記第１カウンタ／タイマーを読み込み、前記復号化されたキャリア信号の受信に応答して前記第１カウンタ／タイマーをリセットするステップをさらに有してもよい。
【０１７２】
前記複数の信号は、定期的であってもよい。
【０１７３】
前記複数の信号は、ＵＳＢ  ＳＯＦ信号であってもよい。
【０１７４】
前記複数の信号は、非定期的であり、当該方法はさらに、前記ＵＳＢホストコントローラの時間領域の既知の時間に前記信号を生成するステップを有する。
【０１７５】
当該方法は、ＵＳＢ  ＳＯＦ信号の近くで前記複数の信号を送信するステップをさらに有してもよい。
【０１７６】
当該方法は、協調されたユニバーサル時間（ＵＴＣ）の１秒の境界又はＧＰＳ時間の１秒の境界の近くで前記複数のキャリア信号を送信するステップをさらに有してもよい。
【０１７７】
第１２の広範な態様によると、本発明は、通信バスにアタッチされ、ローカルオシレータを有するデバイスのローカルオシレータの周波数と位相とを決定する方法であって、前記デバイスが、前記通信バスのバストラフィックをモニタリングし、前記バストラフィックから前記バスにアタッチされた他の複数のデバイスの少なくとも１つにより生成された複数の時間キャリア信号を復号化するステップと、前記デバイスが、前記既知のキャリア信号インターバルに関して前記ローカルオシレータの周波数に関する情報を提供するため、前記ローカルオシレータの時間境域の前記復号化されたキャリア信号の受信間のインターバルを測定するステップと、前記複数の復号化されたキャリア信号に関して前記ローカルオシレータの位相を決定するステップとを有する方法を提供する。
【０１７８】
前記複数のキャリア信号は、前記第２デバイスの時間領域においてタイムスタンプされてもよい。
【０１７９】
前記複数のキャリア信号は、非定期的であってもよい。
【０１８０】
前記タイムスタンプされたキャリア信号の受信間の複数のインターバルは、前記他のデバイスの時間領域の前記ローカルオシレータの周波数の複数の測定を提供してもよい。
【０１８１】
一実施例では、前記インターバルの時系列は、前記復号化されたキャリア信号のそれぞれの受信時の前記ローカルオシレータの位相を示す。
【０１８２】
他の実施例では、前記インターバルの時系列は、前記他のデバイスの時間領域の前記ローカルオシレータによる時間の進行を示す。
【０１８３】
当該方法は、前記ローカルオシレータの周波数の決定の精度を向上させるため、前記他のデバイスの時間領域における前記複数の測定を統計的に解析するステップをさらに有してもよい。
【０１８４】
前記ローカルオシレータの時間領域の前記復号化されたキャリア信号の受信間のインターバルを測定するステップは、前記タイムスタンプされたキャリア信号の受信によってゲート処理されるウィンドウ内の前記ローカルオシレータの移行回数をカウントすることを含むものであってもよい。
【０１８５】
一実施例では、前記他のデバイスの１つは、バスマスタデバイスであってもよい。前記他のデバイスは、ピアデバイスであってもよい。
【０１８６】
第１３の広範な態様によると、本発明は、複数の第２クロックの少なくとも１つの時間領域における移行の時間において第１フリーランニングクロックの時間を予測する方法であって、前記複数の第２クロックの少なくとも１つの時間領域における前記第１クロックのローカル時間の複数の測定を含むデータセットを読み込むステップと、前記第１クロックの時間領域と前記複数の第２時間領域のそれぞれとの間の関係を計算するステップと、前記第１クロックの時間領域と前記複数の第２時間領域の少なくとも１つのとの間の時間について順方向に関係を推定するステップと、前記複数の時間領域の間の関係に基づき移行の時間における前記第１クロックのローカル時間を決定するステップとを有する方法を提供する。
【０１８７】
当該方法は、前記複数の時間領域の間の複数の関係の統計解析によって、前記第１クロックのローカル時間の決定を向上させるステップをさらに有してもよい。
【０１８８】
前記推定は、例えば、線形、多項式、指数外挿又は推定（ｅｘｔｒａｐｏｌａｔｉｏｎ）技術、又はそれらの組み合わせ、又はカルマン又はG-Hフィルタリング技術からなるものであってもよい。
【０１８９】
第１４の広範な態様によると、本発明は、複数のリファレンスクロックの少なくとも１つの時間領域における移行の時間の複数のフリーランニングクロックの時間を予測する方法であって、前記複数のリファレンスクロックの少なくとも１つの時間領域における前記複数のフリーランニングクロックのローカル時間の複数の測定を含むデータセットを読み込むステップと、前記フリーランニングクロックのそれぞれの時間領域と前記複数のリファレンス時間領域のそれぞれとの間の関係を計算するステップと、前記フリーランニングクロックのそれぞれの時間領域と前記複数のリファレンス時間領域の少なくとも１つとの間の時間について順方向に関係を推定するステップと、前記複数の時間領域の間の前記複数の関係に基づき移行の時間に前記フリーランニングクロックのそれぞれのローカル時間を決定するステップとを有する方法を提供する。
【０１９０】
当該方法は、前記複数の時間領域の間の複数の関係の統計解析によって、前記フリーランニングクロックのローカル時間の決定を向上させるステップをさらに有してもよい。
【０１９１】
前記推定は、例えば、線形、多項式、指数外挿又は推定（ｅｘｔｒａｐｏｌａｔｉｏｎ）技術、又はそれらの組み合わせ、又はカルマン又はG-Hフィルタリング技術からなるものであってもよい。
【０１９２】
第１５の広範な態様によると、本発明は、ローカルオシレータからタイミング決定されるイベントを制御する方法であって、前記イベントが前記ローカルオシレータの時間領域において生成される第１時間を示すデータを受信するステップと、前記ローカルオシレータからクロック信号を生成するステップと、前記第１時間と現在の時間との間のインターバルを示すデータによってカウンタ／タイマー機能をリセット及び設定するステップと、カウンタ機能のケースにおいて終了カウントに達すると、又はタイマー機能のケースにおいてタイムアウトに達すると、前記イベントを生成するステップと、前記ローカルオシレータにより前記カウンタ／タイマーをクロック処理するステップとを有する方法を提供する。
【０１９３】
前記クロック信号は、前記ローカルオシレータと同じ周波数であり、同相であってもよい。
【０１９４】
前記クロック信号は、前記ローカルオシレータと同相で前記周波数の倍数であり、前記クロック信号は、前記ローカルオシレータより大きなクロック処理解像度を提供するものであってもよい。
【０１９５】
一実施例では、前記ローカルオシレータは、フリーランニングである。
【０１９６】
他の実施例では、前記ローカルオシレータは、電圧制御水晶オシレータ（ＶＣＸＯ）又は位相同期ループ（ＰＬＬ）である。
【０１９７】
第１６の広範な態様によると、本発明は、ローカルオシレータからローカルクロック信号を生成する方法であって、ｉ）前記ローカルオシレータの時間領域において前記ローカルクロックの移行が生成される第１時間を示すデーらを受信するステップと、ｉｉ）前記ローカルオシレータからクロック信号を生成するステップと、ｉｉｉ）現在の時間と前記第１時間との間のインターバルを示すデータによりカウンタ／タイマー機能をリセット及び設定するステップと、ｉｖ）カウンタ機能のケースでは終了カウントイベントに達すると、又はタイマー機能のケースではタイムアウトイベントに達すると、前記ローカルクロックの移行を生成するステップと、ｖ）前記ローカルクロックによって前記カウンタ／タイマーをクロック処理するステップと、ｖｉ）前記ローカルクロックの移行を１回以上生成すると、前記ステップｉ）〜ｖ）を繰り返すステップとを有する方法を提供する。
【０１９８】
前記クロック信号は、前記ローカルオシレータと同一の周波数と位相であってもよい。
【０１９９】
前記クロック信号は、前記ローカルオシレータと同一の位相であり、ある倍数の周波数であり、前記クロック信号は、前記ローカルオシレータより大きなクロック処理解像度を提供するようにしてもよい。
【０２００】
前記ローカルオシレータは、フリーランニングであってもよい。
【０２０１】
他の実施例では、前記ローカルオシレータは、電圧制御水晶オシレータ（ＶＣＸＯ）又は位相同期ループ（ＰＬＬ）であり、要求される周波数に固定される。
【０２０２】
当該方法は、前記ローカルクロック信号の周波数と位相とのより細かい制御を提供するため、複数の設定の間の前記カウンタタイマーの設定を調整又はディザリングするステップをさらに有してもよい。
【０２０３】
第１７の広範な態様によると、本発明は、共通の通信バスにアタッチされる複数の非同期デバイスによって取得されるデータを同期させる方法であって、前記複数のデバイスの非同期の時間領域の間のマッピングを決定するステップと、各デバイスの時間領域において取得される前記データをタイムスタンプするステップと、前記タイムスタンプされたデータを中央位置に送信するステップと、前記複数のデバイスからのデータを共通の時間領域において時間調整するステップとを有し、前記決定するステップは、上述された方法により前記デバイスのそれぞれのローカルオシレータの周波数と位相とを決定するステップと、上述された方法により複数の第２ローカルオシレータの少なくとも１つの時間領域における以降の時間に前記ローカルオシレータの時間を予測するステップとを有する方法を提供する。
【０２０４】
第１８の広範な態様によると、本発明は、ＵＳＢにアタッチされる複数の非同期のＵＳＢデバイスにより取得されるデータを同期させる方法であって、それぞれは、フリーランニングローカルオシレータを有し、当該方法は、前記複数のＵＳＢデバイスが前記ＵＳＢトラフィックをモニタリングし、前記ＵＳＢからＵＳＢホストコントローラにより生成された複数の時間キャリア信号を復号化するステップと、前記複数のＵＳＢデバイスが、前記既知のキャリア信号インターバルに関して前記ローカルオシレータの周波数に関する情報を提供するため、前記ローカルオシレータの時間領域における前記復号化されたキャリア信号の受信間のインターバルを測定するステップと、前記複数の復号化されたキャリア信号に関して前記各ＵＳＢデバイスのローカルオシレータの位相を決定するステップと、前記複数のＵＳＢデバイスが、データを取得するステップであって、前記各フリーランニングローカルオシレータによりデータ取得がクロック処理される、ステップと、各ＵＳＢデバイスのそれぞれの時間領域において取得されるデータをタイムスタンプするステップと、前記タイムスタンプされたデータを中央位置に送信するステップと、前記複数のデバイスからのデータを共通の時間領域に時間調整するステップとを有する方法を提供する。
【０２０５】
第１９の広範な態様によると、本発明は、バスにより導出される時間ベースに１以上のデバイスのローカルオシレータを同期させるシステムであって、前記バスにより導出される時間ベースに関して前記ローカルオシレータを特徴付けるよう構成される測定段階と、前記ローカルオシレータのそれぞれにおける時間の進捗を決定するよう構成される予測段階と、前記各自のローカルオシレータから前記各デバイスのそれぞれにローカルな同期クロック信号を生成するよう構成される制御段階とを有するシステムを提供する。
【０２０６】
一実施例では、前記測定段階は、上述された方法を実行するよう構成され、前記予測段階は、上述された方法を実行するよう構成され、前記制御段階は、上述された方法を実行するよう構成される。
【０２０７】
前記予測段階は、中央配置された計算機構を有し、当該システムは、前記デバイスのそれぞれに前記第１時間を示すデータを送信するよう構成される。
【０２０８】
一実施例では、前記複数の計算機構は、各デバイス内に配置され、前記第１時間を示すデータは、前記デバイスのそれぞれにローカルに計算される。
【０２０９】
第１９の広範な態様によると、本発明は、通信バスを介し接続される複数のデバイスを同期させる方法であって、それぞれは、ローカルオシレータを有し、当該方法は、前記複数のデバイスから選ばれた第１又はマスタタイミングデバイスを指定するステップと、前記マスタタイミングデバイスは、複数の第２デバイスのそれぞれに複数のクロックキャリア信号を送信するステップと、前記複数の第２デバイスのそれぞれは、上述された方法により前記マスタタイミングデバイスの時間領域に関して各自のローカルオシレータの周波数と位相とを決定するステップと、上述された方法により前記マスタタイミングデバイスの時間領域において前記複数の他のデバイスのそれぞれにおいて時間の進捗を予測するステップと、上述された方法により前記マスタタイミングデバイスの時間の概念と前記複数のデバイスのそれぞれのローカルクロックを同期させるステップとを有する方法を提供する。
【０２１０】
当該方法は、前記第１時間を示すデータを中央計算し、前記データを前記デバイスのそれぞれに送信するステップをさらに有してもよい。
【０２１１】
他の実施例では、当該方法は、前記デバイスのそれぞれにローカルな前記第１時間を示すデータを計算するステップをさらに有してもよい。
【０２１２】
前記クロックキャリア信号は、定期的であってもよい。
【０２１３】
他の実施例では、前記クロックキャリア信号は、非定期的であり、前記マスタタイミングデバイスの時間領域において既知の時間にタイムスタンプ又は送信される。
【０２１４】
第２０の広範な態様によると、本発明は、複数の相互接続された通信バスを介し接続される複数のデバイスを同期させる方法であって、それぞれは、ローカルオシレータを有し、当該方法は、前記複数のデバイスから選択された各バス相互接続に対してマスタタイミングデバイスを指定するステップと、前記複数のマスタタイミングデバイスは、前記複数の他のデバイスのそれぞれに複数のクロックキャリア信号を送信するステップと、前記複数の他のデバイスのそれぞれは、上述された方法により前記マスタタイミングデバイスの時間領域に関して各自のローカルオシレータの周波数と位相とを決定するステップと、上述された方法により前記マスタタイミングデバイスの時間領域において前記複数の他のデバイスのそれぞれにおける時間の進捗を予測するステップと、上述された方法により前記マスタタイミングデバイスの時間の概念と前記複数のデバイスのそれぞれのローカルクロックを同期させるステップとを有する方法を提供する。
【０２１５】
複数の相互接続される通信バスにおける前記複数のデバイスのそれぞれにおける時間の進捗は、任意の精度まで知られ、クロックキャリア信号の周波数の精度は、より低い程度まで知られる。
【０２１６】
本発明の上記態様のそれぞれの各種特徴の何れかは適している及び所望される場合には組み合わせ可能であることに留意されるべきである。
【図面の簡単な説明】
【０２１７】
【図１】図１は、本発明の第１の広範な態様による同期ＵＳＢデバイスの概略図である。
【図２】図２は、本発明の第１の広範な態様において用いられるマイクロコントローラの概略図である。
【図３】図３は、図２のマイクロコントローラの内部リソース及びアーキテクチャの概略図である。
【図４】図４は、本発明の第２実施例による同期ＵＳＢの概略図である。
【図５】図５は、本発明の第３実施例によるＧＰＳ時間サーバに同期したＵＳＢの概略図である。
【図６】図６は、本発明の第４実施例によるＰＣＩバスを介し同期する同期デバイスのネットワークの概略図である。
【図７】図７は、本発明の第５実施例による同期した相互接続されたバスのハブリッドネットワークの概略図である。
【図８】図８は、同期システムのキャリア及び同期信号の概略図である。
【発明を実施するための形態】
【０２１８】
図１において、本発明の第１実施例によるデジタルＵＳＢ１２を備えたＵＳＢデバイス１０が概略的に示される。ＵＳＢデバイス１０は、ＵＳＢ１２と接続するためのバスコネクタ１４と、ＵＳＢインタフェース／マイクロコントローラ１６と、デジタル入出力回路１８（アナログ・デジタルコンバータ、圧力トランスデューサ、ストレインゲージなどの形式による）と、フリーランニングオシレータ２０とを有する。オシレータ２０は、ＵＳＢインタフェース／マイクロコントローラ１６のためのクロック信号２２を提供する。ＵＳＢインタフェース／マイクロコントローラ１６は、デジタル入出力回路１８を制御するデータバス２６を有する。
【０２１９】
ＵＳＢインタフェース／マイクロコントローラ１６は、ＵＳＢトラフィック２４から内部的に復号化されたクロックキャリア信号とクロック信号２２とを比較するよう構成される。
【０２２０】
オシレータの周波数は、毎秒のサイクルにより測定される。オシレータはしばしばクロックとして用いられ、オシレータの各サイクルはクロックの１回の“作動”とみなすことができる。このため、時間はオシレータの作動回数に関して測定されてもよい。これは、時間のローカルな概念を提供し、このため、オシレータはまた、利用可の杖ある場合には時間の絶対的な概念（又はより信頼できる）と呼ばれてもよい。このようにして、ＵＳＢトラフィック２４から復号化されたキャリア信号は、比較のための他の時間ベースを提供する。このキャリア信号が絶対時間のより正確な概念（又は所与のシステムの選択された適切な時間ベース）を含む場合、ローカルオシレータ２０は当該キャリア信号に対して測定されてもよい。
【０２２１】
ＵＳＢのケースでは、ローカルなフリーランニングオシレータ２０のクロック信号２２は、ＳＯＦパケットキャリア信号と呼ばれる。これは、ＵＳＢホストコントローラのローカルクロックと呼ばれるシステムを生じさせる。ＳＯＦパケットは、２０４８でロールオーバする１２ビット数により番号付けされる。しかしながら、ホストコントローラのオペレーティングシステムがそれの時間リファレンスとしてより大きなビットカウント番号を維持することが可能である。これは、必要に応じて他の相互接続されたバスト比較可能な重要なＵＳＢホストコントローラを維持するのに望ましい。
【０２２２】
上述されるように、繰り返しのクロックキャリア信号の形式によるクロック同期情報は、ＵＳＢインタフェース／マイクロコントローラ１６によって、ＵＳＢ１２からのＵＳＢトラフィック２４から復号化される。図２は、内部回路を示す図１のＵＳＢインタフェース／マイクロコントローラ１６の概略図である。ＵＳＢインタフェース／マイクロコントローラ１６は、ＵＳＢ物理レイヤトランシーバ（Ｐｈｙ）３２と従来のマイクロコントローラ３４とを有する。ＵＳＢＰｈｙ３２は、ＵＳＢインタフェースポート３６を介しＵＳＢトラフィックを受信する。マイクロコントローラ３２は、複数の出力ポート（３２によりまとめて示される）と、クロックソース入力ポート４０と、専用の同期クロック生成出力４２とを有し、同期クロック生成出力４２は、実際には複数の出力ポート３８の専用の１つであってもよい。
【０２２３】
ＵＳＢ  Ｐｈｙ３２は、データバス４４と追加的なハードウェアインタラプト信号接続４６とを介しマイクロコントローラ３４に接続される。ハードウェアインタラプト信号接続４６は、ＵＳＢ  Ｐｈｙ３２がＵＳＢトラフィックから所定のキャリア信号を受信したことをマイクロコントローラ３４に通知することを可能にする。
【０２２４】
図３は、ＵＳＢインタフェース／マイクロコントローラ１６のマイクロコントローラ３４の概略図である。マイクロコントローラ３４は、図２のデータバス４４のための入力５２と、ＳＯＦインタラプト入力ポート５４と、複数の出力ポート（ＵＳＢインタフェース／マイクロコントローラ１６の出力ポート３８と接続又は一体化される５６によりまとめて示される）と、クロックソース入力ポート５８と、専用の同期クロック生成出力６０（ＵＳＢインタフェース／マイクロコントローラ１６のクロックソース入力ポート４０と専用の同期クロック生成出力４２とに接続又は一体化される）とを有する。マイクロコントローラ３４はまた、処理コア６２（典型的には、メモリと他の機能とを有する）と、第１及び第２カウンタ／タイマ６４ａ，６４ｂとを有する。
【０２２５】
第１カウンタ／タイマー６４ａは、ＳＯＦキャリア信号６６に関してローカルオシレータ時間（又は周波数）を測定するよう構成される。第２カウンタ／タイマー６４ｂは、クロックソース入力ポート５８からのローカルクロック信号２２によりクロック処理される。ＳＯＦキャリア信号６６は、第２カウンタ／タイマー６４ｂが連続するＳＯＦキャリア信号６６の受信間の期間においてローカルクロック信号２２の作動（又は期間の回数）をカウントするように、第１カウンタ／タイマー６４ａをゲート処理するのに用いられる。連続するＳＯＦの受信により規定される期間におけるデジタル時間表現（カウント）を有する第１カウンタ／タイマー６４ａの測定結果は、第１カウンタ／タイマー６４ａにより処理コア６２に送信され、処理コア６２は、この測定結果６８からＵＳＢデバイス１０の時間領域における時間を決定する。
【０２２６】
従来のＵＳＢマイクロコントローラ（ＵＳＢマイクロコントローラのＣｙｐｒｅｓｓ  ＥＺＵＳＢ−ＦＸシリーズなど）は、ＵＳＢデータストリームにおけるＳＯＦパケットの受信に対するソフトウェアインタラプトを実行するよう構成可能である。本実施例では、マイクロコントローラ３４において提供されるインタラプトサービスルーチンは、ＳＯＦパケットの受信に応答して実行され、第１カウンタ／タイマー６４ａをゲート処理するのに用いられるリファレンスタイミング信号を生成するよう構成される（ＵＳＢフルスピードの対しては１ｋＨｚ又はＵＳＢ高速に対して８ｋＨｚ）。
【０２２７】
ローカルクロック時間（又は周波数／期間）の複数の測定結果６８が導かれ、処理コア６２は、より高い精度の最終結果を決定するため、これらの結果６８に統計技術を適用する。ローカルクロック時間の周期的な決定は、測定方法として本発明の第３の広範な態様において説明される。
【０２２８】
本実施例の予測方法によると、ＵＳＢデバイス１０は、第２カウンタ／タイマー６４ｂがＵＳＢ１２の時間領域との時間同期を維持するためどのように構成されるべきかを決定する。カウンタ／タイマー６４ｂにロードされた値は、各時間領域、このケースでは、ＳＯＦ時間領域（ホストコントローラ）とローカルオシレータ２０（ＵＳＢデバイス１０）のものの時間の観念に基づく。
【０２２９】
第２カウンタ／タイマー６４ｂは、上述された本発明の第３の広範な態様の制御方法に従って動作する。このため、第２カウンタ／タイマー６４ｂは、ローカルクロック信号２２からクロック処理され、このため、ローカルオシレータ２０の時間領域に入る。マイクロコントローラの処理コア６２は、値７０によりカウンタ／タイマー６４ｂを定期的に予め設定する。第２カウンタ／タイマー６４ｂは、処理コア６２から送信される適切な制御信号によってタイマーモード又はカウンタモードで動作するようにしてもよい。第２カウンタ／タイマー６４ｂがターミナルカウント又はタイムアウト状態に達すると、ハードウェア信号７２が、同期クロック生成ポート６０において生成される。このハードウェア信号７２は、マイクロコントローラ３４のクロックピン又は他のファンクションを切り替えるのに利用可能である。
【０２３０】
第２カウンタ／タイマー６４ｂにロードされた値の慎重な一時的変更は出力信号ｙの位相の変更をもたらすことが当業者に明らかであろう。ロードされた値７０の永続的な変更は、周波数の変更をもたらすことになる。例えば、それの１２５μｓのキャリア信号（すなわち、連続するＵＳＢ  ＳＯＦキャリア信号の受信間の整数個のサイクル）と同期した１０ＭＨｚのローカルクロックは、１００ｎｓの期間を有し、このため、各１２５μｓのＳＯＦ期間において１２５０サイクルが発生する。第２カウンタ／タイマー６４ｂが１２５０によりロードされ、クロック周波数の変更がない場合、次のＳＯＦパケットの受信時の位相関係は変化しない。
【０２３１】
他方、ローカルクロックの位相が１００ｎｓだけ進捗する必要がある場合、１２４９の値が１つのＳＯＦ期間のために第２カウンタ／タイマー６４ｂにロードされ、その後に以降の各ＳＯＦ期間に対して１２５０がロードされる。
【０２３２】
本発明の第２実施例によると、図４の８０により概略表示される同期ＵＳＢが提供される。同期ＵＳＢ８０は、ＵＳＢホストコントローラ８２と複数のＵＳＢデバイス８４，８６，８８（それぞれが図１のＵＳＢデバイス１０の特徴を備える）とを有する。ＵＳＢデバイス８４，８６，８８のそれぞれは、フリーランニングオシレータ又はクロック９０，９２，０４を有する。ＵＳＢホストコントローラ８２は、ローカルクロック９６を有し、それにより駆動され、ＵＳＢデバイス８４，８６，８８にブロードキャストされた周期的なＳＯＦパケットを生成する。
【０２３３】
ＵＳＢデバイス８４，８６，８８はそれぞれ、第１実施例において上述された方法に従って同期されたローカルクロックを生成する。ＵＳＢデバイス８４は、ＵＳＢ接続９８を介したＵＳＢホストコントローラ８２のクロック９６の時間ベース（周期的なＳＯＦパケット受信によりタイミング化された）に対するそれの内部オシレータ９０のレシオを測定する。同様に、ＵＳＢデバイス８６，８８は、ＵＳＢホストコントローラ８２からの同一のブロードキャストされたＳＯＦパケットを用いて、それらのローカルクロックレートを測定する。
【０２３４】
本発明の第３の広範な態様の測定方法は、周期的なＳＯＦキャリア信号（すなわち、ＵＳＢホストコントローラ８２の時間ベース）の受信に対応する各ＵＳＢデバイス８４，８６，８８における（オシレータ９０，９２，９４各自の）ローカル時間を有するデータのアレイを提供する。
【０２３５】
さらに、第３の態様の予測方法によると、各オシレータ９０，９２，９４の相対時間のマッピングが生成及び推定される。第３態様の制御方法によると、各ＵＳＢデバイス８４，８６，８８は、各自のフリーランニングオシレータ９０，９２，９４からのクロック処理時に、クロック信号を同期的に出力する。
【０２３６】
ローカルオシレータ９０，９２，９４のクロックレートが高くなるに従って、周波数の制御の精度をより高くすることが可能である。しかしながら、ローカルオシレータの周波数が増加すると、ローカルオシレータの周波数安定性は、所与の制御ループ期間に対してより厳しくならなければならない。
【０２３７】
ローカルオシレータ９０，９２，９４の周波数安定性は、測定、予測及び制御ループがどの程度の頻度により実行されるべきか決定する。ローカルオシレータ９０，９２，９４が、１００ｐｐｍ（ｐａｒｔｓ  ｐｅｒ  ｍｉｌｌｉｏｎ）の周波数公差により４８ＭＨｚで動作する標準的な水晶オシレータチップの形式により提供され、周期的なキャリア信号が正確に理想的な１２５μｓインターバルで発生するＵＳＢ  ＳＯＦパケットトークン対応すると仮定される場合、１２５μｓの各インターバルにおいて、４８ＭＨｚクロックの６０００回の作動があることになる。クロックがそれの公差バンドのエンドにある場合、周波数は４８．０００４８ＭＨｚとなるであろう。これは、１２５μｓのインターバルにおいて６０００．０６回の作動をもたらす。ローカルオシレータは、１７マイクロフレーム期間毎（約２ｍｓ毎）に４８ＭＨｚクロックの１サイクル（約２０ｎｓ）の誤差を生じることになる。
【０２３８】
制御解像度又はリゾルーションは４８ＭＨｚによる１回のクロック作動であると仮定すると、制御ループは、２ｍｓ又は５００Ｈｚ毎に約１回動作しさえすればよい。同様に、ＯＣＸＯ（Ｏｖｅｎ  Ｃｏｔｒｏｌｌｅｄ  Ｃｒｙｓｔａｌ  Ｏｓｃｉｌｌａｔｏｒ）などの高仕様ローカルクロックソースが利用される場合、クロックの安定性はあまり頻繁でない制御ループを可能にする。
【０２３９】
図５は、本発明の第３実施例によるＧＰＳクロックに同期したＵＳＢ１００の概略図である。本実施例によると、同期ＵＳＢ１００は、ＵＳＢホストコントローラ１２０と、これとデータ通信する複数のＵＳＢデバイス１０４，１０６とを有する。ＵＳＢデバイス１０６は、さらにＧＰＳ時間サーバ１０８に接続される。ＧＰＳ時間サーバ１０８は、アンテナ１１０を介しＧＰＳ（又は等価な）衛星システムから時間コードを受信し、高精度のユニバーサル時間に正確なローカルクロック１１２を維持する。
【０２４０】
ＧＰＳ時間サーバ１０８は、ＵＳＢデバイス１０６とのデータ接続１１４を介しユニバーサル時間の秒境界上の１ＰＰＳ（Ｐｕｌｓｅ  Ｐｅｒ  Ｓｅｃｏｎｄ）信号を送信する。１０ＭＨｚクロック信号などの他の時間又はクロック信号が利用されてもよい。これらの１ＰＰＳ信号は、データ接続１１４を介し送信される定期的なクロックキャリア信号とみなすことができる。ＵＳＢデバイス１０６は、図１のＵＳＢデバイス１０と機能的に等価であり、ＵＳＢデバイス１０６のクロック１１６とＧＰＳ時間サーバ１０８のローカルクロック１１２との相対的な時間を測定及びマッピングするための本発明の第３の態様による方法を実現するため構成される。これについて、ＵＳＢデバイス１０６は、これらの１ＰＰＳ信号が上述された実施例と同様にＳＯＦパケットの受信でなくインタラプトを生成するように構成される。
【０２４１】
さらに、ＵＳＢホストコントローラ１０２は、ＵＳＢデバイス１０６に定期的なＳＯＦパケットを送信しており、このため、ＵＳＢデバイス１０６は、本発明の第３の態様の方法を利用して、ＵＳＢホストコントローラ１０２のローカルクロック１１８の時間に対するそれのローカルクロック１１６の時間を測定及びマッピングすることが可能である。使用されるマイクロコントローラに利用可能なリソースに応じて、ＵＳＢホストコントローラ１０２とＵＳＢデバイス１０６との間のデータ接続１１４，１２０のそれぞれの時間を測定するよう１つのカウンタ／タイマーリソースを構成可能であってもよい。両者を同時に測定するために不十分なリソースしか利用可能でない場合、この利用可能なリソースは、各データ接続１１４，１２０の相対時間測定間で共有可能である。
【０２４２】
ＵＳＢデバイス１０４は、図１のＵＳＢデバイス１０について上述されるように、ＵＳＢホストコントローラ１０２のローカルクロック１１８により提供される時間ベースに対する直接的な測定によって、それのローカルクロック１２２を特徴付けすることが可能である。
【０２４３】
システムの各クロックの相対時間の測定後（すなわち、ＧＰＳ時間サーバ１０８のローカルクロック１１２、ＵＳＢデバイス１０６のローカルクロック１１６、ＵＳＢホストコントローラ１０２のローカルクロック１１８、及びＵＳＢデバイス１０４のローカルクロック１１２）、ＵＳＢ１００は、上述された本発明の第３の態様の予測方法に等価な手順である、上記４つのクロックの相対時間の予測されたマッピングを生成する。
【０２４４】
本発明の第３の態様の制御方法は、その後に各ＵＳＢデバイス１０４，１０６の同期クロックを生成するため適用される。同期クロックは、ＧＰＳ時間サーバ１０８のローカルクロック１１２と同期されるが、必ずしも必要であるとは限らない。
【０２４５】
このシナリオでは、クロック１１６，１１８の絶対的な精度は、ＵＳＢデバイス１０４のクロック１２２とＧＰＳ時間サーバ１０８のクロック１１２とを高い精度により同期させる能力に影響を与えないことに留意すべきである。すべての時間領域の間の相対的なマッピングは、各クロックにおけるドリフトが有意でない場合、クロックが正確でないクロックにより後半に分離及び結合可能であるが、依然として高い精度で同期可能となるようにされる。この方法はまた、測定の統計処理のため、確率的なジッタの影響を相対的に受けない。
【０２４６】
本発明の第４実施例では、図６の１３０により概略表示されるように、ＰＣＩバスを介し複数のＵＳＢが同期される。本実施例によると、ＰＣＩコントローラ１３４により制御されるＰＣＩバス１３２は、複数のＵＳＢホストコントローラ１３６，１３８をホスト処理する。ＵＳＢホストコントローラ１３６，１３８のそれぞれは、複数のＵＳＢデバイス１４０，１４２，１４４，１４６をホスト処理する。
【０２４７】
ＵＳＢホストコントローラ１３６は、それのローカルオシレータとＰＣＩバス１３２上のクロック信号（ＰＣＩコントローラ１３４により生成される）とを比較する。上述された技術を利用して、ＰＣＩバス１３２からのクロック信号は、複数のＵＳＢホストコントローラ１３６，１３８内に存在するローカルクロック信号と比較される。同様に、ＵＳＢホストコントローラ１３８は、それのローカルオシレータとＰＣＩバス１３２上にあるクロック信号とを比較する。これら３つのクロックの測定、予測及び制御は、複数のＵＳＢホストコントローラ１３６，１３８が上述された本発明の第３の態様の方法に従って同期されることを可能にする。
【０２４８】
ＵＳＢホストコントローラ１３６によりホスト処理される複数のＵＳＢデバイス１４０，１４２は、ＵＳＢホストコントローラ１３６に同期され、ＵＳＢホストコントローラ１３８によりホスト処理されるＵＳＢデバイス１４４，１４６は、ＵＳＢホストコントローラ１３８に同期される。このため、ＵＳＢデバイス１４０，１４２，１４４，１４６は、ＰＣＩバス１３２を介し同期される。
【０２４９】
図７において、ＧＰＳ時間サーバに接続される本発明の第５実施例による相互接続されたバスのハイブリッドネットワークが１５０により概略表示される。本実施例によると、ネットワーク１５０は、ＰＣＩコントローラ１５４により制御され、イーサネットバス１５６により接続されるＰＣＩバス１５２と、ＰＣＩコントローラ１６０により制御されるＰＣＩバス１５８とを有する。ネットワーク１５０はまた、ＰＣＩバス１５２に接続されるＰＣＩ−イーサネットコントローラ１６２と、イーサネットリンク１５６をホスト処理スリするためＰＣＩバス１５８に接続されるＰＣＩ−イーサネットコントローラ１６４とを有する。
【０２５０】
ＰＣＩバス１５２は、ＧＰＳ時間サーバ１７０に接続されるＵＳＢデバイス１６８をサポートするＵＳＢホストコントローラ１６６を有する。ＰＣＩバス１５８は、ＵＳＢデバイス１７４をサポートするＵＳＢホストコントローラ１７２を有する。上述された本発明の各種方法に関して、相互接続された各ノード（ＰＣＩコントローラ１５４，１６０、ＵＳＢホストコントローラ１６６，１７２、イーサネットコントローラ１６２，１６４、ＵＳＢデバイス１６及びＧＰＳ時間サーバ１７０）がそれのローカルクロック信号（時間）とそれの近隣ノードのものと比較可能であることは、当業者に明らかであろう。このようにして、相互接続の相対的な時間ベースのマップが生成され、これにより、各ノードが同期されることが可能となる。
【０２５１】
この結果、ＵＳＢデバイス１７４のローカルクロック１７６は、相互接続されたハイブリッド通信バスのチェーンを介しＧＰＳ時間１７８に同期させることが可能となる。本実施例では、中間クロックの絶対的な精度は、ＵＳＢデバイス１７４のクロック１７６とＧＰＳ時間１７８とを高い精度により同期させる能力には影響を与えない。すべての時間領域の間の相対的なマッピングは、各クロックのドリフトが有意でない場合、クロックが正確でないクロックと複数のハイブリッドバス接続に広範に分離されるが、依然として高い精度により同期可能となるようにされる。本方法はまた、測定の統計処理のため、確率的なジッタの影響を受けない。
【０２５２】
上述された第４及び第５実施例（それぞれ図６及び７）では、複数のＰＣＩバスが他の各種バスと同期される。ＰＸＩバスがまた同期されてもよいことは、当業者には明らかであろう。ＰＸＩは、標準的なＰＣＩバスと専用のタイミング及びトリガリングバスとを組み合わせた工業機器規格である。上述された実施例は、不正確なＰＣＩクロックソースがＰＸＩタイミングバスを介した精度及び位相が揃えられたクロックソースと置換されるＰＸＩバスを等価的に利用することが可能である。
【０２５３】
本発明による同期処理の上記開示は、バスを介したキャリア信号の伝搬遅延の補償を参照することなく、キャリア信号の受信とクロックとを周波数及び位相について同期させることを主として参照する。一部のケースでは、ＰＣＩに関して、デバイス毎のバスクロックキャリア信号の伝搬時間の相違は、バスの物理的に限定された性質のため極めて小さなものである。イーサネットなどの他のケースでは、バスの物理的程度は、ポイント毎に大きな伝搬遅延を生じさせる。ＵＳＢは、数百ナノ秒に限定されるデバイス間の伝搬乖離によって、これらの極論の間となる。
【０２５４】
にもかかわらず、これらのバスにおける信号の伝搬時間を測定し、ＵＳＢ伝搬遅延を補償するための方法が存在する。（例えば、参照することによりここに援用されるＦｏｓｔｅｒらによる米国特許出願第１０／６２０，７６９号などを参照されたい。）ＰＣＩバスは、特殊な終端状態を求める。また、マルチレベルシグナリングによってＰＣＩバスコントローラから所与のデバイスの信号伝搬時間を特定することが可能である。同様に、シンプルな技術からＩＥＥＥ−１５８８規格により教示される方法までの信号伝搬遅延を測定する及び補償するための技術がイーサネット共に存在する。
【０２５５】
本発明の第６の好適な実施例では、通信バスにアタッチされた同期クロックのシステムのための同期精度を向上させる方法が提供される。図８は、ＵＳＢのケースのための方法を示すため、２つのケースにおいて信号の時間シーケンスを概略表示１８０である。
【０２５６】
このケースでは、ローカルクロックが統計的に平均化されたキャリア信号（ＳＯＦパケット）周波数に固定される同期ＵＳＢが提供される。このようにして、ＳＯＦパケットの連続的な受信の間の時間は、ローカルクロック期間の整数倍となり、統計的に平均化されたキャリア受信時間を中心とされる。
【０２５７】
従来の同期方法は、同期クロックを同期させるために１つのイベントを利用する。これは、ハードウェアトリガされるシステムでは許容されるが、ソフトウェアベースのシステムは、何れか１つのＳＯＦパケットの検出と結果としての制御信号の生成との間の時間の有意なランダムな不確実性を受ける。
【０２５８】
図８を参照するに、ベースＡ１８２は、時間に関するキャリア信号（ＳＯＦ）を表す。単独のＳＯＦ同期イベントが、１８４のソフトウェアインタラプトサービスルーチンにより検出及び出力される。これは、単独のイベントが何れか１つのＳＯＦパケットの検出と結果としての制御信号の生成との間の遅延の平均となる理想的なケースを示す。１キャリア期間後（１８６において）、次のＳＯＦ信号が検出されるが、ローカル制御信号１８８を生成する際の不確実性は、制御信号がキャリア期間１８６に関して１９０において“早く”又は１９２において“遅く”なるようにする。この場合、不確実性ウィンドウ１８８内のキャリア信号の受信の分布は、単独のイベントがキャリア信号と同期されたため、予想されるキャリア信号の位置１９４を中心とされる。
【０２５９】
ベースＢ１９６はまた、時間についてキャリア信号（ＳＯＦ）を表す。単独のＳＯＦ同期イベントが、１９８においてソフトウェアインタラプトサービスルーチンにより検出及び出力される。このケースでは、ＳＯＦイベント出力は、理想値からのそれの予想される遅延の以降の極端な値の近傍となる。システムは、単独のイベントのランダムエラーを知らない。１キャリア期間後（２００において）、次のＳＯＦが検出されるが、ランダムな出力遅延（インタラプトサービスルーチンの不確実性による）は、可能な出力２０２のウィンドウをもたらす。時間が経過すると、キャリア信号の検出が、キャリア信号の平均的な受信に固定されたローカルクロックに基づく予想される受信時間後に２００において中心とされる分布を有することを示すパターンが出現する。
【０２６０】
このようにして、単独の同期イベントが平均的なキャリア信号時間と統計的に比較可能である。デバイスのローカルな時間の概念は、単独のイベントのエラーを補償するよう調整可能であり、同期精度を増加させる。
【０２６１】
本発明の範囲内の改良は、当業者により容易に実行可能である。従って、本発明は上記により例示された特定の実施例に限定されず、ここに開示される各種実施例の組み合わせは当業者に容易に明らかであり、本開示の範囲内であることが理解されるべきである。
【０２６２】
本発明の上記開示では、コンテクストが明示的な言語又は必要な含意のため要求する場合を除き、“ホストコントローラ”という用語は、標準的なＵＳＢホストコントローラ、ＵＳＢ−ｏｎ−ｔｈｅ−ｇｏホストコントローラ、無線ＵＳＢホストコントローラ又は他の何れかの形式のＵＳＢホストコントローラを表す。
【０２６３】
本発明の上記開示と以下の請求項では、コンテクストが明示的な言語又は必要な含意のため要求する場合を除き、“有する”という単語又はその派生語は、内包的な意味において、記載された特徴の存在を示すが、本発明の各種実施例のさらなる特徴の存在又は追加を排除するしないように用いられる。
【０２６４】
さらに、従来技術の参照は、当該従来技術が共通の一般的な知識の一部を形成することを意図するものでない。
【図１】
2012500430.tif 000003
【図２】
2012500430.tif 000004
【図３】
2012500430.tif 000005
【図４】
2012500430.tif 000006
【図５】
2012500430.tif 000007
【図６】
2012500430.tif 000008
【図７】
2012500430.tif 000009
【図８】
2012500430.tif 000010
【国際調査報告】
2012500430.tif 000011
2012500430.tif 000012
2012500430.tif 000013
2012500430.tif 000014
2012500430.tif 000015