LAS16-409: Time Sensitive Networking kernel modifications for automotive industrial
來源:投影时代 作者:天创数码
在傳統的音響系統裡,聲音信號是類比信號,它的振幅具有隨時間連續變化的特性。對類比音頻信號進行處理、儲存和傳送都會引入噪聲和信號失真,並且隨著複製次數的增加,每次都會加入新的噪聲和失真,信號品質會越來越差。而數位音頻技術的出現,解決了上述類比信號中的諸多問題。
數位音頻技術,是把類比音頻信號,變換為振幅不變的脈衝信號,音頻信號的資料量,全部包含在脈衝編碼調制(Pulse Code Modulation,PCM)中。各種處理設備引入的噪聲和產生的失真與數位訊息完全分離。因此,數位音頻信號具有:複製不走樣、抗干擾能力強、動態範圍大、可遠距離傳輸、可以遠端監控等優點。
現如今,數位音頻信號還可以融入到網路傳輸系統中,在一條傳輸線路上,同時實行多路音頻信號的傳輸,大大節省了傳輸運行成本,簡化了傳輸線路。
音頻信號的數位化
將類比信號轉換成數位信號,需要對類比信號進行一系列的處理,如圖1所示,先對類比信號進行採樣,再經過低通濾波器,去除掉採樣中產生的高頻失真,透過量化將採樣後的數值調整為整數,再經過二進制編碼後生成數位信號。
圖1 音頻信號的數位化
採樣,是每隔一定的時間間隔,抽取信號的瞬時幅度值。每一秒鐘所採樣的次數叫做採樣頻率。以CD為例,採樣頻率為44.1kHz,即1秒鐘對類比信號進行了44100次取值,如圖2b所示,採樣後的信號變成了多個密布的點。採樣頻率越高,抽取的點密度越高,信號也就越精
圖2a原類比信號頻譜
圖2b採樣後的頻譜
在圖2b中採樣過後的信號,除了原始頻譜之外,還會額外產生一些高頻的失真,形成新的頻譜。這些失真的頻譜以nfu(n為正整數)為中心、左右對稱,它的頻譜分布與原信號的頻譜形狀相同。採用低通濾波器(LPF),把新增加的多餘的頻譜濾掉,就可以恢復原信號的頻譜。
根據奈奎斯特(Nyquist)採樣定理:採樣頻率fs大於或等於採樣信號最高頻率fu的2倍,就可以透過低通濾波器,恢復無失真的原始信號。如果fs<2fu span="">2fu>
圖3 頻譜混疊失真
因此採樣頻率fs,必須大於原信號中最高頻率的2倍以上,新增加的頻譜與原信號的頻譜,才不會相互疊加。例如,人耳的聽音頻率上限是20kHz,採樣頻率最低應為40kHz。
但低通濾波器有一定的截止邊沿寬度,是按一定規律逐步對信號衰減濾除的,為了較好的防止產生高頻失真,通常fs=(2.1~2.5) fu。CD的採樣頻率是44.1kHz,它等於20kHz的2.205倍。
但低通濾波器有一定的截止邊沿寬度,是按一定規律逐步對信號衰減濾除的,為了較好的防止產生高頻失真,通常fs=(2.1~2.5) fu。CD的採樣頻率是44.1kHz,它等於20kHz的2.205倍。
採樣後的振幅值並不是整數,且是隨機變化的。還需要將這些隨機變化的振幅值,透過四捨五入的方法,將其變換為能用二進制數列來表達的數值,這個過程就是量化,單位是bit(比特),如圖4中採樣和量化所示。採樣值是6.4的幅值量化後取整數6,採樣值是3.6的幅值量化後取整數4。
圖4 A/D轉換的三個步驟
將量化後的二進制數組,按照時間順序排列成,可以順序傳送的脈衝序列,這個過程就是編碼。由於數位電路以開關的通和斷(1和0)兩種狀態為基礎,可以大大簡化數位電路的運算,因此二進制編碼,在數位技術中獲得了廣泛的應用。
圖5 量化誤差與量化位數的關係
量化級數越多,量化誤差就越小,聲音質量就越好,如圖5所示,3bit是23個二進制數,6bit是26個二進制數。對於音頻信號,由於動態範圍較大,而且要求的信噪比又高,所以量化的取值大一些,通常為16bit,甚至20-24bit。
乙太網的傳輸方式
乙太網創建於1980年,它是一種可以在互連設備之間,相互傳送數據的技術。發展至今日,因它具有成本低、速率快、可靠性高等特點被廣泛的應用。
我們可以透過乙太網傳送Email、圖片、聲音、影像等等。乙太網路使用CSMA/CD(載波監聽多路訪問及衝突檢測)技術,是一種爭用型的媒介訪問控制協議。
它的工作原理是: 發送數據前先偵聽信道是否空閒 ,若空閒,則立即發送數據。若信道忙碌,則等待一段時間,至信道中的信息傳輸結束後,再發送數據;若在上一段訊息發送結束後,同時有兩個或兩個以上的節點,都提出發送請求,則判定為衝突。若偵聽到衝突,則立即停止發送數據,等待一段隨機時間,再重新嘗試。
我們稱這種傳輸機制為「Best Effort」(盡力而為),也就是說當數據抵達端口後,本著FlFO(先入先出)的原則轉發。不對數據進行分類,當數據進入端口的速度,大於端口能發送的速度時,FIFO按數據到達端口的先後順序,讓數據進入隊列,同時,在出口讓數據按進隊的順序出隊,先進的數據將先出隊,後進的數據將後出隊。
採用CSMA/CD控制方式的特點是:原理比較簡單,技術上容易實現,網路中各工作站處於平等地位 ,不需集中控制,不提供優先級控制。
在乙太網中,我們經常會遇到「頻寬」一詞,它是指在單位時間(一般指的是1秒鐘)內能傳輸的數據量。也就是在規定時間內,從一端流到另一端的資料量,即數據傳輸率。
數位數據流的基本單位是bit(比特),時間的基本單位是s(秒),因此bit/s(比特/秒,也用bps表示)是描述頻寬的單位,1bit/s是頻寬的基本單位。不難想象,以1bit/s的速率,進行通信是非常緩慢的。
幸好我們可以使用通信速率很快的設備,比如56k的調制解調器,利用電話線撥號上網,其頻寬是56000bit/s(1k=1000bit/s), 電信ADSL寬頻上網在512kbit/s至100Mbit/s之間,而現如今的乙太網則可以輕鬆達到100Mbit/s以上(1Mbit/s=1000*1000bit/s=1,000,000bit/s)。
以千兆網(1Gbit/s)為例:假如說交換機的端口頻寬是1Gbit/s,也就是1000,000,000bit/s,則說明每秒可傳輸1000,000,000個二進制的「位」,那麼1bit所佔用的時間是1÷1000,000,000=1ns。也就是每個二進制位(1bit)之間的時間,間隔大於1ns時,就不會發成衝突,如圖6所示。
圖6
但在乙太網傳輸中,並不是以二進制位(bit)來傳輸的,而是以「幀」為單位的。如圖7所示,在一幀中至少包含了46Byte(字節)的數據,那麼一個最小的乙太網幀是72Byte;如果一幀中包含的最大數據是1500Byte,那麼一個最大的乙太網幀是1526Byte。
圖7 乙太網幀結構
網路設備和組件,在接收一個幀之後,需要一段短暫的時間來恢復,並為接收下一幀做準備,也就是相鄰兩幀之間,是有一個間隙的,IFG(Interframe Gap)幀間距。IFG的最小值是12Byte,如圖8所示。
圖8
我們假設這兩幀數據,在千兆網(1Gbit/s)內傳輸,那麼兩幀之間的時間,間隔大於96ns就不會發生衝突。
隨著網路頻寬的提升,千兆網在傳統乙太網的基礎上,對幀的數據量做出了一定的修改。採用了載波延伸(Gamier Extension)的方法,將最小字節擴展到512Byte,即凡是發送幀長不足512Byte時,就填充特殊字符(0F)補足。
當許多短幀需要發送時,如果每一幀都擴展為512Byte,會造成資源的巨大浪費。因此又設定了幀突發(Frame Bursting)的方法,可以解決此問題,第一個短幀使用載波延伸,一旦發送成功,則隨後的短幀連續發送直到1500Byte為止。此期間由於線路始終處於「忙」的狀態,不會有其它站點搶佔信道。
傳統乙太網如何傳輸級時數據流(音、視訊流)
乙太網通過RTP(Real-time Transport Protocol)即時傳輸協議,為數據提供了,具有即時特徵的端對端傳送服務。RTP 本身並不能保證傳送,也不能保證防止無序傳送。因此,想要對所有的數據流進行排序,就離不開對數據的緩衝(Buffer)。
但是,一旦採用緩衝的機制,就又會帶來新的問題——延時。所以我們在網路上聽歌、看電影的時候,都會緩衝後才開始播放。但這個緩衝時間,在專業音、視訊傳輸領域裡,是不能被接受的。
數位音頻信號對乙太網的要求
我們以CD為例,它的採樣頻率是44.1kHz,量化位數是16bit。每次採樣的時間是1÷44.1×1000≈22.7μs。我們對聲音的要求是連續不間斷的,也就是要求每個採樣下的數據傳輸間隔,不能大於22.7μs。
而在千兆網(1Gbit/s)裡,兩幀之間的最小時間間隔只有96ns,遠小於我們所要求的22.7μs,那麼在這個頻寬下,我們是完全可以傳輸連續不間斷的音頻信號的。
如果我們在1Mbit/s的頻寬下傳輸數據,那麼1bit所佔用的時間是1÷1,000,000=1μs,兩幀之間的間隔是96μs,這時候如果傳輸CD數位音頻信號,就會存在斷斷續續的問題了。
從上面兩個例子不難看出,只要網速足夠快,也就是網路有足夠的頻寬,我們就可以很順利的在網路上,傳輸數位音頻信號。但大多數情況下,由於頻寬通常是由多個設備共享的,我們不單單只用它,去傳輸一路數位音頻信號,我們會同時傳送多路數位音頻信號,還會傳輸郵件、網頁、圖片等等其它的數據。而所有的發送端,沒有基於時間的流量控制,那麼這些發送端永遠是盡最大可能發送數據。
這樣來自不同設備的數據流,就會在時間上產生重疊,即我們前文所說的衝突。這一定會影響數位音頻信號的傳輸,為了改善這種傳輸機制,提高部分數據傳輸效率,乙太網透過QoS優先機制進行轉發,可以保證一部分數據的傳輸。
什麼是QoS
QoS(Quality of Service)是服務品質的簡稱,它包括保證傳輸的頻寬,降低傳輸的延時,降低數據的丟失率,以及延時抖動等。按照其工作的能力可分為以下幾種模型:
1、DiffServ(Differentiated Service,區分服務)模型,根據服務要求對不同業務的數據進行分類,對數據按類進行優先級標記,然後有差別地提供服務。先行轉發優先級高的數據,並將優先級低的數據做端口緩存,待網路中無高級別數據時,再轉發低級別數據,如圖9所示。
圖9
AVB 標準定義了兩個流量類型,A類和B類。A類流優先級是5,B類流優先級是4,這兩種數據相比較,A類數據流會被先行轉發。
圖10
2、IntServ(Integrated Service,綜合服務)模型,在節點發送數據前,需要向網路申請資源預留,確保網路能夠滿足數據流的特定服務要求。它可以提供保證服務和負載控制服務兩種服務。保證服務,提供保證的延遲和頻寬,來滿足應用程序的要求;負載控制服務,保證即使在網路過載的情況下,也能對數據提供,與網路未過載時類似的服務。
在網路中大量的數據,極有可能在一瞬間抵達端口,保證服務如果要為每一個數據流,提供QoS服務就變得不可想像了。因此,IntServ模型很難獨立應用於大規模的網路,需要與流量整形(Traffic Shaping)結合使用。
流量整形(Traffic Shaping)
流量整形是為了避免在乙太網中,發生丟棄數據的情況,通常採用漏桶算法(Leaky Bucket)來完成流量整形或速率限制(Rate Limiting)。它的主要目的是控制數據注入到網路的速率,平滑網路上的突發流量。
圖11流量整形示意圖
漏桶算法提供了一種機制,通過它突發流量可以被整形,以便為網路提供一個穩定的流量。在概念上,漏桶算法可以作如下理解:到達的數據被放置在底部,具有漏孔的桶中(數據緩存);數據從漏桶中漏出,以常量速率注入網路,因此平滑了突發流量,如圖12所示。
圖12漏桶算法
主機在每經過一個時間間隔,向網路輸出一個數據包,因此產生了一致的數據流,平滑了突發的流量。AVB 標準定義了兩個流量類型,A類和B類。A類的時間間隔為125μs,B類的時間間隔為250μs。A類要求流具有更緊密的等待時間,並且具有較短的觀察間隔,這意味著其數據包更小,並且更頻繁地傳輸。
圖13
當數據流具有相同尺寸的時候,每個時間間隔,傳輸一個數據的工作機制,沒有任何問題。但對於可變長度的數據來說,這種工作機制可能存在一點問題,此時,最好每個時間間隔,傳輸固定數目的字節。
AVB有兩種流格式:AM824和AAF。AM824支持24bit音頻,iec60958音頻編碼(SPDIF和AES3),SMPTE時間碼和MIDI。對於發送端AM824有三個選項「non-blocking(sync)」、「non-blocking(aync)」和「blocking」。
AM824(non-blocking,synchronous),典型的AVB音頻設備,使用此模式進行傳輸。每個觀察週期發送一幀,每個乙太網幀總發送相同數量的採樣,在48kHz採樣時,每幀包含6個採樣;在96kHz時,每幀包含12個採樣。
AM824 (non-blocking, async packetization),此模式由於打包器和發送器的觀測間隔不同步,有可能發送一個臨時的乙太網幀,其中包含一個或多個採樣。一個打包器處理多個時鐘域的設備,通常採用此格式。因為它可以發送臨時的乙太網幀,在48kHz採樣時,每幀包含7個採樣;在96kHz時,每幀包含13個採樣,它需要預留足夠的頻寬。蘋果Mac採用此模式。
AM824 (blocking)是一些火線設備使用的模式,因為它更容易打包和拆包。在48kHz採樣時,每幀包含8個採樣;在96kHz時,每幀包含16個採樣。
AAF是IEEE p1722a中,定義的新的打包格式。它比AM824開銷低,要求數據流中,每個幀具有相同的大小和格式,並允許16bit、24bit和32bit的量化,以及每個幀的採樣數量選擇。每個幀的大小和格式總是相同的。
圖14
從圖14中我們可以看出幾個典型的AVB流在萬兆網(10Gbps)中的傳輸規律。比如:48kHz採樣32bit的立體聲音頻流,實際需要的頻寬大約是3Mbps,採用Class A的傳輸間隔,1秒鐘發送8000組數據(1÷8000=0.000125s=125μs),其中每組數據最多由80個幀組成。
如果每幀都按照最大數據來傳輸,在前文中提到過最大幀是1526Byte(如圖7中所示),再加上每幀的幀間隔12Byte,共1538Byte,相當於12,304bit(1Byte=8bit),每組80個幀相當於12,304×80=984,320bit,每秒傳輸8000組相當於984,320×8000=7,874,560,000bit/s≈7.87Mbps。那麼在10Gbps的頻寬下,如果保留75%的頻寬用於傳輸AVB流,可以傳輸952個這樣的數據流。
AVB可以實現全雙工的工作模式,每幀的數據量和傳輸的數據類型有關,也和時間間隔有關,從圖14中不難看出,不同類型的數據所佔用的字節,並不是一個絕對的固定值。
流量整形固定了級時數據流(音、視訊流)的發送時間間隔和幀大小,當傳統的異步乙太網數據流(郵件、網頁等)進入網路時,會不會對即時數據流有所影響呢?
802.1Qav:排隊及轉發協議(Queuing and Forwarding Protocol,簡稱Qav)
Qav協議的作用是確保傳統的異步乙太網數據流,不會干擾到AVB的即時數據流。AVB交換機把收到的各種數據分類,分別進入不同的轉發隊列,並重新賦予優先級,其中即時音視訊流數據擁有最高優先級。為了避免衝突需要兩種調度算法,一種是基於可信因子的整形算法CBS(credit based shaper transmission selection algorithm),一種是嚴格的優先級選擇算法。各種不同的普通數據,按照嚴格的優先級算法進行調度,當與流數據發生衝突時,則調用CBS算法。
對時間敏感的即時數據流,轉發採用偽同步模式(Pseudo-synchronous),這個機制依賴於精準時間同步協議(PTP)提供的8kHz時鐘。
在每隔125μs的時間間隙(1÷8000=0.000125s=125μs),包含AVB數據的乙太網等時幀,就會被進行轉發。在優先保證等時幀數據傳輸的條件下,繼續提供普通異步傳輸的服務,這就是Qav的優先級管理(Prioritize)及流量整形(Traffic Shaping)。
當數據經過多個交換機進行傳輸時,即使在相同的頻寬下,也會因為路徑不同,導致傳輸時間的偏差,如何保證在整個網路裡,都具備相同的時間間隔呢?還需要一個時鐘同步機制,將網路中的所有設備,同步到相同的時鐘上,來提高AVB流量整形的精準度。
802.1AS:精準時間同步協議(Precision Time Protocol,簡稱PTP)
時鐘同步的目的,是維護一個全局一致的物理或邏輯時鐘,或者說把分布在各地的時鐘對準(同步起來),使得系統中的資訊、事件有一個全局一致的解釋。
IEEE802.1AS採用點對點的工作模式,時間同步過程只在相鄰設備之間進行,設備自己透過外帶方式,實現接口之間的時間同步,不經過內部交換板。它定義了主時鐘選擇與協商算法、路徑延時測算與補償算法、以及時鐘頻率匹配與調節的機制,可用於生成時鐘,以及對網路音視運系統的修復。
PTP定義了一個自動協商網路主時鐘的方法,即最優主時鐘算法(Best Master Clock Algorithm,簡稱BMCA)。BMCA定義了底層的協商和信令機制,用於標識出AVB局域網內的主時鐘(Grandmaster)。
IEEE802.1AS的核心,在於時間戳機制(Timestamping)。PTP資訊在進出具備IEEE802.1AS功能的端口時,會根據協議觸發對本地即時時鐘(RTC)的採樣,將自己的RTC值,與來自該端口相對應的主時鐘(Master)的資訊進行比較,利用路徑延遲測算和補償技術,將其RTC時鐘值,匹配到PTP域的時間。
當PTP同步機制覆蓋了整個AVB局域網,各網路節點設備間,就可以透過週期性的PTP資訊,交換精確的即時時鐘調整,和頻率匹配算法。最終,所有的PTP節點,都將同步到相同的「掛鐘」(Wall Clock)時間,即Grandmaster時間。資訊交換過程如下:
1. Master發送Sync資訊,記下該資訊的本地發送時間t1。
2. Slave接收到Sync資訊,並記下其接收到該資訊的本地時間t2。
3. Master有兩種方式告訴Slave該Sync資訊的發送時間t1。
1) 將t1時間嵌入到Sync資訊中,這需要某種硬體處理,以獲得高精度。
2)在後續的Follow_Up資訊中發送
4. Slave發送Delay_Req資訊往Master,並記下發送時間t3。
5. Master接收到Delay_Req,並記下該資訊到達時間t4。
6. Master發送Delay_Resp資訊告知Slave t4。
利用這四個時間,可以算出Master和Slave之間的時鐘差值,前提是鏈路是對稱的,即發送和接收延時一樣。計算公式為:
offset = ((t2 - t1) - (t4 - t3))/2
one_way_delay = ((t2 - t1) + (t4 - t3))/2
圖15
在最大7跳的網路環境中,理論上PTP能夠保證時鐘同步,誤差在1μs以內。由於串行連接交換機,會影響延時的對稱性,使同步精度降低,因此在構架AVB網路時,建議採用對稱的鏈路設計。
一旦主時鐘被選定,所有局域網節點的PTP設備,將以此主時鐘為參考值,如果Grandmaster發生變化,整個AVB網路也能透過BMCA,在最短時間內確定新的主時鐘,確保整個網路保持時間同步。
該標準所規範的協議,嚴格保證了級時數據流,在基於乙太網延時固定,或對稱的傳輸媒介中的同步傳送。其內容包括在網路正常運行或添加、移除,或重新配置網路組件和網路故障時,對時間同步機制的維護,為乙太網提供完美的低延遲、低抖動的時鐘,保證高品質的頻寬,使服務快速抵達。
在確保了時間精準之後,如果頻寬不充足會導致漏桶很快存滿,並且有數據溢出,如果是音、視頻數據溢出被丟棄,就會出現斷斷續續的問題,還有可能丟失掉一部分聲音或畫面,因此我們還需要保證,有足夠的頻寬可以傳輸級時音視訊數據流。
802.1Qat:流預留協議(Stream Reservation Protocol,簡稱SRP)
為了提供有保障的QoS,流預留協議確保了即時數據流設備間,端到端的頻寬可用性。如果所需的路徑頻寬可用,整個路徑上的所有設備(包括交換機和終端設備),將會對此資源進行鎖定。
符合SRP標準的交換機,能夠將整個網路可用頻寬資源的75%,用於AVB鏈路,剩下25%的頻寬留給傳統的乙太網流量。
在SRP中,流服務的提供者叫做Talker,流服務的接收者叫做Listener。同一個Talker提供的流服務,可同時被多個Listener接收,SRP允許只保障從Talker到Listener的單向數據流流動。
只要從Talker到多個Listener中的,任意一條路徑上的頻寬資源,能夠協商並鎖定,Talker就可以開始提供即時數據流傳輸服務。
SRP內部週期性的狀態機制,維護著Talker及Listener的註冊資訊,能夠動態的對網路節點狀態進行監測,並更新其內部註冊資訊數據庫,以適應網路拓撲的動態改變。
無論Talker還是Listener,都可以隨時加入或者離開AVB的網路,而不會對AVB網路的整體功能和狀態,造成不可恢復的影響。
1722:音視頻橋接傳輸協議(Audio/Video Bridging TransportProtocol,簡稱AVBTP)
AVBTP定義了局域網內,提供即時數據流服務,所需的二層數據格式,即時數據流的建立、控制及關閉協議。
AVBTP為物理上分隔的音、視訊編解碼器之間,建立了一條帶有低延遲的虛擬鏈路。
各種壓縮的與非壓縮的原始音訊、視訊數據,流經由AVBTP協議進行打包(填充由SRP保留的流ID,打上PTP產生的時間戳,以及媒體類型等相關資訊),透過AVBTP專用的乙太網幀類型進行組播,從流服務的提供者(Talker)發出,由AVB交換機進行轉發,再被註冊過此即時數據流服務的接收者(Listener)接收並解包、解碼然後輸出。
AVBTP每125μs發送一次這個幀,它總是相同大小的數據流。每個流中可以由1-60個通道組成,最多可支持64個流。
AVB——乙太網音視訓橋接技術(Ethernet Audio Video Bridging)是IEEE的802.1任務組,於2005開始制訂的一套基於新的乙太網架構的協議,用於即時音視訊的傳輸協議集。除了以上描述的相關協議之外,還包括:
802.1BA:音視訊橋接系統(Audio Video Bridging Systems)
AVB系統標準定義了一系列,在生產製造AVB相容設備過程中,使用的預設值和設定,使得不具備網路經驗的用戶也能夠去建立、使用AVB網路,而不必對其進行繁瑣的配置。
1733:即時傳輸協議(Real-Time Transport Protocol,簡稱RTP)
RTP是一種基於三層UDP/IP網路的協議,為了在基於IP的三層應用上利用二層AVB的性能,IEEE 1733對RTP進行了擴展,在透過橋接及路由的局域網內,提供時間同步、延遲保障和頻寬預留的服務,以提供即時數據頻流的傳輸。其中涉及到封包格式,流的建立、控制、同步及關閉等協議。
1722.1:負責設備搜尋、列舉、連接管理、以及基於1722的設備之間的相互控制。用於AVB設備的發現,枚舉,連接管理,固件升級等。
TSN (Time Sensitive Network)時間敏感網路IEEE 802.1任務組,在2012年11月的時候,正式將AVB更名為TSN——Time Sensitive Network時間敏感網路。也就是說,AVB只是TSN中的一個應用。
此外,TSN還應用在汽車控制領域、商用電子領域、即時監控或即時c饋的工業領域。
0 comments:
張貼留言