基于ARM9處理器的嵌人式音頻系統(tǒng)設(shè)計
隨著 Internet技術(shù)和多媒體技術(shù)的快速發(fā)展,語音通信技術(shù)的應(yīng)用越來越廣泛,也越來越受到重視[1]。如今的嵌人式設(shè)備日益復(fù)雜化,功能比以前更加豐富,性能也越來越高。在多種嵌人式終端產(chǎn)品中,音頻處理功能已成為不可缺少的重要組成部分,高質(zhì)量的音效是當(dāng)前發(fā)展的重要趨勢。
本文利用 ATMEL公司 的 AT91RM9200型微處理器 和 Philips公司的 UDA1341型立體聲音頻編解碼器設(shè)計了一種嵌入式音頻系統(tǒng)。該嵌入式音頻系統(tǒng)硬件部分采用基于IIS總線的音頻系統(tǒng)體系結(jié)構(gòu),其主要硬件電路后文作了詳細(xì)的介紹。軟件上,筆者以嵌入式Linux操作系統(tǒng)作為平臺,重點(diǎn)介紹該音頻系統(tǒng)在此平臺下的驅(qū)動程序的實現(xiàn)。
2 AT91RM9200處理器簡介
AT91RM9200是 ATMEL公司針對系統(tǒng)控制以及通信領(lǐng)域推出的基于ARM920T內(nèi)核的新型微處理器[2],在高性能和低功耗特性方面具有極大的優(yōu)勢,而且具有很高的主頻,最高可達(dá)到180 MHz。該處理器具有獨(dú)立的16K指令和16K數(shù)據(jù)cache,全功能的MMU虛擬內(nèi)存管理單元,以及內(nèi)部的16KB SRAM和128KB ROM,EBI接口控制器。片上集成了豐富的外圍接口,包括網(wǎng)絡(luò)MAC、USB控制器、SDRAM 控制器、CF接口、NAND flash接口、IIC接口、JTAG調(diào)試器以及支持 256 MB的地址空間。而且處理器還提供自舉模式,供用戶寫入引導(dǎo)代碼,方便 Linux等操作系統(tǒng)的移植。
3 UDA1341TS音頻芯片及IIS總線簡介
Philips公司的 UDA1341TS是一塊功能強(qiáng)大的專用語音處理芯片[3]。該芯片集語音放大、濾波、采樣、A/D和D/A轉(zhuǎn)換等功能于一體,并且能進(jìn)行數(shù)字語音處理。本設(shè)計使用的AT91RM9200處理器具有一個IIS音頻接口,此接口采用 DMA方式傳輸數(shù)據(jù)。在該方式下,由DMA控制器取代CPU,獲得總線控制權(quán),從而實現(xiàn)內(nèi)存與外設(shè)或者內(nèi)存之間的不同區(qū)域之間大量數(shù)據(jù)的快速傳輸。用DMA接口傳輸數(shù)據(jù),不僅可以降低CPU負(fù)擔(dān),還可以節(jié)省系統(tǒng)的軟件設(shè)計時間,降低編程難度。而 UDA1341TS支持IIS總線格式,并且具有數(shù)字語音處理特性,由此決定了UDA1341TS與AT91RM9200處理器的電路連接比較簡單,并且能實現(xiàn)語音的 A/D和 D/A等預(yù)處理,而不需要再額外增加專門的A/D和 D/A器件。
需要說明的是,數(shù)字音頻系統(tǒng)需要多種多樣的集成電路,因此,為這些電路提供一個標(biāo)準(zhǔn)的通信協(xié)議非常重要。IIS總線是由SONY和PHILIPS公司等電子巨頭共同提出的數(shù)字音頻總線協(xié)議,全稱是內(nèi)部集成電路聲音總線 (Inter IC Sound Bus),它是一種串行的數(shù)字音頻總線協(xié)議,該總線專門用于音頻設(shè)備之間的數(shù)據(jù)傳輸,為數(shù)字立體聲提供一個序列連接至標(biāo)準(zhǔn)編解碼器[4],目前很多音頻芯片和處理器都提供了對IIS總線的支持。筆者根據(jù)IIS總線的原理,結(jié)合AT91RM9200處理器和數(shù)字音頻輸入/輸出接口芯片 UDA1341TS的結(jié)構(gòu)特點(diǎn),設(shè)計的嵌入式音頻系統(tǒng)可以運(yùn)用到很多類似的音頻系統(tǒng)中。
4 系統(tǒng)硬件設(shè)計方案
由于IIS總線只處理音頻數(shù)據(jù),而其他的信號如編碼、控制等信號單獨(dú)傳送。為了使必需的引腳數(shù)最小并且保持連線簡單,IIS總線由3條信號線組成:時分復(fù)用的數(shù)據(jù)通道線、字段選擇線和時鐘信號線。本系統(tǒng)由系統(tǒng)主控制器提供時鐘信號,控制數(shù)字音頻數(shù)據(jù)在各個IC之間的流向。此時,發(fā)送器在外部時鐘信號的控制下產(chǎn)生數(shù)據(jù),處于從模式。
本設(shè)計硬件連接圖比較簡單,如圖1所示。圖中的處理器采用了AT91RM9200處理器,其內(nèi)置IIS音頻總線,內(nèi)置的IIS接口能讀取IIS總線上的數(shù)據(jù),并由UDA1341TS芯片外擴(kuò),通過總線和系統(tǒng)連接,需要處理器提供系統(tǒng)時鐘和3根控制線。
圖1 硬件設(shè)計簡圖
AT91RM9200的IIS控制器由5個引腳與外部的音頻編解碼器相連。這些引腳分別是:系統(tǒng)時鐘;位速率時鐘(可使用內(nèi)部或外部時鐘源);字段選擇;串行聲音輸入;串行聲音輸出。本設(shè)計中,UDA1341TS使用的是L3接口 ,該接口用來控制音頻信號的音量大小以及低音等。L3接口有3個信號:L3MODE,L3CLK,L3DATA,將字節(jié)寫入 L3總線寄存器。IIS總線控制器通過軟件控制AT91RM9200的通用I/O引腳(筆者選用的是PA0、PA1、PA2三個通用I/O口)來支持L3接口。下圖是本嵌入式音頻系統(tǒng)的硬件電路連接圖,見圖2
評論