基于OMAP5912的語(yǔ)音采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
0 引 言
近年來(lái),高速發(fā)展的語(yǔ)音信號(hào)處理技術(shù)已在音頻信息的處理、傳輸和存儲(chǔ)等方面得到廣泛應(yīng)用。同時(shí),隨著高性能數(shù)字信號(hào)處理器(Digital Signal Processor,DSP)的日益普及,利用DSP對(duì)語(yǔ)音信號(hào)處理進(jìn)行算法研究和實(shí)時(shí)實(shí)現(xiàn)正成為新的熱點(diǎn)。在此設(shè)計(jì)并實(shí)現(xiàn)了一種語(yǔ)音采集系統(tǒng)。該系統(tǒng)為語(yǔ)音信號(hào)處理的算法研究和實(shí)時(shí)實(shí)現(xiàn)提供一個(gè)通用平臺(tái)。同時(shí),與已有的聲卡等具有語(yǔ)音采集功能的設(shè)備相比,該系統(tǒng)具有結(jié)構(gòu)簡(jiǎn)單,效率高,便于攜帶等特點(diǎn),因此也可以作為便攜式設(shè)備或手持終端的一部分進(jìn)一步加以開(kāi)發(fā)和應(yīng)用。
1 芯片簡(jiǎn)介
OMAP5912采用獨(dú)特的雙核結(jié)構(gòu),內(nèi)含1個(gè)實(shí)現(xiàn)控制功能的帶有TI增強(qiáng)型ARM926EJ—S(簡(jiǎn)稱(chēng)ARM9)內(nèi)核的處理器和1個(gè)實(shí)現(xiàn)數(shù)據(jù)處理功能的高性能、低功耗TMS320C55x DSP(簡(jiǎn)稱(chēng)DSP)內(nèi)核。ARM9處理器可用來(lái)實(shí)現(xiàn)各種通信協(xié)議、控制和人機(jī)接口;DSP具有多條數(shù)據(jù)地址總線,非常適合數(shù)據(jù)密集的多媒體處理,并具有極低的功耗。
TLV320AIC23(簡(jiǎn)稱(chēng)AIC23)是TI推出的一款高性能的立體聲音頻Codec芯片,內(nèi)置耳機(jī)輸出放大器,支持MIC和LINE IN兩種輸入方式(二選一),且對(duì)輸入和輸出都具有可編程增益調(diào)節(jié)。AIC23的模數(shù)轉(zhuǎn)換(ADCs)和數(shù)模轉(zhuǎn)換(DACs)部件高度集成在芯片內(nèi)部,采用了先進(jìn)的Sigma—delta過(guò)采樣技術(shù),可以在8~96 kHz的頻率范圍內(nèi)提供16 b,20 b,24 b和32 b的采樣,ADC和DAC的輸出信噪比分別可以達(dá)到90 dB和100 dB。與此同時(shí),AIC23還具有很低的能耗,回放模式下功率僅為23 mW,省電模式下更是小于15μW。
2 系統(tǒng)的硬件設(shè)計(jì)
2.1 系統(tǒng)的硬件結(jié)構(gòu)
語(yǔ)音采集系統(tǒng)主要包括兩個(gè)模塊:以AIC23為核心的語(yǔ)音采集模塊;以O(shè)MAP5912的DSP為核心的語(yǔ)音數(shù)據(jù)接收處理模塊。
為使AIC23正常工作在需要的狀態(tài)下,必須通過(guò)I2C總線對(duì)其進(jìn)行配置。AIC23采集的語(yǔ)音信號(hào)經(jīng)過(guò)A/D轉(zhuǎn)換后,通過(guò)McBSPl傳送到接收寄存器DRR,然后經(jīng)DMA通道傳送至接收緩沖區(qū)。存放在發(fā)送緩沖區(qū)的數(shù)據(jù),通過(guò)DMA通道傳送到McBSPl的發(fā)送寄存器DXR,然后傳送至AIC23,經(jīng)過(guò)D/A轉(zhuǎn)換后,由HEADPHONE輸出,如圖1所示。
2.2 系統(tǒng)的硬件接口設(shè)計(jì)
利用OMAP5912的I2C總線和McBSPl完成對(duì)AIC23的控制和通信。I2C總線與AIC23的控制口相連,McBSPl與AIC23的數(shù)據(jù)口相連。AIC23設(shè)置為Master模式,向McBSPl提供時(shí)鐘和幀同步信號(hào)。McBSPl.DX作為AIC23的輸入通道,McBSPl.DR作為AIC23的輸出通道,如圖2所示。
3 系統(tǒng)的軟件設(shè)計(jì)
系統(tǒng)的軟件分兩個(gè)方面來(lái)說(shuō)明:主程序和中斷服務(wù)程序。
3.1 主程序[!--empirenews.page--]
因?yàn)镺MAP5912為雙核結(jié)構(gòu),且ARM9為主控制器,所以首先必須在ARM9側(cè)進(jìn)行OMAP5912的初始化,讓DSP退出復(fù)位狀態(tài),這里僅需調(diào)用TI提供的OSK5912 Board Support Library中的OSK5912_init()函數(shù)即可。然后在DSP側(cè)進(jìn)行CPU、I2C總線、McBSPl、DMA的初始化,以及AIC23芯片的配置,如圖3所示。
限于篇幅,在此僅說(shuō)明通過(guò)I2C總線配置AIC23的過(guò)程。AIC23芯片是一個(gè)可編程的芯片,內(nèi)部有11個(gè)16位寄存器決定芯片的工作狀態(tài)。圖2中的MODE引腳決定控制接口的工作模式:MODE=O為I2C模式,MODE=1為SPI模式。系統(tǒng)采用的是I2C模式,即由DSP通過(guò)I2C總線完成對(duì)AIC23的初始化。I2C總線作為ARM9和DSP的共享設(shè)備,其使用權(quán)由圖1中的寄存器I2C SSW MPU CONF和DSPI2C SSW CONF決定,在默認(rèn)的情況下由ARM9使用。為了讓DSP能使用I2C總線,需對(duì)上述兩個(gè)寄存器做如下修改:MCBSP SSW MPU CONF=Ox00000000,DSP_I2C_SSW_CONF=0x0002。每個(gè)連接到I2C總線上的設(shè)備,都有1個(gè)惟一的地址,AIC23的地址由圖2中的CS#引腳決定,即CS=0地址為0011010;CS=1地址為0011011。I2C總線首先發(fā)送AIC23的地址,然后再把相應(yīng)的AIC23內(nèi)部映射寄存器的地址和配置參數(shù)合并為16位的控制字發(fā)送給AIC23。
3.2 中斷服務(wù)程序
在DSP的RAM空間中定義一個(gè)接收緩存數(shù)組Rxbuffer[]和發(fā)送緩存數(shù)組Txbuffer[],一個(gè)接收標(biāo)志RxFlag和一個(gè)發(fā)送標(biāo)志TxFlag。為了防止出現(xiàn)在執(zhí)行中斷服務(wù)程序的時(shí)候,接收的新數(shù)據(jù)將緩存區(qū)未取走的數(shù)據(jù)覆蓋,將緩存數(shù)組分為上下兩部分,CPU在處理其中一個(gè)部分的時(shí)候,DMA自動(dòng)操作另一部分,如圖4(a)所示。
該語(yǔ)音采集系統(tǒng)以中斷的方式工作,在工作的過(guò)程中,會(huì)產(chǎn)生兩個(gè)中斷:DMA接收中斷;DMA發(fā)送中斷。以DMA接收中斷為例來(lái)說(shuō)明中斷服務(wù)程序。
當(dāng)產(chǎn)生DMA接收中斷時(shí),首先判斷RxFlag的值,若為O,則取接收數(shù)組Rxbuffer下半部分的數(shù)據(jù)作進(jìn)一步的處理,同時(shí)置RxFlag為1;若為1,則取接收數(shù)組Rxbuffer上半部分的數(shù)據(jù)作進(jìn)一步的處理,同時(shí)置RxFlag為O,然后退出中斷服務(wù)程序,進(jìn)入主程序,等待中斷的再次產(chǎn)生,如圖4(b)所示。
4 仿真驗(yàn)證
為了驗(yàn)證設(shè)計(jì)的可行性,對(duì)該系統(tǒng)進(jìn)行了仿真測(cè)試。仿真軟件為CCS(Code Composer Studio)2.21。系統(tǒng)由硬件仿真器TDS560USB通過(guò)JTAG仿真接口與計(jì)算機(jī)相連,用戶可以通過(guò)該接口向OMAP5912芯片加載程序并觀察芯片內(nèi)部存儲(chǔ)器的數(shù)據(jù),完成系統(tǒng)仿真及程序調(diào)試的任務(wù)。
在ARM和DSP側(cè)分別加載程序編譯后生成的.out文件,然后運(yùn)行。經(jīng)配置后的AIC23從MIC IN輸入語(yǔ)音信號(hào),并對(duì)其進(jìn)行8 kHz,16 b的采樣。不考慮圖4(a)中的信號(hào)處理過(guò)程,將采集到的語(yǔ)音直接送回AIC23芯片,經(jīng)D/A后,由HEADPHONE輸出,此時(shí),聽(tīng)到的正是輸入的語(yǔ)音信號(hào)。由此說(shuō)明:該設(shè)計(jì)是確實(shí)可行的。
5 結(jié) 語(yǔ)
根據(jù)TI公司的OMAP5912和CODEC芯片TLV320AIC23的特性,根據(jù)TI公司的設(shè)計(jì)并實(shí)現(xiàn)了一種基于OMAP5912的語(yǔ)音采集系統(tǒng)。在該系統(tǒng)中,DMA通道結(jié)合McBSP的使用,可以大大減少CPU的工作量,簡(jiǎn)化軟件設(shè)計(jì),有效地利用DSP的硬件資源,提高系統(tǒng)的執(zhí)行效率。實(shí)踐證明,該系統(tǒng)能夠滿足實(shí)時(shí)信號(hào)處理的要求,可以作為語(yǔ)音信號(hào)處理的算法研究和實(shí)時(shí)實(shí)現(xiàn)的一種通用平臺(tái),也可以作為便攜式設(shè)備或手持終端的一部分進(jìn)一步加以開(kāi)發(fā)和應(yīng)用。