基于USB2.0的語音數據采集系統設計
摘 要:本文提出并設計實現了基于USB2.0的語音數據采集系統, 該系統以TMS320VC5402 DSP芯片為主控機,采用USB2.0協議芯片ISP1581實現系統與計算機之間的高速串行數據傳輸,重點介紹了USB設備主從兩端的軟硬件設計方案。
關鍵詞:USB 2.0;語音數據采集;DSP
DSP芯片具有處理速度快、接口資源豐富、與ADC和USB控制芯片接口方便等特點。采用DSP芯片作為語音數據采集系統的主控機,能夠滿足對語音數據進行實時采集、數據處理和控制USB接口芯片等要求。
本文設計并實現了一個以DSP為主控機,結合USB2.0芯片ISP1581實現了音頻數據采集系統,該系統中,DSP作為主機負責系統初始化、采集語音數據和進行各種處理等工作,并將數據通過USB口送至計算機分析處理。
ISP1581簡介
ISP1581為基于微控制器或微處理器的系統提供了高速USB 通信能力。ISP1581 與系統的微控制器/微處理器的通信是通過一個高速的通用并行接口來實現的。這種實現USB 接口的標準組件使得使用者可以在各種不同類型的微控制器中選擇出最合適的。
ISP1581 支持USB 2.0 系統運作的自動檢測。它是一個通用的USB 接口器件,符合現有的大多數器件的分類規格,比如:成像類、海量存儲器件、通信器件、打印設備以及人機接口設備。ISP1581內置了多種結構的DMA模塊。
此外,ISP1581 內部還集成了許多特性,包括SoftConnectTM 、低頻晶體振蕩器和集成的終止寄存器。
系統設計
系統總體設計
本系統實現語音數據的實時采集以及與計算機之間的數據傳輸等功能。系統采用TMS320VC5402(以下簡稱C5402)DSP芯片作為主控機。C5402性能價格比高,資源豐富,可以提供全雙工緩沖串口,采集經A/D轉換后的數據,還能通過高速數據總線與USB控制芯片通信,處理速度高達100MIPS,它作為本系統主控機能高效完成系統的初始化、配置外圍器件和USB接口,并根據由USB傳來的主機命令,實時采集、接收音頻信號,最后將合成的數據包送給計算機。計算機應用程序以驅動程序為橋梁,接收硬件發來的數據包,并對數據進行顯示,分析等處理。
ADC采用低功耗16位A/D、D/A音頻模擬接口芯片TLC320 AIC10(以下簡稱AIC10)。它具有高性能、低功耗、高度可編程性以及與DSP的接口設計簡單的特點。
系統中計算機驅動程序用于處理底層通信細節,實現具體的通信協議,為應用程序提供透明的傳輸接口。計算機主機應用程序通過驅動程序提供的接口向設備驅動發送請求或從設備驅動接收請求,實現特定的通信、信息處理等功能。其原理如圖1所示。
系統硬件設計
McBSP與AIC10接口
C5402提供了高速、全雙工的McBSP。McBSP通過6個引腳與外設接口。AIC10與C5402 McBSP的硬件連接如圖2所示。
DSP與ISP1581接口
ISP1581與C5402的連接電路如 圖 3 所示。C5402與ISP1581的通信是通過高速的并行數據及控制總線進行的。C5402將ISP1581映射到片外I/O地址,通過它的IOSTRB和讀寫信號選擇ISP1581 ,其數據總線直接與ISP1581的數據總線相連接。使用通用I/O口(GPIO)控制ISP1581的工作模式。ISP1581通過中斷線來通知DSP收發數據,它的數據線 D+和D-通過USB電纜與主機USB接口連接。
系統軟件設計
本系統的軟件主要包括C5402串口和AIC10初始化、PDIUSBD12固件程序、DSP主程序,以及計算機驅動程序和應用程序。
DSP串口及AIC10初始化
DSP對McBSP復位并配置McBSP寄存器,即可完成串口的初始化。對于AIC10的初試化,主要對4個控制寄存器進行配置。 為使數據、寄存器地址和配置信息在同一串口中傳輸,AIC10采用了兩種通信模式:主通信模式和第二通信模式。主通信(primary communication)發生在每個數據轉換期間,此模式下的16位都用作傳輸數據。第二通信(secondary communication)只有在被請求時才會進行,用于傳輸寄存器地址和配置信息,對AIC10外部電路參數設置以及內部寄存器進行初始化,通過向DIN寫數據來初始化,數據可由DOUT讀出。另外還有直接DCSI參數設置模式。對于采用連續數據傳輸模式的DSP應用來說,無法插入第二通信請求,可以采用此方式通過DCSI引腳來對控制寄存器直接編程。
ISP1581固件程序
ISP1581用作實現計算機與DSP進行通信的高速通用接口。USB協議層的相關通信協議通過ISP1581來實現,它由硬件實現不需要固件的參與。C5402的主要作用是:當計算機操作系統配置、枚舉USB外設時,C5402發送、接收相關的USB設備信息。當操作系統配置、枚舉USB外設成功后,根據接收到的ID,進行相應的操作,起控制作用。C5402與ISP1581之間通信采用中斷方式,當CPU 處理前臺任務時,USB 的傳輸可在后臺進行。后臺ISR (中斷服務程序)和前臺主程序循環之間的數據交換通過事件標志和數據緩沖區來實現。圖4所示為ISP1581的固件程序結構圖。
計算機驅動程序與應用程序
驅動程序用于處理底層通信細節,實現具體的通信協議,為應用程序提供透明的傳輸接口。用戶可以自行編寫硬件驅動程序。可以采用的開發工具主要有Windows DDK,DriverStudio,Windriver,采用后兩種工具開發驅動程序周期短,但程序編寫不如第一種靈活。本系統的驅動是用Windows DDK編寫的,因此主機應用程序可以方便靈活地與硬件設備進行數據交換。
結語
本文介紹了一種語音數據采集系統的軟硬件設計,該系統采用DSP作為主控制器,采用USB2.0實現與計算機之間的數據通信。本語音卡已經應用于語音客觀評價系統項目中,效果良好。■
參考文獻
1 張雄偉等. DSP芯片的原理及開發應用[M]. 北京:電子工業出版社,2003
2 Philips Semiconductors. AN10004-01 ISP1581 Programming Guide,2002
3 Texas Instruments. General-Purpose 3V to 5.5v 16Bit 22 KSPS DSP CODEC TLV320AIC10 Data Manual [EB/OL]. 2001
評論