説明

USBベースの同期およびタイミングシステム

USBマイクロコントローラ、USBトラフィックを監視する回路、および分散クロック周波数および位相に関する情報を含む周期的データ構造(クロック搬送波信号など)をUSBデータストリームからデコードし、デコードされた搬送波信号を出力する回路、を有するUSBデバイスと、デコードされた搬送波信号を受信し、ある所定のデータパケット(SOFパケットなど)の受信時にソフトウェア割り込みを発生させ、さらにソフトウェア割り込みをUSBマイクロコントローラに送出する回路と、を備える同期装置であって、USBマイクロコントローラは、同期化参照信号として使用されるように適合された出力信号を生成することによってソフトウェア割り込みに応答する(そこに備わる割り込みサービスルーチンなどによる)ように構成されている、同期装置。

【発明の詳細な説明】
【技術分野】
【0001】
本願は、2007年5月15日に出願された米国特許出願第60/938,148号の優先権を主張し、その内容は全体が参照によって援用される。
【0002】
本開示は、局所的環境または分散スキームのいずれかにおいて、本質的に任意の程度に同期する、試験および測定機器、計装インタフェース、およびプロセス制御機器のクロック、データ収集、および自動化と制御の提供において特定の(しかし、決して排他的ではない)用途をもつ、USBベースの同期およびタイミングシステムを提供する方法および装置に関する。
【背景技術】
【0003】
USB規格(USB specification)は、オープンアーキテクチャにおいて異なるベンダのデバイスの相互運用を容易にすることを意図したものである。USBデータは、差分シグナリング(すなわち、2本の線が情報を伝達する)を用いてそれら2本の線の信号レベルの差の形でエンコードされる。USB規格はPCアーキテクチャに対する改良として意図されたものであり、ポータブル、デスクトップ、および家庭の環境に及ぶ。
【0004】
USB規格はデバイスどうしが異なることを前提とする。これは、多くのメーカのデバイスが接続される想定内の環境には当てはまるが、類似の性質を有する複数のデバイスを同期した状態で運用するための規格を必要とするその他の環境(ある共通の産業もしくは実験室環境など)が存在する。この規格はそのような課題に十分に対応していない。上記のような環境は、典型的には試験、測定、または監視が行われ、かつ規定されるよりも正確にデバイスが同期されなければならない環境である。USB規格によれば、1kHzのクロック信号をすべてのデバイスに供給することによって限定的なデバイス間同期が可能になる。しかし、多くの実験室および産業環境は、メガヘルツ以上の周波数における同期を必要とする。
【0005】
USBは階層化されたスター型トポロジーを使用する。そこにおいて、ハブはUSBデバイスに対する連結点を提供する。ユーザのパーソナルコンピュータ(PC)、ラップトップ、または携帯情報端末(PDA)上に存在するUSBホストコントローラはルートハブを含んでいる。それはシステム内のすべてのUSBポートの起点である。ルートハブは、USB機能デバイスまたは追加ハブを連結しうるいくつかのUSBポートを提供する。
【0006】
同様に、それらのポートのいずれにも、より多くのハブ(USB複合デバイスなど)を連結できる。それらは次に、ポートを介した追加的な連結点をさらなるUSBデバイスのために提供する。このようにして、USBでは最大で127個のデバイス(ハブを含む)が接続できるが、いずれのデバイスも最大で5階層の深さまでしか存在できないという制約が伴う。
【0007】
ホスト内のルートハブはフレームの開始(SOF:Start of Frame)信号パケットを1msごとに各デバイスに送信する。2つのSOFパケット間の時間はフレームと呼ばれる。USBトポロジーに内在する電気的遅延により、各モジュールはこのSOFパケットを異なる時に受信する。これは、ホストコントローラに直接接続されるデバイスでの信号の受信と、5階層下にあるデバイスでのそれとの間に相当な時間遅延(規定値は380ns以下)が存在しうることを意味する。デバイスをメガヘルツ以上のレベルで同期することが望まれる場合、これは厳しい制約である。このほか、USB規格では、ホストコントローラは最大5つの連続するSOFトークンを送信しそこなうことが可能である。
【0008】
USBホストとUSBデバイスの間の電流同期(current synchronization)は、割り込みとアイソクロナスという2種類のUSB送信によって可能である。割り込み送信では125μsを最小周期とするデバイスの保証ポーリング周波数が可能であるのに対し、アイソクロナス送信は一定の送信速度を保証する。いずれの方法も、同期を取るためのトラフィックがデバイスとホストの間に存在することが必要であり、したがって、より高度の同期のためにはより多くの帯域を確保することが必要になる。残念ながら、このことは最大数のデバイスが接続される前に使用できるUSB帯域を使い切ってしまう可能性があることを意味する。また、この方式は127個のデバイスをソフトウェアによってホストに同期した状態に維持するという多大な計算上の負担をホストにかけるうえ、ホストにとって個々のデバイスは個別のプロセスに当たるため、デバイス間の同期の維持には依然として対応できない。
【0009】
レーザダイオードまたは光検出器などのある種の物理的トランスデューサを備えたデバイスは、クロックまたはトリガ情報を必要とすることがある。1MHzの変調された光出力をもつレーザダイオードなどのデバイスは、トランスデューサ機能を規則的な間隔または一定の周波数で実行するためにクロック信号を用いることがある。ある動作をある設定時間に開始または終了するためには通常、トリガ信号が用いられる。レーザダイオードの例では、変調された光出力のオンまたはオフにトリガ信号が用いられることが考えられる。
【0010】
これらのクロックおよびトリガ信号は、多くのデバイスを互いに同期するために(したがって以下で「同期化情報」と呼ばれるものを構成するために)使用することができる。ただし、その信号はすべてのデバイスにとって共通かつ同時であるものとする。ここで「共通」かつ「同時」とは、デバイス間におけるそれらの信号の時間変動がある指定量δt未満であることを意味する。レーザダイオードの例では、これによって多くのレーザダイオードがその光出力を1つの周波数で変調できるようになるだろう。すべてのデバイスの変調周波数は同じになるだろうし、その波形は同相になるだろう。最新のUSB規格(すなわち2.0)では最大0.35μsのδtが可能である。周波数が1MHzで周期が1.0μsの信号の場合、この遅延は周期のほぼ半分に当たる。したがって、これは日常的な使用を対象とする同期化情報としては使用できない。
【0011】
ハブおよびUSBコントローラチップなどのデバイスは、一般にUSBプロトコルをデコードするためにある量の位相固定を利用する。USBプロトコルにおけるSYNCパターンの目的は、他の電子回路を固定する基準となる同期化パターンを提供することである。しかし、これはデバイスをMHzのビットストリームを解釈するのに十分な精度でUSBビットストリームに同期することを意図したものである。2つの個別デバイスを多くの試験および測定器具によって必要とされるレベルまで互いに同期することは、意図されていない。デバイス間同期を扱う範囲において、USB規格は1組のUSBスピーカペア上の出力に対してUSB−CDオーディオストリームを十分に同期することに主として関心がある。そのようなアレンジメントにおける必要条件はkHzの範囲にあり、その用途に対してUSB規格は十分である。しかし、この規格は、例えば100組のUSBスピーカペアを同期するという潜在的な問題には対応していない。
【0012】
上述のように、USB通信は規則的な1msフレームの間に(または、ハイスピードUSB規格の場合には1msフレーム当たり8つのマイクロフレームにおいて)データを転送する。フレームの開始(SOF:Start of Frame)パケットは、各フレームの開始時にロースピード・デバイス以外のすべてのデバイスに、また各マイクロフレームの開始時にすべてのハイスピード・デバイスに送信される。そのため、SOFパケットは、ある所与のホストコントローラに接続される、ロースピード・デバイス以外のすべてのデバイスに対する周期的な低分解能信号のブロードキャストを表す。
【0013】
このSOFパケットブロードキャストは1kHz(ハイスピードUSB規格の場合は8kHz)の公称周波数で発生する。しかし、USB規格では、500ppm(parts per million)程度のきわめて大きな周波数公差(計装基準による)が可能である。背景技術は、それぞれのデバイスにブロードキャストされるこの低分解能周波数信号を使用するが、それはUSBホストコントローラによって提供される多少曖昧な周波数に対してクロック同期を提供するにすぎない。
【0014】
米国特許第6,343,364号(レイディア(Leydier)ら)はUSBトラフィックに対する周波数固定の例を開示している。これはスマートカードリーダを対象にしたものである。この文献は、USB SYNCとパケットIDのストリームに匹敵する局所的な自走クロックを教示する。その周期はこの周波数にマッチするように更新され、公称周波数が1.5MHzのローカルクロックが実現する。これは、スマートカード情報をホストPCに読み込むのに十分な程度の同期を与えるが、この方式はスマートカードリーダを対象にしたものであるため、デバイス間同期には対応していない。
【0015】
米国特許第6,012,115号および後続の継続米国特許第6,226,701号(チャンバーズ(Chambers)ら)は、タイミングのためのUSB SOFの周期性および番号付与を扱っている。これらの文献は、USBホストコントローラからそれに接続される周辺機器(peripheral device)に送信されるフレームパルスの開始を用いることにより、ある所定のイベントがリアルタイム周辺機器の内部で発生する瞬間について正確な決定を行うことができるコンピュータシステムを開示している。
【0016】
しかしながら、これらの文献によって教示される方法は、USBホストコントローラ内のマスタクロックの絶対周波数の決定を目的とした、USBデータトラフィックに含まれる周期的データ構造の周波数の測定を伴わず、一部のケースではホスト内での追加的カウンタの提供に頼っている。
【0017】
米国特許第6,092,210号(ラーキー(Larky)ら)は、ローカルデバイスクロックを両USBホストのデータストリームと同期するためにUSB−USB接続デバイスを用いることにより、データ転送を目的として2つのUSBホストを接続する方法を開示する。ローカルクロックの同期には位相同期ループが用いられ、データ紛失が発生しないことを確実にするためにオーバーサンプリングが用いられる。しかし、この文献は、情報の転送が2つのホスト間で可能となるような、2つのUSBホストのデータストリームの相互(かつ限定的な精度)の同期に関するものである。この文献は、複数個のUSBデバイスを1つのUSBホストまたは複数個のUSBホストと同期するための方法を教示していない。
【0018】
USB規格はオーディオアプリケーションを念頭に書かれており、米国特許第5,761,537号(スタージズ(Sturges)ら)は個別クロックを備えた2組以上のスピーカを同期する方法を記載している。そこでは、1組がPC内のオーディオ回路によって動作し、もう1組がUSBによって制御される。両スピーカペアはそれ自身のクロックを用いるために同期される必要があり、そのためこの文献は、非同期クロック間に起こりうるクロックスキューに関係なくオーディオ信号の同期を維持するひとつの技術を教示している。
【0019】
米国特許出願第10/620,769号(フォスター(Foster)ら)は同期バージョンのUSBを開示している。そこでは、各デバイスのローカルクロックがある所与のUSBに任意の程度で同期される。またこの文献は、トリガ信号によってあるイベントが複数のデバイス上で同期して開始されるように、そのUSB内の各デバイスにトリガ信号を提供する方法および装置も開示している。
【0020】
図1は、USBバスコネクタ14を介してデジタルUSB 12に接続された、例示的な背景技術の同期されたUSBデバイス10の概略図である。USBデバイス10は統合されたUSBインタフェースとマイクロコントローラ16、USBデバイス機能回路(デジタル制御されるトランスデューサなど)18、バスサンプリング回路20、デジタルI/Oバス復号化回路22、同期化位相比較器24、および被同期クロック26を含む。
【0021】
USBデバイス10は、バスコネクタ14によってデジタルUSB 12に接続される。デジタルUSB 12は、USBデバイス10に関するUSBデータと制御信号を含む。バスサンプリング回路20は内部USBトラフィック30を監視してその複製32を生成する。デジタルI/Oバス復号化回路22は信号32からクロック搬送波信号34をデコードする。同期化位相比較器24はデコードされたクロック搬送波34を被同期クロック26からの分周されたクロック信号36と比較し、出力されるローカルクロック信号28が周波数と位相に関して(搬送波信号34よりかなり高い周波数で)搬送波信号34に固定されるようにする。
【0022】
このアレンジメントにおいて、同期化は、USB信号トラフィックがUSBデバイス10に到達したときのUSB 12からの情報を検出および抽出することによって、およびローカルクロック信号28を生成することによって実現される。
【0023】
複数個のUSBデバイスのそれぞれにおけるローカルクロックの同期を目的とするこのアーキテクチャは、USBトラフィック中に存在する周期的データ構造を使用する。米国特許出願第10/620,769号に開示されるある実施形態は、周波数と位相に関してローカルクロックをUSBデバイスにおけるSOFパケットトークンの検出に本質的に固定する。USBを通るトラフィックの監視およびバストラフィックからのクロック搬送波信号(ある実施例ではSOFパケット)のデコードには回路が用いられる。それによって1kHz(またはUSBハイスピードの場合は8kHz)の公称搬送波信号周波数が実現する。制御された発信器クロックからのローカルクロック信号は、位相と周波数の両方においてUSB SOFパケットの受信に固定される。これにより、ルートハブに連結されるすべてのデバイスが、周波数に関してデバイスがSOFパケットトークンを受信する時点に固定されることが確実になる。しかし、米国特許出願第10/620,769号に記載された方式は、正確に判明しているクロック周波数を各デバイスに提供する能力に限界がある。
【0024】
さらに、この開示はUSBに連結されるデバイスの非常に正確なクロック同期を教示しているが、開示される方式は精密制御発信器を典型的には電圧制御される電圧発信器の形で使用しており、安定した供給電圧を提供するには特別な注意を払う必要がある。そのため精密発信器には閉ループ制御回路が適用される。これは同期されるUSBデバイスの設計に対してコストと複雑さを増やすことになる。
【0025】
2007年2月15日に出願された国際特許出願第PCT/AU2007/000155号(フォスター(Foster)ら)に開示される別の同期されたUSBデバイスを概略的に図2に示す。この開示の技術を用いると、ホストPC内のクロックの精度に関係なく、USBデバイスにおいて正確なクロック周波数が生成できる。図2を参照すると、USBデバイス40はバスコネクタ44、バスインタフェース回路46、マイクロコントローラ48、USBデバイス機能回路(デジタル制御されるトランスデューサなど)50、およびシンクロナイザ52(図1のデジタルI/Oバス復号化回路22、同期化位相比較器24、および被同期クロック26に相当する)の形態の同期化回路を備える。バスインタフェース回路46は、バスコネクタ44において検出されたUSBデータに対するトランシーバとして作用し、USBデータをマイクロコントローラ48に送出する。USBデバイス40は、内部バスリンクを監視してUSBトラフィック58の複製56をシンクロナイザ52に送出する回路54をさらに備える。マイクロコントローラ48は、クロック信号62の正確な周波数合成のために情報62をシンクロナイザ52に提供する。マイクロコントローラ48は、通信バス64を介してデバイス機能回路50と通信する。
【0026】
搬送波信号はUSBトラフィックからデコードされると、同期化情報を生成するための、したがってクロック周波数の精密制御のもとでローカルクロック信号を合成するための、倍率と組み合わされる。このように、マイクロコントローラ48からの追加情報信号60の使用により、ローカルクロック信号の周波数は搬送波信号の多少曖昧な周波数より正確であることができる。
【0027】
この構成は任意に高い周波数(数十メガヘルツのクロック周波数など)のローカルクロック信号を作ることができ、したがって、ある所与のUSBに接続される各デバイスのローカルクロックが周波数に関して同期されることを確実にすることができると言われている。米国特許出願第10/620,769号は、ホストから各デバイスへの信号伝播時間の測定、ならびにUSBデバイスのそれぞれにおけるクロック位相補償の提供により、複数のローカルクロックが同相になるようさらに同期する方法と装置についても教示している。
【発明の概要】
【発明が解決しようとする課題】
【0028】
このような同期USBシステムは、正確なクロック周波数の生成によってUSBデバイス間で正確なクロック同期を行うことができる一方、USB上に存在するデータをデコードする特殊なハードウェアコンポーネント、ならびに搬送波信号の受信の瞬間についての精密な決定が必要になる。それらのコンポーネントは通常のUSBバスインタフェース回路およびマイクロコントローラ(それぞれ図2の46と48)に加えて必要とされるため、それらの方式は、既製のUSBインタフェース・マイクロコントローラを用いた一般的な実装のUSBに対して互換性をもたない。
【0029】
また、USB規格はUSBデバイスがバスに与えることのできるキャパシタンスのレベルを制約している。グラウンドに対する並列実効抵抗の存在下における、USBの各データ線とグラウンドとの間の実効キャパシタンスはきわめて厳格に制御される。規格に従ったUSBデバイスについては一般に小さなキャパシタンス余裕しか存在しない。並列データ経路回路(図1のバスサンプリング回路20のそれに相当する)を従来のUSBデバイスに追加すると、典型的にはキャパシタンス限界値を超えるだろう。
【課題を解決するための手段】
【0030】
第1の広範な態様において、本発明は、
USBマイクロコントローラ、USBトラフィックを監視する回路、および分散クロック周波数および位相に関する情報を含む周期的データ構造(クロック搬送波信号など)をUSBデータストリームからデコードし、デコードされた搬送波信号を出力する回路、を有するUSBデバイスと、
前記デコードされた搬送波信号を受信し、ある所定のデータパケット(SOFパケットなど)の受信時にソフトウェア割り込みを発生させ、さらに前記ソフトウェア割り込みを前記USBマイクロコントローラに送出する回路と、
を備える同期装置であって、
前記USBマイクロコントローラは、同期化参照信号として使用されるように適合された出力信号を生成することによって前記ソフトウェア割り込みに応答する(それに備わる割り込みサービスルーチンなどによる)ように構成されている、
同期装置を提供する。
【0031】
前記USBマイクロコントローラは、前記USBデータストリームを監視する前記回路を備えてもよい。
【0032】
前記デコードされた搬送波信号を受信してソフトウェア割り込みを発生させる前記回路は前記USBマイクロコントローラ内に設けてもよいが、代替方法として、前記USBマイクロコントローラの外部、または実際には前記USBデバイスの外部にある回路として設けてもよい。
【0033】
前記装置は、前記周期的データ構造をデコードする前記回路と、前記デコードされた搬送波信号を受信して前記ソフトウェア割り込みを発生させる前記回路とを備えるハイブリッドのUSBインタフェースとマイクロコントローラ(hybrid USB interface and microcontroller)を備えてもよい。
【0034】
前記装置は、デコードされたSOF信号を生成してそれを前記USBマイクロコントローラに送出し、前記USBマイクロコントローラはそれに応答して前記ソフトウェア割り込みを発生させる、個別の復号化ハードウェアを備えてもよい。
【0035】
前記周期的データ構造は、例えばUSB規格に規定されるUSBパケット信号構造、前記USBデバイスに送られるコマンドシーケンス、前記USBデバイスに送られるデータシーケンス、OUTトークン、INトークン、ACKトークン、NAKトークン、STALLトークン、PREトークン、SOFトークン、SETUPトークン、DATA0トークン、DATA1トークン、またはUSBデータパケット中のプログラム可能なビットパターンシーケンスのいずれかを含んでもよい。
【0036】
複数の上述した同期装置を用いて複数のUSBデバイスを同期する方法も提供される。
【0037】
前記第1の広範な態様によれば、上述の装置を備えた、同期されたUSBも提供される。
【0038】
第2の広範な態様によれば、本発明は、
デコードされた搬送波信号を監視する工程と、
前記デコードされた搬送波信号内のある所定のデータパケット(SOFパケットなど)に基づいてソフトウェア割り込みを促す工程と、
割り込み出力信号を生成する割り込みサービスルーチンを前記ソフトウェア割り込みに応答して実行する工程と、
前記ソフトウェア割り込みが受信されたときに実行中であったUSBマイクロコントローラ命令を決定する工程と、
前記USBマイクロコントローラ命令によって要求される命令サイクル数を決定する工程と、
ソフトウェア割り込みの受信時間の不確かさに基づいてタイミング参照信号にタイミング有効性重み付け(validity weighting)係数を割り当てる工程と、を含む、
複数のデコードされた同期化参照信号に対して有効性重み付けを割り当てる方法を提供する。
【0039】
前記第2の広範な態様は、より高い精度および安定性のために反復的搬送波信号パルスをフィルタリング、平均化、または処理する1つ以上の統計的方法を用いることができる。
【0040】
第3の広範な態様において、本発明は、
USBデータストリームを監視する工程と、
前記USBデータストリームから周期的データ構造をデコードする工程と、
前記周期的データ構造に基づいてソフトウェア割り込みを促す工程と、
前記ソフトウェア割り込みに応答して割り込みサービスルーチンを実行する工程と、
前記割り込みサービスルーチンによって割り込み出力信号を生成する工程と、
位相同期ループ・アーキテクチャを有する被同期クロック回路に前記割り込み出力信号を参照タイミング信号として送出する工程と、
前記参照タイミング信号に基づき、ローカルクロック(高周波ローカル水晶発振器クロックなど)を位相と周波数に関して被同期クロック回路に固定する工程と、を含む、
USBデバイスのローカルクロックを同期する方法を提供する。
【0041】
前記周期的データ構造は、例えばUSB規格に規定されるUSBパケット信号構造、前記USBデバイスに送られるコマンドシーケンス、前記USBデバイスに送られるデータシーケンス、OUTトークン、INトークン、ACKトークン、NAKトークン、STALLトークン、PREトークン、SOFトークン、SETUPトークン、DATA0トークン、DATA1トークン、またはUSBデータパケット中のプログラム可能なビットパターンシーケンスのいずれかを含んでもよい。
【0042】
前記第3の広範な態様は、同期されたUSBを、この方法による複数の同期されたUSBデバイスを用いて生成することにも使用できる。
【0043】
第4の広範な態様において、本発明は、
USBデータストリームを監視する工程と、
前記USBデータストリーム中の周期的データ構造SOFパケットをデコードする工程と、
それぞれが(典型的には互いに異なる)それぞれの位相を有する複数の出力を備える自走発信器クロックを使用する工程と、
前記デコードされた周期的データ構造の受信時に、前記デコードされた周期的データ構造と最も同相に近い(most in phase)出力を選択する工程と、
不正確な自走クロックもしくは同期していない自走クロックの周波数に対して補償を行うように、前記選択された位相に基づいて自走クロックを位相調整する工程と、を含む、
USBデバイスのローカルクロックを同期する方法を提供する。
【0044】
前記方法は、一般に、前記デコードされた周期的データ構造と最も同相に近い位相を前記出力の位相から繰り返し選択する工程と、前記選択された位相に基づいて前記自走クロックを位相調整する工程と、を含むだろう。
【0045】
前記周期的データ構造は、例えばUSB規格に規定されるUSBパケット信号構造、前記USBデバイスに送られるコマンドシーケンス、前記USBデバイスに送られるデータシーケンス、OUTトークン、INトークン、ACKトークン、NAKトークン、STALLトークン、PREトークン、SOFトークン、SETUPトークン、DATA0トークン、DATA1トークン、またはUSBデータパケット中の所定のビットパターンシーケンスのいずれかを含んでもよい。
【0046】
このように、クロックの最も適切な(周波数制御されていない)位相を各周期的データ構造(例えばSOF)イベントにおいて選択することができる。これは、ソフトウェア(ISR)またはハードウェアタイプの周期的データ構造検出とともに用いてもよい。
【0047】
前記方法は、複数の位相遅延した出力を有する自走発信器を使用する工程を含んでもよい。
【0048】
前記方法は、複数の位相を生成するためにマルチタップの遅延発生器を有する自走発信器を使用する工程を含んでもよい。
【0049】
第4の態様によれば、上述の方法による複数の同期されたUSBデバイスを用いた、同期されたUSBも提供される。
【0050】
ある広範な態様によれば、本発明は、
プロセッサを有するデバイスをデータバスに接続する工程と、
前記デバイスに局所的なデータ信号に関して前記プロセッサで前記データバスをモニタする工程であって、前記データは周期的データ構造を含む、工程と、
ソフトウェア割り込みを発生させることによって前記プロセッサが前記周期的データ構造の検出に応答する工程と、
割り込みサービスルーチンを実行することによって前記プロセッサが前記ソフトウェア割り込みに応答する工程と、
前記割り込みサービスルーチンがタイミング参照信号を生成する工程と、を含む、
タイミング参照信号を分配する方法を提供する。
【0051】
前記周期的データ構造は複数の周期的データ構造の1つであってもよく、前記方法は、それぞれのソフトウェア割り込みを発生させることによって前記プロセッサが前記周期的データ構造のそれぞれの検出に対して応答する工程と、それぞれの割り込みサービスルーチンを実行することによって前記プロセッサが前記ソフトウェア割り込みに応答する工程と、前記割り込みサービスルーチンがそれぞれのタイミング参照信号を生成する工程と、を含む。
【0052】
前記方法は、
前記それぞれのソフトウェア割り込みの受信中に前記プロセッサによって処理されているソフトウェア命令を特定する工程と、
前記ソフトウェア命令を実行するために前記プロセッサによって要求される命令サイクル数を決定する工程と、
前記それぞれのタイミング参照信号のそれぞれに対して重み付け係数を割り当てる工程であって、前記重み付け係数は、前記それぞれのソフトウェア割り込みの発生と前記それぞれのタイミング参照信号との間の期間の不確かさの尺度である、工程と、
をさらに含んでもよい。
【0053】
前記方法は、
前記タイミング参照信号のある所与の1つによる寄与がそれに対応する重み付け係数によって重み付けされるように、前記複数の重み付け係数を前記複数のタイミング参照信号と組み合わせることによって複数の重み付けされたタイミング参照信号を生成する工程、
をさらに含んでもよい。
【0054】
前記方法は、
周波数と位相の両方に関して前記デバイスのローカルクロックを前記複数の重み付けされたタイミング参照信号に固定する工程、
をさらに含んでもよい。
【0055】
前記方法は、
前記重み付けされたタイミング参照信号を統計的に処理する工程と、それによって前記ローカルクロックの周波数と位相をより精密に固定する工程と、
をさらに含んでもよい。
【0056】
前記データバスはUSBであってもよく、前記デバイスはUSBデバイスであってもよい。
【0057】
前記プロセッサは、組み込みのUSB物理インタフェースを有するマイクロコントローラであっても、または組み込みのUSB物理インタフェースを備えたフィールドプログラマブルゲートアレイもしくはその他の形態のプログラマブルロジックであってもよい。
【0058】
ある実施形態において、前記周期的データ構造は、USB規格に規定されるUSBパケット信号構造、前記USBデバイスに送られるコマンドシーケンス、前記USBデバイスに送られるデータシーケンス、OUTトークン、INトークン、ACKトークン、NAKトークン、STALLトークン、PREトークン、SOFトークン、SETUPトークン、DATA0トークン、DATA1トークン、またはUSBデータパケット中の所定のビットパターンシーケンスのいずれかを含む。
【0059】
別の広範な態様において、本発明は、
周期的データ構造に関してプロセッサでデータバスをモニタする工程と、
ソフトウェア割り込みを発生させることによって前記プロセッサが前記周期的データ構造に応答する工程と、
割り込みサービスルーチンを実行することによって前記プロセッサが前記ソフトウェア割り込みに応答する工程と、
前記割り込みサービスルーチンがタイミング参照信号を生成する工程と、
前記ソフトウェア割り込みの受信中に前記プロセッサによって処理されているソフトウェア命令を決定する工程と、
前記ソフトウェア命令を実行するために前記プロセッサによって要求される命令サイクル数を決定する工程であって、前記命令サイクル数は前記プロセッサが前記ソフトウェア割り込みを発行した時に対する決定の不確かさの尺度を表す、工程と、
前記プロセッサが前記ソフトウェア割り込みを発行した前記の時の不確かさに従って、前記複数のクロック搬送波信号を重み付けする工程と、を含む、
複数のクロック搬送波信号を重み付けする方法を提供する。
【0060】
前記周期的データ構造は複数の周期的データ構造の1つであってもよく、前記方法は、
それぞれのソフトウェア割り込みを発生させることによって前記プロセッサが前記周期的データ構造のそれぞれに応答する工程と、
それぞれの割り込みサービスルーチンを実行することによって前記プロセッサが前記ソフトウェア割り込みに応答する工程と、
前記割り込みサービスルーチンがそれぞれのタイミング参照信号を生成する工程と、
前記タイミング参照信号のそれぞれに重み付け係数を割り当てる工程であって、前記重み付け係数は前記ソフトウェア割り込みの発生と前記それぞれのタイミング参照信号との間の期間の不確かさの尺度である、工程と、
前記タイミング参照信号のある所与の1つによる寄与がそれに対応する重み付け係数によって重み付けされるように、前記複数の重み付け係数を前記複数のタイミング参照信号と組み合わせることによって複数の重み付けされたタイミング参照信号を生成する工程と、
を含む。
【0061】
前記方法は、前記ソフトウェア割り込みの発生と前記タイミング参照信号との間の期間の不確かさを計算機器(computing device)によって決定する工程を含んでもよい。
【0062】
前記方法は、前記ソフトウェア割り込みの発生と前記タイミング参照信号との間の期間の不確かさをルックアップテーブルによって決定する工程を含んでもよい。
【0063】
ある広範な態様によれば、本発明は、
割り込みサービスルーチンをサポートするプロセッサまたはマイクロコントローラと、
前記プロセッサに対して局所的なデータトラフィックを監視する回路と、
前記データトラフィックから周期的データ構造をデコードする回路と、
前記周期的データ構造のデコーディングに対応するアクノレッジ信号を生成する回路と、
前記アクノレッジ信号の受信時に割り込みサービスルーチンを発行するように構成された前記プロセッサのソフトウェア割り込みを発生させる回路と、
割り込みサービスルーチンからのコマンドに応答してタイミング参照信号を生成する回路と、を備える、
複数のタイミング参照信号を重み付けする装置を提供する。
【0064】
前記装置は、
前記ソフトウェア割り込みが発生したときにどの命令が実行されていたかを報告する出力と、
前記ソフトウェア割り込みの発生と前記タイミング参照信号との間の期間の不確かさを決定する機構と、
前記複数のタイミング参照信号のそれぞれに対して重み付け係数を計算する機構と、
をさらに備えてもよい。
【0065】
前記ソフトウェア割り込みの発生と前記タイミング参照信号との間の期間の不確かさを決定する前記機構は、例えば計算機器またはルックアップテーブルであってもよい。
【0066】
前記プロセッサまたはマイクロコントローラは、組み込みのUSB物理インタフェースを有していてもよい。前記プロセッサまたはマイクロコントローラはフィールドプログラマブルゲートアレイもしくはその他の形態のプログラマブルロジックであってもよく、それらは組み込みのUSB物理インタフェースを随意に有していてもよい。
【0067】
本発明は、
USBと、
ソフトウェア割り込みと割り込みサービスルーチンをサポートするアーキテクチャを有するプロセッサまたはマイクロコントローラと、
前記USBデバイスが前記USBとデータ通信を行っているときに前記USBに対して局所的なUSBトラフィックを監視する回路と、
前記USB上のトラフィックから周期的データ構造をデコードする回路と、
前記周期的データ構造のデコーディングに対応するアクノレッジ信号を生成する回路と、
前記アクノレッジ信号の受信時に前記プロセッサのソフトウェア割り込みを生成する回路であって、前記ソフトウェア割り込みが、局所的な同期化参照信号として使用されるように適合された出力信号を生成するように構成された割り込みサービスルーチンを開始する、回路と、
前記割り込みサービスルーチンからのコマンドに応答してタイミング参照信号を生成する回路と、を備える、
USBデバイスを同期する装置も提供する。
【0068】
前記装置は、
ローカルクロックと、
前記ローカルクロックの周波数と位相を制御する回路であって、前記タイミング参照信号が前記ローカルクロックの周波数および/または位相の制御に使用できる、回路と、
をさらに備えてもよい。
【0069】
前記プロセッサまたはマイクロコントローラは、前記USBデバイスに対して局所的なUSBトラフィックを監視する前記回路を備えてもよい。
【0070】
前記プロセッサまたはマイクロコントローラは、前記USB上のトラフィックから周期的データ構造をデコードする前記回路を備えてもよい。
【0071】
前記プロセッサまたはマイクロコントローラは、前記周期的データ構造のデコーディングに対応するアクノレッジ信号を生成する前記回路を備えてもよい。
【0072】
前記プロセッサまたはマイクロコントローラは、前記アクノレッジ信号の受信時に前記プロセッサのソフトウェア割り込みを生成する前記回路を備えてもよい。
【0073】
前記プロセッサまたはマイクロコントローラは、前記割り込みサービスルーチンからのコマンドに応答してタイミング参照信号を生成する前記回路を備えてもよい。
【0074】
前記プロセッサまたはマイクロコントローラは前記ローカルクロックを備えてもよい。
【0075】
前記USBデバイスに対して局所的なUSBトラフィックを監視する前記回路は、前記プロセッサの内部に含まれなくてもよい。
【0076】
前記USB上のトラフィックから周期的データ構造をデコードする前記回路は、前記プロセッサまたはマイクロコントローラの内部に含まれなくてもよい。
【0077】
前記周期的データ構造のデコーディングに対応するアクノレッジ信号を生成する前記回路は、前記プロセッサの内部に含まれなくてもよい。
【0078】
本発明は、
USBデータストリームを監視する工程と、
前記USBデータストリーム内の周期的信号構造パケットをデコードする工程と、
それぞれがそれぞれの位相を有する複数の出力を備える自走発信器クロックを使用する工程と、
前記デコードされた周期的信号構造パケットの受信時に、前記デコードされた周期的信号構造パケットと最も同相に近い位相を前記出力の位相から選択する工程と、
不正確な自走クロックもしくは同期していない自走クロックの周波数に対して補償を行うように、前記選択された位相に基づいて自走クロックを位相調整する工程と、を含む、
USBデバイスのローカルクロックを同期する方法も提供する。
【0079】
前記方法は、前記デコードされた周期的信号構造と最も同相に近い位相を前記出力の位相から繰り返し選択する工程と、前記選択された位相に基づいて前記自走クロックを位相調整する工程と、を含んでもよい。
【0080】
前記周期的データ構造パケットは、例えばUSB規格に規定されるUSBパケット信号構造、前記USBデバイスに送られるコマンドシーケンス、前記USBデバイスに送られるデータシーケンス、OUTトークン、INトークン、ACKトークン、NAKトークン、STALLトークン、PREトークン、SOFトークン、SETUPトークン、DATA0トークン、DATA1トークン、またはUSBデータパケット中の所定のビットパターンシーケンスのいずれかを含んでもよい。
【0081】
前記方法は、複数の位相遅延した出力を有する自走発信器を使用する工程を含んでもよい。
【0082】
前記方法は、マルチタップ遅延を有する自走発信器を使用する工程を含んでもよい。
【0083】
本発明は、複数の選択可能な移相された出力を有するデバイスの自走ローカルクロックを同期する方法も含み、前記方法は、
(i)前記デバイスが周期的参照信号を受信する工程と、
(ii)前記周期的参照信号のぞれぞれの受信時に、前記複数の選択可能な移相された出力のうちどれが前記周期的参照信号と最も同相に近いのかを前記デバイスが検出する工程と、
(iii)前記移相された出力のうち最も同相に近いものを前記ローカルクロック信号として用いる工程と、
を含む。
【0084】
前記方法は、工程(i)から(iii)を繰り返すことによって、前記ローカルクロック信号を同相になるように周期的に調整する工程を含んでもよい。
【0085】
前記方法は、複数のクロックサイクルにわたって評価したときに、前記周期的参照信号と最も同相に近い移相された出力を選択する工程を含んでもよい。
【0086】
前記方法は、
前記周期的参照信号の連続的サイクルの間の期間中に遭遇する前記自走発信器出力の累積位相誤差を決定する工程と、
出力クロック信号の絶対的な位相誤差を継続的に最小化するために、前記周期的参照信号の連続的サイクルの間の期間内において、前記複数の移相された出力のうち二番目に適切なもの(the next most appropriate)を周期的に選択する工程と、
をさらに含んでもよい。
【0087】
なお、本発明の上記態様のそれぞれにおけるさまざまな特徴は要望に応じて組み合わせることができる点に留意されたい。
【0088】
また、本発明による装置はさまざまな方法で具現化できる。たとえば、そのようなデバイスはプリント回路もしくはプリント配線基板上、セラミック基板上の複数のコンポーネントの形態で、または半導体レベルにおいて、すなわち単一のシリコン(もしくはその他の半導体材料の)チップとして、構築することが可能である。
【図面の簡単な説明】
【0089】
【図1】図1は、背景技術による同期されるUSBデバイスの概略図である。
【図2】図2は、背景技術による別の同期されるUSBデバイスの概略図である。
【図3】図3は、本発明の第1の実施形態による同期されるUSBデバイスの概略図である。
【図4】図4は、図3の実施形態による2つのUSBインタフェース/マイクロコントローラのコマンド実行スタックの概略図であり、ソフトウェア割り込みの遅延と不確かさを示したものである。
【図5】図5は、図4のコマンド実行スタックのタイミング図である。
【図6】図6は、本発明の第2の実施形態による同期されるUSBデバイスの概略図である。
【図7】図7は、図6のUSBデバイスの同期化回路の概略図である。
【図8】図8は、図7の同期化回路の内部回路の概略的なタイミング図である。
【発明を実施するための形態】
【0090】
本発明がより明確に理解されるよう、添付の図面を参照しながら、以下に例として実施形態について説明する。
【0091】
本発明の第1の実施形態によるUSBデバイスは、デジタルUSB 82とともに、図3の参照符号80において概略的に示されている。USBデバイス80は、USB 82との接続のためのバスコネクタ84、USBインタフェース/マイクロコントローラ86、デジタル入力/出力回路88(例えば、アナログ・デジタル変換器などのデジタルトランスデューサ、圧力トランスデューサ、またはひずみゲージの形態)、および被同期クロック回路90を備える。
【0092】
反復的搬送波信号の形態のクロック同期化情報がUSBインタフェース/マイクロコントローラ86によってUSB 82から抽出される。従来のUSBマイクロコントローラ(サイプレスEZUSB-FXブランドシリーズのUSBマイクロコントローラなど)は、USBデータストリーム内のフレームの開始(SOF)パケットの受信時にソフトウェア割り込みを実行するように構成でき、この実施形態においてもそうなっている。SOFパケットの受信に応答して実行される割り込みサービスルーチンは、参照タイミング信号92を(USBフルスピードについては1kHz、またはUSBハイスピードについては8kHzのいずれかで)生成するようにプログラムされ、その信号は被同期クロック回路90へと送出される。被同期クロック回路90は、低周波参照信号92を用いて高周波ローカル水晶発信器クロックを位相および周波数に関して固定する位相同期ループ・アーキテクチャを備える。
【0093】
同期された出力クロック信号94は、USBインタフェース/マイクロコントローラ86から供給されるデータとコマンド96に従ってデジタル入力/出力回路88の動作を同期制御するように構成されている。このアーキテクチャにより、USBデータストリームを監視する専用の追加的ハードウェアコンポーネントをUSBインタフェース/マイクロコントローラ86と並列に用いなくても、同期化回路によって使用されるように搬送波信号をデコードすることができる。
【0094】
図4はそれぞれ、図3の実施形態によるUSBインタフェース/マイクロコントローラ86の2つの例の第1および第2のコマンド実行スタック110と112の概略図である。コマンドスタック110と112は上から下に向かって実行される。この図では、実行時間114は上から下に向かって増加する。マイクロコントローラ命令は単一命令サイクルタイムの整数倍であり、時間のブロックで示されている。
【0095】
第1のコマンドスタック110のある時点において、マイクロコントローラ86は、データストリーム中の有効なSOFパケットを受信する内部ハードウェアレジスタに対応するSOF割り込み信号116の形態の物理的な割り込み刺激を受信する。これは、この例において、命令118(この例では任意に3サイクルの命令として示してある)中のある時点において発生する。命令118の完了後、マイクロコントローラ86は命令をスタックに格納し、割り込みサービスルーチン(ISR)120を実行する。ISR 120は一般に一連の命令であるが、ここでは簡単のために1つの命令として示してある。ISR 120は次の利用可能時間において割り込み信号116に応答するほか、ソフトウェア割り込み出力信号122(図3の参照タイミング信号92に相当する)を生成するようにプログラムされている。物理的割り込み信号116の受信とソフトウェア割り込み出力信号122との間には時間遅延tが存在する。
【0096】
時間遅延tは可変であり、割り込みサイクルの長さと、物理的割り込み信号116が受信される命令サイクル内の位置との両方に依存する。このことは、第2の例示的コマンドスタック112への参照によって明示される。この例において、マイクロコントローラは命令128(この図では単一サイクル命令として示されている)中のある時点において物理的なSOF割り込み信号126を受信する。命令128の完了後、マイクロコントローラ86はISR 130を実行する。ISR 130は一般に一連の命令であるが、ここでは簡単のために1つの命令として示してある。ISR 130は割り込み信号126に応答し、ソフトウェア割り込み出力信号132を生成する。物理的割り込み信号126の受信とソフトウェア割り込み出力信号132の出力との間には時間遅延tが存在する。
【0097】
したがって、SOFパケットの正確な受信時間を決定するにあたっては、これらの時間遅延tと遅延tの大きさに対応する、不確かさが存在する。この不確かさは、現在実行されている命令の継続時間と、物理的なSOF割り込み信号がハードウェア割り込み発生器によって受信される命令内の位置とに依存する。これは典型的には、ある所与のマイクロコントローラにおける最長の命令の継続期間によって与えられる。したがって、最良のケースの(すなわち最小の)不確かさは、長さがΔtの単一サイクル命令サイクルによって与えられる。
【0098】
図5は、図4の例示的コマンド実行スタック110と112に関する概略的なタイミング図150である。図5は、SOFパケットの受信152、および図4のコマンドスタック110と112にそれぞれ対応するタイミング図154と156を含む。SOFパケットの受信152により、命令160の間にハードウェア割り込み信号158が発生する。命令160の完了時、割り込みサービスルーチン162は、反復的同期化参照信号として用いられるローカル参照信号164を生成する。同様に、ハードウェア割り込み信号158は命令166(図4のコマンドスタック112における命令128に対応する)中に発生する。次に、割り込みサービスルーチン168はローカル参照信号170を生成する。
【0099】
一部のマイクロコントローラは、単一命令サイクルから複雑な演算に対する10以上の命令サイクルまでの命令サイクルタイムを有する。したがって、SOF受信時間のいかなる所与の決定の不確かさにもかなりのばらつきが存在する。ソフトウェアの構造がわかっている場合、限界値は最長の命令実行時間およびコードの構造によって決定できる。SOF速度とマイクロコントローラのコード実行における非同期の性質を考えると、SOF受信時間の正確および不正確な決定のランダム分布が存在する。
【0100】
しかし、SOF受信時間のどの所与の決定の精度も決定することができる。なぜなら、SOFの受信中にどの命令が実行されていたかを決定でき、したがって命令の長さおよび得られる測定値の不確かさを決定できるためである。それにより、きわめて不確実なSOF受信時間の測定値を特定し、廃棄できる。あるいは、冗長な命令に頼る測定への依存を減らすために、その受信中に実行されていた命令の長さに基づいて、SOF受信時間の決定に対して何らかの形の統計的重み付けを適用することも可能である。統計的重み付けは、同期されるUSBデバイスの位相同期ループで合成されたクロックを制御するにあたって各測定値をどのように用いるかを決定でき、最も信頼できるSOF受信時間の決定のみが被同期クロック回路90の制御に用いられる。さらに、被同期クロックの精度および安定性を向上させるために、フィルタリングの使用、平均化、またはその他の統計的手段を用いることができる。
【0101】
SOF受信時間の各測定値に関連づけられた固定遅延172が存在する。これは、割り込みサービスルーチン162または168をそれぞれ実行するのに要する時間である。これは各クラスのマイクロコントローラに対して一定である(同等な一定のクロック周波数およびバッチ間不一致ゼロを前提とする)。
【0102】
このように、本発明は、例えば追加的な並列の容量性負荷をバスに追加しうる特別なハードウェアコンポーネントを使用することなく、周波数と位相の両方において、USBデバイスのローカルクロックをUSBデータストリームに含まれる反復的参照搬送波信号に同期する手段を提供する。さらに、本発明は、バスからのデータをデコードしてソフトウェア割り込みに基づく同期化参照信号を生成する手段を提供する。そのような、割り込みに基づく参照信号は、従来技術のハードウェアベースの同期化の開示におけるきわめて正確な時間分解能を必要としない。
【0103】
さらに、本発明は、いかなる所与の割り込みベースの同期化参照信号についてもそのタイミング精度の不確かさを推定する方法を提供するうえ、上記被同期クロックの精度および安定性を向上させるためにフィルタリングまたは統計的手段を使用する。
【0104】
本発明の第2の実施形態によるUSBデバイスは、USB 202とともに、図6の参照符号200において概略的に示されている。USBデバイス200はバスコネクタ204を備え、USBデバイス200はそれによってUSB 202に連結されている。USBデバイス200は、バスインタフェース/マイクロコントローラ206、USBデバイス機能回路(デジタル制御されるトランスデューサなど)208、バスサンプリング回路210(図1のバスサンプリング回路20に相当する)、および同期化回路212を有する。
【0105】
バスインタフェース回路206はバスコネクタ204に存在するUSBデータストリームを監視し、USBトラフィック216の複製214を同期化回路212に送出する。同期化回路212は同期ローカルクロック信号218を生成し、それはUSBデバイス機能回路208に送出される。USBデバイス機能回路208は同期ローカルクロック信号218を用いて、バスインタフェース/マイクロコントローラ206からのコマンド220を同期して実行する。同期化回路212はUSBトラフィック216からの周期的クロック搬送波信号をデコードする。
【0106】
図7は、図6のUSBデバイス200の同期化回路212の概略図である。同期化回路212はUSBデータトラフィックの複製214を受信する入力ポート232、同期クロック出力ポート234、整合フィルタ236、マルチタップ自走発信器クロック238、およびクロックセレクタ240を有する。
【0107】
整合フィルタ236は、入力ポート232からUSBデータストリーム242を受信する。整合フィルタ236は、USBデータストリーム242からの周期的搬送波信号(本実施形態ではSOFパケットトークンの形態)をデコードし、クロック同期化信号244を生成する。マルチタップ自走発信器238(マルチタップの位相遅延発生器に結合される自走発信器の形態でありうる)は、複数の位相遅延したクロック信号246を生成する。クロックセレクタ240はクロック同期化信号244を用いて出力クロック信号248を選択する。出力クロック信号248は、複数の位相遅延したクロック信号246のうちの選択された1つである。複数の位相遅延したクロック信号を生成するために安価な自走発信器を利用する多くの方法が存在することは、当業者によって十分に理解されるだろう。
【0108】
このように、同期化回路230は粗い同期を維持するために、安価な自走発信器およびクロックセレクタ回路を用いてデジタル制御ループ内の出力クロック信号位相を制御する。そのようなシステムは、一般に従来の(精密な位相および周波数制御を提供する)アナログ位相同期ループ・アーキテクチャに比べて安定性および精度が劣るが、この方法は比較的安価な代替同期化システムを与える。なぜならこの方法は、複数の自走クロックのうち、いかなるときにも使用されるべき最も適切なものを決定する、一連の工程(フィールドプログラマブルゲートアレイ内で動作するソフトウェアまたはファームウェアとして具現化される)を用いるからである。
【0109】
同期化回路230の動作をより十分に説明するため、図8に、図7の同期化回路212内のクロックおよび制御信号の概略図260を示す。
【0110】
デコードされたフレームの開始信号262(図7の244に相当する)は、同期されるローカルクロックが同期の基準とするべき参照信号を提供する。ローカル自走発信器の第1のクロック位相266および第2のクロック位相268という2つの位相(図7の複数のクロック位相246のうちの2つに相当する)とともに、完璧に同期された理想的なクロック264を参考のために示してある。出力クロック270(図7の出力クロック信号248に相当する)は、同期されるUSBデバイスの制御に用いられる同期されたクロック信号(図6の218に相当する)である。
【0111】
フレームの開始のデコードされたパルス272は同期化ウインドウの開始を成し、デコードされたパルス274は終了を成す。理想的なクロック264は、クロックパルス276の立ち上がりエッジがデコードされたパルス272と位置合わせされ、クロックパルス278の立ち上がりエッジがデコードされたパルス274と位置合わせされるように、周波数および位相に関して同期される。(クロックパルスの立ち上がりエッジは実際には波形上のいずれの反復可能な点であってもよいが、この説明では簡単のために立ち上がりエッジを選択している。)
自走発信器は精密に制御される周波数および位相では動作せず、その範囲全体にわたって周波数が変化しうる。
【0112】
第1のクロック位相266は図7の多位相クロック237の1つの位相を表し、デコードされたパルス272と同期される(280)。第1のクロック位相266と理想的なクロック264との比較から、自走クロックが理想的なクロック周波数より遅く進むことが容易にわかるだろう。これは位相遅れ282によって示されている。位相遅れ282は、第1のクロック位相266が数クロックサイクル後に理想的なクロック264に対して示すものである(この図では明確化のために誇張している)。第1のクロック位相266はデコードされたパルス272に同期されるが、第1のクロック位相266は次のデコードされたパルス274を受信するときには、クロックパルス284によって示されるように位相がずれている。
【0113】
第2のクロック位相268はデコードされたSOF 272と同期していない(286)(または同相ではない)が、図7のローカル自走発信器クロック238の同期されない周波数により、第2のクロック位相268はデコードされたSOF 274と同相(288)である。
【0114】
図7のクロックセレクタ240は、複数の位相遅延したクロック信号246の1つを図7の出力ポート234にルーティングするデジタルスイッチとして作用する。図7のクロックセレクタ240は、デコードされたSOFパルスの受信と同期してスイッチングを行い、複数の位相遅延したクロック信号246のうち最も適切な(すなわち、最も正確に位置合わせされた)ものを選択する。
【0115】
図8の例において、図7のクロックセレクタ回路240はSOFパルス272において第1のクロック位相266を選択しており、次のデコードされたSOFパルス274の受信まで、第1のクロック位相266は出力クロック270として送信され続ける。第2のクロック位相268は、図7のクロックセレクタ回路240がデコードされたSOFパルス274を受信する瞬間において、複数の位相遅延したクロック信号246のなかで最も正確に同相している(すなわち、クロックパルス288である)。したがって、第2のクロック位相268は、次のデコードされたSOFパルスの受信まで、出力クロック270として送信され続ける。デコードされたSOF 274の受信前における出力クロック270の最後のクロックサイクル294は、それ以外の出力クロックサイクルとは異なる期間になっている。デコードされたSOFパケットの受信の速度および自走発信器クロックに対する合理的に選択された周波数公差を考えると、最後のクロックサイクル294はクロックサイクルのうちのわずかな部分が違うだけである。このように、自走発信器クロックは新しいデコードされたSOFが受信されるごとにデジタル方式で位相調整される。
【0116】
自走発信器の典型的な周波数公差は50ppmから100ppmのオーダである。典型的な10MHzのデータ収集発信器に対する50ppm公差は、毎秒500サイクルという、起こりうるなかで最悪級の周波数誤差に対応する。USBハイスピード・システムでは、SOFパケットは8kHzの速度で(または125μsの周期で)受信される。このことは、各125μsのSOF周期において最大で500サイクル、または1サイクルの1/16、のクロック誤差が生じることを意味している。10MHzで1サイクルの1/16は、6.25nsという最悪級の位相誤差に対応する。連続するSOF周期におけるこの大きさの累積位相誤差は、データ収集用途において許容できない。しかし、本発明の第2の実施形態によれば、各SOF周期におけるこの大きさの位相誤差に対するデジタル補正は、許容可能なデータ収集クロックをもたらす。
【0117】
このように、USBからの反復的な入力クロック搬送波信号と同期される出力クロック周波数をある許容可能な境界内に維持するために、単純なデジタル式の位相のみの制御ループが安価な自走発信器クロックとともに使用される。さらに、それぞれ同様の回路とともに配置される複数のUSBデバイスは、同期されたUSBを形成する。
【0118】
本発明の範囲内での変更は当業者によって容易に達成されうる。したがって、本発明は上記において例として記述された特定の実施形態に限定されないこと、および本明細書中に記載されるさまざまな実施形態の組み合わせが当業者には容易にわかることは理解されねばならない。
【0119】
本発明に関する上記の説明では、明確な文言もしくは必要な暗示ゆえに文脈によって必要になる場合を除き、「ホストコントローラ」の語は標準的なUSBホストコントローラ、USB “On the Go”のホストコントローラ、ワイヤレスUSBホストコントローラ、またはその他の形態のUSBホストコントローラを表すために用いられる。
【0120】
本発明に関する上記の説明では、明確な文言もしくは必要な暗示ゆえに文脈によって必要になる場合を除き、「備える(comprise)」の語、または「備える(comprises)」もしくは「備えている(comprising)」などの変形は、包含的な意味、すなわち、明示された特徴の存在を規定するが、本発明のさまざまな実施形態におけるさらなる特徴の存在もしくは追加を排除しないために用いられる。
【0121】
さらに、本明細書における従来技術への言及は、そのような従来技術が一般的な基本知識の一部を形成する、もしくは形成したことを暗示することを意図したものではない。

【特許請求の範囲】
【請求項1】
USBマイクロコントローラ、USBトラフィックを監視する回路、および分散クロック周波数および位相に関する情報を含む周期的データ構造をUSBデータストリームからデコードし、デコードされた搬送波信号を出力する回路、を有するUSBデバイスと、
前記デコードされた搬送波信号を受信し、ある所定のデータパケットの受信時にソフトウェア割り込みを発生させ、さらに前記ソフトウェア割り込みを前記USBマイクロコントローラに送出する回路と、
を備える同期装置であって、
前記USBマイクロコントローラは、同期化参照信号として使用されるように適合された出力信号を生成することによって前記ソフトウェア割り込みに応答するように構成されている、
同期装置。
【請求項2】
前記USBマイクロコントローラは、前記USBデータストリームを監視する前記回路を備える、
請求項1に記載の装置。
【請求項3】
前記デコードされた搬送波信号を受信する前記回路は、前記USBマイクロコントローラ内に設けられる、
請求項1に記載の装置。
【請求項4】
前記デコードされた搬送波信号を受信する前記回路は、前記USBマイクロコントローラの外部、または前記USBデバイスの外部にある、
請求項1に記載の装置。
【請求項5】
前記周期的データ構造をデコードする前記回路と、前記デコードされた搬送波信号を受信してソフトウェア割り込みを発生させる前記回路と、を備えるハイブリッドのUSBインタフェースかつマイクロコントローラを備える、
請求項1に記載の装置。
【請求項6】
前記USBデータストリームからの前記周期的データ構造のデコーディングに応答してローカル参照信号を生成し、前記ローカル参照信号を前記USBマイクロコントローラに送出し、前記USBマイクロコントローラはそれに応答して前記ソフトウェア割り込みを発生させる、個別の復号化ハードウェアを備える、
請求項1に記載の装置。
【請求項7】
請求項1に記載の同期装置を使用する工程を含む、
複数のUSBデバイスを同期する方法。
【請求項8】
複数の請求項1に記載の同期装置を備える、
同期されたUSB。
【請求項9】
デコードされた搬送波信号を監視する工程と、
前記デコードされた搬送波信号内のある所定のデータパケットに基づいてソフトウェア割り込みを促す工程と、
割り込み出力信号を生成する割り込みサービスルーチンを前記ソフトウェア割り込みに応答して実行する工程と、
前記ソフトウェア割り込みが受信されたときに実行中であったUSBマイクロコントローラ命令を決定する工程と、
前記USBマイクロコントローラ命令によって要求される命令サイクル数を決定する工程と、
ソフトウェア割り込みの受信時間の不確かさに基づいてタイミング参照信号にタイミング有効性重み付け係数を割り当てる工程と、を含む、
複数のデコードされた同期化参照信号に対して有効性重み付けを割り当てる方法。
【請求項10】
より高い精度および安定性のために反復的搬送波信号パルスをフィルタリング、平均化、または処理する1つ以上の統計的方法を使用する工程を含む、
請求項9に記載の方法。
【請求項11】
USBデータストリームを監視する工程と、
前記USBデータストリームから周期的データ構造をデコードする工程と、
前記周期的データ構造に基づいてソフトウェア割り込みを促す工程と、
前記ソフトウェア割り込みに応答して割り込みサービスルーチンを実行する工程と、
前記割り込みサービスルーチンによって割り込み出力信号を生成する工程と、
位相同期ループ・アーキテクチャを有する被同期クロック回路に前記割り込み出力信号を参照タイミング信号として送出する工程と、
前記参照タイミング信号に基づき、ローカルクロックを位相と周波数に関して前記被同期クロック回路に固定する工程と、を含む、
USBデバイスのローカルクロックを同期する方法。
【請求項12】
複数の請求項11に記載のUSBデバイスのそれぞれの各ローカルクロックを同期する工程を含む、
同期されたUSBを生成する方法。
【請求項13】
USBデータストリームを監視する工程と、
前記USBデータストリームから周期的データ構造をデコードする工程と、
それぞれがそれぞれの位相を有する複数の出力を備える自走発信器クロックを使用する工程と、
前記デコードされた周期的データ構造の受信時に、前記デコードされた周期的データ構造と最も同相に近い出力を選択する工程と、
不正確な自走クロックもしくは同期していない自走クロックの周波数に対して補償を行うように、前記選択された位相に基づいて自走クロックを位相調整する工程と、を含む、
USBデバイスのローカルクロックを同期する方法。
【請求項14】
前記デコードされた周期的データ構造と最も同相に近い位相を前記出力の位相から繰り返し選択する工程と、
前記選択された位相に基づいて前記自走クロックを位相調整する工程と、を含む、
請求項13に記載の方法。
【請求項15】
複数の位相遅延した出力を有する自走発信器を使用する工程を含む、
請求項13に記載の方法。
【請求項16】
複数の位相を生成するためにマルチタップの遅延発生器を有する自走発信器を使用する工程を含む、
請求項13に記載の方法。
【請求項17】
請求項13に記載の方法に従って同期された複数のUSBデバイスを備える同期されたUSB。
【請求項18】
プロセッサを有するデバイスをデータバスに接続する工程と、
前記デバイスに局所的なデータ信号に関して前記プロセッサで前記データバスをモニタする工程であって、前記データは周期的データ構造を含む、工程と、
ソフトウェア割り込みを発生させることによって前記プロセッサが前記周期的データ構造の検出に応答する工程と、
割り込みサービスルーチンを実行することによって前記プロセッサが前記ソフトウェア割り込みに応答する工程と、
前記割り込みサービスルーチンがタイミング参照信号を生成する工程と、を含む、
タイミング参照信号を分配する方法。
【請求項19】
前記周期的データ構造は複数の周期的データ構造の1つであって、前記方法は、
それぞれのソフトウェア割り込みを発生させることによって前記プロセッサが前記周期的データ構造のそれぞれの検出に対して応答する工程と、
それぞれの割り込みサービスルーチンを実行することによって前記プロセッサが前記ソフトウェア割り込みに応答する工程と、
前記割り込みサービスルーチンがそれぞれのタイミング参照信号を生成する工程と、を含む、
請求項18に記載の方法。
【請求項20】
前記それぞれのソフトウェア割り込みの受信中に前記プロセッサによって処理されているソフトウェア命令を特定する工程と、
前記ソフトウェア命令を実行するために前記プロセッサによって要求される命令サイクル数を決定する工程と、
前記それぞれのタイミング参照信号のそれぞれに対して重み付け係数を割り当てる工程であって、前記重み付け係数は、前記それぞれのソフトウェア割り込みの発生と前記それぞれのタイミング参照信号の間の期間の不確かさの尺度である、工程と、をさらに含む、
請求項19に記載の方法。
【請求項21】
前記タイミング参照信号のある所与の1つによる寄与がそれに対応する重み付け係数によって重み付けされるように、前記複数の重み付け係数を前記複数のタイミング参照信号と組み合わせることによって複数の重み付けされたタイミング参照信号を生成する工程、をさらに含む、
請求項20に記載の方法。
【請求項22】
周波数と位相の両方に関して前記デバイスのローカルクロックを前記複数の重み付けされたタイミング参照信号に固定する工程、をさらに含む、
請求項21に記載の方法。
【請求項23】
前記重み付けされたタイミング参照信号を統計的に処理する工程と、それによって前記ローカルクロックの周波数と位相をより精密に固定する工程と、をさらに含む、
請求項22に記載の方法。
【請求項24】
前記データバスがUSBであり、前記デバイスがUSBデバイスである、
請求項23に記載の方法。
【請求項25】
前記プロセッサは組み込みのUSB物理インタフェースを有するマイクロコントローラである、
請求項24に記載の方法。
【請求項26】
前記プロセッサは、組み込みのUSB物理インタフェースを備えるフィールドプログラマブルゲートアレイもしくはその他の形態のプログラマブルロジックである、
請求項25に記載の方法。
【請求項27】
前記周期的データ構造は、USB規格に規定されるUSBパケット信号構造、前記USBデバイスに送られるコマンドシーケンス、前記USBデバイスに送られるデータシーケンス、OUTトークン、INトークン、ACKトークン、NAKトークン、STALLトークン、PREトークン、SOFトークン、SETUPトークン、DATA0トークン、DATA1トークン、またはUSBデータパケット中の所定のビットパターンシーケンスのいずれかを含む、
請求項26に記載の方法。
【請求項28】
周期的データ構造に関してプロセッサでデータバスをモニタする工程と、
ソフトウェア割り込みを発生させることによって前記プロセッサが前記周期的データ構造に応答する工程と、
割り込みサービスルーチンを実行することによって前記プロセッサが前記ソフトウェア割り込みに応答する工程と、
前記割り込みサービスルーチンがタイミング参照信号を生成する工程と、
前記ソフトウェア割り込みの受信中に前記プロセッサによって処理されているソフトウェア命令を決定する工程と、
前記ソフトウェア命令を実行するために前記プロセッサによって要求される命令サイクル数を決定する工程であって、前記命令サイクル数は前記プロセッサが前記ソフトウェア割り込みを発行した時に対する決定の不確かさの尺度を表す、工程と、
前記プロセッサが前記ソフトウェア割り込みを発行した前記の時の不確かさに従って、前記複数のクロック搬送波信号を重み付けする工程と、を含む、
複数のクロック搬送波信号を重み付けする方法。
【請求項29】
前記周期的データ構造は複数の周期的データ構造の1つであって、前記方法は、
それぞれのソフトウェア割り込みを発生させることによって前記プロセッサが前記周期的データ構造のそれぞれに応答する工程と、
それぞれの割り込みサービスルーチンを実行することによって前記プロセッサが前記ソフトウェア割り込みに応答する工程と、
前記割り込みサービスルーチンがそれぞれのタイミング参照信号を生成する工程と、
前記タイミング参照信号のそれぞれに重み付け係数を割り当てる工程であって、前記重み付け係数は前記ソフトウェア割り込みの発生と前記それぞれのタイミング参照信号の間の期間の不確かさの尺度である、工程と、
前記タイミング参照信号のある所与の1つによる寄与がそれに対応する重み付け係数によって重み付けされるように、前記複数の重み付け係数を前記複数のタイミング参照信号と組み合わせることによって複数の重み付けされたタイミング参照信号を生成する工程と、を含む、
請求項28に記載の方法。
【請求項30】
前記ソフトウェア割り込みの発生と前記タイミング参照信号の間の期間の不確かさを計算機器によって決定する工程を含む、
請求項29に記載の方法。
【請求項31】
前記ソフトウェア割り込みの発生と前記タイミング参照信号の間の期間の不確かさをルックアップテーブルによって決定する工程を含む、
請求項29に記載の方法。
【請求項32】
割り込みサービスルーチンをサポートするプロセッサまたはマイクロコントローラと、
前記プロセッサに対して局所的なデータトラフィックを監視する回路と、
前記データトラフィックから周期的データ構造をデコードする回路と、
前記周期的データ構造のデコーディングに対応するアクノレッジ信号を生成する回路と、
前記アクノレッジ信号の受信時に割り込みサービスルーチンを発行するように構成された前記プロセッサのソフトウェア割り込みを発生させる回路と、
割り込みサービスルーチンからのコマンドに応答してタイミング参照信号を生成する回路と、を備える、
複数のタイミング参照信号を重み付けする装置。
【請求項33】
前記ソフトウェア割り込みが発生したときにどの命令が実行されていたかを報告する出力と、
前記ソフトウェア割り込みの発生と前記タイミング参照信号の間の期間の不確かさを決定する機構と、
前記複数のタイミング参照信号のそれぞれに対して重み付け係数を計算する機構と、をさらに備える、
請求項32に記載の装置。
【請求項34】
前記ソフトウェア割り込みの発生と前記タイミング参照信号の間の期間の不確かさを決定する前記機構が計算機器である、
請求項33に記載の装置。
【請求項35】
前記ソフトウェア割り込みの発生と前記タイミング参照信号の間の期間の不確かさを決定する前記機構がルックアップテーブルである、
請求項33に記載の装置。
【請求項36】
前記プロセッサまたはマイクロコントローラは組み込みのUSB物理インタフェースを有する、
請求項33に記載の装置。
【請求項37】
前記プロセッサまたはマイクロコントローラは、フィールドプログラマブルゲートアレイもしくはその他の形態のプログラマブルロジックである、
請求項33に記載の装置。
【請求項38】
前記フィールドプログラマブルゲートアレイもしくはその他の形態のプログラマブルロジックは組み込みのUSB物理インタフェースを有する、
請求項37に記載の装置。
【請求項39】
USBと、
ソフトウェア割り込みと割り込みサービスルーチンをサポートするアーキテクチャを有するプロセッサまたはマイクロコントローラと、
前記USBデバイスが前記USBとデータ通信を行っているときに前記USBに対して局所的なUSBトラフィックを監視する回路と、
前記USB上のトラフィックから周期的データ構造をデコードする回路と、
前記周期的データ構造のデコーディングに対応するアクノレッジ信号を生成する回路と、
前記アクノレッジ信号の受信時に前記プロセッサのソフトウェア割り込みを生成する回路であって、前記ソフトウェア割り込みが、局所的な同期化参照信号として使用されるように適合された出力信号を生成するように構成された割り込みサービスルーチンを開始する、回路と、
前記割り込みサービスルーチンからのコマンドに応答してタイミング参照信号を生成する回路と、を備える、
USBデバイスを同期する装置。
【請求項40】
ローカルクロックと、
前記ローカルクロックの周波数と位相を制御する回路であって、前記タイミング参照信号が前記ローカルクロックの周波数および/または位相の制御に使用できる、回路と、をさらに備える、
請求項39に記載の装置。
【請求項41】
前記プロセッサまたはマイクロコントローラは、前記USBデバイスに対して局所的なUSBトラフィックを監視する前記回路を備える、
請求項39に記載の装置。
【請求項42】
前記プロセッサまたはマイクロコントローラは、前記USB上のトラフィックから周期的データ構造をデコードする前記回路を備える、
請求項39に記載の装置。
【請求項43】
前記プロセッサまたはマイクロコントローラは、前記周期的データ構造のデコーディングに対応するアクノレッジ信号を生成する前記回路を備える、
請求項39に記載の装置。
【請求項44】
前記プロセッサまたはマイクロコントローラは、前記アクノレッジ信号の受信時に前記プロセッサのソフトウェア割り込みを生成する前記回路を備える、
請求項39に記載の装置。
【請求項45】
前記プロセッサまたはマイクロコントローラは、前記割り込みサービスルーチンからのコマンドに応答してタイミング参照信号を生成する前記回路を備える、
請求項39に記載の装置。
【請求項46】
前記プロセッサまたはマイクロコントローラは前記ローカルクロックを有する、
請求項40に記載の装置。
【請求項47】
前記USBデバイスに対して局所的なUSBトラフィックを監視する前記回路は、前記プロセッサの内部に含まれない、
請求項39に記載の装置。
【請求項48】
前記USB上のトラフィックから周期的データ構造をデコードする前記回路は、前記プロセッサまたはマイクロコントローラの内部に含まれない、
請求項39に記載の装置。
【請求項49】
前記周期的データ構造のデコーディングに対応するアクノレッジ信号を生成する前記回路は、前記プロセッサの内部に含まれない、
請求項39に記載の装置。
【請求項50】
USBデータストリームを監視する工程と、
前記USBデータストリーム内の周期的信号構造パケットをデコードする工程と、
それぞれがそれぞれの位相を有する複数の出力を備える自走発信器クロックを使用する工程と、
前記デコードされた周期的信号構造パケットの受信時に、前記デコードされた周期的信号構造パケットと最も同相に近い位相を前記出力の位相から選択する工程と、
不正確な自走クロックもしくは同期していない自走クロックの周波数に対して補償を行うように、前記選択された位相に基づいて自走クロックを位相調整する工程と、を含む、
USBデバイスのローカルクロックを同期する方法。
【請求項51】
前記デコードされた周期的信号構造と最も同相に近い位相を前記出力の位相から繰り返し選択する工程と、
前記選択された位相に基づいて前記自走クロックを位相調整する工程と、を含む、
請求項50に記載の方法。
【請求項52】
前記周期的データ構造パケットは、USB規格に規定されるUSBパケット信号構造、前記USBデバイスに送られるコマンドシーケンス、前記USBデバイスに送られるデータシーケンス、OUTトークン、INトークン、ACKトークン、NAKトークン、STALLトークン、PREトークン、SOFトークン、SETUPトークン、DATA0トークン、DATA1トークン、またはUSBデータパケット中の所定のビットパターンシーケンスのいずれかを含む、
請求項51に記載の方法。
【請求項53】
複数の位相遅延した出力を有する自走発信器を使用する工程を含む、
請求項50に記載の方法。
【請求項54】
マルチタップ遅延を有する自走発信器を使用する工程を含む、
請求項50に記載の方法。
【請求項55】
複数の選択可能な移相された出力を有するデバイスの自走ローカルクロックを同期する方法であって、
(i)前記デバイスが周期的参照信号を受信する工程と、
(ii)前記周期的参照信号のぞれぞれの受信時に、前記複数の選択可能な移相された出力のうちどれが前記周期的参照信号と最も同相に近いのかを前記デバイスが検出する工程と、
(iii)前記移相された出力のうち前記最も同相に近いものを前記ローカルクロック信号として用いる工程と、を含む、
方法。
【請求項56】
工程(i)から(iii)を繰り返すことによって、前記ローカルクロック信号を同相になるように周期的に調整する工程を含む、
請求項55に記載の方法。
【請求項57】
複数のクロックサイクルにわたって評価したときに、前記周期的参照信号と最も同相に近い移相された出力を選択する工程を含む、
請求項55に記載の方法。
【請求項58】
前記周期的参照信号の連続的サイクルの間の期間中に遭遇する前記自走発信器出力の累積位相誤差を決定する工程と、
出力クロック信号の絶対的な位相誤差を継続的に最小化するために、前記周期的参照信号の連続的サイクルの間の期間内において、前記複数の移相された出力のうち二番目に適切なものを周期的に選択する工程と、をさらに含む、
請求項55に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公表番号】特表2010−527081(P2010−527081A)
【公表日】平成22年8月5日(2010.8.5)
【国際特許分類】
【出願番号】特願2010−507760(P2010−507760)
【出願日】平成20年5月12日(2008.5.12)
【国際出願番号】PCT/AU2008/000663
【国際公開番号】WO2008/138053
【国際公開日】平成20年11月20日(2008.11.20)
【出願人】(508245611)クロノロジック ピーティーワイ リミテッド (3)
【Fターム(参考)】