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