基于麥克風(fēng)陣列的信號采集處理系統(tǒng)設(shè)計(jì)
依據(jù)PCM4204的I2S數(shù)據(jù)格式,將接收幀同步信號的寬度定為32 bit,接收延遲設(shè)置為1個(gè)delay;AXR[0]~AXR[7]設(shè)置為接收模式。
通過以下函數(shù),完成對McASP1接口的配置
2.2 EDMA傳輸程序設(shè)計(jì)
為保證數(shù)據(jù)的完整性,選用Ping-Pong模式對EDMA傳輸進(jìn)行配置,Ping緩存存放如表3所示,Pong緩存與Ping緩存結(jié)構(gòu)相同。本文引用地址:http://www.ex-cimer.com/article/194624.htm
依據(jù)Ping、Pong緩存數(shù)據(jù)格式,對EDMA接收進(jìn)行配置,即對:EDMA的opt,src,cnt,dst,idx,及rld寄存器分別進(jìn)行設(shè)置。通過opt寄存器設(shè)置數(shù)據(jù)長度為32 bit,源數(shù)據(jù)和目的數(shù)據(jù)為一維方式,源地址固定,目的地址采用索引,啟用幀同步等。源地址和目的地址分別寫入src,dst寄存器。cnt寄存器主要用于配置幀計(jì)數(shù)和單元計(jì)數(shù)。由于采用I2S的數(shù)據(jù)格式,所以1幀數(shù)據(jù)只包含2個(gè)單元數(shù)據(jù)。通過配置idex及rld寄存器,目的數(shù)據(jù)可以按照設(shè)定的索引方式存儲。
2.3 DSP端OSB接口程序設(shè)計(jì)
首先,通過調(diào)用用戶的初始化函數(shù),使能外部中斷并初始化USB寄存器。之后,程序通過數(shù)據(jù)傳輸函數(shù),完成DSP與PC機(jī)的數(shù)據(jù)傳輸。
USB初始化程序配置如下:
(1)使能外部中斷6(EXT_INT6)。
(2)加載USB描述表,并進(jìn)行自舉檢測,如自舉不成功,則重新自舉,直到端點(diǎn)0收到設(shè)置包為止。
(3)配置USB為異步從FIFO(Asynchronous SlaveFIFO)模式,采用內(nèi)部48 MHz時(shí)鐘源。
(4)讀取FNADDR寄存器,判斷USB工作狀態(tài)。
(5)依據(jù)USB工作狀態(tài),配置EP2、EP4、EP6、EP8,并設(shè)置一次傳送的Byte長度。設(shè)置EP2、EP4為BULK OUT,EP6、EP8為BULK IN,其緩沖大小分別為2×512 Byte。
在數(shù)據(jù)傳輸過程中,PC端通過EP2向DSP發(fā)送讀數(shù)據(jù)命令,DSP通過外部中斷收到讀命令后,使用EP6發(fā)送已采集好的數(shù)據(jù)。在聲音數(shù)據(jù)采集系統(tǒng)中,每路麥克風(fēng)以96 kHz進(jìn)行24位采樣,按照ping-pong方式進(jìn)行存儲。在傳輸過程中還需進(jìn)行判斷,當(dāng)采集數(shù)據(jù)存儲在ping緩存時(shí),發(fā)送pong緩存中的數(shù)據(jù),當(dāng)采集數(shù)據(jù)存儲在pong緩存時(shí),發(fā)送ping緩存的數(shù)據(jù)。
由于TMS320C6713通過EMIF的CE3存儲空間可以外擴(kuò)USB2.0接口,需對EMIF接口的CE3寄存器進(jìn)行配置,將USB接口設(shè)為16位異步存儲接口,設(shè)定讀/寫的建立時(shí)間(Setup)、促發(fā)時(shí)間(Strobe)、保持時(shí)間,使其滿足CY7C68001的讀/寫時(shí)序要求。
2.4 PC機(jī)平臺應(yīng)用程序設(shè)計(jì)
PC端接口程序采用VC++6.0編寫,首先調(diào)用OpenDriver()打開USB接口設(shè)備,獲得設(shè)備的句柄hDevice,之后調(diào)用Sx2SendVendorReq()函數(shù)向外設(shè)發(fā)出命令,讀取USB配置,最后調(diào)用Sx2BulkdataTrans()進(jìn)行數(shù)據(jù)傳輸,通過調(diào)用CFile類將接收到的數(shù)據(jù)存放在文本文件中。程序使用多線程技術(shù),使得應(yīng)用程序?qū)SB數(shù)據(jù)傳輸在后臺進(jìn)行處理,應(yīng)用程序前臺還可進(jìn)行其他操作。
3 結(jié)束語
設(shè)計(jì)了16通道麥克風(fēng)陣列采集處理平臺,并通過外擴(kuò)USB芯片與PC主機(jī)端進(jìn)行數(shù)據(jù)傳輸,可使用戶方便地在PC端進(jìn)行數(shù)據(jù)處理。該系統(tǒng)采樣數(shù)據(jù)量大、同步性強(qiáng)、精確度高、傳輸速率快、可靠性好,方便為各種麥克風(fēng)陣列算法提供原始數(shù)據(jù)。
評論