(57)【要約】  ＵＳＢマイクロコントローラ、ＵＳＢトラフィックを監視する回路、および分散クロック周波数および位相に関する情報を含む周期的データ構造（クロック搬送波信号など）をＵＳＢデータストリームからデコードし、デコードされた搬送波信号を出力する回路、を有するＵＳＢデバイスと、デコードされた搬送波信号を受信し、ある所定のデータパケット（ＳＯＦパケットなど）の受信時にソフトウェア割り込みを発生させ、さらにソフトウェア割り込みをＵＳＢマイクロコントローラに送出する回路と、を備える同期装置であって、ＵＳＢマイクロコントローラは、同期化参照信号として使用されるように適合された出力信号を生成することによってソフトウェア割り込みに応答する（そこに備わる割り込みサービスルーチンなどによる）ように構成されている、同期装置。
2010527081.tif 000002
【特許請求の範囲】
【請求項１】
ＵＳＢマイクロコントローラ、ＵＳＢトラフィックを監視する回路、および分散クロック周波数および位相に関する情報を含む周期的データ構造をＵＳＢデータストリームからデコードし、デコードされた搬送波信号を出力する回路、を有するＵＳＢデバイスと、
前記デコードされた搬送波信号を受信し、ある所定のデータパケットの受信時にソフトウェア割り込みを発生させ、さらに前記ソフトウェア割り込みを前記ＵＳＢマイクロコントローラに送出する回路と、
を備える同期装置であって、
前記ＵＳＢマイクロコントローラは、同期化参照信号として使用されるように適合された出力信号を生成することによって前記ソフトウェア割り込みに応答するように構成されている、
同期装置。
【請求項２】
前記ＵＳＢマイクロコントローラは、前記ＵＳＢデータストリームを監視する前記回路を備える、
請求項１に記載の装置。
【請求項３】
前記デコードされた搬送波信号を受信する前記回路は、前記ＵＳＢマイクロコントローラ内に設けられる、
請求項１に記載の装置。
【請求項４】
前記デコードされた搬送波信号を受信する前記回路は、前記ＵＳＢマイクロコントローラの外部、または前記ＵＳＢデバイスの外部にある、
請求項１に記載の装置。
【請求項５】
前記周期的データ構造をデコードする前記回路と、前記デコードされた搬送波信号を受信してソフトウェア割り込みを発生させる前記回路と、を備えるハイブリッドのＵＳＢインタフェースかつマイクロコントローラを備える、
請求項１に記載の装置。
【請求項６】
前記ＵＳＢデータストリームからの前記周期的データ構造のデコーディングに応答してローカル参照信号を生成し、前記ローカル参照信号を前記ＵＳＢマイクロコントローラに送出し、前記ＵＳＢマイクロコントローラはそれに応答して前記ソフトウェア割り込みを発生させる、個別の復号化ハードウェアを備える、
請求項１に記載の装置。
【請求項７】
請求項１に記載の同期装置を使用する工程を含む、
複数のＵＳＢデバイスを同期する方法。
【請求項８】
複数の請求項１に記載の同期装置を備える、
同期されたＵＳＢ。
【請求項９】
デコードされた搬送波信号を監視する工程と、
前記デコードされた搬送波信号内のある所定のデータパケットに基づいてソフトウェア割り込みを促す工程と、
割り込み出力信号を生成する割り込みサービスルーチンを前記ソフトウェア割り込みに応答して実行する工程と、
前記ソフトウェア割り込みが受信されたときに実行中であったＵＳＢマイクロコントローラ命令を決定する工程と、
前記ＵＳＢマイクロコントローラ命令によって要求される命令サイクル数を決定する工程と、
ソフトウェア割り込みの受信時間の不確かさに基づいてタイミング参照信号にタイミング有効性重み付け係数を割り当てる工程と、を含む、
複数のデコードされた同期化参照信号に対して有効性重み付けを割り当てる方法。
【請求項１０】
より高い精度および安定性のために反復的搬送波信号パルスをフィルタリング、平均化、または処理する１つ以上の統計的方法を使用する工程を含む、
請求項９に記載の方法。
【請求項１１】
ＵＳＢデータストリームを監視する工程と、
前記ＵＳＢデータストリームから周期的データ構造をデコードする工程と、
前記周期的データ構造に基づいてソフトウェア割り込みを促す工程と、
前記ソフトウェア割り込みに応答して割り込みサービスルーチンを実行する工程と、
前記割り込みサービスルーチンによって割り込み出力信号を生成する工程と、
位相同期ループ・アーキテクチャを有する被同期クロック回路に前記割り込み出力信号を参照タイミング信号として送出する工程と、
前記参照タイミング信号に基づき、ローカルクロックを位相と周波数に関して前記被同期クロック回路に固定する工程と、を含む、
ＵＳＢデバイスのローカルクロックを同期する方法。
【請求項１２】
複数の請求項１１に記載のＵＳＢデバイスのそれぞれの各ローカルクロックを同期する工程を含む、
同期されたＵＳＢを生成する方法。
【請求項１３】
ＵＳＢデータストリームを監視する工程と、
前記ＵＳＢデータストリームから周期的データ構造をデコードする工程と、
それぞれがそれぞれの位相を有する複数の出力を備える自走発信器クロックを使用する工程と、
前記デコードされた周期的データ構造の受信時に、前記デコードされた周期的データ構造と最も同相に近い出力を選択する工程と、
不正確な自走クロックもしくは同期していない自走クロックの周波数に対して補償を行うように、前記選択された位相に基づいて自走クロックを位相調整する工程と、を含む、
ＵＳＢデバイスのローカルクロックを同期する方法。
【請求項１４】
前記デコードされた周期的データ構造と最も同相に近い位相を前記出力の位相から繰り返し選択する工程と、
前記選択された位相に基づいて前記自走クロックを位相調整する工程と、を含む、
請求項１３に記載の方法。
【請求項１５】
複数の位相遅延した出力を有する自走発信器を使用する工程を含む、
請求項１３に記載の方法。
【請求項１６】
複数の位相を生成するためにマルチタップの遅延発生器を有する自走発信器を使用する工程を含む、
請求項１３に記載の方法。
【請求項１７】
請求項１３に記載の方法に従って同期された複数のＵＳＢデバイスを備える同期されたＵＳＢ。
【請求項１８】
プロセッサを有するデバイスをデータバスに接続する工程と、
前記デバイスに局所的なデータ信号に関して前記プロセッサで前記データバスをモニタする工程であって、前記データは周期的データ構造を含む、工程と、
ソフトウェア割り込みを発生させることによって前記プロセッサが前記周期的データ構造の検出に応答する工程と、
割り込みサービスルーチンを実行することによって前記プロセッサが前記ソフトウェア割り込みに応答する工程と、
前記割り込みサービスルーチンがタイミング参照信号を生成する工程と、を含む、
タイミング参照信号を分配する方法。
【請求項１９】
前記周期的データ構造は複数の周期的データ構造の１つであって、前記方法は、
それぞれのソフトウェア割り込みを発生させることによって前記プロセッサが前記周期的データ構造のそれぞれの検出に対して応答する工程と、
それぞれの割り込みサービスルーチンを実行することによって前記プロセッサが前記ソフトウェア割り込みに応答する工程と、
前記割り込みサービスルーチンがそれぞれのタイミング参照信号を生成する工程と、を含む、
請求項１８に記載の方法。
【請求項２０】
前記それぞれのソフトウェア割り込みの受信中に前記プロセッサによって処理されているソフトウェア命令を特定する工程と、
前記ソフトウェア命令を実行するために前記プロセッサによって要求される命令サイクル数を決定する工程と、
前記それぞれのタイミング参照信号のそれぞれに対して重み付け係数を割り当てる工程であって、前記重み付け係数は、前記それぞれのソフトウェア割り込みの発生と前記それぞれのタイミング参照信号の間の期間の不確かさの尺度である、工程と、をさらに含む、
請求項１９に記載の方法。
【請求項２１】
前記タイミング参照信号のある所与の１つによる寄与がそれに対応する重み付け係数によって重み付けされるように、前記複数の重み付け係数を前記複数のタイミング参照信号と組み合わせることによって複数の重み付けされたタイミング参照信号を生成する工程、をさらに含む、
請求項２０に記載の方法。
【請求項２２】
周波数と位相の両方に関して前記デバイスのローカルクロックを前記複数の重み付けされたタイミング参照信号に固定する工程、をさらに含む、
請求項２１に記載の方法。
【請求項２３】
前記重み付けされたタイミング参照信号を統計的に処理する工程と、それによって前記ローカルクロックの周波数と位相をより精密に固定する工程と、をさらに含む、
請求項２２に記載の方法。
【請求項２４】
前記データバスがＵＳＢであり、前記デバイスがＵＳＢデバイスである、
請求項２３に記載の方法。
【請求項２５】
前記プロセッサは組み込みのＵＳＢ物理インタフェースを有するマイクロコントローラである、
請求項２４に記載の方法。
【請求項２６】
前記プロセッサは、組み込みのＵＳＢ物理インタフェースを備えるフィールドプログラマブルゲートアレイもしくはその他の形態のプログラマブルロジックである、
請求項２５に記載の方法。
【請求項２７】
前記周期的データ構造は、ＵＳＢ規格に規定されるＵＳＢパケット信号構造、前記ＵＳＢデバイスに送られるコマンドシーケンス、前記ＵＳＢデバイスに送られるデータシーケンス、ＯＵＴトークン、ＩＮトークン、ＡＣＫトークン、NＡＫトークン、ＳＴＡＬＬトークン、ＰＲＥトークン、ＳＯＦトークン、ＳＥＴＵＰトークン、ＤＡＴＡ０トークン、ＤＡＴＡ１トークン、またはＵＳＢデータパケット中の所定のビットパターンシーケンスのいずれかを含む、
請求項２６に記載の方法。
【請求項２８】
周期的データ構造に関してプロセッサでデータバスをモニタする工程と、
ソフトウェア割り込みを発生させることによって前記プロセッサが前記周期的データ構造に応答する工程と、
割り込みサービスルーチンを実行することによって前記プロセッサが前記ソフトウェア割り込みに応答する工程と、
前記割り込みサービスルーチンがタイミング参照信号を生成する工程と、
前記ソフトウェア割り込みの受信中に前記プロセッサによって処理されているソフトウェア命令を決定する工程と、
前記ソフトウェア命令を実行するために前記プロセッサによって要求される命令サイクル数を決定する工程であって、前記命令サイクル数は前記プロセッサが前記ソフトウェア割り込みを発行した時に対する決定の不確かさの尺度を表す、工程と、
前記プロセッサが前記ソフトウェア割り込みを発行した前記の時の不確かさに従って、前記複数のクロック搬送波信号を重み付けする工程と、を含む、
複数のクロック搬送波信号を重み付けする方法。
【請求項２９】
前記周期的データ構造は複数の周期的データ構造の１つであって、前記方法は、
それぞれのソフトウェア割り込みを発生させることによって前記プロセッサが前記周期的データ構造のそれぞれに応答する工程と、
それぞれの割り込みサービスルーチンを実行することによって前記プロセッサが前記ソフトウェア割り込みに応答する工程と、
前記割り込みサービスルーチンがそれぞれのタイミング参照信号を生成する工程と、
前記タイミング参照信号のそれぞれに重み付け係数を割り当てる工程であって、前記重み付け係数は前記ソフトウェア割り込みの発生と前記それぞれのタイミング参照信号の間の期間の不確かさの尺度である、工程と、
前記タイミング参照信号のある所与の１つによる寄与がそれに対応する重み付け係数によって重み付けされるように、前記複数の重み付け係数を前記複数のタイミング参照信号と組み合わせることによって複数の重み付けされたタイミング参照信号を生成する工程と、を含む、
請求項２８に記載の方法。
【請求項３０】
前記ソフトウェア割り込みの発生と前記タイミング参照信号の間の期間の不確かさを計算機器によって決定する工程を含む、
請求項２９に記載の方法。
【請求項３１】
前記ソフトウェア割り込みの発生と前記タイミング参照信号の間の期間の不確かさをルックアップテーブルによって決定する工程を含む、
請求項２９に記載の方法。
【請求項３２】
割り込みサービスルーチンをサポートするプロセッサまたはマイクロコントローラと、
前記プロセッサに対して局所的なデータトラフィックを監視する回路と、
前記データトラフィックから周期的データ構造をデコードする回路と、
前記周期的データ構造のデコーディングに対応するアクノレッジ信号を生成する回路と、
前記アクノレッジ信号の受信時に割り込みサービスルーチンを発行するように構成された前記プロセッサのソフトウェア割り込みを発生させる回路と、
割り込みサービスルーチンからのコマンドに応答してタイミング参照信号を生成する回路と、を備える、
複数のタイミング参照信号を重み付けする装置。
【請求項３３】
前記ソフトウェア割り込みが発生したときにどの命令が実行されていたかを報告する出力と、
前記ソフトウェア割り込みの発生と前記タイミング参照信号の間の期間の不確かさを決定する機構と、
前記複数のタイミング参照信号のそれぞれに対して重み付け係数を計算する機構と、をさらに備える、
請求項３２に記載の装置。
【請求項３４】
前記ソフトウェア割り込みの発生と前記タイミング参照信号の間の期間の不確かさを決定する前記機構が計算機器である、
請求項３３に記載の装置。
【請求項３５】
前記ソフトウェア割り込みの発生と前記タイミング参照信号の間の期間の不確かさを決定する前記機構がルックアップテーブルである、
請求項３３に記載の装置。
【請求項３６】
前記プロセッサまたはマイクロコントローラは組み込みのＵＳＢ物理インタフェースを有する、
請求項３３に記載の装置。
【請求項３７】
前記プロセッサまたはマイクロコントローラは、フィールドプログラマブルゲートアレイもしくはその他の形態のプログラマブルロジックである、
請求項３３に記載の装置。
【請求項３８】
前記フィールドプログラマブルゲートアレイもしくはその他の形態のプログラマブルロジックは組み込みのＵＳＢ物理インタフェースを有する、
請求項３７に記載の装置。
【請求項３９】
ＵＳＢと、
ソフトウェア割り込みと割り込みサービスルーチンをサポートするアーキテクチャを有するプロセッサまたはマイクロコントローラと、
前記ＵＳＢデバイスが前記ＵＳＢとデータ通信を行っているときに前記ＵＳＢに対して局所的なＵＳＢトラフィックを監視する回路と、
前記ＵＳＢ上のトラフィックから周期的データ構造をデコードする回路と、
前記周期的データ構造のデコーディングに対応するアクノレッジ信号を生成する回路と、
前記アクノレッジ信号の受信時に前記プロセッサのソフトウェア割り込みを生成する回路であって、前記ソフトウェア割り込みが、局所的な同期化参照信号として使用されるように適合された出力信号を生成するように構成された割り込みサービスルーチンを開始する、回路と、
前記割り込みサービスルーチンからのコマンドに応答してタイミング参照信号を生成する回路と、を備える、
ＵＳＢデバイスを同期する装置。
【請求項４０】
ローカルクロックと、
前記ローカルクロックの周波数と位相を制御する回路であって、前記タイミング参照信号が前記ローカルクロックの周波数および／または位相の制御に使用できる、回路と、をさらに備える、
請求項３９に記載の装置。
【請求項４１】
前記プロセッサまたはマイクロコントローラは、前記ＵＳＢデバイスに対して局所的なＵＳＢトラフィックを監視する前記回路を備える、
請求項３９に記載の装置。
【請求項４２】
前記プロセッサまたはマイクロコントローラは、前記ＵＳＢ上のトラフィックから周期的データ構造をデコードする前記回路を備える、
請求項３９に記載の装置。
【請求項４３】
前記プロセッサまたはマイクロコントローラは、前記周期的データ構造のデコーディングに対応するアクノレッジ信号を生成する前記回路を備える、
請求項３９に記載の装置。
【請求項４４】
前記プロセッサまたはマイクロコントローラは、前記アクノレッジ信号の受信時に前記プロセッサのソフトウェア割り込みを生成する前記回路を備える、
請求項３９に記載の装置。
【請求項４５】
前記プロセッサまたはマイクロコントローラは、前記割り込みサービスルーチンからのコマンドに応答してタイミング参照信号を生成する前記回路を備える、
請求項３９に記載の装置。
【請求項４６】
前記プロセッサまたはマイクロコントローラは前記ローカルクロックを有する、
請求項４０に記載の装置。
【請求項４７】
前記ＵＳＢデバイスに対して局所的なＵＳＢトラフィックを監視する前記回路は、前記プロセッサの内部に含まれない、
請求項３９に記載の装置。
【請求項４８】
前記ＵＳＢ上のトラフィックから周期的データ構造をデコードする前記回路は、前記プロセッサまたはマイクロコントローラの内部に含まれない、
請求項３９に記載の装置。
【請求項４９】
前記周期的データ構造のデコーディングに対応するアクノレッジ信号を生成する前記回路は、前記プロセッサの内部に含まれない、
請求項３９に記載の装置。
【請求項５０】
ＵＳＢデータストリームを監視する工程と、
前記ＵＳＢデータストリーム内の周期的信号構造パケットをデコードする工程と、
それぞれがそれぞれの位相を有する複数の出力を備える自走発信器クロックを使用する工程と、
前記デコードされた周期的信号構造パケットの受信時に、前記デコードされた周期的信号構造パケットと最も同相に近い位相を前記出力の位相から選択する工程と、
不正確な自走クロックもしくは同期していない自走クロックの周波数に対して補償を行うように、前記選択された位相に基づいて自走クロックを位相調整する工程と、を含む、
ＵＳＢデバイスのローカルクロックを同期する方法。
【請求項５１】
前記デコードされた周期的信号構造と最も同相に近い位相を前記出力の位相から繰り返し選択する工程と、
前記選択された位相に基づいて前記自走クロックを位相調整する工程と、を含む、
請求項５０に記載の方法。
【請求項５２】
前記周期的データ構造パケットは、ＵＳＢ規格に規定されるＵＳＢパケット信号構造、前記ＵＳＢデバイスに送られるコマンドシーケンス、前記ＵＳＢデバイスに送られるデータシーケンス、ＯＵＴトークン、ＩＮトークン、ＡＣＫトークン、NＡＫトークン、ＳＴＡＬＬトークン、ＰＲＥトークン、ＳＯＦトークン、ＳＥＴＵＰトークン、ＤＡＴＡ０トークン、ＤＡＴＡ１トークン、またはＵＳＢデータパケット中の所定のビットパターンシーケンスのいずれかを含む、
請求項５１に記載の方法。
【請求項５３】
複数の位相遅延した出力を有する自走発信器を使用する工程を含む、
請求項５０に記載の方法。
【請求項５４】
マルチタップ遅延を有する自走発信器を使用する工程を含む、
請求項５０に記載の方法。
【請求項５５】
複数の選択可能な移相された出力を有するデバイスの自走ローカルクロックを同期する方法であって、
（ｉ）前記デバイスが周期的参照信号を受信する工程と、
（ｉｉ）前記周期的参照信号のぞれぞれの受信時に、前記複数の選択可能な移相された出力のうちどれが前記周期的参照信号と最も同相に近いのかを前記デバイスが検出する工程と、
（ｉｉｉ）前記移相された出力のうち前記最も同相に近いものを前記ローカルクロック信号として用いる工程と、を含む、
方法。
【請求項５６】
工程（ｉ）から（ｉｉｉ）を繰り返すことによって、前記ローカルクロック信号を同相になるように周期的に調整する工程を含む、
請求項５５に記載の方法。
【請求項５７】
複数のクロックサイクルにわたって評価したときに、前記周期的参照信号と最も同相に近い移相された出力を選択する工程を含む、
請求項５５に記載の方法。
【請求項５８】
前記周期的参照信号の連続的サイクルの間の期間中に遭遇する前記自走発信器出力の累積位相誤差を決定する工程と、
出力クロック信号の絶対的な位相誤差を継続的に最小化するために、前記周期的参照信号の連続的サイクルの間の期間内において、前記複数の移相された出力のうち二番目に適切なものを周期的に選択する工程と、をさらに含む、
請求項５５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、２００７年５月１５日に出願された米国特許出願第６０／９３８，１４８号の優先権を主張し、その内容は全体が参照によって援用される。
【０００２】
本開示は、局所的環境または分散スキームのいずれかにおいて、本質的に任意の程度に同期する、試験および測定機器、計装インタフェース、およびプロセス制御機器のクロック、データ収集、および自動化と制御の提供において特定の（しかし、決して排他的ではない）用途をもつ、ＵＳＢベースの同期およびタイミングシステムを提供する方法および装置に関する。
【背景技術】
【０００３】
ＵＳＢ規格（USB specification）は、オープンアーキテクチャにおいて異なるベンダのデバイスの相互運用を容易にすることを意図したものである。ＵＳＢデータは、差分シグナリング（すなわち、２本の線が情報を伝達する）を用いてそれら２本の線の信号レベルの差の形でエンコードされる。ＵＳＢ規格はＰＣアーキテクチャに対する改良として意図されたものであり、ポータブル、デスクトップ、および家庭の環境に及ぶ。
【０００４】
ＵＳＢ規格はデバイスどうしが異なることを前提とする。これは、多くのメーカのデバイスが接続される想定内の環境には当てはまるが、類似の性質を有する複数のデバイスを同期した状態で運用するための規格を必要とするその他の環境（ある共通の産業もしくは実験室環境など）が存在する。この規格はそのような課題に十分に対応していない。上記のような環境は、典型的には試験、測定、または監視が行われ、かつ規定されるよりも正確にデバイスが同期されなければならない環境である。ＵＳＢ規格によれば、１ｋＨｚのクロック信号をすべてのデバイスに供給することによって限定的なデバイス間同期が可能になる。しかし、多くの実験室および産業環境は、メガヘルツ以上の周波数における同期を必要とする。
【０００５】
ＵＳＢは階層化されたスター型トポロジーを使用する。そこにおいて、ハブはＵＳＢデバイスに対する連結点を提供する。ユーザのパーソナルコンピュータ（ＰＣ）、ラップトップ、または携帯情報端末（ＰＤＡ）上に存在するＵＳＢホストコントローラはルートハブを含んでいる。それはシステム内のすべてのＵＳＢポートの起点である。ルートハブは、ＵＳＢ機能デバイスまたは追加ハブを連結しうるいくつかのＵＳＢポートを提供する。
【０００６】
同様に、それらのポートのいずれにも、より多くのハブ（ＵＳＢ複合デバイスなど）を連結できる。それらは次に、ポートを介した追加的な連結点をさらなるＵＳＢデバイスのために提供する。このようにして、ＵＳＢでは最大で１２７個のデバイス（ハブを含む）が接続できるが、いずれのデバイスも最大で５階層の深さまでしか存在できないという制約が伴う。
【０００７】
ホスト内のルートハブはフレームの開始（ＳＯＦ：Start of Frame）信号パケットを１ｍｓごとに各デバイスに送信する。２つのＳＯＦパケット間の時間はフレームと呼ばれる。ＵＳＢトポロジーに内在する電気的遅延により、各モジュールはこのＳＯＦパケットを異なる時に受信する。これは、ホストコントローラに直接接続されるデバイスでの信号の受信と、５階層下にあるデバイスでのそれとの間に相当な時間遅延（規定値は３８０ｎｓ以下）が存在しうることを意味する。デバイスをメガヘルツ以上のレベルで同期することが望まれる場合、これは厳しい制約である。このほか、ＵＳＢ規格では、ホストコントローラは最大５つの連続するＳＯＦトークンを送信しそこなうことが可能である。
【０００８】
ＵＳＢホストとＵＳＢデバイスの間の電流同期（current synchronization）は、割り込みとアイソクロナスという２種類のＵＳＢ送信によって可能である。割り込み送信では１２５μｓを最小周期とするデバイスの保証ポーリング周波数が可能であるのに対し、アイソクロナス送信は一定の送信速度を保証する。いずれの方法も、同期を取るためのトラフィックがデバイスとホストの間に存在することが必要であり、したがって、より高度の同期のためにはより多くの帯域を確保することが必要になる。残念ながら、このことは最大数のデバイスが接続される前に使用できるＵＳＢ帯域を使い切ってしまう可能性があることを意味する。また、この方式は１２７個のデバイスをソフトウェアによってホストに同期した状態に維持するという多大な計算上の負担をホストにかけるうえ、ホストにとって個々のデバイスは個別のプロセスに当たるため、デバイス間の同期の維持には依然として対応できない。
【０００９】
レーザダイオードまたは光検出器などのある種の物理的トランスデューサを備えたデバイスは、クロックまたはトリガ情報を必要とすることがある。１ＭＨｚの変調された光出力をもつレーザダイオードなどのデバイスは、トランスデューサ機能を規則的な間隔または一定の周波数で実行するためにクロック信号を用いることがある。ある動作をある設定時間に開始または終了するためには通常、トリガ信号が用いられる。レーザダイオードの例では、変調された光出力のオンまたはオフにトリガ信号が用いられることが考えられる。
【００１０】
これらのクロックおよびトリガ信号は、多くのデバイスを互いに同期するために（したがって以下で「同期化情報」と呼ばれるものを構成するために）使用することができる。ただし、その信号はすべてのデバイスにとって共通かつ同時であるものとする。ここで「共通」かつ「同時」とは、デバイス間におけるそれらの信号の時間変動がある指定量δｔ未満であることを意味する。レーザダイオードの例では、これによって多くのレーザダイオードがその光出力を１つの周波数で変調できるようになるだろう。すべてのデバイスの変調周波数は同じになるだろうし、その波形は同相になるだろう。最新のＵＳＢ規格（すなわち２．０）では最大０．３５μｓのδｔが可能である。周波数が１ＭＨｚで周期が１．０μｓの信号の場合、この遅延は周期のほぼ半分に当たる。したがって、これは日常的な使用を対象とする同期化情報としては使用できない。
【００１１】
ハブおよびＵＳＢコントローラチップなどのデバイスは、一般にＵＳＢプロトコルをデコードするためにある量の位相固定を利用する。ＵＳＢプロトコルにおけるＳＹＮＣパターンの目的は、他の電子回路を固定する基準となる同期化パターンを提供することである。しかし、これはデバイスをＭＨｚのビットストリームを解釈するのに十分な精度でＵＳＢビットストリームに同期することを意図したものである。２つの個別デバイスを多くの試験および測定器具によって必要とされるレベルまで互いに同期することは、意図されていない。デバイス間同期を扱う範囲において、ＵＳＢ規格は１組のＵＳＢスピーカペア上の出力に対してＵＳＢ−ＣＤオーディオストリームを十分に同期することに主として関心がある。そのようなアレンジメントにおける必要条件はｋＨｚの範囲にあり、その用途に対してＵＳＢ規格は十分である。しかし、この規格は、例えば１００組のＵＳＢスピーカペアを同期するという潜在的な問題には対応していない。
【００１２】
上述のように、ＵＳＢ通信は規則的な１ｍｓフレームの間に（または、ハイスピードＵＳＢ規格の場合には１ｍｓフレーム当たり８つのマイクロフレームにおいて）データを転送する。フレームの開始（ＳＯＦ：Start of Frame）パケットは、各フレームの開始時にロースピード・デバイス以外のすべてのデバイスに、また各マイクロフレームの開始時にすべてのハイスピード・デバイスに送信される。そのため、ＳＯＦパケットは、ある所与のホストコントローラに接続される、ロースピード・デバイス以外のすべてのデバイスに対する周期的な低分解能信号のブロードキャストを表す。
【００１３】
このＳＯＦパケットブロードキャストは１ｋＨｚ（ハイスピードＵＳＢ規格の場合は８ｋＨｚ）の公称周波数で発生する。しかし、ＵＳＢ規格では、５００ｐｐｍ（parts per million）程度のきわめて大きな周波数公差（計装基準による）が可能である。背景技術は、それぞれのデバイスにブロードキャストされるこの低分解能周波数信号を使用するが、それはＵＳＢホストコントローラによって提供される多少曖昧な周波数に対してクロック同期を提供するにすぎない。
【００１４】
米国特許第６，３４３，３６４号（レイディア（Leydier）ら）はＵＳＢトラフィックに対する周波数固定の例を開示している。これはスマートカードリーダを対象にしたものである。この文献は、ＵＳＢ ＳＹＮＣとパケットＩＤのストリームに匹敵する局所的な自走クロックを教示する。その周期はこの周波数にマッチするように更新され、公称周波数が１．５ＭＨｚのローカルクロックが実現する。これは、スマートカード情報をホストＰＣに読み込むのに十分な程度の同期を与えるが、この方式はスマートカードリーダを対象にしたものであるため、デバイス間同期には対応していない。
【００１５】
米国特許第６，０１２，１１５号および後続の継続米国特許第６，２２６，７０１号（チャンバーズ（Chambers）ら）は、タイミングのためのＵＳＢ ＳＯＦの周期性および番号付与を扱っている。これらの文献は、ＵＳＢホストコントローラからそれに接続される周辺機器（peripheral device）に送信されるフレームパルスの開始を用いることにより、ある所定のイベントがリアルタイム周辺機器の内部で発生する瞬間について正確な決定を行うことができるコンピュータシステムを開示している。
【００１６】
しかしながら、これらの文献によって教示される方法は、ＵＳＢホストコントローラ内のマスタクロックの絶対周波数の決定を目的とした、ＵＳＢデータトラフィックに含まれる周期的データ構造の周波数の測定を伴わず、一部のケースではホスト内での追加的カウンタの提供に頼っている。
【００１７】
米国特許第６，０９２，２１０号（ラーキー（Larky）ら）は、ローカルデバイスクロックを両ＵＳＢホストのデータストリームと同期するためにＵＳＢ−ＵＳＢ接続デバイスを用いることにより、データ転送を目的として２つのＵＳＢホストを接続する方法を開示する。ローカルクロックの同期には位相同期ループが用いられ、データ紛失が発生しないことを確実にするためにオーバーサンプリングが用いられる。しかし、この文献は、情報の転送が２つのホスト間で可能となるような、２つのＵＳＢホストのデータストリームの相互（かつ限定的な精度）の同期に関するものである。この文献は、複数個のＵＳＢデバイスを１つのＵＳＢホストまたは複数個のＵＳＢホストと同期するための方法を教示していない。
【００１８】
ＵＳＢ規格はオーディオアプリケーションを念頭に書かれており、米国特許第５，７６１，５３７号（スタージズ（Sturges）ら）は個別クロックを備えた２組以上のスピーカを同期する方法を記載している。そこでは、１組がＰＣ内のオーディオ回路によって動作し、もう１組がＵＳＢによって制御される。両スピーカペアはそれ自身のクロックを用いるために同期される必要があり、そのためこの文献は、非同期クロック間に起こりうるクロックスキューに関係なくオーディオ信号の同期を維持するひとつの技術を教示している。
【００１９】
米国特許出願第１０／６２０，７６９号（フォスター（Foster）ら）は同期バージョンのＵＳＢを開示している。そこでは、各デバイスのローカルクロックがある所与のＵＳＢに任意の程度で同期される。またこの文献は、トリガ信号によってあるイベントが複数のデバイス上で同期して開始されるように、そのＵＳＢ内の各デバイスにトリガ信号を提供する方法および装置も開示している。
【００２０】
図１は、ＵＳＢバスコネクタ１４を介してデジタルＵＳＢ １２に接続された、例示的な背景技術の同期されたＵＳＢデバイス１０の概略図である。ＵＳＢデバイス１０は統合されたＵＳＢインタフェースとマイクロコントローラ１６、ＵＳＢデバイス機能回路（デジタル制御されるトランスデューサなど）１８、バスサンプリング回路２０、デジタルＩ／Ｏバス復号化回路２２、同期化位相比較器２４、および被同期クロック２６を含む。
【００２１】
ＵＳＢデバイス１０は、バスコネクタ１４によってデジタルＵＳＢ １２に接続される。デジタルＵＳＢ １２は、ＵＳＢデバイス１０に関するＵＳＢデータと制御信号を含む。バスサンプリング回路２０は内部ＵＳＢトラフィック３０を監視してその複製３２を生成する。デジタルＩ／Ｏバス復号化回路２２は信号３２からクロック搬送波信号３４をデコードする。同期化位相比較器２４はデコードされたクロック搬送波３４を被同期クロック２６からの分周されたクロック信号３６と比較し、出力されるローカルクロック信号２８が周波数と位相に関して（搬送波信号３４よりかなり高い周波数で）搬送波信号３４に固定されるようにする。
【００２２】
このアレンジメントにおいて、同期化は、ＵＳＢ信号トラフィックがＵＳＢデバイス１０に到達したときのＵＳＢ １２からの情報を検出および抽出することによって、およびローカルクロック信号２８を生成することによって実現される。
【００２３】
複数個のＵＳＢデバイスのそれぞれにおけるローカルクロックの同期を目的とするこのアーキテクチャは、ＵＳＢトラフィック中に存在する周期的データ構造を使用する。米国特許出願第１０／６２０，７６９号に開示されるある実施形態は、周波数と位相に関してローカルクロックをＵＳＢデバイスにおけるＳＯＦパケットトークンの検出に本質的に固定する。ＵＳＢを通るトラフィックの監視およびバストラフィックからのクロック搬送波信号（ある実施例ではＳＯＦパケット）のデコードには回路が用いられる。それによって１ｋＨｚ（またはＵＳＢハイスピードの場合は８ｋＨｚ）の公称搬送波信号周波数が実現する。制御された発信器クロックからのローカルクロック信号は、位相と周波数の両方においてＵＳＢ ＳＯＦパケットの受信に固定される。これにより、ルートハブに連結されるすべてのデバイスが、周波数に関してデバイスがＳＯＦパケットトークンを受信する時点に固定されることが確実になる。しかし、米国特許出願第１０／６２０，７６９号に記載された方式は、正確に判明しているクロック周波数を各デバイスに提供する能力に限界がある。
【００２４】
さらに、この開示はＵＳＢに連結されるデバイスの非常に正確なクロック同期を教示しているが、開示される方式は精密制御発信器を典型的には電圧制御される電圧発信器の形で使用しており、安定した供給電圧を提供するには特別な注意を払う必要がある。そのため精密発信器には閉ループ制御回路が適用される。これは同期されるＵＳＢデバイスの設計に対してコストと複雑さを増やすことになる。
【００２５】
２００７年２月１５日に出願された国際特許出願第ＰＣＴ／ＡＵ２００７／０００１５５号（フォスター（Foster）ら）に開示される別の同期されたＵＳＢデバイスを概略的に図２に示す。この開示の技術を用いると、ホストＰＣ内のクロックの精度に関係なく、ＵＳＢデバイスにおいて正確なクロック周波数が生成できる。図２を参照すると、ＵＳＢデバイス４０はバスコネクタ４４、バスインタフェース回路４６、マイクロコントローラ４８、ＵＳＢデバイス機能回路（デジタル制御されるトランスデューサなど）５０、およびシンクロナイザ５２（図１のデジタルＩ／Ｏバス復号化回路２２、同期化位相比較器２４、および被同期クロック２６に相当する）の形態の同期化回路を備える。バスインタフェース回路４６は、バスコネクタ４４において検出されたＵＳＢデータに対するトランシーバとして作用し、ＵＳＢデータをマイクロコントローラ４８に送出する。ＵＳＢデバイス４０は、内部バスリンクを監視してＵＳＢトラフィック５８の複製５６をシンクロナイザ５２に送出する回路５４をさらに備える。マイクロコントローラ４８は、クロック信号６２の正確な周波数合成のために情報６２をシンクロナイザ５２に提供する。マイクロコントローラ４８は、通信バス６４を介してデバイス機能回路５０と通信する。
【００２６】
搬送波信号はＵＳＢトラフィックからデコードされると、同期化情報を生成するための、したがってクロック周波数の精密制御のもとでローカルクロック信号を合成するための、倍率と組み合わされる。このように、マイクロコントローラ４８からの追加情報信号６０の使用により、ローカルクロック信号の周波数は搬送波信号の多少曖昧な周波数より正確であることができる。
【００２７】
この構成は任意に高い周波数（数十メガヘルツのクロック周波数など）のローカルクロック信号を作ることができ、したがって、ある所与のＵＳＢに接続される各デバイスのローカルクロックが周波数に関して同期されることを確実にすることができると言われている。米国特許出願第１０／６２０，７６９号は、ホストから各デバイスへの信号伝播時間の測定、ならびにＵＳＢデバイスのそれぞれにおけるクロック位相補償の提供により、複数のローカルクロックが同相になるようさらに同期する方法と装置についても教示している。
【発明の概要】
【発明が解決しようとする課題】
【００２８】
このような同期ＵＳＢシステムは、正確なクロック周波数の生成によってＵＳＢデバイス間で正確なクロック同期を行うことができる一方、ＵＳＢ上に存在するデータをデコードする特殊なハードウェアコンポーネント、ならびに搬送波信号の受信の瞬間についての精密な決定が必要になる。それらのコンポーネントは通常のＵＳＢバスインタフェース回路およびマイクロコントローラ（それぞれ図２の４６と４８）に加えて必要とされるため、それらの方式は、既製のＵＳＢインタフェース・マイクロコントローラを用いた一般的な実装のＵＳＢに対して互換性をもたない。
【００２９】
また、ＵＳＢ規格はＵＳＢデバイスがバスに与えることのできるキャパシタンスのレベルを制約している。グラウンドに対する並列実効抵抗の存在下における、ＵＳＢの各データ線とグラウンドとの間の実効キャパシタンスはきわめて厳格に制御される。規格に従ったＵＳＢデバイスについては一般に小さなキャパシタンス余裕しか存在しない。並列データ経路回路（図１のバスサンプリング回路２０のそれに相当する）を従来のＵＳＢデバイスに追加すると、典型的にはキャパシタンス限界値を超えるだろう。
【課題を解決するための手段】
【００３０】
第１の広範な態様において、本発明は、
ＵＳＢマイクロコントローラ、ＵＳＢトラフィックを監視する回路、および分散クロック周波数および位相に関する情報を含む周期的データ構造（クロック搬送波信号など）をＵＳＢデータストリームからデコードし、デコードされた搬送波信号を出力する回路、を有するＵＳＢデバイスと、
前記デコードされた搬送波信号を受信し、ある所定のデータパケット（ＳＯＦパケットなど）の受信時にソフトウェア割り込みを発生させ、さらに前記ソフトウェア割り込みを前記ＵＳＢマイクロコントローラに送出する回路と、
を備える同期装置であって、
前記ＵＳＢマイクロコントローラは、同期化参照信号として使用されるように適合された出力信号を生成することによって前記ソフトウェア割り込みに応答する（それに備わる割り込みサービスルーチンなどによる）ように構成されている、
同期装置を提供する。
【００３１】
前記ＵＳＢマイクロコントローラは、前記ＵＳＢデータストリームを監視する前記回路を備えてもよい。
【００３２】
前記デコードされた搬送波信号を受信してソフトウェア割り込みを発生させる前記回路は前記ＵＳＢマイクロコントローラ内に設けてもよいが、代替方法として、前記ＵＳＢマイクロコントローラの外部、または実際には前記ＵＳＢデバイスの外部にある回路として設けてもよい。
【００３３】
前記装置は、前記周期的データ構造をデコードする前記回路と、前記デコードされた搬送波信号を受信して前記ソフトウェア割り込みを発生させる前記回路とを備えるハイブリッドのＵＳＢインタフェースとマイクロコントローラ（hybrid USB interface and microcontroller）を備えてもよい。
【００３４】
前記装置は、デコードされたＳＯＦ信号を生成してそれを前記ＵＳＢマイクロコントローラに送出し、前記ＵＳＢマイクロコントローラはそれに応答して前記ソフトウェア割り込みを発生させる、個別の復号化ハードウェアを備えてもよい。
【００３５】
前記周期的データ構造は、例えばＵＳＢ規格に規定されるＵＳＢパケット信号構造、前記ＵＳＢデバイスに送られるコマンドシーケンス、前記ＵＳＢデバイスに送られるデータシーケンス、ＯＵＴトークン、ＩＮトークン、ＡＣＫトークン、NＡＫトークン、ＳＴＡＬＬトークン、ＰＲＥトークン、ＳＯＦトークン、ＳＥＴＵＰトークン、ＤＡＴＡ０トークン、ＤＡＴＡ１トークン、またはＵＳＢデータパケット中のプログラム可能なビットパターンシーケンスのいずれかを含んでもよい。
【００３６】
複数の上述した同期装置を用いて複数のＵＳＢデバイスを同期する方法も提供される。
【００３７】
前記第１の広範な態様によれば、上述の装置を備えた、同期されたＵＳＢも提供される。
【００３８】
第２の広範な態様によれば、本発明は、
デコードされた搬送波信号を監視する工程と、
前記デコードされた搬送波信号内のある所定のデータパケット（ＳＯＦパケットなど）に基づいてソフトウェア割り込みを促す工程と、
割り込み出力信号を生成する割り込みサービスルーチンを前記ソフトウェア割り込みに応答して実行する工程と、
前記ソフトウェア割り込みが受信されたときに実行中であったＵＳＢマイクロコントローラ命令を決定する工程と、
前記ＵＳＢマイクロコントローラ命令によって要求される命令サイクル数を決定する工程と、
ソフトウェア割り込みの受信時間の不確かさに基づいてタイミング参照信号にタイミング有効性重み付け（validity weighting）係数を割り当てる工程と、を含む、
複数のデコードされた同期化参照信号に対して有効性重み付けを割り当てる方法を提供する。
【００３９】
前記第２の広範な態様は、より高い精度および安定性のために反復的搬送波信号パルスをフィルタリング、平均化、または処理する１つ以上の統計的方法を用いることができる。
【００４０】
第３の広範な態様において、本発明は、
ＵＳＢデータストリームを監視する工程と、
前記ＵＳＢデータストリームから周期的データ構造をデコードする工程と、
前記周期的データ構造に基づいてソフトウェア割り込みを促す工程と、
前記ソフトウェア割り込みに応答して割り込みサービスルーチンを実行する工程と、
前記割り込みサービスルーチンによって割り込み出力信号を生成する工程と、
位相同期ループ・アーキテクチャを有する被同期クロック回路に前記割り込み出力信号を参照タイミング信号として送出する工程と、
前記参照タイミング信号に基づき、ローカルクロック（高周波ローカル水晶発振器クロックなど）を位相と周波数に関して被同期クロック回路に固定する工程と、を含む、
ＵＳＢデバイスのローカルクロックを同期する方法を提供する。
【００４１】
前記周期的データ構造は、例えばＵＳＢ規格に規定されるＵＳＢパケット信号構造、前記ＵＳＢデバイスに送られるコマンドシーケンス、前記ＵＳＢデバイスに送られるデータシーケンス、ＯＵＴトークン、ＩＮトークン、ＡＣＫトークン、NＡＫトークン、ＳＴＡＬＬトークン、ＰＲＥトークン、ＳＯＦトークン、ＳＥＴＵＰトークン、ＤＡＴＡ０トークン、ＤＡＴＡ１トークン、またはＵＳＢデータパケット中のプログラム可能なビットパターンシーケンスのいずれかを含んでもよい。
【００４２】
前記第３の広範な態様は、同期されたＵＳＢを、この方法による複数の同期されたＵＳＢデバイスを用いて生成することにも使用できる。
【００４３】
第４の広範な態様において、本発明は、
ＵＳＢデータストリームを監視する工程と、
前記ＵＳＢデータストリーム中の周期的データ構造ＳＯＦパケットをデコードする工程と、
それぞれが（典型的には互いに異なる）それぞれの位相を有する複数の出力を備える自走発信器クロックを使用する工程と、
前記デコードされた周期的データ構造の受信時に、前記デコードされた周期的データ構造と最も同相に近い（most in phase）出力を選択する工程と、
不正確な自走クロックもしくは同期していない自走クロックの周波数に対して補償を行うように、前記選択された位相に基づいて自走クロックを位相調整する工程と、を含む、
ＵＳＢデバイスのローカルクロックを同期する方法を提供する。
【００４４】
前記方法は、一般に、前記デコードされた周期的データ構造と最も同相に近い位相を前記出力の位相から繰り返し選択する工程と、前記選択された位相に基づいて前記自走クロックを位相調整する工程と、を含むだろう。
【００４５】
前記周期的データ構造は、例えばＵＳＢ規格に規定されるＵＳＢパケット信号構造、前記ＵＳＢデバイスに送られるコマンドシーケンス、前記ＵＳＢデバイスに送られるデータシーケンス、ＯＵＴトークン、ＩＮトークン、ＡＣＫトークン、NＡＫトークン、ＳＴＡＬＬトークン、ＰＲＥトークン、ＳＯＦトークン、ＳＥＴＵＰトークン、ＤＡＴＡ０トークン、ＤＡＴＡ１トークン、またはＵＳＢデータパケット中の所定のビットパターンシーケンスのいずれかを含んでもよい。
【００４６】
このように、クロックの最も適切な（周波数制御されていない）位相を各周期的データ構造（例えばＳＯＦ）イベントにおいて選択することができる。これは、ソフトウェア（ＩＳＲ）またはハードウェアタイプの周期的データ構造検出とともに用いてもよい。
【００４７】
前記方法は、複数の位相遅延した出力を有する自走発信器を使用する工程を含んでもよい。
【００４８】
前記方法は、複数の位相を生成するためにマルチタップの遅延発生器を有する自走発信器を使用する工程を含んでもよい。
【００４９】
第４の態様によれば、上述の方法による複数の同期されたＵＳＢデバイスを用いた、同期されたＵＳＢも提供される。
【００５０】
ある広範な態様によれば、本発明は、
プロセッサを有するデバイスをデータバスに接続する工程と、
前記デバイスに局所的なデータ信号に関して前記プロセッサで前記データバスをモニタする工程であって、前記データは周期的データ構造を含む、工程と、
ソフトウェア割り込みを発生させることによって前記プロセッサが前記周期的データ構造の検出に応答する工程と、
割り込みサービスルーチンを実行することによって前記プロセッサが前記ソフトウェア割り込みに応答する工程と、
前記割り込みサービスルーチンがタイミング参照信号を生成する工程と、を含む、
タイミング参照信号を分配する方法を提供する。
【００５１】
前記周期的データ構造は複数の周期的データ構造の１つであってもよく、前記方法は、それぞれのソフトウェア割り込みを発生させることによって前記プロセッサが前記周期的データ構造のそれぞれの検出に対して応答する工程と、それぞれの割り込みサービスルーチンを実行することによって前記プロセッサが前記ソフトウェア割り込みに応答する工程と、前記割り込みサービスルーチンがそれぞれのタイミング参照信号を生成する工程と、を含む。
【００５２】
前記方法は、
前記それぞれのソフトウェア割り込みの受信中に前記プロセッサによって処理されているソフトウェア命令を特定する工程と、
前記ソフトウェア命令を実行するために前記プロセッサによって要求される命令サイクル数を決定する工程と、
前記それぞれのタイミング参照信号のそれぞれに対して重み付け係数を割り当てる工程であって、前記重み付け係数は、前記それぞれのソフトウェア割り込みの発生と前記それぞれのタイミング参照信号との間の期間の不確かさの尺度である、工程と、
をさらに含んでもよい。
【００５３】
前記方法は、
前記タイミング参照信号のある所与の１つによる寄与がそれに対応する重み付け係数によって重み付けされるように、前記複数の重み付け係数を前記複数のタイミング参照信号と組み合わせることによって複数の重み付けされたタイミング参照信号を生成する工程、
をさらに含んでもよい。
【００５４】
前記方法は、
周波数と位相の両方に関して前記デバイスのローカルクロックを前記複数の重み付けされたタイミング参照信号に固定する工程、
をさらに含んでもよい。
【００５５】
前記方法は、
前記重み付けされたタイミング参照信号を統計的に処理する工程と、それによって前記ローカルクロックの周波数と位相をより精密に固定する工程と、
をさらに含んでもよい。
【００５６】
前記データバスはＵＳＢであってもよく、前記デバイスはＵＳＢデバイスであってもよい。
【００５７】
前記プロセッサは、組み込みのＵＳＢ物理インタフェースを有するマイクロコントローラであっても、または組み込みのＵＳＢ物理インタフェースを備えたフィールドプログラマブルゲートアレイもしくはその他の形態のプログラマブルロジックであってもよい。
【００５８】
ある実施形態において、前記周期的データ構造は、ＵＳＢ規格に規定されるＵＳＢパケット信号構造、前記ＵＳＢデバイスに送られるコマンドシーケンス、前記ＵＳＢデバイスに送られるデータシーケンス、ＯＵＴトークン、ＩＮトークン、ＡＣＫトークン、NＡＫトークン、ＳＴＡＬＬトークン、ＰＲＥトークン、ＳＯＦトークン、ＳＥＴＵＰトークン、ＤＡＴＡ０トークン、ＤＡＴＡ１トークン、またはＵＳＢデータパケット中の所定のビットパターンシーケンスのいずれかを含む。
【００５９】
別の広範な態様において、本発明は、
周期的データ構造に関してプロセッサでデータバスをモニタする工程と、
ソフトウェア割り込みを発生させることによって前記プロセッサが前記周期的データ構造に応答する工程と、
割り込みサービスルーチンを実行することによって前記プロセッサが前記ソフトウェア割り込みに応答する工程と、
前記割り込みサービスルーチンがタイミング参照信号を生成する工程と、
前記ソフトウェア割り込みの受信中に前記プロセッサによって処理されているソフトウェア命令を決定する工程と、
前記ソフトウェア命令を実行するために前記プロセッサによって要求される命令サイクル数を決定する工程であって、前記命令サイクル数は前記プロセッサが前記ソフトウェア割り込みを発行した時に対する決定の不確かさの尺度を表す、工程と、
前記プロセッサが前記ソフトウェア割り込みを発行した前記の時の不確かさに従って、前記複数のクロック搬送波信号を重み付けする工程と、を含む、
複数のクロック搬送波信号を重み付けする方法を提供する。
【００６０】
前記周期的データ構造は複数の周期的データ構造の１つであってもよく、前記方法は、
それぞれのソフトウェア割り込みを発生させることによって前記プロセッサが前記周期的データ構造のそれぞれに応答する工程と、
それぞれの割り込みサービスルーチンを実行することによって前記プロセッサが前記ソフトウェア割り込みに応答する工程と、
前記割り込みサービスルーチンがそれぞれのタイミング参照信号を生成する工程と、
前記タイミング参照信号のそれぞれに重み付け係数を割り当てる工程であって、前記重み付け係数は前記ソフトウェア割り込みの発生と前記それぞれのタイミング参照信号との間の期間の不確かさの尺度である、工程と、
前記タイミング参照信号のある所与の１つによる寄与がそれに対応する重み付け係数によって重み付けされるように、前記複数の重み付け係数を前記複数のタイミング参照信号と組み合わせることによって複数の重み付けされたタイミング参照信号を生成する工程と、
を含む。
【００６１】
前記方法は、前記ソフトウェア割り込みの発生と前記タイミング参照信号との間の期間の不確かさを計算機器（computing device）によって決定する工程を含んでもよい。
【００６２】
前記方法は、前記ソフトウェア割り込みの発生と前記タイミング参照信号との間の期間の不確かさをルックアップテーブルによって決定する工程を含んでもよい。
【００６３】
ある広範な態様によれば、本発明は、
割り込みサービスルーチンをサポートするプロセッサまたはマイクロコントローラと、
前記プロセッサに対して局所的なデータトラフィックを監視する回路と、
前記データトラフィックから周期的データ構造をデコードする回路と、
前記周期的データ構造のデコーディングに対応するアクノレッジ信号を生成する回路と、
前記アクノレッジ信号の受信時に割り込みサービスルーチンを発行するように構成された前記プロセッサのソフトウェア割り込みを発生させる回路と、
割り込みサービスルーチンからのコマンドに応答してタイミング参照信号を生成する回路と、を備える、
複数のタイミング参照信号を重み付けする装置を提供する。
【００６４】
前記装置は、
前記ソフトウェア割り込みが発生したときにどの命令が実行されていたかを報告する出力と、
前記ソフトウェア割り込みの発生と前記タイミング参照信号との間の期間の不確かさを決定する機構と、
前記複数のタイミング参照信号のそれぞれに対して重み付け係数を計算する機構と、
をさらに備えてもよい。
【００６５】
前記ソフトウェア割り込みの発生と前記タイミング参照信号との間の期間の不確かさを決定する前記機構は、例えば計算機器またはルックアップテーブルであってもよい。
【００６６】
前記プロセッサまたはマイクロコントローラは、組み込みのＵＳＢ物理インタフェースを有していてもよい。前記プロセッサまたはマイクロコントローラはフィールドプログラマブルゲートアレイもしくはその他の形態のプログラマブルロジックであってもよく、それらは組み込みのＵＳＢ物理インタフェースを随意に有していてもよい。
【００６７】
本発明は、
ＵＳＢと、
ソフトウェア割り込みと割り込みサービスルーチンをサポートするアーキテクチャを有するプロセッサまたはマイクロコントローラと、
前記ＵＳＢデバイスが前記ＵＳＢとデータ通信を行っているときに前記ＵＳＢに対して局所的なＵＳＢトラフィックを監視する回路と、
前記ＵＳＢ上のトラフィックから周期的データ構造をデコードする回路と、
前記周期的データ構造のデコーディングに対応するアクノレッジ信号を生成する回路と、
前記アクノレッジ信号の受信時に前記プロセッサのソフトウェア割り込みを生成する回路であって、前記ソフトウェア割り込みが、局所的な同期化参照信号として使用されるように適合された出力信号を生成するように構成された割り込みサービスルーチンを開始する、回路と、
前記割り込みサービスルーチンからのコマンドに応答してタイミング参照信号を生成する回路と、を備える、
ＵＳＢデバイスを同期する装置も提供する。
【００６８】
前記装置は、
ローカルクロックと、
前記ローカルクロックの周波数と位相を制御する回路であって、前記タイミング参照信号が前記ローカルクロックの周波数および／または位相の制御に使用できる、回路と、
をさらに備えてもよい。
【００６９】
前記プロセッサまたはマイクロコントローラは、前記ＵＳＢデバイスに対して局所的なＵＳＢトラフィックを監視する前記回路を備えてもよい。
【００７０】
前記プロセッサまたはマイクロコントローラは、前記ＵＳＢ上のトラフィックから周期的データ構造をデコードする前記回路を備えてもよい。
【００７１】
前記プロセッサまたはマイクロコントローラは、前記周期的データ構造のデコーディングに対応するアクノレッジ信号を生成する前記回路を備えてもよい。
【００７２】
前記プロセッサまたはマイクロコントローラは、前記アクノレッジ信号の受信時に前記プロセッサのソフトウェア割り込みを生成する前記回路を備えてもよい。
【００７３】
前記プロセッサまたはマイクロコントローラは、前記割り込みサービスルーチンからのコマンドに応答してタイミング参照信号を生成する前記回路を備えてもよい。
【００７４】
前記プロセッサまたはマイクロコントローラは前記ローカルクロックを備えてもよい。
【００７５】
前記ＵＳＢデバイスに対して局所的なＵＳＢトラフィックを監視する前記回路は、前記プロセッサの内部に含まれなくてもよい。
【００７６】
前記ＵＳＢ上のトラフィックから周期的データ構造をデコードする前記回路は、前記プロセッサまたはマイクロコントローラの内部に含まれなくてもよい。
【００７７】
前記周期的データ構造のデコーディングに対応するアクノレッジ信号を生成する前記回路は、前記プロセッサの内部に含まれなくてもよい。
【００７８】
本発明は、
ＵＳＢデータストリームを監視する工程と、
前記ＵＳＢデータストリーム内の周期的信号構造パケットをデコードする工程と、
それぞれがそれぞれの位相を有する複数の出力を備える自走発信器クロックを使用する工程と、
前記デコードされた周期的信号構造パケットの受信時に、前記デコードされた周期的信号構造パケットと最も同相に近い位相を前記出力の位相から選択する工程と、
不正確な自走クロックもしくは同期していない自走クロックの周波数に対して補償を行うように、前記選択された位相に基づいて自走クロックを位相調整する工程と、を含む、
ＵＳＢデバイスのローカルクロックを同期する方法も提供する。
【００７９】
前記方法は、前記デコードされた周期的信号構造と最も同相に近い位相を前記出力の位相から繰り返し選択する工程と、前記選択された位相に基づいて前記自走クロックを位相調整する工程と、を含んでもよい。
【００８０】
前記周期的データ構造パケットは、例えばＵＳＢ規格に規定されるＵＳＢパケット信号構造、前記ＵＳＢデバイスに送られるコマンドシーケンス、前記ＵＳＢデバイスに送られるデータシーケンス、ＯＵＴトークン、ＩＮトークン、ＡＣＫトークン、NＡＫトークン、ＳＴＡＬＬトークン、ＰＲＥトークン、ＳＯＦトークン、ＳＥＴＵＰトークン、ＤＡＴＡ０トークン、ＤＡＴＡ１トークン、またはＵＳＢデータパケット中の所定のビットパターンシーケンスのいずれかを含んでもよい。
【００８１】
前記方法は、複数の位相遅延した出力を有する自走発信器を使用する工程を含んでもよい。
【００８２】
前記方法は、マルチタップ遅延を有する自走発信器を使用する工程を含んでもよい。
【００８３】
本発明は、複数の選択可能な移相された出力を有するデバイスの自走ローカルクロックを同期する方法も含み、前記方法は、
（ｉ）前記デバイスが周期的参照信号を受信する工程と、
（ｉｉ）前記周期的参照信号のぞれぞれの受信時に、前記複数の選択可能な移相された出力のうちどれが前記周期的参照信号と最も同相に近いのかを前記デバイスが検出する工程と、
（ｉｉｉ）前記移相された出力のうち最も同相に近いものを前記ローカルクロック信号として用いる工程と、
を含む。
【００８４】
前記方法は、工程（ｉ）から（ｉｉｉ）を繰り返すことによって、前記ローカルクロック信号を同相になるように周期的に調整する工程を含んでもよい。
【００８５】
前記方法は、複数のクロックサイクルにわたって評価したときに、前記周期的参照信号と最も同相に近い移相された出力を選択する工程を含んでもよい。
【００８６】
前記方法は、
前記周期的参照信号の連続的サイクルの間の期間中に遭遇する前記自走発信器出力の累積位相誤差を決定する工程と、
出力クロック信号の絶対的な位相誤差を継続的に最小化するために、前記周期的参照信号の連続的サイクルの間の期間内において、前記複数の移相された出力のうち二番目に適切なもの（the next most appropriate）を周期的に選択する工程と、
をさらに含んでもよい。
【００８７】
なお、本発明の上記態様のそれぞれにおけるさまざまな特徴は要望に応じて組み合わせることができる点に留意されたい。
【００８８】
また、本発明による装置はさまざまな方法で具現化できる。たとえば、そのようなデバイスはプリント回路もしくはプリント配線基板上、セラミック基板上の複数のコンポーネントの形態で、または半導体レベルにおいて、すなわち単一のシリコン（もしくはその他の半導体材料の）チップとして、構築することが可能である。
【図面の簡単な説明】
【００８９】
【図１】図１は、背景技術による同期されるＵＳＢデバイスの概略図である。
【図２】図２は、背景技術による別の同期されるＵＳＢデバイスの概略図である。
【図３】図３は、本発明の第１の実施形態による同期されるＵＳＢデバイスの概略図である。
【図４】図４は、図３の実施形態による２つのＵＳＢインタフェース／マイクロコントローラのコマンド実行スタックの概略図であり、ソフトウェア割り込みの遅延と不確かさを示したものである。
【図５】図５は、図４のコマンド実行スタックのタイミング図である。
【図６】図６は、本発明の第２の実施形態による同期されるＵＳＢデバイスの概略図である。
【図７】図７は、図６のＵＳＢデバイスの同期化回路の概略図である。
【図８】図８は、図７の同期化回路の内部回路の概略的なタイミング図である。
【発明を実施するための形態】
【００９０】
本発明がより明確に理解されるよう、添付の図面を参照しながら、以下に例として実施形態について説明する。
【００９１】
本発明の第１の実施形態によるＵＳＢデバイスは、デジタルＵＳＢ ８２とともに、図３の参照符号８０において概略的に示されている。ＵＳＢデバイス８０は、ＵＳＢ ８２との接続のためのバスコネクタ８４、ＵＳＢインタフェース／マイクロコントローラ８６、デジタル入力／出力回路８８（例えば、アナログ・デジタル変換器などのデジタルトランスデューサ、圧力トランスデューサ、またはひずみゲージの形態）、および被同期クロック回路９０を備える。
【００９２】
反復的搬送波信号の形態のクロック同期化情報がＵＳＢインタフェース／マイクロコントローラ８６によってＵＳＢ ８２から抽出される。従来のＵＳＢマイクロコントローラ（サイプレスEZUSB-FXブランドシリーズのＵＳＢマイクロコントローラなど）は、ＵＳＢデータストリーム内のフレームの開始（ＳＯＦ）パケットの受信時にソフトウェア割り込みを実行するように構成でき、この実施形態においてもそうなっている。ＳＯＦパケットの受信に応答して実行される割り込みサービスルーチンは、参照タイミング信号９２を（ＵＳＢフルスピードについては１ｋＨｚ、またはＵＳＢハイスピードについては８ｋＨｚのいずれかで）生成するようにプログラムされ、その信号は被同期クロック回路９０へと送出される。被同期クロック回路９０は、低周波参照信号９２を用いて高周波ローカル水晶発信器クロックを位相および周波数に関して固定する位相同期ループ・アーキテクチャを備える。
【００９３】
同期された出力クロック信号９４は、ＵＳＢインタフェース／マイクロコントローラ８６から供給されるデータとコマンド９６に従ってデジタル入力／出力回路８８の動作を同期制御するように構成されている。このアーキテクチャにより、ＵＳＢデータストリームを監視する専用の追加的ハードウェアコンポーネントをＵＳＢインタフェース／マイクロコントローラ８６と並列に用いなくても、同期化回路によって使用されるように搬送波信号をデコードすることができる。
【００９４】
図４はそれぞれ、図３の実施形態によるＵＳＢインタフェース／マイクロコントローラ８６の２つの例の第１および第２のコマンド実行スタック１１０と１１２の概略図である。コマンドスタック１１０と１１２は上から下に向かって実行される。この図では、実行時間１１４は上から下に向かって増加する。マイクロコントローラ命令は単一命令サイクルタイムの整数倍であり、時間のブロックで示されている。
【００９５】
第１のコマンドスタック１１０のある時点において、マイクロコントローラ８６は、データストリーム中の有効なＳＯＦパケットを受信する内部ハードウェアレジスタに対応するＳＯＦ割り込み信号１１６の形態の物理的な割り込み刺激を受信する。これは、この例において、命令１１８（この例では任意に３サイクルの命令として示してある）中のある時点において発生する。命令１１８の完了後、マイクロコントローラ８６は命令をスタックに格納し、割り込みサービスルーチン（ＩＳＲ）１２０を実行する。ＩＳＲ １２０は一般に一連の命令であるが、ここでは簡単のために１つの命令として示してある。ＩＳＲ １２０は次の利用可能時間において割り込み信号１１６に応答するほか、ソフトウェア割り込み出力信号１２２（図３の参照タイミング信号９２に相当する）を生成するようにプログラムされている。物理的割り込み信号１１６の受信とソフトウェア割り込み出力信号１２２との間には時間遅延ｔ１が存在する。
【００９６】
時間遅延ｔ１は可変であり、割り込みサイクルの長さと、物理的割り込み信号１１６が受信される命令サイクル内の位置との両方に依存する。このことは、第２の例示的コマンドスタック１１２への参照によって明示される。この例において、マイクロコントローラは命令１２８（この図では単一サイクル命令として示されている）中のある時点において物理的なＳＯＦ割り込み信号１２６を受信する。命令１２８の完了後、マイクロコントローラ８６はＩＳＲ １３０を実行する。ＩＳＲ １３０は一般に一連の命令であるが、ここでは簡単のために１つの命令として示してある。ＩＳＲ １３０は割り込み信号１２６に応答し、ソフトウェア割り込み出力信号１３２を生成する。物理的割り込み信号１２６の受信とソフトウェア割り込み出力信号１３２の出力との間には時間遅延ｔ２が存在する。
【００９７】
したがって、ＳＯＦパケットの正確な受信時間を決定するにあたっては、これらの時間遅延ｔ１と遅延ｔ２の大きさに対応する、不確かさが存在する。この不確かさは、現在実行されている命令の継続時間と、物理的なＳＯＦ割り込み信号がハードウェア割り込み発生器によって受信される命令内の位置とに依存する。これは典型的には、ある所与のマイクロコントローラにおける最長の命令の継続期間によって与えられる。したがって、最良のケースの（すなわち最小の）不確かさは、長さがΔｔの単一サイクル命令サイクルによって与えられる。
【００９８】
図５は、図４の例示的コマンド実行スタック１１０と１１２に関する概略的なタイミング図１５０である。図５は、ＳＯＦパケットの受信１５２、および図４のコマンドスタック１１０と１１２にそれぞれ対応するタイミング図１５４と１５６を含む。ＳＯＦパケットの受信１５２により、命令１６０の間にハードウェア割り込み信号１５８が発生する。命令１６０の完了時、割り込みサービスルーチン１６２は、反復的同期化参照信号として用いられるローカル参照信号１６４を生成する。同様に、ハードウェア割り込み信号１５８は命令１６６（図４のコマンドスタック１１２における命令１２８に対応する）中に発生する。次に、割り込みサービスルーチン１６８はローカル参照信号１７０を生成する。
【００９９】
一部のマイクロコントローラは、単一命令サイクルから複雑な演算に対する１０以上の命令サイクルまでの命令サイクルタイムを有する。したがって、ＳＯＦ受信時間のいかなる所与の決定の不確かさにもかなりのばらつきが存在する。ソフトウェアの構造がわかっている場合、限界値は最長の命令実行時間およびコードの構造によって決定できる。ＳＯＦ速度とマイクロコントローラのコード実行における非同期の性質を考えると、ＳＯＦ受信時間の正確および不正確な決定のランダム分布が存在する。
【０１００】
しかし、ＳＯＦ受信時間のどの所与の決定の精度も決定することができる。なぜなら、ＳＯＦの受信中にどの命令が実行されていたかを決定でき、したがって命令の長さおよび得られる測定値の不確かさを決定できるためである。それにより、きわめて不確実なＳＯＦ受信時間の測定値を特定し、廃棄できる。あるいは、冗長な命令に頼る測定への依存を減らすために、その受信中に実行されていた命令の長さに基づいて、ＳＯＦ受信時間の決定に対して何らかの形の統計的重み付けを適用することも可能である。統計的重み付けは、同期されるＵＳＢデバイスの位相同期ループで合成されたクロックを制御するにあたって各測定値をどのように用いるかを決定でき、最も信頼できるＳＯＦ受信時間の決定のみが被同期クロック回路９０の制御に用いられる。さらに、被同期クロックの精度および安定性を向上させるために、フィルタリングの使用、平均化、またはその他の統計的手段を用いることができる。
【０１０１】
ＳＯＦ受信時間の各測定値に関連づけられた固定遅延１７２が存在する。これは、割り込みサービスルーチン１６２または１６８をそれぞれ実行するのに要する時間である。これは各クラスのマイクロコントローラに対して一定である（同等な一定のクロック周波数およびバッチ間不一致ゼロを前提とする）。
【０１０２】
このように、本発明は、例えば追加的な並列の容量性負荷をバスに追加しうる特別なハードウェアコンポーネントを使用することなく、周波数と位相の両方において、ＵＳＢデバイスのローカルクロックをＵＳＢデータストリームに含まれる反復的参照搬送波信号に同期する手段を提供する。さらに、本発明は、バスからのデータをデコードしてソフトウェア割り込みに基づく同期化参照信号を生成する手段を提供する。そのような、割り込みに基づく参照信号は、従来技術のハードウェアベースの同期化の開示におけるきわめて正確な時間分解能を必要としない。
【０１０３】
さらに、本発明は、いかなる所与の割り込みベースの同期化参照信号についてもそのタイミング精度の不確かさを推定する方法を提供するうえ、上記被同期クロックの精度および安定性を向上させるためにフィルタリングまたは統計的手段を使用する。
【０１０４】
本発明の第２の実施形態によるＵＳＢデバイスは、ＵＳＢ ２０２とともに、図６の参照符号２００において概略的に示されている。ＵＳＢデバイス２００はバスコネクタ２０４を備え、ＵＳＢデバイス２００はそれによってＵＳＢ ２０２に連結されている。ＵＳＢデバイス２００は、バスインタフェース／マイクロコントローラ２０６、ＵＳＢデバイス機能回路（デジタル制御されるトランスデューサなど）２０８、バスサンプリング回路２１０（図１のバスサンプリング回路２０に相当する）、および同期化回路２１２を有する。
【０１０５】
バスインタフェース回路２０６はバスコネクタ２０４に存在するＵＳＢデータストリームを監視し、ＵＳＢトラフィック２１６の複製２１４を同期化回路２１２に送出する。同期化回路２１２は同期ローカルクロック信号２１８を生成し、それはＵＳＢデバイス機能回路２０８に送出される。ＵＳＢデバイス機能回路２０８は同期ローカルクロック信号２１８を用いて、バスインタフェース／マイクロコントローラ２０６からのコマンド２２０を同期して実行する。同期化回路２１２はＵＳＢトラフィック２１６からの周期的クロック搬送波信号をデコードする。
【０１０６】
図７は、図６のＵＳＢデバイス２００の同期化回路２１２の概略図である。同期化回路２１２はＵＳＢデータトラフィックの複製２１４を受信する入力ポート２３２、同期クロック出力ポート２３４、整合フィルタ２３６、マルチタップ自走発信器クロック２３８、およびクロックセレクタ２４０を有する。
【０１０７】
整合フィルタ２３６は、入力ポート２３２からＵＳＢデータストリーム２４２を受信する。整合フィルタ２３６は、ＵＳＢデータストリーム２４２からの周期的搬送波信号（本実施形態ではＳＯＦパケットトークンの形態）をデコードし、クロック同期化信号２４４を生成する。マルチタップ自走発信器２３８（マルチタップの位相遅延発生器に結合される自走発信器の形態でありうる）は、複数の位相遅延したクロック信号２４６を生成する。クロックセレクタ２４０はクロック同期化信号２４４を用いて出力クロック信号２４８を選択する。出力クロック信号２４８は、複数の位相遅延したクロック信号２４６のうちの選択された１つである。複数の位相遅延したクロック信号を生成するために安価な自走発信器を利用する多くの方法が存在することは、当業者によって十分に理解されるだろう。
【０１０８】
このように、同期化回路２３０は粗い同期を維持するために、安価な自走発信器およびクロックセレクタ回路を用いてデジタル制御ループ内の出力クロック信号位相を制御する。そのようなシステムは、一般に従来の（精密な位相および周波数制御を提供する）アナログ位相同期ループ・アーキテクチャに比べて安定性および精度が劣るが、この方法は比較的安価な代替同期化システムを与える。なぜならこの方法は、複数の自走クロックのうち、いかなるときにも使用されるべき最も適切なものを決定する、一連の工程（フィールドプログラマブルゲートアレイ内で動作するソフトウェアまたはファームウェアとして具現化される）を用いるからである。
【０１０９】
同期化回路２３０の動作をより十分に説明するため、図８に、図７の同期化回路２１２内のクロックおよび制御信号の概略図２６０を示す。
【０１１０】
デコードされたフレームの開始信号２６２（図７の２４４に相当する）は、同期されるローカルクロックが同期の基準とするべき参照信号を提供する。ローカル自走発信器の第１のクロック位相２６６および第２のクロック位相２６８という２つの位相（図７の複数のクロック位相２４６のうちの２つに相当する）とともに、完璧に同期された理想的なクロック２６４を参考のために示してある。出力クロック２７０（図７の出力クロック信号２４８に相当する）は、同期されるＵＳＢデバイスの制御に用いられる同期されたクロック信号（図６の２１８に相当する）である。
【０１１１】
フレームの開始のデコードされたパルス２７２は同期化ウインドウの開始を成し、デコードされたパルス２７４は終了を成す。理想的なクロック２６４は、クロックパルス２７６の立ち上がりエッジがデコードされたパルス２７２と位置合わせされ、クロックパルス２７８の立ち上がりエッジがデコードされたパルス２７４と位置合わせされるように、周波数および位相に関して同期される。（クロックパルスの立ち上がりエッジは実際には波形上のいずれの反復可能な点であってもよいが、この説明では簡単のために立ち上がりエッジを選択している。）
自走発信器は精密に制御される周波数および位相では動作せず、その範囲全体にわたって周波数が変化しうる。
【０１１２】
第１のクロック位相２６６は図７の多位相クロック２３７の１つの位相を表し、デコードされたパルス２７２と同期される（２８０）。第１のクロック位相２６６と理想的なクロック２６４との比較から、自走クロックが理想的なクロック周波数より遅く進むことが容易にわかるだろう。これは位相遅れ２８２によって示されている。位相遅れ２８２は、第１のクロック位相２６６が数クロックサイクル後に理想的なクロック２６４に対して示すものである（この図では明確化のために誇張している）。第１のクロック位相２６６はデコードされたパルス２７２に同期されるが、第１のクロック位相２６６は次のデコードされたパルス２７４を受信するときには、クロックパルス２８４によって示されるように位相がずれている。
【０１１３】
第２のクロック位相２６８はデコードされたＳＯＦ ２７２と同期していない（２８６）（または同相ではない）が、図７のローカル自走発信器クロック２３８の同期されない周波数により、第２のクロック位相２６８はデコードされたＳＯＦ ２７４と同相（２８８）である。
【０１１４】
図７のクロックセレクタ２４０は、複数の位相遅延したクロック信号２４６の１つを図７の出力ポート２３４にルーティングするデジタルスイッチとして作用する。図７のクロックセレクタ２４０は、デコードされたＳＯＦパルスの受信と同期してスイッチングを行い、複数の位相遅延したクロック信号２４６のうち最も適切な（すなわち、最も正確に位置合わせされた）ものを選択する。
【０１１５】
図８の例において、図７のクロックセレクタ回路２４０はＳＯＦパルス２７２において第１のクロック位相２６６を選択しており、次のデコードされたＳＯＦパルス２７４の受信まで、第１のクロック位相２６６は出力クロック２７０として送信され続ける。第２のクロック位相２６８は、図７のクロックセレクタ回路２４０がデコードされたＳＯＦパルス２７４を受信する瞬間において、複数の位相遅延したクロック信号２４６のなかで最も正確に同相している（すなわち、クロックパルス２８８である）。したがって、第２のクロック位相２６８は、次のデコードされたＳＯＦパルスの受信まで、出力クロック２７０として送信され続ける。デコードされたＳＯＦ ２７４の受信前における出力クロック２７０の最後のクロックサイクル２９４は、それ以外の出力クロックサイクルとは異なる期間になっている。デコードされたＳＯＦパケットの受信の速度および自走発信器クロックに対する合理的に選択された周波数公差を考えると、最後のクロックサイクル２９４はクロックサイクルのうちのわずかな部分が違うだけである。このように、自走発信器クロックは新しいデコードされたＳＯＦが受信されるごとにデジタル方式で位相調整される。
【０１１６】
自走発信器の典型的な周波数公差は５０ｐｐｍから１００ｐｐｍのオーダである。典型的な１０ＭＨｚのデータ収集発信器に対する５０ｐｐｍ公差は、毎秒５００サイクルという、起こりうるなかで最悪級の周波数誤差に対応する。ＵＳＢハイスピード・システムでは、ＳＯＦパケットは８ｋＨｚの速度で（または１２５μｓの周期で）受信される。このことは、各１２５μｓのＳＯＦ周期において最大で５００サイクル、または１サイクルの１／１６、のクロック誤差が生じることを意味している。１０ＭＨｚで１サイクルの１／１６は、６．２５ｎｓという最悪級の位相誤差に対応する。連続するＳＯＦ周期におけるこの大きさの累積位相誤差は、データ収集用途において許容できない。しかし、本発明の第２の実施形態によれば、各ＳＯＦ周期におけるこの大きさの位相誤差に対するデジタル補正は、許容可能なデータ収集クロックをもたらす。
【０１１７】
このように、ＵＳＢからの反復的な入力クロック搬送波信号と同期される出力クロック周波数をある許容可能な境界内に維持するために、単純なデジタル式の位相のみの制御ループが安価な自走発信器クロックとともに使用される。さらに、それぞれ同様の回路とともに配置される複数のＵＳＢデバイスは、同期されたＵＳＢを形成する。
【０１１８】
本発明の範囲内での変更は当業者によって容易に達成されうる。したがって、本発明は上記において例として記述された特定の実施形態に限定されないこと、および本明細書中に記載されるさまざまな実施形態の組み合わせが当業者には容易にわかることは理解されねばならない。
【０１１９】
本発明に関する上記の説明では、明確な文言もしくは必要な暗示ゆえに文脈によって必要になる場合を除き、「ホストコントローラ」の語は標準的なＵＳＢホストコントローラ、ＵＳＢ “On the Go”のホストコントローラ、ワイヤレスＵＳＢホストコントローラ、またはその他の形態のＵＳＢホストコントローラを表すために用いられる。
【０１２０】
本発明に関する上記の説明では、明確な文言もしくは必要な暗示ゆえに文脈によって必要になる場合を除き、「備える（comprise）」の語、または「備える（comprises）」もしくは「備えている（comprising）」などの変形は、包含的な意味、すなわち、明示された特徴の存在を規定するが、本発明のさまざまな実施形態におけるさらなる特徴の存在もしくは追加を排除しないために用いられる。
【０１２１】
さらに、本明細書における従来技術への言及は、そのような従来技術が一般的な基本知識の一部を形成する、もしくは形成したことを暗示することを意図したものではない。
【図１】
2010527081.tif 000003
【図２】
2010527081.tif 000004
【図３】
2010527081.tif 000005
【図４】
2010527081.tif 000006
【図５】
2010527081.tif 000007
【図６】
2010527081.tif 000008
【図７】
2010527081.tif 000009
【図８】
2010527081.tif 000010
【国際調査報告】
2010527081.tif 000011
2010527081.tif 000012
2010527081.tif 000013
2010527081.tif 000014
2010527081.tif 000015