




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第7章 USB通用串行總線概述概述USBUSB系統結構系統結構USBUSB數據流模型數據流模型USBUSB協議層協議層 USBUSB傳輸管理傳輸管理USBUSB設備開發設備開發7.1 7.1 概述概述 問題的提出:問題的提出: 外設與外設與CUPCUP的連接存在的連接存在接口標準各自獨立接口標準各自獨立、互不兼容互不兼容、無、無法共享的連接頭問題,并且法共享的連接頭問題,并且安裝、配置麻煩安裝、配置麻煩。如鍵盤用如鍵盤用PS/2接口,連接打印機要用接口,連接打印機要用25針的并行接口,鼠標則要針的并行接口,鼠標則要用串行或用串行或PS/2接口接口. 解決基本思路解決基本思路: : 采用采用通用
2、連接器通用連接器和和自動配置自動配置及及熱插拔熱插拔技術和相應的軟件,技術和相應的軟件,實現資源共享和外設簡單快速連接,提供設備共享接口來實現資源共享和外設簡單快速連接,提供設備共享接口來解決解決PCPC機與外部設備連接的通用性。機與外部設備連接的通用性。n針對這一問題的解決,以針對這一問題的解決,以IntelIntel公司為主,并有公司為主,并有CompaqCompaq、MicrosoftMicrosoft、IBM IBM 、DECDEC、NECNEC等公司共等公司共同開發,提出了同開發,提出了USBUSB通用外設接口標準。通用外設接口標準。USBUSB(Universal Serial B
3、usUniversal Serial Bus)的中文含義是)的中文含義是“通用通用串行總線串行總線”. .n于于19941994年年1111月制定了第一個草案,月制定了第一個草案,19961996年年2 2月公月公布了布了USB1.0USB1.0版本,目前,已發展到版本,目前,已發展到2.02.0版版. .n19971997年,微軟在年,微軟在Windows97Windows97中開始外掛模塊形式中開始外掛模塊形式提供對提供對USBUSB的支持,的支持,19981998后,隨著后,隨著Windows98Windows98中中內置了對內置了對USBUSB接口的支持模塊,加上接口的支持模塊,加上U
4、SBUSB設備日益設備日益增多,增多,USB USB 逐漸流行起來。逐漸流行起來。USB的主要優點:速度快速度快 USB1.1:USB1.1: 有全速和低速兩種方式,主模式為全有全速和低速兩種方式,主模式為全速模式,速率為速模式,速率為12Mbps12Mbps,另外為了適應一些不需,另外為了適應一些不需要很大吞吐量和很高實時性的設備,如鼠標等,要很大吞吐量和很高實時性的設備,如鼠標等,USBUSB還提供低速方式,速率為還提供低速方式,速率為1.5Mbps1.5Mbps。 USB2.0:USB2.0: 2000 2000年年9 9月推出的月推出的USB2.0USB2.0協議將使其速協議將使其速率
5、達到率達到480Mbps480Mbps,它非常適用于一些視頻輸入,它非常適用于一些視頻輸入/ /輸出產品,并很有可能替代輸出產品,并很有可能替代SCSISCSI接口標準。接口標準。 設備安裝和配置容易設備安裝和配置容易 安裝安裝USBUSB設備不必再打開機箱,所有設備不必再打開機箱,所有USBUSB設備支設備支持熱拔插,系統對其進行自動配置,徹底拋棄了持熱拔插,系統對其進行自動配置,徹底拋棄了過去的跳線和撥碼開關設置。過去的跳線和撥碼開關設置。實現成本低實現成本低 USBUSB對系統與對系統與PCPC的集成進行了優化,適合于開發低的集成進行了優化,適合于開發低成本的外設。成本的外設。易于擴展易
6、于擴展 通過使用通過使用HubHub擴展可駁接多達擴展可駁接多達127127個外設。標準個外設。標準USBUSB電纜長度為電纜長度為3 3米(低速為米(低速為5 5米)。通過米)。通過HubHub或中繼器可以或中繼器可以使外設距離達到使外設距離達到3030米。米。使用靈活使用靈活 USBUSB共有共有4 4種傳輸模式:控制傳輸(種傳輸模式:控制傳輸(controlcontrol)、)、同步傳輸(同步傳輸(SynchronizationSynchronization)、中斷傳輸)、中斷傳輸(interruptinterrupt)、塊傳輸()、塊傳輸(bulkbulk),以適應不同設備的),以適應
7、不同設備的需要。需要。能夠采用總線供電能夠采用總線供電 USBUSB工作在工作在5V5V電壓下,總線提供最大達電壓下,總線提供最大達500mA500mA電流。電流。物理接口和電氣特性物理接口和電氣特性接口信號線接口信號線 USBUSB總線(電纜)包含總線(電纜)包含4 4根信號線,用以傳送信號和提根信號線,用以傳送信號和提供電源。其中,供電源。其中,D D+ +和和D-D-為信號線,傳送信號,是一對雙絞為信號線,傳送信號,是一對雙絞線;線;V Vbusbus和和GNDGND是電源線,提供電源。是電源線,提供電源。 USBUSB接口插頭(座)也比較簡單,只有接口插頭(座)也比較簡單,只有4 4芯
8、。芯。 VBusD+D-GNDVBusD+D-GND(a) 物理接口物理接口 USB USB接口有兩種形狀的插口,分別稱為接口有兩種形狀的插口,分別稱為A A口口 和和B B口。口。其中其中A A口的方向面向主機,而口的方向面向主機,而B B口的方向面向口的方向面向USBUSB外設。外設。與與A A口和口和B B口分別對應有口分別對應有A A插座和插座和B B插座插座 USBUSB輸出驅動特性輸出驅動特性USBUSB采用差分驅動輸出的方式在采用差分驅動輸出的方式在USBUSB電纜上傳輸信號。電纜上傳輸信號。信號的低電平用信號的低電平用1.5K1.5K電阻接電阻接3.6V3.6V必須低于必須低于
9、0.3V0.3V,信,信號高電平用號高電平用15 K15 K電阻接地必須高于電阻接地必須高于2.8V2.8V。輸出驅動必須支持三態工作,以支持雙向半雙工的數輸出驅動必須支持三態工作,以支持雙向半雙工的數據傳輸。據傳輸。 USB接收特性 所有所有USBUSB設備、集線器和主設備、集線器和主機都必須有一個差分數據接機都必須有一個差分數據接收器和兩個單極性接收器。收器和兩個單極性接收器。差分接收器能分辨差分接收器能分辨D+D+和和D-D-數數據線之間小達據線之間小達200mv200mv的電平的電平差。差。兩個單極性接收器分別用于兩個單極性接收器分別用于D+D+和和D-D-數據線,它們的開關數據線,它
10、們的開關閾值電壓為閾值電壓為0.8V0.8V和和2.0V2.0V。 數據編碼和解碼 USBUSB使用一種不歸零反向碼使用一種不歸零反向碼NRZI(None Return Zero Invert)編碼方案。編碼方案。在該編碼方案中,在該編碼方案中,“1”1”表示電平不變,表示電平不變,“0”0”表示電表示電平改變。在數據流的每平改變。在數據流的每6 6個連續個連續“1”1”后插入后插入1 1個個“0”0”,強迫強迫NRZI碼發生變化,接收端必須去掉這個插入的碼發生變化,接收端必須去掉這個插入的“0”。上圖列出了一個數據流的上圖列出了一個數據流的NRZINRZI編碼,在圖的第二個波形圖編碼,在圖的
11、第二個波形圖中,一開始的高電平表示數據線上的中,一開始的高電平表示數據線上的J J(差分(差分“1”1”)態,后)態,后面就是面就是NRZINRZI編碼。編碼。“1”不變不變“0”改變變nUSBUSB主機或根主機或根HUBHUB對設備提供的對地電源電壓為對設備提供的對地電源電壓為4.755.25V4.755.25V。設備能吸入的最大電流值為。設備能吸入的最大電流值為500mA500mA。nUSBUSB設備的電源供給有兩種方式:自給方式(設設備的電源供給有兩種方式:自給方式(設備自帶電源)和總線供給方式。備自帶電源)和總線供給方式。USB HubUSB Hub是前一是前一種方式。種方式。nUSB
12、USB主機有一個獨立于主機有一個獨立于USBUSB的電源管理系統的電源管理系統(APMAPM)。)。USBUSB系統軟件通過與主機電源管理系統系統軟件通過與主機電源管理系統交互來處理諸如掛起、喚醒等電源事件。交互來處理諸如掛起、喚醒等電源事件。USB的電源OUTADDRENDPCRC5Token PacketDATA1PayloadDataCRC16Data PacketACKOUTADDRENDPCRC5Token PacketDATA0PayloadDataCRC16Data PacketACKH/S PktH/S PktUSB Packets7.2 USB系統結構USB系統定義: 一個U
13、SB系統為USB主機(host)、USB設備(devices)和USB的互連(Interconnect)三個部分組成。什么叫USB的互連? 是指是指USBUSB設備與主機之間進行連接和通信的操作設備與主機之間進行連接和通信的操作。它。它包括總線拓撲結構、通信各層的任務和相互關系、數據流包括總線拓撲結構、通信各層的任務和相互關系、數據流模型以及主機與多路模型以及主機與多路USBUSB設備通信時的帶寬分配等內容。設備通信時的帶寬分配等內容。 7.2.1 總線拓撲結構 USBUSB總線連接了總線連接了USBUSB設備和設備和USBUSB主機,主機,USBUSB的物理連接采用的物理連接采用階梯式星型拓
14、撲階梯式星型拓撲結構結構。每個集線器是在星型的中心每個集線器是在星型的中心,節點代表功能部件和設備節點代表功能部件和設備, ,從主機到集線從主機到集線器,或是從集線器到集線器器,或是從集線器到集線器( (或設備或設備) ),每條線段是點對點連接每條線段是點對點連接。 邏 輯 設 備主 機邏 輯 設 備邏 輯 設 備邏 輯 設 備邏 輯 設 備邏 輯 設 備邏 輯 設 備主 機邏 輯 設 備邏 輯 設 備邏 輯 設 備邏 輯 設 備邏 輯 設 備邏 輯 設 備邏 輯 設 備邏 輯 設 備在邏輯上,各個設備好象是與主機直接相連 總線的拓撲結構 有的有的USB設備功能單一,直接掛載在設備功能單一,直
15、接掛載在USB Hub上。而有上。而有的的USB設備功能復雜,會將多個設備功能復雜,會將多個USB功能連在一起,成為一功能連在一起,成為一個復合設備,它甚至可以自己內部帶一個個復合設備,它甚至可以自己內部帶一個Hub,這個,這個Hub下下接多個接多個USB子設備,其和多個子設備作為一個整體當做一個子設備,其和多個子設備作為一個整體當做一個USB設備設備 , 對于對于USB設備來說,每個設備來說,每個USB設備是直接連接到設備是直接連接到USB Host控制器上的控制器上的。復合設備USB邏輯拓撲結構 7.2.2 USB主機在一個在一個USBUSB系統中只有一臺主機。主機的系統中只有一臺主機。主
16、機的USBUSB接口稱為接口稱為USBUSB主機控制器,主機控制器,通過它主機和外圍通過它主機和外圍USBUSB設備進行通信。設備進行通信。USBUSB主機控制器主機控制器/ /根根Hub(USB Host Controller/Root Hub)Hub(USB Host Controller/Root Hub)分別完成對傳分別完成對傳輸的初始化和設備的接入。輸的初始化和設備的接入。每個每個PC的主板上都會有多個的主板上都會有多個Host控制器,控制器,這個這個Host控制器其實就是一個控制器其實就是一個PCI設備,掛載在設備,掛載在PCI總線上總線上 .USBUSB主機的功能:主機的功能:l
17、檢測檢測USBUSB設備的安裝和卸載設備的安裝和卸載l管理管理USBUSB主機和設備的間的主機和設備的間的控制流、數據流控制流、數據流l收集狀態和動作信息收集狀態和動作信息l給給USBUSB設備供電設備供電HostRoot HUB1. 幀產生USBUSB系統采用幀同步方式傳輸數據。系統采用幀同步方式傳輸數據。主機控制器將時間劃分為以主機控制器將時間劃分為以1ms1ms為單位的幀,并以每間隔為單位的幀,并以每間隔1ms1ms時間產生幀開始時間產生幀開始SOF(Start-of-Frame) SOF(Start-of-Frame) 令牌標識新的令牌標識新的一幀開始。一幀開始。在在SOFSOF令牌之
18、后,主機控制器傳輸其它的數據。令牌之后,主機控制器傳輸其它的數據。 S O FS O FS O FS O FF r a m e N - 1E O F 間 隙F r a m e N ( 1 m s )F r a m e N + 1M ic r o - F r a m e1 2 5 u sS O FS O FS O FS O FF r a m e N - 1E O F 間 隙F r a m e N ( 1 m s )F r a m e N + 1M ic r o - F r a m e1 2 5 u s7.6(c) 幀/微幀的關系 高速連接時,每高速連接時,每隔隔1ms1ms產生產生8 8個微個微
19、幀幀SOFSOF令牌。令牌。7.2.3 USB設備USB設備分成HUB、功能設備兩種。1.USB集線器集線器 n每個每個USB Host控制器都會自帶一個控制器都會自帶一個USB Hub,被稱,被稱為根為根(Root)Hub n是USB實現即插即用的一個關鍵部分。每個USB hub有一個面向主機的端口,稱為上游端口(Upstream Port);同時還有幾個用于和下端USB設備連接的端口,稱為下游端口(Downstream Port)。nHUB可以檢測到下游端口是否有設備插入,同時也可以禁用某一個或某幾個下游端口。每個下游端口可自由連接全速或低速設備。 USB 集線器結構圖 HUB功能功能一個
20、一個USBUSB集線器由控制器(集線器由控制器(ControllerController)和中繼器)和中繼器(Repeater) (Repeater) 兩部分組成。兩部分組成。中繼器是一個上游端口和下游端口之間的開關中繼器是一個上游端口和下游端口之間的開關 (Switch)(Switch),由協議控制,由協議控制它能由硬件產生復位(它能由硬件產生復位(ResetReset),休眠(),休眠(SuspendSuspend)和恢)和恢復(復(ResumeResume)信號。控制器提供接口寄存器,用于和主)信號。控制器提供接口寄存器,用于和主機通信。機通信。根據集線器特定的狀態,主機使用一定的控制命
21、令可對根據集線器特定的狀態,主機使用一定的控制命令可對集線器進行配置,檢查各端口并對它們進行控制。集線器進行配置,檢查各端口并對它們進行控制。功能設備能在總線上發送和接收數據或控制信息,它是功能設備能在總線上發送和接收數據或控制信息,它是完成完成某項具體功能的硬件設備某項具體功能的硬件設備,如鼠標、鍵盤等。,如鼠標、鍵盤等。每個功能設備必須有自己的配置信息,描述自身的功能和資每個功能設備必須有自己的配置信息,描述自身的功能和資源要求。在一個功能設備被起用前,主機必須先對它進行配源要求。在一個功能設備被起用前,主機必須先對它進行配置。置。 每個設備中每個設備中有一個或多個邏輯連接點有一個或多個邏
22、輯連接點,稱為端點,稱為端點(Endpoint)。端點在硬件上其實是一個有一定深度的)。端點在硬件上其實是一個有一定深度的FIFO。端點和主機共有四種形式的數據傳輸類型端點和主機共有四種形式的數據傳輸類型,在設備配置時每,在設備配置時每個端點指明它與主機進行何種類型的傳輸。個端點指明它與主機進行何種類型的傳輸。所有設備都有所有設備都有一個端點一個端點0,主機與它通信,對設備進行,主機與它通信,對設備進行配置配置和基本的控制和基本的控制。2. 2. 功能設備功能設備設備設備配置配置1接口接口0端點端點0(管道管道0)端點端點1(管道管道1)其他端點其他端點接口接口1 端點端點其他接口其他接口配置
23、配置2 接口接口其他配置其他配置USB功能設備邏輯結構功能設備邏輯結構 客戶軟件客戶軟件(client software)(client software):為一個特定的:為一個特定的USBUSB設備而在主機上運設備而在主機上運行的軟件。這種軟件由行的軟件。這種軟件由USBUSB設備的提供者提供,或由操作系統提供。設備的提供者提供,或由操作系統提供。USBUSB系統軟件系統軟件(USB system software)(USB system software):此軟件用于在特定的操作系:此軟件用于在特定的操作系統中支持統中支持USBUSB,它由操作系統提供。與具體的,它由操作系統提供。與具體的
24、USBUSB設備無關,也獨立于設備無關,也獨立于客戶軟件。客戶軟件。USBUSB主機控制器主機控制器(USB Host Controller):(USB Host Controller):總線在主機方面的接口,是總線在主機方面的接口,是軟件和硬件的總和。用于支持軟件和硬件的總和。用于支持USBUSB設備通過設備通過USBUSB連到主機上。連到主機上。USB主機控制器USB系統軟件層客戶軟件層總線接口層USB設備層功能層主機設備邏輯連接邏輯連接物理連接7.2.4 USB7.2.4 USB的通信模型的通信模型 7.3 USB數據流模型1.1.端點端點(Endpoint)(Endpoint)在在US
25、BUSB接口中再也不用考慮接口中再也不用考慮I/OI/O地址空間、地址空間、IRQIRQ線及線及DMADMA通通道的問題。只給每個道的問題。只給每個USBUSB外設分配一個邏輯地址,但并外設分配一個邏輯地址,但并不指定分配任何系統資源。不指定分配任何系統資源。而而USBUSB外設本身應包含一定數量的獨立寄存器端口,并外設本身應包含一定數量的獨立寄存器端口,并能由能由USBUSB設備驅動程序直接操作。這些寄存器也就是設備驅動程序直接操作。這些寄存器也就是USBUSB設備的端點(設備的端點(EndpointEndpoint)。)。一個設備可以有多個端點,但所有的一個設備可以有多個端點,但所有的US
26、BUSB設備都必須有設備都必須有一個零端點以用于設置,完成一個零端點以用于設置,完成ControlControl類型傳送。類型傳送。2.2.管道管道(Pipe)(Pipe)n USB USB支持功能性和控制性的數據傳送,這些傳送發生在支持功能性和控制性的數據傳送,這些傳送發生在主機軟件和主機軟件和USBUSB設備的端點之間,我們把設備的端點之間,我們把USBUSB設備的端點和設備的端點和主機軟件的聯合稱為管道主機軟件的聯合稱為管道(PipePipe)。因此,管道是從邏輯)。因此,管道是從邏輯概念上來描述信息傳輸的通道。概念上來描述信息傳輸的通道。n一個一個USBUSB設備應有設備應有一個端點來
27、支持接受數據一個端點來支持接受數據的管道,還的管道,還應有應有另一個端點來支持發送數據另一個端點來支持發送數據的管道。的管道。n端點端點0 0所對應的管道所對應的管道( (默認管道默認管道):):主要用于控制類型的傳主要用于控制類型的傳輸輸. .主機對外設的控制就是通過默認管道發主機對外設的控制就是通過默認管道發“外設請求外設請求”來實現的。來實現的。3. USB. USB端點端點, ,管道管道, ,通信流通信流USBUSB邏輯設備邏輯設備管道管道端點端點通信流通信流緩沖區緩沖區主機主機客戶軟件客戶軟件4. USB數據傳輸因為因為 USB 系統不是端到端的拓撲結構,所以決定了系統不是端到端的拓
28、撲結構,所以決定了 USB 設備之間不能發送信息,設備只能響應主機的請求設備之間不能發送信息,設備只能響應主機的請求(遠程喚(遠程喚醒除外)。醒除外)。USB 傳輸的方向有兩種,從設備到主機(傳輸的方向有兩種,從設備到主機(IN) 和從主機到和從主機到設備(設備(OUT)。)。設備要想向主機發送數據,則需將數據填充到設備要想向主機發送數據,則需將數據填充到 IN端點,然后端點,然后等待主機發送等待主機發送IN請求包,如果主機永不發送請求包,如果主機永不發送 IN 包,數據將包,數據將無限期滯留在端點緩沖器中;無限期滯留在端點緩沖器中;如果主機想發送命令或數據到如果主機想發送命令或數據到 USB
29、 設備,則需先發出設備,則需先發出 OUT 令牌,后跟要傳輸的數據。令牌,后跟要傳輸的數據。1. 如果設備有空間存放數據且無誤接受則發一個如果設備有空間存放數據且無誤接受則發一個 ACK 給主機給主機;如果設備忙,則發送;如果設備忙,則發送 NAK ;如果發生錯誤就什么都不發;如果發生錯誤就什么都不發回。對于后兩種情況,主機在隨后重發數據。回。對于后兩種情況,主機在隨后重發數據。 在在USBUSB線路上傳輸的最小數據塊是包。一個包由同步信線路上傳輸的最小數據塊是包。一個包由同步信號(號(SYNCSYNC),包),包IDID(PIDPID),有時還有一些數據和一些),有時還有一些數據和一些CRC
30、CRC校驗字節組成。校驗字節組成。傳輸過程傳輸過程OUTADDRENDPCRC5Token PacketDATA1PayloadDataCRC16Data PacketACKOUTADDRENDPCRC5Token PacketDATA0PayloadDataCRC16Data PacketACKH/S PktH/S PktPIDSYNCADDRENDPCRC8位位8位位7位位4位位5位位標志(令牌)包格式標志(令牌)包格式 USBUSB是一種查詢(是一種查詢(PolledPolled)式的總線,)式的總線,每一次每一次USBUSB數據傳輸數據傳輸都都是是由由USBUSB主機控制器發起主機控制
31、器發起。主機總是主機總是用一個令牌(用一個令牌(TOKENTOKEN)包開始一個事務)包開始一個事務。令牌包指定。令牌包指定一個設備地址和端點地址。一個設備地址和端點地址。 所有設備對地址進行解碼,與此地址匹配的設備的端點將與所有設備對地址進行解碼,與此地址匹配的設備的端點將與主機進行通信。主機進行通信。 最后是沿數據傳輸的反方向發送一個握手(最后是沿數據傳輸的反方向發送一個握手(HandshakeHandshake)包。)包。注意:7.4 USB協議層 7.4.1 7.4.1 包字段格式包字段格式0 1 0 1 0 1 0 0PID0IdleSYNC: 所有包的開始都是同步域,所有包的開始都
32、是同步域,輸入電路利用它來同步,以便有輸入電路利用它來同步,以便有效數據到來時識別,長度為效數據到來時識別,長度為8位。位。同步同步包類型包類型端點端點設備地設備地址址校驗校驗PIDSYNCADDRENDPCRC8位位8位位7位位4位位5位位同步同步包類型包類型端點端點設備地設備地址址校驗校驗PIDSYNCADDRENDPCRC8位位8位位7位位4位位5位位表表7.1 PID 7.1 PID 類型類型PID 類型類型PID 名名PID3:0描述描述令牌令牌(Token)OUT (輸出輸出)IN (輸入輸入)SOF (幀開始幀開始)SETUP (建立建立)0001B1001B0101B1101B
33、表示數據方向從主機到設備表示數據方向從主機到設備表示數據方向從設備到主機表示數據方向從設備到主機幀開始標記和幀號幀開始標記和幀號表示這是一個表示這是一個USB標準控制事務包標準控制事務包數據數據(DATA)DATA0 (數據數據0)DATA1 *DATA2MDATA0011B1011B0111B1111B偶數據包偶數據包PID奇數據包奇數據包PID高速傳輸時數據高速傳輸時數據高速傳輸微幀數據高速傳輸微幀數據握手握手(Handshake)ACK (確認確認)NAK (不確認不確認)STALL (停止停止)NYET0010B1010B1110B0110B表示傳輸成功完成表示傳輸成功完成;表示設備表
34、示設備/接收方正忙或暫時沒有數據接收方正忙或暫時沒有數據端口掛起,或一個控制管道請求不被支持。端口掛起,或一個控制管道請求不被支持。接收方無響應。接收方無響應。專用專用(Special)PRE (前同步前同步)ERR (錯誤錯誤)SPLIT(分割事務分割事務)PING1100B1100B1000B0100B主機發送的前同步。打開到低速設備的通信。主機發送的前同步。打開到低速設備的通信。分割事務錯誤分割事務錯誤,握手包。握手包。高速分割事務令牌包。高速分割事務令牌包。高速流控制探測令牌包。高速流控制探測令牌包。* *為為USB2.0USB2.0協議協議PIDPID。USB2.0 PIDADDR:
35、設備地址域,確設備地址域,確定包的傳輸目的地。定包的傳輸目的地。7個個長度,可有長度,可有128個地址。個地址。同步同步包類型包類型端點端點設備地設備地址址校驗校驗PIDSYNCADDRENDPCRC8位位8位位7位位4位位5位位CRC:檢查域,檢查域,5位長度,位長度,用于用于ADDR域和域和ENDP域的域的校驗。校驗。 同步包類型端點設備地址校驗PIDSYNCADDRENDPCRC58位8位7位4位5位ENDP:端點域,確定包要傳輸到設備端點域,確定包要傳輸到設備的哪個端點。的哪個端點。4位長度,一個設備可有位長度,一個設備可有16個端點號。個端點號。所有的功能部件都必須在端口所有的功能部
36、件都必須在端口0 0提供一個控制管道(缺省控制管提供一個控制管道(缺省控制管道)。道)。對于低速設備,每個功能部件對于低速設備,每個功能部件最多提供最多提供3 3個管道個管道:在端口:在端口0 0的控制管的控制管道加上道加上2 2個附加管道。個附加管道。1.1.全速功能部件全速功能部件可以支持最多可達可以支持最多可達1616個個的任何類型的端口。的任何類型的端口。 7.4.2 包格式令牌包由令牌包由PIDPID、地址、端點和、地址、端點和CRCCRC校驗字段組成。校驗字段組成。其中地址字段和端點字段唯一確定了某個設備上的某其中地址字段和端點字段唯一確定了某個設備上的某一個端點。一個端點。只有主
37、機才可以發出令牌包。只有主機才可以發出令牌包。OUTADDRENDPCRC5Token PacketDATA1PayloadDataCRC16Data PacketACKOUTADDRENDPCRC5Token PacketDATA0PayloadDataCRC16Data PacketACKH/S PktH/S Pkt令牌包令牌包數據包數據包(Data Packet)(Data Packet) PIDDATACRC168位01023/8192位16位 數據包格式0011 DATA01011 DATA1OUTADDRENDPCRC5Token PacketDATA1PayloadDataCRC
38、16Data PacketACKOUTADDRENDPCRC5Token PacketDATA0PayloadDataCRC16Data PacketACKH/S PktH/S Pkt握手包(Handshake Packet) 握手包(握手包(HandshakeHandshake)由設備用來報告交換的狀態。握)由設備用來報告交換的狀態。握手包是由數據的接受方發向數據的發送方的。手包是由數據的接受方發向數據的發送方的。 PID8位握手包握手包格式格式握手包有三種類型:握手包有三種類型:確認確認 (ACK)表示表示接受數據正確接受數據正確。發送設備會收到一個。發送設備會收到一個ACK。不確認不確認
39、(NAK)表示表示功能設備不能接受來自功能設備不能接受來自Host的數據的數據,或者沒有,或者沒有任何數據返回給任何數據返回給Host。1.1.停止(停止(掛起掛起)(STALL)表示表示功能設備無法完成數據傳輸功能設備無法完成數據傳輸,并且需,并且需要主機插手來解決故障,以使設備從掛起狀態中恢復正常。要主機插手來解決故障,以使設備從掛起狀態中恢復正常。 0010B ACK 1010B NAK 1110B STALLOUTADDRENDPCRC5Token PacketDATA1PayloadDataCRC16Data PacketACKOUTADDRENDPCRC5Token PacketD
40、ATA0PayloadDataCRC16Data PacketACKH/S PktH/S Pkt幀開始包SOF (Start-of-F Frame Packet) USBUSB的總線時間被劃分為幀,一個幀周期可以描述為:在主機發幀開的總線時間被劃分為幀,一個幀周期可以描述為:在主機發幀開始標志(幀啟動標志)后,總線處于工作狀態,主機將發送和接收幾個交換,始標志(幀啟動標志)后,總線處于工作狀態,主機將發送和接收幾個交換,交換完畢,然后進入幀結束間隔區,此時總線處空閑狀態,等待下一個幀啟交換完畢,然后進入幀結束間隔區,此時總線處空閑狀態,等待下一個幀啟動標志的到來,再開始下一幀。動標志的到來,再
41、開始下一幀。PIDSYNCFRAME NUMBERCRC8位8位07FFH 11位5位幀開始包格式幀開始包格式幀號字段是一個幀號字段是一個1111位的字段,主機每過一幀位的字段,主機每過一幀就將其內容加一。幀號字段達到其最大值就將其內容加一。幀號字段達到其最大值7FFH7FFH時歸零,且它僅每個幀最初時刻在時歸零,且它僅每個幀最初時刻在SOFSOF標記中被發送。標記中被發送。 0101 SOF(幀開始)SOF EOF 間隙(FRAME N-1) FRAME N FRAME N+1SOFSOFSOF主機控制器有義務將主機控制器有義務將USBUSB時間劃分為以時間劃分為以1ms1ms為單位的幀。主
42、機控制為單位的幀。主機控制器以每器以每1ms1ms間隙產生間隙產生SOF(Start-of-Frame)SOF(Start-of-Frame)標識以示新的一幀的開標識以示新的一幀的開始始( (如圖)。如圖)。SOFSOF標識是一幀的開始部份,在標識是一幀的開始部份,在SOFSOF標識之后主機控制器在該幀的標識之后主機控制器在該幀的余下時間內傳輸其它的東西。當主機控制器處于正常工作狀態時,余下時間內傳輸其它的東西。當主機控制器處于正常工作狀態時,SOFSOF標識必須以標識必須以1ms1ms為間隙連續的發送而不管其它的總線活動。為間隙連續的發送而不管其它的總線活動。當總線控制器處于不給總線提供能量
43、的狀態時,它不能產生當總線控制器處于不給總線提供能量的狀態時,它不能產生SOFSOF標識。當總線控制器不產生標識。當總線控制器不產生SOFSOF標識時,它處于一種節能方式。標識時,它處于一種節能方式。幀序號具有以下各方面的作用幀序號具有以下各方面的作用: :用于將兩幀唯一的區別開用于將兩幀唯一的區別開, ,在每幀在每幀的結尾處加的結尾處加1;1;對于它的后繼幀有效對于它的后繼幀有效 . . 傳輸傳輸傳輸傳輸傳輸傳輸事務事務事務事務事務事務令牌包令牌包數據包數據包握手包握手包PIDPID附加信息附加信息CRCCRC 當主機與設備需要通信當主機與設備需要通信時,設備驅動和應用程序便時,設備驅動和應
44、用程序便會啟動一個傳輸會啟動一個傳輸 。 一個傳輸包括一個或多一個傳輸包括一個或多個事務,每個事務又包括一個事務,每個事務又包括一個令牌包,可能還有一個數個令牌包,可能還有一個數據和據和/或握手包。或握手包。 每個每個USB事務最多由三事務最多由三個段組成:令牌、數據和握個段組成:令牌、數據和握手。每個段由一個或兩個被手。每個段由一個或兩個被傳輸的包組成。所有的包都傳輸的包組成。所有的包都是以包含了識別信息的一個是以包含了識別信息的一個包包ID(PID)開始。)開始。 7.4.3 事務與傳輸類型空閑空閑控制傳輸是雙向傳輸,數據量通常較控制傳輸是雙向傳輸,數據量通常較小。主要用來進行查詢、配置和
45、給小。主要用來進行查詢、配置和給USBUSB設備發送通用的命令。設備發送通用的命令。控 制 傳 輸 有 兩 個 或 三 個 階 段 :控 制 傳 輸 有 兩 個 或 三 個 階 段 : 設置(設置(SETUPSETUP)、數據()、數據(DATADATA,可選,可選擇)、和狀態(擇)、和狀態(STATUSSTATUS)。)。每個控制傳輸必須有設置和狀態階段每個控制傳輸必須有設置和狀態階段,可以沒有數據階段,因為需要雙向,可以沒有數據階段,因為需要雙向傳輸某些信息,所有消息流程使用了傳輸某些信息,所有消息流程使用了終端的終端的ININ和和OUTOUT地址。地址。在一個控制寫傳輸中。數據由主機流在
46、一個控制寫傳輸中。數據由主機流向設備。讀傳輸中,數據由設備流向向設備。讀傳輸中,數據由設備流向主機。主機。1、控制傳輸(Control Transfers) 控制傳輸發送設備請求信息,主要用于讀取設備配置信息及設備狀態、設置設備地址,設置設備屬性、發送控制命令等功能。控制傳輸流程控制傳輸流程: DATA08 bytesSetupDataCRC16Data PacketACKH/S PktSETUPADDRENDPCRC5Token Packetn在在SetupSetup階段,主機送命令給設備;階段,主機送命令給設備; SETUPINADDRENDPCRC5Token PacketDATA1Pa
47、yloadDataCRC16Data PacketACKH/S PktDATAStage(optional)2.2.傳輸的是傳輸的是SetupSetup階段所設定的數據階段所設定的數據控制傳輸控制傳輸DATA1OUTADDRENDPCRC5Token PacketCRC16Data PktACKH/S PktSTATUSStage3.Status階段,設備返回握手信號給主機。2、批傳輸 是非周期性的數據傳輸,僅全速/高速設備支持,同時,當且僅當總線帶寬有效時才進行。 批(批(BulkBulk)傳輸是單向,也可以是雙向。它用于傳送大批數)傳輸是單向,也可以是雙向。它用于傳送大批數據,這種數據的時
48、間性不強,但要確保數據的正確性。據,這種數據的時間性不強,但要確保數據的正確性。批處理事務是由批處理事務是由標記,數據和握手包標記,數據和握手包構成的三時相的事務。構成的三時相的事務。在某些流控制和掛起條件下,數據被握手信號替換,從而產在某些流控制和掛起條件下,數據被握手信號替換,從而產生了沒有數據傳輸的兩時相的事務生了沒有數據傳輸的兩時相的事務INADDRENDPCRC5Token PacketPayloadDataCRC16Data PacketACKADDRENDPCRC5Token PacketDATA0PayloadDataCRC16Data PacketACKH/S PktH/S
49、PktDATA1IN批量傳輸流程:主機功能部件空閑注意:在一個空閑的總線上,批量傳輸是很快的。在全速下以在一個空閑的總線上,批量傳輸是很快的。在全速下以8 8、1616、3232或或6464字節傳輸,高速下以字節傳輸,高速下以512512字節傳輸。主機在有可用的總線時間字節傳輸。主機在有可用的總線時間時才安排批量傳輸。時才安排批量傳輸。 當主機準備好了接收批處理數據的時候,它發出輸入標記。功能當主機準備好了接收批處理數據的時候,它發出輸入標記。功能部件端口通過返回數據包,或者如果不能返回數據,則返回部件端口通過返回數據包,或者如果不能返回數據,則返回NAKNAK或或STALLSTALL握手作為
50、應答。握手作為應答。NAKNAK表示功能部件暫時不能返回數據,而表示功能部件暫時不能返回數據,而STALLSTALL表示端口永久地被停止。如果主機收到合法的的數據包,則表示端口永久地被停止。如果主機收到合法的的數據包,則它用它用ACKACK握手來應答。握手來應答。當主機準備好了傳送成批數據的時候,它首先發出一個后跟數據當主機準備好了傳送成批數據的時候,它首先發出一個后跟數據包的輸出標記包。如果數據由功能部件無錯地接收到,那么它將包的輸出標記包。如果數據由功能部件無錯地接收到,那么它將返回三個握手中的一個。返回三個握手中的一個。3、中斷傳輸中斷傳輸用于支持數據量少的周期性傳輸需求。中斷(Inte
51、rrupt)傳輸是單向的,且僅輸入到主機,它用于不固定的、少量的數據傳送。INADDRENDPCRC5Token PacketDATA1PayloadDataCRC16Data PacketACKH/S Pkt當設備需要主機為其服務時,向主機發送此類信息以通知主機,像鍵盤、鼠標之類的輸入設備采用這種方式。USB的中斷是Polling(查詢)類型。中斷傳輸流程:中斷方式傳輸主要用中斷方式傳輸主要用于定時查詢設備是否于定時查詢設備是否有中斷數據要傳送。有中斷數據要傳送。 鍵盤、操縱桿和鼠標鍵盤、操縱桿和鼠標就屬于這一類型。中就屬于這一類型。中斷方式傳送是單向的斷方式傳送是單向的并且對于主機來說只并
52、且對于主機來說只有輸入的方式。有輸入的方式。主機功能部件4 4、同步、同步( (等時等時) )傳輸(傳輸(IsochronousIsochronous) 常用于語音設備常用于語音設備 同步傳輸可以單向也可以雙向,用于傳送連續性、實時的數據。同步傳輸可以單向也可以雙向,用于傳送連續性、實時的數據。同步傳輸要求恒定速率傳輸的數據,如聲音、音樂等。按時到達對同步傳輸要求恒定速率傳輸的數據,如聲音、音樂等。按時到達對于同步傳輸來說最為重要。于同步傳輸來說最為重要。在每一在每一USBUSB幀中,固定的幀中,固定的USBUSB帶寬被留給同步傳輸。帶寬被留給同步傳輸。 INADDRENDPCRC5Token
53、 PacketDATA0PayloadDataCRC16Data Packet同步傳輸流程: 注意注意: : 為了減輕開銷,同步傳輸沒為了減輕開銷,同步傳輸沒有握手有握手(ACK/NAK/STALL)(ACK/NAK/STALL)和重和重試。錯誤檢測僅限于試。錯誤檢測僅限于1616位的位的CRCCRC。同步傳輸不使用數據翻轉機同步傳輸不使用數據翻轉機制。全速同步傳輸只使用制。全速同步傳輸只使用DATA0 PIDDATA0 PID。1.1. 在高速模式下,每一個微幀在高速模式下,每一個微幀中最多可以傳送三個同步包中最多可以傳送三個同步包。主機主機功能部件功能部件7.5 USB設備架構設備架構一個
54、一個USB設備可以在邏輯上分為三層:總線接口層設備可以在邏輯上分為三層:總線接口層(Bus Interface Layer)、設備層()、設備層(Device Layer)和功能層()和功能層(Function Layer)。總線接)。總線接口層處于最底層,它的工作是發送和接收數據包。設口層處于最底層,它的工作是發送和接收數據包。設備層是中間層,它的功能有點象一個路由器,把總線備層是中間層,它的功能有點象一個路由器,把總線接口層的數據派發到各個端點。最上層是功能層,實接口層的數據派發到各個端點。最上層是功能層,實現設備特定的功能。現設備特定的功能。本節主要介紹所有本節主要介紹所有USB設備的中
55、間層的一些共同特設備的中間層的一些共同特征和操作。實際上,設備的功能層正是通過調用這些征和操作。實際上,設備的功能層正是通過調用這些特征和操作來實現和主機的通信的。特征和操作來實現和主機的通信的。 7.5.1 設備的狀態圖和總線枚舉設備的狀態圖和總線枚舉 USB設備有幾個可能的狀態值,其中某些狀態對我們是可見設備有幾個可能的狀態值,其中某些狀態對我們是可見的,而有些是不可見的。對于的,而有些是不可見的。對于USB的實現者,要關心的是那的實現者,要關心的是那些可見的狀態(些可見的狀態(Visible State)。)。USB設備的設備的可見狀態可見狀態有:有:插入插入(Attached)、)、上
56、電上電(Powered)、)、缺省缺省(Default)、)、地址地址(Address)、)、被配置被配置(Configured)和)和休眠休眠(Suspended)。)。枚舉就是從設備讀取一些信息,知道設備是什么樣的設備,枚舉就是從設備讀取一些信息,知道設備是什么樣的設備,如何進行通信,這樣主機就可以根據這些信息來加載合適的如何進行通信,這樣主機就可以根據這些信息來加載合適的驅動程序。調試驅動程序。調試USB設備,很重要的一點就是設備,很重要的一點就是USB的枚舉的枚舉過程,只要枚舉成功了,那么就已經成功大半了。過程,只要枚舉成功了,那么就已經成功大半了。插入(插入(Attached)設備插
57、入設備插入USB集線器或主機根集線器的下游集線器或主機根集線器的下游端口后,設備端的程序應讓端口后,設備端的程序應讓D+和和D-數據線數據線發出一個大于發出一個大于2.5s的閑置(的閑置(Idle)信號,)信號,讓主機知道有設備插入。全速設備的閑置信讓主機知道有設備插入。全速設備的閑置信號是號是D+高電平,高電平,D-低電平;低速設備與之低電平;低速設備與之相反。這樣,主機不僅能檢測到是否有設備相反。這樣,主機不僅能檢測到是否有設備插入,也能同時辨別插入的是全速設備還是插入,也能同時辨別插入的是全速設備還是低速設備。低速設備。上電(上電(Powered)USB協議允許設備有協議允許設備有總線供
58、電總線供電(Bus Powered)和)和自供電自供電(Self-powered)兩種供電方式。對于自供電的設備,它自兩種供電方式。對于自供電的設備,它自帶的電源可以在被插入之前就對設備供電。帶的電源可以在被插入之前就對設備供電。但無論哪種方式,設備的但無論哪種方式,設備的USB接口都是由接口都是由主機或集線器通過主機或集線器通過Vbus總線對其供電的。總線對其供電的。所指的上電狀態就是指所指的上電狀態就是指Vbus開始對設備開始對設備USB接口供電的狀態。接口供電的狀態。 缺省(缺省(Default)設備上電后,它等待接收來自主機的復位設備上電后,它等待接收來自主機的復位(Reset)信號。
59、復位后,設備處于缺省)信號。復位后,設備處于缺省狀態。它具有一個狀態。它具有一個缺省地址缺省地址0,等待主機等待主機給它分配一個唯一的非給它分配一個唯一的非0地址地址,并對它進,并對它進行配置。行配置。地址(地址(Address)主機分配給設備一個非主機分配給設備一個非0的唯一地址,使設備的唯一地址,使設備進入地址狀態。在分配地址的過程中,主機進入地址狀態。在分配地址的過程中,主機仍然用缺省地址仍然用缺省地址0和設備進行通信,讀取設備和設備進行通信,讀取設備的設備描述符。在設備描述符中,設備報告的設備描述符。在設備描述符中,設備報告主機它的缺省管道端點主機它的缺省管道端點0的有效數據負載。的有
60、效數據負載。 被配置(被配置(Configured)一個設備在被正式起用之前必須被主機配置。一個設備在被正式起用之前必須被主機配置。設備先報告主機它的設備先報告主機它的配置描述符配置描述符(Configuration Descriptor),里面包),里面包括接口和端點的信息。而后,主機根據配置描括接口和端點的信息。而后,主機根據配置描述符,向設備寫一個配置值。這時,設備就可述符,向設備寫一個配置值。這時,設備就可以正常工作了。當主機要對設備重新配置時,以正常工作了。當主機要對設備重新配置時,它必須對先取消原來的配置。它必須對先取消原來的配置。休眠(休眠(suspend)當設備發現當設備發現3
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 王會中買賣合同協議
- 監控采購服務合同協議
- 電梯保修協議合同協議
- 電廠收購轉讓協議書范本
- 生豬采購購銷合同協議
- 甲方解除合作合同協議
- 電器代理商銷售合同協議
- 電商公司運營合同協議
- 電池租賃安裝合同協議
- 電商供應合同協議書范本
- 分布式光伏經濟評價規范
- 軌道交通噪聲與振動控制技術研究
- 乾坤未定吾皆黑馬+高考沖刺百日誓師主題班會
- 如何通過飲食調理改善腸道功能
- 安徽省合肥市2024屆高三第一次教學質量檢查數學試卷及答案
- 2024年四川成都地鐵運營有限公司招聘筆試參考題庫含答案解析
- 廣東省地質災害危險性評估實施細則(2023年修訂版)
- 《非稅收入征收管理》課件
- 與小三分手的協議書
- 羊水過少護理查房
- 政府采購工作的不足和整改措施
評論
0/150
提交評論