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)を動かしてみた

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

TSNに使える開発ボード
XilinxのKria KR260は、TSNに使える開発(FPGA)ボードです。
Digi-Keyから個人で購入しています。Ubuntu(OS)を動かすまでの流れを紹介します。
TSNに使える開発(FPGA)ボードの詳細を下記記事で紹介しています。(リンク先はこちら)

TSNの通信テスト
TSN(Time Sensitive Networking)のイーサネット環境を作ってみました。
LANカード(NIC)とKR260を使ってテストしています。
TSNの環境構築から実装・通信テストまで一連の流れを紹介します。
TSNのテスト環境についての詳細を下記記事で紹介しています。(リンク先はこちら)
TSN Ethernetの実装をFPGA(KR260)で試してみた

TSNスイッチとしての設定
KR260はTSNに対応しています。更にTSN対応のRJ-45(LAN)コネクタが2つあります。
TSN スイッチとして、またエンドポイントとしても使えることを紹介します。
TSNのスイッチの詳細について下記記事で紹介しています。(リンク先はこちら)
TSNスイッチとして使えるFPGAの評価ボード(KR260)

TSNでのPTP通信
TSNの環境構築して、PTPの通信テストを行いました。
そしてテストしたPTPの設定が、TSNの規格に適応しているのか確認してみました。
設定・ログを見直しながら、PTPとTSNの違いを確認した内容を紹介します。
TSNでのPTP通信の設定に関して下記記事で紹介しています。(リンク先はこちら)
TSNとPTPの違いは?通信テストの設定・ログから確認してみた

TSNをWiresharkでパケットキャプチャ
Time-Sensitive Networking(TSN)のパケットを確認してみました。
TSNネットワークの極一部ですが、Wiresharkで調べています。
実行環境からTSN通信の中身(プロトコル・パケット)まで紹介します。
PTPv2通信で伝送遅延測定している箇所を確認しています。(リンク先はこちら)
Time-Sensitive Networking(TSN)をWiresharkで調べてみた

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

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

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

PTPの時刻同期の仕組み
TSNで使われているPTPでの遅延測定を確認してみました。
各メッセージをキャプチャして、タイムスタンプを調べています。
「伝送遅延時間」「オフセット時間」含めて解析した旨を紹介します。
PTPの時刻同期の仕組みを確認してみました。(リンク先はこちら)

TSNのテスト動画
簡単にですがTSN通信をした動画もYoutubeにアップしています。
us以下の時刻同期を確認したテスト動画
TSNでus以下の時刻同期の精度を確認したテストです。
時刻同期をWiresharkで解析したテスト動画
TSNの時刻同期をWiresharkで解析したテストです。
FA設備技術勉強会で発表しました
今回の内容を「第13回FA設備技術勉強会 in けいはんな」で発表させていただきました。
(connpassでのリンク先はこちらから)
勉強会に使った発表資料が下記スライドになります。
※スマートフォンからでは表示されないので下記リンク先から閲覧お願いします。

謝辞
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は現時点で個人で入手できないものです。再ビルドはできないです。
ただ部分的に確認はできそうな旨を下記で紹介しています。
5GでTSNの規格が対応してきそう。(アドバイス)
特定のRelease 16?から統合できるような動きがあるようですね。情報ありがとうございます。
https://journal.ntt.co.jp/article/20399
標準イーサネットで時刻同期できる世界が少しづつ近づいてきそうな感じです。
まとめ
TSN(Time Sensitive Networking)について、開発・調査してみました。
個人でもTSNの環境構築から実装・通信テストまで可能です。
また記事作成しましたら、順次追記していく予定です。
コメント