新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 專(zhuān)題 > 通用串行總線(xiàn)-USB簡(jiǎn)介

通用串行總線(xiàn)-USB簡(jiǎn)介

作者: 時(shí)間:2008-01-30 來(lái)源: 收藏

usb簡(jiǎn)介:
 
傳輸方式

本文引用地址:http://www.butianyuan.cn/article/78392.htm

的數(shù)據(jù)傳送的方式下,有四種的傳輸方式:控制(Control)同步(isochronous)中斷 (interrupt)大量(bulk)。如果你是從硬件開(kāi)始來(lái)設(shè)計(jì)整個(gè)的系統(tǒng),你還要正確選擇傳送的方式,而作為一個(gè)驅(qū)動(dòng)程序的書(shū)寫(xiě)者,就只需要弄清楚他是采用的什么工作方式就行了。
通常所有的傳送方式下的主動(dòng)權(quán)都在PC邊,也就是host邊。

控制(Control)方式傳送:控制傳送是雙向傳送,數(shù)據(jù)量通常較小。系統(tǒng)軟件用來(lái)主要進(jìn)行查詢(xún)、配置和給設(shè)備發(fā)送通用的命令??刂苽魉头绞娇梢园?、16、32和64字節(jié)的數(shù)據(jù),這依賴(lài)于設(shè)備和傳輸速度??刂苽鬏?shù)湫偷赜迷谥饔?jì)算機(jī)和USB外設(shè)之間的端點(diǎn)(Endpoint)0之間的傳輸,但是指定供應(yīng)商的控制傳輸可能用到其它的端點(diǎn)。

同步(isochronous)方式傳送:同步傳輸提供了確定的帶寬和間隔時(shí)間(latency)。它被用于時(shí)間嚴(yán)格并具有較強(qiáng)容錯(cuò)性的流數(shù)據(jù)傳輸,或者用于要求恒定的數(shù)據(jù)傳送率的即時(shí)應(yīng)用中。例如執(zhí)行即時(shí)通話(huà)的網(wǎng)絡(luò)電話(huà)應(yīng)用時(shí),使用同步傳輸模式是很好的選擇。同步數(shù)據(jù)要求確定的帶寬值和確定的最大傳送次數(shù)。對(duì)于同步傳送來(lái)說(shuō),即時(shí)的數(shù)據(jù)傳遞比完美的精度和數(shù)據(jù)的完整性更重要一些。

中斷 (interrupt)方式傳送:中斷方式傳輸主要用于定時(shí)查詢(xún)?cè)O(shè)備是否有中斷數(shù)據(jù)要傳送。設(shè)備的端點(diǎn)模式器的結(jié)構(gòu)決定了它的查詢(xún)頻率,從1到255ms 之間。這種傳輸方式典型的應(yīng)用在少量的分散的、不可預(yù)測(cè)數(shù)據(jù)的傳輸。鍵盤(pán)、操縱桿和鼠標(biāo)就屬于這一類(lèi)型。中斷方式傳送是單向的并且對(duì)于host來(lái)說(shuō)只有輸入的方式。

大量(bulk)傳送:主要應(yīng)用在數(shù)據(jù)大量傳送傳送和接受數(shù)據(jù)上,同時(shí)又沒(méi)有帶寬和間隔時(shí)間要求的情況下,要求保證傳輸。打印機(jī)和掃描儀屬于這種類(lèi)型。這種類(lèi)型的設(shè)備適合于傳輸非常慢和大量被延遲的傳輸,可以等到所有其它類(lèi)型的數(shù)據(jù)的傳送完成之后再傳送和接收數(shù)據(jù)。

USB 將其有效的帶寬分成各個(gè)不同的楨(frame),每楨通常是1ms時(shí)間長(zhǎng)。每個(gè)設(shè)備每楨只能傳送一個(gè)同步的傳送包。在完成了系統(tǒng)的配置信息和連接之后, USB的host就會(huì)對(duì)不同的傳送點(diǎn)和傳送方式做一個(gè)統(tǒng)籌安排,用來(lái)適應(yīng)整個(gè)的USB的帶寬。通常情況下,同步方式和中斷方式的傳送會(huì)占據(jù)整個(gè)帶寬的 90%,剩下的就安排給控制方式傳送數(shù)據(jù)。

USB的低層結(jié)構(gòu)

USB設(shè)備

USB的設(shè)備可以接在PC上的任意的USB接口上。而使用HUB還可以擴(kuò)展使更多的USB設(shè)備連接到系統(tǒng)中,USB的HUB有一個(gè)上行的端口(到host),有多個(gè)的下行端口(連接其它的設(shè)備),從而可以使整個(gè)的系統(tǒng)可以擴(kuò)展的連接127個(gè)外設(shè),其中HUB也酸外設(shè)。對(duì)于USB系統(tǒng)來(lái)說(shuō),USB的host永遠(yuǎn)是PC邊,所有的其他連接到host都稱(chēng)為設(shè)備,在設(shè)備與設(shè)備之間是無(wú)法實(shí)現(xiàn)直線(xiàn)通信的,只有通過(guò)host的管理與調(diào)節(jié)才能夠?qū)崿F(xiàn)數(shù)據(jù)的互相傳送.在系統(tǒng)中,通常會(huì)有一個(gè)根HUB,這個(gè)HUB一般有兩個(gè)下行的端口。

一個(gè)PC可以擁有一個(gè)或多個(gè)的USB host控制器。一般有兩種類(lèi)型的控制器:UHCI(USB host控制器接口),OHCI(開(kāi)放的host控制器接口)。Windows的USB類(lèi)驅(qū)動(dòng)程序?qū)τ诿恳环N的控制器類(lèi)型都有一種miniclass驅(qū)動(dòng)程序來(lái)支持。

USB的物理信號(hào)

USB 的電纜有四根線(xiàn),兩根傳送的是5V的電源,有一些直接和電源HUB相連的設(shè)備可以直接利用它來(lái)供電。另外的兩根是數(shù)據(jù)線(xiàn),數(shù)據(jù)線(xiàn)是單工的,在整個(gè)的一個(gè)系統(tǒng)中的數(shù)據(jù)速率是一定的,要么是高速,要么是低速,沒(méi)有一個(gè)可以中間變速的設(shè)備來(lái)實(shí)現(xiàn)數(shù)據(jù)碼流的變速.在這一點(diǎn)上,USB和1394有明顯的差別。

USB的總線(xiàn)可以在不使用的時(shí)候被掛起,這樣一來(lái)就可以節(jié)約能源。
在有些時(shí)候的總線(xiàn)還有可能擋機(jī)(stall),比如說(shuō)象數(shù)據(jù)傳送的時(shí)候突然被打斷,這個(gè)時(shí)候通過(guò)host的重新配置可以實(shí)現(xiàn)總線(xiàn)的重新工作。

低層協(xié)議

USB的物理協(xié)議規(guī)定了大多數(shù)的在總線(xiàn)上的數(shù)據(jù)格式,通常一個(gè)全速的數(shù)據(jù)楨可以最多有的1500bytes,而對(duì)于低速的楨最多有187bytes。
楨通常是用來(lái)分配帶寬給不同的數(shù)據(jù)傳送方式。同時(shí)由于楨結(jié)構(gòu)的規(guī)律性,楨的這種特性也可以用來(lái)做同步信號(hào)來(lái)使用。
一個(gè)最小的USB的數(shù)據(jù)塊叫做包(packet),包包括同步信號(hào),包標(biāo)識(shí)(packet ID),CRC和傳送的數(shù)據(jù)。Packet ID共有以下十種:


token: OUT IN SOF SETUP
data: DATA0 DATA1
handshake: ACK NAK STALL
special: PRE

Transactions(數(shù)據(jù)交換)

一個(gè)transaction是在host和設(shè)備(device)之間的不連續(xù)相互數(shù)據(jù)交換,通常由host開(kāi)始交換,交換的開(kāi)始是由Token的包開(kāi)始的,接下來(lái)是雙方向上的數(shù)據(jù)包,在數(shù)據(jù)包傳送完之后,就會(huì)由設(shè)備(device)返回一個(gè)握手(handshake)包。USB系統(tǒng)通過(guò)IN,OUT,和 SETUP的包來(lái)指定USB地址和endpoint(最多是128個(gè),0通常被用來(lái)用做缺省的傳送配置信息的),并且這些被指定的設(shè)備必須通過(guò)上面形式的包來(lái)回應(yīng)這種形式的指定。每個(gè)SETUP的包包含8個(gè)byte的數(shù)據(jù),數(shù)據(jù)用來(lái)指示傳送的數(shù)據(jù)類(lèi)型。對(duì)于DATA數(shù)據(jù)包來(lái)說(shuō),設(shè)置兩種類(lèi)型的數(shù)據(jù)包是為了能夠在傳送數(shù)據(jù)的時(shí)候做到更加的精確。ACK handshake的包用來(lái)指示數(shù)據(jù)傳送的正確性,而STALL handshake則表示數(shù)據(jù)包在傳送的過(guò)程中出了故障,并且請(qǐng)示host重新發(fā)數(shù)據(jù)或者清除這次傳送。PRE格式的包主要是用在在一個(gè)USB的系統(tǒng)中如果存在不同速率的設(shè)備的時(shí)候,將不同于總線(xiàn)速度的設(shè)備中就會(huì)回應(yīng)一個(gè)PRE的包從而會(huì)忽略該設(shè)備。
各種不同類(lèi)型的包的大小是不同的,DATA的數(shù)據(jù)包最大是1023bytes.

Start of Frame(SOF)

SOF是host用來(lái)指示frame的開(kāi)頭的。SOF的包包括11個(gè)bit的楨序號(hào),從0到0X7FF(i.e. USBD_ISO_START_FRAME_RANGE-1),SOF對(duì)于所有的高速設(shè)備來(lái)說(shuō)是有效的。

Power
每個(gè)設(shè)備可以從總線(xiàn)上獲得100mA的電流,如果特殊的向系統(tǒng)申請(qǐng),最多可以獲得500mA的電流,在掛機(jī)的狀態(tài)下,電流只有500uA



關(guān)鍵詞: USB

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉