新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于DSP的USB語音傳輸接口設(shè)計方案

基于DSP的USB語音傳輸接口設(shè)計方案

作者: 時間:2012-07-05 來源:網(wǎng)絡(luò) 收藏

1 引 言
把所有的輸入和輸出外設(shè)都置于機(jī)箱之外,而不用任何擴(kuò)展槽。他是快速、雙向、同步、動態(tài)連接且價格低廉的串行接口,可以滿足PC機(jī)發(fā)展的現(xiàn)在和未來的需要。本設(shè)計就是充分發(fā)揮了這些優(yōu)點,利用當(dāng)今先進(jìn)的電子技術(shù)研制出來的一種新型的高性能的接口裝置。

本文引用地址:http://m.butianyuan.cn/article/257385.htm

本設(shè)計選用TI公司的TMS320VC5402(以下簡稱,Digital Signal Processor)作為本設(shè)計的主控制器芯片,NS公司的N9603(以下簡稱USB,Universal Serial Bus)作為USB控制器芯片,NEWAVE公司的NWl034(以下簡稱CODEC)作為語音編解碼器芯片,MITEI。公司的MH88634(以下簡稱COIC)作為電話機(jī)接口芯片。


2 和USB簡介

TMS320VC5402是定點芯片TMS320C54X系列的一種,是為實現(xiàn)低功耗和高性能而專門設(shè)計的定點芯片,主要應(yīng)用在無線通信和語音處理等方面。TMS320VC5402的主要特點包括:處理性能好,運算速度達(dá)100MI/s;優(yōu)化的CPU結(jié)構(gòu),內(nèi)部有1個40b的算術(shù)邏輯單元,2個獨立的40b的加法器,1個17×17的的乘法器和1個40b的桶形移位寄存器,有4條內(nèi)部總線和2個地址產(chǎn)生器;低功耗方式,可以在3.3VI/O電壓和1.8V內(nèi)核電壓下工作;智能外設(shè),除了標(biāo)準(zhǔn)的串行口和時分復(fù)用(TDM)串行口外,TMS320VC5402還提供了自動緩沖串行口BSP(auto-Buffered Serial Port)和與外部處理器通信的HPI(Host Port Interface)接口;內(nèi)部有16k片內(nèi)RAM和4k片內(nèi)ROM。

TMS320VC5402其獨特的高性能、低功耗和低價格優(yōu)勢,是我們選擇他作為本設(shè)計的主處理器的原因。

USB自1995年實現(xiàn)標(biāo)準(zhǔn)化后,經(jīng)過了數(shù)年的飛速發(fā)展,已經(jīng)從最初1.0規(guī)范發(fā)展到現(xiàn)在的2.o規(guī)范,最大傳輸速率可達(dá)480Mb/s。本設(shè)計使用的USBN9603支持USBl.1規(guī)范,低速傳輸速率為1.5Mb/s,全速傳輸速率為12Mb/s。USB提供了4種傳輸方式,以適應(yīng)各種設(shè)備的需要。這4種傳輸方式分別是控制傳輸、等時傳輸、中斷傳輸和批量傳輸。

NS的USBN9603是一個集成的USB端點控制器,具有增強(qiáng)的DMA功能。USBN9603集成了一個帶有3.3V的調(diào)節(jié)器的收發(fā)器,1個SIE(串行接口引擎),1個8 b并行接口,1個時鐘發(fā)生器和1個MICROWIRE/PLUS接口。USBN9603可以進(jìn)行7個端點的數(shù)據(jù)傳輸,除了端點。必須為控制傳輸端點以外,其他的6個端點可以被配置成中斷傳輸端點、批量傳輸端點或者等時傳輸端點;每一個端點都有一個專門的FIFO,控制端點的FIFO長度為8B,其他的為64B。8 b并行接口可以支持多路復(fù)用或者非多路復(fù)用2種與CPU的接口方式。USBN9603的突出特點為:低EMI(電磁干擾),低等待電流,24M晶振,增強(qiáng)的DMA功能;可使用5V或3.3V電源;總線操作具有異步喚醒的全速靜態(tài)HALT模式;改進(jìn)的3.3V電壓輸入的電壓調(diào)節(jié)器,所有非雙向端點都有64B的FIFO;外部控制器接口簡單,編程方便。


3 的思想

本設(shè)計的目的是給普通電話機(jī)和PC機(jī)之間提供一個數(shù)字接口。在本設(shè)計中,PC機(jī)是主機(jī),DSP系統(tǒng)是USB設(shè)備。

當(dāng)有來電時,COIC向DSP申請中斷,DSP收到中斷后就使用USB的中斷傳輸向主機(jī)報告有來電,主機(jī)應(yīng)用軟件會彈出一個對話框要求用戶選擇摘機(jī)還是拒接,同時耳機(jī)或音箱里會傳出電話鈴聲,如果選擇摘機(jī),主機(jī)就會使用USB的控制傳輸發(fā)送一個摘機(jī)命令給DSP,DSP在接到命令后就會接通電話,同時啟動CODEC,然后語音數(shù)據(jù)就通過USB的等時傳輸(也叫同步傳輸)進(jìn)行雙向傳送,而主機(jī)用戶插上耳機(jī)(或音箱)和話筒就可以與電話另一端通話,通話完畢,主機(jī)發(fā)送一個掛機(jī)命令給DSP。如果選擇拒接,主機(jī)就發(fā)送一個拒接命令給DSP,DSP會執(zhí)行相應(yīng)的動作。

當(dāng)用戶需要往外撥號時,也無需拿起電話機(jī),只要在應(yīng)用軟件中選擇撥號功能,輸入被叫號碼,點擊確認(rèn)鍵即可。剩下來的執(zhí)行過程與有來電時的情況是一樣的。


4 電路原理設(shè)計

本設(shè)計由DSP構(gòu)成核心控制器,控制對象是USB,CODEC和COIC。圖1是整個系統(tǒng)的硬件框圖。


本設(shè)計的USB部分使用了USB的3種傳輸方式:

(1)控制傳輸
用于實現(xiàn)設(shè)備枚舉主機(jī)的標(biāo)準(zhǔn)請求還有廠商自定義請求(即主機(jī)命令)。

(2)中斷傳輸
用于實現(xiàn)設(shè)備對主機(jī)的喚醒,是惟一的設(shè)備主動向主機(jī)發(fā)送數(shù)據(jù)的傳輸方式。

(3)等時傳輸
用于實現(xiàn)語音數(shù)據(jù)的雙向同步傳輸。

圖2是USB與DSP的接口原理圖,如圖所示,USB使用24M晶振,本設(shè)備是全速(高速)設(shè)備,所以在D+上加0.5kΩ上拉電阻,如果是低速設(shè)備,則在D一上加1.5kΩ上拉電阻。MODE0和MODEl是選擇8b并行接口方式的,本設(shè)計中選用非多路復(fù)用方式,所以MODE0和Model都接地,如果要選擇成多路復(fù)用方式,則使MODE0接3.3V電源,MODEl接地即可。


CLKOUT是時鐘輸出,可供測試用,正常上電復(fù)位后,CLKOUT就應(yīng)該輸出4MHz的方波。然后可以在主程序中對USB的時鐘寄存器進(jìn)行配置,以產(chǎn)生需要的時鐘,然后用示波器就可以在CLKOUT上看到相應(yīng)的輸出,可以用來判斷讀寫操作是否正確等。

CODEC與DSP的接口為標(biāo)準(zhǔn)的串行通信接口。COIC把普通電話的兩線制轉(zhuǎn)換為四線制后實現(xiàn)與CODEC的無縫連接,另外和DSP接口只需幾根簡單的控制線即可實現(xiàn)。


5 系統(tǒng)軟件的設(shè)計

系統(tǒng)軟件主要由3個部分組成:Firmware,USB驅(qū)動程序,主機(jī)應(yīng)用軟件。圖3是系統(tǒng)軟件框圖。


5.1 Firmware

固件程序,是寫在DSP的ROM中的程序,由主程序和中斷服務(wù)程序組成。使用TI提供的CCS(Code Composer Studio)來完成Firmware的編寫。CCS是TI推出的代碼編譯調(diào)試的集成環(huán)境,調(diào)試方便、易于使用,為本設(shè)計的順利進(jìn)行創(chuàng)造有利條件。

(1)主程序

圖4為主程序流程圖。主程序只做初始化和檢測一些狀態(tài)位的變化,以轉(zhuǎn)入相應(yīng)的處理子程序中。


(2)中斷服務(wù)程序

包括COIC的中斷服務(wù)程序、CODEC的中斷服務(wù)程序和USB中斷服務(wù)程序3部分。Firmware的大部分工作是在中斷服務(wù)程序中完成的。

COIC只有一個中斷,就是把振鈴信息傳送給DSP。

CODEC有3個中斷:首先是接收振鈴信息,在振鈴中斷服務(wù)子程序中,把振鈴標(biāo)志位置位;然后是接收中斷,在中斷服務(wù)子程序中把從電話接收到的語音數(shù)據(jù)裝載到相應(yīng)的FIFO中去;還有就是發(fā)送中斷,在中斷服務(wù)子程序中把從PC機(jī)側(cè)發(fā)過來的語音數(shù)據(jù)發(fā)送至電話終端。

USB有4個中斷,所有的數(shù)據(jù)交換都是在中斷服務(wù)子程序中完成的,而且除中斷傳輸外每次傳輸都是由客戶啟動的,主機(jī)應(yīng)用軟件調(diào)用USB功能驅(qū)動程序開始一個傳輸過程,然后USB產(chǎn)生一個中斷請求,向DSP申請中斷,在得到DSP的響應(yīng)之后才進(jìn)人中斷服務(wù)子程序進(jìn)行數(shù)據(jù)的接收或者發(fā)送。

5.2 USB驅(qū)動程序

USB的驅(qū)動程序?qū)儆赪DM(Windows Driver Model)類型,Windows 98/2000等操作系統(tǒng)均支持該類型的驅(qū)動程序。WDM首先定義了一個基本的核心驅(qū)動程序模型,處理所有類型的數(shù)據(jù),使驅(qū)動程序模型的內(nèi)核實現(xiàn)更加的固定。WDM驅(qū)動程序還是一種分層的程序結(jié)構(gòu),可以看做是Windows NT驅(qū)動程序的改進(jìn),WDM驅(qū)動程序支持即插即用、電源管理和WMI(Windows Management Instrument)特性。Windows 98/2000提供了一系列的系統(tǒng)驅(qū)動程序,他們具有為許多標(biāo)準(zhǔn)類型設(shè)備服務(wù)所需的所有基本功能。圖5是USB的WDM接口框圖(也是USB驅(qū)動程序總體框圖)。


Windows提供了USB的系統(tǒng)類驅(qū)動程序,他處理USB上的所有底層通信,這樣其他驅(qū)動程序就有了一個定義好的接口可以使用。圖5中USB類驅(qū)動程序使用UHCD.SYS或OHCI.SYS分別驅(qū)動兩種類型的控制器UHCI(USB Host Controller Driver)和OHCI(Open Host Controller Interface)。當(dāng)PCI枚舉器發(fā)現(xiàn)USB主機(jī)控制器后,就會裝入相關(guān)的驅(qū)動程序。

需要自己做的驅(qū)動程序?qū)嶋H上是USB功能驅(qū)動程序(也叫客戶驅(qū)動程序),他控制一個給定的USB功能設(shè)備,例如我們的設(shè)備。連接到USB設(shè)備的每一種類型的功能單元都必須要有功能驅(qū)動程序。這些功能單元不知道和USB傳輸機(jī)制相關(guān)的細(xì)節(jié),而且必須依賴于USB的主機(jī)應(yīng)用軟件才能管理他們基于USB的能力和限制的傳輸請求。功能驅(qū)動程序的理想實現(xiàn)是基于設(shè)備類而定義的。功能驅(qū)動程序把USB設(shè)備看作是一個司以被訪問的端點的集合,他可以被控制并與他的功能單元進(jìn)行通信。USB功能驅(qū)動程序可以在VC++下編寫,但需使用微軟提供的NTDDK(Windows NT Driver Develop Kit)來編譯驅(qū)動程序。

5.3 主機(jī)應(yīng)用軟件

主機(jī)應(yīng)用軟件所完成的主要工作為:打開和關(guān)閉USB設(shè)備;讀取設(shè)備描述符等;向設(shè)備發(fā)送摘機(jī)、掛機(jī)和撥號等命令;主動向用戶發(fā)聲并彈出對話框提示有來電;進(jìn)行撥號;撥號或摘機(jī)后的雙向語音同步傳輸。

主機(jī)應(yīng)用軟件在VC++6.0下完成,應(yīng)用軟件所操作的對象就是USB功能驅(qū)動程序,由于功能驅(qū)動程序提供與應(yīng)用軟件的接口,因此編寫應(yīng)用軟件的難度要遠(yuǎn)遠(yuǎn)低于功能驅(qū)動程序的開發(fā)難度。


6 結(jié) 語

在當(dāng)今的數(shù)字化時代背景下,DSP已成為通信、計算機(jī)、消費類電子產(chǎn)品等領(lǐng)域的基礎(chǔ)器件,被譽(yù)為信息社會革命的旗手。USB為PC外圍設(shè)備輸入輸電提供了新的接口標(biāo)準(zhǔn)。他使得設(shè)備具有了熱插拔、即1插即吊、自動配置的能力,并標(biāo)準(zhǔn)化了設(shè)備連接。USB的級聯(lián)星型拓?fù)浣Y(jié)構(gòu)大大擴(kuò)充了外設(shè)數(shù)量,使增加、使用外設(shè)更加便捷、快速。

本文所介紹的USB設(shè)備其實是一個數(shù)字電話機(jī)的模型,本系統(tǒng)軟硬件都具有模塊化特性,易于改造成其他應(yīng)用場合的語音控制系統(tǒng):從大的方面講,可以組成數(shù)字電話網(wǎng):從小的方面講,在一個局域網(wǎng)內(nèi)部,所有成員就都可以通過局域網(wǎng)方便地接聽和撥打電話,而無需大量的分機(jī)。該設(shè)計節(jié)省了大量的人力和物力,具有較強(qiáng)的使用價值和推廣意義



關(guān)鍵詞: DSP USB 語音傳輸

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉