USB系統結構與應用設計

才智咖 人氣:4.9K
USB系統結構與應用設計
摘 要:通用序列匯流排(USB)是一種簡單的計算機外圍介面標準。它具有即插即用、擴充套件方便等優點,已成為必備的一個介面。本文簡要介紹USB匯流排的功能、拓樸結構及其資料傳輸過程,並舉例說明USB介面的實際應用。

關鍵詞:通用序列匯流排 USB介面 外圍介面標準

一、USB介面背景

  在早期的計算機系統上常用串列埠或並口連線外圍裝置。每個介面都需要佔用計算機的系統資源(如中斷,I/O地址,DMA通道等)。無論是串列埠還是並口都是點對點的連線,一個介面僅支援一個裝置。因此每新增一個新的裝置,就需要新增一個ISA/EISA 或PCI卡來支援,同時系統需要重新啟動才能驅動新的裝置。

  USB匯流排是INTEL、DEC、MICROSOFT、IBM等公司聯合提出的一種新的序列匯流排標準,主要用於PC機與外圍裝置的互聯。USB匯流排具有低、使用簡單、支援即插即用、易於擴充套件等特點,已被廣泛地用在PC機及嵌入式系統上。

二、USB匯流排優缺點

1.優 點

  (1)使用簡單

  所用USB系統的介面一致,連線簡單。系統可對裝置進行自動檢測和配置,支援熱插拔。新新增裝置系統不需要重新啟動。

  (2)應用範圍廣

  USB系統資料報文附加資訊少,頻寬利用率高,可同時支援同步傳輸和非同步傳輸兩種傳輸方式。一個USB系統最多可支援127個裝置。USB裝置的頻寬可從幾Kbps 到幾Mbps (在USB2.0版本,最高可達幾百Mbps)。一個USB系統可同時支援不同速率的裝置,如低速的鍵盤、滑鼠,全速的ISDN、語音,高速的磁碟、影象等(僅USB2.0版本支援高速裝置)。

  (3)較強的糾錯能力

  USB系統可實時地裝置插拔。在USB協議中包含了傳輸錯誤管理、錯誤恢復等功能,同時根據不同的'傳輸型別來處理傳輸錯誤。

  (4)匯流排供電

  USB匯流排可為連線在其上的裝置提供5V電壓/100mA電流的供電,最大可提供500mA的電流。USB裝置也可採用自供電方式。

  (5)低成本

  USB介面電路簡單,易於實現,特別是低速裝置。USB系統介面/電纜也比較簡單,成本比串列埠/並口低。

2.缺 點

  USB技術還不是很成熟,特別是高速裝置。上現有的USB裝置價格都比較昂貴,但隨著USB技術的日益成熟,裝置的不斷增加和廣泛應用,其價格將會有所降低。

三、USB系統拓撲結構

  一個USB系統包含三類硬體裝置: USB主機(USB HOST)、 USB裝置(USB DEVICE)、USB集線器(USB HUB),如圖1所示。





  (1)USB HOST

  在一個USB系統中,若且唯若有一個USB HOST時,USB HOST有以下功能:

  ◇ 管理USB系統;
  ◇ 每毫秒產生一幀資料;
  ◇ 傳送配置請求對USB裝置進行配置操作;
  ◇ 對匯流排上的錯誤進行管理和恢復。

  (2)USB DEVICE

  在一個USB系統中,USB DEVICE和USB HUB總數不能超過127個。USB DEVICE接收USB匯流排上的所有資料包,通過資料包的地址域來判斷是不是發給自己的資料包:若地址不符,則簡單地丟棄該資料包;若地址相符,則通過響應USB HOST的資料包與USB HOST進行資料傳輸。

  (3)USB HUB

  USB HUB用於裝置擴充套件連線,所有USB DEVICE都連線在USB HUB的埠上。一個USB HOST總與一個根HUB (USB ROOT HUB)相連。USB HUB為其每個埠提供100mA電流供裝置使用。同時,USB HUB可以通過埠的電氣變化診斷出裝置的插拔操作,並通過響應USB HOST的資料包把埠狀態彙報給USB HOST。一般來說,USB裝置與USB HUB間的連線長度不超過5m,USB系統的級聯不能超過5級(包括ROOT HUB)。

四、USB匯流排資料傳輸

  USB匯流排上資料傳輸的結構如圖2所示。



  從物理結構上,USB系統是一個星形結構;但在結構上,每個USB邏輯裝置都是直接與USB HOST相連進行資料傳輸的。在USB匯流排上,每ms傳輸1幀資料。每幀資料可由多個數據包的傳輸過程組成。USB裝置可根據資料包中的地址資訊來判斷是否響應該資料傳輸。在USB標準1.1版本中,規定了4種傳輸方式以適應不同的傳輸需求:

  (1)控制傳輸(control transfer)

  控制傳輸傳送裝置請求資訊,主要用於讀取裝置配置資訊及裝置狀態、設定裝置地址,設定裝置屬性、傳送控制命令等功能。全速裝置每次控制傳輸的最大有效負荷可為64個位元組,而低速裝置每次控制傳輸的最大有效負荷僅為8個位元組。

  (2)同步傳輸(isochronous transfer)

  同步傳輸僅適用於全速/高速裝置。同步傳輸每ms進行一次傳輸,有較大的頻寬,常用於語音裝置。同步傳輸每次傳輸的最大有效負荷可為1023個位元組。

  (3)中斷傳輸(interrupt transfer)

  中斷傳輸用於支援資料量少的週期性傳輸需求。全速裝置的中斷傳輸週期可為1~255ms,而低速裝置的中斷傳輸週期為10~255ms。全速裝置每次中斷傳輸的最大有效負荷可為64個位元組,而低速裝置每次中斷傳輸的最大有效負荷僅為8個位元組。



  (4)塊資料傳輸(bulk transfer)

  塊資料傳輸是非週期性的資料傳輸,僅全速/高速裝置支援塊資料傳輸,同時,若且唯若匯流排頻寬有效時才進行塊資料傳輸。塊資料傳輸每次資料傳輸的最大有效負荷可為64個位元組。

五、典型應用

  USB系統的典型應用如圖3所示。



在圖3所示系統中,顯示器、Audio、Modem皆為全速裝置,鍵盤、滑鼠為低速裝置。其資料傳輸為:

◇ USB HOST通過控制傳輸更改顯示器屬性。
◇ USB HOST通過塊資料傳輸將要顯示的資料送給顯示器。
◇ USB HOST通過控制傳輸更改鍵盤、滑鼠屬性。
◇ USB HOST通過中斷傳輸要求鍵盤、滑鼠輸入讀入系統。
◇ USB HOST通過控制傳輸更改Audio屬性。
◇ USB HOST通過同步傳輸與Audio裝置傳輸資料。
◇ USB HOST通過控制傳輸更改Modem屬性。
◇ USB HOST通過塊資料傳輸與Modem裝置傳輸資料
六、一個USB HOST介面的軟硬體設計

  市場上現已有很多公司提供的USB介面器件,如PHILIPS的PDIUSBD11/PDIUSBD12,OKI的MSM60581,NATIONAL的USBN9602,LUCENT的USS-820/USS-620,SCANLOGIC的SL11,等等。

  同時也有很多帶USB介面的處理器,如CYPRESS的EZ-USB,AMD的AM186CC,ATMEL的AT43320,MOTOROLA的PPC823/PPC850,等等。下面給出用SCANLOGIC的USB介面器件SL11HT實現嵌入式USB HOST的例子。

11HT特點

  ◇ 遵從USB1.1標準;
  ◇ 支援全速/低速傳輸;
  ◇ 支援主機/裝置端兩種模式;
  ◇ 3.3/5.0V供電;
  ◇ 片內包含256個位元組的SRAM;
  ◇ 48MHz晶振輸入。

  當SL11HT被用作USB HOST介面時,對系統有以下要求:

  ◇ 由系統維護SOF幀數目;
  ◇ 由系統生成CRC5效驗碼;
  ◇ 要求系統中斷潛伏期小於1.5μs。

11HT介面硬體框圖

  圖4簡單地給出了使用SL11HT擴充套件USB介面的框圖,更詳細的硬體連線圖請見參考文獻2,3。



 HOST端軟體結構

  USB HOST端軟體結構如圖5所示。



  (1)USB介面驅動程式

  USB介面驅動程式需實現以下功能: 

  ◇ USB介面器件的初始化;
  ◇ 計算上層資料包的效驗和,傳送上層的資料包;
  ◇ 傳送SOF幀;
  ◇ 接收從USB介面傳送來的資料,並檢查資料的有效性;
  ◇ 將接收到的資料送往上層。

  (2)USB協議棧驅動程式

  USB協議棧驅動程式需實現以下功能: 

  ◇ 提供與裝置驅動程式的介面;
  ◇ 讀取並解析USB裝置描述符,配置描述符;
  ◇ 為USB裝置分配唯一的地址;
  ◇ 使用預設的配置來配置裝置;
  ◇ 支援基本的USB命令請求;
  ◇ 連線裝置與相應的驅動程式;
  ◇ 轉發裝置驅動程式的資料包。

  (3)裝置驅動程式

  裝置驅動程式需實現以下功能: 

  ◇ 提供與應用程式的介面;
  ◇ 讀取並解析USB裝置特有的描述符,獲得裝置提供的傳輸通道;
  ◇ 傳送裝置特有的和基本的USB命令請求;
  ◇ 通過裝置提供的傳輸通道與裝置進行資料傳輸;
  ◇ 通過USB命令請求重新配置裝置。