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