近年來掀起了嵌入式系統(tǒng)應用的熱潮,嵌入式系統(tǒng)已經(jīng)滲透到我們生活中的每個角落,工業(yè)、服務業(yè)、消費電子等等。Windows CE是一個開放的、可裁剪的、32位的實時嵌入式操作系統(tǒng)。它具有可靠性好、實時性高、內(nèi)核體積小的特點,被廣泛用于各種嵌入式智能設備的開發(fā);在這些嵌入式應用中,音頻模塊成為了大多數(shù)產(chǎn)品不可或缺的一部份。
音頻系統(tǒng)的硬件實現(xiàn)
本設計中的音頻驅(qū)動采用Unified Audio模型實現(xiàn),基于Intel Xscale PXA272處理器和TI 的TSC2101音頻芯片,使用了基于I2S(Inter-IC Sound)總線的音頻系統(tǒng)體系結(jié)構(gòu),系統(tǒng)原理圖如圖1所示。Intel Xscale PXA272芯片集成了I2S控制器,通過I2S總線處理音頻數(shù)據(jù)。
圖1 系統(tǒng)原理圖
I2S是菲利浦公司提出的串行數(shù)字音頻總線協(xié)議。PXA272的I2S控制器控制了I2S鏈接,I2S控制器由數(shù)據(jù)緩沖、狀態(tài)和控制寄存器、計數(shù)器組成。它們將系統(tǒng)內(nèi)存和外設的音頻解碼芯片(TSC2101)連接,產(chǎn)生同步音頻。播放音頻文件時,I2S控制器通過I2SLINK連接將系統(tǒng)內(nèi)存中數(shù)字化的聲音樣本發(fā)送到外設的TSC2101音頻解碼芯片中,然后由TSC2101芯片的數(shù)模轉(zhuǎn)換器將數(shù)字音頻信號轉(zhuǎn)換成模擬信號。
I2S控制器通過DMA方式來訪問。DMA方式下,DMA控制器只能通過串行音頻數(shù)據(jù)寄存器(SADR)訪問FIFO。DMA控制器通常以8、16或32字節(jié)大小的塊存取FIFO隊列數(shù)據(jù)的。
本設計中采用的音頻芯片TSC2101集成了立體聲音頻解碼、觸摸屏控制芯片,立體聲DAC能以高達48Kb/s的采樣率播放音頻文件,專供PDA、PMP、智能手機和MP3播放機使用。TSC2101 將揚聲器放大器、耳機放大器和四線觸摸屏控制器與音頻編解碼器集成再一起,帶有一個立體聲頭戴送受話器接口、一個手機送受話器接口、一個單聲道8Ω揚聲器放大器以及一個32Ω受話器驅(qū)動器,并集成有一個電池監(jiān)控器和一個片上溫度傳感器。
TSC2101芯片的電路設計如圖2所示。
圖2 TSC2101芯片電路設計
本設計為TSC2101在智能手機中的運用,CP-IN為通信模塊的語音輸入,CP-OUT則為音頻系統(tǒng)到通信模塊的輸出,在實際的應用中MIC1可以通過TSC2101的內(nèi)部PGA(可編程增益放大)、AGC(自動增益控制)電路連接到CP-OUT,實現(xiàn)智能手機的話筒功能;同時,MIC1輸入還可以通過內(nèi)部的ADC將語音數(shù)據(jù)采樣后經(jīng)I2S總線傳輸?shù)教幚砥鞔鎯臻g實現(xiàn)錄音功能。當然,在智能手機通話的同時,還可以實現(xiàn)通話錄音功能。電路圖中的38~41引腳為SPI接口,42~46引腳為I2S控制引腳,引腳9~12為觸摸屏輸入,引腳27和28為音頻輸出可以連接耳機,引腳26連接手機聽筒,引腳33、35連接外置揚聲器。
采用Unified Audio模型實現(xiàn)音頻驅(qū)動
音頻驅(qū)動的一種方法,是采用Unified Audio模型,即不分層的音頻驅(qū)動模型,這種模型的音頻驅(qū)動支持標準的波形驅(qū)動接口。在分層的音頻驅(qū)動中,驅(qū)動程序由MDD和PDD組成,MDD層執(zhí)行與硬件平臺無關(guān)的功能,PDD層則是直接與硬件平臺相關(guān)的操作,而在Unified Audio模型中,MDD和PDD的分層是不必要的,圖3是Unified Audio模型的音頻驅(qū)動結(jié)構(gòu)。
圖3 Unified Audio模型的音頻驅(qū)動結(jié)構(gòu)
在這種模型下,音頻驅(qū)動仍然是以流接口的形式實現(xiàn),分別實現(xiàn)了WAV-close()、WAV-PowerDown()、WAV-Deinit()、 WAV-PowerUp()、WAV-Init()、WAV-Read()、WAV-IOControl()、WAV-Seek()、WAV-Open()、WAV-Write()這幾個標準的流接口函數(shù)。
DMA緩存區(qū)設計與實現(xiàn)
由于音頻設備驅(qū)動程序設計對設備的實時性要求較高,所以DMA緩存區(qū)設計以及合理地利用緩存區(qū)加快對音頻數(shù)據(jù)的處理,減少延時變得十分重要。
DMA控制器是使CPU處理其他與數(shù)據(jù)總線無關(guān)的處理,而由DMA控制器負責數(shù)據(jù)傳輸?shù)臋C制,這種機制使得CPU從繁重的數(shù)據(jù)傳輸中解脫出來,可以執(zhí)行其他計算,從而提高了系統(tǒng)運行速度。PXA272的DMA控制器提供了32個DMA通道,0~31。這些通道提供了flow-through 和fly by的數(shù)據(jù)傳輸方式。
在本設計中,使用雙緩存區(qū)DMA通道設計,如圖4所示,當CPU正在處理某一個緩存區(qū)數(shù)據(jù)的同時,DMA控制器可以完成另一個緩存區(qū)數(shù)據(jù)的傳輸,如此交替下去,則可以提高系統(tǒng)的并行能力,提高音頻處理的實時性。
本設計中使用MapDMABuffers()函數(shù)實現(xiàn)DMA音頻數(shù)據(jù)緩存區(qū)的分配,函數(shù)主要實現(xiàn)的功能是:分配接收和發(fā)送音頻數(shù)據(jù)的DMA緩存區(qū)。
結(jié)束語
本文分析了嵌入式Windows CE操作系統(tǒng)基于TSC2101音頻芯片的音頻系統(tǒng)實現(xiàn)的基本原理及其驅(qū)動程序模型;并結(jié)合具體程序重點描述了DMA雙緩存區(qū)的實現(xiàn)方法和原理,本設計在實際運用中能夠滿足音頻系統(tǒng)的實時性要求。
-
處理器
+關(guān)注
關(guān)注
68文章
19833瀏覽量
233914 -
嵌入式
+關(guān)注
關(guān)注
5144文章
19575瀏覽量
315727 -
WINDOWS
+關(guān)注
關(guān)注
4文章
3609瀏覽量
91081 -
總線
+關(guān)注
關(guān)注
10文章
2956瀏覽量
89456
發(fā)布評論請先 登錄
Windows CE下基于TSC2101的音頻控制系統(tǒng)電路設計

音頻總線I2S協(xié)議:I2S收發(fā)模塊FPGA的仿真設計

全面解析I2S、TDM、PCM音頻總線
怎么實現(xiàn)Windows CE下基于TSC2101的音頻系統(tǒng)的設計?
TSC2101,pdf(Audio Codec w/ Int
TSC2101觸摸屏,電池,音頻驅(qū)動程序的WinCE操作系統(tǒng)

基于FPGA的PCI-I2S音頻系統(tǒng)設計

i2s音頻總線學習

幾種常見的I2S數(shù)據(jù)格式

Windows CE下基于TSC2101的音頻系統(tǒng)設計
I2S、TDM、PCM音頻總線
I2S總線的定義和特點
TSC2101 WinCE 5.0驅(qū)動程序

TSC2101觸摸屏、電池和音頻WinCE驅(qū)動程序

評論