TSN通信の仕組みのまとめ。実際にテスト・調べてみた

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

TSN(Time Sensitive Networking)について、開発・調査してみました。

今までに調べた内容を、一つの記事にまとめて紹介します。

個人でもTSNの環境構築から実装・通信テストまで可能です。

 

スポンサーリンク

TSN通信の仕組みのまとめ。実際にテスト・調べてみた

TSNは標準イーサネット経由でリアルタイム性が必要な通信が可能となります。

自動車・FAなど時刻同期が必要なアプリケーションでの利用が期待されています。

まだTSN通信に対応している機器は少ないですが、徐々に増えてきています。

 

一個人でもTSNの開発・テストが可能です。

実際に手を動かして、テストすることでTSNの理解が深まります。おすすめです。

まだ順次記事を追加中ですが、今まで実施したテスト・調査した内容をまとめています。

 

TSNに使えるLANカード(NIC)

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

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

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

 

TSNに使えるLANカード(NIC)の詳細を下記記事で紹介しています。(リンク先はこちら)

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

IEEE-1588/PTP対応のLANカード(NIC)を動かしてみた
IEEE-1588/PTP対応のLANカード(NIC)を購入してみました。 実際にPCにカードを取り付けて、PTPの動作確認まで実施しています LANカード(NIC)の選定から、PTP通信までの内容を紹介します。

 

またLinuxでTSN(PTP)通信が使えるライブラリも紹介しています。

linuxptpをUbuntuにインストールしてみた。

linuxptpをUbuntuにインストールしてみた。
PTP通信をするために、linuxptpをUbuntuにインストールしました。 ハードウェアタイムスタンプを使って、PTP通信することが可能です。 またソフトウェアタイムスタンプにも切り替えれる旨を紹介します。 linuxptpをUbunt...

 

TSNに使える開発ボード

XilinxのKria KR260は、TSNに使える開発(FPGA)ボードです。

Digi-Keyから個人で購入しています。Ubuntu(OS)を動かすまでの流れを紹介します。

 

TSNに使える開発(FPGA)ボードの詳細を下記記事で紹介しています。(リンク先はこちら)

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

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

 

TSNの通信テスト

TSN(Time Sensitive Networking)のイーサネット環境を作ってみました。

LANカード(NIC)とKR260を使ってテストしています。

TSNの環境構築から実装・通信テストまで一連の流れを紹介します。

TSNのテスト環境についての詳細を下記記事で紹介しています。(リンク先はこちら)

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

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

 

TSNスイッチとしての設定

KR260はTSNに対応しています。更にTSN対応のRJ-45(LAN)コネクタが2つあります。

TSN スイッチとして、またエンドポイントとしても使えることを紹介します。

 

TSNのスイッチの詳細について下記記事で紹介しています。(リンク先はこちら)

TSNスイッチとして使えるFPGAの評価ボード(KR260)

TSNスイッチとして使えるFPGAの評価ボード(KR260)
XilinxのKR260というFPGAボードはTSNに対応しています。 更にTSN対応のRJ-45(LAN)コネクタが2つあります。 TSN スイッチとして、またエンドポイントとしても使えることを紹介します。

 

TSNでのPTP通信

TSNの環境構築して、PTPの通信テストを行いました。

そしてテストしたPTPの設定が、TSNの規格に適応しているのか確認してみました。

設定・ログを見直しながら、PTPとTSNの違いを確認した内容を紹介します。

 

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

TSNとPTPの違いは?通信テストの設定・ログから確認してみた

TSNとPTPの違いは?通信テストの設定・ログから確認してみた
TSNの環境構築して、PTPの通信テストを行いました。 そしてテストしたPTPの設定が、TSNの規格に適応しているのか確認してみました。 設定・ログを見直しながら、PTPとTSNの違いを確認した内容を紹介します。

 

TSNをWiresharkでパケットキャプチャ

Time-Sensitive Networking(TSN)のパケットを確認してみました。

TSNネットワークの極一部ですが、Wiresharkで調べています。

実行環境からTSN通信の中身(プロトコル・パケット)まで紹介します。

 

PTPv2通信で伝送遅延測定している箇所を確認しています。(リンク先はこちら)

Time-Sensitive Networking(TSN)をWiresharkで調べてみた

Time-Sensitive Networking(TSN)をWiresharkで調べてみた
Time-Sensitive Networking(TSN)のパケットを確認してみました。 TSNネットワークの極一部ですが、Wiresharkで調べています。 実行環境からTSN通信の中身まで紹介します。

 

talker側から任意の1パケット送った際も解析しています。(リンク先はこちら)

TSNネットワークでTalkerからパケットを送って解析してみた

TSNネットワークでTalkerからパケットを送って解析してみた
TSNのネットワーク環境でTalkerとしてパケット送信してみました。 1パケットを送信した場合、Wiresharkでキャプチャして解析しています。 どのようなプロトコルで送信されているか確認してみました。

 

TSNのIEEE 802.1QBV

TSNの時刻同期の仕組みの重要なポイントである、IEEE 802.1QBVを試してみました。

通信トラフィックをスケジューリングする仕様を確認しています。

実際の通信テストから、解析方法まで紹介します。

 

IEEE 802.1QBVについての詳細を下記記事で紹介しています。(リンク先はこちら)

TSNの時刻同期の仕組み。IEEE 802.1QBVを試してみた

TSNの時刻同期の仕組み。IEEE 802.1QBVを試してみた
TSNの時刻同期の仕組みの重要なポイントである、IEEE 802.1QBVを試してみました。 通信トラフィックをスケジューリングする仕様を確認しています。 実際の通信テストから解析方法まで紹介します。

 

TSNのIP

XilinxのTSNのIPを部分的に確認してみました。基本的には個人では使用できないIPです。

評価ボードのデザインファイルから一部参照することが可能です。

確認する手順を紹介します。

 

TSNのIPについて下記記事で紹介しています。(リンク先はこちら)

TSNのXilinxのIPを部分的に確認してみた

TSNのXilinxのIPを部分的に確認してみた
XilinxのTSNのIPを確認してみました。基本的には個人では使用できないIPです。 但し、評価ボードのデザインファイルから一部参照することが可能です。 確認する手順を紹介します。

 

PTPの時刻同期の仕組み

TSNで使われているPTPでの遅延測定を確認してみました。

各メッセージをキャプチャして、タイムスタンプを調べています。

「伝送遅延時間」「オフセット時間」含めて解析した旨を紹介します。

 

PTPの時刻同期の仕組みを確認してみました。(リンク先はこちら)

PTPの時刻同期の仕組み。パケット解析して遅延測定してみた

PTPの時刻同期の仕組み。パケット解析して遅延測定してみた
PTPの時刻同期の仕組みである、遅延測定を確認してみました。 各メッセージをキャプチャして、タイムスタンプを調べています。 「伝送遅延時間」「オフセット時間」含めて解析した旨を紹介します。 PTPの時刻同期の仕組み。パケット解析して遅延測定...

 

TSNのテスト動画

簡単にですがTSN通信をした動画もYoutubeにアップしています。

 

us以下の時刻同期を確認したテスト動画

TSNでus以下の時刻同期の精度を確認したテストです。

 

時刻同期をWiresharkで解析したテスト動画

TSNの時刻同期をWiresharkで解析したテストです。

 

FA設備技術勉強会で発表しました

今回の内容を「第13回FA設備技術勉強会 in けいはんな」で発表させていただきました。

(connpassでのリンク先はこちらから)

勉強会に使った発表資料が下記スライドになります。

 

※スマートフォンからでは表示されないので下記リンク先から閲覧お願いします。

TSN(Time-Sensitive Networking)を環境構築して遊んでみた
TSN(Time-Sensitive Networking)を環境構築して遊んでみた ミソジ 2023/3/26 第13回FA設備技術勉強会 in けいはんな #FA_Study

 

 

謝辞

FAの技術交流できる貴重な場を開催していただいたことに深く感謝申し上げます。

 

@fulhause様、また一般社団法人 次世代ロボットエンジニア支援機構 Scramble様含めた開催者・運営者・参加者の皆様には重ねてお礼申し上げます。

 

勉強会でいただいた意見・コメント

勉強会で貴重な意見・コメントいただきました。

自分への忘備録含めてこのブログにも残しておきたいと思います。

※記事として書きやすいように質問・回答内容を多少修正させていただいています。

 

TSNのネットワーク帯域は何処まで使える?

帯域的には使っているLANの限界までできるはず。maybe…多分。

  •  今回の場合はGbitEther(1Gbps)

時刻同期の方はハードウェアの方が定期的に勝手にやってくれるイメージ

すみません。まだ数パケットいれてしか、テストしていない…状況です。

 

TSNのハブは特殊なものが必要?

はい、特殊なものが必要です。

ハブ内部で、時刻同期の遅延を計算できるTSNに対応したハブが必要です。

現在個人で入手できるものはKR260ぐらいしかない様子…。

 

今回TSN勉強したモチベーションは?

大分前からイーサネット関係で調べると、TSNが出てきたため。

次世代の車載ネットワークでも使われるので、どんなものか遊んでみたかったためです。

カッコよさそう…本当にそれだけです。高尚な理由などは無いです。

 

KR260を2つ並べて、TSNを使えるのか。(IPは個人で使えるの?)

メーカからKR260を2つ並べて使うサンプルも出ていました。

今回のデモで紹介していた、PC⇔KR260のデモも基本的には下記を真似ただけです。

 https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/25034864/Xilinx+TSN+Solution

 

ただIPは現時点で個人で入手できないものです。再ビルドはできないです。

ただ部分的に確認はできそうな旨を下記で紹介しています。

TSNのXilinxのIPを部分的に確認してみた

 

5GでTSNの規格が対応してきそう。(アドバイス)

特定のRelease 16?から統合できるような動きがあるようですね。情報ありがとうございます。

 https://journal.ntt.co.jp/article/20399

標準イーサネットで時刻同期できる世界が少しづつ近づいてきそうな感じです。

 

まとめ

TSN(Time Sensitive Networking)について、開発・調査してみました。

個人でもTSNの環境構築から実装・通信テストまで可能です。

また記事作成しましたら、順次追記していく予定です。

 

コメント