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