時間敏感網絡的關鍵技術——整形器
文:宋華振2019年第三期
導語:關于TSN,也有些人問為什么要一個網絡?因為現在的實時數據和非實時數據都是不在一個網絡里傳輸的,因此,如果采用TSN就可以只用一個網絡接口了,其實,這個非常容易理解——當年為何要開發現場總線?
越來越多人似乎對TSN(時間敏感網絡)感興趣了,大家希望有一些通俗易懂的介紹。不過,通俗易懂也非易事,前幾期曾經寫到了TSN的目標和任務,延遲測量、標準幾個話題,現在繼續試圖通過“更為簡單的方式”來介紹一下TSN的關鍵問題—整形器(Shaper)這個話題。
一、為什么需要一個網絡?
關于TSN,也有些人問為什么要一個網絡?因為現在的實時數據和非實時數據都是不在一個網絡里傳輸的,因此,如果采用TSN就可以只用一個網絡接口了,其實,這個非常容易理解——當年為何要開發現場總線?最直觀的好處就是接線少,為此產生的接頭也少,設備的體積也可以做的再小一些,能耗也會更低一些,你說這有什么意義?
如果有1億個設備之前需要連接,設備-設備間平均電纜長度10米,那么節省的電纜就能繞地球25圈。這個很重要,牽扯到技術的經濟性,不得不多說幾句,下面是這次的正題,關于整形器的事情。
二、數據隊列排序
TSN是一個“橋接”網絡,就是有中間的交換機連接的,對于各種實時以太網而言,為了實時性,都是通過Hub連接,Hub屬于直接端口轉發的,而交換機就有數據隊列,就像奧運會每個國家都要進入主席臺亮個相,每個隊列的數據都是有標配的,他的入場順序雖然按字母順序,但東道國在最后一個出場,這就是隊列里的排列策略,而且每個國家的隊列也有標配,就是旗手、國旗就是這個隊列的標識—代表哪個國家,后面就是參賽選手,屬于數據負載,大的國家參與的項目多,就隊伍比較大,小國家比如什么薩爾多瓦,可能就幾個人跳著舞過來了。
數據進入交換機后形成隊列,然后隊列的數據怎么被傳輸,這個策略由“Shaper”來決定的,這個Shaper,翻譯為整形器也可以,或者賦形器也行,確定的翻譯似乎也沒有。
我們知道TSN是IEEE802.1Q發展起來的,IEEE802.1Q代表大的標準族,Qxx代表子集,IEEE802.1Q的大致發展順序如下:
圖1嚴格優先級(IEEE802.1Q-1998)
圖2加權優先級(IEEE802.1Qaz)
圖3基于信用的整形器IEEE802.1Qat(采用信用來評估發送,整形的兩個隊列可以有最高優先權)
圖4時間感知整形器(IEEE802.1Qbv-增加了門控制器和VIP通道)
圖5周期性排隊與轉發(IEEE802.1Qch)
下面略微詳細地介紹一下這幾個整形器,再增加一個IEEE802.1Qbu+IEE
E802.3br搶占式機制。
三、整形器的詳細介紹
1.CBS基于信用的整形器
汽車行業最開始做的叫做IEEE802.1AVB,它由幾個標準共同構成,前面說過的時鐘同步IEEE802.1AS是一個,其中IEEE802.1Qav(采用FQTSS-為時間敏感數據流進行轉發和隊列排序),即為時間敏感型數據提供“Shaping”-整形,也可以理解為“整容”,在這里它采用了一個稱為CBS(Credit-BasedShaper)整形器,簡單說,除了其它BestEffort外,有兩個隊列被賦予較高的優先級,這兩個隊列依據Credit進行數據的交替傳輸,例如你是A隊列,如果沒有在傳輸你的信用會以idleSlope的速率增加,當你的隊列正在傳輸數據時,你的信用會以SendSlope的速率下降,當你的隊列傳輸完成時,你的信用就清0,你的信用低于B隊列,你等待時間越長你的信用越高,因此,不會因為別人優先級高就輪不到你了。
圖6CBS整形器的工作
CBS限制每個整形流量類別不超過其預先配置的帶寬限制(由于帶寬密集型應用,例如音頻和視頻,最大帶寬的75%)。CBS與SRP(StreamReservedProtocol-流預留協議,這個也需要單獨介紹,因為它是屬于IEEE802.1Qat作為IEEE802.1Q的基礎協議)結合使用可將每個橋的延遲限制在250μs以下。總的來說,IEEE802.1Qav以太網AVB標準保證A類的最差情況下延遲低于2毫秒,B類低于50毫秒,最多7個網絡跳躍。
不過,CBS缺點是這種機制下平均延遲會增加,盡管CBS限制每個整形器流量類別不超過預先配置帶寬限制(對于帶寬密集型最大帶寬75%),并且采用CBS與SRP結合可以讓每個橋接延遲現在在250μs以下,不過這對于工業應用而言還是延遲太大,因此,工業網絡參考的是Qbv和Qbu+802.3br的整形器。
(1)汽車行業會讓TSN快速成長
不過,大家要注意,TSN在汽車行業的大量使用的話會對TSN有非常大的推進作用,目前已經在進入測試運行階段(你們知道,汽車行業列裝可是需要非常長的測試驗證周期的,不是隨便上車就用的),像大牌廠商Audi、BMW、Benz這種總是要為天下先的德國大牌已經開始進入應用階段了,而且,據說目前汽車行業對TSN的意見比較統一,因為CAN總線帶寬已經不能勝任未來輔助駕駛(ADAS)的需求了,汽車邁入“以太網”時代已然指日可待了—前幾天和石林才聊起這個TSN在汽車行業的應用,他就摔給我一條消息“三星在歐洲車展宣布成立汽車產業發展基金,投了9000萬美元給TTTech,因為后者為奧迪提供了車載以太網系統”,說的就是TSN。
汽車要是用上TSN,那就未來前景誘人了,因為一個車上面得多少個TSN節點啊?少說也得30個吧?想想TSN的芯片提供商們一定在算,全球有5000萬臺車,以后每個車30個節點,那就是15億個芯片的需求啊!
這個潛在的市場會讓TSN的成本降低的,想想當年,CAN總線在汽車行業的大量應用才讓CAN總線在其它的領域變得經濟—是的,只有規模才能經濟。
2.時間感知整形器TAS
IEEE802.1Qbv定義了TAS(TimeAwarenessShaper),如圖7,在TAS的整形器中,GCL(GateControlList)周期性的控制門的開/關,TAS需要從發送方(Talker)到接收方(Listener)中間的所有網橋進行時間同步,對于橋中的每個端口,TAS根據已知且商定的時間表進行開關驅動動作,而數據調度則可以根據每個節點及隊列的優先級進行定義,在IEEE802.1Qbv的實現中,那些需要實時傳輸的數據流通常被第一個安排進行傳輸,這就是所謂的“ScheduleTrafficQuene”,需要在時間調度配置時預先予以確定,而另一個數據隊列稱為“ReservedTraffic”——可以理解為預留通道,它并非周期性的,但是,可能一來就得緊急走,就像高速公路的應急通道一樣,平時不用,但是遇到消防車、救護車的時候這個車道可以被拿來用,因為這種事情并非周期性發生,但是,它發生的時候又別緊急。
當然,TAS可以和CBS整形器混用-像圖8,除了原定計劃的Schedule和Reserved外,還可以增加一個CBS整形器對其隊列內部的數據進行按照信用的排序調度。
圖7TAS時間感知整形器
圖8即是一個TAS門控制機制與CBS的混合機制
圖8TAS+CBS混合的整形器
工業領域的開發者通常會基于Qbv機制來開發整形器,在時鐘同步和門控制的基礎上,融合各種數據流調度方式,可以將CBS、CQF等進行整合構成自身的應用,而另一方面IEC60802工作組也將會協同各個企業進行互操作的統一規范與標準。
3.搶占幀機制IEEE802.1Qbu+IEEE802.3br
在IEEE802.1Qbv中所采用的TAS整形器存在一個問題,就是“Guardband”,因為除了Scheduled和Reserved幀外,其它隊列的稱為“BestEffort”。這些是非周期性的數據幀,因此,它們的特點就是“雖然,他們的時間要求并非嚴格,但是你不知道它什么時候需要傳輸”,但是為了確保嚴格時間要求的數據傳輸時,網絡是可用的,即空閑的,因此,Qbv給每個周期預留了一個“標準以太網”幀作為“GuardBand”稱為保護帶寬,這個長度要說起來,對于千兆網絡而言,這個Guardband所預留的1.5kb也是需要大約1.25微秒左右的時間損耗的。為了節省這么點帶寬,TSN工作組的人們又開發了搶占式MAC的IEEE802.1Qbu+IEEE802.3br的搶占式MAC的方式,以便能夠不要浪費這些帶寬。
圖9搶占式MAC的結構
對于圖9而言,MAC層分為eMAC(快速)和pMAC(可被搶占),它可以使得以太網幀被最小到64字節的傳輸,這也同樣為了保護高優先級隊列的傳輸特性,因為如果在高優先級需要傳輸時,前面有一個低優先級隊列正在傳輸數據,而且,它還特別長,占用較多的傳輸時間,它就可以搶占方式獲得傳輸,而被搶占的則會拆分,然后在下一個時段傳輸。
當然,對于被搶占幀而言,其傳輸必須以完整的幀方式匯合,這中間牽扯到重新的分包和CRC校驗,然后再到MAC聚合層進行重新封裝為完整包。搶占式MAC這種機制主要解決低優先級隊列對于高優先級隊列傳輸的影響,當然了搶占式機制也可以與TAS整形器混用,如圖10所示。
圖10TAS+搶占式MAC的混合模式
當然對于搶占式機制而言,需要橋節點和終端節點支持LLDP(IEEE802.1AB-鏈路層發現協議),因此802.1Qbu+802.3br這個是需要交換機在硬件上的支持能力的,也不知道會增加多少硬件成本。
4.IEEE802.1Qch運行的CQF整形器
為了提高數據的確定性,人們繼續努力尋找一種更為有效的整形器,在IEEE802.1Qbv和Qci基礎上設計了CQF機制,并定義為IEEE802.1Qch標準,CQF是CyclicQueuingandForwarding,即周期性排隊與轉發機制,這個機制由Qci-用于流濾波與監測標準對入口的隊列進行處理,然后在隊列里將2個緩沖(也可以是3個或更多),其核心機制在于“數據包每個周期在每個橋僅走一步”,如果選擇4和5兩個隊列,則這兩個隊列對數據進行排隊,在同一跳轉節點上,隊列4的門是寫入數據,而對隊列5發送數據,而到了下一個周期,隊列4發送,而隊列5則接收數據,這樣,交替開關4和5隊列的門,這樣就可以形成一個TAS中的GateControlList所開/關的門會使得隊列形成一個周期性排隊,轉發的過程,這使得整個數據的延遲為一個傳輸過程+一個跳轉過程的延遲,即,數據傳輸的延遲被“確定”了。
圖11CQF的排隊機制
下面幾張圖用于顯示數據包各個End節點經過橋節點然后數據的整個傳輸過程,分為四個周期,每個周期中,數據包僅移動一步。
圖12CQF機制中數據包每個周期經過一個橋
圖12顯示了各個終端節點的數據經過橋節點的過程,我們可以看到每個顏色的數據包在每個周期里僅移動經過每個橋(Hop)。
Qci是按照流量進行過濾和監測(Per-StreamFilteringandPolicing),它是處于隊列的入口端與排隊前的處理部分。它的角色就是在數據進入隊列時進行過濾與監測處理,包含了三個主要的功能:
圖13Qci的功能(藍色部分)
(1)通過MAC地址、目標地址、VLAN和/或IP地址組件識別特定的數據流;
(2)基于每個端口輸入調度來接受或放棄數據,正確的包必須正確的時間窗口內到達并在正確的端口被接收
(3)指派數據包到一個輸出隊列選擇器。
在Qci中對數據進入隊列進行預先的判斷,然后排隊轉發構成整個CQF機制,這個在IEEE定義為IEEE802.1Qch標準。
CQF也可以與搶占機制進行配合,使得可以在隊列中避免低優先級反轉壓制高優先級數據的傳輸。
5.ATS-IEEE802.1Qcr
為了解決非周期性數據的傳輸零擁堵丟包問題,并且對于周期性的數據傳輸而言,網絡的嚴格時鐘同步和隊列保護帶寬等原因無法最大的使用到網絡帶寬,又進一步優化那些對于時間同步非嚴苛任務的帶寬利用,開發了ATS整形器,在IEEE802.1Qcr中定義,IEEE802.1Qcr是一個異步數據流整形器ATS(AsynchronousTrafficShaper),它的是一個基于緊急度的調度器(UrgencyBasedScheduler),ATS旨在通過每跳重塑TSN數據流,ATS并不要求橋和終端節點同步,對于高實時要求和非實時業務混合業務模式下,ATS也能保持帶寬的最大利用率。
圖14ATS的處理機制
它采用了一種稱為RCSD(速率控制服務規則),RCSD是一種非工作保存類的分組服務規程,包括速率控制靜態優先級和速率控制的最早期限優先。RCSD分組調度由兩部分組成:速率控制器實現速率控制策略,調度器根據一些調度策略實現分組調度,例如靜態優先級,先到先服務或最早到期日期。通過分離速率控制器和調度器,RCSD有效地將每個流的帶寬與其延遲界限解耦,即,為單個流分配規定量的帶寬與延遲界限無關。因此,RCSD可以支持低延遲和低帶寬流。
引入為了解決相對于CBS/TAS-時間感知整形器屬于Time-Trigged,那么ATS則屬于Event-Trigged方式,各個整形器基于數據調度的不同應用需求而設計,而且是可以混用的。
中傳動網版權與免責聲明:
凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.hysjfh.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。
本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。
如涉及作品內容、版權等問題,請在作品發表之日起一周內與本網聯系,否則視為放棄相關權利。

關注伺服與運動控制公眾號獲取更多資訊

關注直驅與傳動公眾號獲取更多資訊

關注中國傳動網公眾號獲取更多資訊
- 運動控制
- 伺服系統
- 機器視覺
- 機械傳動
- 編碼器
- 直驅系統
- 工業電源
- 電力電子
- 工業互聯
- 高壓變頻器
- 中低壓變頻器
- 傳感器
- 人機界面
- PLC
- 電氣聯接
- 工業機器人
- 低壓電器
- 機柜