以太網音視頻橋接技術(Audio Video Bridging over Ethernet,簡稱AVB),是電氣電子工程師學會(IEEE)的一整套借由以太網傳輸音頻和其他實時內容的標準。這些標準早已為20多家芯片制造商、音頻與娛樂信息企業(yè)以及網絡供應商所采用。
AVB通常被誤傳為僅為諸如現場音樂會這樣的大型應用而服務。在本文中,證實了AVB可極好地適用于小型應用中,例如消費音頻、音頻電話會議或者車載娛樂等。為此,倡議使用“菊花鏈AVB”:它以減小AVB系統(tǒng)的容量為代價,避免了對交換機的需求。
在本文中,首先會給出一個AVB的概述。之后,將討論AVB菊花鏈怎樣工作,并且舉出了一個菊花鏈網絡的例子。
藏在殼中的AVB
從高水平的角度來看,AVB是通過為AVB數據流“預留”一部分可用的以太網帶寬來工作的。AVB數據包在已分配的時隙中周期性地被傳輸;同時因為預留了帶寬,所以就不會有沖突。系統(tǒng)中的所有節(jié)點共享一個虛擬時鐘,AVB數據包都有一個“閾時”,它規(guī)定了何時媒體數據包應該結束。AVB數據包可以容納所有類型的時間敏感型數據;本文只關注音頻數據。
例如:一個系統(tǒng)可能包含一個正在傳送數據的主節(jié)點(“主叫方”),以及由左右揚聲器組成的兩個節(jié)點(“被叫方”);由于所有三個節(jié)點都共享同一個通用時鐘,所以左右揚聲器將會同步地產生聲音。
預留帶寬:流預留協(xié)議(SRP、IEEE 802.1Qat)
AVB背后的神奇之處在于它將網絡流量分為兩組:實時流量與剩余流量。所有的實時流量都以一個8 kHz的節(jié)奏被傳輸,剩余流量被安排在它周圍。也就是說,每隔125 us全部實時數據流都傳送其數據并暫停其他數據流;當再沒有實時數據時,其他數據包被傳輸。
過程如圖1為所示。
圖1:兩種數據流傳輸場景。頂部:AVB預留了20%的流量;IP與其他遺留流量被安排在AVB時隙的周圍。底部:AVB預留了80%流量;剩余流量被延遲,或者在它們不能被安排在AVB時隙的周圍時則被丟棄
為了確保為所有實時數據流提供足夠的空間,采用了一種協(xié)議來“分配帶寬”。圖2所示為一個包含2臺交換機和4個節(jié)點的系統(tǒng):節(jié)點A與節(jié)點D在它們之間預留一條數據流(45 Mbit/s),節(jié)點B與節(jié)點C預留另一條數據流(20Mbit/s)。在這些節(jié)點之間的所有交換機將確保提供足夠的帶寬:在交換機X與Y之間將會預留65 Mbit/s的帶寬,是因為從A到D和從B到C的數據流都要經過這條鏈路。如果這恰好是一條100 Mbit/s的鏈路,那么只有35 Mbit/s帶寬可供其它數據流使用,例如網頁數流或者配置信息等。倘若D需要一個來自于A的大網頁,那么數據包在X處可能會被遺棄。
圖2:連接4個節(jié)點的2臺交換機的圖示
采用已分配的帶寬使得AVB能夠在一個2 ms的時間窗口中從端點到端點傳送數據:為了滿足這個限制,AVB允許最多7跳(個中繼段),其中每跳至多累加125 us的延遲。這就意味著一個節(jié)點可以傳送一段未來播放2 ms的音頻需求,且所有的樣本都將及時到達并在適當的時候播放完。
分配帶寬的協(xié)議被稱作數據流預留協(xié)議(SRP、IEEE 802.1Qat),這為AVB標準形成了基礎性的構建單元。通過以8 kHz的節(jié)奏發(fā)送實時數據流,系統(tǒng)中的所有節(jié)點(交換機與終端設備)必須實現SRP并形成數據流。若其中一個節(jié)點是一臺遺留交換機,那么它不會優(yōu)先處理實時數據流,則有可能延遲實時數據流而造成輸出抖動。
通用時鐘:精準時間同步協(xié)議(PTP、 IEEE 802.1AS)
AVB中的所有音頻數據流都與通用時鐘同步;這使得音頻內容制造商與消費者能夠同步地播放和記錄聲音。這個時鐘由“精確時間同步協(xié)議”或者稱為PTP實現。
PTP假定所有節(jié)點都有一個理論上相當好的時鐘(例如一款晶振時鐘),最好是有一個已知的精度(如25 ppm,相當于每天2秒)。通過以太網電纜連接的PTP節(jié)點向彼此發(fā)送周期性的信息、報告時間并且計算其各自時鐘的偏差。擁有最精確時鐘的節(jié)點被選為“主時鐘”(Master)節(jié)點,所有其他節(jié)點都根據主時鐘來估算其相對偏差,這樣使得所有的節(jié)點都能夠計算出一個與主時鐘密切保持同步的本地時鐘。
通過網絡同步時鐘是要付出代價的。假設一個節(jié)點有一個不穩(wěn)定的時鐘(如因為它是溫度敏感型),它的頻率在迅速地變化。這個節(jié)點將注意到其頻率與主時鐘之間的相對變化,它抑或可輕微調整本地時鐘來與匹配新的頻率,但這將暫時地引起主時鐘與本地時鐘之間的一種相位差。或者可以更快地調整頻率,但這在時鐘信號中產生一種更高頻率的抖動。對于音頻來說,大家通??梢栽试S小的、暫時性的相位漂移,將抖動保持在很低的頻率。
IEEE 標準802.1AS中規(guī)定的PTP協(xié)議是AVB的第二個組成單元。它也經常被用于聯上網的計算機(筆記本電腦、服務器),來提供同步時鐘。
流、信道、主叫者與接聽者
AVB建立在“數據流”的基礎上。如果這些數據是音頻,則一條流包含了多個聲道(如立體聲),而每個AVB數據包包含了125 us所有聲道的取樣值,它們也是流的一部分。“主叫者”產生流,節(jié)點產生音頻。一只麥克風或一臺播放MP3文件的筆記本電腦都是主叫者。“接聽者”可以訂閱一條流:一臺揚聲器就是一個典型的接聽者,他將從一條流中通常性地選擇某一個聲道并播放。
一個典型的系統(tǒng)可能包括如下幾種:
● 帶有6個接聽者(如5.1聲道環(huán)繞立體聲)的同一個主叫者(如一個DVD播放器)
● 帶有一組揚聲器的多個主叫者(如一組麥克風),供會議使用
● 幾十個麥克風、幾十個揚聲器,以及一個巨大的調音臺(音樂會現場使用)
一個AVB系統(tǒng)應該是多大或多小沒有統(tǒng)一規(guī)則來規(guī)定。然而,還是存在著實用性上的限制:AVB流都擁有相當大的開銷,它限制了一條以太網線纜所能輸送的流的數量。一條100 Mbit的以太網線纜可以輸送9條立體聲AVB流(總共18個通道),或者1條帶有45個通道的單AVB流。
一種發(fā)現通信協(xié)議(IEEE 1722.1)被用來羅列、發(fā)現和控制所附帶的設備及其功能,這種協(xié)議是從實際數據傳輸中分拆出來的,完全由一臺主機用來配置系統(tǒng)。
菊花鏈
對比其他的數字音頻分發(fā)機制(如USB音頻),由于需要能感知AVB的交換機,AVB可能看起來成本較高。因為這個原因,提出菊花鏈AVB的案例:一臺帶有兩個以太網端口(稱其為A與B)和一臺內置“交換機”的AVB終端設備,引號引住交換機是因為這并不是一臺全功能的交換機。
圖3:如圖所示為支持AVB的筆記本電腦,它通過一個以太網端口接入到一個由兩臺揚聲器和一支麥克風組成的菊花鏈
圖3給出的即為一種布局案例。一臺筆記本電腦與節(jié)點1相連,節(jié)點1與節(jié)點2相連,節(jié)點2與節(jié)點3相連,網絡到此結束。每一個節(jié)點由2個端口(對稱的)組成,連接端口的邏輯如下:
● 如果只有一個端口被插入,節(jié)點就相當于一臺普通的AVB終端設備
● 如果兩個端口都被接入,此節(jié)點主要擔當兩個端口之間的橋:所有數據流都正常通過。此節(jié)點自己將會接入任一經過此設備的AVB數據流,并且偶爾會消除或者產生一個數據包:例如當響應SRP、PTP或配置協(xié)議中任意一個時。
這就意味著依據交換容量節(jié)點需要的資源很少。到達端口A的數據將會流向B,除非它已被本地的節(jié)點預定,到達B的流也將流向A,除非它已被本地的節(jié)點預定。偶爾會在本地生成數據包,節(jié)點必須了解這些數據包應該去向A還是B。橋接A與B的軟件必須是能感知AVB的,并且必須參與進來,例如時鐘同步。
值得注意的是,現在既不需要路由表也不需要緩沖存儲,完成這樣簡單的任務也不需要操作系統(tǒng)。這就意味著在成本方面,一臺菊花鏈AVB終端設備與普通的AVB終端設備外加一個以太網PHY和插口的成本是差不多的。
這種方法有一些局限性:
● 和一臺交換機不同,一個菊花鏈網絡需要為流過整條菊花鏈的末向數據流預留流量;在1臺帶有7個節(jié)點的交換機里,所有7個節(jié)點理論上都可以接收100 Mbits的流量。在一個菊花鏈系統(tǒng)中,這可能需要第一個節(jié)點傳輸700 Mbits/s。然而,在一個AVB系統(tǒng)中,大多數數據流都是多路傳送音頻數據流,很小部分的流量為特殊的節(jié)點預留。因此,鏈上的節(jié)點都接聽到相同的流,一條菊花鏈上幾乎沒有額外的數據流。
● 一秒限制:它指的是為了保證一個2ms的端對端延遲,AVB標準不支持在一個網絡中有多于7臺交換機,這就把一條單菊花鏈限制到7個節(jié)點范圍內。有兩種方法可以解決這個問題:首先,可以在一個封閉系統(tǒng)內放棄那2ms的延遲。其次,可以在菊花鏈中使用一臺交換機。倘若一條4個節(jié)點的菊花鏈與交換機的每個端口都相連,那么一臺交換機就可以使用4倍的節(jié)點數,減少了所需基礎設施的成本。
因為這些限制,菊花鏈AVB非常適合于用于小規(guī)模系統(tǒng)。
菊花鏈實施案例
已經在帶有16個邏輯核的XMOS芯片的基礎上開發(fā)出了一種菊花鏈AVB節(jié)點。系統(tǒng)的硬件和軟件結構如圖4所示。的系統(tǒng)所用硬件包括:
● 一片帶有16個邏輯核的xCORE多核微控制器
● 兩個帶有磁體和插口的以太網PHY
● 一個可以生成字時鐘的低抖動鎖相環(huán)(PLL)
● 一個帶有輸入輸出級的編碼解碼器(CODEC)
圖4:菊花鏈AVB解決方案樣例的軟件和硬件架構
微控制器運行7個任務來控制2個以太網端口:輸入數據包、輸出數據包和兩個端口間的路由數據包。另外6個任務實現AVB棧,分別是主叫者/接聽者、PTP與媒體時鐘恢復、I2S控制、SRP/MRP和1722.1恢復與控制任務。所有的13個任務適合于128kByte的片上存儲,從而不再需要排除外部RAM。用一片外部閃存芯片來存儲固定數據和開機映像。其軟件與高通道數AVB產品的軟件非常相似,唯一不同的部分是MII接口和緩存。
通過采用一片XMOS sliceKIT卡加兩片以太網子卡與一片音頻子卡來構建了一個系統(tǒng)。圖5為一張介紹4個菊花鏈節(jié)點堆疊的照片。菊花鏈節(jié)點堆疊與一臺筆記本電腦相連,它將兩個節(jié)點作為“左”和“右”聲道。(音頻子卡自帶雙立體聲輸入和雙立體聲輸出;這次演示只運用了一個單音頻輸出。)
筆記本電腦可以發(fā)現兩個節(jié)點,因而我們可以將我們的音頻輸出重新指向到兩臺揚聲器。每個時鐘的示波器波形圖表明兩個聲道在播放時沒有明顯的相位差。相同的硬件/軟件架構可被廣泛應用,如構建一個會議電話系統(tǒng),或者驅動一個功放(P/A)系統(tǒng)。
圖5:菊花鏈原型
結論
我們已經證明我們能夠構建一個低開銷的AVB系統(tǒng),而不需要全功能的AVB交換機。這減少了AVB的成本,并使菊花鏈系統(tǒng)得以被構建。