基于麥克風(fēng)陣列聲源定位的硬件系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時隨地手機(jī)看文章
摘要:給出一種基于TMS320C6713的麥克風(fēng)陣列聲源定位系統(tǒng)。以DSP作為系統(tǒng)的核心控制器,通過TMS320C6713的 McASP接口與A/D芯片PCM4204連接,克服了單片機(jī)系統(tǒng)運(yùn)算能力有限,數(shù)據(jù)處理速度慢的缺點(diǎn),能更好地滿足麥克風(fēng)陣列聲源定位的要求。介紹了系統(tǒng)的硬件設(shè)計(jì)方案和軟件設(shè)計(jì)思想,實(shí)踐證明了系統(tǒng)具有實(shí)時高速、精度高及可靠性好的優(yōu)點(diǎn)。
關(guān)鍵詞:麥克風(fēng)陣列;聲源定位;多通道音頻串口;寄存器配置
0 引言
麥克風(fēng)陣列的聲源定位是指用麥克風(fēng)拾取聲音信號,通過對麥克風(fēng)陣列的各路輸出信號進(jìn)行分析和處理,得到一個或者多個聲源的位置信息。如果聲源能夠持續(xù)地輸出聲音,通過對麥克風(fēng)陣列接收到的信號進(jìn)行實(shí)時分析和處理,可以實(shí)現(xiàn)對移動聲源的定位和跟蹤。目前,基于麥克風(fēng)陣列的聲源定位廣泛用于具有嘈雜背景的語音通信環(huán)境,如會場、多媒體教室、車載電話等,以提高通信質(zhì)量。本文主要討論了麥克風(fēng)陣列聲源定位的硬件系統(tǒng)設(shè)計(jì),并對聲源定位的軟件系統(tǒng)設(shè)計(jì)做了一些考慮。該系統(tǒng)主要用于汽車笛聲定位系統(tǒng),通過麥克風(fēng)陣列采集笛聲信號,并根據(jù)定位算法實(shí)現(xiàn)汽車的定位。
1 硬件系統(tǒng)設(shè)計(jì)
硬件系統(tǒng)主要包括多個麥克風(fēng)構(gòu)成的陣列、信號調(diào)理單元、數(shù)據(jù)采集單元、算法處理單元、邏輯控制單元,如圖1所示。
1.1 麥克風(fēng)陣列
該設(shè)計(jì)中麥克風(fēng)陣列選用聲望公司的MPA416傳聲器來實(shí)現(xiàn)。MPA416傳聲器的靈敏度較高,可以達(dá)到50 mV/Pa;擁有低成本、低噪聲;頻率響應(yīng)范圍為20 Hz~20 kHz;當(dāng)其用于陣列時,MPA416的相位差能控制在3°~5°之內(nèi),能滿足系統(tǒng)對于精確度和穩(wěn)定性的要求。由于均勻線列陣的結(jié)構(gòu)最簡單,處理方便,故系統(tǒng)采用一維線性麥克風(fēng)陣列,其陣列間距取10 cm。
1.2 信號調(diào)理單元
由于麥克風(fēng)所拾取的聲音信號太小,易受環(huán)境噪聲的影響,因此很有必要對聲音信號進(jìn)行預(yù)處理,通過對信號調(diào)理單元的處理,使之能夠滿足系統(tǒng)的要求。該系統(tǒng)采取兩級放大電路,前級放大為低噪聲放大,主要完成把麥克風(fēng)信號由單端變?yōu)椴罘?,故選用TI公司的低噪聲放大器OPA1632,次級放大電路為線性放大電路。
1.3 數(shù)據(jù)處理單元
該設(shè)計(jì)中數(shù)據(jù)處理單元選擇TI公司性價(jià)比較高的浮點(diǎn)DSP芯片TMS320C6713(以下簡稱C6713)作為系統(tǒng)算法處理的核心。它的內(nèi)部采用改進(jìn)的哈佛結(jié)構(gòu);具有256 KB片上存儲空間;豐富的外設(shè),包括2個多通道緩沖串口(McBSP)、2個多通道音頻串口(McASP)、SPI和I2C等;增強(qiáng)的直接存儲器訪問(EDMA)控制器,可控制16個獨(dú)立通道,完成不受CPU干預(yù)的數(shù)據(jù)傳輸;32 b的外部存儲器接口(EMIF),能與SRAM,ERPOM,F(xiàn)LASH,SBSRAM和SDRAM無縫接。因此,C6713能滿足系統(tǒng)對于一些復(fù)雜定位算法的快速處理。
1.4 數(shù)據(jù)采集單元
麥克風(fēng)陣列拾取聲音信號,經(jīng)過前端調(diào)理單元的處理,使聲音信號能達(dá)到A/D芯片的要求,從而進(jìn)行模/數(shù)轉(zhuǎn)換,完成數(shù)據(jù)的采樣。
該設(shè)計(jì)中A/D轉(zhuǎn)換器件選用TI公司的PCM4204,該芯片是24位、高精度,采樣速率達(dá)到216 kHz的4通道音頻模/數(shù)轉(zhuǎn)換器件。該芯片具有音頻串口和DSD數(shù)據(jù)口,其中音頻串口能與DSP方便的連接,采樣數(shù)據(jù)能迅速地被DSP讀取。
TMS320C6713的McASP與ADC外設(shè)交換數(shù)據(jù)主要有2種方式:利用CPU,通過串口與外設(shè)通信,這種方式的傳輸速度慢,數(shù)據(jù)交換量小,且占用 CPU的時鐘周期。為了實(shí)現(xiàn)高速的數(shù)據(jù)采集,該系統(tǒng)采用另外一種方式,利用EDMA。該方式能充分利用TMS320C6713的硬件結(jié)構(gòu)特點(diǎn),其ED- MA通道的獨(dú)立數(shù)據(jù)和獨(dú)立地址總線,不僅使數(shù)據(jù)傳輸速度快,傳輸量大,且不占用CPU時鐘周期,而且使數(shù)據(jù)傳輸和DSP命令執(zhí)行同步進(jìn)行,大大提高了整個系統(tǒng)的運(yùn)行速度。
1.4.1 與DSP芯片的連接
通過TMS320C6713的多通道音頻串口McASP1實(shí)現(xiàn)了與PCM4204:的連接,其連接示意圖如圖2所示。
在圖2中,PCM4204的LRCK與C6713的AFSR1相連。作為幀同步信號,BCK是位時鐘信號,與ACLKRl相連;PCM4204的兩個數(shù)據(jù)輸出管腳SDO-UT1和SDOUT2分別與DSP中McASP1的AXR[4]和AXR[5]相連,當(dāng)采用I2S數(shù)據(jù)格式時,SDOUT1輸出的是 1,2通道的數(shù)據(jù),SDOUT2輸出的是3,4通道的數(shù)據(jù)。PCM4204產(chǎn)生LRCK和BCK信號,以驅(qū)動DSP的AFSRl和ACLKRl。
1.4.2 采樣芯片工作模式的設(shè)定
為了使系統(tǒng)能夠正常工作,需要對PCM4204進(jìn)行設(shè)置。通過芯片引腳S/M,F(xiàn)MT2,F(xiàn)MT1,F(xiàn)MT0,F(xiàn)S2,F(xiàn)S1和FSO可以實(shí)現(xiàn)配置。具體如下:
(1)s/M=0,使PCM4204工作在主模式下;
(2)FMT2=O,F(xiàn)MT1=0,F(xiàn)MTO=1,選取音頻數(shù)據(jù)格式為24 b的I2S,其格式如圖3所示;
(3)FS2=1,F(xiàn)S1=0,F(xiàn)S0=1,選取采樣速率為96 kHz;
2 接口程序的編寫
2.1 初始化
為了使DSP的McASPl口能夠接收數(shù)據(jù),需要編寫相應(yīng)的程序。由于是采用EDMA來進(jìn)行數(shù)據(jù)傳輸?shù)模允紫纫獙cASP,EDMA進(jìn)行初始化,即按照電路系統(tǒng)硬件接口的設(shè)計(jì)要求設(shè)置McASPl的相關(guān)寄存器,使其工作在EDMA模式。
(1)EDMA接收配置。分別對EDMA的opt,src,cnt,dst,idx,及rld寄存器進(jìn)行設(shè)置,并通過opt寄存器設(shè)置數(shù)據(jù)長度為32 b,源數(shù)據(jù)和目的數(shù)據(jù)為一維方式,源地址固定,目的地址采用索引,啟用幀同步等,并將源地址和目的地址分別寫入src,dst寄存器。cnt寄存器主要是用來配置幀計(jì)數(shù)和單元計(jì)數(shù)。由于采用I2S的數(shù)據(jù)格式,所以一幀數(shù)據(jù)只包含2個單元數(shù)據(jù)。通過配置idex及rld寄存器,目的數(shù)據(jù)可以按照設(shè)
定的索引方式存儲。
(2)McASPl的配置。分別對McASPl的PFUNC,PDIR,SRCTL,RFMT,AFSRCTL,ACLKRCTL及AHCLKRCTL等寄存器進(jìn)行設(shè)置。注意幾點(diǎn):
①接收幀同步信號的寬度為32 b,由外部信號提供,即PCM4204的LRCK;
②接收位時鐘信號也由外部信號提供,即PCM4204的BCK;
③串行化器使用AXR[4]和AXR[5]。
2.2 接口程序
首先,需要打開McASP的1通道,利用MCASP_open函數(shù)可打開McASP的1通道,即 DEC6713_AIC23_DATAHANDLE=MCASP_open(MCASP_DEVl,MCASP_OPEN_RESET);然后通過使用 SetupEdma函數(shù)對EDMA如何進(jìn)行數(shù)據(jù)的存放和連續(xù)工作進(jìn)行定義,這里采用“乒乓緩存”的方式,根據(jù)idex和rld兩個寄存器完成數(shù)據(jù)存儲,具體存放如表1、表2所示:
接下來需要使McASP通道正確的工作,定義DEC6713_Mcasp_Setup函數(shù)。該函數(shù)的程序如下:
最后,需要定義函數(shù)SetInterruptsEdma(),通過建立中斷向量表,使整個接口程序工作。
3 軟件設(shè)計(jì)思想
系統(tǒng)可以把應(yīng)用程序固化在FLAsH存儲器內(nèi),每次上電時,DSP首先將程序從FALSH下載到片內(nèi)的RAM,由于DSP可以零等待訪問片內(nèi)RAM,程序加載到片內(nèi)RAM執(zhí)行時,可以保證DSP全速運(yùn)行,同時增強(qiáng)了系統(tǒng)的可靠性。
系統(tǒng)選取聲源定位算法的依據(jù)是運(yùn)算量較低或者利于硬件實(shí)現(xiàn),能用硬件的思想將算法實(shí)現(xiàn)?;诼曔_(dá)時間差(TDoA)的定位技術(shù)是先利用 GCC,LMS,EVD等算法進(jìn)行聲達(dá)時間差的估計(jì),再結(jié)合已知的麥克風(fēng)陣列的空間位置定出聲源的位置。它不受陣列結(jié)構(gòu)的限制且計(jì)算量小,因而實(shí)際的麥克風(fēng)陣列系統(tǒng)大都采用該技術(shù)。
4 結(jié)語
本文介紹了基于麥克風(fēng)陣列聲源定位系統(tǒng)的硬件設(shè)計(jì)和軟件編程思想。高性能DSP器件TMS320C6713的使用,使系統(tǒng)對于算法的處理時間更快,尤其是多通道音頻串口McASP的應(yīng)用,使聲音數(shù)據(jù)進(jìn)出芯片變得更加流暢,使其核心處理單元的運(yùn)算能力得以發(fā)揮,從而能迅速地定位,以滿足多方面應(yīng)用的需求。