USB系統結構與應用設計
摘 要:通用串行總線(xiàn)(USB)是一種簡(jiǎn)單的計算機外圍接口標準。它具有即插即用、擴展方便等優(yōu)點(diǎn),已成為計算機必備的一個(gè)接口。本文簡(jiǎn)要介紹USB總線(xiàn)的功能、拓樸結構及其數據傳輸過(guò)程,并舉例說(shuō)明USB接口的實(shí)際應用。
關(guān)鍵詞:通用串行總線(xiàn) USB接口 外圍接口標準
一、USB接口背景
在早期的計算機系統上常用串口或并口連接外圍設備。每個(gè)接口都需要占用計算機的系統資源(如中斷,I/O地址,DMA通道等)。無(wú)論是串口還是并口都是點(diǎn)對點(diǎn)的連接,一個(gè)接口僅支持一個(gè)設備。因此每添加一個(gè)新的設備,就需要添加一個(gè)ISA/EISA 或PCI卡來(lái)支持,同時(shí)系統需要重新啟動(dòng)才能驅動(dòng)新的設備。
USB總線(xiàn)是INTEL、DEC、MICROSOFT、IBM等公司聯(lián)合提出的一種新的串行總線(xiàn)標準,主要用于PC機與外圍設備的互聯(lián)。USB總線(xiàn)具有低成本、使用簡(jiǎn)單、支持即插即用、易于擴展等特點(diǎn),已被廣泛地用在PC機及嵌入式系統上。
二、USB總線(xiàn)優(yōu)缺點(diǎn)
1.優(yōu) 點(diǎn)
?。?)使用簡(jiǎn)單
所用USB系統的接口一致,連線(xiàn)簡(jiǎn)單。系統可對設備進(jìn)行自動(dòng)檢測和配置,支持熱插拔。新添加設備系統不需要重新啟動(dòng)。
?。?)應用范圍廣
USB系統數據報文附加信息少,帶寬利用率高,可同時(shí)支持同步傳輸和異步傳輸兩種傳輸方式。一個(gè)USB系統最多可支持127個(gè)物理設備。USB設備的帶寬可從幾Kbps 到幾Mbps (在USB2.0版本,最高可達幾百Mbps)。一個(gè)USB系統可同時(shí)支持不同速率的設備,如低速的鍵盤(pán)、鼠標,全速的ISDN、語(yǔ)音,高速的磁盤(pán)、圖像等(僅USB2.0版本支持高速設備)。
?。?)較強的糾錯能力
USB系統可實(shí)時(shí)地管理設備插拔。在USB協(xié)議中包含了傳輸錯誤管理、錯誤恢復等功能,同時(shí)根據不同的傳輸類(lèi)型來(lái)處理傳輸錯誤。
?。?)總線(xiàn)供電
USB總線(xiàn)可為連接在其上的設備提供5V電壓/100mA電流的供電,最大可提供500mA的電流。USB設備也可采用自供電方式。
?。?)低成本
USB接口電路簡(jiǎn)單,易于實(shí)現,特別是低速設備。USB系統接口/電纜也比較簡(jiǎn)單,成本比串口/并口低。
2.缺 點(diǎn)
USB技術(shù)還不是很成熟,特別是高速設備。市場(chǎng)上現有的USB設備價(jià)格都比較昂貴,但隨著(zhù)USB技術(shù)的日益成熟,設備的不斷增加和廣泛應用,其價(jià)格將會(huì )有所降低。
三、USB系統拓撲結構
一個(gè)USB系統包含三類(lèi)硬件設備: USB主機(USB HOST)、 USB設備(USB DEVICE)、USB集線(xiàn)器(USB HUB),如圖1所示。
?。?)USB HOST
在一個(gè)USB系統中,當且僅當有一個(gè)USB HOST時(shí),USB HOST有以下功能:
◇ 管理USB系統;
◇ 每毫秒產(chǎn)生一幀數據;
◇ 發(fā)送配置請求對USB設備進(jìn)行配置操作;
◇ 對總線(xiàn)上的錯誤進(jìn)行管理和恢復。
?。?)USB DEVICE
在一個(gè)USB系統中,USB DEVICE和USB HUB總數不能超過(guò)127個(gè)。USB DEVICE接收USB總線(xiàn)上的所有數據包,通過(guò)數據包的地址域來(lái)判斷是不是發(fā)給自己的數據包:若地址不符,則簡(jiǎn)單地丟棄該數據包;若地址相符,則通過(guò)響應USB HOST的數據包與USB HOST進(jìn)行數據傳輸。
?。?)USB HUB
USB HUB用于設備擴展連接,所有USB DEVICE都連接在USB HUB的端口上。一個(gè)USB HOST總與一個(gè)根HUB (USB ROOT HUB)相連。USB HUB為其每個(gè)端口提供100mA電流供設備使用。同時(shí),USB HUB可以通過(guò)端口的電氣變化診斷出設備的插拔操作,并通過(guò)響應USB HOST的數據包把端口狀態(tài)匯報給USB HOST。一般來(lái)說(shuō),USB設備與USB HUB間的連線(xiàn)長(cháng)度不超過(guò)5m,USB系統的級聯(lián)不能超過(guò)5級(包括ROOT HUB)。
四、USB總線(xiàn)數據傳輸
USB總線(xiàn)上數據傳輸的結構如圖2所示。
從物理結構上,USB系統是一個(gè)星形結構;但在邏輯結構上,每個(gè)USB邏輯設備都是直接與USB HOST相連進(jìn)行數據傳輸的。在USB總線(xiàn)上,每ms傳輸1幀數據。每幀數據可由多個(gè)數據包的傳輸過(guò)程組成。USB設備可根據數據包中的地址信息來(lái)判斷是否響應該數據傳輸。在USB標準1.1版本中,規定了4種傳輸方式以適應不同的傳輸需求:
?。?)控制傳輸(control transfer)
控制傳輸發(fā)送設備請求信息,主要用于讀取設備配置信息及設備狀態(tài)、設置設備地址,設置設備屬性、發(fā)送控制命令等功能。全速設備每次控制傳輸的最大有效負荷可為64個(gè)字節,而低速設備每次控制傳輸的最大有效負荷僅為8個(gè)字節。
?。?)同步傳輸(isochronous transfer)
同步傳輸僅適用于全速/高速設備。同步傳輸每ms進(jìn)行一次傳輸,有較大的帶寬,常用于語(yǔ)音設備。同步傳輸每次傳輸的最大有效負荷可為1023個(gè)字節。
?。?)中斷傳輸(interrupt transfer)
中斷傳輸用于支持數據量少的周期性傳輸需求。全速設備的中斷傳輸周期可為1~255ms,而低速設備的中斷傳輸周期為10~255ms。全速設備每次中斷傳輸的最大有效負荷可為64個(gè)字節,而低速設備每次中斷傳輸的最大有效負荷僅為8個(gè)字節。
?。?)塊數據傳輸(bulk transfer)
塊數據傳輸是非周期性的數據傳輸,僅全速/高速設備支持塊數據傳輸,同時(shí),當且僅當總線(xiàn)帶寬有效時(shí)才進(jìn)行塊數據傳輸。塊數據傳輸每次數據傳輸的最大有效負荷可為64個(gè)字節。
五、典型應用
USB系統的典型應用如圖3所示。
在圖3所示系統中,顯示器、Audio、Modem皆為全速設備,鍵盤(pán)、鼠標為低速設備。其數據傳輸為:
◇ USB HOST通過(guò)控制傳輸更改顯示器屬性。
◇ USB HOST通過(guò)塊數據傳輸將要顯示的數據送給顯示器。
◇ USB HOST通過(guò)控制傳輸更改鍵盤(pán)、鼠標屬性。
◇ USB HOST通過(guò)中斷傳輸要求鍵盤(pán)、鼠標輸入讀入系統。
◇ USB HOST通過(guò)控制傳輸更改Audio屬性。
◇ USB HOST通過(guò)同步傳輸與Audio設備傳輸數據。
◇ USB HOST通過(guò)控制傳輸更改Modem屬性。
◇ USB HOST通過(guò)塊數據傳輸與Modem設備傳輸數據。
六、一個(gè)USB HOST接口的軟硬件設計
市場(chǎng)上現已有很多公司提供的USB接口器件,如PHILIPS的PDIUSBD11/PDIUSBD12,OKI的MSM60581,NATIONAL的USBN9602,LUCENT的USS-820/USS-620,SCANLOGIC的SL11,等等。
同時(shí)也有很多帶USB接口的處理器,如CYPRESS的EZ-USB,AMD的AM186CC,ATMEL的AT43320,MOTOROLA的PPC823/PPC850,等等。下面給出用SCANLOGIC的USB接口器件SL11HT實(shí)現嵌入式USB HOST的例子。
1.SL11HT特點(diǎn)
◇ 遵從USB1.1標準;
◇ 支持全速/低速傳輸;
◇ 支持主機/設備端兩種模式;
◇ 3.3/5.0V供電;
◇ 片內包含256個(gè)字節的SRAM;
◇ 48MHz晶振輸入。
當SL11HT被用作USB HOST接口時(shí),對系統有以下要求:
◇ 由系統維護SOF幀數目;
◇ 由系統生成CRC5效驗碼;
◇ 要求系統中斷潛伏期小于1.5μs。
2.SL11HT接口硬件框圖
圖4簡(jiǎn)單地給出了使用SL11HT擴展USB接口的框圖,更詳細的硬件連線(xiàn)圖請見(jiàn)參考文獻2,3。
3.USB HOST端軟件結構
USB HOST端軟件結構如圖5所示。
?。?)USB接口驅動(dòng)程序
USB接口驅動(dòng)程序需實(shí)現以下功能:
◇ USB接口器件的初始化;
◇ 計算上層數據包的效驗和,發(fā)送上層的數據包;
◇ 發(fā)送SOF幀;
◇ 接收從USB接口傳送來(lái)的數據,并檢查數據的有效性;
◇ 將接收到的數據送往上層。
?。?)USB協(xié)議棧驅動(dòng)程序
USB協(xié)議棧驅動(dòng)程序需實(shí)現以下功能:
◇ 提供與設備驅動(dòng)程序的接口;
◇ 讀取并解析USB設備描述符,配置描述符;
◇ 為USB設備分配唯一的地址;
◇ 使用默認的配置來(lái)配置設備;
◇ 支持基本的USB命令請求;
◇ 連接設備與相應的驅動(dòng)程序;
◇ 轉發(fā)設備驅動(dòng)程序的數據包。
?。?)設備驅動(dòng)程序
設備驅動(dòng)程序需實(shí)現以下功能:
◇ 提供與應用程序的接口;
◇ 讀取并解析USB設備特有的描述符,獲得設備提供的傳輸通道;
◇ 發(fā)送設備特有的和基本的USB命令請求;
◇ 通過(guò)設備提供的傳輸通道與設備進(jìn)行數據傳輸;
◇ 通過(guò)USB命令請求重新配置設備。
參考文獻
1 Universal Serial Bus Specification Revision 1.1 http://www.usb.org
2 SL11H/T USB Host/Slave Controllers Technical Reference. http://www.scanlogic.com
3 SL11H Application Notes. http://www.scanlogic.com
評論