摘 要:通用串行總線(USB)是一種簡(jiǎn)單的計(jì)算機(jī)外圍接口標(biāo)準(zhǔn)。
它具有即插即用、擴(kuò)展方便等優(yōu)點(diǎn),已成為計(jì)算機(jī)必備的一個(gè)接口。本文簡(jiǎn)要介紹USB總線的功能、拓樸結(jié)構(gòu)及其數(shù)據(jù)傳輸過(guò)程,并舉例說(shuō)明USB接口的實(shí)際應(yīng)用。
關(guān)鍵詞:通用串行總線 USB接口 外圍接口標(biāo)準(zhǔn) 一、USB接口背景 在早期的計(jì)算機(jī)系統(tǒng)上常用串口或并口連接外圍設(shè)備。每個(gè)接口都需要占用計(jì)算機(jī)的系統(tǒng)資源(如中斷,I/O地址,DMA通道等)。
無(wú)論是串口還是并口都是點(diǎn)對(duì)點(diǎn)的連接,一個(gè)接口僅支持一個(gè)設(shè)備。因此每添加一個(gè)新的設(shè)備,就需要添加一個(gè)ISA/EISA 或PCI卡來(lái)支持,同時(shí)系統(tǒng)需要重新啟動(dòng)才能驅(qū)動(dòng)新的設(shè)備。
USB總線是INTEL、DEC、MICROSOFT、IBM等公司聯(lián)合提出的一種新的串行總線標(biāo)準(zhǔn),主要用于PC機(jī)與外圍設(shè)備的互聯(lián)。USB總線具有低成本、使用簡(jiǎn)單、支持即插即用、易于擴(kuò)展等特點(diǎn),已被廣泛地用在PC機(jī)及嵌入式系統(tǒng)上。
二、USB總線優(yōu)缺點(diǎn) 1.優(yōu) 點(diǎn) (1)使用簡(jiǎn)單 所用USB系統(tǒng)的接口一致,連線簡(jiǎn)單。系統(tǒng)可對(duì)設(shè)備進(jìn)行自動(dòng)檢測(cè)和配置,支持熱插拔。
新添加設(shè)備系統(tǒng)不需要重新啟動(dòng)。 (2)應(yīng)用范圍廣 USB系統(tǒng)數(shù)據(jù)報(bào)文附加信息少,帶寬利用率高,可同時(shí)支持同步傳輸和異步傳輸兩種傳輸方式。
一個(gè)USB系統(tǒng)最多可支持127個(gè)物理設(shè)備。USB設(shè)備的帶寬可從幾Kbps 到幾Mbps (在USB2.0版本,最高可達(dá)幾百M(fèi)bps)。
一個(gè)USB系統(tǒng)可同時(shí)支持不同速率的設(shè)備,如低速的鍵盤、鼠標(biāo),全速的ISDN、語(yǔ)音,高速的磁盤、圖像等(僅USB2.0版本支持高速設(shè)備)。(3)較強(qiáng)的糾錯(cuò)能力 USB系統(tǒng)可實(shí)時(shí)地管理設(shè)備插拔。
在USB協(xié)議中包含了傳輸錯(cuò)誤管理、錯(cuò)誤恢復(fù)等功能,同時(shí)根據(jù)不同的傳輸類型來(lái)處理傳輸錯(cuò)誤。 (4)總線供電 USB總線可為連接在其上的設(shè)備提供5V電壓/100mA電流的供電,最大可提供500mA的電流。
USB設(shè)備也可采用自供電方式。 (5)低成 USB接口電路簡(jiǎn)單,易于實(shí)現(xiàn),特別是低速設(shè)備。
USB系統(tǒng)接口/電纜也比較簡(jiǎn)單,成本比串口/并口低。 2.缺 點(diǎn) USB技術(shù)還不是很成熟,特別是高速設(shè)備。
市場(chǎng)上現(xiàn)有的USB設(shè)備價(jià)格都比較昂貴,但隨著USB技術(shù)的日益成熟,設(shè)備的不斷增加和廣泛應(yīng)用,其價(jià)格將會(huì)有所降低。 三、USB系統(tǒng)拓?fù)浣Y(jié) 一個(gè)USB系統(tǒng)包含三類硬件設(shè)備: USB主機(jī)(USB HOST)、USB設(shè)備(USB DEVICE)、USB集線器(USB HUB),如圖1所示。
(1)USB HOST 在一個(gè)USB系統(tǒng)中,當(dāng)且僅當(dāng)有一個(gè)USB HOST時(shí),USB HOST有以下功能: ◇ 管理USB系統(tǒng); ◇ 每毫秒產(chǎn)生一幀數(shù)據(jù); ◇ 發(fā)送配置請(qǐng)求對(duì)USB設(shè)備進(jìn)行配置操作; ◇ 對(duì)總線上的錯(cuò)誤進(jìn)行管理和恢復(fù)。 (2)USB DEVICE 在一個(gè)USB系統(tǒng)中,USB DEVICE和USB HUB總數(shù)不能超過(guò)127個(gè)。
USB DEVICE接收USB總線上的所有數(shù)據(jù)包,通過(guò)數(shù)據(jù)包的地址域來(lái)判斷是不是發(fā)給自己的數(shù)據(jù)包:若地址不符,則簡(jiǎn)單地丟棄該數(shù)據(jù)包;若地址相符,則通過(guò)響應(yīng)USB HOST的數(shù)據(jù)包與USB HOST進(jìn)行數(shù)據(jù)傳輸。 (3)USB HUB USB HUB用于設(shè)備擴(kuò)展連接,所有USB DEVICE都連接在USB HUB的端口上。
一個(gè)USB HOST總與一個(gè)根HUB (USB ROOT HUB)相連。USB HUB為其每個(gè)端口提供100mA電流供設(shè)備使用。
同時(shí),USB HUB可以通過(guò)端口的電氣變化診斷出設(shè)備的插拔操作,并通過(guò)響應(yīng)USB HOST的數(shù)據(jù)包把端口狀態(tài)匯報(bào)給USB HOST。一般來(lái)說(shuō),USB設(shè)備與USB HUB間的連線長(zhǎng)度不超過(guò)5m,USB系統(tǒng)的級(jí)聯(lián)不能超過(guò)5級(jí)(包括ROOT HUB)。
四、USB總線數(shù)據(jù)傳輸 USB總線上數(shù)據(jù)傳輸?shù)慕Y(jié)構(gòu)如圖2所示。 從物理結(jié)構(gòu)上,USB系統(tǒng)是一個(gè)星形結(jié)構(gòu);但在邏輯結(jié)構(gòu)上,每個(gè)USB邏輯設(shè)備都是直接與USB HOST相連進(jìn)行數(shù)據(jù)傳輸?shù)摹?/p>
在USB總線上,每ms傳輸1幀數(shù)據(jù)。每幀數(shù)據(jù)可由多個(gè)數(shù)據(jù)包的傳輸過(guò)程組成。
USB設(shè)備可根據(jù)數(shù)據(jù)包中的地址信息來(lái)判斷是否響應(yīng)該數(shù)據(jù)傳輸。在USB標(biāo)準(zhǔn)1.1版本中,規(guī)定了4種傳輸方式以適應(yīng)不同的傳輸需求: (1)控制傳輸(control transfer) 控制傳輸發(fā)送設(shè)備請(qǐng)求信息,主要用于讀取設(shè)備配置信息及設(shè)備狀態(tài)、設(shè)置設(shè)備地址,設(shè)置設(shè)備屬性、發(fā)送控制命令等功能。
全速設(shè)備每次控制傳輸?shù)淖畲笥行ж?fù)荷可為64個(gè)字節(jié),而低速設(shè)備每次控制傳輸?shù)淖畲笥行ж?fù)荷僅為8個(gè)字節(jié)。 2)同步傳輸(isochronous transfer) 同步傳輸僅適用于全速/高速設(shè)備。
同步傳輸每ms進(jìn)行一次傳輸,有較大的帶寬,常用于語(yǔ)音設(shè)備。同步傳輸每次傳輸?shù)淖畲笥行ж?fù)荷可為1023個(gè)字節(jié)。
(3)中斷傳輸(interrupt transfer) 中斷傳輸用于支持?jǐn)?shù)據(jù)量少的周期性傳輸需求。全速設(shè)備的中斷傳輸周期可為1~255ms,而低速設(shè)備的中斷傳輸周期為10~255ms。
全速設(shè)備每次中斷傳輸?shù)淖畲笥行ж?fù)荷可為64個(gè)字節(jié),而低速設(shè)備每次中斷傳輸?shù)淖畲笥行ж?fù)荷僅為8個(gè)字節(jié)。 (4)塊數(shù)據(jù)傳輸(bulk transfer) 塊數(shù)據(jù)傳輸是非周期性的數(shù)據(jù)傳輸,僅全速/高速設(shè)備支持塊數(shù)據(jù)傳輸,同時(shí),當(dāng)且僅當(dāng)總線帶寬有效時(shí)才進(jìn)行塊數(shù)據(jù)傳輸。
塊數(shù)據(jù)傳輸每次數(shù)據(jù)傳輸?shù)淖畲笥行ж?fù)荷可為64個(gè)字節(jié)。 五、典型應(yīng)用 USB系統(tǒng)的典型 系統(tǒng)中,顯示器、Audio、Modem皆為全速設(shè)備,鍵盤、鼠標(biāo)為低速設(shè)備。
USB是一種支持在USB主機(jī)和USB設(shè)備之間進(jìn)行串行數(shù)據(jù)傳輸?shù)耐ㄐ艆f(xié)議。
主機(jī)作為總線的主叫方,采用兩種信令模式:全速模式12Mb/s和低速模式1.5Mb/s。USB使用四種數(shù)據(jù)傳輸方式:控制傳輸(control)、中斷傳輸(interrupt)、批量傳輸(bulk)及等時(shí)傳輸(isochronous)。
其中控制模式主要用于控制指令傳輸及USB規(guī)范的實(shí)現(xiàn),等時(shí)傳輸主要用于音頻及視頻傳輸。USB通過(guò)兩次總線列舉(Enumeration and Renumertion)來(lái)實(shí)現(xiàn)設(shè)備識(shí)別以及驅(qū)動(dòng)程序析加載。
其具體過(guò)程為:USB設(shè)備連到主機(jī)后,主機(jī)依據(jù)USB規(guī)范在特定地址通過(guò)端口0(endpoint0)與外設(shè)通信,并將外設(shè)視為默認(rèn)設(shè)備。外設(shè)與主機(jī)通信將其6設(shè)備標(biāo)識(shí)(DID、PID、VID)發(fā)給主機(jī)進(jìn)行第二次總線列舉。
主機(jī)根據(jù)設(shè)備標(biāo)識(shí),加載相應(yīng)設(shè)備驅(qū)動(dòng)程序,重新分配地址,并將控制權(quán)轉(zhuǎn)交給外設(shè)固件(firmware),通過(guò)固件與設(shè)備驅(qū)動(dòng)程序及主機(jī)應(yīng)用程序的交互通信,來(lái)實(shí)現(xiàn)外設(shè)的功能。
傳輸速率 這款新的超高速接口的實(shí)際傳輸速率大約是3.2Gbps(即400MB/S)。
理論上的最高速率是5.0Gbps(即625MB/S)。 數(shù)據(jù)傳輸 USB3.0 引入全雙工數(shù)據(jù)傳輸。
5根線路中2根用來(lái)發(fā)送數(shù)據(jù),另2根用來(lái)接收數(shù)據(jù),還有1根是地線。也就是說(shuō),USB 3.0可以同步全速地進(jìn)行讀寫操作。
以前的USB版本并不支持全雙工數(shù)據(jù)傳輸。 電源 電源的負(fù)載已增加到150毫安(USB 2.0是100毫安左右),配置設(shè)備可以提高到900毫安。
這比USB 2.0高了80%,充電速度更快。另外,USB 3.0的最小工作電壓從4.4伏特降到4伏特,更加省電。
電源管理 USB 3.0 并沒(méi)有采用設(shè)備輪詢,而是采用中斷驅(qū)動(dòng)協(xié)議。因此,在有中斷請(qǐng)求數(shù)據(jù)傳輸之前,待機(jī)設(shè)備并不耗電。
簡(jiǎn)而言之,USB 3.0支持待機(jī)、休眠和暫停等狀態(tài)。 物理外觀 上述的規(guī)范也會(huì)體現(xiàn)在USB 3.0的物理外觀上。
但USB 3.0的線纜會(huì)更“厚”,這是因?yàn)閁SB 3.0的數(shù)據(jù)線比2.0的多了4根內(nèi)部線。不過(guò),這個(gè)插口是USB 3.0的缺陷。
它包含了額外的連接設(shè)備。 已支持的操作系統(tǒng) Windows Vista、Windows 7 SP1和Linux已支持USB 3.0。
蘋果Mac OS還在觀望,應(yīng)該也會(huì)支持的。雖然Windows XP的“年齡”有點(diǎn)大,但它也能支持USB 3.0。
是不是這個(gè)呢? USB 2.0標(biāo)準(zhǔn) COMPAQ、Hewlett Packard、Intel、Lucent、Microsoft、NEC和PHILIPS這7家廠商聯(lián)合制定了USB 2.0接口標(biāo)準(zhǔn)。
USB 2.0將設(shè)備之間的數(shù)據(jù)傳輸速度增加到了480Mbps,比USB 1.1標(biāo)準(zhǔn)快40倍左右,速度的提高對(duì)于用戶的最大好處就是意味著用戶可以使用到更高效的外部設(shè)備,而且具有多種速度的周邊設(shè)備都可以被連接到USB 2.0的線路上,不像USB 1.1時(shí)代,因?yàn)楦邘捠沟酶嗟脑O(shè)備無(wú)需擔(dān)心數(shù)據(jù)傳輸時(shí)發(fā)生瓶頸效應(yīng)。USB 2.0可以使用原來(lái)USB定義中同樣規(guī)格的線纜,接頭的規(guī)格也完全相同,在高速的前提下一樣保持了USB 1.1的優(yōu)秀特色,也保證了向下兼容。
USB傳輸遵循USB協(xié)議,4根線上兩根是電源線,兩根是差分信號(hào)。根據(jù)USB協(xié)議,USB設(shè)備分主機(jī)和從機(jī),連接后,主從機(jī)之間通過(guò)USB線相互交流,按照協(xié)議建立連接后,就可以正常通訊了。
和RS232的區(qū)別,還真沒(méi)想出來(lái),完全是兩個(gè)不同的東西吧,USB是一整套的傳輸協(xié)議,232就是個(gè)電平信號(hào)協(xié)議吧。也就是說(shuō),232只是定義了信息應(yīng)該如何傳輸,USB不但定義了信息傳輸?shù)姆绞剑捕x了設(shè)備的運(yùn)作方式。
信號(hào)線上傳輸?shù)木褪遣罘中盘?hào)。具體的……還是看看USB協(xié)議吧,沒(méi)仔細(xì)研究過(guò)。
固件的程序和驅(qū)動(dòng)編寫好了后,把設(shè)備插入就可以正確識(shí)別到,接下來(lái)的工作就是如何用上位機(jī)讀寫設(shè)備了。其實(shí)讀寫操作跟讀寫串口一致的,就是用file進(jìn)行操作。關(guān)鍵是打開設(shè)備,下面是我用到的程序,這里都貼出來(lái)吧,我都是用這個(gè)的,供大家參考,呵呵,如果剛開始弄的話,估計(jì)得弄上個(gè)一個(gè)星期才行,用這個(gè)程序修改一下,兩分鐘搞定。
其中GUID ClassGuid 是你在驅(qū)動(dòng)中生成的一個(gè)號(hào),它必須跟你的驅(qū)動(dòng)對(duì)應(yīng)起來(lái),這個(gè)號(hào)的位置在驅(qū)動(dòng)程序的XXXDeviceInterface.h中的#define XXXDevice_CLASS_GUID \。.(XXX表示你起的工程名字)。把這個(gè)號(hào)替換之后用FpOpenDevice打開設(shè)備,得到一個(gè)讀句柄,一個(gè)寫句柄,然后在自己的程序中用readfile和writefile讀寫設(shè)備就可以了,注意,不管是讀還是寫,都是主機(jī)發(fā)出的,設(shè)備不能主動(dòng)發(fā)發(fā)數(shù)據(jù)。比如上位機(jī)中運(yùn)行readfile,就會(huì)發(fā)送一個(gè)IN指令,設(shè)備接到IN指令后,會(huì)把緩沖區(qū)的內(nèi)容發(fā)出。
這一方面,想簡(jiǎn)單可以簡(jiǎn)單,想復(fù)雜可以負(fù)責(zé)的,,
上位機(jī)包括驅(qū)動(dòng)和應(yīng)用兩層。一般為了使自己的程序更通用并且適合做
再加工,,都是在驅(qū)動(dòng)和界面程序中間加個(gè)dll什么的,,作為中間層。
簡(jiǎn)單說(shuō)的話,你可以下載公版驅(qū)動(dòng),和針對(duì)于該驅(qū)動(dòng)的dll,,
開發(fā)者直接調(diào)用dll export出來(lái)的接口函數(shù),完成開發(fā),,跟一般的
軟件開發(fā)差不多,,只有你會(huì)調(diào)用dll。。當(dāng)然這里還有一個(gè)問(wèn)題就是,
你還要和下位機(jī)軟件開發(fā)的人一起制定一個(gè)協(xié)議什么的,,來(lái)具體完成
一些數(shù)據(jù)狀態(tài)的交換。
如果要寫驅(qū)動(dòng),,相對(duì)教難些,,不過(guò)可以上網(wǎng)上下載些類似的源碼,,
參考修改,,完成驅(qū)動(dòng)。
推薦你去csdn,這個(gè)網(wǎng)站上有很多資源,注冊(cè)都可以下載的
1 USB的結(jié)構(gòu)與工作原理 1.1物理結(jié)構(gòu) USB的物理拓?fù)浣Y(jié)構(gòu)如圖1所示。
在USB2.0中,高速方式下Hub使全速和低速方式的信令環(huán)境獨(dú)立出來(lái),圖2中顯示了高速方式下Hub的作用。 通過(guò)使用集線器(Hub)擴(kuò)展可外接多達(dá)127個(gè)外設(shè)。
USB的電纜有四根線,兩根傳送的是5V的電源,另外的兩根是數(shù)據(jù)線。功率不大的外圍設(shè)備可以直接通過(guò)USB總線供電,而不必外接電源。
USB總線最大可以提供5V 500mA電流,并支持節(jié)約能源的掛機(jī)和喚醒模式。 1.2 USB設(shè)備邏輯結(jié)構(gòu) USB的設(shè)備可以分成多個(gè)不同類型,同類型的設(shè)備可以擁有一些共同的行為特征和工作協(xié)議,這樣可以使設(shè)備驅(qū)動(dòng)程序的編寫變得簡(jiǎn)單一些。
USB Forum在USB類規(guī)范?2 中定義了USB的設(shè)備類型,比如音頻、通信、HID、HUB等設(shè)備類。 每一個(gè)USB設(shè)備會(huì)有一個(gè)或者多個(gè)的邏輯連接點(diǎn)在里面?每個(gè)連接點(diǎn)叫端點(diǎn)。
在USB的規(guī)范中用4位地址標(biāo)識(shí)端點(diǎn)地址,每個(gè)設(shè)備最多有16個(gè)端點(diǎn)。 端點(diǎn)0都被用來(lái)傳送配置和控制信息。
在NS公司的USB接口芯片USBN9602?4 中有7個(gè)端點(diǎn)。 管道實(shí)現(xiàn)了在主機(jī)的一個(gè)內(nèi)存緩沖區(qū)和設(shè)備的端點(diǎn)之間的數(shù)據(jù)傳輸,連接端點(diǎn)0的叫做缺省管道。
管道是具有多個(gè)特征的信道,如帶寬分配,包大小,管道類別以及數(shù)據(jù)流向。 管道有兩種類型分別是流管道(stream pipe)和消息管道(messagepipe)。
流管道傳輸?shù)臄?shù)據(jù)包的內(nèi)容不具有USB要求的結(jié)構(gòu),它是單向傳輸?shù)?;流管道支持批量、等時(shí)和中斷傳輸方式。而消息管道與流管道具有不同的行為。
首先,由主機(jī)發(fā)請(qǐng)求給USB設(shè)備,然后在適當(dāng)?shù)姆较蛏蟼鬏敂?shù)據(jù),最后是到達(dá)一個(gè)狀態(tài)階段。 為了保證三個(gè)階段的數(shù)據(jù)傳輸,消息管道定義了一個(gè)數(shù)據(jù)結(jié)構(gòu)使命令可靠地被識(shí)別和傳輸。
消息管道是雙向的,它只支持控制傳輸方式。 對(duì)于同樣性質(zhì)的一組端點(diǎn)的組合叫做接口,如果一個(gè)設(shè)備包含不止一個(gè)接口就可以稱之為復(fù)合設(shè)備(見圖1)。
對(duì)于同樣類型接口的組合可以稱之為配置。 但是每次只能有一個(gè)配置是可用的,而一旦該配置被激活,里面的接口和端點(diǎn)就都同時(shí)可以使用。
主機(jī)從設(shè)備發(fā)過(guò)來(lái)的描述字中來(lái)判斷用的是哪個(gè)配置?哪個(gè)接口等等?而這些描述字通常是在端點(diǎn)0中傳送的。 1.3 USB通信分層模型 一臺(tái)主機(jī)到設(shè)備的連接需要許多層與實(shí)體之間的相互作用。
USB總線接口層提供了主機(jī)和設(shè)備之間的物理/信令/包的連接。在系統(tǒng)軟件看來(lái),USB設(shè)備層執(zhí)行的是一般的USB操作。
功能接口層提供和應(yīng)用軟件層相對(duì)應(yīng)的附加功能。分層模型如圖3所示,雖然邏輯上USB設(shè)備層和功能層各自與主機(jī)上的相應(yīng)層通信,但物理上都是通過(guò)USB總線接口層實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)摹?/p>
1.4 四種傳輸方式 USB提供了四種傳輸方式,以適應(yīng)各種設(shè)備的需要。這四種傳輸方式分別是: 控制傳輸方式:控制傳輸是雙向傳輸,數(shù)據(jù)量通常較小,主要用來(lái)進(jìn)行查詢、配置和給USB設(shè)備發(fā)送通用的命令。
控制傳輸主要用在主計(jì)算機(jī)和USB外設(shè)中端點(diǎn)0之間。 等時(shí)傳輸方式:等時(shí)傳輸提供了確定的帶寬和間隔時(shí)間。
它被用于時(shí)間嚴(yán)格并具有較強(qiáng)容錯(cuò)性的流數(shù)據(jù)傳輸,或者用于要求恒定的數(shù)據(jù)傳送率的即時(shí)應(yīng)用中。例如進(jìn)行語(yǔ)音業(yè)務(wù)傳輸時(shí),使用等時(shí)傳輸方式是很好的選擇。
中斷傳輸方式:中斷方式傳送是單向的并且對(duì)于主機(jī)來(lái)說(shuō)只有輸入的方式。 中斷傳輸方式主要用于定時(shí)查詢?cè)O(shè)備是否有中斷數(shù)據(jù)要傳送,該傳輸方式應(yīng)用在少量的、分散的、不可預(yù)測(cè)的數(shù)據(jù)傳輸。
鍵盤、游戲桿和鼠標(biāo)就屬于這一類型。 大量傳輸方式:主要應(yīng)用在沒(méi)有帶寬和間隔時(shí)間要求的大量數(shù)據(jù)的傳送和接收,它要求保證傳輸。
打印機(jī)和掃描儀屬于這種類型。 在開發(fā)USB設(shè)備時(shí)通過(guò)設(shè)置接口芯片中相應(yīng)的寄存器使端點(diǎn)處于不同的工作方式。
1.5 USB通信協(xié)議 USB的物理協(xié)議規(guī)定了在總線上傳輸?shù)臄?shù)據(jù)格式,一個(gè)全速的數(shù)據(jù)幀有1500字節(jié),而對(duì)于低速的幀有187字節(jié)。幀的作用是分配帶寬給不同的數(shù)據(jù)傳送方式。
一個(gè)最小的USB的數(shù)據(jù)塊叫做包,包通常有同步信號(hào),包標(biāo)識(shí),地址、傳送的數(shù)據(jù)和CRC。包的ID由八位組成,其中后四位是糾錯(cuò)位。
根據(jù)包功能的不同,在USB1.1中定義了以下四類十種: token OUT IN SOF SETUP data DATA0 DATA1 handshake ACK NAK STALL special PRE 在USB2.0中又增加了幾種類型的包以滿足高速傳輸?shù)男枰?其中data類型增加了DATA2和MDATA,handshake類型增加了NYET,special類型則增加了ERR,SPLIT,PING,Reserved。
事務(wù)是在主機(jī)和設(shè)備之間不連續(xù)地?cái)?shù)據(jù)交換。一個(gè)事務(wù)通常由主機(jī)開始,一般分三個(gè)階段,第一階段發(fā)送token包,第二階段發(fā)送是data包(可以向上也可以向下),在數(shù)據(jù)包傳送完之后,就會(huì)由設(shè)備返回一個(gè)handshake包。
當(dāng)客戶端程序通過(guò)一個(gè)USB管道發(fā)送或接收數(shù)據(jù)時(shí),它首先會(huì)調(diào)用Win32API,API會(huì)發(fā)送一個(gè)IRP到USB設(shè)備驅(qū)動(dòng)程序。USB設(shè)備驅(qū)動(dòng)程序的任務(wù)就是把客戶端的請(qǐng)求通過(guò)一個(gè)管道發(fā)送到外設(shè)合適的端點(diǎn)。
為了實(shí)現(xiàn)這個(gè)任務(wù),USB設(shè)備驅(qū)動(dòng)程序會(huì)遞交請(qǐng)求給總線驅(qū)動(dòng)程序,總線驅(qū)動(dòng)程序可以把這些請(qǐng)求轉(zhuǎn)變成事務(wù),然后將這些事務(wù)組合成幀在總線上傳輸。 1.6 USB帶寬分析舉例 在USB1.1標(biāo)準(zhǔn)中將其有效的帶寬分。
USB,即通用串行總線(Universal Serial Bus),也稱通用串聯(lián)接口。
隨著計(jì)算機(jī)硬件飛速發(fā)展,外圍設(shè)備日益增多,鍵盤、鼠標(biāo)、調(diào)制解調(diào)器、打印機(jī)、掃描儀早已為人所共知,數(shù)碼相機(jī)、MP3隨身聽接踵而至,這么多的設(shè)備,如何接入個(gè)人計(jì)算機(jī)?USB就是基于這個(gè)目的產(chǎn)生的。USB是一個(gè)使計(jì)算機(jī)周邊設(shè)備連接標(biāo)準(zhǔn)化、單一化的接口,其規(guī)格是由Intel、NEC、Compaq、DEC、IBM、Microsoft、Northern Telecom聯(lián)系制定的。
USB1.1標(biāo)準(zhǔn)接口傳輸速率為12Mbps,但是一個(gè)USB設(shè)備最多只可以得到6Mbps的傳輸頻寬。因此若要外接光驅(qū),至多能接六倍速光驅(qū),無(wú)法再高。而若要即時(shí)播放MPEG-1的VCD影片,至少要1.5Mbps的傳輸頻寬,這點(diǎn)USB辦得到,但是要完成數(shù)據(jù)量大四倍的MPEG-2的DVD影片播放,USB可能就很吃力了,若再加上AC-3音頻數(shù)據(jù),USB設(shè)備就很難實(shí)現(xiàn)即時(shí)播放了。
一個(gè)USB接口理論上可以支持127個(gè)裝置,但是目前還無(wú)法達(dá)到這個(gè)數(shù)字。其實(shí),對(duì)于一臺(tái)計(jì)算機(jī),所接的周邊外設(shè)很少有超過(guò)10個(gè)的,因此這個(gè)數(shù)字是足夠我們使用的。
USB還有一個(gè)顯著優(yōu)點(diǎn)就是支持熱插拔,也就是說(shuō)在開機(jī)的情況下,你也可以安全地連接或斷開USB設(shè)備,達(dá)到真正的即插即用。
不過(guò),并非所有的Windows系統(tǒng)都支持USB。目前,Windows系統(tǒng)中有許多不同的版本,在這些版本中,只有Windows98以上版本的系統(tǒng)對(duì)USB的支持較好,而其他的Windows版本并不能完整支持USB。例如Windows95的零售版是不支持USB的,只有后來(lái)與PC捆綁銷售的Windows95版本才支持USB。
目前USB設(shè)備雖已被廣泛應(yīng)用,但比較普遍的卻是USB1.1接口,它的傳輸速度僅為12Mbps。舉個(gè)例子說(shuō),當(dāng)你用USB1.1的掃描儀掃一張大小為40M的圖片,需要4分鐘之久。 這樣的速度,讓用戶覺(jué)得非常不方便,如果有好幾張圖片要掃的話,就得要有很好的耐心來(lái)等待了。
用戶的需求,是促進(jìn)科技發(fā)展的動(dòng)力,廠商也同樣認(rèn)識(shí)到了這個(gè)瓶頸。這時(shí), COMPAQ、Hewlett Packard、Intel、Lucent、Microsoft、NEC和PHILIPS這7家廠商聯(lián)合制定了USB 2.0接口標(biāo)準(zhǔn)。USB 2.0將設(shè)備之間的數(shù)據(jù)傳輸速度增加到了480Mbps,比USB 1.1標(biāo)準(zhǔn)快40倍左右,速度的提高對(duì)于用戶的最大好處就是意味著用戶可以使用到更高效的外部設(shè)備,而且具有多種速度的周邊設(shè)備都可以被連接到USB 2.0的線路上,而且無(wú)需擔(dān)心數(shù)據(jù)傳輸時(shí)發(fā)生瓶頸效應(yīng)。
所以,如果你用USB 2.0的掃描儀,就完全不同了,掃一張40M的圖片只需半分鐘左右的時(shí)間,一眨眼就過(guò)去了,效率大大提高。
而且,USB2.0可以使用原來(lái)USB定義中同樣規(guī)格的電纜,接頭的規(guī)格也完全相同,在高速的前提下一樣保持了USB 1.1的優(yōu)秀特色,并且,USB 2.0的設(shè)備不會(huì)和USB 1.X設(shè)備在共同使用的時(shí)候發(fā)生任何沖突。
USB2.0兼容USB1.1,也就是說(shuō)USB1.1設(shè)備可以和USB2.0設(shè)備通用,但是這時(shí)USB2.0設(shè)備只能工作在全速狀態(tài)下(12Mbit/s)。USB2.0有高速、全速和低速三種工作速度,高速是480Mbit/s,全速是12Mbit/s,低速是1.5Mbit/s。其中全速和低速是為兼容USB1.1而設(shè)計(jì)的,因此選購(gòu)USB產(chǎn)品時(shí)不能只聽商家宣傳USB2.0,還要搞清楚是高速、全速還是低速設(shè)備。USB總線是一種單向總線,主控制器在PC機(jī)上,USB設(shè)備不能主動(dòng)與PC機(jī)通信。為解決USB設(shè)備互通信問(wèn)題,有關(guān)廠商又開發(fā)了USB OTG標(biāo)準(zhǔn),允許嵌入式系統(tǒng)通過(guò)USB接口互相通信,從而甩掉了PC機(jī)
聲明:本網(wǎng)站尊重并保護(hù)知識(shí)產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請(qǐng)?jiān)谝粋€(gè)月內(nèi)通知我們,我們會(huì)及時(shí)刪除。
蜀ICP備2020033479號(hào)-4 Copyright ? 2016 學(xué)習(xí)鳥. 頁(yè)面生成時(shí)間:3.960秒