IEEE 1588およびBLACKFIN組込みプロセッサを使用したデバイス・クロック同期

はじめに

2002年に発表されたIEEE 1588規格は、ネットワーク上の分散クロックを同期させるためのプロトコルを規定したものです。この規格は、テスト/測定、電気通信、マルチメディア・ストリーミングなど、さまざまなアプリケーションのクロック同期方式として定着しつつあります。クロック同期のために標準規格化されたこの方式はより安価にシステムを構築することが可能で、多種多様なシステムに対応しており、ナノ秒レベルの同期精度を提供することが可能です。

この記事では、まず最初に定義されたIEEE 1588-2002規格とこれをアップデートしたIEEE 1588-2008の一部に採用された改良点を紹介します。いくつかのアプリケーションにおいてIEEE 1588がますます重要になってきていることから、 ADSP-BF518 Blackn®組込みプロセッサでは、IEEE 1588対応の専用ハードウェアが内蔵されています。最初に機能の概要を紹介し、次にADSP-BF518プロセッサのソリューションで得られるクロック同期性能の具体例を示していきます。

今、一体何時なのか?

一般的に、システムというものはローカル発振器を使って自身の時間を維持しなければなりません。図1に、ハードウェアとソフトウェアの組み合わせによってシステム内で時間情報を生成する方法を示します。

Figure 1
図1. ローカル時間の維持

この時間情報は、システム内のハードウェアとソフトウェアのどちらのリソースからでも使用できます。ハードウェアでは、1つまたは複数の物理的なクロック信号(クロック出力)を発振器のクロックから生成し、その信号でシステム内のほかの部分をドライブしたりトリガしたりします。ソフトウェア内の時間は、一般にシステム時間と呼ばれます。システム時間は、クロック・パルスの数または秒/ナノ秒表記で表されます。システム・ソフトウェアは発振器のクロック・パルスの数とその周波数情報から時間を導出し、システムのほかの部分の時間の取得や設定に使用するアプリケーション・プログラミング・インターフェース(API)機能を提供します。絶対時間を必要とする場合は、システム時間を基準となる時刻に関連付けます。

時計を合わせる

多くのアプリケーションでは、2つの独立したデバイスが同期して動作する必要があります。各デバイスがそれぞれの発振器だけに依存していれば、各発振器の動作条件とその特性の違いのためにクロックが同期して動作するのには限界があります。この制約を解決するための最も単純な方法として、次のようなソリューションが考えられます。

  • 一つの物理的な発振器をすべてのデバイスが使用する。この方法は、近接性の高い分散システムでしか使用できません。高周波クロック信号を遠距離で送信する場合は、信頼性に問題が生じます。
  • ほぼ同じ特性を持つ発振器をすべてのデバイスで使用する。ほぼ同一の発振器を入手し、さらに時間の経過によって誤差が増大することを防止することは難しいため、この方法は実用的とはいえません。各発振器に課せられる動作条件が異なるという、より大きな問題も存在します。
  • Ethernetなどの通信ネットワーク上ですべてのデバイスを接続すれば、ネットワークを介して時間情報を交換でき、各デバイスがそれぞれのクロックを一つのマスター・クロックに合うように動的に調整することができます。従来の時間同期プロトコルであるネットワーク時間プロトコル(NTP)を使用する場合、システム内のデバイスはすべてNTP時間サーバから取得した時間情報に従ってクロックを調整します。しかし、このプロトコルではミリ秒程度の同期精度しか得ることが出来ません。

IEEE 1588は、ナノ秒単位の同期精度を実現する新しいプロトコルを規定しています。次に、このクロック同期レベルを実現する方法について説明します。

IEEE 1588が何をするのか

IEEE 1588規格は、地理的に分散しているが、Ethernetなどの何らかの通信技術によって相互に接続された時間同期デバイスのためのプロトコルを定義しています。デバイス間で時間情報を交換することで、秒単位やナノ秒単位の同じ絶対システム時間を保持することができます。

この目標を達成するためにすぐ思いつく方法は、最も精度の高いクロックを持つデバイスをマスター・クロック・デバイスとし、その時間を他の各デバイスにブロードキャストすることです。他のデバイスは、それぞれのローカル時間をマスターから送信された時間に合わせます。しかし、この方法にはいくつか制約があります。


  1. マスター・クロック・デバイスは、極小の時間間隔でブロードキャストできないため、スレーブ側のクロック・デバイスは専用の独立した”あまり精度の高くない”発振器を使いマスター・クロック・デバイスから与えられる2つのブロードキャスト間の時間ポイントを補間する必要があります。この場合、マスター・クロックの更新と更新の間で同期の質が低下することになります。
  2. ブロードキャスト経路上において、使用する通信技術に引き起こされるさまざまなレベルの遅延を避けられません。たとえば、デバイスの物理的な信号が回線経由で別のデバイスに到達するまでに少なからず時間を要します。この遅延により、マスター・クロックと各スレーブ・クロック間にオフセットが生じます。
  3. マスター・クロック・デバイスと各スレーブ・クロック・デバイスとを結ぶ個々のブロードキャスト経路が異なることから、各スレーブ・クロック・デバイス間の同期の質がさらに低下します。

IEEE 1588は、経路遅延を測定して2番目と3番目の問題を解決するプロトコルを規定しています。また、スレーブ・クロックをマスター・クロックのペースに合うように調整することで、最初の問題を軽減することができます。また、ブロードキャストの間隔を短くし、発振器の品質を向上させることが可能な場合には、最初の問題点の影響をさらに低減することができます。

IEEE 1588による通信遅延の測定方法

IEEE 1588-2002は、順方向(マスターからスレーブ)経路と逆方向(スレーブからマスター)経路での通信遅延の測定について、Sync、Followup、DelayReq、DelayRespの4つのメッセージを定義しています。これより新しいIEEE 1588-2008では、これにPdelayReq、PdelayResp、PdelayRespFollowupのメッセージを追加してピア・ツー・ピア(P2P)遅延測定のメカニズムを提供しています。

これらのメッセージのうち、Sync、DelayReq、PdelayReq、PdelayRespといったイベント・メッセージは、デバイスへの受信/送信時にタイムスタンプする(ローカル時間を記録する)必要があります。パケットのタイムスタンプ方法には、次の2つがあります。


  1. ソフトウェア・タイムスタンプ:メッセージをソフトウェアで処理したときに、ソフトウェア・タイムスタンプを発行します。タイムスタンプは一般にメッセージの受信/送信割込みサービス・ルーチン(ISR)で行われ、その値がシステム時間の現在値になります。
  2. ハードウェア・タイムスタンプ:メッセージがデバイスに物理的に受信するか送信されたときに、ハードウェア・タイムスタンプを発行します。タイムスタンプ処理は、専用の連続時間情報を持つハードウェアが実行します。

EEE 1588ではいずれかのタイムスタンプ方式を使用できますが、以下に示すように、ハードウェア・タイムスタンプのほうが精度の面でかなり優れています。

マスター・クロック・デバイスからスレーブ・クロック・デバイスまでの経路遅延

メッセージのSyncとFollowupは、マスター・クロック・デバイスによって送信されます。スレーブ・クロック・デバイスはこのメッセージを受信して、マスター・クロック・デバイスからスレーブ・クロック・デバイスまでの通信経路上の遅延を計算します。

図2では、マスター・クロック・デバイスのソフトウェアがTm1時に現在のローカル・システム時間(ソフトウェア・タイムスタンプTm1)を読み取り、その時間をSyncメッセージに挿入して送信します。このメッセージはその後のTm1'時にマスター・クロック・デバイスから送信されますが、その時間がハードウェア・タイムスタンプとなります。メッセージがスレーブ・クロック・ハードウェアに到着するのはTs1'時(スレーブ・クロック・デバイスのローカル時間)であり、少し遅れてTs1時にスレーブ・クロック・デバイス・ソフトウェアがそれを受信します。ソフトウェアはハードウェア・タイムスタンプを読み取り、Ts1'を取得します。通信遅延がなければ、Ts1'は(Tm1' + Tms)の値と等しくなります。ここで、Tmsはマスター・クロックとスレーブ・クロック間の時間差です。プロトコルの最終目標は、この差を補償することです。

Figure 2
図2. マスター・クロック・デバイスとスレーブ・クロック・デバイス間の通信遅延の測定

Syncメッセージが送信された後、マスター・クロック・デバイスのソフトウェアがタイム・スタンプ・ユニットからSyncメッセージの発信時間Tm1'を読み取り、それをFollowupメッセージに挿入して、Tm2時にその送信を行います。このメッセージは、スレーブ・クロック・デバイスのソフトウェアがTs2時に受信します。この時点で、スレーブ・クロック・デバイスのソフトウェアには、2つの時間情報Ts1'(Sync受信時間)とTm1'(Sync送信時間)があります。マスターとスレーブ間の経路遅延Tmsdは式1によって求めることができます。

Equation 1
     (1)

スレーブ・クロック・デバイスからマスター・クロック・デバイスまでの経路遅延

スレーブ・クロック・デバイスがDelayReqメッセージを送信すると、それに対してマスター・クロック・デバイスがDelayRespメッセージを返します。これらのメッセージにより、スレーブ・クロック・デバイスはスレーブ・クロック・デバイスからマスター・クロック・デバイスまでの通信経路の遅延を計算することができます。

スレーブ・クロック・デバイスのソフトウェアは、Ts3時に現在のローカル・システム時間を読み取り(図3)、それをDelayReqメッセージに挿入して送信します。そのメッセージが送信された後、スレーブ・クロック・デバイスのソフトウェアはタイムスタンプを読み取り、メッセージの発信時間Ts3'を取得し、マスター・クロック・デバイスからの応答を待ちます。

Figure 3
図3. スレープとマスター間の通信遅延の測定

DelayReqメッセージは、少し後のTm3'時にマスター・クロック・デバイスに到着し、Tm3時にマスター・ソフトウェアによって処理されます。次に、ソフトウェアはタイムスタンプを読み取って受信時間Tm3'を取得し、その時間値をDelayRespメッセージに挿入して、Tm4時にスレーブ・クロック・デバイスに送信します。スレーブ・クロック・デバイスのソフトウェアはTs4時にDelayRespメッセージを受信すると、時間情報のTm3'を抽出し、式2によってスレーブからマスターまでの通信遅延Tsmdを計算します。

Equation 2
     (2)

式1と式2には、未知の変数であるマスターとスレーブの時間差Tmsがあります。そのため、TmsdとTsmdを個々に求めることはできません。そこで、多くに当てはまるケースとして、ここでは通信経路が対称的であると仮定します。

Equation 3
     (3)

これは、IEEE 1588を正しく使用するための重要な前提になります。式1と式2を加算することによって、以下の式が得られます。

Equation 4
     (4)

マスター・クロック・デバイスに同期しなければならないのはスレーブ・デバイスであるため、これらの計算はすべてスレーブ側で実行します。スレーブ・クロック・デバイスは、マスター・クロック・デバイスのFollowupメッセージからTm1'、Rx(受信)タイムスタンプからTs1'、Tx(送信)タイムスタンプからTs3'、そしてマスター・クロック・デバイスのDelayRespメッセージからTm3'を取得します。


スレーブ・クロックとマスター・クロック間の時間差の計算方法

通信経路遅延Tdが得られたら、スレーブとマスターの時間差は式5と式6に示すように式1と式2から簡単に計算することができます。

Equation 5

     (5)
Equation 6

     (6)

スレーブ・クロック・デバイスの時間の調整方法

マスター・クロックとの時間差がわかったら、各スレーブ・クロック・デバイスはそれぞれのローカル時間をマスター・クロックに合わせなければなりません。このタスクには2つの側面があります。まず、スレーブ・クロック・デバイスはこの時点でマスター・クロック時間に完全に一致するように時間差を加算して絶対時間を調整します。次に、各スレーブ・クロック・デバイスは、クロック周波数を調整してマスター・クロックの周波数に一致させます。絶対時間だけに頼れないのは、時間差が特定の期間についてのみ適用され、その値が正または負になるためです。その結果、調整処理によってスレーブ・クロック時間が大きく変わったり、逆方向に進んだりすることもあります。このため、調整には2つのステップが必要となります。

  1. 時間差が1秒を超えるなど、特に大きい場合は、絶対時間の調整を適用します。
  2. 時間差が小さい場合は、周波数の変化率をスレーブ・クロックに適用します。

一般に、システムはマスター・クロック時間を基準コマンドとする制御ループとして構築され、スレーブ・クロック時間がマスター・クロック時間をトラッキングする出力になり、その差によって調整可能なクロックを駆動します。特定のトラッキング性能を得るには、IEEE 1588の多くの実装でよく用いられるPID制御を利用できます。図4に、この制御ループを示します。

Figure 4
図4. IEEE 1588制御ループ

P2Pの遅延

改良版のIEEE 1588-2008は、ピア・ツー・ピア(P2P)遅延と呼ばれる経路遅延を測定するメカニズムを規定しています。前述したマスター/スレーブのメカニズムは、これとは異なり、エンド・ツー・エンド(E2E)遅延に関わるものです。IEEE1588-2008対応ネットワークの場合、マスター・クロック・デバイスを直接、または複数の段階(マルチホップ)でスレーブ・クロック・デバイスに接続できます。E2E遅延は、事実上マスター・クロック・デバイスからスレーブ・クロック・デバイスまでの、中間の全ホップを含んだ合計遅延になります。一方、P2P遅延は直接接続された2つのデバイスのみに限定されています。経路上の全遅延は、全ホップのP2P遅延を合計したものになります。経路対称性を維持するためには、P2Pのメカニズムのほうが高精度を提供できます。

前述したように、IEEE 1588-2008はP2P遅延を測定するために3つの追加メッセージPdelayReq、PdelayResp、PdelayRespFollowupを規定しています。これらは、前述のとおりの機能を持っています。詳細については、参考文献3を参照してください。

同期性能に影響する要素

よく考えて設計された IEEE 1588デバイスは、高精度のクロック同期を実現できます。そのためには、性能に直接影響する重要な要素を認識しておくことが大切です。これには、たとえば以下のようなものがあります。

  1. 経路遅延: 前述したように、IEEE 1588の経路遅延測定では通信経路遅延が対称であること、すなわち順方向経路の送信遅延と逆方向の送信遅延が等しいことが前提となっています。また、遅延測定中はそれが変動しないものと考えます。測定中に遅延が変動すると、非対称性と遅延ジッタが発生し、同期精度がただちに影響を受けます。遅延の対称性とジッタはIEEE 1588デバイス外で制御することはできませんが、ハードウェア・タイムスタンプによる測定であれば、デバイス内で経路の対称性とジッタを改善することができます。ハードウェア・タイムスタンプ処理を行えば、割込み遅延、コンテキスト・スイッチ、スレッド・スケジューリングによる、ソフトウェア・タイムスタンプに起因する大きなジッタを除去できます。
  2. クロックのドリフトとジッタ特性: マスター・クロックの周波数と位相はトラッキング制御システムの入力であり、スレーブ・クロックは制御対象となります。マスター・クロックの動作が時間によって変動すると、制御システムに混乱が生じ、定常的または一時的な誤差の原因になります。したがって、ドリフトやジッタが少ないクロックを使用することで同期精度が向上します。
  3. 制御のための法則:スレーブ・クロック・デバイス時間の誤差をスレーブ・クロックの調整でどのように補正するかは、制御する方法に依存します。セトリング時間、オーバーシュート、定常誤差などの制御法則のパラメータは、クロック同期性能に直接影響します。
  4. クロックの分解能: 図1に示すように、ローカル時間の分解能はクロックの周波数によって決まります。時間の最小増分は、クロック信号の1区間となります。IEEE 1588プロトコルは、IEEE 1588-2002では1ns、IEEE 1588-2008では2-16nsの時間分解能で実行されます。216GHzものクロックは(あるいは1GHzのクロックでも)実用的ではありません。ローカル・クロックの量子化によって、ローカル時間の測定/制御の精度に影響することが予想されます。
  5. 同期メッセージを出力する頻度: スレーブ・クロックを更新する頻度は、最終的に同期精度に影響します。時間誤差はスレーブ・クロック周波数誤差全体の累積であるため、期間が長くなると一般に次の同期での時間誤差も大きくなります。
  6. 遅延を測定する頻度: 遅延が隣接サンプル間で大幅に変動しないという予想のもとに一定の間隔で遅延を定期的に測定します。IEEE 1588ネットワークで大きな遅延変動がある場合は、遅延を測定する頻度を上げることでクロック同期性能が改善されます。

どれがマスター・クロックか?

これまでマスター・クロック・デバイスとスレーブ・クロック・デバイス間の時間差を正確に求める方法を説明してきましたが、これに関連して、数百個もあるかもしれない相互接続されたデバイスの中からマスター・クロックとして機能するデバイスをどのように識別するかということが問題になります。

IEEE 1588は、マスター・クロック・デバイスを選択するためにベスト・マスター・クロック(BMC)アルゴリズムという方法を定義しています。この方法では、IEEE 1588ネットワークのすべてのデバイスがそれぞれのローカル・クロックの特性、品質、安定性、ユニークな識別子、優先度を記述したデータセットを保持しており、デバイスがIEEE 1588ネットワークに入るときに、そのデバイスのクロックのデータセットをブロードキャストする一方、ほかのデバイスからはそれぞれが所有しているデータセットを受信します。各デバイスは、ネットワークに加入している全デバイスのデータセットを使用し、同じBMCアルゴリズムを実行してマスター・クロックを決め、各デバイスの今後のステータス(マスター・クロックかスレーブ・クロックか)を決定します。各デバイスが同じデータで同じアルゴリズムを実行するため、同じ結論が得られ、デバイス間で調整する必要はありません。BMCアルゴリズムの詳細については、参考文献の2と3を参照してください。

ADSP-BF518プロセッサのIEEE 1588対応機能

アナログ・デバイセズのBlackfin DSPファミリーに最近加わったADSP-BF518プロセッサは、先行するBlackfinプロセッサADSP-BF537と同様、Ethernetメディア・アクセス・コントローラ(EMAC)モジュールを内蔵しています。IEEE 1588規格にあるEMAC機能をサポートする能力は、TSYNCモジュールのほか、Ethernetベースの広範なIEEE 1588アプリケーションに対応する機能を装備することによって拡張されています。図5は、TSYNCモジュールのブロック図です。その他の情報については、『ADSP-BF51x Blackn Processor Hardware Reference』を参照してください5

Figure 5
図5. ADSP-BF518プロセッサのTSYNCモジュールのブロック図

パケット検出

ADSP-BF518プロセッサは、受信パケットと送信パケットを含むすべてのIEEE 1588イベント・メッセージのハードウェア・タイムスタンプを検出し、提供することができます。IEEE 1588システムの精度は、イベント・メッセージ・タイムスタンプの正確さとタイムスタンプを取得する場所という2つの要素に大きく依存します。これらの要素によって経路遅延の対称性と不変性という条件が大きく影響するためです。ADSP-BF518のTSYNCモジュールは、MACコントローラとEthernetの物理インターフェース・トランシーバ(PHY)間のハードウェア・インターフェース、すなわちメディア・インデペンデント・インターフェース(MII)を持続的に監視して、イベント・メッセージ検出時にハードウェア・タイムスタンプを生成します。この機能によって、ADSP-BF518では高い同期精度が得られます。

イベント・メッセージの検出はプログラム可能であり、基本的にはIEEE 1588-2002 (デフォルト)またはIEEE 1588-2008に対応できるように設定できます。また、このプログラマビリティによって、今後発表される新版のIEEE 1588や、タイムスタンプを必要とする、その他の一般的なプロトコルに対応できます。たとえば、プロセッサが送信または受信するすべてのEthernetパケットに対しタイムスタンプを設定することができます。

柔軟なクロック源

ローカル・クロックの特性は、IEEE 1588システムの性能にとって重要です。さまざまなアプリケーションの条件に対応できるように、ADSP-BF518プロセッサではローカル・クロック源として3種類、すなわちシステム・クロック、外部クロック、Ethernetクロックから選択できます。アプリケーションが固有のクロック条件を備えている場合は、外部クロックを選択することによって、クロック源をカスタマイズすることができます。マスター・クロック・デバイスとスレーブ・クロック・デバイスが隣り合わせに接続されている場合であれば、Ethernetクロックで高い精度が実現できます。Ethernetラインからクロックを取得し、2つのデバイスをこの同じクロックで動作させることができるためです。一般的なアプリケーションでは、プロセッサのシステム・クロックをクロック源に使用できます。

また、ここで選択されたクロックは、TSYNCモジュールによって駆動され、プロセッサの特定のピンにクロックを出力することができます。このクロックは、システムのほかの部分でローカル時間情報に使用できます。

PPS出力

PPS(パルス毎秒)信号は、時間情報を物理的に示します。1秒の遷移時間当たり1パルスの1Hz(公称値)信号になります。この信号を使って、ローカル・デバイスを制御したり、ネットワーク障害時に補助のタイム・チャンネルを提供することができます。2つのデバイスのPPS信号の位相差は、時間オフセットの物理的な測定値です。

ADSP-BF518プロセッサは、柔軟なPPS出力を提供します。プログラマブルな開始時間(PPS_ST)と期間(PPS_P)を使用して、(PPS_ST+n×PPS_P)時に生じるパルス信号を生成します(ここで、n = 1, 2, 3…です)。基本的には、PPS_Pを1秒に、またPPS_STを任意の未来の時間(数秒)に設定するだけで、PPS信号を作成できます。このPPS出力は、完全にプログラマブルな周波数と開始時間で周期的な信号を生成するためのリファレンスとして使用できます。

補助スナップショット

アプリケーションによっては、フラグ信号のトグルで示される特定のイベントをタイムスタンプする必要があります。ADSP-BF518のTSYNCモジュールは、そのために補助スナップショット機能を用意しており、専用ピンを使って外部フラグを受信します。フラグをトグルすると、モジュールはタイムスタンプ・レジスタ内の現在のローカル時間を取得し、ソフトウェアからアクセスできるようにします。

アラーム

ある特定の時間にアプリケーションがタスクを実行しなければならない場合は、TSYNCモジュールのアラーム機能を利用します。この機能によって絶対ローカル時間を設定し、所定の時間になるとプロセッサ割込みをトリガすることができます。その後、ソフトウェアが割込みを行い、タスクを実行します。

調整可能なクロック

TSYNCモジュールの調整可能なクロックは、加数ベースのクロックです。図6に示すように、このモジュールは固定の入力クロック信号を取得して、入力のパルス抜取り版を出力します。入力クロックごとに加数の値が加算器に加えられ、加算器がオーバーフローするとキャリー・ビットがローカル・タイム・カウンタを駆動します。これによって、カウントしたパルスの数でローカル時間が得られます。加数によって加算器のオーバーフローの回数が決まり、ローカル時間カウンタのインクリメント回数が決まるため、ローカル・クロックの周波数は加数を変更することによって調整することができます。入力クロックの周波数をFin、加数の値をAとすると、ローカル・クロック周波数は次式で表すことができます。


Equation 7

     (7)
Figure 6
図6. 加数ベースの調整可能クロック

ADSP-BF518プロセッサによるIEEE 1588の実装

IEEE 1588-2008準拠のシステムを、図7に示すようにADSP-BF518プロセッサをベースとして作製しました。



Figure 7
図7. ADSP-BF518を使用したIEEE 1588の実装

プロセッサのTSYNCモジュールが受信または送信したIEEE 1588メッセージを検出し、ハードウェアを使ってイベント・メッセージにタイムスタンプします。IXXAT(IXXAT Automation GmbH)社のIEEE 1588スタック・ソフトウェアが、この規格に必要なメッセージ・交換プロトコルを実行します。このソフトウェアはTSYNCドライバを使ってTSYNCクロックの読出し、書込み、調整を行い、MACコントローラ・ドライバを使ってEthernet MAC層(オープン・システム・インターコネクション・モデルのレイヤ2)のメッセージの送受信を行います。また、P2P遅延を測定するフィルタ処理と制御則も実行します。Ethernet PHYには、低ジッタ遅延特性を考慮してNational Semiconductor社のDP83848を選択しました。また、単純化のために、プロセッサのシステム・クロック(80MHz)をTSYNCFモジュールのクロック源としました。



Figure 8
図8. ADSP-BF518を使用したIEEE 1588システムにおけるスレーブ・クロック誤差のヒストグラム

図8は、デバイスのクロック同期性能を示すために、2つの同一のADSP-BF518 IEEE 1588システム間の測定誤差をヒストグラムで表したものです。約1700秒間に6938の測定を行いましたが、その平均誤差は0.015nsで、標準偏差は12.96nsです。このテストで使用した同期メッセージの間隔は0.25秒でした。

結論

IEEE 1588規格は、分散クロックを同期化するための高精度、低価格の方法です。IEEE 1588にはハードウェアの対応が絶対必要というわけではありませんが、ハードウェア支援のメッセージ検出やタイムスタンプ処理は同期精度を上げるために非常に重要です。ADSP-BF518プロセッサは、IEEE 1588-2002とIEEE 1588-2008の両方に対応するハードウェア・サポート(各種アプリケーションに対応する機能を含む)を提供しています。ADSP-BF518プロセッサとIXXAT IEEE 1588-2008プロトコル・ソフトウェアを使って、IEEE 1588技術を実装することで、高精度のクロック同期を実証しました。


参考資料

1ADSP-BF518データシート:http://wcm.corpnt.analog.com/jp/products/processors-dsp/blackfin/adsp-bf518.html

2IEEE Std. 1588-2002. IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems. http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=1048550

3IEEE Std. 1588-2008. IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems. http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=4579760

4ADSP-BF537データシート:http://wcm.corpnt.analog.com/jp/products/processors-dsp/blackfin/adsp-bf537.html

5『ADSP-BF51x Blackfin Processor Hardware Reference Preliminary, Revision 0.1 (Preliminary)』2009年1月、アナログ・デバイセズ社、http://www.analog.com/media/en/dsp-documentation/processor-manuals/ADSP-BF51x_hwr_rev1.2.pdf

6AN-1507『DP83848 and DP83849 100Mb Data Latency』2006年、National Semiconductor社、http://www.ti.com/lit/an/snla084b/snla084b.pdf

著者

Jiang Wu

Dr. Jiang Wu

Jiang Wu博士は2006年にアナログ・デバイセズに入社し、現在はリアルタイム組込みシステムとデジタル処理に携わっています。2004年にロードアイランド大学で電子工学の博士号を取得する以前、1993年に北京理工大学でオートメーション工学の学士号、1996年に修士号を取得しています。卒業研究は、バイオメディカル・システムのモデル化と計測に関するものでした。アナログ・デバイセズに入社する前は、Vivoda Communications社でシステム・エンジニアとして活躍していました。

Robert Peloquin

Robert Peloquin

Robert Peloquinは、2000年にアナログ・デバイセズに入社しました。シニア・アプリケーション・エンジニアとして、デジタル・シグナル・プロセッサ・ソリューションのさまざまな面で活躍しています。最近は、Ethernet AVBやIEEE 1588などの分野に取り組んでいます。当社に入社する前は、米国の海軍水中戦センター(Naval Undersea Warfare Center)で無人水中機技術の応用研究に従事していました。シラキューズ大学でBSEE(電気工学理学士)、マサチューセッツ大学ダートマス校でMSEE(電気電子工学修士)の学位を取得しています。