一、
引言
在工業(yè)自動(dòng)化系統(tǒng)控制中,不同的廠商在各自的細(xì)分領(lǐng)域中有自己的通信標(biāo)
準(zhǔn)和協(xié)議,有些雖然是基于傳統(tǒng)以太網(wǎng)實(shí)現(xiàn),但其為了支持自動(dòng)化應(yīng)用對(duì)延時(shí)的
嚴(yán)格要求在傳統(tǒng)以太網(wǎng)的基礎(chǔ)上附加了一些其他技術(shù)和機(jī)制,從而導(dǎo)致各廠家的
協(xié)議互不兼容。因此面對(duì)不同廠家的產(chǎn)品在運(yùn)行、錯(cuò)誤診斷、維護(hù)和存儲(chǔ)時(shí)都會(huì) 存在諸多不便。
隨著工業(yè)物聯(lián)網(wǎng)(IIoT)的興起和工業(yè) 4.0 的提出,目前越來越多的廠家開 始關(guān)注
TSN(Time Sensitive Networking,時(shí)間敏感網(wǎng)絡(luò))。TSN 為以太網(wǎng)提供
確定性性能,并可以滿足不同的數(shù)據(jù)流在同一網(wǎng)絡(luò)統(tǒng)一傳輸,從而可以滿足工業(yè)
自動(dòng)化嚴(yán)格的延時(shí)需求,并最終可以使的工業(yè)通信創(chuàng)建一個(gè)統(tǒng)一的基礎(chǔ)成為可能。
SDN 架構(gòu)的控制平面與數(shù)據(jù)平面分離機(jī)制便于集中管控工業(yè)網(wǎng)絡(luò)的資源,可
以靈活、合理的為不同 QoS 需求的業(yè)務(wù)分配不同的網(wǎng)絡(luò)資源集,提高網(wǎng)絡(luò)利用 率。SDN 和 TSN
技術(shù)的結(jié)合可以提高網(wǎng)絡(luò)利用率的同時(shí)保證時(shí)間敏感流的實(shí)現(xiàn) 實(shí)時(shí)需求,并且可以實(shí)現(xiàn)集中式的網(wǎng)絡(luò)控制、網(wǎng)絡(luò)動(dòng)態(tài)規(guī)劃與調(diào)度,因此 SDN 和
TSN 相結(jié)合的方式可能會(huì)是未來工業(yè)網(wǎng)絡(luò)的發(fā)展方向。
二、
TSN 解決方案
TSN 協(xié)議包含了如 IEEE 802.1AS 時(shí)間步同協(xié)議、802.1Qbv
計(jì)劃流量增強(qiáng)協(xié) 議、802.1Qci 流預(yù)留過濾協(xié)議以及 802.1Qcc 管理控制協(xié)議等。雖然成套的 TSN
協(xié)議還在繼續(xù)擴(kuò)展,功能不斷改進(jìn),但現(xiàn)有標(biāo)準(zhǔn)提供了豐富的功能選擇。OpenTSN 解決方案支持 802.1AS 協(xié)議、802.1Qbv 的
CQF 調(diào)度算法、802.1Qci 的流隊(duì)列映 射其具體實(shí)現(xiàn)結(jié)構(gòu)如圖 1 所示。

圖
1 TSN 整體實(shí)現(xiàn)結(jié)構(gòu)圖
OpenTSN支持如下功能:
- 其可以通過配置設(shè)置為交換設(shè)備/端設(shè)備,也可以通過配置選擇是時(shí)鐘同步的主或從;
- 支持 802.1AS 1588 的時(shí)間同步;
- 支持 CQF 的調(diào)度、基于令牌桶的資源預(yù)留的流量控制;
- 支持設(shè)備端口時(shí)鐘與主時(shí)鐘的同步;
- 支持分組報(bào)文透明時(shí)間的計(jì)算;
OpenTSN 解決方案為 FPGA 實(shí)現(xiàn),其中模塊可以根據(jù)用戶的需求進(jìn)行添加 或刪除即可以實(shí)現(xiàn)用戶需求的迅速定制。
2.1
OpenTSN 時(shí)間同步解決方案
如圖 2 所示,OpenTSN 的時(shí)間同步解決方案是 FPGA 硬件實(shí)現(xiàn)的基于1588
的端到端的方式實(shí)現(xiàn)時(shí)間同步,同步精度可以達(dá)到 100ns 以內(nèi),其中:
- DMAX 模塊用于判斷接收的報(bào)文是否為 PTP 報(bào)文;
- Manage_Ctrl 模塊配置該時(shí)鐘作為主時(shí)鐘或從時(shí)鐘;
- PTP_Ctrl 模塊接收控制信息,并按照控制信息進(jìn)行相應(yīng)的處理;
- Rx_proc 模塊對(duì)接收的 PTP 報(bào)文進(jìn)行解析,提取關(guān)鍵字;
- Tx_proc 模塊按照要求構(gòu)造并發(fā)送 PTP 報(bào)文;
- Cyc_sync 模塊維持時(shí)鐘計(jì)數(shù)器,存儲(chǔ) T1、T2、T3、T4 時(shí)間值,并且完成時(shí)間偏移量的計(jì)算;
- MAX模塊用于匯聚 PTP 的報(bào)文和 DMAX輸出的報(bào)文進(jìn)行控制轉(zhuǎn)發(fā);

圖
2 時(shí)間同步實(shí)現(xiàn)方案
2.2
OpenTSN透明傳輸時(shí)間計(jì)算解決方案
OpenTSN 的透明傳輸時(shí)間(駐留時(shí)間)是通過在 PTP 報(bào)文輸入時(shí)標(biāo)記
時(shí)間戳,并在輸出時(shí)根據(jù)輸入時(shí)標(biāo)記的時(shí)間戳與當(dāng)前時(shí)間進(jìn)行對(duì)比計(jì)算,從 而計(jì)算出 PTP 報(bào)文分組從端口輸入到端口輸出的駐留時(shí)間,如圖 3
所示。

圖
3 透明傳輸時(shí)間計(jì)算解決方案
2.3
OpenTSN 流映射及調(diào)度解決方案
流的映射是根據(jù)分組的 Vlan 頭的 PCP 域進(jìn)行隊(duì)列映射,在 OpenTSN
的實(shí)現(xiàn)中,根據(jù)其分組 PCP 值的不同將其映射為 3 個(gè)不同的等級(jí),即 7、6 優(yōu)先級(jí)最高為 TSN 的時(shí)間敏感流,5-3
為預(yù)約帶寬流、2-0 為盡力轉(zhuǎn)發(fā)流, 如圖 4 所示。
在流分組的處理時(shí),首先是將分組數(shù)據(jù)緩存到數(shù)據(jù)緩存內(nèi),將流分組的 描述信息封裝到
Metadata 內(nèi)進(jìn)行隊(duì)列映射轉(zhuǎn)發(fā)。在映射時(shí) TSN 流是基于 CQF 的乒乓隊(duì)列的形式進(jìn)行輸入控制,即在偶時(shí)間存入偶隊(duì)列
Q2,奇時(shí)間 存入奇隊(duì)列 Q3。在輸出調(diào)度時(shí)偶時(shí)間調(diào)度奇隊(duì)列的數(shù)據(jù)輸出,奇時(shí)間調(diào)度
偶隊(duì)列數(shù)據(jù)輸出,根據(jù)輸入時(shí)間以及調(diào)度時(shí)間的控制從而保證了數(shù)據(jù)分組的 轉(zhuǎn)發(fā)延時(shí)。資源預(yù)留分組的輸出是基于令牌桶算法實(shí)現(xiàn),從而保證了資源預(yù)
留流的帶寬要求。另外 3 類數(shù)據(jù)流均以嚴(yán)格優(yōu)先級(jí)的方式進(jìn)行輸出調(diào)度,即 TSN 時(shí)間敏感流優(yōu)先級(jí)最高,預(yù)約帶寬流次之,盡力轉(zhuǎn)發(fā)流最低。

圖
4 流映射及調(diào)度解決方案
2.4
SDN 與 TSN相結(jié)合的實(shí)現(xiàn)方案思考
SDN 和 TSN 相結(jié)合的實(shí)現(xiàn)中,在原有 UM 中通過插入報(bào)文解析和流
表查找模塊實(shí)現(xiàn),控制平面通過 OpenFlow 協(xié)議向數(shù)據(jù)平臺(tái)下發(fā)流表配置。
硬件數(shù)據(jù)平面首先對(duì)輸入的報(bào)文進(jìn)行解析操作,并針對(duì)解析的結(jié)果提取查找
Key,流表查找模塊則根據(jù)提取的Key值以及控制平面下面的規(guī)則進(jìn)行匹配, 并輸出匹配的查找結(jié)果。根據(jù)流表的配置規(guī)則目前支持的
Action 包括:端 口轉(zhuǎn)發(fā)、丟棄、轉(zhuǎn)發(fā)給 CPU、添加 Vlan 頭等操作,實(shí)現(xiàn)結(jié)構(gòu)圖如圖 5 所示。 輸出控制中的端口調(diào)度實(shí)現(xiàn)基于
2.3 方案實(shí)現(xiàn)。

圖
5 TSN 和 SDN 結(jié)合實(shí)現(xiàn)結(jié)構(gòu)圖
Vlan 頭的添加分兩種情況:
- 作為端系統(tǒng),此方案為端系統(tǒng)時(shí)通過流的區(qū)分以及 OpenFlow
對(duì)流表規(guī)則的配置確定流的優(yōu)先級(jí),從而實(shí)現(xiàn)根據(jù)不同優(yōu)先級(jí)的流調(diào)度。
- 作為交換,輸入的時(shí)間敏感流的報(bào)文應(yīng)已經(jīng)攜帶 Vlan 頭(在端添加,
通過規(guī)劃可以提前了解其優(yōu)先級(jí)以及轉(zhuǎn)發(fā)路徑),此功能只對(duì)資源預(yù) 留和盡力轉(zhuǎn)發(fā)的流添加 Vlan 頭,并進(jìn)行轉(zhuǎn)發(fā)處理。即對(duì)未進(jìn)行
Vlan 頭添加流報(bào)文添加 Vlan 頭,已經(jīng)添加則不進(jìn)行處理。