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