JP5335772B2 - Usbベースの同期およびタイミングシステム - Google Patents

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

Info

Publication number
JP5335772B2
JP5335772B2 JP2010507760A JP2010507760A JP5335772B2 JP 5335772 B2 JP5335772 B2 JP 5335772B2 JP 2010507760 A JP2010507760 A JP 2010507760A JP 2010507760 A JP2010507760 A JP 2010507760A JP 5335772 B2 JP5335772 B2 JP 5335772B2
Authority
JP
Japan
Prior art keywords
usb
clock
circuit
reference signal
microcontroller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010507760A
Other languages
English (en)
Other versions
JP2010527081A (ja
Inventor
フォスター ピーター
Original Assignee
クロノロジック ピーティーワイ リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by クロノロジック ピーティーワイ リミテッド filed Critical クロノロジック ピーティーワイ リミテッド
Publication of JP2010527081A publication Critical patent/JP2010527081A/ja
Application granted granted Critical
Publication of JP5335772B2 publication Critical patent/JP5335772B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Description

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

Claims (17)

  1. USBマイクロコントローラを有するUSBデバイスと
    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に記載の装置
  8. ローカルクロックと、
    前記ローカルクロックの周波数と位相を制御する回路であって、前記タイミング参照信号が前記ローカルクロックの周波数および/または位相の制御に使用できる、回路と、をさらに備える、
    請求項に記載の装置。
  9. 前記USBマイクロコントローラは前記ローカルクロックを有する、
    請求項に記載の装置。
  10. 前記USBマイクロコントローラは組み込みのUSB物理インタフェースを有する、
    請求項に記載の装置。
  11. 複数の請求項1に記載の同期装置を備える、
    同期されたUSBシステム
  12. 周期的データ構造に関してUSBデータバスをモニタする工程と、
    ソフトウェア割り込みを発生させることによって前記周期的データ構造に応答する工程と、
    割り込みサービスルーチンを実行することによって、USBデバイスのUSBマイクロコントローラが前記ソフトウェア割り込みに応答する工程と、
    前記割り込みサービスルーチンが、反復的同期参照信号の一部を形成するタイミング参照信号を生成する工程と、
    前記ソフトウェア割り込みの受信中に前記USBマイクロコントローラによって処理されているソフトウェア命令を決定する工程と、
    前記ソフトウェア命令を実行するために前記USBマイクロコントローラによって要求される命令サイクル数を決定する工程であって、前記命令サイクル数は、前記ソフトウェア割り込みの発生と前記それぞれのタイミング参照信号の間の期間の不確かさの尺度を表す、工程と、
    記不確かさの尺度に従って、前記タイミング参照信号を重み付けする工程と、を含む、
    方法。
  13. 重み付けされたタイミング参照信号を発生するために請求項12の各工程を複数回、反復することを含む、
    請求項12に記載の方法。
  14. より高い精度および安定性のために前記複数の重み付けされたタイミング参照信号をフィルタリング、平均化、または処理する1つ以上の統計的方法を使用する工程を含む、
    請求項13に記載の方法。
  15. 相同期ループ・アーキテクチャを有する被同期クロック回路に前記タイミング参照信号を送出する工程と、
    前記タイミング参照信号に基づき、ローカルクロックを位相と周波数に関して前記被同期クロック回路に固定する工程と、をさらに含む、
    請求項12に記載の方法。
  16. 共通なUSBホストに接続された複数のUSBデバイスのそれぞれについて、請求項12の各工程を実行することを含む、
    請求項12に記載の方法。
  17. 前記タイミング参照信号は、もし不確かさの尺度がより低いならより高い重みを与えられ、もし不確かさの尺度がより高いならより低い重みを与えられる、
    請求項12に記載の方法。
JP2010507760A 2007-05-15 2008-05-12 Usbベースの同期およびタイミングシステム Expired - Fee Related JP5335772B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US93814807P 2007-05-15 2007-05-15
US60/938,148 2007-05-15
PCT/AU2008/000663 WO2008138053A1 (en) 2007-05-15 2008-05-12 Usb based synchronization and timing system

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2013158397A Division JP2013242912A (ja) 2007-05-15 2013-07-31 Usbベースの同期およびタイミングシステム

Publications (2)

Publication Number Publication Date
JP2010527081A JP2010527081A (ja) 2010-08-05
JP5335772B2 true JP5335772B2 (ja) 2013-11-06

Family

ID=40001590

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2010507760A Expired - Fee Related JP5335772B2 (ja) 2007-05-15 2008-05-12 Usbベースの同期およびタイミングシステム
JP2013158397A Pending JP2013242912A (ja) 2007-05-15 2013-07-31 Usbベースの同期およびタイミングシステム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2013158397A Pending JP2013242912A (ja) 2007-05-15 2013-07-31 Usbベースの同期およびタイミングシステム

Country Status (8)

Country Link
US (2) US8412975B2 (ja)
EP (1) EP2147361B1 (ja)
JP (2) JP5335772B2 (ja)
CN (2) CN101646986B (ja)
AU (1) AU2008251024B2 (ja)
CA (1) CA2677655A1 (ja)
HK (1) HK1141346A1 (ja)
WO (1) WO2008138053A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090167943A1 (en) * 2007-12-27 2009-07-02 Vimicro Corporation Apparatus and Method for Synchronizing Video and Audio Data
US8352652B2 (en) * 2009-01-07 2013-01-08 Sony Computer Entertainment Inc. Using analog signals to communicate through an A/D converter and USB interface
US8327048B2 (en) * 2009-01-07 2012-12-04 Sony Computer Entertainment Inc. Using USB suspend/resume to communicate information through a USB device
US8745431B2 (en) 2009-05-20 2014-06-03 Chronologic Pty. Ltd. Compound universal serial bus architecture providing precision synchronisation to an external timebase
US9255859B2 (en) * 2010-11-15 2016-02-09 Advanced Mechanical Technology, Inc. Force platform system
TWI512478B (zh) * 2011-01-18 2015-12-11 Asmedia Technology Inc 匯流排主控器與相關方法
KR102020358B1 (ko) * 2013-03-14 2019-11-05 삼성전자 주식회사 단말 및 그 단말에서 애플리케이션 동기화 방법
US9830298B2 (en) * 2013-05-15 2017-11-28 Qualcomm Incorporated Media time based USB frame counter synchronization for Wi-Fi serial bus
US8838846B1 (en) 2013-06-27 2014-09-16 Crystal Instruments Corporation Autonomous, multi-channel USB data acquisition transducers
CN106301644B (zh) * 2015-05-18 2018-03-30 深圳市中兴微电子技术有限公司 一种语音同步的方法和装置
CN106292257A (zh) * 2016-08-17 2017-01-04 合肥申目电子科技有限公司 一种可与***时间同步的usb插卡型时间显示器
US10437763B2 (en) * 2017-04-07 2019-10-08 Nxp B.V. Method and device for universal serial bus (USB) communication
US20190025872A1 (en) * 2017-07-18 2019-01-24 Qualcomm Incorporated Usb device with clock domain correlation
CN108717398B (zh) * 2018-04-10 2021-05-25 中国舰船研究设计中心 一种适用于usb接口的脉冲信号同步***及方法
TWI772574B (zh) * 2018-12-07 2022-08-01 新唐科技股份有限公司 通用序列匯流排裝置及其操作方法
KR20210121436A (ko) 2020-03-30 2021-10-08 삼성전자주식회사 Usb 모듈을 위한 오디오 서브 시스템의 구동 방법 및 이를 수행하는 시스템 온 칩

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63238714A (ja) * 1986-11-26 1988-10-04 Hitachi Ltd クロック供給システム
JPS6471351A (en) * 1987-09-11 1989-03-16 Sumitomo Electric Industries Digital phase locked loop
US5268656A (en) 1992-11-05 1993-12-07 At&T Bell Laboratories Programmable clock skew adjustment circuit
JP2624176B2 (ja) * 1994-05-20 1997-06-25 日本電気株式会社 電子時計及び時刻補正方法
JPH07336342A (ja) * 1994-06-13 1995-12-22 Fujitsu Ltd クロック再生回路
JPH08278896A (ja) * 1995-04-06 1996-10-22 Matsushita Electric Ind Co Ltd 割込み処理装置
US5691660A (en) * 1995-11-28 1997-11-25 International Business Machines Corporation Clock synchronization scheme for fractional multiplication systems
US5943613A (en) * 1996-11-07 1999-08-24 Telefonaktiebolaget Lm Ericsson Method and apparatus for reducing standby current in communications equipment
US5910742A (en) * 1997-06-16 1999-06-08 Cypress Semiconductor Corp. Circuit and method for data recovery
US6021446A (en) * 1997-07-11 2000-02-01 Sun Microsystems, Inc. Network device driver performing initial packet processing within high priority hardware interrupt service routine and then finishing processing within low priority software interrupt service routine
US5974486A (en) * 1997-08-12 1999-10-26 Atmel Corporation Universal serial bus device controller comprising a FIFO associated with a plurality of endpoints and a memory for storing an identifier of a current endpoint
US6279058B1 (en) 1998-07-02 2001-08-21 Advanced Micro Devices, Inc. Master isochronous clock structure having a clock controller coupling to a CPU and two data buses
US6378022B1 (en) * 1999-06-17 2002-04-23 Motorola, Inc. Method and apparatus for processing interruptible, multi-cycle instructions
US6304517B1 (en) * 1999-06-18 2001-10-16 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for real time clock frequency error correction
US6262611B1 (en) * 1999-06-24 2001-07-17 Nec Corporation High-speed data receiving circuit and method
JP3536792B2 (ja) * 2000-02-28 2004-06-14 ヤマハ株式会社 同期制御装置および同期制御方法
US6725067B1 (en) * 2000-03-24 2004-04-20 International Business Machines Corporation Method and system for restarting a reference clock of a mobile station after a sleep period with a zero mean time error
US20020038433A1 (en) * 2000-06-28 2002-03-28 Z-World, Inc. System and method for utilizing programmed multi-speed operation with a microprocessor to reduce power consumption
JP3622685B2 (ja) * 2000-10-19 2005-02-23 セイコーエプソン株式会社 サンプリングクロック生成回路、データ転送制御装置及び電子機器
JP3568118B2 (ja) * 2000-10-19 2004-09-22 松下電器産業株式会社 シリアル通信用データ処理装置
JP2002164873A (ja) * 2000-11-24 2002-06-07 Roland Corp デジタル・オーディオ装置
KR20020057697A (ko) * 2001-01-05 2002-07-12 윤종용 범용 직렬 버스용 클록 복원 회로
JP3619466B2 (ja) * 2001-03-27 2005-02-09 松下電器産業株式会社 半導体装置
US7080274B2 (en) * 2001-08-23 2006-07-18 Xerox Corporation System architecture and method for synchronization of real-time clocks in a document processing system
ATE410736T1 (de) * 2002-07-17 2008-10-15 Fiberbyte Pty Ltd Synchronisierter mehrkanaliger universeller serieller bus
KR100448707B1 (ko) * 2002-08-20 2004-09-13 삼성전자주식회사 클럭 및 데이터 복원 회로 및 방법
US7120813B2 (en) * 2003-01-28 2006-10-10 Robert Antoine Leydier Method and apparatus for clock synthesis using universal serial bus downstream received signals
US6911872B2 (en) * 2003-03-25 2005-06-28 Intel Corporation Circuit and method for generating a clock signal
JP2005012813A (ja) * 2003-06-19 2005-01-13 Rakon Ltd 低電力水晶発振器
JP2005157946A (ja) * 2003-11-28 2005-06-16 Ibm Japan Ltd 同期方法、コンピュータシステム及びプログラム
DE102004009695A1 (de) * 2004-02-27 2005-09-29 Advanced Micro Devices, Inc., Sunnyvale Effizienter Stromsparmodus für WLAN-Kommunikationssysteme
JP2006197564A (ja) * 2004-12-16 2006-07-27 Seiko Epson Corp 信号選択回路およびリアルタイムクロック装置
JP4769452B2 (ja) * 2004-12-20 2011-09-07 古野電気株式会社 測位用信号受信装置
US7443213B2 (en) * 2005-01-21 2008-10-28 Thomson Licensing Staged locking of two phase locked loops
US7421251B2 (en) * 2005-03-31 2008-09-02 Silicon Laboratories Inc. Precise frequency generation for low duty cycle transceivers using a single crystal oscillator
US7668891B2 (en) * 2005-08-09 2010-02-23 Agilent Technologies, Inc. Adjustable time accumulator
CN1955949B (zh) * 2005-10-24 2010-05-26 瑞昱半导体股份有限公司 通用串行总线装置
WO2007092997A1 (en) * 2006-02-15 2007-08-23 Fiberbyte Pty Ltd Distributed synchronization and timing system
TWM323062U (en) * 2007-06-20 2007-12-01 Princeton Technology Corp Correcting apparatus and clock device using the same

Also Published As

Publication number Publication date
US20130185585A1 (en) 2013-07-18
EP2147361B1 (en) 2012-12-12
EP2147361A1 (en) 2010-01-27
US8412975B2 (en) 2013-04-02
JP2013242912A (ja) 2013-12-05
CN101646986B (zh) 2013-10-23
JP2010527081A (ja) 2010-08-05
US20100058097A1 (en) 2010-03-04
WO2008138053A1 (en) 2008-11-20
US8943351B2 (en) 2015-01-27
AU2008251024A1 (en) 2008-11-20
CN103631745A (zh) 2014-03-12
AU2008251024B2 (en) 2013-01-24
CN101646986A (zh) 2010-02-10
EP2147361A4 (en) 2011-04-06
HK1141346A1 (en) 2010-11-05
CA2677655A1 (en) 2008-11-20

Similar Documents

Publication Publication Date Title
JP5335772B2 (ja) Usbベースの同期およびタイミングシステム
US20120005517A1 (en) Synchronisation and timing method and apparatus
EP1984800B1 (en) Distributed synchronization and timing system
AU2003243837B2 (en) Synchronized multichannel universal serial bus
US8745431B2 (en) Compound universal serial bus architecture providing precision synchronisation to an external timebase
AU2008251023B2 (en) Method and system for reducing triggering latency in universal serial bus data acquisition
AU2013200979B2 (en) Usb based synchronization and timing system
AU2012216514A1 (en) Distributed synchronization and timing system
AU2013204446A1 (en) Synchronisation and Timing Method and Apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110303

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120925

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120926

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121225

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130124

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20130124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130124

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130702

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130731

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees