基于USB2.0的語(yǔ)音數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
摘 要:本文提出并設(shè)計(jì)實(shí)現(xiàn)了基于USB2.0的語(yǔ)音數(shù)據(jù)采集系統(tǒng), 該系統(tǒng)以TMS320VC5402 DSP芯片為主控機(jī),采用USB2.0協(xié)議芯片ISP1581實(shí)現(xiàn)系統(tǒng)與計(jì)算機(jī)之間的高速串行數(shù)據(jù)傳輸,重點(diǎn)介紹了USB設(shè)備主從兩端的軟硬件設(shè)計(jì)方案。
關(guān)鍵詞:USB 2.0;語(yǔ)音數(shù)據(jù)采集;DSP
DSP芯片具有處理速度快、接口資源豐富、與ADC和USB控制芯片接口方便等特點(diǎn)。采用DSP芯片作為語(yǔ)音數(shù)據(jù)采集系統(tǒng)的主控機(jī),能夠滿(mǎn)足對(duì)語(yǔ)音數(shù)據(jù)進(jìn)行實(shí)時(shí)采集、數(shù)據(jù)處理和控制USB接口芯片等要求。
本文設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)以DSP為主控機(jī),結(jié)合USB2.0芯片ISP1581實(shí)現(xiàn)了音頻數(shù)據(jù)采集系統(tǒng),該系統(tǒng)中,DSP作為主機(jī)負(fù)責(zé)系統(tǒng)初始化、采集語(yǔ)音數(shù)據(jù)和進(jìn)行各種處理等工作,并將數(shù)據(jù)通過(guò)USB口送至計(jì)算機(jī)分析處理。
ISP1581簡(jiǎn)介
ISP1581為基于微控制器或微處理器的系統(tǒng)提供了高速USB 通信能力。ISP1581 與系統(tǒng)的微控制器/微處理器的通信是通過(guò)一個(gè)高速的通用并行接口來(lái)實(shí)現(xiàn)的。這種實(shí)現(xiàn)USB 接口的標(biāo)準(zhǔn)組件使得使用者可以在各種不同類(lèi)型的微控制器中選擇出最合適的。
ISP1581 支持USB 2.0 系統(tǒng)運(yùn)作的自動(dòng)檢測(cè)。它是一個(gè)通用的USB 接口器件,符合現(xiàn)有的大多數(shù)器件的分類(lèi)規(guī)格,比如:成像類(lèi)、海量存儲(chǔ)器件、通信器件、打印設(shè)備以及人機(jī)接口設(shè)備。ISP1581內(nèi)置了多種結(jié)構(gòu)的DMA模塊。
此外,ISP1581 內(nèi)部還集成了許多特性,包括SoftConnectTM 、低頻晶體振蕩器和集成的終止寄存器。
系統(tǒng)設(shè)計(jì)
系統(tǒng)總體設(shè)計(jì)
本系統(tǒng)實(shí)現(xiàn)語(yǔ)音數(shù)據(jù)的實(shí)時(shí)采集以及與計(jì)算機(jī)之間的數(shù)據(jù)傳輸?shù)裙δ堋O到y(tǒng)采用TMS320VC5402(以下簡(jiǎn)稱(chēng)C5402)DSP芯片作為主控機(jī)。C5402性能價(jià)格比高,資源豐富,可以提供全雙工緩沖串口,采集經(jīng)A/D轉(zhuǎn)換后的數(shù)據(jù),還能通過(guò)高速數(shù)據(jù)總線(xiàn)與USB控制芯片通信,處理速度高達(dá)100MIPS,它作為本系統(tǒng)主控機(jī)能高效完成系統(tǒng)的初始化、配置外圍器件和USB接口,并根據(jù)由USB傳來(lái)的主機(jī)命令,實(shí)時(shí)采集、接收音頻信號(hào),最后將合成的數(shù)據(jù)包送給計(jì)算機(jī)。計(jì)算機(jī)應(yīng)用程序以驅(qū)動(dòng)程序?yàn)闃蛄海邮沼布l(fā)來(lái)的數(shù)據(jù)包,并對(duì)數(shù)據(jù)進(jìn)行顯示,分析等處理。
ADC采用低功耗16位A/D、D/A音頻模擬接口芯片TLC320 AIC10(以下簡(jiǎn)稱(chēng)AIC10)。它具有高性能、低功耗、高度可編程性以及與DSP的接口設(shè)計(jì)簡(jiǎn)單的特點(diǎn)。
系統(tǒng)中計(jì)算機(jī)驅(qū)動(dòng)程序用于處理底層通信細(xì)節(jié),實(shí)現(xiàn)具體的通信協(xié)議,為應(yīng)用程序提供透明的傳輸接口。計(jì)算機(jī)主機(jī)應(yīng)用程序通過(guò)驅(qū)動(dòng)程序提供的接口向設(shè)備驅(qū)動(dòng)發(fā)送請(qǐng)求或從設(shè)備驅(qū)動(dòng)接收請(qǐng)求,實(shí)現(xiàn)特定的通信、信息處理等功能。其原理如圖1所示。
系統(tǒng)硬件設(shè)計(jì)
McBSP與AIC10接口
C5402提供了高速、全雙工的McBSP。McBSP通過(guò)6個(gè)引腳與外設(shè)接口。AIC10與C5402 McBSP的硬件連接如圖2所示。
DSP與ISP1581接口
ISP1581與C5402的連接電路如 圖 3 所示。C5402與ISP1581的通信是通過(guò)高速的并行數(shù)據(jù)及控制總線(xiàn)進(jìn)行的。C5402將ISP1581映射到片外I/O地址,通過(guò)它的IOSTRB和讀寫(xiě)信號(hào)選擇ISP1581 ,其數(shù)據(jù)總線(xiàn)直接與ISP1581的數(shù)據(jù)總線(xiàn)相連接。使用通用I/O口(GPIO)控制ISP1581的工作模式。ISP1581通過(guò)中斷線(xiàn)來(lái)通知DSP收發(fā)數(shù)據(jù),它的數(shù)據(jù)線(xiàn) D+和D-通過(guò)USB電纜與主機(jī)USB接口連接。
系統(tǒng)軟件設(shè)計(jì)
本系統(tǒng)的軟件主要包括C5402串口和AIC10初始化、PDIUSBD12固件程序、DSP主程序,以及計(jì)算機(jī)驅(qū)動(dòng)程序和應(yīng)用程序。
DSP串口及AIC10初始化
DSP對(duì)McBSP復(fù)位并配置McBSP寄存器,即可完成串口的初始化。對(duì)于AIC10的初試化,主要對(duì)4個(gè)控制寄存器進(jìn)行配置。 為使數(shù)據(jù)、寄存器地址和配置信息在同一串口中傳輸,AIC10采用了兩種通信模式:主通信模式和第二通信模式。主通信(primary communication)發(fā)生在每個(gè)數(shù)據(jù)轉(zhuǎn)換期間,此模式下的16位都用作傳輸數(shù)據(jù)。第二通信(secondary communication)只有在被請(qǐng)求時(shí)才會(huì)進(jìn)行,用于傳輸寄存器地址和配置信息,對(duì)AIC10外部電路參數(shù)設(shè)置以及內(nèi)部寄存器進(jìn)行初始化,通過(guò)向DIN寫(xiě)數(shù)據(jù)來(lái)初始化,數(shù)據(jù)可由DOUT讀出。另外還有直接DCSI參數(shù)設(shè)置模式。對(duì)于采用連續(xù)數(shù)據(jù)傳輸模式的DSP應(yīng)用來(lái)說(shuō),無(wú)法插入第二通信請(qǐng)求,可以采用此方式通過(guò)DCSI引腳來(lái)對(duì)控制寄存器直接編程。
ISP1581固件程序
ISP1581用作實(shí)現(xiàn)計(jì)算機(jī)與DSP進(jìn)行通信的高速通用接口。USB協(xié)議層的相關(guān)通信協(xié)議通過(guò)ISP1581來(lái)實(shí)現(xiàn),它由硬件實(shí)現(xiàn)不需要固件的參與。C5402的主要作用是:當(dāng)計(jì)算機(jī)操作系統(tǒng)配置、枚舉USB外設(shè)時(shí),C5402發(fā)送、接收相關(guān)的USB設(shè)備信息。當(dāng)操作系統(tǒng)配置、枚舉USB外設(shè)成功后,根據(jù)接收到的ID,進(jìn)行相應(yīng)的操作,起控制作用。C5402與ISP1581之間通信采用中斷方式,當(dāng)CPU 處理前臺(tái)任務(wù)時(shí),USB 的傳輸可在后臺(tái)進(jìn)行。后臺(tái)ISR (中斷服務(wù)程序)和前臺(tái)主程序循環(huán)之間的數(shù)據(jù)交換通過(guò)事件標(biāo)志和數(shù)據(jù)緩沖區(qū)來(lái)實(shí)現(xiàn)。圖4所示為ISP1581的固件程序結(jié)構(gòu)圖。
計(jì)算機(jī)驅(qū)動(dòng)程序與應(yīng)用程序
驅(qū)動(dòng)程序用于處理底層通信細(xì)節(jié),實(shí)現(xiàn)具體的通信協(xié)議,為應(yīng)用程序提供透明的傳輸接口。用戶(hù)可以自行編寫(xiě)硬件驅(qū)動(dòng)程序??梢圆捎玫拈_(kāi)發(fā)工具主要有Windows DDK,DriverStudio,Windriver,采用后兩種工具開(kāi)發(fā)驅(qū)動(dòng)程序周期短,但程序編寫(xiě)不如第一種靈活。本系統(tǒng)的驅(qū)動(dòng)是用Windows DDK編寫(xiě)的,因此主機(jī)應(yīng)用程序可以方便靈活地與硬件設(shè)備進(jìn)行數(shù)據(jù)交換。
結(jié)語(yǔ)
本文介紹了一種語(yǔ)音數(shù)據(jù)采集系統(tǒng)的軟硬件設(shè)計(jì),該系統(tǒng)采用DSP作為主控制器,采用USB2.0實(shí)現(xiàn)與計(jì)算機(jī)之間的數(shù)據(jù)通信。本語(yǔ)音卡已經(jīng)應(yīng)用于語(yǔ)音客觀評(píng)價(jià)系統(tǒng)項(xiàng)目中,效果良好。■
參考文獻(xiàn)
1 張雄偉等. DSP芯片的原理及開(kāi)發(fā)應(yīng)用[M]. 北京:電子工業(yè)出版社,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
評(píng)論