USB體系結構概述
??? 本章主要內容是關于USB的概述和一些關鍵的概念。USB是一種電纜總線,支持在主機和各式各樣的即插即用的外設之間進行數據傳輸。由主機預定的標準的協議使各種設備分享USB帶寬,當其它設備和主機在運行時,總線允許添加、設置、使用以及拆除外設。
??? 后續章節將著重描述USB的細節。
USB系統的描述
??? 一個USB系統主要被定義為三個部分:
??? ?USB的互連;
??? ?USB的設備;
??? ?USB的主機。
????? USB的互連是指USB設備與主機之間進行連接和通信的操作,主要包括以下幾方面:
??? ?總線的拓撲結構:USB設備與主機之間的各種連接方式;
??? ?內部層次關系:根據性能疊置,USB的任務被分配到系統的每一個層次;
??? ?數據流模式:描述了數據在系統中通過USB從產生方到使用方的流動方式;
??? ?USB的調度:USB提供了一個共享的連接。對可以使用的連接進行了調度以支持同步數據傳輸,并且避免的優先級判別的開銷。
??? USB的設備及主機的細節將講述于后。
總線布局技術
??? USB連接了USB設備和USB主機,USB的物理連接是有層次性的星型結構。每個網絡集線器是在星型的中心,每條線段是點點連接。從主機到集線器或其功能部件,或從集線器到集線器或其功能部件,從圖3-1中可看出USB的拓撲結構。
3.1.1.1? USB的主機
??? 在任何USB系統中,只有一個主機。USB和主機系統的接口稱作主機控制器,主機控
圖3-1 總線的拓撲結構
制器可由硬件、固件和軟件綜合實現。根集線器是由主機系統整合的,用以提供更多的連接點。關于主機更多的內容可參見4.9節和第9章。
4.1.1.2? USB的設備
??? USB的設備如下所示:
??? ?網絡集線器,向USB提供了更多的連接點;
??? ?功能器件:為系統提供具體功能,如ISDN的連接,數字的游戲桿或揚聲器。
??? USB設備提供的USB標準接口的主要依據:
??? ?對USB協議的運用;
??? ?對標準USB操作的反饋,如設置和復位;
??? ?標準性能的描述性信息;
??? 關于USB設備的更多信息請參見3.8節和第8章。
物理接口
USB的物理接口的電氣特性在第六章,機械特性在第五章詳細介紹。
?
3.2.1電氣特性
USB傳送信號和電源是通過一種四線的電纜,圖3-2中的兩根線是用于發送信號。
?? 存在兩種數據傳輸率:
圖3-2 USB 的電纜
??USB的高速信號的比特率定為12Mbps;
??? ?低速信號傳送的模式定為1.5Mbps;
??? 低速模式需要更少的EMI保護。兩種模式可在用同一USB總線傳輸的情況下自動地動態切換。因為過多的低速模式的使用將降低總線的利用率,所以該模式只支持有限個低帶寬的設備(如鼠標)。時鐘被調制后與差分數據一同被傳送出去,時鐘信號被轉換成NRZI碼,并填充了比特以保證轉換的連續性,每一數據包中附有同步信號以使得收方可還原出原時鐘信號。
??? 電纜中包括VBUS?、GND二條線,向設備提供電源 。VBUS?使用+5V電源。USB對電纜長度的要求很寬,最長可為幾米。通過選擇合適的導線長度以匹配指定的IR drop和其它一些特性,如設備能源預算和電纜適應度。為了保證足夠的輸入電壓和終端阻抗。重要的終端設備應位于電纜的尾部。在每個端口都可檢測終端是否連接或分離,并區分出高速,或低速設備。
3.2.2? 機械特性
??? 電纜和連接器的機械特性將在第5章詳述。所有設備都有一個上行的連接。上行連接器和下行連接器是不可簡單的互換,這樣就避免了集線器間的非法的循環往復的連接,電纜中有四根導線:一對互相纏繞的標準規格線,一對符合標準的電源線,連接器有四個方向,具有屏蔽層,以避免外界干擾,并有易拆裝的特性。
電源
??? 主要包括兩方面:
??? ?電源分配:即USB的設備如何通過USB分配得到由主計算機提供的能源;
??? ?電源管理:即通過電源管理系統,USB的系統軟件和設備如何與主機協調工作。
電源分配
??? 每個USB單元通過電纜只能提供有限的能源。主機對那種直接相連的USB設備提供電源供其使用。并且每個USB設備都可能有自己的電源。那些完全依靠電纜提供能源的設備稱作“總線供能”設備。相反,那些可選擇能源來源的設備稱作“自供電”設備。而且,集線器也可由與之相連的USB設備提供電源。受一定布局限制的帶有“總線供能”集線器的體系結構將在第十章討論。在圖4-4(位于3.8)中,鍵盤,輸入筆和鼠標均為“總線供能”設備。
3.3.2? 電源管理
??? USB主機與USB系統有相互獨立的電源管理系統。USB的系統軟件可以與主機的能源管理系統結合共同處理各種電源子件如掛起、喚醒,并且有特色的是,USB設備應用特有的電源管理特性,可讓系統軟件和控制其電源管理。
??? USB的電源分配和電源管理特性使之可以被設計在電源傳感系統中,如采用電池的筆記本電腦。
USB總線協議
??? USB總線屬一種輪訊方式的總線,主機控制端口初始化所有的數據傳輸。
??? 每一總線執行動作最多傳送三個數據包。按照傳輸前制定好的原則,在每次傳送開始時,主機控制器發送一個描述傳輸運作的種類、方向,USB設備地址和終端號的USB數據包,這個數據包通常稱為標志包(token packet)。USB設備從解碼后的數據包的適當位置取出屬于自己的數據。數據傳輸方向不是從主機到設備就是從設備到主機。在傳輸開始時,由標志包來標志數據的傳輸方向,然后發送端開始發送包含信息的數據包或表明沒有數據傳送。接收端也要相應發送一個握手的數據包表明是否傳送成功。發送端和接收端之間的USB數據傳輸,在主機和設備的端口之間,可視為一個通道。存在兩種類型的通道:流和消息。流的數據不像消息的數據,它沒有USB所定義的結構,而且通道與數據帶寬、傳送服務類型,端口特性(如方向和緩沖區大小)有關。多數通道在USB設備設置完成后即存在。USB中有一個特殊的通道——缺省控制通道,它屬于消息通道,當設備一啟動即存在,從而為設備的設置、查詢狀況和輸入控制信息提供一個入口。
??? 事務預處理允許對一些數據流的通道進行控制,從而在硬件級上防止了對緩沖區的高估或低估,通過發送不確認握手信號從而阻塞了數據的傳輸速度。當不確認信號發過后,若總線有空閑,數據傳輸將再做一次。這種流控制機制允許靈活的任務安排,可使不同性質的流通道同時正常工作,這樣多種流通常可在不同間隔進行工作,傳送不同大小的數據包。
健壯性
??? USB健壯性的特征在于:
??? ?使用差分的驅動接收和防護,以保證信號完整性;
??? ?在數據和控制信息上加了循環冗余碼(CRC);
??? ?對裝卸的檢測和系統級資源的設置;
??? ?對丟失或損壞的數據包暫停傳輸、利用協議自我恢復;
??? ?對流數據進行控制,以保證同步信號和硬件緩沖管理的安全;
??? ?數據和控制通道的建立,使功能部件的相互不利的影響獨立開,消除了負作用。
3.5.1? 錯誤檢測
??? USB傳輸介質產生的錯誤率是與自然界的異常現象的概率相吻合,是瞬時一現的,因此就要在每個數據包中加入檢測位來發現這些瞬時的錯誤,并且提供了一系列硬件和軟件設施來保證數據的正確性。
??? 協議中對每個包中的控制和數據位都提供了循環冗余碼校驗,若出現了循環冗余碼的錯誤則被認為是該數據包已被損壞,循環冗余碼可對一位或兩位的錯誤進行100%的修復。
3.5.2? 錯誤處理
??? 協議在硬件或軟件級上提供對錯誤的處理。硬件的錯誤處理包括匯報并重新進行上一次失敗的傳輸、傳輸中若遇到錯誤,USB主機控制器將重新進行傳輸,最多可再進行三次。若錯誤依然存在,則對客戶端軟件報告錯誤,客戶端軟件可用一種特定的方法進行處理。
系統設置
??? USB設備可以隨時的安裝和折卸,因此,系統軟件在物理的總線布局上必須支持這種動態變化。
3.6.1? USB設備的安裝
??? 所有的USB設備都是通過端口接在USB上,網絡集線器知道這些指定的USB設備,集線器有一個狀態指示器指明在其某個端口上,USB設備是否被安裝或拆除了,主機將所有的集線器排成隊列以取回其狀態指示。在USB設備安裝后,主機通過設備控制通道激活該端口并以預設的地址值給USB設備。
??? 主機對每個設備指定唯一的USB地址。并檢測這種新裝的USB設備是集線器還是功能部件。主機為USB設備建立了控制通道,使用指定的USB的地址和零號端口。
??? 如果安裝的USB設備是集線器,并且USB設備連在其端口上,那上述過程對每個USB設備的安裝都要做一遍。
??? 如果安裝的設備是功能部件,那么主機中關于該設備的軟件將因設備的連接而被引發。
3.6.2? USB設備的拆卸
??? 當USB設備從集線器的端口拆除后,集線器關閉該端口,并且向主機報告該設備已不存在。USB的系統軟件將準確進行處理,如果去除的USB設備上集線器,USB的系統軟件將對集線器反連在其上的所有設備進行處理。
3.6.3? 總線標號
??? 總線標號就是對連接在總線上的設備指定唯一的地址的一種動作,因為USB允許USB設備在任何時刻從USB上安裝或拆卸,所以總線標號是USB的系統軟件始終要作的動作,而且總線標號還包括對拆除設備的檢測和處理。
數據流種類
??? 數據和控制信號在主機和USB設備間的交換存在兩種通道:單向和雙向。USB的數據傳送是在主機軟件和一個USB設備的指定端口之間。這種主機軟件和USB設備的端口間的聯系稱作通道。總的來說,各通道之間的數據流動是相互獨立的。一個指定的USB設備可有許多通道。例如,一個USB設備存在一個端口,可建立一個向其它USB設備的端口,發送數據的通道,它可建立一個從其它USB設備的端口接收數據的通道。
USB的結構包含四種基本的數據傳輸類型:
?控制數據傳送:在設備連接時用來對設備進行設置,還可對指定設備進行控制,如通道控制;
??? ?批量數據傳送:大批量產生并使用的數據,在傳輸約束下,具有很廣的動態范圍;
??? ?中斷數據的傳送:用來描述或匹配人的感覺或對特征反應的回饋。
??? ?同步數據的傳送:由預先確定的傳送延遲來填滿預定的USB帶寬。
??? 對于任何對定的設備進行設置時一種通道只能支持上述一種方式的數據傳輸,數據流模式的更多細節在第四章中詳述。
3.7.1? 控制數據傳送
??? 當USB設備初次安裝時,USB系統軟件使用控制數據對設備進行設置,設備驅動程序通過特定的方式使用控制數據來傳送,數據傳送是無損性的。
3.7.2? 批量數據傳送
??? 批量數據是由大量的數據組成,如使用打印機和掃描儀時,批量數據是連續的。在硬件級上可使用錯誤檢測可以保證可靠的數據傳輸,并在硬件級上引入了數據的多次傳送。此外根據其它一些總線動作,被大量數據占用的帶寬可以相應的進行改變。
3.7.3? 中斷數據傳輸
??? 中斷數據是少量的,且其數據延遲時間也是有限范圍的。這種數據可由設備在任何時刻發送,并且以不慢于設備指定的速度在USB上傳送。
??? 中斷數據一般由事件通告,特征及座標號組成,只有一個或幾個字節。匹配定點設備的座標即為一例,雖然精確指定的傳輸率不必要,但USB必須對交互數據提供一個反應時間的最低界限。
3.7.4? 同步傳輸
??? 同步數據的建立、傳送和使用時是連續且實時的,同步數據是以穩定的速率發送和接收實時的信息,同步數據要使接收者與發送者保持相同的時間安排,除了傳輸速率,同步數據對傳送延遲非常敏感。所以同步通道的帶寬的確定,必須滿足對相關功能部件的取樣特性。不可避免的信號延遲與每個端口的可用緩沖區數有關。
??? 一個典型的同步數據的例子是語音,如果數據流的傳送率不能保持,數據流是否丟失將取決于緩沖區的大小和損壞的程度。即使數據在USB硬件上以合適的速率傳送,軟件造成的傳送延遲將對那些如電話會議等實時系統的應用造成損害。
??? 實時的傳送同步數據肯定會發生潛在瞬時的數據流丟失現象,換句話說,即使許多硬件機制,如重傳的引入也不能避免錯誤的產生。實際應用中,USB的數據出錯率小到幾乎可以忽略不計。從USB的帶寬中,給USB同步數據流分配了專有的一部分以滿足所想得到的傳速率,USB還為同步數據的傳送設計了最少延遲時間。
3.7.5? 指定USB帶寬
??? USB的帶寬分配給各個通道,當一個通道建立后,USB就分配給它一定的帶寬,USB設備需要提供一些數據緩沖區。若USB提供了更多帶寬,則需更多的緩沖區。USB的體系要保證緩沖引導的硬件的延遲限定在幾毫秒內。
USB的帶寬容量可以容納多種不同的數據流,因此保證USB上可以連接大量設備,如可以容納從1B+D直到T1速率范圍的電信設備。同時USB支持在同一時刻不同設備具有不同比特率,并具有一個動態變動的范圍。
??? USB規范對總線的每類轉輸規定的具體的原則。
USB設備
??? USB設備分為諸如集線器、分配器或文本設備等種類。集線器類指的是一種提供USB連接點的設備(詳見第十章),USB設備需要提供自檢和屬性設置的信息,USB設備必須在任何時刻執行與所定義的USB設備的狀態相一致的動態。
3.8.1? 設備特性
??? 當設備被連接、編號后,該設備就擁有一個唯一的USB地址。設備就是通過該USB地址被操作的,每一個USB設備通過一個或多個通道與主機通訊。所有USB設備必須在零號端口上有一指定的通道,每個USB設備的USB控制通道將與之相連。通過此控制通道,所有的USB設備都列入一個共同的準入機制,以獲得控制操作的信息。
??? 在零號端口上,控制通道中的信息應完整的描述USB設備、此類信息主要有以下幾類:
??? ?標準信息:這類信息是對所有USB設備的共同性的定義,包括一些如廠商識別、設備種類、電源管理等的項目。設備設置、接口及終端的描述在此給出。關于這些具體的描述信息在第九章給出;
??? ?類別信息:此類信息給出了不同USB的設備類的定義,主要反映其不同點。
??? ?USB廠商信息:USB設備的廠商可自由的提供各種有關信息,其格式不受該規范制約。此外,每個USB設備均提供USB的控制和狀態信息。
3.8.2? 設備描述
??? 主要分為兩種設備類:集線器和功能部件。只有集線器可以提供更多的USB的連接點,功能部件為主機提供了具體的功能。
3.8.2.1? 集線器
在即插即用的USB的結構體系中,集線器是一種重要設備。圖3-3所示是
圖3 –3? 典型集線器
一種典型的集線器。從用戶的觀點出發,集線器極大簡化了USB的互連復雜性,而且以很低的價格和高易用性提供了設備的健壯性。
?
?? 集線器串接在集中器上,可讓不同性質的設備連接在USB上,連接點稱作端口。每個集線器將一個連接點轉化成許多的連接點。并且該體系結構支持多個集線器的連接。
??? 每個集線器的上游端口向主機方向進行連接。每個集線器的下游端口允許連接另外的集線器或功能部件,集線器可檢測每個下游端口的設備的安裝或拆卸,并可對下游端口的設備分配能源,每個下游端口都具有獨立的能力,不論高速或低速設備均可連接。集線器可將低速和高速端口的信號分開。
??? 一個集線器包括兩部分:集線控制器(Controller)和集線放大器(Repeater)。集線放大器是一種在上游端口和下游端口之間的協議控制開關。而且硬件上支持復位、掛起、喚醒的信號。集線控制器提供了接口寄存器用于與主機之間的通信、集線器允許主機對其特定狀態和控制命令進行設置,并監視和控制其端口。
功能部件
??? 功能部件是一種通過總線進行發送接收數據和控制信息的USB設備,通過一根電纜連接在集線器的某個端口上,功能設備一般是一種相互無關的外設。然而一個物理單元中可以有多個功能部件和一個內置集線器,并利用一根USB電纜,這通常被稱為復合設備,即一個集線器連向主機,并有一個或多個不可拆卸的USB設備連在其上。
??? 每個功能設備都包含設置信息,來描述該設備的性能和所需資源。主機要在功能部件
圖4 –4? 臺式機環境下的 集線器
使用前對其進行設置。設置信息包括USB帶寬分配,選擇設備的設置信息等。
??? 下機列舉了一些功能部件:
??? ?定位設備:如鼠標或光筆;
??? ?輸入設備:如鍵盤;
??? ?電信適配器:如ISDN。
USB主機:硬件和軟件
??? USB的主機通過主機控制器與USB設備進行交互。主機功能如下:
??? ?檢測USB設備的安裝和拆卸
??? ?管理在主機和USB設備之間的控制流;
??? ?管理在主機和USB設備之間的數據流;
??? ?收集狀態和動作信息;
??? ?提供能量給連接的USB設備。
??? 主機上USB的系統軟件管理USB設備和主機上該設備軟件之間的相互交互,USB系統軟件與設備軟件間有三種相互作用方式:
??? ?設備編號和設置;
??? ?同步數據傳輸;
??? ?異步數據傳輸;
??? ?電源管理
??? ?設備和總線管理信息。
??? 只要可能,USB系統軟件就會使用目前的主機軟件接口來管理上述幾種方式。
體系結構的擴充
??? USB的體系結構包含主機控制驅動器和USB驅動器之間的接口的擴展,使多個主機控制器和主機控制驅動器的使用成為可能。
評論
查看更多