Wind River Blog Network 翻訳版
本サイトでは、Wind River Blog Networkの一部を翻訳し公開しております。

July 25, 2016

VxWorksでのPTP(Precision Time Protocol)のデモ


投稿者:Ka Kay Achacoso

1つのインダストリアルシステムが数百のセンサー、モーター、コントローラから構成されることがあります。それらをつなぎ合わせる物理的なインフラがイーサネットネットワークの場合、センサーデータや制御コマンドを、ハードタイムの制限時間内(多くは1~2マイクロ秒以内)に、ネットワーク内の宛先に確実に到達させるには、特別な処理が必要です。メッセージが宛先に時間内に到達しないと、機械の動作が調整されなかったり、センサーデータの相関性に誤りが生じたりするおそれがあります。

TSN(Time-Sensitive Networking)には、タイムクリティカルなネットワーク化アプリケーションの要件に対処するための規格セットが用意されています。第1段階として、ネットワーク上のデバイスは、1マイクロ秒以下のレベルでクロックを同期させる必要があります。同期規格のIEEE 802.1ASにより、リンクしたネットワーク上のTSN対応デバイス間でクロックの同期をとることができます。

IEEE 802.1ASは、PTP(Precision Time Protocol)のプロファイルです。VxWorksのユーザは、PTPを使うTSNネットワークに参加し、一部のイーサネットコントローラが備えた高精度クロックを利用することが可能です。VxWorks搭載デバイスは、802.1ASを搭載する他のデバイス(VxWorks搭載デバイスや他のOS搭載デバイス)と、PTPで同期をとることができます。VxWorksデバイスは、マスタークロック、スレーブクロック、ネットワーク拡張用の境界クロックとして動作可能です。

今回、VxWorksのPTPの実装を2つのボードで実験しました。コントロン製Mini-ITXボードと、インテル製カスタマーリファレンスボード(CRB)です。どちらのボードもインテルCore i5プロセッサを搭載し、インテルI210 Ethernet PCIeカードを取り付けています。インテルイーサネットコントローラI210は、VxWorksがサポートする高精度タイマを内蔵しています。このコントローラには、Software Defined Pin(SDP)と呼ばれるデジタル出力ピンがあります。このピンは、高精度タイマが所定の値に達すると、ハードウェアの電圧を切り替えるように設定できるので、1秒間に特定数のパルスを発するようにプログラミングできます。

2つのVxWorksデバイスを、802.1AS機能を備えたシスコ製スイッチに接続します。シスコスイッチをマスタークロックとして稼働し、2つのVxWorksデバイスは各々のシステムクロックをマスタークロックに同期させます。各VxWorksデバイスのSDPは、I210高精度タイマに基づいて、1秒間に10個のデジタル出力パルスを発するように設定しています。オシロスコープを使ってSDPを測定すれば、2つのボード間の同期を見ることができます(図1)。

図1:TSNのセットアップ(スレーブクロックのVxWorksデバイス2基をシスコスイッチのマスタークロックに接続)

その結果、VxWorksは1マイクロ秒以下で同期できることが裏付けられます。図2は、2つのノードをシスコスイッチに接続していないときに、オシロスコープに表示される波形です。2本の線は、各VxWorksデバイスのSDPに対応しています。波形が重ならないように、電圧に少し差を付けました。見てのとおり、TSNを使わない場合は、クロックはまるで同期しておらず、60ミリ秒近くずれています。この大きなズレは想定どおりです。どちらのデバイスもディターミニスティックでリアルタイムですが、2つのデバイスのタイマには相関性がありません。

図2:PTP同期のない場合(10パルス/秒のデジタル出力、50ミリ秒/div)

2つのノードをシスコスイッチに接続すると、自動的にPTP同期が発生します。2本の線が瞬時に揃います。図3に、PTP同期を使った2つのデバイスのデジタル出力を示します。

図3:PTP同期のある場合(10パルス/秒のデジタル出力、50ミリ秒/div)

デバイスが802.1ASで要求される高精度なタイミング基準を示しているか確認するために、拡大して、パルスがどれぐらい揃っているかをはっきり見ることができます。図4の波形では、パルスは20ナノ秒ずれています。波形は一般的に20~50ナノ秒ぶれるものです。

図4:1マイクロ秒以下のPTP同期(波形はインテルイーサネットコントローラI210のSDPが発するパルス。オシロスコープを100ナノ秒/divに設定)

これで、VxWorksがEthernet経由でクロックを同期できること、VxWorksデバイスがTSNに準拠したトラフィックに参加できることがわかりました。タイムクリティカルなネットワークアプリケーションへの可能性が広がります。

1マイクロ秒以下の同期は、VxWorksのPTP機能を実証しています。ウインドリバーは今後もTSN規格への投資を増やし、VxWorksデバイスが、インダストリアルシステムから収集されるセンサーの測定値を相関させ、調整されたコマンドをアクチュエータに送出できるようにします。ウインドリバーはIndustrial Internet Consortium(IIC)のTSNテストベッド(http://www.iiconsortium.org/time-sensitive-networks.htm)に参加し、相互運用性を確保するために他のTSNデバイスメーカーと連携しています。VxWorks RTOS製品の詳細については、こちらをご覧ください。https://www.windriver.com/products/vxworks/