??? 摘? 要: 介紹USB接口在串行通信中的應(yīng)用,討論USB接口同RS-232接口的轉(zhuǎn)換以及USB接口modem的簡化設(shè)計,并給出了實際中的產(chǎn)品樣圖,。?
????關(guān)鍵詞: USB? RS-232? 通訊類? UniModem
?
1 USB接口簡介?
??? USB即通用串行總線,可以實現(xiàn)熱插拔,采用菊花鏈結(jié)構(gòu),最多可以同時連接127臺設(shè)備,由總線提供電源,并有檢錯、糾錯功能以保證數(shù)據(jù)正確傳輸,。?
??? USB在PC機上應(yīng)用時,PC機的操作系統(tǒng)需要支持USB協(xié)議,此時PC機上的軟件包括兩部分:USB初始化軟件和運行部分,。前者對外設(shè)進行構(gòu)造并定義一個唯一的標識,這就是所謂的列舉過程,以獲得每個外設(shè)的描述表,。?
??? 另外USB主機端軟件分層為多種外設(shè)的類,如大存儲器外設(shè),、通訊外設(shè)、音頻外設(shè),、人機接口外設(shè)等,。?
??? USB數(shù)據(jù)線傳送差分信號,所有通信由根集線器初始化,并由外部集線器復(fù)制,其連接為點到點,采用半雙工。USB數(shù)據(jù)線上無時鐘信號,故節(jié)點間為異步通訊,總線上所有外設(shè)的額定通信速率為12MHz,外設(shè)采用過采樣方式從總線上接收信號,。接收器依賴于有規(guī)律的信號變化以保持與發(fā)送器的同步,USB規(guī)格書中采用不歸零翻轉(zhuǎn)以實現(xiàn)其數(shù)據(jù)線的發(fā)送編碼,。?
2 USB到RS-232轉(zhuǎn)換器?
??? RS-232是個流行的接口。在MS-DOS中,四個串行接口稱為COM1,、COM2,、COM3和COM4,而絕大部分windows應(yīng)用程序最多可以有4個外設(shè),但是如果用戶要擴充更多外設(shè)時,就必須要用插入式串行卡或者外部開關(guān)盒實現(xiàn)。?
??? RS-232點對點連接,一個串口只能連接一個外設(shè),。而USB是一種多點,、高速的連接方式,采用集線器能實現(xiàn)更多的連接。USB接口的基本部分是串行接口引擎SIE,SIE從USB收發(fā)器中接收數(shù)據(jù)位,轉(zhuǎn)化為有效字節(jié)傳送給SIE接口;反之,SIE接口也可以接收字節(jié)轉(zhuǎn)化為串行位送到USB總線,。?
??? 圖1為轉(zhuǎn)換器加串行外設(shè)示意圖,。在轉(zhuǎn)換器和外設(shè)接收器端各有一個微控制器,實際上這兩個微控制器可以合并,可采用MCS-51系列控制器或者I2C總線的微控制器實現(xiàn)。?
?
?
??? 圖2為使用外部USB連接的微控制器示意圖,通用微控制器選用MCS-51,USB外圍芯片是Philips的PDIUSBD11,該芯片帶有I2C接口,其SIE接口包括一個中斷和一個較大寄存器,用于對I2C總線的存取,。當一個數(shù)據(jù)包來到時,PDIUSBD11將其中斷線拉低,微控制器轉(zhuǎn)入中斷處理程序,首先讀取PDIUSBD11的中斷狀態(tài)寄存器,然后再讀取其他寄存器的值,以獲得數(shù)據(jù)包類型和包中數(shù)據(jù),。每次傳送完一個數(shù)據(jù)包均會產(chǎn)生一次中斷請求,中斷處理程序監(jiān)視控制序列并檢測所有錯誤。
?
?
3 用USB連接56kbps modem設(shè)計?
??? USB協(xié)議中包括一個通信類,定義了一種結(jié)構(gòu),以囊括所有用于遠程通信服務(wù)和中速網(wǎng)絡(luò)服務(wù)的設(shè)備,。這樣,外設(shè)就可以將自身標識為一個通信類的外設(shè),。?
3.1 傳統(tǒng)的modem結(jié)構(gòu)?
??? 傳統(tǒng)modem一般包括:?
??? ·微控制器:以對控制碼譯碼(AT命令集)?
??? ·數(shù)字信號處理器(DSP):對信號調(diào)制和解調(diào)?
??? ·模擬調(diào)制和解調(diào)電路?
??? ·數(shù)據(jù)存取管理電路?
??? ·隔離器:將高電壓或高電流隔離電話線?
3.2 簡化設(shè)計?
??? 由于PC機串口的最高速率為115.2kbps,這樣在圖3的結(jié)構(gòu)中會形成一個速度瓶頸。RS-232系統(tǒng)包括2個串行信號路徑,其方向相反,分別用于傳輸命令和數(shù)據(jù),而命令和狀態(tài)必須與數(shù)據(jù)交織在一起;而USB支持分離的命令和數(shù)據(jù)通道并允許獨立的狀態(tài)報告,。?
?
?
??? 在Windows操作系統(tǒng)中,通信層的UniModem驅(qū)動程序(圖4所示)可以實現(xiàn)modem命令集,。微軟的VCOMM口驅(qū)動軟件可以重新定位原先面向串行口的輸出,將之直接傳給Windows外設(shè)驅(qū)動模塊(WDM—Windows Device Driver Model)的類驅(qū)動器,由WDM類驅(qū)動器將輸出送到USB外設(shè)。而采用相反的順序則可將由USB外設(shè)的輸入送至Unimodem驅(qū)動器并最終回到應(yīng)用程序,。?
?
?
??? 另外,由于PC主機有足夠的處理能力,在處理用戶應(yīng)用程序的同時,完全可以實現(xiàn)實時信號處理,并且Intel在其處理器中保留了MMX指令集,。該指令集有DSP算法的優(yōu)點,同時又是通過“軟”處理實現(xiàn),且相對于物理的DSP芯片,該指令集的信號處理算法可以方便地升級。?
??? 通過“軟處理”,傳統(tǒng)的調(diào)制解調(diào)器中只保留了調(diào)制級,、信號隔離器和一個數(shù)據(jù)存取管理器,。圖5即為簡化了的設(shè)計,帶有一個變壓器用作隔離器。?
?
?
??? 本文討論了USB接口技術(shù)在串行通信中的應(yīng)用,通過在外設(shè)中加入一個微控制器,并利用幾個Windows支持的通信類,簡化了傳統(tǒng)USB接口modem的設(shè)計,。文中給出了一個實際modem的簡化設(shè)計,利用LabView軟件和VB語言可以對該modem進行仿真模擬。?
參考文獻?
1 USB Specification V1.1 ?
2 Device Class Definition for Audio V1.0?
3 Device Class Definition for Communications V1.1?
4 張汝春. USB新技術(shù).北京:清華大學出版社,2002