嵌入式系統(tǒng)中的IIS音頻接口技術
IIS(Integrate Interface of Sound)即集成音頻接口,在上個世紀80年代首先被Philips公司用于消費產(chǎn)品的音頻設備,并在一個稱為LRCLK(Left/Right CLOCK)的信號機制中經(jīng)過多路轉(zhuǎn)換,將兩路音頻信號合成單一的數(shù)據(jù)隊列。當LRCLK為高時,左聲道數(shù)據(jù)被傳輸;LRCLK為低時,右聲道數(shù)據(jù)被傳輸(也可以反過來,高低與左右聲音的對應可以自定義)。對于多通道系統(tǒng),在同樣的BCLK和LRCLK條件下,并行執(zhí)行幾個數(shù)據(jù)隊列也是可能的。由于IIS、PCM和類似的音頻接口不能提供寄存器入口,因此需要獨立的控制接口。
IIS總線一般具有4根信號線,如圖1所示,包括串行數(shù)據(jù)輸入(IISDI)、串行數(shù)據(jù)輸出(IISD0)、左/右聲道選擇(IISLRCK)和串行數(shù)據(jù)時鐘(IISCLK);產(chǎn)生IISLRCK和IISCLK的是主設備。
2 IIS音頻驅(qū)動實現(xiàn)
音頻驅(qū)動有3種模式:MDD/PDD模式、Wavedev2模式、UAM模式。它們相同的地方很明顯:接口相同,都是流驅(qū)動,透過流接口與上層的waveapi.dll交互。
第1種MDD/PDD模式是最早的模式,也是其他驅(qū)動常見的分層模式。如果使用CE提供的MDD(wavem—dd.1ib),會受到一些限制:僅支持一個設備;一個設置僅支持一個流;對循環(huán)的支持不大可靠;對流的支持較弱。當然,由于提供了源碼,可以自己修改MDD,突破以上這些限制。
第2種Wavedev2模式,是因為2000年的Smartphone項目產(chǎn)生了新的要求,這些需求需要大改MDD/PDD。比如上面的限制2,根據(jù)CE的開發(fā)歷史,此時waveapi.dll也不支持software mixer,這就是說只能同時允許一個應用在播放。所以根據(jù)當時情況,CE的多媒體開發(fā)團隊設計了Wavedev2模式。這是一個單體(不分層)的驅(qū)動模式,平臺相關的模塊都在hwctxt.h和hwetxt.cpp中,此外還加入了midi支持、software mixer支持、S/PDlF接口、gain class接口、forcespeaker接口,等等。因此,開發(fā)Smartphone或者PPC,這個模式是挺適合的。
第3種UAM模式,即統(tǒng)一音頻模式(Unified AudioModel),在開發(fā)WinCE4.2時,要增加對DirectSound的支持,而且有一些音頻設備是支持硬件mixer的,對此使用UAM是很好的選擇。
本測試采用MDD/PDD的驅(qū)動結(jié)構,下面講述本驅(qū)動的關鍵點。
2.1 DMA控制及驅(qū)動
通俗地講,DMA(直接內(nèi)存存取)不需要CPU干擾也不消耗CPU資源,可以把音頻數(shù)據(jù)自動地從系統(tǒng)總線搬到IIS總線上;如果音頻平均按采樣頻率44.1 kHz、16位字長、左右2聲道計算,碼流為1.411 Mbps,通常在1~3Mbps,所以采用DMA傳輸十分必要。
2.2 時鐘配置
只要位時鐘和采樣時鐘能匹配好,IIS數(shù)據(jù)格式主從一致,DMA配置好,音頻就可以工作了。
IIS數(shù)據(jù)格式主要分3種:左對齊、右對齊、IIS格式。聲音聽起來“怪怪地”,就是數(shù)據(jù)格式不對。頻率計算方法如表1所列。
IIS主設備時鐘頻率可以通過采樣頻率來選擇。IIS主設備時鐘頻率是由IIS預分頻器產(chǎn)生的(IIS主設備時鐘頻率=MCLK/預分頻器值),因此必須選擇合適的預分頻器的值和CODECLK的采樣頻率類型(256或者384fs),才能獲得合適的IISLRC采樣頻率(IISLRCK頻率=IIS主設備時鐘頻率/CODECLK的采樣頻率類型);串行位采樣頻率類型(16/32/48fs)可以通過配置每個通道的串行位數(shù)和CODECLK采樣頻率類型來完成,它們之間的關系如表2所列。
如晶振頻率為16.934 4 MHz,通過384分頻為44.1kHz(采樣頻率就是這么來的)。
位時鐘頻率=采樣頻率×數(shù)據(jù)位×2=44.1 kHz×16×2=1.411 MHz
對于其他頻率的晶振或是來自于總線的時鐘頻率,就要計算出IISC0N中的分頻系數(shù)了,以最大限度擬合CODECLK。
2.3 CODEC控制
目前有SPI、I2C和L3三種總線控制CODEC。L3總線(L3MODE、L3CLOCK、L3DATA)都是由通用的I/O端口來控制的。其中L3接口實際上是一種串行接口,它由3根信號線組成,完成處理器和C0DEC之間的數(shù)據(jù)和控制信號交換。UDAl341TS就是采用L3接口的。
L3DATA:處理器接口數(shù)據(jù)線。
L3MODE:處理器接口模式信號線。
L3CLOCK:處理器接口時鐘信號線。
三種控制方式中以I2C最為常見。其中I2C又分為寄存器方式和I/O模擬方式兩種,I/O模擬方式的可移植性好,僅I/0模擬方式的I2C驅(qū)動又可分為8位、9位、16位,以及是否帶子地址、是否可以連讀連寫、是否要兼容SCCB總線。
2.4 音量控制節(jié)點
使用音量調(diào)節(jié)的地方較多。圖2是音量控制節(jié)點的一般模型。
①處的增益由播放器的音量控制功能決定,最大是0dB。也就是說,最多只能還原出原信號強度。
②和③處的增益由Coded IC自身控制,WM8731沒有產(chǎn)生增益功能,②處容易引入信號失真,一般置為O dB,codec加大音量時主要在③處提高增益。
④、⑤處由功放決定,最大也是O dB,便攜式功放通常是電流型,靠放大電流去推動揚聲器。
①+②+③三處的增益和超過O dB時,1 kHz的信號就會產(chǎn)生失真,但是大部分音樂的強度都小于1 kHz測試方波時的強度,所以這三項的和可以比O dB略大,但不能太大,否則會引起信號失真。
a.應用程序通過調(diào)用waveOutSetVolume,與手工在控制面板中調(diào)節(jié)音量等效。
b.調(diào)節(jié)MediaPlay播放器音量時,通過消息跟蹤可以判斷是否改變了①處的增益,即ARM的DSP數(shù)字輸出增益。
c.調(diào)節(jié)控制面板里的音量時,會發(fā)現(xiàn)CODEC的功放寄存器值也會改變。猜想是通過IIS總線實現(xiàn)控制相關寄存器,因為在IoControl消息中沒有發(fā)現(xiàn)通過I2C改寫任何寄存器。
通過分析調(diào)整音量的方法,有圖2所示的5個節(jié)點可控制,目的是音量最大失真最?。鹤將偬庉敵鲈鲆孀畲蟮那闆r下,②處PCM Volume置為0 dB(此處放大最容易引入失真),功放置最大時便能獲得不失真最大音量了;如果想再增大音量只能犧牲失真度了,人耳最多接收10%THD(Total Hamonic Distortion,總諧波失真),此種情況下主要靠調(diào)節(jié)③處的增益。
3 提高音量的有效方法
①在C0DEC與功放不可更改的前提下,選擇合適的喇叭至關重要(不同的喇叭效果大不一樣)??趶酱笮〔坏龋埮栌猩钣袦\。在選擇喇叭時一般要求功放的額定功率是喇叭額定功率的2倍以上,喇叭的實際最大承受功率是其額定輸出功率的2~3倍。喇叭的靈敏度參數(shù)很重要,一般是O.1 W時85 dB左右,還要看額定功率時的靈敏度。靈敏度用來衡量將電能轉(zhuǎn)換為聲音的效率,只講額定功率不講額定功率時的靈敏度是沒有意義的,額定功率下的低靈敏度無益于電阻絲“發(fā)熱不出聲”。
②提高功放電壓,根據(jù)P=U·U/R,很小的提升電壓,就能獲得平方級的功率提升。如由4 V→6V,功率可提高2.25倍。
③改善音腔設計。
④原則上不建議以犧牲保真度來換取音量。如不得已而為之,使用時也要嚴格控制在THD<10%。
3.1 功放與揚聲器的匹配和選擇
功放的輸出功率一定要大于喇叭的輸出功率,否則不但會影響聲音效果,而且會加速功放的損壞。如選擇的喇叭阻抗比功放的輸出阻抗高時,將影響放大器的輸出功率;而當喇叭的阻抗過低時(如低于4Ω),使用的功率放大器與額定的輸出功率又不相匹配,這種情況下失真將增大。如果喇叭的阻抗符合要求,額定功率又比功放的額定功率稍小,失真就相對小,喇叭的聲音質(zhì)量就好。
揚聲器的選擇:
①口徑大,紙盆深,轉(zhuǎn)換效率就高,承受功率也越大;口徑小,紙盆過淺,高頻響應就不好。
②用手輕按同樣口徑的紙盆時,比較費力的揚聲器諧振頻率高,動態(tài)范圍較大。
③堅硬、密實紙盆的揚聲器,高頻性能一般較好;粗疏、柔軟紙盆的揚聲器,音質(zhì)一般較柔和。
④放大器應該有足夠的功率輸出,尤其是晶體管放大器。揚聲器的最大輸出功率應該是其額定功率的3倍以上,并且揚聲器的最大輸入功率應該等于放大器的輸出功率,以保護揚聲器的安全。
⑤阻抗匹配是最基本的要求:對于Class D類功效,由于PWM易引起高頻干擾,因此還要考慮合適的感抗,以起到濾波作用。如圖3所示,線圈的阻抗和感抗組成了一個低通濾波器,理想情況下將阻隔PWM產(chǎn)生的高頻諧波干擾。這里選擇增益為一3 dB時的頻率作為高頻的截止點fc=RL/2πL。當阻抗為8Ω時,令截止頻率為20kHz,則有L=RL/2πfc=8Ω/(2π×20 kHz)=64μH。8 Ω的便攜式揚聲器感抗為20~100μH。如果實際感抗>64μH,將限制帶通特性;如果實際感抗<64μH,截止頻率會>20 Hz,此時又會引入噪聲。所以,選擇揚聲器時感抗要盡量接近64μH;對于AB類功放,則不作嚴格要求。
3.2 音腔設計
好的音腔,同樣的功率下,音量會更大。
①音腔內(nèi)要平,不要有高低不平的落差感。
②出音孔是音腔面積的15%~20%(手機中常用的)。
③音腔要盡量深,形成“V”型出音,效果較好。
④前后音腔要隔開,以免前后聲音互相干擾。這個原理和喇叭放出的聲音比起喇叭裝在箱子里面的聲音要小很多的原因一致。
⑤前音腔:揚聲器前面音腔的大小主要由揚聲器上面的泡棉高度所決定,一般來說至少要留O.2 mm的泡棉。前音腔主要對高頻聲音有所影響,對于SPL(SoundPressure Level,聲壓級)影響不是太大。
⑥后音腔:要足夠大,如果能夠達到手機喇叭的等效聲容積的2倍的水平最好;更大的后音腔使得揚聲器在低頻可以得到更好的效果。
⑦前音腔和出音孔要設計合理、恰當:前音腔和出聲孔形成一個Helmholtz共鳴器,會在某個頻率點出現(xiàn)諧振峰。若不是特殊設計,可以把該諧振峰調(diào)整到高頻端(>10 kHz),相應地就要求前腔淺,出音孔面積大;若有特殊設計要求,譬如為了提高響度,可以把諧振峰調(diào)整到3.4~6 kHz,不過帶來的結(jié)果將是聲音偏單調(diào),而且對音源的要求會苛刻。
⑧密封性:最基本的是要讓揚聲器的前音腔和后音腔分開,保證良好的密封性(盡可能地保證手機音腔的密封性)。良好的密封性使得揚聲器在低頻段可以得到更好的效果(可以得到更大、更柔美的聲音)。
4 音效測試
由于人耳對音頻發(fā)聲的感官不盡相同,且主觀差異較大,曾想寫一篇文章,專門介紹音效的評測及控制方法,需控要什么樣的儀器,實驗方案如何。但由于實驗條件和本人能力有限,加上專業(yè)性很強,不敢寫也怕寫不好,只好作罷。以下是Wolfson Microelectronics plc Jason Fan所列(僅供參考),同時期待這類文章早日出現(xiàn)。
①基本儀器:穩(wěn)壓電源、內(nèi)置濾波器的毫伏表(可以測量輸出的噪聲和輸出的功率)、失真儀、聲壓儀、信號發(fā)生器。
②高級儀器:AP音頻分析儀、音頻全頻掃描儀(用來測試揚聲器功率)。
③音頻系統(tǒng)的評估指標有基本指標和升級指標。
基本指標有:輸出功率、信噪比、頻率響應、失真度、左右通道分離度、左右聲道平衡度。
升級指標(需使用音頻分析儀測量)有:THD+N、動態(tài)范圍、FFT。
作音頻測試時,一般會使用一些標準的測試信號,如左右聲道1 kHz O dB;左右聲道30 Hz O dB;左右聲道100Hz 0 dB;左右聲道10 kHz 0 dB;左右聲道16 kHz O dB;左聲道l kHz O dB;右聲道1 kHz 0 dB。
上述儀器都會附帶使用方法和實驗方案。
5 總 結(jié)
面對音視頻驅(qū)動,首先不要有畏懼心理而覺得其高深莫測不敢去接觸。掌握基礎原理和上述要點后,一般的IIS音頻CODEC均能驅(qū)動。在本人驅(qū)動WMXXX系列(WM9712/WM8978/WM8960/WM8731)、UDAl314、PCMl770、UCBl440、CS4344等芯片的過程中,均得到了有效驗證。
在應用CS42L52時,發(fā)現(xiàn)背景噪聲明顯,但耳機音質(zhì)很好,說明噪聲來自于功放;一上電不做任何初始化照樣有,進一步說明來自功放,而且不隨音量改變而改變。不能正面降噪,后來采取的規(guī)避措施是:沒有DMA傳輸時關掉聲音通道,此問題后來通過新老電路板對比,查出是揚聲器的輸出端所接LC回路中電感參數(shù)不當產(chǎn)生了自激。把電感換成O Ω電阻后,噪聲基本消除。
在ARM中,晶振以12 MHz和16.934 4 MHz最為常見(視頻系統(tǒng)中也有27 MHz或28.XXX MHz),系統(tǒng)外圍總線是50 MHz,能不能配成精準的44.1 kHz或48kHz,要視各芯片自身的PLL了,這一點要格外重視。如果頻率相差太多,也會引入噪聲且有語速不正?,F(xiàn)象。
選型建議:
①選型時,一定要貼在自己的電路板上實測,不能僅憑供應商的DEMO板演示。
②背景噪聲有沒有,在正版歌曲的前5 s空白時間基本上可以聽出來。
③要看看芯片是否已量產(chǎn)且是不是已被人采用,口碑是參考的重要因素。
WM9712l帶有四線電阻Touch接口,在MP4視頻播放器方案中應用較為普遍。WM897x在手機中或智能手機采用得比較多;在MP3或是低成本方案中,PCMl770占不少份額;歐勝(Wolfson)推出的WM897x系統(tǒng)IIS音頻協(xié)議不但提高了系統(tǒng)的集成度,也提高了系統(tǒng)的音頻質(zhì)量;WM897x以DSP微處理器為內(nèi)核,可將風聲等過濾來提高音頻系統(tǒng)的錄音功能,新產(chǎn)品還采用了5波段與3D音頻系統(tǒng)的均衡來提高音頻輸出以及可編程阻態(tài)濾波器消除噪聲。這些系統(tǒng)通常也支持時鐘頻率在12~19MHz的麥克風及手機喇叭的驅(qū)動部分,可進一步減少產(chǎn)品中元器件的數(shù)量。為使高質(zhì)量音頻喇叭以及壓電型喇叭的功耗可以達到900 mW,使用了數(shù)字式錄音回放限制器,以防止喇叭的過量輸出。