(57)【要約】時刻同期パケットを認識し、データパケットの中の適切な場所にマスタ内部カウンタからのリアルタイム値を代用して入れるデバイスが、イーサネットメディアアクセスコントローラ（ＭＡＣ）と物理インタフェーストランシーバ（ＰＨＹ）の間に配置される。第２のデバイスが、ＭＡＣからＰＨＹに送られるパケットを監視し、パケットが時刻マスタからの時刻同期パケットである場合、それを特定する。適切なパケットが認識されると、第２のデバイスは、マスタの時刻値をキャプチャすることと、ローカルリアルタイムクロックの値をキャプチャすることを同時に行う。これらのキャプチャの結果が、ローカルホストコンピュータに提示され、コンピュータは、ローカルリアルタイムクロックを増分して、そのローカルクロックの速度を上げるか、または速度を下げて、ローカルクロックを時刻マスタクロックに同期させる時間基準クロックを制御する。マスタクロックに対するローカルクロックのオフセットおよびスキューは、ネットワーク待ち時間に、ネットワーク輻輳に起因する変動を足しただけの値まで縮小される。
2005531229.tif 000002
【特許請求の範囲】
【請求項１】
制御システム内の複数のコンピューティングノードを同期させるための方法であって、各コンピューティングノードは、ホストコンピュータとトランシーバとを含み、該方法は、
マスタ時刻データパケットを該マスタ時刻データパケットに含まれるタイムスタンプに関して監視するステップであって、前記データパケットは、マスタタイマモードの場合、前記ホストコンピュータによって前記トランシーバに提供され、リスニングモードの場合、前記トランシーバによって前記ホストコンピュータに提供される、ステップと、
前記リスニングモード中に前記監視されたタイムスタンプを保存するステップと、
前記リスニングモード中に前記ホストコンピュータに前記保存されたタイムスタンプを通知するステップと、
前記マスタタイマモード中、現在のタイムスタンプ値で前記監視されたタイムスタンプを置き換え、前記置き換えられたタイムスタンプを有する前記時刻データパケットを前記トランシーバに供給するステップと、
を含む方法。
【請求項２】
請求項１に記載の方法であって、前記複数のコンピューティングノードのそれぞれは、前記ホストコンピュータと前記トランシーバとの間に配置されたネットワークコントローラをさらに含む、方法。
【請求項３】
請求項２に記載の方法であって、前記複数のコンピューティングノードは、耐障害性イーサネット網において接続され、前記トランシーバは、物理インタフェース（ＰＨＹ）トランシーバであり、前記ネットワークコントローラは、メディアアクセスコントローラ（ＭＡＣ）である、方法。
【請求項４】
請求項１に記載の方法であって、前記時刻データパケットは、フレーム検査シーケンス（ＦＣＳ）値に関しても監視され、該方法は、
前記マスタタイマノード中、計算されたＦＣＳ値で前記監視されたＦＣＳ値を置き換え、前記置き換えられたＦＣＳ値を前記トランシーバに供給するステップを、
さらに含む、方法。
【請求項５】
請求項４に記載の方法であって、前記リッスンモード中、前記監視されたＦＣＳ値と前記計算されたＦＣＳ値との比較に基づき、前記ホストコンピュータは、前記監視されたタイムスタンプを通知され又は通知されない、方法。
【請求項６】
請求項１に記載の方法であって、前記監視するステップは、前記監視されるタイムスタンプを検出した場合、現在時刻値を保存するステップをさらに含む、方法。
【請求項７】
請求項６に記載の方法であって、前記コンピューティングノードは、ローカルタイマをさらに含み、該方法は、
前記リッスンモード中、前記保存されたタイムスタンプおよび前記保存された現在時刻に基づいて前記ローカルタイマを調整するステップを、
さらに含む、方法。
【請求項８】
請求項１に記載の方法であって、前記時刻データパケットは、前記時刻データパケットの送信側のＩＤに関しても監視され、該方法は、
前記ＩＤが無効である場合、前記方法を再スタートするステップを、
さらに含む、方法。
【請求項９】
請求項１に記載の方法であって、前記時刻データパケットは、マルチキャストアドレスに関しても監視され、該方法は、
前記コンピューティングノードが、前記マルチキャストアドレスの加入者ではない場合、前記方法を再スタートするステップを、
さらに含む、方法。
【請求項１０】
請求項１に記載の方法であって、前記タイムスタンプは、リアルタイムを含む、方法。
【請求項１１】
ネットワークにおいて接続されるように適合されたコンピューティングノードのためのリアルタイム同期回路であって、コンピューティングノードは、ホストコンピュータとトランシーバとを含み、該回路は、
ローカルタイマと、
（１）マスタ時刻送信モードにおいて、前記ローカルタイマの現在時刻値で、前記ホストコンピュータによって提供されたデータのパケットの中に含まれるマスタタイムスタンプを置き換え、前記置き換えられた現在時刻値を有するデータの前記パケットを前記トランシーバに転送して、前記ホストコンピュータに起因する遅延を補償するように動作し、（２）リッスンモードにおいて、前記トランシーバから受信されたデータのパケットの中に含まれるマスタタイムスタンプを保存し、前記ローカルタイマの現在値を保存するように動作する論理デバイスと、
を含む、回路。
【請求項１２】
請求項１１に記載の回路であって、前記リッスンモード中、データの前記パケットが該パケットの送信側の無効なＩＤを含む場合、前記マスタタイムスタンプは、保存されない、回路。
【請求項１３】
請求項１２に記載の回路であって、データの前記パケットがマルチキャストアドレスを含み、該回路が前記マルチキャストアドレスの非加入者である場合、前記リッスンモード中、前記マスタタイムスタンプは、保存されない、回路。
【請求項１４】
請求項１１に記載の回路であって、前記コンピューティングノードは、前記ホストコンピュータと前記トランシーバとの間に配置されたネットワークコントローラをさらに含む、回路。
【請求項１５】
請求項１４に記載の回路であって、前記複数のコンピューティングノードは、耐障害性イーサネット網において接続され、前記トランシーバは、物理インタフェース（ＰＨＹ）トランシーバであり、前記ネットワークコントローラは、メディアアクセスコントローラ（ＭＡＣ）である、回路。
【請求項１６】
請求項１１に記載の回路であって、前記タイムスタンプは、リアルタイムを含む、回路。
【請求項１７】
コンピューティングノードであって、
ネットワークにおいて接続されるように適合された、ホストコンピュータおよびトランシーバと、
リアルタイム同期回路であって、
ローカルタイマと、
（１）マスタ時刻送信モードにおいて、前記ローカルタイマの現在時刻値で、前記ホストコンピュータによって提供されたデータのパケットの中に含まれるリアルタイムマスタタイムスタンプを置き換え、前記置き換えられた現在時刻値を有するデータの前記パケットを前記トランシーバに転送して、前記ホストコンピュータに起因する遅延を補償するように動作し、（２）リッスンモードにおいて、前記トランシーバから受信されたデータのパケットの中に含まれるマスタタイムスタンプを保存し、前記ローカルタイマの現在値を保存するように動作する論理デバイスと、
を含むリアルタイム同期回路と、
を含むコンピューティングノード。
【請求項１８】
請求項１７に記載のコンピューティングノードであって、前記ホストコンピュータは、前記保存されたマスタタイムスタンプおよび前記保存された現在時刻値に基づいて前記ローカルタイマを調整することにより、更新動作を実行する、コンピューティングノード。
【請求項１９】
請求項１７に記載のコンピューティングノードであって、前記マスタタイムスタンプおよび前記ローカル現在時刻値は、それぞれ、第１のレジスタおよび第２のレジスタに保存される、コンピューティングノード。
【請求項２０】
請求項１７に記載のコンピューティングノードであって、前記リアルタイム同期回路は、前記ホストコンピュータからデータの前記パケットを受信するためのシフトレジスタと、前記トランシーバの入力を切り替えて、前記マスタタイムスタンプを除いて、前記シフトレジスタからのデータの前記パケットを受信し、該マスタタイムスタンプの代わりに前記ローカルタイマの前記現在時刻値を受信するようにするためのマルチプレクサと、をさらに含む、コンピューティングノード。
【請求項２１】
請求項１７に記載のコンピューティングノードであって、
前記ホストコンピュータと前記トランシーバの間に配置されたネットワークコントローラを、
さらに含むコンピューティングノード。
【請求項２２】
請求項２１に記載のコンピューティングノードであって、該コンピューティングノードは、耐障害性イーサネット網に接続され、前記トランシーバは、ＰＨＹトランシーバであり、前記ネットワークコントローラは、ＭＡＣコントローラである、コンピューティングノード。
【請求項２３】
請求項１７に記載のコンピューティングノードであって、前記タイムスタンプは、リアルタイムを含む、コンピューティングノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、ネットワークに接続された複数のコンピューティングノード間におけるクロック同期に関し、より詳細には、耐障害性イーサネット環境において同期を達成するための方法およびデバイスに関する。
【背景技術】
【０００２】
本出願は、２００２年６月２４日に出願した米国特許仮出願６０／３９０９３８の恩典を主張する。
（発明の背景）
多くの応用分野において、ネットワークのコンピューティングノードのローカルクロックを同期させて、誤差を回避することが必要である。これは、コンピューティングノードが、一続きのイベントを扱っているプロセス制御応用分野において、特に必要である。というのは、クロックの誤差により、イベントが、別のイベントの前または後に誤って生じているものとして解釈されることになる可能性があるからである。現行の方法は、およそ１ミリ秒の分解能の発電要件に対して、十分に正確ではない。
【０００３】
イーサネット環境における各コンピューティングノードは、一般に、そのノードにおけるコンピュータを他のノードにおけるコンピュータに結びつけることができるコンポーネントを含む。それらのコンポーネントは、物理（ＰＨＹ）レイヤまたは物理トランシーバ、およびメディアアクセスコントローラ（ＭＡＣ）を含む。ＰＨＹトランシーバは、ネットワークに接続され、ＭＡＣは、コンピューティングノードにおいてＰＨＹトランシーバとローカルコンピュータの間に接続される。米国特許第５,９５３,３４５号は、イーサネット環境のためのクロック同期技術を説明している。この技術は、別個の専用配線で各ノードのＰＨＹトランシーバおよびＭＡＣコントローラにそれぞれが配信される別個のグローバルクロック信号−同期パルスを使用する。この技術は、別個の配線が利用できないか、またはあまりにも高価である多くの応用分野には適していない。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、専用配線なしで要求される分解能を達成するだけ十分に正確な同期情報をイーサネットコンポーネントに通信する。
また、本発明は、以下に説明されて明白となる多くのさらなる利点も提供する。
【課題を解決するための手段】
【０００５】
（発明の概要）
本発明による方法は、制御システム内のコンピューティングノードを同期させる。各コンピューティングノードは、ホストコンピュータおよびトランシーバを含む。方法は、マスタ時刻データパケットを、パケットの中に含まれるタイムスタンプに関して監視する。データパケットは、マスタタイマモードの場合、ホストコンピュータによってトランシーバに提供され、リスニングモードの場合、トランシーバによってホストコンピュータに提供される。リスニングモード中、監視されたタイムスタンプは、保存され、ホストコンピュータが、保存されたタイムスタンプについて通知を受ける。マスタタイマモード中、現在のタイムスタンプ値で監視されたタイムスタンプが置き換えられる。置き換えられたタイムスタンプを有する時刻データパケットが、トランシーバに供給される。
【０００６】
方法の一実施形態では、時刻データパケットは、チェックサム値に関しても監視される。マスタタイマノード中、計算されたチェックサム値で監視されたチェックサム値が置き換えられ、トランシーバに供給される。リスニングモード中、監視されたチェックサム値と計算されたチェックサム値との比較に基づき、ホストコンピュータに、監視されたタイムスタンプが通知されるか、または通知されない。
【０００７】
本発明の方法の別の実施形態では、監視されたタイムスタンプが検出された場合、現在時刻値も保存される。好ましくは、コンピューティングノードは、ローカルタイマをさらに含み、このローカルタイマを方法は、リスニングモード中、保存されたタイムスタンプおよび保存された現在時刻に基づいて調整する。マスタクロックに対するローカルクロックのオフセットおよびスキュー（ｓｋｅｗ）は、ネットワーク待ち時間に、ネットワーク輻輳に起因する変動を足しただけの値まで縮小される。
【０００８】
方法のさらに別の実施形態では、時刻データパケットが、時刻データパケットの送信側のＩＤに関しても監視される。ＩＤが無効である場合、方法は、再スタートされる。
方法のさらに別の実施形態では、時刻データパケットが、マルチキャストアドレスに関しても監視される。コンピューティングノードがマルチキャストアドレスの加入者ではない場合、方法は、再スタートされる。
【０００９】
方法のさらなる実施形態では、コンピューティングノードは、ホストコンピュータとトランシーバの間に配置されたネットワークコントローラも含む。好ましくは、ネットワークは、耐障害性イーサネットであり、トランシーバは、ＰＨＹトランシーバであり、ネットワークコントローラは、ＭＡＣコントローラである。
【００１０】
本発明のリアルタイム同期回路が、コンピューティングノードのホストコンピュータとトランシーバの間に配置される。リアルタイム同期回路は、ローカルタイマと論理デバイスとを含む。論理デバイスは、マスタ時刻送信モード、およびリッスンモードで動作する。マスタ時刻送信モード中、論理デバイスは、ローカルタイマの現在時刻値で、ホストコンピュータによって提供されたデータのパケットの中に含まれるマスタタイムスタンプを置き換える。置き換えられた現在時刻値を有するデータのパケットが、トランシーバに転送されて、ホストコンピュータに起因する遅延が補償される。リッスンモード中、論理デバイスは、トランシーバから受信されたデータのパケットの中に含まれるマスタタイムスタンプを保存（または格納）し、ローカルタイマの現在値も保存する。
【００１１】
本発明のリアルタイムクロック同期の一実施形態では、データのパケットが、パケットの送信側の無効なＩＤを含む場合、マスタタイムスタンプは、リッスンモード中、保存されない。
【００１２】
リアルタイムクロック同期回路の別の実施形態では、データのパケットが、マルチキャストアドレスを含み、回路がそのマルチキャストアドレスの非加入者である場合、マスタタイムスタンプは、リッスンモード中、保存されない。
【００１３】
本発明のリアルタイムクロック同期回路のさらに別の実施形態では、コンピューティングノードは、ホストコンピュータとトランシーバの間に配置されたネットワークコントローラをさらに含む。好ましくは、コンピューティングノードは、耐障害性イーサネットネットワークに接続され、トランシーバは、ＰＨＹトランシーバであり、ネットワークコントローラは、ＭＡＣコントローラである。
【００１４】
本発明のコンピューティングノードは、ホストコンピュータと、ネットワークにおける接続に適合されたトランシーバと、リアルタイム同期回路とを含む。リアルタイム同期回路は、ローカルタイマ、ならびにマスタ時刻送信モード、およびリッスンモードで動作する論理デバイスを含む。マスタ時刻送信モード中、論理デバイスは、ローカルタイマの現在時刻値で、ホストコンピュータによって提供されたデータのパケットの中に含まれるリアルタイムマスタタイムスタンプを置き換える。置き換えられた現在時刻値を有するデータのパケットが、トランシーバに転送されて、ホストコンピュータに起因する遅延が補償される。リッスンモード中、論理デバイスは、トランシーバから受信されたデータのパケットの中に含まれるマスタタイムスタンプを保存し、ローカルタイマの現在値も保存する。
【００１５】
本発明のコンピューティングノードの一実施形態では、ホストコンピュータは、保存されたマスタタイムスタンプおよび保存された現在時刻値に基づいてローカルタイマを調整することにより、更新動作を実行する。
【００１６】
本発明のコンピューティングノードの別の実施形態では、マスタタイムスタンプおよびローカル現在時刻値は、それぞれ、第１のレジスタおよび第２のレジスタの中に保存される。
【００１７】
本発明のコンピューティングノードのさらに別の実施形態では、リアルタイム同期回路は、ホストコンピュータからデータのパケットを受信するためのシフトレジスタと、トランシーバの入力を切り替えて、マスタタイムスタンプを除いて、シフトレジスタからデータのパケットを受け取り、マスタタイムスタンプの代わりにローカルタイマの現在時刻値を受け取るためのマルチプレクサとをさらに含む。
【００１８】
本発明のコンピューティングノードのさらに別の実施形態では、ネットワークコントローラが、ホストコンピュータとトランシーバの間に配置される。
本発明のコンピューティングノードのさらなる実施形態では、コンピューティングノードは、耐障害性イーサネットに接続され、トランシーバは、ＰＨＹトランシーバであり、ネットワークコントローラは、ＭＡＣコントローラである。
【００１９】
方法、リアルタイムクロック同期回路、およびコンピューティングノードの諸実施形態のいずれにおいても、タイムスタンプは、リアルタイム値を含む。
なお、本発明のその他、およびさらなる目的、利点、および特徴は、添付の図面と併せて以下の明細を参照することにより、理解されよう。図面では、同様の符号は、同様の構造要素を表す。
【発明を実施するための最良の形態】
【００２０】
図１を参照すると、制御システム２０は、プロセス３０の制御、監視、および／または管理を行うように配置された本発明の複数のコンピューティングノード２２、２４、および２６を含んでいる。３つのコンピューティングノードを示しているが、コンピューティングノード２４とコンピューティングノード２６との間の破線は、複数のコンピューティングノードを使用できることを示している。図では、コンピューティングノード２２および２４は、プロセス３０に対する接続を有する。これらの接続は、様々なセンサおよび／または制御デバイスが接続されたバスであることが可能である。例えば、コンピューティングノード２２および２４の１つまたは複数のためのローカルバスは、フィールドバスファウンデーション（Ｆｉｅｌｄｂｕｓ  Ｆｏｕｎｄａｔｉｏｎ）（ＦＦ）ローカルエリアネットワークであることも可能である。コンピューティングノード２６は、プロセス３０に対する直接の接続を有さず、コンピューティングノードの管理、観察、およびその他の目的で使用されることが可能である。
【００２１】
コンピューティングノード２２、２４、および２６は、ネットワーク２８を介して互いに接続される。ネットワーク２８は、任意の適切な有線ネットワーク、無線ネットワーク、および／または光ネットワークであることが可能であり、インターネット、イントラネット、公衆電話網、ローカルエリアネットワークおよび／またはワイドエリアネットワークを含むことが可能である。好ましくは、ネットワーク２８は、イーサネット環境を容易にする。
【００２２】
コンピューティングノード２２、２４、および２６は、実質的に同一であるため、コンピューティングノード２２だけを詳細に説明する。コンピューティングノード２２は、ローカルコンピュータまたはホストコンピュータ３２、メディアアクセスコントローラ（ＭＡＣ）コントローラ３４、リアルタイム同期回路３６、および物理インタフェース（ＰＨＹ）トランシーバ３８を含む。ホストコンピュータ３２、ＭＡＣコントローラ３４、およびＰＨＹトランシーバ３８は、適宜、市販されるコンポーネントであることが可能である。
【００２３】
リアルタイム同期回路３６は、本発明の同期デバイスであり、ＭＡＣコントローラ３４とＰＨＹトランシーバ３８との間に配置される。リアルタイム同期回路３６は、コンピューティングノードが、マスタタイムクロックノードまたはリスニングノードとして動作することを可能にすることができる。マスタタイムクロックノードは、制御システム２０内の他のコンピューティングノードに、マルチキャストベースでデータパケットを伝送する。マルチキャストが意味しているのは、データパケットが、一群の加入コンピューティングノードのＩＤを含むことである。加入者グループのメンバであるいずれのノードも、データパケットを受信する、またはリッスンすることができるようにされる。
【００２４】
本発明によれば、リアルタイム同期回路３６は、マスタ時刻モードになっている場合、関連するホストコンピュータ３２によって組み立てられたマスタタイムクロックデータパケットを認識し、マスタローカルタイマからのリアルタイムスタンプをそのデータパケットの中の適切な場所に挿入する。挿入は、ＰＨＹトランシーバに対するインタフェースのできる限り近くで行われ、ホストコンピュータ３２およびＭＡＣコントローラ３４に固有の遅延が回避される。
【００２５】
リッスンモードになっている場合、リアルタイム同期回路３６は、データパケットＩＤを認識し、受信されたマスタ時刻データパケットのリアルタイムスタンプ、ならびにローカルタイマのローカル時刻値をキャプチャする。これらの保存された値により、ローカルタイマが受信されたマスタタイムスタンプと同期しているように、ホストコンピュータ３２がローカルタイマを調整することが可能になる。つまり、ローカルホストコンピュータ３２は、ローカルリアルタイムクロックの速度を上げるように、または下げるようにローカルリアルタイムクロックを増分する、または減分するローカル時間基準クロックを制御する。このため、ローカルクロックは、時刻マスタクロックに同期させることができる。マスタクロックに対するローカルクロックのオフセットおよびスキューは、ネットワーク待ち時間に、ネットワーク輻輳に起因する変動を足しただけの値まで縮小される。２つのコンピュータプラットフォーム（時刻マスタおよびローカルノード）の割り込みおよび処理の待ち時間が除かれる。
【００２６】
（時刻同期パケット）
本発明の一実施形態では、リスナノードをマスタノードに同期させるのに必要な情報が、ファウンデーションフィールドバス（ＦＦ：Ｆｏｕｎｄａｔｉｏｎ  Ｆｉｅｌｄ）高速イーサネット（ＨＳＥ：Ｈｉｇｈ  Ｓｐｅｅｄ  Ｅｔｈｅｒｎｅｔ）試験パケットの中で送信される。このパケットは、耐障害性イーサネット（ＦＴＥ：Ｆａｕｌｔ−Ｔｏｌｅｒａｎｔ  Ｅｔｈｅｒｎｅｔ）コミュニティに参加するすべてのノードにマルチキャストされる。ＦＴＥコミュニティに参加していないノード群は、ＦＴＥ試験メッセージが伝達されているマルチキャストアドレスに加入することにより、時刻を同期させることができる。ＨＳＥ試験パケットは、タイムスタンプ用の場所を含む。ＨＳＥ規格は、このタイムスタンプが正確であるように規定していない。しかし、このタイムスタンプを使用して、正確な時刻シグニチャを送信することができる。リスナノード群は、時刻マスタノードの送信元ＦＦ  ＨＳＥデバイスＩＤを認識し、マスタノードのタイムスタンプを正確な時刻基準として使用するように構成されることにより、この正確な時刻を使用することができる。
【００２７】
（ＨＳＥタイムスタンプ）
ＨＳＥタイムスタンプは、ミリ秒の１／３２の２の累乗である符号付きの数を含む６４ビットの語である。この数は、１９８４年１月１日、午前零時からのオフセットを表す。この標準の出所はおそらく、ミリ秒の１／３２が、腕時計、内蔵型コンピュータリアルタイムクロックなどのための一般的な周波数水晶である３２ＫＨｚだということである。
【００２８】
（システム２０におけるタイムスタンプのＦＴＥ使用）
例えば、ホストコンピュータ３２用の基本クロックが３３ＭＨｚであることが可能である。ミリ秒の１／３２に達するのが困難であるため、最良の妥協案は、３３ＭＨｚクロックを３３と１／３で割り、基本時間刻みとして１マイクロ秒に達することであることを本発明者らは見出した。このクロックを１２５で割って、ミリ秒の１／８である１２５マイクロ秒に達することができる。イベントシーケンス（ＳＯＥ）特定の目的では、１ミリ秒の時間精度に達するのに１２５マイクロ秒で十分である。クロックマスタノード群は、１２５マイクロ秒、およびそこからの２進カウントを使用する。ＨＳＥ試験メッセージの中でタイムスタンプを送信する場合、タイムスタンプの最小２桁のビット（ＬＳＢ）がゼロに設定される。
【００２９】
（誤差の源）
（静的誤差）
イーサネットシステムでは、クロックタイミングにおける静的誤差の源が存在する。第１の源は、ノード対ノードの同期を有さないシステムにおける水晶周波数の基本的な違いである。市販の発振器の周波数精度は、通常、１００ピーピーエム（ＰＰＭ）である。特別に費用を払えば、５０ＰＰＭを達成することができる。
【００３０】
ＳＯＥ特定の目的では、周波数精度は、リスナノードにおいてだけ重要である。というのは、マスタが基準だからである。時刻が壁時計に対して正確であることをユーザが所望する場合、マスタクロックレジスタを正確な世界時間源に同期させなければならない。過去には、これは、電力網から導出された５０Ｈｚまたは６０Ｈｚの周波数を使用して達せられた。最近は、グローバルポジショニングサテライト（ＧＰＳ）受信機の使用が、この機能向けに一般的となっている。ＧＰＳは、正確な日付と時刻、ならびに周波数の正確さの利点を有する。
【００３１】
既定の誤差の別の源は、パケットの先頭とパケットの中でタイムスタンプが位置している場所の間の時間である。同様に、メッセージが開始する時点とメッセージの中でタイムスタンプが出現する時点の間に、受信機に導入される誤差が存在する。
【００３２】
データを伝送するのに使用される電線またはファイバにおける相対的な遅延により、比較的小さい誤差が導入される。
（動的誤差）
誤差の最大の源は、システムにおける動的誤差である。１つの源は、パケットが送信機を離れた後、システムに存在する待ち時間の量である。これは、イーサネット網の詳細に異存する。依存関係に含まれるのが、時刻マスタとリスナの間のパスにおけるスイッチの数、各スイッチにおいてパケットがコピーされる回数、各スイッチにおける待ち行列の輻輳である。
【００３３】
動的誤差の別の源は、パケットが受信される時点とクロックレジスタが変更される時点の間のリスナにおける待ち時間である。割り込み応答、割り込みサービスルーチンの優先順位、イーサネットパケットが転送されるバスにかかる負荷、データを扱っているプロセッサの速度、ユーザによってコーディングされたドライバがデータに達する前にオペレーティングシステムがパケットをコピーする回数を含め、この誤差のいくつかの源が存在する可能性がある。
【００３４】
送信機において、データがクロックレジスタからフェッチされる時点と、データがパケットバッファに書き込まれる時点の間に動的誤差が存在する。この時間差は、プロセッサの速度、レジスタ群が存在するバスにかかる負荷、ならびにイーサネット送信機がパケットデータを獲得するバスにかかる負荷、および伝送のためにパケットを待ち行列に入れるオペレーティングシステムのオーバーヘッドによって影響される可能性がある。
【００３５】
受信機および送信機の発振器の周波数誤差の動的な変化も存在する。時間および温度を経ることによるこのドリフトは、デバイスの１００ＰＰＭ規格または５０ＰＰＭ規格に含まれる。
【００３６】
（動的待ち時間を最小限に抑えること）
（送信機待ち時間）
送信機待ち時間誤差に主に寄与する要因が、オペレーティングシステムおよびバスの負荷にある。これらの効果の両方とも、システムハードウェア設計に大きな影響を与えずに制御することはできない。最良のアプローチは、時刻の値を伝送メディアにできる限り近くすることである。この機能を行うのに都合のよい場所がイーサネット伝送パス内に存在する。データは、メディア独立インタフェース（ＭＩＩ）として知られる標準のインタフェースにおいてフォーマットされる。これは、１組の論理によってインタセプト（ｉｎｔｅｒｃｅｐｔ）されることが可能であり、送信機における待ち時間の大部分を取り除くために使用されることが可能な周知のインタフェースである。送信側ＭＡＣコントローラ３４からＰＨＹトランシーバ３８までのＭＩＩインタフェースは、操作のために中断して、リアルタイム同期回路３６に送り込むことができる。リアルタイム同期回路３６は、ＰＨＹトランシーバ３８に送られるパケットデータのすべてを監視することができ、ＨＳＥ試験パケットを認識した場合、作業を始めることが可能である。パケットは、パケットのタイムスタンプ部分になるまで、変更なしにＰＨＹトランシーバ３８に送られる。次に、リアルタイム同期回路３６は、リアルタイム同期回路３６内部に保持される時刻レジスタ群の中に含まれる値を挿入することができる。このプロセスが、送信機におけるオペレーティングシステム／プロセッサ／バス関連の待ち時間のすべてを取り除く。リアルタイム同期回路３６は、パケットの中のデータが変更されると、新たなフレーム検査シーケンス（ＦＣＳ）も計算する。再計算されたＦＣＳが、パケットの中に適切な場所で挿入され、ＰＨＹトランシーバ３８に送れる。
【００３７】
（リスナ待ち時間）
リッスンモードになっている場合、リアルタイム同期回路３６で同様の技術を使用して、オペレーティングシステム／プロセッサ／バスによって生じさせられる待ち時間を取り除くことができる。ＰＨＹトランシーバ３８とＭＡＣコントローラ３４の間のＭＩＩバスが、リアルタイム同期回路３６によってインタセプトされる。リアルタイム同期回路３６は、受信側ノードの中にも時刻レジスタ群を含む。リアルタイム同期回路３６は、そのノード内のホストコンピュータ３２による構成を必要とする。リアルタイム同期回路３６は、時刻マスタノードのデバイスＩＤ上にあるＨＳＥ試験パケットのＩＰマルチキャストアドレスを知る必要がある。着信ＭＩＩインタフェース上のデータパケットが、リアルタイム同期回路３６によってスヌーピングされ、構成されたＩＰアドレスが見つかった場合、論理は、時刻マスタＦＦ  ＨＳＥデバイスＩＤを探す。マスタＩＤが見つかった場合、論理は、パケットのタイムスタンプ部分が始まるまで待つ。次に、タイムスタンプは、一時レジスタの中に格納される。その時点で、論理は、ホストコンピュータ３２が読み取ることができるレジスタの中のローカルタイムスタンプレジスタをキャプチャする。パケット全体が終わった時点で、論理は、終りにあるＦＣＳをパケットデータから論理が計算したＦＣＳと照合する。ＦＣＳが正しい場合、一時レジスタの中の時刻が、ホストコンピュータ３２が読み取ることができるレジスタに転送され、ホストコンピュータ３２に対する割り込みを設定する。ホストコンピュータ３２は、割り込みを処理し、ローカル時刻と時刻マスタ時刻の差に基づいて計算を行う。ローカル時間基準を制御するリアルタイム同期回路３６の論理が、時刻マスタと同期するように調整される。時間基準誤差は、パケットが着信した際にキャプチャされた時刻を使用して計算されるため、待ち時間誤差は存在しない。パス待ち時間を０．５ミリ秒の範囲内に保つことができる場合、合計誤差は、所望される１ミリ秒の範囲内に収まる。ホストコンピュータ３２は、待ち時間を平均し、所望される場合、既定の遅延を取り除くことができる。
【００３８】
（パス待ち時間計算）
最大で５１２個のノードに対するＨＳＥ試験パケットが、およそ４００バイトを含む。毎秒１００Ｍｂｉｔで、１ビット当たり１０ナノ秒、つまり１バイト当たり８０ナノ秒が存在する。したがって、４００バイトは、３２マイクロ秒である。スイッチにおいて１パケット待ち行列が存在する場合、スイッチごとに１パケット当たり３２マイクロ秒の遅延が存在することになる。ビジーなシステムでは、待ち行列の中で出力の前に完全な長さのパケットが存在する可能性がある。完全な長さのパケットは、０．１２２ミリ秒の遅延にわたる１５１８バイトである。待ち時間を０．５ミリ秒未満に保つことが所望される場合、時刻マスタとリスナの中間のスイッチの数は、重い負荷のかかるシステム上では、４つ、または５つに抑えられなければならない。ネットワークトポロジに関して勧告を行うため、制御システム２０におけるパケットのタイプの分析が行われなければならない。この理由で、時刻マスタノードは、スイッチ階層の最上部に位置しなければならない。
【００３９】
（時間基準）
リアルタイム同期回路３６では、時間基準は、コンピューティングノードの中に含まれる基本３３ＭＨｚ発振器によって駆動される。このクロックをまず３３と１／３で割って、１マイクロ秒クロックが得られる。１マイクロ秒クロックは、公称で毎１２５マイクロ秒に１クロック幅のパルスを生成する論理を駆動する。１２５マイクロ秒パルスの制御により、タイミング回路の調整が可能になる。
【００４０】
１マイクロ秒クロックは、好ましくは、２つのタイミングチェーンを駆動するのに使用される。チェーンの１つは、ＨＳＥタイムスタンプである。このチェーンは、現在の日付、年、および時刻に関して始動時にホストコンピュータ３２がプログラミングすることができる単調に増加する６４ビットレジスタである。このレジスタは、１マイクロ秒クロックによってクロック制御され、およそ１２５マイクロ秒ごとの１クロック幅パルスによって有効にされる。１２５マイクロ秒パルスが、制御論理によって調整されてクロック同期が得られる。
【００４１】
第２のチェーンは、１マイクロ秒クロックによって進められ、１秒までカウントし、１２５マイクロ秒パルスを調整するとともに、毎秒、ホストコンピュータ３２をインタセプトするように他の論理と組み合わせて使用される。
【００４２】
調整方法は、ホストコンピュータ３２が、ＨＳＥ時刻カウンタを有効にする１２５マイクロ秒パルスに毎秒、追加する、またはそのパルスから毎秒差し引く１０ミリ秒増分の数をプログラミングすることに基づく。カウンタが、毎秒１０マイクロ秒短い、または長い場合、プラスまたはマイナス１０ピーピーエムの変化が可能である。制御レジスタは、１２ビットであり、１ビットは、＋または−４０９６０ピーピーエムの周波数制御の可能性を表す符号用である。例えば、ホストコンピュータ３２が、レジスタに１をプログラミングした場合、１２５マイクロ秒有効化パルスの１つが、毎秒１２４マイクロ秒の間隔で生じる。これにより、ＨＳＥクロックが、１０ピーピーエムだけ速度を上げることが生じさせられる。ホストコンピュータ３２が、レジスタに１をプログラミングし、符号ビットに１をプログラミングした場合、毎秒１２６マイクロ秒である１つの有効化パルス間隔が存在する。これにより、ＨＳＥクロックが、１０ピーピーエムだけ速度を下げることが生じさせられる。
【００４３】
（リスナにおけるＭＩＩスヌーピング）
図２を参照すると、ＰＨＹトランシーバ３８が、ＰＨＹ受信機４０およびＰＨＹ送信機４２を含む。ＰＨＹトランシーバ３８とＭＡＣコントローラの間のインタフェースは、メディア独立インタフェース（ＭＩＩ）である。
【００４４】
ＰＨＹ受信機４０は、ネットワーク２８（図１）を介して他のコンピューティングノード群からデータのパケットを受信し、選択されたＡチャネルまたはＢチャネルを介して、ＰＨＹクロック信号およびパケットデータをニブル単位（１ニブル当たり４ビット）でリアルタイム同期回路３６に供給する。ＰＨＹ送信機は、Ｂチャネルを介して、ＭＡＣコントローラからのＭＡＣクロック信号、および伝送されるべきデータパケットのデータニブルを受け取る。ＰＨＹ送信機４２は、選択されたＡチャネルまたはＢチャネルを介して、リアルタイムクロック同期回路３６からＨＳＥ試験パケットを受け取る。
【００４５】
リアルタイムクロック同期回路３６は、クロック信号がニブルを１つづつシフトして入れる受信シフトレジスタ４４を含む。リアルタイムクロック同期回路３６は、比較論理−状態マシンコントローラ４６、タイムスタンプキャプチャレジスタ４８、ローカル時刻キャプチャレジスタ５０、ローカル時刻カウンタ５２、送信シフトレジスタ５４、比較論理−状態マシンコントローラ５６、および出力マルチプレクサ５８も含む。
【００４６】
図２および図４を参照して、リアルタイムクロック同期３６の動作を、コンピューティングモード群の別のモードが時刻マスタとして動作して、ＨＳＥ試験パケットを定期的に（例えば、０．５秒間隔で）伝送するリスニングモードに関して説明する。ＰＨＹクロック信号は、ニブルをクロック制御して受信シフトレジスタ４４の中に入れるとともに、ＭＡＣコントローラ３４のレジスタ（図示せず）の中にも入れる。ＰＨＹ受信機４０は、有効なデータが受信されている場合、そのことの指示を、別個の線ＲＸ＿ＤＶ（図示せず）を介してコントローラ４６に与える。コントローラ４６は、図４のステップ７０で応答して、データの中でフレームの先頭を探すことを始める。フレームの先頭が見つかると、ステップ７２が、コントローラ４６のニブルカウンタ（図示せず）を開始して、ニブルをカウントする。各ニブルがカウントされると、現在のニブルがフレームの終りであるかどうかをステップ７８が判定する。「はい」である場合、ステップ７６が、ニブルカウンタをクリアし、制御は、ステップ７０に移る。
【００４７】
現在のニブルがフレームの終りではないとステップ７４が判定した場合、ステップ７８が、ニブルをシフトして、コントローラ４６のデータレジスタおよびチェックサム計算機（図示せず）の中に入れる。ニブルカウントが宛先アドレスに等しいかどうかをステップ８０が判定する。等しくない場合、宛先アドレスまたはＩＰアドレスが見つかるまで、ステップ７４、７８、および８０が繰り返される。次に、宛先アドレスが診断マルチキャストデータパケットであるかどうかをステップ８２が判定する。診断マルチキャストデータパケットではない場合、ステップ７６がニブルカウンタをクリアし、制御は、ステップ７０に戻る。宛先アドレスがマルチキャストアドレスであるとステップ８２が判定した場合、その宛先アドレスが保存され、ホストコンピュータ３２によって構成された診断マルチキャストアドレスと比較される。この比較時に、ＨＳＥ試験メッセージが検出されているものと考えられる。ニブルカウントがサービスバイトカウント（ＦＦ  ＨＳＥ診断メッセージタイプ識別子の位置）に等しくなるまで、ステップ８４がニブルをカウントする。
【００４８】
ステップ８６が、メッセージタイプをＦＦ  ＨＳＥ診断メッセージと比較して、メッセージが診断メッセージであるかどうかを判定する。診断メッセージではない場合、ステップ７６が、ニブルカウンタをクリアし、制御は、ステップ７０に戻る。メッセージがＦＦ  ＨＳＥ診断メッセージであるとステップ８６が判定した場合、ニブルカウントがデバイスインデックス（ＦＦ  ＨＳＥデバイスＩＤ）に等しくなるまで、ステップ８８がニブルをカウントする。これが行われた場合、デバイスインデックスとプログラミングされた値（構成されたＩＤ）が同一であるかどうかをステップ９０が判定する。ホストコンピュータ３２が、時刻マスタノードのＩＤを構成されたＩＤの中に前もってプログラミングしていることになる。同一ではない場合、ステップ７６がニブルカウンタをクリアし、制御は、ステップ７０に戻る。同一である場合、ステップ９２で、コミュニティ内のノード数フィールドに出会うまで、論理は、ニブルをカウントする。ノード数フィールドが見つかると、論理は、ノードの数に８を掛け、その値を一時レジスタの中に保存する。論理は、ノードステータスフィールドが始まるまでニブルをカウントする。その時点で、ダウンカウンタが開始される。ダウンカウンタは、０に達すると、ノードステータステーブルの終りを示す。次のフィールドは、タイムスタンプである。
【００４９】
次に、ステップ９６が、ホストコンピュータ３２が読み取ることができるタイムスタンプキャプチャレジスタ４８の中にタイムスタンプ（ステップ８４からの）を格納する。同時に、ステップ９８が、ローカル時刻カウンタ５２の時刻値をキャプチャし、ローカル時刻キャプチャレジスタ５０の中に格納する。ホストコンピュータ３２は、レジスタ４８および５０にアクセスし、２つの値を比較して、誤差値を算出し、図２の１２５マイクロ秒パルスストレッチャ（ｓｔｒｅｔｃｈｅｒ）／レデューサ（ｒｅｄｕｃｅｒ）６０に入力する訂正値を計算するようにすることができる。ＦＣＳバイト位置に達するまで、ステップ１００がニブルをカウントする。コントローラ４６が、フレームの先頭（ＳＦＤ）からメッセージ全体を通じてチェックサムを計算している。ステップ１０２が、受信されたＦＣＳを計算されたＦＣＳと比較する。ＦＣＳが正しい場合、ステップ１０４が、ステータスビットを設定し、新たな時刻値が着信したことをホストコンピュータ３２に知らせる割り込みを生成する。ＦＣＳが同等ではない場合、ステップ１０６がステータスビットをクリアし、割り込みを生成しない。次に、ステップ７６が、ニブルカウンタをクリアし、制御は、ステップ７０に戻る。
【００５０】
コントローラ４６は、時刻スヌーピングのためにケーブルＡまたはケーブルＢを使用するようにホストコンピュータ３２によってプログラミングされる。ホストコンピュータ３２内部で実行されているＦＴＥ試験アルゴリズムが、不良なパスが存在するかどうかを見出し、ホストコンピュータ３２は、その情報を使用して、最も信頼できる時刻データのためにいずれのケーブルを監視すべきかを判定することができる。
【００５１】
（クロックマスタにおけるＭＩＩスヌーピング）
図２および図３を参照して、マスタタイマ動作モードを次に説明する。コントローラ５６が、ＭＡＣコントローラからの送信ポートをリッスンするようにプログラミングされることが可能である。動作は、いくつかの例外を除き、リスナモードと同様である。図３のステップには、１００番台の符号が付けられ、１０の桁および１の桁は、同一の機能を有する図４のステップの符号に対応している。送信ＭＩＩインタフェースは、データが良好である場合、それを示すＲＸ＿ＤＶ信号を有さないが、有効なデータをフレームに入れるＴＸ＿ＥＮ送信イネーブル信号は有する。ＴＸ＿ＥＮ送信イネーブル信号を同様の形で使用して、ＳＦＤについてデータを調べ始めることをステップ１７０でコントローラ５６ができるようにすることができる。ステップ１７０からステップ２２０までの動作（見つかったタイムスタンプが、受信チャネルと同一である場合）。ステップ１７０は、ＨＳＥ試験パケットのニブルをＰＨＹ送信機４２に結合するようにマルチプレクサ５８を動作させるようにも機能する。タイムスタンプが着信した場合、ステップ２２０は、ローカルＨＳＥ時刻レジスタ（図示せず）の現在時刻値を代用して送信ストリームに入れる。ホストコンピュータ３２は、ＨＳＥ試験パケットのそのフィールドに任意の値を入れることができるが、好ましくは、パケットが構築された時点のローカルＨＳＥ時刻レジスタ値が使用される。ＦＣＳに達するまで、ステップ２０２がニブルをカウントすることを続ける。コントローラ４６のようなコントローラ５６が、ニブルがカウントされるにつれ、ＦＣＳを継続的に計算する。ステップ２２４が、送られたデータおよび新たなタイムスタンプから計算されたＦＣＳを代用し、ＨＳＥ試験パケットの適切な場所において、計算されたＦＣＳおよび新たなタイムスタンプをＰＨＹ送信機に結合するようにマルチプレクサ５８を動作させる。このようにして、試験パケットを生成するホストコンピュータコードは、それが時刻マスタであるかどうかを試験する必要がない。この機能が完了した際、割り込みは全く必要ない。
【００５２】
（共通の論理）
コンピューティングノード２２、２４、または２６の動作は、リスナまたはマスタとしてであるため、ノードのコントローラ４６および５６は、多重化されて一方の機能、または他方の機能を行うように作業のほとんどを行う論理を有する単一のコントローラであることが可能である。論理に対する入力上には、受信Ａ、受信Ｂ、送信Ａ、または送信ＢからＭＩＩポートを選択する４対１マルチプレクサが存在する必要がある。ＰＨＹ受信機４０またはＰＨＹ送信機４２に対する送信ＭＩＩインタフェース上には、それぞれの上に２対１マルチプレクサが存在する必要がある。マルチプレクサは、ＭＡＣコントローラ３４から出されたままのデータ、またはコントローラ５６からの、新たなタイムスタンプおよび新たなＦＣＳで変更されたパケットを選択する。
【００５３】
（ＲＭＩＩ変換）
コンピューティングノードアーキテクチャにおいて、ＭＡＣコントローラ３４によって使用されるＭＩＩインタフェース、および一部のＰＨＹトランシーバが使用する縮小型ＭＩＩ（ＲＭＩＩ）から変換する必要性がある可能性がある。この変換も、リアルタイムクロック同期回路３６によって扱われることが可能である。これは、実際、好ましい。というのは、ＲＭＩＩによって必要とされるピンの数の方が、ＭＩＩインタフェースと比べてはるかに少ないからである。
【００５４】
本発明によるいくつかの実施形態を図示し、説明してきたが、実施形態には、当業者には明白な多数の変更が可能であることを明確に理解されたい。したがって、本出願は、図示し、説明した詳細には限定されず、添付の特許請求の範囲に入るすべての変更および改変を示すものとする。
【図面の簡単な説明】
【００５５】
【図１】図１は、本発明の同期デバイスを含む制御システムのブロック図である。
【図２】図２は、図１の制御システムの同期デバイスのリアルタイムクロック同期回路のブロック図である。
【図３】図３は、本発明のリアルタイムクロック同期方法による伝送ステップに関する論理流れ図である。
【図４】図４は、本発明のリアルタイムクロック同期方法による受信ステップに関する論理流れ図である。
【図１】
2005531229.tif 000003
【図２】
2005531229.tif 000004
【図３】
2005531229.tif 000005
【図４】
2005531229.tif 000006
【国際調査報告】
2005531229.tif 000007
2005531229.tif 000008
2005531229.tif 000009