一、
引言
在工(gōng)業自(zì)動化系統控制中,不同的廠(chǎng)商在各自(zì)的細分領域中有自(zì)己的通信标
準和(hé)協議(yì),有些(xiē)雖然是基于傳統以太網實現(xiàn),但(dàn)其爲了(le)支持自(zì)動化應用(yòng)對(duì)延時(shí)的
嚴格要求在傳統以太網的基礎上(shàng)附加了(le)一些(xiē)其他(tā)技術和(hé)機制,從(cóng)而導緻各廠(chǎng)家的
協議(yì)互不兼容。因此面對(duì)不同廠(chǎng)家的産品在運行、錯誤診斷、維護和(hé)存儲時(shí)都會(huì) 存在諸多不便。
随着工(gōng)業物聯網(IIoT)的興起和(hé)工(gōng)業 4.0 的提出,目前越來(lái)越多的廠(chǎng)家開(kāi) 始關注
TSN(Time Sensitive Networking,時(shí)間敏感網絡)。TSN 爲以太網提供
确定性性能(néng),并可以滿足不同的數據流在同一網絡統一傳輸,從(cóng)而可以滿足工(gōng)業
自(zì)動化嚴格的延時(shí)需求,并最終可以使的工(gōng)業通信創建一個統一的基礎成爲可能(néng)。
SDN 架構的控制平面與數據平面分離機制便于集中管控工(gōng)業網絡的資源,可
以靈活、合理(lǐ)的爲不同 QoS 需求的業務分配不同的網絡資源集,提高(gāo)網絡利用(yòng) 率。SDN 和(hé) TSN
技術的結合可以提高(gāo)網絡利用(yòng)率的同時(shí)保證時(shí)間敏感流的實現(xiàn) 實時(shí)需求,并且可以實現(xiàn)集中式的網絡控制、網絡動态規劃與調度,因此 SDN 和(hé)
TSN 相結合的方式可能(néng)會(huì)是未來(lái)工(gōng)業網絡的發展方向。
二、
TSN 解決方案
TSN 協議(yì)包含了(le)如 IEEE 802.1AS 時(shí)間步同協議(yì)、802.1Qbv
計(jì)劃流量增強協 議(yì)、802.1Qci 流預留過濾協議(yì)以及 802.1Qcc 管理(lǐ)控制協議(yì)等。雖然成套的 TSN
協議(yì)還在繼續擴展,功能(néng)不斷改進,但(dàn)現(xiàn)有标準提供了(le)豐富的功能(néng)選擇。OpenTSN 解決方案支持 802.1AS 協議(yì)、802.1Qbv 的
CQF 調度算(suàn)法、802.1Qci 的流隊列映 射其具體實現(xiàn)結構如圖 1 所示。
圖
1 TSN 整體實現(xiàn)結構圖
OpenTSN支持如下(xià)功能(néng):
- 其可以通過配置設置爲交換設備/端設備,也(yě)可以通過配置選擇是時(shí)鐘(zhōng)同步的主或從(cóng);
- 支持 802.1AS 1588 的時(shí)間同步;
- 支持 CQF 的調度、基于令牌桶的資源預留的流量控制;
- 支持設備端口時(shí)鐘(zhōng)與主時(shí)鐘(zhōng)的同步;
- 支持分組報(bào)文(wén)透明(míng)時(shí)間的計(jì)算(suàn);
OpenTSN 解決方案爲 FPGA 實現(xiàn),其中模塊可以根據用(yòng)戶的需求進行添加 或删除即可以實現(xiàn)用(yòng)戶需求的迅速定制。
2.1
OpenTSN 時(shí)間同步解決方案
如圖 2 所示,OpenTSN 的時(shí)間同步解決方案是 FPGA 硬件實現(xiàn)的基于1588
的端到(dào)端的方式實現(xiàn)時(shí)間同步,同步精度可以達到(dào) 100ns 以内,其中:
- DMAX 模塊用(yòng)于判斷接收的報(bào)文(wén)是否爲 PTP 報(bào)文(wén);
- Manage_Ctrl 模塊配置該時(shí)鐘(zhōng)作(zuò)爲主時(shí)鐘(zhōng)或從(cóng)時(shí)鐘(zhōng);
- PTP_Ctrl 模塊接收控制信息,并按照控制信息進行相應的處理(lǐ);
- Rx_proc 模塊對(duì)接收的 PTP 報(bào)文(wén)進行解析,提取關鍵字;
- Tx_proc 模塊按照要求構造并發送 PTP 報(bào)文(wén);
- Cyc_sync 模塊維持時(shí)鐘(zhōng)計(jì)數器,存儲 T1、T2、T3、T4 時(shí)間值,并且完成時(shí)間偏移量的計(jì)算(suàn);
- MAX模塊用(yòng)于彙聚 PTP 的報(bào)文(wén)和(hé) DMAX輸出的報(bào)文(wén)進行控制轉發;
圖
2 時(shí)間同步實現(xiàn)方案
2.2
OpenTSN透明(míng)傳輸時(shí)間計(jì)算(suàn)解決方案
OpenTSN 的透明(míng)傳輸時(shí)間(駐留時(shí)間)是通過在 PTP 報(bào)文(wén)輸入時(shí)标記
時(shí)間戳,并在輸出時(shí)根據輸入時(shí)标記的時(shí)間戳與當前時(shí)間進行對(duì)比計(jì)算(suàn),從(cóng) 而計(jì)算(suàn)出 PTP 報(bào)文(wén)分組從(cóng)端口輸入到(dào)端口輸出的駐留時(shí)間,如圖 3
所示。
圖
3 透明(míng)傳輸時(shí)間計(jì)算(suàn)解決方案
2.3
OpenTSN 流映射及調度解決方案
流的映射是根據分組的 Vlan 頭的 PCP 域進行隊列映射,在 OpenTSN
的實現(xiàn)中,根據其分組 PCP 值的不同将其映射爲 3 個不同的等級,即 7、6 優先級最高(gāo)爲 TSN 的時(shí)間敏感流,5-3
爲預約帶寬流、2-0 爲盡力轉發流, 如圖 4 所示。
在流分組的處理(lǐ)時(shí),首先是将分組數據緩存到(dào)數據緩存内,将流分組的 描述信息封裝到(dào)
Metadata 内進行隊列映射轉發。在映射時(shí) TSN 流是基于 CQF 的乒乓隊列的形式進行輸入控制,即在偶時(shí)間存入偶隊列
Q2,奇時(shí)間 存入奇隊列 Q3。在輸出調度時(shí)偶時(shí)間調度奇隊列的數據輸出,奇時(shí)間調度
偶隊列數據輸出,根據輸入時(shí)間以及調度時(shí)間的控制從(cóng)而保證了(le)數據分組的 轉發延時(shí)。資源預留分組的輸出是基于令牌桶算(suàn)法實現(xiàn),從(cóng)而保證了(le)資源預
留流的帶寬要求。另外(wài) 3 類數據流均以嚴格優先級的方式進行輸出調度,即 TSN 時(shí)間敏感流優先級最高(gāo),預約帶寬流次之,盡力轉發流最低(dī)。
圖
4 流映射及調度解決方案
2.4
SDN 與 TSN相結合的實現(xiàn)方案思考
SDN 和(hé) TSN 相結合的實現(xiàn)中,在原有 UM 中通過插入報(bào)文(wén)解析和(hé)流
表查找模塊實現(xiàn),控制平面通過 OpenFlow 協議(yì)向數據平台下(xià)發流表配置。
硬件數據平面首先對(duì)輸入的報(bào)文(wén)進行解析操作(zuò),并針對(duì)解析的結果提取查找
Key,流表查找模塊則根據提取的Key值以及控制平面下(xià)面的規則進行匹配, 并輸出匹配的查找結果。根據流表的配置規則目前支持的
Action 包括:端 口轉發、丢棄、轉發給 CPU、添加 Vlan 頭等操作(zuò),實現(xiàn)結構圖如圖 5 所示。 輸出控制中的端口調度實現(xiàn)基于
2.3 方案實現(xiàn)。
圖
5 TSN 和(hé) SDN 結合實現(xiàn)結構圖
Vlan 頭的添加分兩種情況:
- 作(zuò)爲端系統,此方案爲端系統時(shí)通過流的區(qū)分以及 OpenFlow
對(duì)流表規則的配置确定流的優先級,從(cóng)而實現(xiàn)根據不同優先級的流調度。
- 作(zuò)爲交換,輸入的時(shí)間敏感流的報(bào)文(wén)應已經攜帶 Vlan 頭(在端添加,
通過規劃可以提前了(le)解其優先級以及轉發路徑),此功能(néng)隻對(duì)資源預 留和(hé)盡力轉發的流添加 Vlan 頭,并進行轉發處理(lǐ)。即對(duì)未進行
Vlan 頭添加流報(bào)文(wén)添加 Vlan 頭,已經添加則不進行處理(lǐ)。