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