前 言
1 TSN簡介
2 時鐘同步機制
3 時間感覺整形器機制
4 搶占式MAC機制
5 時間敏感流轉發與排隊機制
前 言
本指導文檔适用開發環境:
Windows開發環境:Windows 7 64bit、Windows 10 64bit
Linux開發環境:Ubuntu18.04.4
虛拟機:VMware15.5.5
Linux Processor SDK:ti-processor-sdk-linux-rt-am64xx-evm-08.01.00.39
U-Boot:U-Boot-2021.01
Kernel:Linux-5.10.65
本文檔主要示範TSN(時間敏感型網絡)的通信測試。案例位于産品資料“4-軟體資料\Demo\base-demos\tsn_test\”目錄下。
進行本文檔操作前,請先按照《調試工具安裝》文檔安裝USB轉序列槽驅動、SecureCRT序列槽調試終端等相關軟體。預設使用USB TO UART0作為調試序列槽。
評估闆簡介
創龍科技TL62x-EVM是一款基于TI Sitara系列AM62x單/雙/四核ARM Cortex-A53 + 單核ARM Cortex-M4F異構多核處理器設計的高性能低功耗工業評估闆,由核心闆和評估底闆組成。處理器ARM Cortex-A53(64-bit)主處理單元主頻高達1.4GHz,ARM Cortex-M4F實時處理單元主頻高達400MHz,采用16nm最新工藝,具有可與FPGA高速通信的GPMC并口,同時支援雙屏異顯、3D圖形加速器。核心闆經過專業的PCB Layout和高低溫測試驗證,穩定可靠,可滿足各種工業應用環境。
評估闆接口資源豐富,引出3x Ethernet(兩路支援TSN)、3x CAN-FD、9x UART、多路DI/DO、GPMC、USB、MIPI、LVDS LCD、TFT LCD、HDMI等接口,闆載WIFI子產品,支援4G子產品,可選配外殼直接應用于工業現場,友善使用者快速進行産品方案評估與技術預研。
評估闆正面圖
TSN簡介
時間敏感網絡(TSN:Time Sensitive Networking)是IEEE802.1工作組中的TSN任務組開發的一套協定标準。該标準定義了以太網資料傳輸的時間敏感機制,為标準以太網增加了确定性和可靠性,以確定以太網能夠為關鍵資料的傳輸提供穩定一緻的服務級别。
TSN技術标準起源于音視訊行業,用于滿足廣播、直播、現場等公共媒體的高清視訊及音頻資料高實時、同步傳輸的高帶寬網絡應用需求,同時旨在用以太網取代家庭中的高清多媒體接口(HDMI)、揚聲器和同軸電纜。雖然AVB任務組的研究成果沒有廣泛應用于家庭娛樂裝置,但已經在工作室、體育和娛樂等場所得到推廣。這一成功吸引了汽車界和工業界的關注。在汽車領域中,随着車載以太網在進階駕駛輔助系統方面的需求日益增加,而傳統以太網的高延時及其不确定是無法滿足無人駕駛或智能駕駛的車載音視訊同步、安全和車聯網互動等需求,是以極低延時的高帶寬以太網傳輸技術應運而生。透過以太網實作的TSN架構由于能夠增加産品的差異化、改善駕駛員的行車體驗。
TSN是一組IEEE 802.1協定标準,包括802.1AS-Rev、802.1Qbv、802.1Qbu、802.1CB等多個協定,工作在OSI七層網絡模型中的第二層—資料鍊路層。
圖 1
TSN是目前國際産業界正在積極推動的全新工業通信技術。時間敏感型網絡允許周期性與非周期性資料在同一網絡中傳輸,使得标準以太網具有确定性傳輸的優勢,并通過廠商獨立的标準化程序,已成為廣泛聚焦的關鍵技術。
TSN主要價值特點:
- TSN提供微秒級确定性服務,保證各行業的實時性需求。
TSN可達到10us級的周期傳輸,性能優于主流的工業以太網。并且,TSN面向音視訊、工業、汽車等多種行業,将實時性延伸至更高的層次。
- TSN降低整個通信網絡複雜度,實作周期性資料和非周期性資料同時傳輸。
以工業為例,目前周期性控制資料使用工業以太網傳輸,非周期性資料使用标準以太網傳輸。TSN通過其排程機制能夠實作周期性資料和非周期性資料在同一網絡中傳輸,進一步簡化了整個通信中的網絡複雜性。
- TSN統一網絡傳輸,提高經濟性。
TSN能夠幫助實作資訊技術(IT)與營運技術(OT)融合,統一的網絡能夠減少開發部署成本,降低控制器等産品網絡配置所需的工程時間。
參考連結:http://iiot.cechina.cn/20/0218/09/20200218092258.htm。
時鐘同步機制
TSN的标準協定:Timing over packet (802.1AS-2011,IEEE1588,gPTP) with linuxptp (ptp4l)
簡介
TSN标準由IEEE 802.1AS[10]和為工業所開發的更新版IEEE 802.1AS-rev[11]構成。
IEEE 802.1AS是基于IEEE 1588 V2精确時鐘同步協定發展的,稱為:gPTP——廣義時鐘同步協定。gPTP是一個分布式主從結構,它對所有gPTP網絡中的時鐘與主時鐘進行同步。
首先由最佳主時鐘算法(best clock master algrothms,BCMA)建立主次關系,分别稱為主時鐘(clock master,CM)和從時鐘(clock slave,CS)。每個gPTP節點會運作一個gPTP Engine。
IEEE1588所采用的PTP是由網絡的L3和L4層的IP網絡傳輸,通過IPv4或IPv6的多點傳播或單點傳播進行分發時鐘資訊。而gPTP則是嵌入在MAC層硬體中,僅在L2工作,直接對資料幀插入時間資訊,并随着資料幀傳輸到網絡每個節點。
圖 2 IEEE802.1AS的時鐘結構
案例測試
本小節主要示範TI AM64x基于TSN的時鐘同步機制進行PTP(高精度時間同步協定)對時測試。
評估闆配備5個千兆網口,對應的網卡名字如下所示:
表 1
網口名稱 | 支援模式 | 網口名稱 |
ETH1 | CPSW(RGMII1) | eth0 |
ETH2 | CPSW(RGMII2)(預設),或 PRG1(RGMII2)(僅限AM6442) | eth1 |
ETH3 | PRG0(RGMII1)(僅限AM6442) | eth2 |
ETH4 | PRG0(RGMII2)(僅限AM6442) | eth3 |
ETH5 | PRG1(RGMII1)(僅限AM6442) | eth4 |
請準備2個TL64x-EVM評估闆,2個評估闆上電啟動,請将案例"ptp\bin\"目錄下可執行檔案ppstest、testptp檔案分别拷貝至2個評估闆檔案系統任意目錄下。2個評估闆分别在可執行執行所在目錄下,執行如下指令,使能PTP,并測試目前評估闆計時是否準确,按"Ctrl + C"停止測試。
Target# ./testptp -d /dev/ptp0 -P 1 //使能PTP
Target# ./ppstest /dev/pps0 //測試計時是否準确
圖 3
基于CPSW網口測試
請使用網線将2個評估闆的ETH1網口互聯。評估闆1的ETH1網口作為Master,評估闆2的ETH1網口作為Slave。
進入評估闆1檔案系統,執行如下指令,檢視ETH1網口PTP編号。
Target# ethtool -T eth0
圖 4
從上圖列印資訊可知,ETH1的PTP編号為0。
進入評估闆1檔案系統,執行如下指令,進行對時測試。
Target# ptp4l -E -2 -H -i eth0 -l 7 -m -q -p /dev/ptp0
圖 5
圖 6
圖 7
進入評估闆2檔案系統,執行如下指令建立ptp.cfg配置檔案,配置逾時參數為600。
Target# vi ptp.cfg
Target# cat ptp.cfg
添加如下内容:
[global]
tx_timestamp_timeout 600
圖 8
進入評估闆2檔案系統,執行如下指令,進行對時測試。
Target# ptp4l -E -2 -H -i eth0 -s -l 6 -m -q -p /dev/ptp0 -f ptp.cfg
圖 9
由上圖可知,path delay約為536ns,即PTP對時功能正常。
基于PRG網口測試
請使用網線将2個評估闆的ETH3網口互聯。評估闆1的ETH3網口作為Master,評估闆2的ETH3網口作為Slave。
進入評估闆1檔案系統,執行如下指令,檢視ETH3網口PTP編号。
Target# ethtool -T eth2
圖 10
從上圖可知,ETH3的PTP編号為3。
進入評估闆1檔案系統,執行如下指令,進行對時測試。
Target# ptp4l -E -2 -H -i eth2 -l 7 -m -q -p /dev/ptp3
圖 11
圖 12
圖 13
進入評估闆2檔案系統,執行如下指令建立ptp.cfg配置檔案,配置逾時參數為600。
Target# vi ptp.cfg
Target# cat ptp.cfg
添加如下内容:
[global]
tx_timestamp_timeout 600
圖 14
進入評估闆2檔案系統,執行如下指令,進行對時測試。
Target# ptp4l -E -2 -H -i eth2 -s -l 6 -m -q -p /dev/ptp3 -f ptp.cfg
圖 15
由上圖可知,path delay約為455ns,即PTP對時功能正常。。
案例編譯
請将産品資料“4-軟體資料\Demo\base-demos\tsn_test\ptp\src”目錄下源碼拷貝至Ubuntu工作目錄。
在源碼目錄下,執行如下指令編譯testptp.c,編譯完成後将會在目前目錄下生成ppstest可執行程式。
Host# aarch64-none-linux-gnu-gcc -Wall testptp.c -o testptp
圖 16
執行如下指令,将pps-tools.tar.gz壓縮包解壓至目前目錄,并進入解壓後的目錄進行編譯,編譯完成将在目前目錄下生成ppstest可執行程式。
Host# tar -zxf pps-tools.tar.gz -C .
Host# cd pps-tools/
Host# make CC=aarch64-none-linux-gnu-gcc
圖 17
時間感覺整形器機制
網絡協定:Time aware shaper (EST,802.1Qbv) with Linux packet scheduler (tc qdisc)
簡介
時間感覺整形器(Time Awareness Shaper,TAS)是為了更低的時間粒度、更為嚴苛的工業控制類應用而設計的排程機制,目前被工業自動化領域的企業所采用。
TAS由IEEE 802.1Qbv定義,是基于預先設定的周期性門控制清單,動态地為出口隊列提供開/關控制的機制。Qbv定義了一個時間視窗,是一個時間觸發型網絡(Time-trigged)。視窗在此機制中是被預先确定的。門控制清單被周期性的掃描,并按預先定義的次序為不同的隊列開放傳輸端口。
出口硬體有8個軟體隊列,每個都有唯一的傳輸選擇算法。傳輸由門控制清單(gate control list,GCL)控制。它是多個門控制實體确定軟體的隊列開放。
圖 18 TAS的工作原理
在TAS機制中,為了確定資料傳輸前網絡是空閑的,在整個啟動傳輸前需設定一個保護帶寬(Guardband)。Guardband占用最大的以太網幀傳輸長度,以確定最差情況—即使前面有一個标準以太網幀正在傳輸,也不會讓GCL在重新開機下一個周期前被占用網絡。
案例測試
iperf3工具安裝
請将産品資料“4-軟體資料\Tools\Windows\”目錄下的iperf-3.1.3-win64.zip壓縮包解壓至Windows非中文目錄下,并參考如下方法将配置系統環境變量。
在Windows右鍵“我的電腦”,選擇“屬性(R) -> 進階系統設定”,打開如下系統屬性界面。
圖 19
圖 20
圖 21
點選“環境變量(N)…”,打開如下界面。輕按兩下點選“系統變量(S)”的PATH,添加iperf3實際路徑。
圖 22
打開CMD指令行終端執行如下指令,驗證iperf3的環境變量是否配置成功,如下圖所示。
CMD# iperf3 -h
圖 23
基于CPSW網口測試
請使用網線将評估闆的ETH1網口與PC機網口直連。
備注:暫不支援PRG網口。
請将PC機配置為靜态IP,其中IP位址為:192.168.2.10,子網路遮罩為:255.255.255.0,請根據實際情況進行修改,如下圖所示。
圖 24
請将案例"est\bin\"目錄下est-init.sh腳本拷貝至評估闆檔案系統任意目錄。在腳本檔案中已設定3個閥門(Q0-Q2)EST排程器,并且設定閥門的打開時間分别為250us、125us和125us,總循環時間為500us。排程器與端口對應關系,如下表所示。
表 2
端口 | 排程器 |
5001 | TC0 <-> Q0 |
5002 | TC1 <-> Q1 |
5003 | TC2 <-> Q2 |
進入評估闆檔案系統,在est-init.sh腳本所在目錄下執行如下指令,初始化EST。
Target# ./est-init.sh
圖 25
執行如下指令,配置ETH1網口的靜态IP為:192.168.2.20,與PC機同一網段,并測試與PC機是否通信正常。
Target# ip addr add 192.168.2.20/24 dev eth0
Target# ping 192.168.2.10
圖 26
在PC機上,在CMD指令行終端執行如下指令,運作3個iperf3伺服器程序,對應端口分别為5001、5002和5003。
CMD# iperf3.exe -s -i30 -p5001
CMD# iperf3.exe -s -i30 -p5002
CMD# iperf3.exe -s -i30 -p5003
圖 27
圖 28
圖 29
在評估闆檔案系統執行如下指令,啟動3個iperf3用戶端,并與服務端進行通信測試。
Target# iperf3 -c 192.168.2.10 -u -b100M -p 5003 -l1472 -t10 -i5& iperf3 -c 192.168.2.10 -u -b100M -p 5002 -l1472 -t10 -i5& iperf3 -c 192.168.2.10 -u -b100M -p 5001 -l1472 -t10 -i5&
圖 30
請輕按兩下産品資料“4-軟體資料\Tools\Window\”目錄下的Wireshark-win64-3.6.8.exec程式,安裝預設步驟安裝即可。
安裝完成後,打開Wireshark工具,如下圖所示。
圖 31
輕按兩下選擇“以太網”進入如下界面,輸入内容:ip.host == 192.168.2.20,按下Enter鍵,開始抓取用戶端發送的網絡資料包。
圖 32
為了便于分析網絡包的發送情況,右鍵選擇“設定/取消設定 時間參考”,将對應端口的第一個資料包設定為時間參考,如下圖所示。
圖 33
圖 34