音頻系統(tǒng)標(biāo)準(zhǔn)和協(xié)議探討
當(dāng)今的音頻設(shè)計(jì)挑戰(zhàn)在于如何模擬實(shí)際的聲音并通過各種音頻設(shè)備進(jìn)行傳送。聲音可以來自任何方向,實(shí)際上,我們的大腦能夠計(jì)算并感知聲音的來源。例如,當(dāng)戰(zhàn)斗機(jī)從一點(diǎn)飛到另一點(diǎn)時(shí),它所產(chǎn)生的聲音實(shí)際上來自無數(shù)個(gè)位置點(diǎn)。但是,我們不可能用無數(shù)個(gè)揚(yáng)聲器來再現(xiàn)這種音頻體驗(yàn)。
利用多聲道、多揚(yáng)聲器系統(tǒng)和先進(jìn)的音頻算法,音頻系統(tǒng)能夠惟妙惟肖地模擬真實(shí)聲音。這些復(fù)雜的音頻系統(tǒng)使用ASIC或DSP來解碼多聲道編碼音頻,并且運(yùn)行各種后處理算法。聲道數(shù)量越多,意味著存儲器和帶寬要求越高,這就需要使用音頻數(shù)據(jù)壓縮技術(shù)來編碼并減少所要存儲的數(shù)據(jù)。這些技術(shù)還能用來保持聲音質(zhì)量。
與數(shù)字音頻一同發(fā)展的還有音頻標(biāo)準(zhǔn)和協(xié)議,其目的是簡化不同設(shè)備之間的音頻數(shù)據(jù)傳輸,例如,音頻播放器與揚(yáng)聲器之間、DVD播放器與AVR之間,而不必將數(shù)據(jù)轉(zhuǎn)換為模擬信號。
本文將討論與音頻行業(yè)相關(guān)的各種標(biāo)準(zhǔn)和協(xié)議,同時(shí)也會探究不同平臺的音頻系統(tǒng)結(jié)構(gòu)以及各種音頻算法和放大器。
標(biāo)準(zhǔn)和協(xié)議
S/PDIF標(biāo)準(zhǔn)——該標(biāo)準(zhǔn)定義了一種串行接口,用于在DVD/HD-DVD播放器、AVR和功率放大器等各種音頻設(shè)備之間傳輸數(shù)字音頻數(shù)據(jù)。當(dāng)通過模擬鏈路將音頻從DVD播放器傳輸?shù)揭纛l放大器時(shí),會引入噪聲,該噪聲很難濾除。不過,如果用數(shù)字鏈路代替模擬鏈路來傳輸音頻數(shù)據(jù),問題就會迎刃而解。數(shù)據(jù)不必轉(zhuǎn)換為模擬信號就能在不同設(shè)備之間傳輸,這是S/PDIF的最大優(yōu)勢。
該標(biāo)準(zhǔn)描述了一種串行、單向、自備時(shí)鐘的接口,可互連那些采用線性PCM編碼音頻采樣的消費(fèi)和專業(yè)應(yīng)用數(shù)字音頻設(shè)備。它是一種單線、單信號接口,利用雙相標(biāo)記編碼進(jìn)行數(shù)據(jù)傳輸,時(shí)鐘則嵌入數(shù)據(jù)中,在接收端予以恢復(fù)(見圖1)。此外,數(shù)據(jù)與極性無關(guān),因此更易于處理。S/PDIF是從專業(yè)音頻所用的AES/EBU標(biāo)準(zhǔn)發(fā)展而來。二者在協(xié)議層上一致,但從XLR到電氣RCA插孔或光學(xué)TOSLINK的物理連接器發(fā)生了改變。本質(zhì)上,S/PDIF 是AES/EBU格式的消費(fèi)型版本。S/PDIF接口規(guī)范主要由硬件和軟件組成。軟件通常涉及S/PDIF幀格式,硬件則涉及設(shè)備間數(shù)據(jù)傳輸所使用的物理連接媒介。用于物理媒介的各種接口包括:晶體管與晶體管邏輯、同軸電纜(以RCA插頭連接的75Ω電纜)和TOSLINK(一種光纖連接)。
圖1 S/PDIF雙相標(biāo)記編碼流
S/PDIF協(xié)議——如上文所述,它是一種單線串行接口,時(shí)鐘嵌入數(shù)據(jù)之中。傳輸?shù)臄?shù)據(jù)采用雙相標(biāo)記編碼。時(shí)鐘和幀同步信號在接收器端與雙相解碼數(shù)據(jù)流一同恢復(fù)。數(shù)據(jù)流中的每個(gè)數(shù)據(jù)位都有一個(gè)時(shí)隙。時(shí)隙以一個(gè)躍遷開始,并以一個(gè)躍遷結(jié)束。如果傳輸?shù)臄?shù)據(jù)位是“1”,則時(shí)隙中間還會增加一個(gè)躍遷。數(shù)據(jù)位“0”則不需要額外躍遷,躍遷之間的最短間隔稱為單位間隔(UI)。
S/PDIF幀格式——首先驅(qū)動數(shù)據(jù)的最低有效位。每個(gè)幀有兩個(gè)子幀,分別是32個(gè)時(shí)隙,共64個(gè)時(shí)隙(見圖2)。子幀以一個(gè)前導(dǎo)碼開始,后面跟隨24位數(shù)據(jù),最后以攜帶用戶數(shù)據(jù)和通道狀態(tài)等信息的4位結(jié)束。子幀的前4個(gè)時(shí)隙稱為前導(dǎo)碼,用于指示子幀和塊的開始。前導(dǎo)碼有三個(gè),每一前導(dǎo)碼均包含一個(gè)或兩個(gè)持續(xù)時(shí)間為3UI的脈沖,從而打破雙相編碼規(guī)則。這意味著,該模式不可能存在于數(shù)據(jù)流中的其他地方。每個(gè)子幀都以4位前導(dǎo)碼開始。塊的開始用前導(dǎo)碼“Z”和子幀通道的開始“A”表示。前導(dǎo)碼“X”表示通道“A”子幀的開始(不同于塊的開始),前導(dǎo)碼“Y”表示通道“B”子幀的開始。
圖2 S/PDIF子幀、幀和塊格式
I2S總線——在當(dāng)今的音頻系統(tǒng)中,數(shù)字音頻數(shù)據(jù)在系統(tǒng)內(nèi)部的各種器件之間傳輸,例如編解碼器、DSP、數(shù)字IO接口、ADC、DAC和數(shù)字濾波器之間。因此,為了增強(qiáng)靈活性,必須有一個(gè)標(biāo)準(zhǔn)的協(xié)議和通信結(jié)構(gòu)。專為數(shù)字音頻而開發(fā)的I2S總線規(guī)范現(xiàn)已被許多IC廠商采用,它是一種簡單的三線同步協(xié)議,包括如下信號:串行位時(shí)鐘(SCK)、左右時(shí)鐘或字選擇(WS)以及串行數(shù)據(jù)。WS線表示正在進(jìn)行傳輸?shù)穆暤?。?dāng)WS為邏輯高(HI)電平時(shí),右聲道進(jìn)行傳輸;當(dāng)WS為邏輯低(LO)電平時(shí),左聲道進(jìn)行傳輸。發(fā)送器以二進(jìn)制發(fā)送數(shù)據(jù),首先補(bǔ)足MSB。幾乎所有DSP的串行端口都將I2S作為串行端口模式之一。音頻編解碼器也支持這種模式。
采樣速率轉(zhuǎn)換器(SRC)——這是音頻系統(tǒng)的一個(gè)重要組成部分。采樣速率轉(zhuǎn)換既可以通過軟件實(shí)現(xiàn),也可以通過一些處理器的片內(nèi)硬件來支持(見圖3)。它主要用于將數(shù)據(jù)從一個(gè)采用特定采樣速率的時(shí)鐘域轉(zhuǎn)換到另一個(gè)采用相同或不同采樣速率的時(shí)鐘域。
圖3 采樣速率轉(zhuǎn)換過程的四個(gè)不同階段
音頻可以采用不同采樣速率進(jìn)行編碼,其他任務(wù)由編解碼器完成。某些情況下需要改變編解碼器的主時(shí)鐘,以支持特定采樣速率。從采用某一采樣速率的音頻轉(zhuǎn)換為采用不同采樣速率的音頻時(shí),即時(shí)改變主時(shí)鐘并不是一件容易的事,有時(shí)甚至不可能完成,因?yàn)樾枰碾娐钒迳系挠布?。因此,采樣速率轉(zhuǎn)換一般在將數(shù)據(jù)驅(qū)動到編解碼器之前執(zhí)行。這樣,編解碼器的采樣速率不需要改變,可以保持恒定。串行端口以采樣頻率1發(fā)送音頻數(shù)據(jù)到另一端的SRC和編解碼器,然后以采樣頻率2從SRC讀取音頻數(shù)據(jù)。
SRC分為兩種類型:同步SRC和異步SRC。與同步SRC連接的輸出器件為“從機(jī)”,與異步SRC連接的器件為“主機(jī)”。“主機(jī)”是指驅(qū)動SCK和幀同步信號的器件。
SRC利用輸出采樣速率極高的插值濾波器和零階保持器(ZOH)將離散時(shí)間信號轉(zhuǎn)換為連續(xù)時(shí)間信號。插值值被饋送至ZOH,并以Fs out的輸出采樣頻率進(jìn)行異步采樣。