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