1、引 言
USB把所有的輸入和輸出外設都置于機箱之外,而不用任何擴展槽。他是快速、雙向、同步、動態(tài)連接且價格低廉的串行接口,可以滿足PC機發(fā)展的現(xiàn)在和未來的需要。本設計就是充分發(fā)揮了USB這些優(yōu)點,利用當今先進的電子技術研制出來的一種新型的高性能的語音傳輸接口裝置。
本設計選用TI公司的TMS320VC5402(以下簡稱DSP,Digital Signal Processor)作為本設計的主控制器芯片,NS公司的USBN9603(以下簡稱USB,Universal Serial Bus)作為USB控制器芯片,NEWAVE公司的NWl034(以下簡稱CODEC)作為語音編解碼器芯片,MITEI。公司的MH88634(以下簡稱COIC)作為電話機接口芯片。
2、 DSP和USB簡介
TMS320VC5402是定點芯片TMS320C54X系列的一種,是為實現(xiàn)低功耗和高性能而專門設計的定點DSP芯片,主要應用在無線通信和語音處理等方面。TMS320VC5402的主要特點包括:處理性能好,運算速度達100MI/s;優(yōu)化的CPU結構,內部有1個40b的算術邏輯單元,2個獨立的40b的加法器,1個17×17的的乘法器和1個40b的桶形移位寄存器,有4條內部總線和2個地址產生器;低功耗方式,可以在3.3VI/O電壓和1.8V內核電壓下工作;智能外設,除了標準的串行口和時分復用(TDM)串行口外,TMS320VC5402還提供了自動緩沖串行口BSP(auto-Buffered Serial Port)和與外部處理器通信的HPI(Host Port Interface)接口;內部有16k片內RAM和4k片內ROM。
TMS320VC5402其獨特的高性能、低功耗和低價格優(yōu)勢,是我們選擇他作為本設計的主處理器的原因。
USB自1995年實現(xiàn)標準化后,經過了數年的飛速發(fā)展,已經從最初1.0規(guī)范發(fā)展到現(xiàn)在的2.o規(guī)范,最大傳輸速率可達480Mb/s。本設計使用的USBN9603支持USBl.1規(guī)范,低速傳輸速率為1.5Mb/s,全速傳輸速率為12Mb/s。USB提供了4種傳輸方式,以適應各種設備的需要。這4種傳輸方式分別是控制傳輸、等時傳輸、中斷傳輸和批量傳輸。
NS的USBN9603是一個集成的USB端點控制器,具有增強的DMA功能。USBN9603集成了一個帶有3.3V的調節(jié)器的收發(fā)器,1個SIE(串行接口引擎),1個8 b并行接口,1個時鐘發(fā)生器和1個MICROWIRE/PLUS接口。USBN9603可以進行7個端點的數據傳輸,除了端點。必須為控制傳輸端點以外,其他的6個端點可以被配置成中斷傳輸端點、批量傳輸端點或者等時傳輸端點;每一個端點都有一個專門的FIFO,控制端點的FIFO長度為8B,其他的為64B。8 b并行接口可以支持多路復用或者非多路復用2種與CPU的接口方式。USBN9603的突出特點為:低EMI(電磁干擾),低等待電流,24M晶振,增強的DMA功能;可使用5V或3.3V電源;總線操作具有異步喚醒的全速靜態(tài)HALT模式;改進的3.3V電壓輸入的電壓調節(jié)器,所有非雙向端點都有64B的FIFO;外部控制器接口簡單,編程方便。
3 、語音傳輸的思想
本設計的目的是給普通電話機和PC機之間提供一個數字接口。在本設計中,PC機是主機,DSP系統(tǒng)是USB設備。
當有來電時,COIC向DSP申請中斷,DSP收到中斷后就使用USB的中斷傳輸向主機報告有來電,主機應用軟件會彈出一個對話框要求用戶選擇摘機還是拒接,同時耳機或音箱里會傳出電話鈴聲,如果選擇摘機,主機就會使用USB的控制傳輸發(fā)送一個摘機命令給DSP,DSP在接到命令后就會接通電話,同時啟動CODEC,然后語音數據就通過USB的等時傳輸(也叫同步傳輸)進行雙向傳送,而主機用戶插上耳機(或音箱)和話筒就可以與電話另一端通話,通話完畢,主機發(fā)送一個掛機命令給DSP。如果選擇拒接,主機就發(fā)送一個拒接命令給DSP,DSP會執(zhí)行相應的動作。
當用戶需要往外撥號時,也無需拿起電話機,只要在應用軟件中選擇撥號功能,輸入被叫號碼,點擊確認鍵即可。剩下來的執(zhí)行過程與有來電時的情況是一樣的。
4、 電路原理設計
本設計由DSP構成核心控制器,控制對象是USB,CODEC和COIC。圖1是整個系統(tǒng)的硬件框圖。
本設計的USB部分使用了USB的3種傳輸方式:
(1)控制傳輸
用于實現(xiàn)設備枚舉主機的標準請求還有廠商自定義請求(即主機命令)。
(2)中斷傳輸
用于實現(xiàn)設備對主機的喚醒,是惟一的設備主動向主機發(fā)送數據的傳輸方式。
(3)等時傳輸
用于實現(xiàn)語音數據的雙向同步傳輸。
圖2是USB與DSP的接口原理圖,如圖所示,USB使用24M晶振,本設備是全速(高速)設備,所以在D+上加0.5kΩ上拉電阻,如果是低速設備,則在D一上加1.5kΩ上拉電阻。MODE0和MODEl是選擇8b并行接口方式的,本設計中選用非多路復用方式,所以MODE0和Model都接地,如果要選擇成多路復用方式,則使MODE0接3.3V電源,MODEl接地即可。
CLKOUT是時鐘輸出,可供測試用,正常上電復位后,CLKOUT就應該輸出4MHz的方波。然后可以在主程序中對USB的時鐘寄存器進行配置,以產生需要的時鐘,然后用示波器就可以在CLKOUT上看到相應的輸出,可以用來判斷讀寫操作是否正確等。
CODEC與DSP的接口為標準的串行通信接口。COIC把普通電話的兩線制轉換為四線制后實現(xiàn)與CODEC的無縫連接,另外和DSP接口只需幾根簡單的控制線即可實現(xiàn)。
5、 系統(tǒng)軟件的設計
系統(tǒng)軟件主要由3個部分組成:Firmware,USB驅動程序,主機應用軟件。圖3是系統(tǒng)軟件框圖。
5.1 Firmware
固件程序,是寫在DSP的ROM中的程序,由主程序和中斷服務程序組成。使用TI提供的CCS(Code Composer Studio)來完成Firmware的編寫。CCS是TI推出的代碼編譯調試的集成環(huán)境,調試方便、易于使用,為本設計的順利進行創(chuàng)造有利條件。
(1)主程序
圖4為主程序流程圖。主程序只做初始化和檢測一些狀態(tài)位的變化,以轉入相應的處理子程序中。
(2)中斷服務程序
包括COIC的中斷服務程序、CODEC的中斷服務程序和USB中斷服務程序3部分。Firmware的大部分工作是在中斷服務程序中完成的。
COIC只有一個中斷,就是把振鈴信息傳送給DSP。
CODEC有3個中斷:首先是接收振鈴信息,在振鈴中斷服務子程序中,把振鈴標志位置位;然后是接收中斷,在中斷服務子程序中把從電話接收到的語音數據裝載到相應的FIFO中去;還有就是發(fā)送中斷,在中斷服務子程序中把從PC機側發(fā)過來的語音數據發(fā)送至電話終端。
USB有4個中斷,所有的數據交換都是在中斷服務子程序中完成的,而且除中斷傳輸外每次傳輸都是由客戶啟動的,主機應用軟件調用USB功能驅動程序開始一個傳輸過程,然后USB產生一個中斷請求,向DSP申請中斷,在得到DSP的響應之后才進人中斷服務子程序進行數據的接收或者發(fā)送。
5.2 USB驅動程序
USB的驅動程序屬于WDM(Windows Driver Model)類型,Windows 98/2000等操作系統(tǒng)均支持該類型的驅動程序。WDM首先定義了一個基本的核心驅動程序模型,處理所有類型的數據,使驅動程序模型的內核實現(xiàn)更加的固定。WDM驅動程序還是一種分層的程序結構,可以看做是Windows NT驅動程序的改進,WDM驅動程序支持即插即用、電源管理和
WMI(Windows Management Instrument)特性。Windows 98/2000提供了一系列的系統(tǒng)驅動程序,他們具有為許多標準類型設備服務所需的所有基本功能。圖5是USB的WDM接口框圖(也是USB驅動程序總體框圖)。
Windows提供了USB的系統(tǒng)類驅動程序,他處理USB上的所有底層通信,這樣其他驅動程序就有了一個定義好的接口可以使用。圖5中USB類驅動程序使用UHCD.SYS或OHCI.SYS分別驅動兩種類型的控制器UHCI(USB Host Controller Driver)和OHCI(Open Host Controller Interface)。當PCI枚舉器發(fā)現(xiàn)USB主機控制器后,就會裝入相關的驅動程序。
需要自己做的驅動程序實際上是USB功能驅動程序(也叫客戶驅動程序),他控制一個給定的USB功能設備,例如我們的語音傳輸設備。連接到USB設備的每一種類型的功能單元都必須要有功能驅動程序。這些功能單元不知道和USB傳輸機制相關的細節(jié),而且必須依賴于USB的主機應用軟件才能管理他們基于USB的能力和限制的傳輸請求。功能驅動程序的理想實現(xiàn)是基于設備類而定義的。功能驅動程序把USB設備看作是一個司以被訪問的端點的集合,他可以被控制并與他的功能單元進行通信。USB功能驅動程序可以在VC++下編寫,但需使用微軟提供的NTDDK(Windows NT Driver Develop Kit)來編譯驅動程序。
5.3 主機應用軟件
主機應用軟件所完成的主要工作為:打開和關閉USB設備;讀取設備描述符等;向設備發(fā)送摘機、掛機和撥號等命令;主動向用戶發(fā)聲并彈出對話框提示有來電;進行撥號;撥號或摘機后的雙向語音同步傳輸。
主機應用軟件在VC++6.0下完成,應用軟件所操作的對象就是USB功能驅動程序,由于功能驅動程序提供與應用軟件的接口,因此編寫應用軟件的難度要遠遠低于功能驅動程序的開發(fā)難度。
6 、結 語
在當今的數字化時代背景下,DSP已成為通信、計算機、消費類電子產品等領域的基礎器件,被譽為信息社會革命的旗手。USB為PC外圍設備輸入輸電提供了新的接口標準。他使得設備具有了熱插拔、即1插即吊、自動配置的能力,并標準化了設備連接。USB的級聯(lián)星型拓撲結構大大擴充了外設數量,使增加、使用外設更加便捷、快速。
本文所介紹的USB設備其實是一個數字電話機的模型,本系統(tǒng)軟硬件都具有模塊化特性,易于改造成其他應用場合的語音控制系統(tǒng):從大的方面講,可以組成數字電話網:從小的方面講,在一個局域網內部,所有成員就都可以通過局域網方便地接聽和撥打電話,而無需大量的分機。該設計節(jié)省了大量的人力和物力,具有較強的使用價值和推廣意義。
責任編輯:gt
評論