私たちの周りでは、様々な機器がネットワーク(LAN)で繋がるようになってきました。LANの代名詞とも言えるイーサネットは、オフィスや工場やインフラ設備、そして家庭内にも広がっています。イーサネットは、ネットワーク接続機器間で、主にリアルタイム性の高くない情報(データ)交換に用いられます。各機器が同期して(高い精度の時計を持って)動作するようになれば、新たなアプリケーションの世界が広がることでしょう。IEEE1588規格は、ネットワークに接続された機器間でナノ秒オーダーの同期精度が得られる、時刻同期プロトコル(PTP)を規定します。

本サイトでは、IEEE1588 Version 2に係る技術の解説を行います。

LAN : Local Area NetworkIEEE : Institute of Electrical and Electronic EngineersPTP : Precision Time Protocol

IEEE1588 Version 2 技術解説

IEEE1588について

“時刻合わせ”と聞いて、電波時計を思い出す方がいらっしゃるかもしれません。昔のパソコンでは、少々時計が狂っていてもごく普通のことでした。今では、家庭のビデオレコーダでも、手動で時刻合わせをすることはまずありません。これは、時刻合わせの自動化機構が普及したおかげです。

今、インターネットに接続された機器の時刻合わせを行うために広く用いられているのは、NTP(Network Time Protocol)やSNTP(Simple Network Time Protocol)です。これらは、人々の生活に必要十分な精度で、時刻を与えてくれます。

近年、産業分野を中心に、より高い時刻合わせの精度を求められるようになって来ました。ネットワーク経由で接続された機器毎の時刻精度を高める方法に注目が集まっています。その方法のひとつが、IEEE1588規格です。IEEE1588は、2002年にバージョン1が、2008年にバージョン2(IEEE1588v2)が策定されました。IEEE1588は、FA(Factory Automation)、計測機器、電力システム、通信システム、映像・音声システム等の同期通信を必要とする分野に適用可能な規格で、高い時刻精度を実現します。

IEEE1588規格の説明を行うと、「それをイーサネットワークに適用した場合どれ位の時刻精度を期待出来るの?」という質問を受けることがあります。IEEE1588は、ネットワーク内にルータを含まない単一セグメントに限定すれば、マイクロ秒オーダーの時刻精度を容易に実現できます。これは、NTPと比較して高いものです。また、ネットワーク構成に依存しますが、ナノ秒オーダーの時刻精度を得ることも可能です。

本サイトは、IEEE1588規格に興味をお持ちの技術者や、IEEE1588を用いたシステム・機器の導入や開発を検討される方々を対象にします。IEEE1588の規格書は、難解な部類に属すると言えるかもしれません。本サイトが、IEEE1588規格を理解される上で、その一助となれば幸いです。

1.同期通信の必要性

‘90年代前半までLAN(Local Area Network)やWAN(Wide Area Network)等に区別されていたネットワークシステムは、その後、LANを代表するイーサネットの通信技術によって、世界中と接続できるインターネット環境へと拡大しました。

システムを複数プロセッサで構築する分散処理が普及する中、イーサネットは産業システムの配線に適用され始めます。現在では、多くの産業分野の組込みシステムで、イーサネットが使用されるようになっています。

イーサネットが組込みシステムで採用される要因は、通信速度の向上に限りません。使用部品の価格や入手性も一因です。以下に、その主な要因を列記します。

① 組込みシステムで制御処理の分散化が進んでいる。

② 制御処理の分散化・高速化で装置間の通信帯域が拡大している。

③ イーサネットに対応した通信・CPUデバイスが安価でかつ入手し易くなっている。

④ インターネット環境の拡充等により通信アプリケーションが充実してきている。

⑤ 画像・音声等のデジタル技術の向上で配線のデジタル化が進んでいる。

⑥ GPIBバス等のレガシーな通信をサポートするデバイスが減少している。

⑦ 今後、10年程度ではイーサネット通信が衰退する可能性が低い。


イーサネットは、インターネット環境から装置間の信号配線に至るまで、市場からの多様な要求に応えながら、様々な分野の通信市場を飲み込んでいます。イーサネットは、非同期通信で発展しましたが、一方で、組込みシステムへのイーサネット適用では、同期通信が課題となります。制御処理の分散化で、同期通信が必要となっているのです。システムの全てを1つのCPUで制御できれば、原則、通信や信号配線に同期は不要です。しかし、組込みシステムでは1つの高価なCPUよりも、機能毎の要求を満たす安価なCPUを求める傾向にあります。また、CPUに必要なソフトウェアの開発は、処理を分散化することで、その生産性が向上します。今、組込みシステムの市場は、処理の分散化とシステムを構成する装置のマルチベンダー化に向かっています。ここに、同期通信の強いニーズがあります。その同期通信には、国際的な標準化が必要となっています。


2.時刻とは

我々は生活の中で、電車・バスの出発時刻や会社・学校の終業時刻など、いつも時刻と関わっています。概念としての時刻は、過去から未来へと一方向に流れる時の一点を示すものです。一方、時間は、ある二つの時刻間の長さを示すものです。

時刻を具体的に表現するには、その起源(起点)を定めなければなりません。西暦はキリスト生誕の年から、元号の平成は平成天皇が即位した年からの経過年として使用しています。毎日繰り返される時刻は、日付変更時刻からの経過時間として使用しています。このように、我々は時刻を、図1に示すように、ある起源 (Epoch) からの経過で表現します。つまり、日常生活での「今、何時?」という質問には、「今日が始まってから、何時間経過した?」とか「今日の正午から、何時間経過した?」という意味が含まれていることになります。

IEEE1588規格が規定するPTP(Precision Time Protocol)で扱う時刻も、起源からの経過時間です。規格では起源をEpochと表現します。Epochをいつにするのかは、システム毎に自由に決められます。PTPを搭載した装置の時刻は、Epochによって具体的に決まることになります。

図 1 時刻の表現

20世紀後半になって、我々はEpochを1970年1月1日0時0分0秒とした国際標準時刻(TAI: International Atomic Time)を使用できるようになりました。PTPのEpochを、TAIの起源時刻とすることで、国際標準時刻を扱うことができます。PTPが扱う時間はナノ秒単位です。1ナノ秒は光が約30cm進む時間です。PTPは、さらにサブナノ秒(ナノ秒の端数)も扱うことができます。

前述のように、時間とは二つの時刻間の長さですが、長さを具体的に計測するには定規となるものが必要です。サブナノ秒は、物理的に相対性理論の重力場の影響、つまり、地球上でも標高によって変化する時間の変化が検知できる領域です。そのため、時間の計測では、計測器(定規)が重要となります。

PTPでは、GrandMaster (GM)から一定周期で配信される時刻に、関連装置が自装置の時刻合わせ(時刻同期)を行います。

3.時刻同期のしくみ

組込みシステムで一般的に使用される水晶発振子または水晶発振器の精度では、1秒間に±10-4~-6秒程度の誤差が生じます。各装置が持つ水晶発振子の精度が、この水晶発振子のクロックを用いる時刻カウンタの更新速度(クロック・レート)の精度となります。

2つの装置(別々の水晶発振子を実装)間で、クロック・レートに100ppmの差がある場合を考えます。この場合、図2のようにEpochからの経過時間が1秒で100マイクロ秒、2秒で200マイクロ秒の偏差が時刻カウンタに生じます。ちなみに、1日では、8.64秒の時刻偏差になります。

図 2クロック・レートによる時刻偏差

2つの装置間で時刻カウンタのクロック・レート差を常に100ppm以内にしたい場合、少なくとも1秒周期で時刻を補正しなければなりません。一方の装置の経過時間(時刻カウンタ値)に、もう一方の装置の時刻カウンタ値を合わせる時刻の補正が必要です。この補正を時刻同期と呼びます。また、基準となる側の装置をマスタ、補正する側の装置をスレーブと呼びます。1秒周期で補正する装置間の時刻偏差は、図3のようになります。

図 3 時刻同期

時刻同期の課題は、補正時にスレーブ装置の時間が不連続になることです。スレーブ装置で時刻カウンタから1KHz信号を生成してアプリケーションに供給している場合、図4に示すように、補正時の時間が短く(または、長く)なります。それにより、スレーブ装置の1KHz信号には、100マイクロ秒のジッタが発生します。大きなジッタは、アプリケーションにとって好ましいものではありません。このジッタは、補正の間隔を短くすることで小さくできますが、その場合、補正によるCPU等の処理負荷が増えるというデメリットがあります。

図 4 時刻補正によるジッタ

ジッタは、クロック・レートを調整する機能を実装して小さくすることが可能です。この場合、補正の間隔を短くする必要がなくなり、補正の処理負荷は増えません。仮に、クロック・レート調整で偏差を±0.01ppmに抑えることができれば、1秒間の時刻偏差は10ナノ秒、つまり、時刻同期で発生するジッタは10ナノ秒となります。

PTPの時刻同期では、時刻補正とクロック・レート補正を組み合わせることで、処理負荷の増大を抑えながら、小さなジッタでタイミング信号を供給するシステムを実現できます。

4.時刻を配信する

マスタ装置は、自装置の時刻をスレーブ装置へ一定周期で、送信します。これを時刻配信と呼びます。時刻配信には、One-step clockTwo-step clockの2つの方式があります。

まず、One-step clock方式を、図5で説明します。

図 5 One-step clockの時刻配信

One-step clock方式は、送信するSyncメッセージにその送信時刻(T1)を設定し、Syncメッセージ内にOne-step clockであることを明示して送信します。スレーブ装置はSyncメッセージを受信すると、Syncメッセージの受信時刻(T2)を採取します。T1はマスタ装置の時刻で、T2はスレーブ装置の時刻です。Syncメッセージは伝送路で遅延時間 (D1) が発生します。

スレーブ装置とマスタ装置の時刻偏差 (⊿t) は式.1で表されます。式.1から、⊿tは式.2で求まります。この計算は、スレーブ装置が行います。

T2 - T1 = ⊿t + D1 --- 式.1

⊿t = (T2 - T1) - D1 --- 式.2

時刻同期の精度は、送受信時刻(T1T2)の採取精度と、伝送遅延時間(D1)の計測精度に依存します。

つぎに、Two-step clock方式を、図6で説明します。

図 6 One-step clock配信

Two-step clock方式は、Syncメッセージを送信した時刻を、Follow_Upメッセージで別に送信します。Syncメッセージ内にTwo-step clockであることを明示して送信します。他は、One-step clock方式と同じです。⊿tはOne-step clock方式と同様の式で求まります。

送信時刻の設定や送受信時刻の採取をハードウェア機能として実装するができます。一般的に、ソフトウェアのみで時刻の設定・採取を行う場合と比べて、同期精度の向上が期待できます。

5.伝送遅延について

図7に、中継装置1台を経由して接続された送信装置と受信装置を示します。伝送遅延は、ケーブルによる伝送遅延と中継装置内の処理遅延の合計になります。

図7 伝送遅延

ケーブル伝送遅延は使用するケーブルの長さで遅延時間が決まります。温度や誘電率等の変動要因はありますが、同じケーブルをパケットが通っていれば、その影響は軽微と考えてよいでしょう。同期精度を左右する大きな要因は、中継処理遅延になります。

中継処理遅延は、中継装置内の処理時間送信待ち時間で決まります。中継装置の処理時間は、製品毎に大きく異なると考えられます。IEEE1588機能をサポートしていない一般的なスイッチでは、大きいもので±10μ秒程度の処理時間の変動が発生することがあります。ルータではそれ以上のばらつきと考えてよいでしょう。中継装置の送信待ち時間について、IEEE1588ではQoSを用いてPTPパケットを最優先度とするように勧告しています。これは送信ポートで受ける複数パケット送信待ちの影響を小さくするためです。

図8に、中継装置内の送信待ちの例を示し、中継遅延時間の規定を行います。

図8 送信待ちと中継遅延時間

これは、RX-1ポートで通常パケット(Packet-1)を、RX-2ポートでPTPパケット(PTP Packet)を受信して、TXポートにそれぞれのパケットを送信する例です。Packet-1を受信中に、遅れて、PTP Packetを受信します。Packet-1は、所定の中継処理時間(中継性能)を経過後に、TXポートから送信されます。PTP Packetは、所定の中継処理時間を経過してもPacket-1の送信が終わるまで、送信待ちとなります。PTP Packetの中継遅延時間は、RX-2ポートで当該パケットの受信を開始した時刻からTXポートで当該パケットの送信を開始した時刻までとなります。

6.伝送遅延時間を測る

伝送遅延時間は、ネットワークの経路毎に様々な値となります。IEEE1588では、伝送遅延時間を計測する/しないの選択が可能です。

マスタ装置から周期的にSyncメッセージが配信されるので、このSyncメッセージ(Two-step clockではSyncメッセージとFollow_Upメッセージ)を受信するだけで、スレーブ装置は時刻同期ができます。この伝送遅延時間の計測をしない同期方式を、Syntonizationと呼びます。最近では、One-wayと記述するドキュメントもあります。

伝送遅延時間の計測方法には、Delay Request Response Mechanism とPeer Delay Mechanismの2つの方式があります。Delay Request Response Mechanismは、End-to-End Mechanismとも云いE2Eと略します。Peer Delay Mechanismは、Peer-to-Peer Mechanismとも云いP2Pと略します。

まず、E2Eの伝送遅延時間計測を、図9で説明します。

図9 Delay Request Response Mechanism

E2E方式は、スレーブ装置側で、スレーブ装置とマスタ装置間の伝送遅延時間を計測します。スレーブ装置は、一定周期でDelay_Reqメッセージをマスタ装置へ送信します。マスタ装置は、Delay_Reqメッセージの受信時刻を、Delay_Respメッセージでスレーブ装置へ応答送信します。Delay_Reqメッセージ送信時刻(T3)と受信時刻(T4)の差分は、式.1(4章)で示すマスタ装置とスレーブ装置の時刻偏差(⊿t)と、Delay_Reqメッセージの伝送遅延時間(D2)を用いて、式.3で表されます。

T4 - T3 = -⊿t + D2 --- 式.3

双方向の伝送遅延時間の平均値:(D1 + D2) / 2は、式.1(4章参照)と式.3から式.4で計算できます。

(T2 – T1) + (T3 – T4) = (⊿t +D1) + (-⊿t +D2)

{(T2 – T1) + (T3 – T4)} / 2 = (D1 + D2) /2 --- 式.4

双方向の伝送遅延がほぼ等しい値の伝送路では、伝送遅延時間の平均値はD1に近づき、式.5で表されます。この式.5を式.2(4章参照)に代入すると、式.6が得られます。

D1 ≒ (D1 + D2) / 2 --- 式.5

⊿t ≒ (T2 - T1) - (D1 + D2) / 2 --- 式.6

PTPでは、⊿t(<Time on the slave clock> - <Time on the master clock>)を”offsetFromMaster”、(D1 + D2) / 2を”meanPathDelay”と定義しています。

この定義から、式.6は式.7で表せます。

offsetFromMaster = (T2 - T1) - meanPathDelay --- 式.7

つぎに、P2Pの伝送遅延時間計測を、図10で説明します。

図10 Peer Delay Mechanism

P2P方式は、ケーブルで物理的に接続した両端の装置間の伝送遅延時間を計測します。すべてのPTP通信ポートは、ケーブルで直接接続する装置との間で伝送遅延時間を計測するために、RequesterおよびResponderを必要に応じて実装します。

Requesterは、一定周期でPdelay_Reqメッセージを送信して、送信時刻 (t1)を取得します。ResponderはPdelay_Reqメッセージを受信すると、受信時刻 (t2)を取得して、Pdelay_Respメッセージを送信します。このとき、送信時刻を(t3)を取得して、自装置の応答処理時間 (d2 = t3t2) をPdelay_Resp_Follow_Upメッセージで送信します。

Requesterは、Pdelay_Respメッセージを受信すると受信時刻 (t4)を採取し、Pdelay_ Req_Follow_Upメッセージ受信でd2 (t3t2)を取得します。

隣接した装置間の伝送遅延時間を ”peerMeanPathDelay”と定義しています。Requesterが計測した応答時間 (d1 = t4t1)から、Responderの処理時間 (d2 = t3t2)を引いた値が、往復の伝送遅延時間となります。このためpeerMeanPathDelayは、式.8で表されます。


peerMeanPathDelay = {(t4 – t1) – (t3 – t2)} / 2 --- 式.8

ここで述べたP2Pシーケンスは一例です。P2Pには、いくつかのオプションがありますので、別の機会に説明したいと思います。

7.中継機について

多くのネットワークでは、マスタ装置とスレーブ装置の間にスイッチ等のネットワーク機器(中継機)が入ります。その中継機を含めて、E2EとP2Pを比較すると、それぞれの特徴が見えてきます。

IEEE1588の大きな特徴は、中継機に対して、PTPパケット中継時の精度劣化を抑えるための機能を規定していることです。中継機には、Boundary Clock(BC)とTransparent Clock(TC)が規定されています。

図11に示すように、TCは、PTPメッセージの送受信ポートを複数持ちます。その複数の通信ポートは、同一のクロックを使用します。TCは、HUBの機能を持ち、PTPメッセージを含むパケットを複数の通信ポート間で中継します。TCは、自装置内のPTPパケット中継処理に要する時間を計測して、PTPメッセージの配信先に通知します。TCは、伝送遅延時間の計測方式別に、E2E-TCとP2P-TCを規定しています。

図 11 Transparent Clock(TC)


まず、E2E-TCについて説明します。E2E-TCはTwo-step clockのSyncメッセージを、図 12に示すように中継します。

図 12 Syncメッセージ中継


マスタ装置はTwo-step clockのSyncメッセージを送信します。続いてcorrectionField (CF) = 0 に設定したFollow_Upメッセージを送信します。E2E-TCは、Syncメッセージの受信時刻dt1を採取して、スレーブ装置へSyncメッセージを送信します。このとき、送信時刻dt2を採取すると、E2E-TCの中継処理時間が(dt2 – dt1)で計算できます。中継先が複数ポートある場合は、すべてのポートで中継処理時間を計算します。Syncメッセージに続くFollow_Upメッセージの中継処理では、Follow_UpメッセージのCFへ中継処理時間(dt2 – dt1)を加算します。これで、スレーブ装置にSyncメッセージの中継遅延時間が伝わります。

図13に、Delay_Reqメッセージの中継を示します。Syncメッセージと同様に受信時刻 (dt3)と送信時刻 (td4)の差分で自装置の中継遅延時刻が求まります。Syncメッセージと異なるのは、中継遅延時間を計測したDelay_Reqメッセージの応答であるDelay_RespメッセージのCFへ、中継遅延時間を加算することです。

図 13 Delay_Reqメッセージ中継 (E2E-TC)


スレーブ装置は、meanPathDelay(6章参照)を式.9または式.10から求めることができます。SyncメッセージがOne-step clockの場合は式.9で、Two-step clockの場合は式.10です。Sync.CFはSyncメッセージのCorrectionField値で、FollowUp.CFおよびDelayResp.CFは、それぞれFollow_Upメッセージ、Delay_RespメッセージのCorrectionField値です。

meanPathDelay = {(T2 – T3) + (T4 – T1) – Sync.CF – DelayResp.CF} / 2 --- 式.9

meanPathDelay = {(T2– T3) + (T4 – T1) – Sync.CF – FollowUp.CF– DelayResp.CF } / 2 --- 式.10

offsetFromMaster(6章参照)は、SyncメッセージがOne-step clockの場合は式.11で、Two-step clockの場合は式.12から求めることができます。

offsetFromMaster = (T2-T1)-meanPathDelay-Sync.CF --- 式.11

offsetFromMaster = (T2-T1)-meanPathDelay-Sync.CF-FollwUp.CF --- 式.12

このように、TCの中継処理時間をPTPメッセージのCF (correctionField) に加算する方法で、マスタ装置とスレーブ装置の伝送路が複数段のTCで中継されても、各TCの中継処理時間の合計を、スレーブ装置が知ることができます。E2EのmeanPathDelayは、マスタ装置とスレーブ装置のケーブルによる遅延時間となります。各装置の送受信時刻、つまりタイムスタンプの精度が高ければ、スレーブ装置は高い精度でmeanPathDelayを得ることができます。

ここで、E2Eネットワークの弱点についてお話しします。一番の弱点は、スレーブ装置数の増加に伴い、ネットワーク上でDelay_Reqメッセージの負荷が増大することです。この時、マスタ装置は応答処理負荷が増えます。マルチキャスト・アドレスで通信する場合は、スレーブ装置にも不要な受信処理が発生します。また、マスタ装置とスレーブ装置の両端で計測するので、マスタ装置の交代が起きると、スレーブ装置のmeanPathDelayが新しくなります。同時に、時刻の補正処理によるジッタ発生の可能性が高まります。

つぎに、P2P-TCについて説明します。P2P はE2Eの弱点を補う計測法です。Two-step clockでのP2P-TCの機能を、図14に示します。

図14 Syncメッセージ中継 (P2P)


P2P-TCは、すべての通信ポートでRequester/Responderを一定周期で動かすことで、隣接する装置間のpeerMeanPathDelayを常に求めています。P2P-TCは、マスタ装置からTwo-step clockかつCF=0のSyncメッセージを受信すると、E2E-TCと同様にSyncメッセージを中継して、中継処理時間をFollow_UpメッセージのCFに加算します。E2E-TCと異なるのは、Syncメッセージを受信したポートのpeerMeanPathDelay(pt1)をSyncメッセージ内のCFに加算することです。

スレーブ装置は、SyncメッセージがOne-step clockの場合は式.13から、Two-step clockの場合は式.14からoffsetFromMasterを求めることができます。

offsetFromMaster = (T2-T1)-peerMeanPathDelay-Sync.CF --- 式.13

offsetFromMaster = (T2-T1)-peerMeanPathDelay-Sync.CF-FollwUp.CF --- 式.14

P2Pでは、E2Eの弱点であるスレーブ装置数の増加によるネットワーク負荷の増大は発生しません。また、マスタ装置交代時に、スレーブ装置のpeerMeanPathDelayに影響がでることもありません。加えて、P2PはE2Eに比して、時刻配信と伝送遅延計測のメッセージが独立しているので、同期確立までの時間が短いという長所があります。しかしながら、P2Pは、マスタとスレーブ装置間の伝送路上に、P2P-TC機能のない中継機を許容しないという弱点があります。


8. タイムスタンプ

高精度の時刻同期には、パケット送受信時刻であるタイムスタンプの採取に、厳密な規定が必要です。IEEE1588の規定を、図15に示します。これは、イーサネットの例です。パケットのMAC Header先頭が装置と回線の境界を超えるときに、その時刻をタイムスタンプとして採取します。タイムスタンプをPHY(物理層)LSI内で採取するのと、PHY-MAC間インタフェースやMAC内で採取するのでは、一般的にタイムスタンプの精度が異なります。MAC Headerの境界超えからタイムスタンプを採取するまでには、幾ばくかの時間が必要です。この時間が明確でかつ一定であれば、タイムスタンプ値を補正することで、高い精度の送受信時刻を得ることができます。

図 15 タイムスタンプ採取


それでは、送受信時刻と採取可能なタイムスタンプの関係について説明します。

まず、送信タイムスタンプについてです。図16を参照してください。PTPメッセージの送信時刻は、パケット送信処理中に送信タイムスタンプを採取して得ることになります。通常、この送信タイムスタンプを採取する時刻と、送信パケットが回線に送出される時刻は異なります。この時刻の差分をJtとします。実際の送信時刻は、採取したタイムスタンプにJtを加算した時刻になります。

図 16 送信タイムスタンプ


つぎに、受信タイムスタンプについてです。図17を参照してください。PTPメッセージの受信時刻は、パケット受信処理中に受信タイムスタンプを採取して得ることになります。送信と同様に、受信パケットを回線から受信する時刻と、受信タイムスタンプを採取する時刻は異なります。この時刻の差分をJrとします。実際の受信時刻は、採取したタイムスタンプからJrを減算した時刻になります。

図 17 受信タイムスタンプ


それでは、Syncメッセージで、このJtおよびJrをどのように処理するのか、その方法について述べます。

マスタ装置の送信処理では、予め計測したJtを、採取したタイムスタンプに加算して、One-step clockのSyncメッセージ、またはTwo-step clockのFollow_UpメッセージのT1に設定します。One-step clock処理には2つの方法があります。ひとつは、回線にSyncメッセージのパケットを送信し始めてからタイムスタンプを採取し、それを当該Syncメッセージの送信時刻設定フィールドへ設定する方法です。論理設計において厳しい時間制約を受ける方法です。もう一つは、JtをSyncメッセージのCF(CorrectionField)へ設定して、スレーブ装置に計算をさせる方法です。7章の式.9~式.14でSync.CFを減算しています。この式の送信時刻T1はマイナス属性なので、Sync.CFに設定したDtが加算されることになります。マスタ装置は、Delay_Reqメッセージの受信時刻T4についても、自装置で採取した受信タイムスタンプにJrを減算してDelay_Respメッセージに設定する方法と、Delay_RespメッセージのCFへJrを設定して送信する方法を選ぶことができます。

スレーブ装置の送信処理では、自装置のJtおよびJrを計測して、送受信タイムスタンプに加算または減算を行います。

中継機においても、自装置のJtおよびJrを計測して、中継処理時間に反映させます。もし、中継機がこの処理を怠ると、スレーブ装置の時刻は固定的にずれてしまいます。オシロスコープで、マスタ装置とスレーブ装置間の時刻偏差を波形観測すると、センターずれ(マスタとスレーブの波形立上りの中心点がずれる)を起こすことになります。

タイムスタンプの精度に関してもう少し考えます。PHY-MACインタフェースが25MHzの周波数で動作して、MACモジュール内でタイムスタンプを採取する構成を考えます。この場合、回路構造に依存しますが、パケットの送受信で40ナノ秒の揺らぎが発生するケースがあります。この揺らぎが発生すると、タイムスタンプ精度を±40ナノ秒以下にすることができなくなってしまいます。同様に、125MHzであればタイムスタンプ精度は±8ナノ秒以下にすることはできません。


9. 中継機について(2)

前章で、時刻配信方法にOne-step-ClockとTwo-step clockがあることを説明しました。One-step clockで精度の高い時刻配信を実現するには、Syncメッセージを送信中に、当該パケットの送信時刻を送信中のパケット内に設定する機能が必要です。この機能は、ハードウェア論理で実装することになります。マスタ装置は、自装置のハードウェア機能の有無で、時刻配信方法をOne-step-ClockとTwo-step clockのどちらかを選択できます。一方、スレーブ装置は受信したSyncメッセージに明示された情報で処理します。どちらの配信方法にも対応できなくてはなりません。ちなみに、One-step-Clockのスレーブ処理では、上述のハードウェア論理を必須としません。

中継機のSyncメッセージ中継処理は、7章の図12を参照してください。そこでは、E2E-TCとして説明していますが、P2P-TCでもSyncメッセージの中継処理は同じです。

中継機は、One-step clockのSyncメッセージをそのまま中継する場合、Syncメッセージ送信処理で、当該メッセージの送信時刻を採取後に、中継時間を計算して当該メッセージのCFへ加算する機能を実装しなければなりません。Syncメッセージで送信時刻を設定するフィールドはメッセージの最後部になっています。しかしCFはメッセージのヘッダ部にあるので、この処理の時間制約はさらに厳しいものになります。このために、IEEE1588では図18に示す機能を規定しています。

図 18 One-step clockの中継


図18はP2P-TCです。基本的な処理はE2E-TCでも同じです。One-step clockのSyncメッセージを受信したP2P-TCは、当該ポートで計測したpeerMeanPathDelay (pMPD) 値をSyncメッセージのCFへ加算します。E2E-TCではpMPD値がないので加算しません。

TC (P2P-TCとE2E-TC)は、受信したOne-step clockのSyncメッセージを、Two-step clockのSyncメッセージに変更して、中継先のポートへ送信します。そして、Syncメッセージの送信時刻を採取、中継処理時間を計算した後、Follow_Upメッセージを生成して送信します。そのFollow_UpメッセージのCFには中継処理時間を、Sync送信時刻(T1)フィールドには、中継処理で記録したSyncメッセージのT1情報を設定します。

TCの中継処理時間は、Syncメッセージの受信タイムスタンプをTSr、送信タイムスタンプをTStとすると、自装置のJtおよびJr値から、式.15で求まります。

dt2 – dt1 = (TSt + Jt) – (TSr – Jr) = (TSt – TSr) + (Jt + Jr) --- 式.15

もし、中継機の設計者が「タイムスタンプの誤差は送信も受信も同じ時間なので計算式に含めない」と安易な判断を行ってしまうと、精度劣化に繋がります。式.15をみるとJtJrは相殺される値ではありません。その値によって異なる計算結果になることが分かります。具体的には、Jt=Jr=50(ナノ秒)とすれば、この中継機を経由することで、スレーブ装置とマスタ装置の時刻には100ナノ秒のずれが生じてしまうのことになるのです。


10. P2Pメカニズム

2つの直結ポート間の伝送遅延時間を計測するための機構を、P2Pメカニズムと呼ぶことがあります。

P2Pメカニズムでは、Requesterが、Pdelay_Reqメッセージを一定周期で送信します。Responderは、Pdelay_Reqメッセージを受信すると、応答を返します。応答の方法は3種類(下述)で、その方法は任意に選ぶことができます。

Pdelay_Respメッセージ内には、CF(CorrectionField)とタイムスタンプ(TS)情報を設定するフィールドがあります。

まず、One-step応答を説明します。図19を参照してください。

図 19 Pdelay_Resp One-step 応答


Requesterは、Pdelay_Reqメッセージを送信、その送信時刻(t1)を記録して、応答を待ちます。

Responderは、Pdelay_Reqメッセージを受信すると、その受信時刻(t2)を採取します。それから、One-stepを明示してTSを0にしたPdelay_Respメッセージを応答送信します。そのとき、Pdelay_Respメッセージの送信時刻(t3)を採取して、当該Pdelay_Respメッセージ内のCFに、算出した応答処理時間(d2)を設定します。

Requesterは、One-stepのPdelay_Respメッセージを受信すると、受信時刻(t4)を採取して、式.16でpeerMeanPathDelayを計算します。

peerMeanPathDelay = {(t4 - t1) - PdelayResp.CF}/ 2 --- 式.16

この応答方法では、Responderには、応答をOne-stepで生成するハードウェア論理が必要です。

つぎに、Syncメッセージと同様に、Two-stepで応答できる方法を説明します。図20を参照してください。これは、2つある(Pdelay_RespメッセージとPdelay_Resp_Follow_Upメッセージ内に設定する情報が異なる)Two-step応答のうちの1つです。

図 20 Pdelay_Resp Two-step 応答 (1)


Responderは、Pdelay_Reqメッセージを受信すると、その受信時刻(t2)を採取します。それから、Two-stepを明示してPdelay_Respメッセージを応答送信します。そのとき、Pdelay_Respメッセージの送信時刻(t3)を採取して、つづくPdelay_Resp_Follow_Upメッセージ内のCFに、算出した応答処理時間(d2)を設定します。

RequesterはTwo-stepで応答された情報から、式.17でpeerMeanPathDelayを計算します。 PdelayRespFu.TSはPdelay_Resp_Follow_Upメッセージ内TSフィールドの値で、PdelayResp.TSはPdelay_Respメッセージ内TSフィールドの値です。

式.17は、式.8(6章)で示した(t3-t2)を、メッセージフィールドの値で置き換えています。

peerMeanPathDelay = {(t4-t1)-(PdelayRespFu.TS-PdelayResp.TS)-PdelayResp.CF- PdelayRespFu.CF}/ 2 --- 式.17

この応答方法では、(t3-t2)値をResponderが計算してRequesterへ送ります。Pdelay_Respメッセージ内のCFとTSには0を設定します。また、Pdelay_Resp_Follow_Upメッセージ内のCFには(t3-t2)値、さらに、TSには0を設定します。

式.17に、これらを代入してみて下さい。式.8(6章)と同じ値が求まるはずです。

最後に、Two-stepで応答できるもう1つの方法を説明します。図21を参照してください。

図 21 Pdelay_Resp Two-step 応答 (2)


この応答方法では、t3値とt2値をRequesterへ送ります。Pdelay_RespメッセージのCFには0を、TSにはt2値を設定します。また、Pdelay_Resp_Follow_UpメッセージのCFには0を、TSにはt3値を設定します。

式.17に、これらを代入してみて下さい。式.8(6章)と同じ値が求まるはずです。


1章から10章で、マスタ装置とスレーブ装置間の高精度時刻同期について述べてきました。説明の簡潔さや理解の容易さを優先して、規格を簡略化している部分があります。予めご了承願います。

技術セミナーのお知らせ

ネットワークアディションズでは、企業様向けに、IEEE1588規格に係る技術セミナーを実施しております。セミナーの内容や時間については、ご要望に沿って行います。

お気軽にお問い合わせください。

コンサルティングについて

ネットワークアディションズでは、企業様向けに、IEEE1588機能の実装に係るコンサルティングを実施しております。仕様検討から設計・評価、運用まで、幅広く対応しております。

お気軽にご相談ください。

ネットワークアディションズの製品一覧をご覧になれます。

ネットワークアディションズの製品一覧をご覧になれます。

ネットワークアディションズは、ルネサスエレクトロニクス社のアライアンスパートナーです。


© 2020 Network Additions Co.,Ltd.