微型計(jì)算機(jī)通信與接口技術(shù)_第1頁(yè)
微型計(jì)算機(jī)通信與接口技術(shù)_第2頁(yè)
微型計(jì)算機(jī)通信與接口技術(shù)_第3頁(yè)
微型計(jì)算機(jī)通信與接口技術(shù)_第4頁(yè)
微型計(jì)算機(jī)通信與接口技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩171頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第9章USB通用串行總線(xiàn)

及應(yīng)用

本章學(xué)習(xí)目標(biāo)

本章介紹了USB接口1.1規(guī)范。通過(guò)

對(duì)本章的學(xué)習(xí),讀者應(yīng)該掌握以下主要

內(nèi)容:

XUSB總線(xiàn)體系結(jié)構(gòu)

XUSB數(shù)據(jù)流模型

XUSB協(xié)議、構(gòu)架

32迨

9.1USB總線(xiàn)體系結(jié)構(gòu)

9.L1起因

Intel公司開(kāi)發(fā)的通用串行總線(xiàn)架構(gòu)(USB)的目的主

要基于以下三方面考慮:

(一)計(jì)算機(jī)與電話(huà)之間的連接

(二)易用性

(三)端口擴(kuò)充

9.1.2USB規(guī)范的目標(biāo)

本章規(guī)范了USB的工業(yè)標(biāo)準(zhǔn)。該規(guī)范介紹了

USB的總線(xiàn)特點(diǎn)、協(xié)議內(nèi)容、事務(wù)種類(lèi)、總線(xiàn)管理

接口編程的設(shè)計(jì),以及建立系統(tǒng)、制造外圍設(shè)備

所需的標(biāo)準(zhǔn)。

9.1.3USB的設(shè)計(jì)目標(biāo)

USB的工業(yè)標(biāo)準(zhǔn)是對(duì)PC機(jī)現(xiàn)有的體系結(jié)構(gòu)的擴(kuò)

充。USB的設(shè)計(jì)主要遵循以下幾個(gè)準(zhǔn)則:

?易于擴(kuò)充多個(gè)外圍設(shè)備;

?價(jià)格低廉,且支持12M比特率的數(shù)據(jù)傳輸;

?對(duì)聲音音頻和壓縮視頻等實(shí)時(shí)數(shù)據(jù)的充分支持

?協(xié)議靈活,綜合了同步和異步數(shù)據(jù)傳輸;

?兼容了不同設(shè)備的技術(shù);

?綜合了不同PC機(jī)的結(jié)構(gòu)和體系特點(diǎn);

?提供一個(gè)標(biāo)準(zhǔn)接口,廣泛接納各種設(shè)備;

?賦予PC機(jī)新的功能,使之可以接納許多新設(shè)備。

9.1.4使用的分類(lèi)

表9-1按照數(shù)據(jù)傳輸率(USB可以達(dá)到)進(jìn)行了

分類(lèi)??梢钥吹?,12M比特率可以包括中速和低速

的情況??偟膩?lái)說(shuō),中速的傳輸是同步的,低速

的數(shù)據(jù)來(lái)自交互的設(shè)備,USB設(shè)計(jì)的初衷是針對(duì)桌

面電腦而不是應(yīng)用于可移動(dòng)的環(huán)境下的。軟件體

系通過(guò)對(duì)各種主機(jī)控制器提供支持以保證將來(lái)對(duì)

USB的擴(kuò)充。

性能應(yīng)用薦性

1[底濟(jì)1底一麻■顛稼

?交互設(shè)備

■10-20kb/s

U中速

ISBN、PBX、POTS低價(jià)格、易用性、動(dòng)態(tài)插

■電話(huà)、音頻、壓縮視頻P拔、限定帶寬和延遲

1?500kb/sT0Mb/s

音頻、磁盤(pán)高帶寬限定延遲、易用性

,音頻、磁盤(pán)

?25-5OOMb/s.

9.1.5特色

USB的規(guī)范能針對(duì)不同的性能價(jià)格比要求提供

不同的選擇,以滿(mǎn)足不同的系統(tǒng)和部件及相應(yīng)不

同的功能,其主要特色可歸結(jié)為以下幾點(diǎn):

O終端用戶(hù)的易用性:

O為電纜和連接頭提供了單一模型;

O電氣特性與用戶(hù)無(wú)關(guān);

O自我檢測(cè)外設(shè),自動(dòng)地進(jìn)行設(shè)備驅(qū)動(dòng)、設(shè)置;

O動(dòng)態(tài)連接,動(dòng)態(tài)重置的外設(shè)。

?適應(yīng)不同設(shè)備,傳輸速率從幾千比特率到幾十兆

比特率;

?在同一線(xiàn)上支持同步、異步兩種傳輸模式;

?支持對(duì)多個(gè)設(shè)備的同時(shí)操作;

?可同時(shí)操作127個(gè)物理設(shè)備;

?在主機(jī)和設(shè)備之間可以傳輸多個(gè)數(shù)據(jù)和信息流;

?支持多功能的設(shè)備;

?利用低層協(xié)議,提高了總線(xiàn)利用率。

。同步傳輸帶寬:

?確定的帶寬和低延遲適合電話(huà)系統(tǒng)和音頻的應(yīng)

用;

?同步工作可以利用整個(gè)總線(xiàn)帶寬。

。靈活性:

?可以有很多不同大小的分組,允許對(duì)設(shè)備緩

沖器大小的選擇;

?通過(guò)指定數(shù)據(jù)緩沖區(qū)大小和執(zhí)行時(shí)間,支持

各種數(shù)據(jù)傳輸率;

?通過(guò)協(xié)議對(duì)數(shù)據(jù)流進(jìn)行緩沖處理。

。健壯性:

?出錯(cuò)處理/差錯(cuò)恢復(fù)機(jī)制在協(xié)議中使用;

?對(duì)用戶(hù)感覺(jué)而言,熱插拔是完全實(shí)時(shí)的;

?可以對(duì)有缺陷設(shè)備進(jìn)行認(rèn)定。

。與PC產(chǎn)業(yè)的一致性:

?協(xié)議的易實(shí)現(xiàn)性和完整性;

?與PC機(jī)的即插即用的體系結(jié)構(gòu)的一致;

?對(duì)現(xiàn)存操作系統(tǒng)接口的良好銜接。

。價(jià)廉物美:

?以低廉的價(jià)格提供L5兆比特率的子通道設(shè)施;

?將外設(shè)和主機(jī)硬件進(jìn)行了最優(yōu)化的集成;

?促進(jìn)了低價(jià)格的外設(shè)的發(fā)展;

?廉價(jià)的電纜和連接頭;

?運(yùn)用了商業(yè)技術(shù)。

。升級(jí)路徑:

?體系結(jié)構(gòu)的可升級(jí)性支持了在一個(gè)系統(tǒng)中可以

有多個(gè)USB主機(jī)控制器。

0USB的互連;

OUSB的設(shè)備;

OUSB的主機(jī)。

USB的互連是指USB設(shè)備與主機(jī)之間進(jìn)行

連接和通信的操作,主要包括以下幾方面:

?總線(xiàn)的拓?fù)浣Y(jié)構(gòu):USB設(shè)備與主機(jī)之間的各種

連接方式;

■內(nèi)部層次關(guān)系:根據(jù)性能疊置,USB的任務(wù)被

分配到系統(tǒng)的每一個(gè)層次;

?數(shù)據(jù)流模式:描述了數(shù)據(jù)在系統(tǒng)中通過(guò)USB從

產(chǎn)生方到使用方的流動(dòng)方式;

?USB的調(diào)度:USB提供了一個(gè)共享的連接。對(duì)

可以使用的連接進(jìn)行了調(diào)度以支

持同步數(shù)據(jù)傳輸,并且避免的優(yōu)

先級(jí)判別的開(kāi)銷(xiāo)。

USB的設(shè)備及主機(jī)的細(xì)節(jié)將講述于后。

L總線(xiàn)布局技術(shù)

USB連接了USB設(shè)備和USB主機(jī),USB的物理連

接是有層次性的星型結(jié)構(gòu)。每個(gè)網(wǎng)絡(luò)集線(xiàn)器是在

星型的中心,每條線(xiàn)段是點(diǎn)點(diǎn)連接。從主機(jī)到集

線(xiàn)器或其功能部件,或從集線(xiàn)器到集線(xiàn)器或其功

能部件,從圖9.1中可看出USB的拓?fù)浣Y(jié)構(gòu)。

圖9.1總線(xiàn)的撲結(jié)構(gòu)

(1)USB的主機(jī)

在任何USB系統(tǒng)中,只有一個(gè)主機(jī)。USB和

主機(jī)系統(tǒng)的接口稱(chēng)作主機(jī)控制器,主機(jī)控制器可

由硬件、固件和軟件綜合實(shí)現(xiàn)。根集線(xiàn)器是由主

機(jī)系統(tǒng)整合的,用以提供更多的連接點(diǎn)。

USB的設(shè)備

USB的設(shè)備如下所示:

?網(wǎng)絡(luò)集線(xiàn)器:向USB提供了更多的連接點(diǎn);

?功能器件:為系統(tǒng)提供具體功能,如ISDN的

連接,數(shù)字的游戲桿或揚(yáng)聲器。

USB設(shè)備提供的USB標(biāo)準(zhǔn)接口的主要依據(jù):

,對(duì)USB協(xié)議的運(yùn)用;

?對(duì)標(biāo)準(zhǔn)USB操作的反饋,如設(shè)置和復(fù)位;

?標(biāo)準(zhǔn)性能的描述性信息;

2.物理接口

⑴電氣特性

USB傳送信號(hào)和電源是通過(guò)一種四線(xiàn)的電纜,

圖9.2中的兩根線(xiàn)是用于發(fā)送信號(hào)。

LVBUS

VBUS

D+D+

D-DOOO一D-

GNDGNL)

圖9.2USB的電纜

存在兩種數(shù)據(jù)傳輸率:

?USB的高速信號(hào)的比特率定為12Mbps;

?低速信號(hào)傳送的模式定為1.5Mbps;

低速模式需要更少的EMI保護(hù)。兩種模式可在

用同一USB總線(xiàn)傳輸?shù)那闆r下自動(dòng)地動(dòng)態(tài)切換。

電纜中包括VBUS-GND二條線(xiàn),向設(shè)備提供

電源。

⑵機(jī)械特性

所有設(shè)備都有一個(gè)上行的連接。電纜中有四

根導(dǎo)線(xiàn):一對(duì)互相纏繞的標(biāo)準(zhǔn)規(guī)格線(xiàn),一對(duì)符合

標(biāo)準(zhǔn)的電源線(xiàn),連接器有四個(gè)方向,具有屏蔽層,

以避免外界干擾,并有易拆裝的特性。

3.電源

王要包括兩方面:

?電源分配:即USB的設(shè)備如何通過(guò)USB分配得到由

主計(jì)算機(jī)提供的能源;

?電源管理:即通過(guò)電源管理系統(tǒng),USB的系統(tǒng)軟

件和設(shè)備如何與主機(jī)協(xié)調(diào)工作。

4.總線(xiàn)協(xié)議

USB總線(xiàn)屬一種輪詢(xún)方式的總線(xiàn),主機(jī)控制端

口初始化所有的數(shù)據(jù)傳輸。

存在兩種類(lèi)型的通道:

???消息

5.健壯性

USB健壯性的特征在于:

?使用差分的驅(qū)動(dòng)接收和防護(hù),以保證信號(hào)完整

性;

?在數(shù)據(jù)和控制信息上加了循環(huán)冗余碼(CRC);

?對(duì)裝卸的檢測(cè)和系統(tǒng)級(jí)資源的設(shè)置;

?對(duì)丟失或損壞的數(shù)據(jù)包暫停傳輸、利用協(xié)議自

我恢復(fù);

?對(duì)流數(shù)據(jù)進(jìn)行控制,以保證同步信號(hào)和硬件

緩沖管理的安全;

?數(shù)據(jù)和控制通道的建立,使功能部件的相互

不利的影響?yīng)毩㈤_(kāi),消除了負(fù)作用。

III(1)錯(cuò)誤檢測(cè)

⑵錯(cuò)誤處理

6.系統(tǒng)設(shè)置

USB設(shè)備可以隨時(shí)的安裝和折卸,因此,

系統(tǒng)軟件在物理的總線(xiàn)布局上必須支持這種動(dòng)態(tài)

變化。

(1)USB設(shè)備的安裝

⑵USB設(shè)備的拆卸

⑶總線(xiàn)標(biāo)號(hào)

數(shù)據(jù)和控制信號(hào)在主機(jī)和USB設(shè)備間的交換存

在兩種通道:

::?jiǎn)蜗?/p>

::雙向。

USB的結(jié)構(gòu)包含四種基本的數(shù)據(jù)傳輸類(lèi)型:

?控制數(shù)據(jù)傳送

?批量數(shù)據(jù)傳送

?中斷數(shù)據(jù)的傳送

?同步數(shù)據(jù)的傳送:

對(duì)于任何給定的設(shè)備進(jìn)行設(shè)置時(shí)一種通道只能

支持上述一種方式的數(shù)據(jù)傳輸。

(1)控制數(shù)據(jù)傳送

批量數(shù)據(jù)傳送

⑶中斷數(shù)據(jù)傳輸

⑷同步傳輸

(1)設(shè)備特性

在零號(hào)端口上,控制通道中的信息應(yīng)完整地

描述USB設(shè)備、此類(lèi)信息主要有以下幾類(lèi):

?標(biāo)準(zhǔn)信息

?類(lèi)別信息

?USB廠(chǎng)商信息

⑵設(shè)備描述

集線(xiàn)器在即插即用的USB的結(jié)構(gòu)體系中,集線(xiàn)

器是一種重要設(shè)備。圖9.3所示是一種典型的集線(xiàn)

器。從用戶(hù)的觀點(diǎn)出發(fā),集線(xiàn)器極大簡(jiǎn)化了USB的

互連復(fù)雜性,而且以很低的價(jià)格和高易用性提供

了設(shè)備的健壯性。

下面列舉了一些功能部件(圖9.4):

USB的主機(jī)通過(guò)主機(jī)控制器與USB設(shè)備進(jìn)行交

o主機(jī)功能如下:

?檢測(cè)USB設(shè)備的安裝和拆卸

?管理在主機(jī)和USB設(shè)備之間的控制流;

?管理在之間的數(shù)據(jù)流主機(jī)和USB設(shè)備;

?收集狀態(tài)和動(dòng)作信息;

?提供能量給連接的USB設(shè)備。

主機(jī)上USB的系統(tǒng)軟件管理USB設(shè)備和主機(jī)上

該設(shè)備軟件之間的相互交互,USB系統(tǒng)軟件與設(shè)備

軟件間有三種相互作用方式:

?設(shè)備編號(hào)和設(shè)置;

?同步數(shù)據(jù)傳輸;

?異步數(shù)據(jù)傳輸;

?電源管理

?設(shè)備和總線(xiàn)管理信息。

9.2USB數(shù)據(jù)流模型

9.2.1實(shí)現(xiàn)者的視圖

SB提供了在一臺(tái)主機(jī)和若干臺(tái)附屬的USB設(shè)

備之間的通信功能,從終端用戶(hù)的角度看到的USB

系統(tǒng),可簡(jiǎn)單地用圖9.5表示:

USB主機(jī)USB設(shè)備

圖9.5USB主機(jī)/設(shè)備的簡(jiǎn)單模型

USB的這種層次結(jié)構(gòu)如圖所示,各層次的具體

細(xì)節(jié)將在以后逐步介紹。特別地,有四個(gè)層次的

實(shí)現(xiàn)是較為集中的

,USB物理設(shè)備(USBPhysicalDevice)

,客戶(hù)軟件件lientsoftware)

?USB系統(tǒng)軟件(USBsystemsoftware)

,USB主機(jī)控制器(USBHostController)

如圖9.6所示,一臺(tái)主機(jī)與一個(gè)USB設(shè)備間的

連接是由許多層上的連接組成。

圖9.6USB需實(shí)現(xiàn)的區(qū)域

本章描述一些核心概念,USB系統(tǒng)的實(shí)現(xiàn)者必

須先掌握它們,然后在往后幾章中閱讀更加詳細(xì)

的部分。

為了描述和管理USB通信,以下概念是很重要的:

,總線(xiàn)拓樸(BusTopology):USB的基本物理

組成、基本邏輯組成,以及各組成部分之間的相

互關(guān)系。

,通信流模型(CommunicationFlowModels):

描述主機(jī)與設(shè)備如何通過(guò)USB通信,以及通信

所用的四種通信類(lèi)型。

?總線(xiàn)訪(fǎng)問(wèn)管理(BUSAccess):主機(jī)面對(duì)大量的USB

設(shè)備的各種通信要求,如何控制、協(xié)調(diào)總線(xiàn)的訪(fǎng)

問(wèn)。

?關(guān)于同步傳送的考慮:對(duì)要求同步傳送的設(shè)備提供

一些特性。非同步傳送設(shè)備的實(shí)現(xiàn)者不必閱讀此

npo

9.2.2總線(xiàn)拓樸

總線(xiàn)拓樸結(jié)構(gòu)包括四個(gè)重要的組成部分。

?主機(jī)和設(shè)備

?物理拓樸結(jié)構(gòu)

?邏輯拓樸結(jié)構(gòu)

?客戶(hù)軟件層與應(yīng)用層的關(guān)系

1.USB主機(jī)

主機(jī)的邏輯結(jié)構(gòu)如圖9.7,包括

?USB主機(jī)控制器(USBHostController)

?USB系統(tǒng)軟件集合

?客戶(hù)軟件

2.USB設(shè)備

一個(gè)USB設(shè)備的邏輯結(jié)構(gòu)如圖9.8所示,包括

?USB總線(xiàn)接口

,USB邏輯設(shè)備

?應(yīng)用層

USB設(shè)備用于向主機(jī)提供一些額外的功能。

USB設(shè)備提供的功能是多種多樣的,但面向主機(jī)的

接口卻是一致的。所以,對(duì)于所有這些設(shè)備,主

機(jī)可以用同樣的方式來(lái)管理它們與USB有關(guān)的部分

圖9.7主機(jī)的組成

物理設(shè)備

應(yīng)用

USB

邏輯設(shè)備

USB

總線(xiàn)接口

實(shí)際通信流

邏輯通信流

圖9.8物理設(shè)備組成

9.2.3總線(xiàn)的物理拓樸結(jié)構(gòu)

USB系統(tǒng)中的設(shè)備與主機(jī)的連接方式采用的是

星形連接,如圖9.9

圖9.9USB物理總線(xiàn)的拓?fù)?/p>

9.2.4總線(xiàn)邏輯拓樸結(jié)構(gòu)

在物理結(jié)構(gòu)上,設(shè)備通過(guò)Hub連到主機(jī)上。

二二、二「1二二二二接與各個(gè)邏輯設(shè)備通信的,

就好像它們是直接被連到主機(jī)上一樣,如圖9.10

圖9.10USB邏輯總線(xiàn)的拓?fù)?/p>

9.2.5客戶(hù)軟件層與應(yīng)用層的關(guān)系

USB系統(tǒng)的物理上、邏輯上的拓樸結(jié)構(gòu)反映

了總線(xiàn)的共享性。

圖9.11客戶(hù)軟件和應(yīng)用間的關(guān)系

9.2.6USB通信流

USB是為主機(jī)軟件和它的USB應(yīng)用設(shè)備間的通

信服務(wù)的,對(duì)客戶(hù)與應(yīng)用間不同的交互,USB設(shè)備

對(duì)數(shù)據(jù)流有不同的要求。

圖9.12更詳盡地描述了USB系統(tǒng),支持了邏輯

設(shè)備層和應(yīng)用層間的通信。實(shí)際的通信流要經(jīng)過(guò)

好幾個(gè)接口邊界。

?主機(jī)控制器的驅(qū)動(dòng)程序(HCD)

?USB驅(qū)動(dòng)程序(USBD)

GhentSW摟□

管理一個(gè)接口

接口的

到一個(gè)鏤集合

口的通道

束與接口無(wú)

緩沖沒(méi)有USB有關(guān)USB格式

格式,

USBSystemSW到0號(hào),呂點(diǎn)的

管理設(shè)備

械省通3

IUSB

事務(wù)幀格式錘個(gè)選USB幀

陵富

點(diǎn)的教結(jié)構(gòu)的

幅教怩

USB

USB主機(jī)

USB幀格式接口usB^^Sn

主機(jī)按謝

的教

SIE

事務(wù)

機(jī)械的.

通道:兩個(gè)水平實(shí)體之間連樓的.

的抽象.協(xié)議

教幅傳遞機(jī)剃

班傳遞的教施的與USB相關(guān)的形忒

1.設(shè)備端點(diǎn)

一個(gè)端點(diǎn)是一個(gè)可唯一識(shí)另lj的USB設(shè)備的

Portion,它是主機(jī)與設(shè)備間通信流的一個(gè)結(jié)束點(diǎn),

一系列相互獨(dú)立的端點(diǎn)在一起構(gòu)成了USB邏輯設(shè)備,

一個(gè)端點(diǎn)的特性決定了它與客戶(hù)軟件進(jìn)行的

傳送的類(lèi)型。一個(gè)端點(diǎn)有以下特性:

?端點(diǎn)的總線(xiàn)訪(fǎng)問(wèn)頻率要求

?端點(diǎn)的總線(xiàn)延遲要求

?端點(diǎn)的帶寬要求

?端點(diǎn)的端點(diǎn)號(hào)

?對(duì)錯(cuò)誤處理的要求

?端點(diǎn)能接收或發(fā)送的包的最大長(zhǎng)度

?端點(diǎn)的傳送類(lèi)型

?端點(diǎn)與主機(jī)的數(shù)據(jù)傳送方向

①對(duì)0號(hào)端點(diǎn)的要求

②對(duì)非0號(hào)端點(diǎn)的要求

2.通道

一個(gè)USB通道是設(shè)備上的一個(gè)端點(diǎn)和主機(jī)上

軟件之間的聯(lián)系。體現(xiàn)了主機(jī)上緩存和端點(diǎn)間傳

送數(shù)據(jù)的能力。

有兩個(gè)不同的且互斥的通道通信格式。

?流(Stream)

?消息(Message)

特別地,有下列概念與通道相關(guān):

,對(duì)USB總線(xiàn)訪(fǎng)問(wèn)的申請(qǐng)(claim),帶寬的使用情

況的聲明。

?傳送類(lèi)型

?與通道相連的端點(diǎn)的特性,例如:端點(diǎn)的數(shù)據(jù)

傳送方向,最大數(shù)據(jù)凈負(fù)荷區(qū)的長(zhǎng)度。

9.2.7傳送類(lèi)型

每個(gè)傳送類(lèi)型在以下的幾個(gè)傳送特征上會(huì)有

不同:

?USB規(guī)定的數(shù)據(jù)格式

?數(shù)據(jù)凈荷區(qū)的長(zhǎng)度限制

,總線(xiàn)訪(fǎng)問(wèn)的限制

?延時(shí)的限制

?出錯(cuò)處理

USB定義了4種傳送類(lèi)型:

?控制傳送

?同步傳送

?中斷傳送

?批傳送

9.2.8控制傳送

控制傳送由以下幾個(gè)事務(wù)組成:

(1)建立聯(lián)系

(2)零個(gè)或多個(gè)數(shù)據(jù)傳送事務(wù)

(3)狀態(tài)信息回傳

9.2.9同步傳送

在非USB的環(huán)境下,同步傳送意味著恒定速

率、錯(cuò)誤容忍(error-tolerant)的傳送。在USB環(huán)

境下,要求同步傳送能提供以下幾點(diǎn):

?固定的延遲下,確保對(duì)USB帶寬的訪(fǎng)問(wèn)。

?只要數(shù)據(jù)能提供得上,就能保證通道上的恒

定數(shù)據(jù)傳送速度。

?如果由于錯(cuò)誤而造成傳送失敗,并不重傳數(shù)

據(jù)。

9.2.10中斷傳送

中斷傳送是為這樣一類(lèi)設(shè)備設(shè)計(jì)的,它們只

傳或收少量數(shù)據(jù),而且并不經(jīng)常進(jìn)行傳送,但它

們有一個(gè)確定的服務(wù)周期,對(duì)中斷傳送有以下要

求:

?通道的最大服務(wù)期得到保證。

?由于錯(cuò)誤而引起的重發(fā)在下一服務(wù)期進(jìn)行。

1,中斷傳送的數(shù)據(jù)格式

2.中斷傳送的方向

3,中斷傳送對(duì)包的長(zhǎng)度的限制

4.中斷傳送對(duì)總線(xiàn)訪(fǎng)問(wèn)的限制

5,中斷傳送的數(shù)據(jù)順序

9.2.11批傳送

為了支持在某些在不確定的時(shí)間進(jìn)行的相當(dāng)

大量的數(shù)據(jù)通信,于是設(shè)計(jì)了批傳送類(lèi)型。它可

以利用任何可獲得的帶寬。批傳送有以下幾點(diǎn)特

性:

?以可獲得帶寬訪(fǎng)問(wèn)總線(xiàn)。

?如果總線(xiàn)出現(xiàn)錯(cuò)誤,傳送失敗,可進(jìn)行重發(fā)。

?可以保證數(shù)據(jù)必被傳送,但不保證傳送的帶寬

和延遲。

1.批傳送的數(shù)據(jù)格式

2.批傳送的方向

3.批傳送對(duì)包長(zhǎng)度的限制

如果出現(xiàn)以下情況,則認(rèn)為批傳送結(jié)束:

?已傳的數(shù)據(jù)量恰好等于期望傳送的量。

,傳了一*個(gè)不到wMaxPacketSize長(zhǎng)度的包

或傳了一個(gè)長(zhǎng)度為0的包。

4.批傳送對(duì)總線(xiàn)訪(fǎng)問(wèn)的限制

5.批傳送的數(shù)據(jù)順序

9.2.12傳送的總線(xiàn)訪(fǎng)問(wèn)

要完成主機(jī)與USB設(shè)備間的任何數(shù)據(jù)傳送,

必須要使用一定的USB帶寬。主機(jī)上有幾個(gè)部分是

用于協(xié)調(diào)USB上的信息流的,它們是:

小客戶(hù)軟件

勺USB驅(qū)動(dòng)器(USBD)

小主機(jī)控制器驅(qū)動(dòng)器(HCD)

實(shí)現(xiàn)這些部件必須要了解關(guān)于總線(xiàn)訪(fǎng)問(wèn)的一些核

心概念:

1?傳送管理:用于支持USB上信息流的各實(shí)體和

I各對(duì)象。

:?事務(wù)跟蹤:一種USB機(jī)制,跟蹤在USB系統(tǒng)中

的事務(wù)。

?總線(xiàn)時(shí)間:總線(xiàn)傳一個(gè)信息包的時(shí)間。

?設(shè)備/軟件緩沖區(qū)大小:支持一個(gè)事務(wù)所需要

的空間。

?總線(xiàn)帶寬歸還:被分配給其它傳送的總線(xiàn)帶

寬未被使用時(shí),可以重新給控制傳送和批傳送使

用。

這節(jié)介紹主機(jī)上的不同部分如何相互協(xié)調(diào)工

作來(lái)支持USB上的數(shù)據(jù)傳送,他們可以由此知道當(dāng)

客戶(hù)請(qǐng)求傳送時(shí)主機(jī)該做什么,以及傳送請(qǐng)求是

如何被發(fā)給設(shè)備的。

1.傳送管理

傳送管理涉及以下幾個(gè)為不同目標(biāo)工作的部

分,它們共同工作使數(shù)據(jù)能在總線(xiàn)上傳送:

?客戶(hù)軟件

-USBD(USB驅(qū)動(dòng)器)

?主機(jī)控制器驅(qū)動(dòng)器(HCD)

?主機(jī)控制器

圖9.13從客戶(hù)軟件到總線(xiàn)的USB信息轉(zhuǎn)換

2.客戶(hù)軟件

3.USB驅(qū)動(dòng)器(USBD)

4.主機(jī)控制器驅(qū)動(dòng)器(HCD)

5.事務(wù)表

9.3USB的電氣特性

9.3.1信號(hào)的發(fā)送

1.USB驅(qū)動(dòng)器的特性及其使用

一個(gè)USB設(shè)備端的連接器是由D+、D-及Vbus,

GND和其它數(shù)據(jù)線(xiàn)構(gòu)成的簡(jiǎn)短連續(xù)電路,并要求連

接器上有電纜屏蔽,以免設(shè)備在使用過(guò)程中被損

壞。它有兩種工作狀態(tài),即低態(tài)和高態(tài)。在低態(tài)

時(shí),驅(qū)動(dòng)器的靜態(tài)輸出端的工作電壓Vol變動(dòng)范圍

為0?0.3V,且接有一個(gè)15kQ的接地負(fù)載。處于

差分的高態(tài)和低態(tài)之間的輸出電壓變動(dòng)應(yīng)盡量保

持平衡,以能很好地減小信號(hào)的扭曲變形。

所有集線(xiàn)器和高速的功能設(shè)備上形端口(朝

主機(jī)方向的)必須使用高速的驅(qū)動(dòng)器,上形集線(xiàn)器

端口既可以高速又可以低速來(lái)傳送數(shù)據(jù),但是在

信號(hào)發(fā)送時(shí)總是使用高速和邊緣速率。低速數(shù)據(jù)

的傳輸不改變驅(qū)動(dòng)器的特性,低速設(shè)備的上形端

口必須使用低速驅(qū)動(dòng)器。

所有集線(xiàn)器(包括主機(jī)的)外部下形端口必須

能適用于兩種特性的驅(qū)動(dòng)器,也就是說(shuō),任何類(lèi)

型的設(shè)備都能被插入這些端口中。當(dāng)收發(fā)器工作

在高速模式時(shí),它使用高速和邊緣速率來(lái)進(jìn)行信

號(hào)的發(fā)送;工作在低速時(shí),它使用低速和邊緣速

率來(lái)發(fā)送數(shù)據(jù)。

2.接收器特性

一個(gè)差分輸入接收器用來(lái)接收USB數(shù)據(jù)信號(hào),

當(dāng)兩個(gè)差分?jǐn)?shù)據(jù)輸入處在共同的0.8?2.5V的差分

模式范圍時(shí),如圖7.14所示,接收器必須具有至

少200mv的輸入靈敏度。

除了差分接收器外,還必須有為兩個(gè)數(shù)據(jù)線(xiàn)

中任一個(gè)所用的單終端接收器,此時(shí)該接收器的

合并磁滯現(xiàn)象可以減小它們對(duì)噪聲的靈敏度。

輸入電正第周伙瓶)

圖9.14差分輸入感抗范圍

在差分信號(hào)傳送期間,D+和D-線(xiàn)上的電壓可

以小于Vih。對(duì)于高速傳送而言,這個(gè)階段可以延

續(xù)到14ns;對(duì)于低速傳送,可延續(xù)到I/Vns之久

接收器的邏輯設(shè)備用于保證這種情況不會(huì)被當(dāng)作

SEO態(tài)來(lái)處理。

3.輸入特性

沒(méi)有終端的D+或D-的輸入阻抗必須大于

300KQ,一個(gè)端口的輸入電容量在連結(jié)器的端口處

量得。上形和下形端口可以有不同值的電容,一

個(gè)集線(xiàn)器或主機(jī)的下形端口所允許的D+或D-上的

最大電容量(差分的或單終端的)為150pF;帶有可

分電纜的高速設(shè)備的上形端口所允許的D+或D-上

的最大電容量為lOOpF。

9.3.2電壓分布

所有USB設(shè)備的缺省電壓為低電壓,當(dāng)設(shè)備

要從低電壓變化到高電壓時(shí),則是由軟件來(lái)控制

的。在允許設(shè)備達(dá)到高電壓之前,軟件必須保證

有足夠的電壓可供使用。

USB支持一定范圍的電壓來(lái)源和電壓消耗供

應(yīng)者,包括如下的部分。

?根端口集線(xiàn)器:它是直接與USB主機(jī)控制器

相連的,并與其相同的電源來(lái)源。

?從總線(xiàn)獲得電壓的集線(xiàn)器:它的所有內(nèi)部功

能設(shè)備和下形端口都從它的上形端口的Vbus上獲

得電壓。

9.4協(xié)議層

這節(jié)從字段(Field)和包(Packet)的定

義開(kāi)始,從底向上地展示USB(UniveralSerial

Bus)協(xié)議。接著是對(duì)不同事務(wù)(Transaction)

類(lèi)型的包事務(wù)格式的描述。然后是鏈路層(Link

layer)流程控制(FlowControl)和事務(wù)級(jí)別的

故障恢復(fù)(Faultrecovery)。本章的最后將討

論復(fù)執(zhí)同步化(Retrysynchronization),超時(shí)

干擾(Babble)和總線(xiàn)活動(dòng)喪失(Lossofbus

Iactivity)的恢復(fù)。

9.4.1位定序

數(shù)據(jù)位被發(fā)送到總線(xiàn)的時(shí)候,首先最低有效

位(LSb),跟著是下一個(gè)最低有效位,最后是最

高有效位(MSb)。在以后圖表中的,包以下列形

式給出,即包中單個(gè)的位和字段從左到右的順序

就是它們通過(guò)總線(xiàn)的順序。

:三5工942同步字段

所有的包都從同步(SYNC)字段開(kāi)始的,同

步字段是產(chǎn)生最大的邊緣轉(zhuǎn)換密度(Edge

TransitionDensity)的編碼序列。同步字段作為

空閑狀態(tài)出現(xiàn)在總線(xiàn)上,后面跟著以NRZI編碼的

二進(jìn)制串“KJKJKJKK,通過(guò)被定義為8位長(zhǎng)的二進(jìn)

制串,輸入電路以本地時(shí)鐘對(duì)齊輸入數(shù)據(jù)。同步

字段是用于同步的機(jī)制,在以后圖表當(dāng)中將不被

表示。同步字段里的最后的2位是同步字段結(jié)束的

記號(hào),并且標(biāo)志了包標(biāo)識(shí)符(PID,Packet

Identifer)的開(kāi)始。

943包字段格式

在后面幾節(jié)將描述標(biāo)記,數(shù)據(jù)和握手包的字

段格式。包中位的定義是以未編碼的數(shù)據(jù)格式給

出。為了清楚起見(jiàn),在此不考慮NRZI編碼和位填

充(BitStuffing)的影響。所有的包都分別有

包開(kāi)始(Start-of-Packet)和包結(jié)束(End-of-

Packet)分隔符。包開(kāi)始(SOP)分隔符是同步字

段的一部分,包結(jié)束(E0P)分隔符。

11.包標(biāo)識(shí)符字段

所有USB包的同步字段后都緊跟著包標(biāo)識(shí)符

(PID)o如圖7.15所示,包標(biāo)識(shí)符由4位的包類(lèi)

型字段和其后的4位的校驗(yàn)字段構(gòu)成。包標(biāo)識(shí)符指

出了包的類(lèi)型,并由此隱含地指出了包的格式和

包上所用錯(cuò)誤檢測(cè)的類(lèi)型。

包標(biāo)識(shí)符的4位的校驗(yàn)字段可以保證包標(biāo)識(shí)

符譯碼的可靠性,這樣包的余項(xiàng)也就能被正確地

解釋。包標(biāo)識(shí)符的校驗(yàn)字段通過(guò)對(duì)包類(lèi)型字段的

二進(jìn)制的求反碼產(chǎn)生的。如果4個(gè)PID檢驗(yàn)位不是

它們的各自的包標(biāo)識(shí)符位的補(bǔ),則說(shuō)明存在PID錯(cuò)。

主機(jī)和所有功能部件都必須對(duì)得到全部PID

字段實(shí)行完整的譯碼。任何收到包標(biāo)識(shí)符,如果

含有失敗的校驗(yàn)字段,或者經(jīng)譯碼得到未定義的

值,則該包標(biāo)識(shí)符被假定是被損壞的,而且包的

余項(xiàng)將被包接收機(jī)忽略(Ignore)o如果一個(gè)功

能部件(Function)收到了包含了它所不支持的

事務(wù)類(lèi)型或方向的合法包標(biāo)識(shí)符,則不必應(yīng)答。

例如,只能輸入的端口(IN-onlyEndpoint)必

須忽略輸出標(biāo)記(Token)。表7-2列出了包標(biāo)識(shí)

符類(lèi)型,編碼及其描述。

PID類(lèi)型PID名PID[3:0]描述

標(biāo)記輸出(OUT)0001B

(Token)輸入(IN)1001B

幀開(kāi)始(SOF)0101B

建立(SETUP)1101B

wWO(DATAO)0011B

(DATA)數(shù)據(jù)1(DATA1)1011B

握手確認(rèn)(ACK)001OB

(Hands不確認(rèn)(NAK)1010B

hake)停止(STALL1110B

專(zhuān)用前同步(PRE)1100B

(Special:

在主機(jī)到功能部件的事務(wù)中有地址+端口號(hào)

在功能部件到主機(jī)的事務(wù)中有地址+端口號(hào)

幀開(kāi)始標(biāo)記和幀號(hào)

在主機(jī)到功能部件建立一個(gè)控制管道的事務(wù)

中有地址+端口號(hào)

偶數(shù)據(jù)包PID

奇數(shù)據(jù)包PID

接收器收到無(wú)措數(shù)據(jù)包;

接收設(shè)備部不能接收數(shù)據(jù),或發(fā)送設(shè)備不能

發(fā)送數(shù)據(jù);

端口掛起,或一個(gè)控制管道請(qǐng)求不被支持。

主機(jī)發(fā)送的前同步字。打開(kāi)到低速設(shè)備的下

行總線(xiàn)通信。

2*注解:PID位以最高位在前的順序被表示。

在USB上被發(fā)送的時(shí)候,最右的位(位0)將被第

一個(gè)發(fā)出。

°包標(biāo)識(shí)符被分為4個(gè)編碼組:標(biāo)記,

蹣:篇數(shù)據(jù),握手和專(zhuān)用。包標(biāo)識(shí)符傳送的前2位

!(PID<0:1>)指出了其屬于哪個(gè)組。這說(shuō)明包

標(biāo)識(shí)符編碼的分布。

2.地址字段

功能部件端口使用2個(gè)字段:功能部件地址

字段和端口字段。功能部件對(duì)地址和端口字段都

需要進(jìn)行譯碼。不允許使用地址或端口別名

(Aliasing),并且任何一個(gè)字段不匹配,此標(biāo)

記都必須被忽略。另外,對(duì)未初始化的端口的訪(fǎng)

問(wèn)將使得標(biāo)記被忽略。

⑴地址字段

功能部件地址(ADDR)字段通過(guò)其地址指定

功能部件,至于是數(shù)據(jù)包的發(fā)出地還是目的地,

則取決于標(biāo)記PID的值。如圖9.于所示,ADDR<6:

0〉指定了總共128個(gè)地址。地址字段被用于輸入,

建立和輸出標(biāo)記。由定義可知,每個(gè)ADDR值都定

義了單一的功能部件。剛一復(fù)位(Reset)和加電

(Power-up)的時(shí)候,功能部件的地址默認(rèn)值為

零,并且必須由主機(jī)在枚舉過(guò)程(Enumeration

Process)中編程。功能部件地址零被用作為缺省

地址,不可被分配作任何別的用途。

圖9.16地址字段

⑵端口字段

如圖9.17所示,附加的4位的端口(ENDP)

字段在功能部件需要一個(gè)以上端口時(shí)候允許更靈

活的尋址。除了端口地址0之外,端口個(gè)數(shù)是由功

能部件決定的。端口字段只對(duì)輸入,建立和輸出

標(biāo)記PID有定義。所有的功能部件都必須在端口0

提供一個(gè)控制管道(缺省控制管道)。對(duì)于低速

(LowSpeed)設(shè)備,每個(gè)功能部件最多提供3個(gè)管

道:在端口0的控制管道加上2個(gè)附加管道(或是2

個(gè)控制管道,或是1個(gè)控制管道和1個(gè)中斷端口,

或是2個(gè)中斷端口)。全速(FullSpeed)功能部件

可以支持最多可達(dá)16個(gè)的任何類(lèi)型的端口。

圖9.17端口字段

3.幀號(hào)字段

幀號(hào)字段是一個(gè)n位的字段,主機(jī)每過(guò)一幀

就將其內(nèi)容加一。幀號(hào)字段達(dá)到其最大值7FFH時(shí)

歸零,且它僅每個(gè)幀最初時(shí)刻在SOF標(biāo)記中被發(fā)送。

4.數(shù)據(jù)字段

數(shù)據(jù)字段可以在0到1,023字節(jié)之間變

動(dòng),但必須是整數(shù)個(gè)字節(jié)。圖9.18為多字節(jié)顯示

格式。每個(gè)字節(jié)的范圍內(nèi)的數(shù)據(jù)位移出時(shí)都是最

低位(LSb)在前。數(shù)據(jù)包大小隨著傳送類(lèi)型而變

化。

圖9.18數(shù)據(jù)字段格式

5.循環(huán)冗余校驗(yàn)

循環(huán)冗余校驗(yàn)(CRC)被用來(lái)在標(biāo)記和數(shù)據(jù)

包中保護(hù)所有的非PID字段。在上下文中,這些字

段被認(rèn)為是保護(hù)字段。PID不在含有CRC的包的CRC

校驗(yàn)范圍內(nèi)。在位填充之前,在發(fā)送器中所有的

CRC都由它們的各自的字段產(chǎn)生。同樣地,在填充

位被去除之后,CRC在接收器中被譯碼。

⑴標(biāo)記CRC

標(biāo)記使用了5位的CRC字段,它覆蓋了輸入,建立

和輸出標(biāo)記的ADDR和ENDP字段,或SOF標(biāo)記的時(shí)間

戳字段。生成多項(xiàng)式如下:

G(X)=X5+XJ+1

這個(gè)多項(xiàng)式的二進(jìn)制位組合是00101B。如

果所有的標(biāo)記位都被準(zhǔn)確無(wú)誤地收到,接收機(jī)中

的5位剩余將是01100B。

⑵數(shù)據(jù)CRC

數(shù)據(jù)CRC是作用于數(shù)據(jù)包的數(shù)據(jù)字段上的16

位多項(xiàng)式。產(chǎn)生的多項(xiàng)式是如下

這個(gè)多項(xiàng)式的二進(jìn)制位組合是

IOOOOOOOOOOOOIOIBO如果全部的數(shù)據(jù)和CRC位被

準(zhǔn)確無(wú)誤地收到,16位剩余將是

IOOOOOOOOOOOIIOIBO

:三工

59.4.4包格式

這節(jié)展示標(biāo)記,數(shù)據(jù)和握手包的包格式。這

些圖將以位被挪動(dòng)到總線(xiàn)上的順序顯示包內(nèi)的字

段。

1.標(biāo)記包

圖9.19顯示了標(biāo)記包的字段格式。標(biāo)記由

PID,ADDR和ENDP構(gòu)成,其中PID指定了包是輸入,

輸出還是建立類(lèi)型。對(duì)于輸出和建立事務(wù),地址

和端口字段唯一地確定了接下來(lái)將收到數(shù)據(jù)包的

端口。對(duì)于輸入事務(wù)的,這些字段唯一地確定了

4*哪個(gè)端口應(yīng)該傳送數(shù)據(jù)包。只有主機(jī)能發(fā)出標(biāo)記

包。輸入PID定義了從功能部件到主機(jī)的數(shù)據(jù)事務(wù)。

輸出和建立PID定義了從主機(jī)到功能部件的數(shù)據(jù)事

務(wù)。

a8bits7bits4bits5Ms

PIDADDRENDPCRC5

圖9.19標(biāo)記包格式

12.幀開(kāi)始(SOF,Start-of-Frame)包

|主機(jī)以每LOOms+0.0005ms一次的額定

鬟速率發(fā)出幀開(kāi)始(SOF)包。如圖9.20中所示,

|SOF包是由指示包類(lèi)型的PID和其后的H位的幀號(hào)

,字段構(gòu)成。

圖9.20幀開(kāi)始包

3.數(shù)據(jù)包

如圖9.21所示,數(shù)據(jù)包由PID,包括至少0個(gè)

字節(jié)數(shù)據(jù)的數(shù)據(jù)區(qū)和CRC構(gòu)成。有2種類(lèi)型的數(shù)據(jù)

包,根據(jù)不同的PID:DATA根口D不A1來(lái)識(shí)別。2種

數(shù)據(jù)包PID是為了支持?jǐn)?shù)據(jù)切換同、步(Data

ToggleSynchronization)而定義的。

8bits0-1023bytes16bfts

PIDDATACRC16

圖9.21數(shù)據(jù)包格式

4.握手包

如圖9.22所示,握手包僅由PID構(gòu)成。握手

包用來(lái)報(bào)告數(shù)據(jù)事務(wù)的狀態(tài),表示數(shù)據(jù)成功接收,

命令的接收或拒絕,流控制(FlowControl)和

停止(Halt)條件。

圖9.22握手包

有3種類(lèi)型的握手包:

IOACK表示數(shù)據(jù)包沒(méi)有位填充或數(shù)據(jù)字段上的

icRC錯(cuò),并且數(shù)據(jù)PID被正確收到。

ONAK表示功能部件不會(huì)從主機(jī)接受數(shù)據(jù)(對(duì)

于輸出事務(wù)),或者功能部件沒(méi)有傳輸數(shù)據(jù)到主

機(jī)(對(duì)于輸入事務(wù))。

OSTALL作為輸入標(biāo)記的回應(yīng),或者在輸出事

務(wù)的數(shù)據(jù)時(shí)相之后由功能部件返回。

I

STALL握手由設(shè)備用于在兩個(gè)不同的場(chǎng)合之一。

第一種情況,是當(dāng)設(shè)置了與端口相聯(lián)系掛起特

征(Haltfeature)的時(shí)候,稱(chēng)為“功能STALL

(functionalstall)”(掛起特征在這文檔的

第9章中詳細(xì)說(shuō)明)。

第二種情況稱(chēng)為“協(xié)議STALL(protocol

stall)"o

5.握手回答(HandshakeResponse)

傳輸和接收功能部件必須根據(jù)一定的優(yōu)先順

序返回握手。

⑴功能部件對(duì)輸入事務(wù)回答

表9-3顯示了功能部件作為對(duì)輸入標(biāo)記的反應(yīng)

而可能做的回答。

表9-3功能部件對(duì)輸入事務(wù)的回應(yīng)

收到的標(biāo)功能部件的功能部采取的動(dòng)

記損壞發(fā)送端口的件能發(fā)作

掛起特征送數(shù)據(jù)

是不管不管不回應(yīng)

置了位不管

STALL握

____

否沒(méi)置位否發(fā)送NAK

握手

否沒(méi)置位△*匕發(fā)送數(shù)據(jù)

⑵主機(jī)對(duì)輸入事務(wù)回答

表9-4顯示了主機(jī)對(duì)輸入事務(wù)回答。主機(jī)只能

返回1種類(lèi)型的握手:ACKo

數(shù)據(jù)包損壞主機(jī)能接受主機(jī)返回的握手

是N/A丟棄數(shù)據(jù),不回應(yīng)

否否丟棄數(shù)據(jù),不回應(yīng)

否能接受數(shù)據(jù),發(fā)送ACK

功能部件對(duì)輸出事務(wù)回答

對(duì)輸出事務(wù)的握手回答由表9-5表示。

(4)功能部件對(duì)建立事務(wù)的回答

表9-5功能部件對(duì)輸出處理的回應(yīng)(按優(yōu)先順序)

數(shù)據(jù)包接收器時(shí)序位功能部功能部

損壞的掛起匹配件可接件返回

特征收數(shù)據(jù)的握手

是N/AN/AN/A無(wú)

否置了位N/AN/ASTALL

否沒(méi)置位否N/AACK

否沒(méi)置位是可ACK

否沒(méi)置位是否NAK

9.4.5錯(cuò)誤檢測(cè)和恢復(fù)

USB允許可靠的端到端(End-to-end)的通

信,這種通信容許產(chǎn)生物理信號(hào)層上的錯(cuò)誤。

1.包錯(cuò)誤種類(lèi)

USB使用3種錯(cuò)誤檢測(cè)機(jī)制:位填充違反,

PID檢驗(yàn)位和CRC。

表9-6包錯(cuò)誤類(lèi)型

字段錯(cuò)誤動(dòng)作

包標(biāo)識(shí)符PID校驗(yàn),位填充忽略包

地址位填充,地址CRC忽略標(biāo)記

幀號(hào)位填充,幀號(hào)CRC忽略幀號(hào)字段

數(shù)據(jù)位填充,數(shù)據(jù)CRC丟棄數(shù)據(jù)

2.總線(xiàn)周轉(zhuǎn)(Turn-around)時(shí)間

不作肯定答復(fù)則被認(rèn)為是有錯(cuò)誤的。作為這

種錯(cuò)誤匯報(bào)的方法的結(jié)果,主機(jī)和USB功能部件需

要知道從發(fā)送器發(fā)完包的時(shí)候算起直到它開(kāi)始收

到應(yīng)答為止過(guò)了多少時(shí)間。這一段時(shí)間被稱(chēng)為總

線(xiàn)周轉(zhuǎn)時(shí)間。

如圖9.23所示,設(shè)備在標(biāo)記和數(shù)據(jù)時(shí)相之間或

數(shù)據(jù)和握手時(shí)相之間使用其總線(xiàn)周轉(zhuǎn)計(jì)時(shí)器。

OUT/SETUPDataHandshake

設(shè)備等主機(jī)等

DataHandshake

主機(jī)等設(shè)備等

圖9.23總線(xiàn)周轉(zhuǎn)計(jì)時(shí)器用法

^^^3.錯(cuò)誤的E0P

錯(cuò)誤的E0P必須被處理,以確保當(dāng)前事務(wù)的包在9

■機(jī)或其它設(shè)備試圖傳輸新包之前完成。

等待16個(gè)位的時(shí)間保證了2個(gè)條件:

第一個(gè)條件是確定了設(shè)備已結(jié)束發(fā)送它的包。

第二的條件是保證發(fā)送器的總線(xiàn)周轉(zhuǎn)計(jì)時(shí)器

I終止。

I

9.5USB設(shè)備架構(gòu)

USB設(shè)備可被劃分三層:

?底層是傳送和接收數(shù)據(jù)包的總線(xiàn)接口

?中間層處理總線(xiàn)接口與不同端點(diǎn)之間的數(shù)據(jù)

路由端節(jié)點(diǎn)是數(shù)據(jù)的終結(jié)提供處或使用處,它可

被看作數(shù)據(jù)源或數(shù)據(jù)接收端(Sink)

?最上層的功能由串行總線(xiàn)設(shè)備提供,比如鼠

標(biāo),或ISDN接口。

r

19.5.1USB設(shè)備狀態(tài)

IUSB設(shè)備有若干可能的狀態(tài),其中一些對(duì)于

|USB與主機(jī)(host)來(lái)說(shuō)是外置的,而另外一些對(duì)

量USB設(shè)備來(lái)說(shuō)是內(nèi)置的

外置的設(shè)備狀態(tài)

表9-7匯集這些外置設(shè)備狀態(tài)之間的轉(zhuǎn)化關(guān)系。

(1)連接狀態(tài)

⑵加電狀態(tài)(Powered)

表9-7外置(可見(jiàn))的設(shè)備狀態(tài)

說(shuō)明

設(shè)備尚未連接至接口.其他特性無(wú)關(guān)

設(shè)備已連接至接口,但未加電.其他特性無(wú)關(guān).一

設(shè)備已連接至接口,并且已加電.但尚未被復(fù)位「

設(shè)備已連接至接口,已加電.并被復(fù)位.

但尚未分配地址.設(shè)備在缺省地址處可尋址.

設(shè)備已連接至接口,已加電.并被復(fù)位.且分配了

唯一地址.尚未被配置.

設(shè)備已連接至接口,已加電.并被復(fù)位.且分配了

唯一地址,并被配置,設(shè)備功能可被使用.

設(shè)備在至少3毫秒以?xún)?nèi)探測(cè)不到總線(xiàn)活動(dòng),自動(dòng)

進(jìn)如掛起.設(shè)備功能不可用.

HUE復(fù)

儉惑無(wú)HUE比羞

FES

電i原中M

圖9.24設(shè)備狀態(tài)轉(zhuǎn)化圖

缺省狀態(tài)

地址狀態(tài)

Configured(配置狀態(tài))

中止?fàn)顟B(tài)

:三5工2.BusEnumeratioii總線(xiàn)標(biāo)號(hào)

當(dāng)USB設(shè)備接上一個(gè)加電端口時(shí),系統(tǒng)當(dāng)采取

以下操作:

(1)USB設(shè)備所連的集線(xiàn)器通過(guò)其通向主機(jī)的狀態(tài)

改變通道向主機(jī),匯報(bào)本USB設(shè)備已連接上。

⑵主機(jī)通過(guò)尋問(wèn)集線(xiàn)器決定此次狀態(tài)改變的確切

含義。

⑶主機(jī)一旦得知新設(shè)備已連上以后,它至少等待

100ms以使得插入操作的完成以及設(shè)備電源穩(wěn)定工

作。

(4)集線(xiàn)器將發(fā)向端口的復(fù)位信號(hào)持續(xù)10ms。

⑸主機(jī)給設(shè)備分配一個(gè)唯一的地址,設(shè)備轉(zhuǎn)

向編址狀態(tài)。(Addressstate)。

⑹在USB設(shè)備接受設(shè)備地址之前,它的缺省

控制通道(DefaultControlPipe)在缺省地址處自然

是可尋址的,主機(jī)通過(guò)讀取設(shè)備描述表,判決設(shè)

備缺省通道的實(shí)際凈數(shù)據(jù)負(fù)載。

⑺主機(jī)從設(shè)備讀取配置信息要從配置0讀到

配置n-1,其中n為配置個(gè)數(shù),此操作須花費(fèi)幾個(gè)毫

秒。

(8)基于從設(shè)備取來(lái)的配置信息及設(shè)備如何被使用

的信息,主機(jī)給設(shè)備一個(gè)配置值,此刻,設(shè)備就

處于配置狀態(tài)(Configuredstate)并此配置有關(guān)的所

有端節(jié)點(diǎn),都按照配置各就各位,USB設(shè)備現(xiàn)在可

以從VBUS得到描述中所要求的電量了。

9.5.2通用USB設(shè)備操作(GenericUSB

DeviceOperations)

所有的USB設(shè)備支持通用的操作集,這一節(jié)

主要描述的這些操作。

1.動(dòng)態(tài)插接與拔開(kāi)

USB設(shè)備必須在任意時(shí)刻允許被插接與拔開(kāi)。

提供連接點(diǎn)或端口的集線(xiàn)器應(yīng)當(dāng)負(fù)責(zé)匯報(bào)端口的

狀態(tài)改變情況。

當(dāng)主機(jī)探測(cè)到連接操作后,會(huì)使得所連的集

線(xiàn)器端口生效,設(shè)備也會(huì)因此而復(fù)位,一個(gè)被復(fù)

位了的USB設(shè)備有如下特性:

?對(duì)缺省USB地址發(fā)生響應(yīng)

?沒(méi)有被配置

?初始狀態(tài)不是掛起

2.地址分配

當(dāng)USB設(shè)備連接以后,由主機(jī)負(fù)責(zé)給此設(shè)備

分配一個(gè)唯一的地址,這個(gè)操作是在設(shè)備復(fù)位及

端口使能操作以后。

3.配置

USB設(shè)備在正常被使用以前,必須被配置,

由主機(jī)負(fù)責(zé)配置設(shè)備。主機(jī)一般會(huì)從USB設(shè)備獲取

配置信息后再確定此設(shè)備有哪些功能。

p.數(shù)據(jù)傳送

i數(shù)據(jù)可能以四種方式在USB設(shè)備端結(jié)點(diǎn)與n

|機(jī)之間傳送。

5.電源管理

?-I

|USB設(shè)備的電源管理包括以下說(shuō)明部分的幾條。

⑴電源

⑵遠(yuǎn)程喚醒

6.請(qǐng)求處理

除SetAddress()請(qǐng)求以外,在安裝完成返

回ACK信號(hào)以后,設(shè)備就開(kāi)始處理請(qǐng)求。

(1)請(qǐng)求處理的定時(shí)處理

⑵復(fù)位/繼續(xù)恢復(fù)時(shí)間

⑶設(shè)置地址的處理

(4)標(biāo)準(zhǔn)設(shè)備請(qǐng)求

⑸與類(lèi)有關(guān)的請(qǐng)求

7.請(qǐng)求錯(cuò)誤

如果一設(shè)備收到一個(gè)請(qǐng)求,它或是在設(shè)備邛

無(wú)定義,或是不適用于當(dāng)前設(shè)置,或是數(shù)值不對(duì),

這時(shí)就會(huì)產(chǎn)生一個(gè)請(qǐng)求錯(cuò)誤。

9.5.3USB設(shè)備請(qǐng)求

所有的USB設(shè)備在設(shè)備的缺省控制通道

(DefaultControlPipe)處對(duì)主機(jī)的請(qǐng)求發(fā)出響

應(yīng)。

表9-8.Setup數(shù)據(jù)包的格式

偏移量域大小值

0bmR一qu一stTy1位圖

pa

1bRequest1值

2wValue2值

4wlndex2索引或偏

6wLength2索引或偏

描述

請(qǐng)求特征:

D7:傳輸方向0=主機(jī)至設(shè)備

1=設(shè)備至主機(jī)D6..5:種類(lèi)

0=標(biāo)準(zhǔn)1=類(lèi)2=廠(chǎng)商3=保留

D4..0:接受者0=設(shè)備1=接口2=端點(diǎn)3=

其他4??31=保留

具體請(qǐng)求

字長(zhǎng)域,根據(jù)不同的請(qǐng)求含義改變.

字長(zhǎng)域,根據(jù)不同的請(qǐng)求含義改變.典型用

于傳送索引或偏移.

如有數(shù)據(jù)傳送階段,此為數(shù)據(jù)字節(jié)數(shù).

1.bmRequestType域

2.bRequest域

3.wValue域

4.wlndex域

圖9.25所指為端點(diǎn)時(shí)wlndex格式

5.wLength域

:三5工9.5.4描述表

USB設(shè)備通過(guò)描述表來(lái)反映他們的屬性。描述

表是有定義好的格式的數(shù)據(jù)結(jié)構(gòu),每一個(gè)描述表

以一個(gè)字節(jié)打頭表明本描述表的長(zhǎng)度,緊跟其后

是一個(gè)字節(jié)的描述表類(lèi)信息。

1.如果這兩種描述表的格式與標(biāo)準(zhǔn)格式相同(以長(zhǎng)

度字節(jié)打頭,緊跟著類(lèi)型字節(jié))則它們可由、

GetDescriptor(Configuration)請(qǐng)求與標(biāo)準(zhǔn)

描述一同返回。

2.如果這兩種描述表使用的非標(biāo)準(zhǔn)格式。

955設(shè)備類(lèi)定義

所有的設(shè)備必須支持本章所講的請(qǐng)求與描述

表,多數(shù)設(shè)備還有設(shè)備特有的擴(kuò)展的請(qǐng)求與描述

表。另外,設(shè)備還會(huì)支持一組設(shè)備共有的服務(wù)。

1.描述表

2.接口與節(jié)點(diǎn)的使用

3.請(qǐng)求

9.6USB主機(jī):硬件與軟件

USB的互連支持?jǐn)?shù)據(jù)在USB主機(jī)與USB設(shè)備之

間的流動(dòng)。

9.6.1USB主機(jī)概況

A功能部件

>USB設(shè)備

U?SB總??線(xiàn)?.接口*.

<=>邏輯的信息流<實(shí)際的信息流

圖9.27

1.概論

圖9.27展示了USB通信模型之間基本的信息流

與互連關(guān)系:

由圖9.51可見(jiàn),主機(jī)與設(shè)備都被劃分成不同

的層次。

v>通道,代表相應(yīng)層之間連接的抽象

圖9.28主機(jī)通信圖

機(jī)在整個(gè)USB系統(tǒng)中是唯一的,它包括如下幾

個(gè)層次。

?USB總線(xiàn)接口

?USB系統(tǒng)(USBSystem)

?USB客戶(hù)(Client)

USB系統(tǒng)有三個(gè)主要組成部份:

,主機(jī)控制器驅(qū)動(dòng)(HostControllerDriver)

?USB驅(qū)動(dòng)(USBDriver)

,主機(jī)軟件(hostsoftware)

主機(jī)可提供如下的功能

?檢測(cè)USB設(shè)備的連接與斷開(kāi)。

?管理主機(jī)與設(shè)備之間的標(biāo)準(zhǔn)控制流。

?管理主機(jī)與設(shè)備之間的數(shù)據(jù)流。

?收集狀態(tài)及一些活動(dòng)的統(tǒng)計(jì)數(shù)字。

?控制主機(jī)控制器與USB設(shè)備的電氣接口,包

括提供有限的能源。

2.控制機(jī)構(gòu)

控制信號(hào)可通名帶內(nèi)信號(hào)(in-band-

singling)及帶夕卜信號(hào)(out-of-bard-signaling)

兩種方式在主機(jī)與設(shè)備之間傳輸。帶內(nèi)信號(hào)將

3.數(shù)據(jù)流

USB支持4種形式的數(shù)據(jù)傳輸

■控制傳輸。

?同步傳輸。

?中斷傳輸。

,塊傳輸。

每個(gè)通道基于數(shù)據(jù)傳輸模式和請(qǐng)求的有如下

幾個(gè)特性:

?數(shù)據(jù)傳輸?shù)念l率。

?數(shù)據(jù)是以恒定速率提供還是隨機(jī)出現(xiàn)的。

?在數(shù)據(jù)傳輸前可延遲的時(shí)間。

?在傳輸過(guò)程中數(shù)據(jù)的丟失是否是具有災(zāi)難性。

4.收集狀態(tài)及活動(dòng)統(tǒng)計(jì)數(shù)據(jù)

5.電氣接口因素

主機(jī)為連在集線(xiàn)器上的USB設(shè)備提供能量。

9.6.2王機(jī)控制器功能

在所有的實(shí)現(xiàn)中,主機(jī)控制器都必須提供基

本相同的功能。下面是主機(jī)控制器所提供的功能

的概況。

O狀態(tài)處理(StateHandling)

O串行化與反串行化

幀產(chǎn)生(FrameGeneration)

?數(shù)據(jù)處理

0協(xié)議引擎

傳輸差錯(cuò)控制

O遠(yuǎn)程喚醒

。集線(xiàn)器

。主機(jī)系統(tǒng)接

9.6.3軟件功能概論

對(duì)USB系統(tǒng)的功能主要表現(xiàn)在對(duì)USBDI所能提

供的功能上。USBD與HCD之間任務(wù)的劃分沒(méi)有具體

的定義,但是HCDI必須要具備的一項(xiàng)功能就是它

必須支持多種主機(jī)控制器的不同實(shí)現(xiàn)。

通過(guò)USBDI實(shí)現(xiàn)數(shù)據(jù)傳輸所經(jīng)歷的過(guò)程將在下

面得到簡(jiǎn)述。

l.設(shè)備配置

r

設(shè)備驅(qū)動(dòng)程序主機(jī)軟件

HCD

控制信息源可選信息流

圖9.29

在使用之前必須要完成如下三項(xiàng)配置工作:

⑴設(shè)備配置

⑵USB配置

⑶功能配置

配置軟件完成具體的配置工作。具體的配置

軟件將基于特定的操作系統(tǒng)實(shí)現(xiàn)而有所不同,但

一般它包括以下幾個(gè)部份。

?集線(xiàn)器驅(qū)動(dòng)器

?其它主機(jī)軟件

?設(shè)備驅(qū)動(dòng)程序

2.資源管理

為了決定帶寬是否能滿(mǎn)足,或者傳輸事務(wù)能

否被裝入特定的幀,必須計(jì)算事務(wù)最大執(zhí)行時(shí)間。

在計(jì)算過(guò)程中使用到下述信息

?每包的最大數(shù)據(jù)字節(jié)數(shù)

?傳輸模式

?拓?fù)浣Y(jié)構(gòu)深度

3,數(shù)據(jù)傳輸

當(dāng)USB系統(tǒng)決定進(jìn)行請(qǐng)求的分割的時(shí)候,必須

要考慮到以下兩點(diǎn):

?將數(shù)據(jù)流分割成更小的塊操作對(duì)客戶(hù)是不可見(jiàn)的。

?USB樣本(Samples)在總線(xiàn)傳輸時(shí)是不被分割的。

下面的數(shù)據(jù)成份定義了一次請(qǐng)求的相關(guān)信息。

?與該請(qǐng)求有關(guān)的通道標(biāo)識(shí)。

?特定客戶(hù)的通知標(biāo)志碼。

?數(shù)據(jù)緩沖區(qū)的位置及長(zhǎng)度

?請(qǐng)求的結(jié)束狀態(tài),包括總的狀態(tài)及每次事務(wù)

的結(jié)束狀態(tài)

?工作緩沖區(qū)的位置及長(zhǎng)度。

9.6.4主機(jī)控制器驅(qū)動(dòng)器

HCD是主機(jī)控制器硬件的抽象,同時(shí)也是對(duì)

主機(jī)控制器所見(jiàn)的數(shù)據(jù)傳輸?shù)某橄?。HCDI應(yīng)符合

下列條件:

?提供一個(gè)抽象的主機(jī)控制器硬件。

?提供主機(jī)控制器在USB上傳輸數(shù)據(jù)過(guò)程的抽象。

?提供主機(jī)控制器為給定設(shè)備分配(或不分配)

必需的資源過(guò)程的抽象。

?根據(jù)一般集線(xiàn)器的定義提供根集線(xiàn)器。

HCD是USB軟件中的最下一層。HCD只有一

個(gè)客戶(hù):USB驅(qū)動(dòng)器(USBD)。

965USBD

USBD提供了供操作系統(tǒng)組件特別是設(shè)備驅(qū)動(dòng)

程序訪(fǎng)問(wèn)設(shè)備的一組接口。這些操作系統(tǒng)組件只

能通過(guò)USBD來(lái)訪(fǎng)問(wèn)USB。

1.USB概況

USBD的客戶(hù)直接命令設(shè)備或從通道直接輸入

和輸出數(shù)據(jù)流。

USBD為客戶(hù)提供兩組工具

f命令工具

f通道工具。

(1)USBD初始化

設(shè)

線(xiàn)

設(shè)

數(shù)

據(jù)

訪(fǎng)

命令接口

通道接口

服務(wù)

7F7\

V___V

圖9.30USB驅(qū)動(dòng)結(jié)構(gòu)

⑵USBD通道使用

通道是設(shè)備與主機(jī)的邏輯連結(jié),在兩類(lèi)不同

客戶(hù)所擁有的通道之間還存在一定的差異:

,標(biāo)準(zhǔn)通道(defaultpipe)

,其他的通道(allotherpipes)

◎標(biāo)準(zhǔn)通道

USBD有義務(wù)分配及管理恰當(dāng)?shù)木彌_區(qū)以支持

對(duì)客戶(hù)不可見(jiàn)的標(biāo)準(zhǔn)通道上的數(shù)據(jù)傳輸。比如設(shè)

置設(shè)備的地址等。對(duì)于一些客戶(hù)可見(jiàn)的傳輸,比

如像傳送廠(chǎng)商定義或有關(guān)設(shè)備類(lèi)的命令,或者讀

取設(shè)備的描述符,客戶(hù)提供必須的數(shù)據(jù)緩沖區(qū)。

◎客戶(hù)通道

所有不是被USBD擁有及管理的通道都可由客

戶(hù)擁有及管理。從USBD的觀點(diǎn)看,一個(gè)單獨(dú)的客

戶(hù)擁有該通道。實(shí)際上可以是一組用戶(hù)管理通道,

只要該組用戶(hù)在使用通道時(shí)表現(xiàn)出單個(gè)客戶(hù)的行

為。

⑶USBD服務(wù)功能(ServiceCapabilities)

USBD提供如下種類(lèi)的服務(wù):

?通過(guò)命令工具配置設(shè)備

?通過(guò)命令工具及通道工具提供傳輸服務(wù)

?事件通知

?狀態(tài)報(bào)告及錯(cuò)誤恢復(fù)

I

USBD命令工具功能

SBD命令傳輸時(shí)并不需要USB設(shè)備

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論