TSN是目前國際產(chǎn)業(yè)界正在積極推動的全新工業(yè)通信技術(shù),為下一代網(wǎng)絡(luò)技術(shù)的核心。ZLG致遠(yuǎn)電子敢為人先,準(zhǔn)確把握新一輪科技革命的歷史機遇,在TSN領(lǐng)域積極布局,推出了TSN系列核心板產(chǎn)品M64xx-T。
? TSN技術(shù)簡介
時間敏感網(wǎng)絡(luò)(Time-sensitive Networking,TSN)是在IEEE 802.1標(biāo)準(zhǔn)以太網(wǎng)框架下制定的新一代標(biāo)準(zhǔn)以太網(wǎng)技術(shù), 運行在OSI 模型中的數(shù)據(jù)鏈路層,如圖1所示,TSN技術(shù)源于標(biāo)準(zhǔn)以太網(wǎng)的隊列傳輸機制,網(wǎng)絡(luò)幀格式也是采用包含VLAN 標(biāo)簽的標(biāo)準(zhǔn)以太網(wǎng)幀格式。
圖1?TSN?的IEEE?802.1?框架
在標(biāo)準(zhǔn)層面,IEEE 802.1時間敏感網(wǎng)絡(luò)工作組發(fā)布了一套用于工業(yè)和汽車網(wǎng)絡(luò)的開放實時以太網(wǎng)標(biāo)準(zhǔn)TSN,包括IEEE 802.1Qbv、IEEE 802.1Qcc、IEEE 802.1AS 等標(biāo)準(zhǔn),如圖2所示,旨在降低布線成本,打破信息孤島,同時在通信過程中傳輸不同時間敏感性的數(shù)據(jù)。
圖2?TSN?的協(xié)議簇
? TSN時間同步技術(shù)應(yīng)用實踐
當(dāng)前時間敏感網(wǎng)絡(luò)技術(shù)已經(jīng)成為包括芯片廠商、通信設(shè)備廠商、自動化廠商、相關(guān)行業(yè)組織以及各類研究機構(gòu)在內(nèi)的產(chǎn)業(yè)鏈各個組成環(huán)節(jié)關(guān)注的熱點,我司緊跟科技創(chuàng)新發(fā)展的新趨勢,推出了TSN技術(shù)落地實踐項目M64xx-T系列核心板。
M6442-EV-Board是ZLG致遠(yuǎn)電子精心推出的集工控與評估于一身的評估板。該評估板了搭配M6442-1GF4GLI-T核心板做評估和擴展使用,方便靈活。可滿足M64xx核心板的接口評估,也可以直接用于電機驅(qū)動器、工業(yè)網(wǎng)關(guān)、遠(yuǎn)程監(jiān)控、工廠自動化等應(yīng)用場合。
圖3?M6442-EV-Board評估板
Sitara AM6x處理器通過子系統(tǒng)支持TSN標(biāo)準(zhǔn)和其它工業(yè)協(xié)議下的千兆位傳輸速率,可在單一網(wǎng)絡(luò)上融合以太網(wǎng)和實時數(shù)據(jù)傳輸。這一特性對于工業(yè)4.0應(yīng)用中的實時通信至關(guān)重要,可在工廠中實現(xiàn)可重新配置軟件的網(wǎng)絡(luò)物理系統(tǒng)。
在通信網(wǎng)絡(luò)中,許多業(yè)務(wù)的正常運行都要求網(wǎng)絡(luò)時間同步。時間同步包括頻率和相位兩個方面的同步,通過時間同步可以使得整個網(wǎng)絡(luò)各設(shè)備之間的頻率和相位差保持在合理的誤差范圍內(nèi)。
本文基于M64xx-T核心板,對其TSN時間同步功能進行了全方位的測試,測試結(jié)果可為用戶進行TSN技術(shù)選型提供參考。
1. 測試環(huán)境內(nèi)核版本,如下所示:
root@M6442:~# uname -a
Linux M6442 5.10.100-rt83-gc1a1291911 #24 SMP PREEMPT_RT Thu Aug 10 09:55:18 CST 2023 aarch64 GNU/Linux
ptp4l版本,如下所示:
root@M6442:~# /opt/ptp4l -v
3.1-00108-g27bc9d5-dirty
2. 創(chuàng)建ptp配置文件,文件內(nèi)容如下所示:
root@M6442:~# cat /opt/ptp.cfg
[global]
tx_timestamp_timeout 400
3. Master側(cè)配置,如下所示:
root@M6442:~# /opt/ptp4l -E -2 -H -i net3 -l 6 -m -q -p /dev/ptp1
ptp4l[847.811]: selected /dev/ptp1 as PTP clock
ptp4l[847.812]: port 1 (net3): taking /dev/ptp1 from the command line, not the attached ptp2
ptp4l[847.823]: port 1 (net3): INITIALIZING to LISTENING on INIT_COMPLETE
ptp4l[847.824]: port 0 (/var/run/ptp4l): INITIALIZING to LISTENING on INIT_COMPLETE
ptp4l[847.824]: port 0 (/var/run/ptp4lro): INITIALIZING to LISTENING on INIT_COMPLETE
ptp4l[854.119]: port 1 (net3): LISTENING to MASTER on ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES
ptp4l[854.119]: selected local clock 001497.fffe.481912 as best master
ptp4l[854.119]: port 1 (net3): assuming the grand master role
4. Slave側(cè)配置與測試
root@M6442:~# /opt/ptp4l -E -2 -H -i net3 -s -l 6 -m -q -p /dev/ptp3 -f /opt/ptp.cfg
ptp4l[1789.231]: selected /dev/ptp3 as PTP clock
ptp4l[1789.246]: port 1 (net3): INITIALIZING to LISTENING on INIT_COMPLETE
ptp4l[1789.247]: port 0 (/var/run/ptp4l): INITIALIZING to LISTENING on INIT_COMPLETE
ptp4l[1789.247]: port 0 (/var/run/ptp4lro): INITIALIZING to LISTENING on INIT_COMPLETE
ptp4l[1791.037]: port 1 (net3): new foreign master 001497.fffe.481912-1
ptp4l[1795.038]: selected best master clock 001497.fffe.481912
ptp4l[1795.038]: port 1 (net3): LISTENING to UNCALIBRATED on RS_SLAVE
ptp4l[1798.038]: master offset -703704169411022 s0 freq ? ? ?+0 path delay ? ? ? 526
ptp4l[1799.040]: master offset -703704169406384 s1 freq ? +4637 path delay ? ? ? 324
ptp4l[1800.038]: master offset ? ? ?-2900 s2 freq ? +1737 path delay ? ? ? 324
ptp4l[1800.039]: port 1 (net3): UNCALIBRATED to SLAVE on MASTER_CLOCK_SELECTED
ptp4l[1801.039]: master offset ? ? ? ? ?2 s2 freq ? +3769 path delay ? ? ? 122
ptp4l[1802.039]: master offset ? ? ? ?596 s2 freq ? +4364 path delay ? ? ? 196
ptp4l[1806.040]: master offset ? ? ? ?234 s2 freq ? +4544 path delay ? ? ? 534
ptp4l[1807.040]: master offset ? ? ? ?137 s2 freq ? +4518 path delay ? ? ? 543
ptp4l[1808.040]: master offset ? ? ? ? 65 s2 freq ? +4487 path delay ? ? ? 543
ptp4l[1809.040]: master offset ? ? ? ? 11 s2 freq ? +4452 path delay ? ? ? 565
ptp4l[1812.041]: master offset ? ? ? ? ?0 s2 freq ? +4450 path delay ? ? ? 568
測試結(jié)果說明如下:
- master offset,表示ptp協(xié)議中定義的主從端時間差(單位:ns);s0、s1、s2,指示器顯示時鐘伺服的不同狀態(tài):s0?表示已解鎖,s1 表示時鐘步進,s2 表示已鎖定。如果伺服處于已鎖定狀態(tài)?(s2),并且 pi_offset_const 選項在配置文件中設(shè)置為負(fù)值,則時鐘不會步進,而只會緩慢調(diào)整;freq,表示時鐘的頻率調(diào)整(以十億分率?(ppb)?為單位);path delay,表示從主時鐘發(fā)送的同步消息的預(yù)計延遲(以納秒為單位)。
由上可知M64xx-T核心板的TSN時間同步性能參數(shù)中,穩(wěn)定單跳時延為600ns以下,抖動小于20ns,時間同步精度20ns。