IEEE-1588/PTP対応のLANカード(NIC)を動かしてみた

本サイトはアフィリエイト広告を利用しています。
FPGA

IEEE-1588/PTP対応のLANカード(NIC)を購入してみました。

実際にPCにカードを取り付けて、PTPの動作確認まで実施しています

LANカード(NIC)の選定から、PTP通信までの内容を紹介します。

 

スポンサーリンク

IEEE-1588/PTP対応のLANカード(NIC)を動かしてみた

IEEE-1588/PTP対応のLAN(NIC)カードを購入してみました。

※PTP…Precision Time Protocol(時刻同期のプロトコル)

買ったのは10GtekのIntel I210-T1搭載のLANカードです。

 

実際にPCにLANカードを接続して、PTPの動作確認まで試しています。

接続先のPTPのマスタークロックと同期させて、n(ナノ)単位の精度が取れています。

マスター・スレーブの動作含めて確認した内容を紹介します。

 

またLANカードの接続先には、TSN対応のFPGAボードとなっています。

そちらの設定に関しては下記記事で紹介しています。(リンク先はこちら)

TSN Ethernetの実装をFPGA(KR260)で試してみた

TSN Ethernetの実装をFPGA(KR260)で試してみた
TSN(Time Sensitive Networking)のイーサネット環境を作ってみました。 KR260というTSN対応のFPGAボードを使ってテストしています。 TSNの環境構築から実装・通信テストまで一連の流れを紹介します。

 

PC標準LANはIEEE-1588/PTP非対応がほとんど

今回特別にLANカードを増設しているのは、大抵のPC標準のLANはPTP非対応のためです。

 

筆者所持のデスクトップPCの備え付きのLANでも確認しましたが、非対応でした。

調べると、「PTP Hardware Clock: none」というメッセージでした。

 

確認したPCは下記記事でも紹介したDellのInspirion 3650で標準的なデスクトップです。

ifconfigで見ると、有線LANの名前は「enp2s0」でした。

中古のPCにグラボを増設してみた!NVIDIA GeForce GT 710編

中古のPCにグラボを増設してみた!NVIDIA GeForce GT 710編
中古のデスクトップにグラボを増設(後付け)してみました。 格安のNVIDIA GeForce GT 710ですが、問題なく動作確認できています。 中古PCの購入から、グラフィックボードの増設までの流れを紹介します。

 

ラズパイもIEEE-1588/PTP非対応

ラズパイのような開発・評価ボードでもどうかと確認してみました。

やはりラズパイでも「PTP Hardware Clock: none」でPTP非対応でした。

 

ちなみにPTP非対応のLANでPTP通信をしても、もちろんエラーが出ます。

linuxptpのptp4lを使ったログの結果や、hwstampの結果を貼り付けておきます。

やはりPTPのハードウェアクロックがなく、タイムスタンプが作れていない様子です。

 

IEEE-1588/PTP対応のLAN(NIC)カードを購入する

PTPテストするために、対応したLAN(NIC)カードか開発ボードを入手する必要があります。

※LANカードもNIC(Network Interface Card)も同じ意味で記載しています。

今回の目的としては下記のため、PTP対応の安いLANカードを購入する流れにしました。

  • PTPを使ったTSN通信をテストしたいだけ
  • あくまで個人的なテストのため、なるべく安く済ませたい
  • LANカードが挿せる、LinuxのデスクトップPCは所持している

 

linuxptpで動作できるLANカードを選ぶ

linuxptpというパッケージを使う予定のため、公式で実績があるカードを選びました。

下記公式HPを見るとIntelの82574, 82580, 82599, i210のLANカードを使っていました。

 http://linuxptp.sourceforge.net/

 

また接続先のFPGAボードでもi210が実績あるLANカードでした。

そのため、今回はAmazonでも安く簡単に購入できるi210のLANカードを購入してみました。

 

PCにLANカードを装着します

今回購入した10GtekのIntel I210-T1搭載のLANカードです。

IntelのI210が搭載されています。

 

I210の中にも細かい型番で分かれますが、末尾が「AT」品でした。

メーカのICのHPを調べても、IEEE-1588対応の旨が記載されていました。

 

PCIE接続でPCに取り付け可能です。

PCの空いているPCIE(x1)スロットにLANカードを取り付けます。

筆者のデスクトップPCにはPCIE(x1)スロットが余っていました。

 

挿すだけで簡単に接続できます。LANカードをPCに装着できました。

 

外から見ると、普通のLANコネクタと変わりありません。

 

PTP通信を確認する

(筆者のPCでは)特にドライバのインストールも不要で、問題なく動作できました。

新しいボードのPTPの情報を確認すると、ハードウェアクロックに対応しています。

PTP Hardware Clock: 0

 

PTP接続先がいない状態の通信テスト

まずは接続先がいない状態で確認していきます。

IEEE-1588/PTP対応のLANカードを接続したPCのみでのテストです。

 

接続先がいない状態で、PTPの通信(ptp4l)を試すと下記結果でした。

初期化(INIT_COMPLETE)はされますが、相手先がいなく「port 1: link down」となっています。

また「FAULT_DETECTED (FT_UNSPECIFIED)」とメッセージも出ていました。

 

PTP接続先がいる状態での通信テスト

次にPTP接続先がいる状態での通信テストを行います。

今回はTSN(Time Sensitive Networking)対応のFPGAボードに接続しました。

TSNにはgPTP(PTPを更に産業用に適応したもの)が使われています。

TSN対応のFPGAボードの詳細は下記記事にて紹介しています。(リンクはこちら)

KR260を購入してUbuntuを動かすまでのメモ

KR260を購入してUbuntuを動かすまでのメモ
XilinxのKria KR260のロボティクス スターター キットを買ってみました。 Digi-Keyから個人で購入しています。 Ubuntuを動かすまでの流れを紹介します。

 

また今回の通信テストの設定などに関しては、下記記事で紹介しています。

TSN Ethernetの実装をFPGA(KR260)で試してみた

TSN Ethernetの実装をFPGA(KR260)で試してみた
TSN(Time Sensitive Networking)のイーサネット環境を作ってみました。 KR260というTSN対応のFPGAボードを使ってテストしています。 TSNの環境構築から実装・通信テストまで一連の流れを紹介します。

 

※このテストに関しては、趣味で通信テストしているレベルです。参考程度にお願いします

 

LANカード(NIC)側をマスタークロックとした場合

PTPのマスタークロック(基準クロック)をLANカード(NIC)にした場合のテストです。

(FPGAボード側がスレーブ、またTSNスイッチとなる場合です)

 

下記のようにptp4lを実行した場合の出力ログ(ptplog)です。

マスタークロックはLANカードのものが選ばれています。

「selected local clock 6cb311.fffe.529d82 as best master」

 

またifconfigでLAN(NIC)カードの情報を見ると、Ethernetの番号が一部一致していました。

「ether 6c:b3:11:52:9d:82

 

LANカード(NIC)側をスレーブとした場合

次にPTPのマスタークロックをFPGAボードに持たせた場合です。

(LANカード(NIC)をスレーブとしています)

※前のテストからFPGAボード側のptp4lの設定ファイルを再読み込みしています。

 

マスタークロックはFPGAボードのものに切り替わっています。

「selected best master clock 000a35.fffe.00012e」 ※先ほどは「6cb311.fffe.529d82」

またステートもMASTER→RS_SLAVEと遷移しています。

 

ログ出力のように、LANカードがマスタークロックに対して同期をとっています。

最初はオフセットrmsが410(ns)ですが、徐々に同期が合って最後は数(ns)です。

 

まとめ

IEEE-1588/PTP対応のLAN(NIC)カードを購入してみました。

実際にPCにカードを取り付けて、マスター・スレーブ含めてPTPの動作確認できました。

Intel I210-T1搭載のLANカードで数千円のものですが、問題なくPTP通信が出来ました。

 

よろしければ、是非皆さまもテストしてみて下さい。

 

次の記事では、PTP通信が使われているTSN Ethernetの実装をテストしています。

是非一緒にご覧ください。(リンク先はこちら)

TSN Ethernetの実装をFPGA(KR260)で試してみた

TSN Ethernetの実装をFPGA(KR260)で試してみた
TSN(Time Sensitive Networking)のイーサネット環境を作ってみました。 KR260というTSN対応のFPGAボードを使ってテストしています。 TSNの環境構築から実装・通信テストまで一連の流れを紹介します。

コメント