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