USB串行總線及其應(yīng)用_第1頁
USB串行總線及其應(yīng)用_第2頁
USB串行總線及其應(yīng)用_第3頁
USB串行總線及其應(yīng)用_第4頁
USB串行總線及其應(yīng)用_第5頁
已閱讀5頁,還剩90頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第四章USB串行總線及其應(yīng)用USB系統(tǒng)組成USB系統(tǒng)接口信號(hào)與電氣特性USB流類型與傳輸類型USB包格式USB外圍芯片及應(yīng)用4.1USB串行總線概述通用串行總線(UniversalSerialBus,USB〕:連接外部設(shè)備的一個(gè)串口總線標(biāo)準(zhǔn),用于在便攜設(shè)備之間直接交換數(shù)據(jù),廣泛使用與計(jì)算機(jī)、機(jī)頂盒和游戲機(jī)。開發(fā)目的:計(jì)算機(jī)與之間的連接;易用性;端口擴(kuò)充。特點(diǎn):支持熱插拔(Hotplug)和即插即用(Plug&Play)。USB不完全是一個(gè)串口,實(shí)際上是一種串行總線。通過USB端口可以連接許多設(shè)備,這些設(shè)備可以相互連接在一起。而且不同類型的設(shè)備組成可以通過USB集線器別離開來,與傳統(tǒng)的串口只能鏈接一個(gè)設(shè)備有本質(zhì)區(qū)別。USB用來把串口、并口等不同的接口統(tǒng)一起來,使用一個(gè)4針插頭作為標(biāo)準(zhǔn)插頭。通過這個(gè)標(biāo)準(zhǔn)插頭,采用菊花鏈形式(星型結(jié)構(gòu))可以把所有的外設(shè)連接起來,并且不會(huì)損失帶寬。USB設(shè)備類型設(shè)備類型(deviceclass)設(shè)備舉例類型常量(Classconstant)音頻(audio)揚(yáng)聲器USB_DEVICE_CLASS_AUDIO通信MODEMUSB_DECICE_CLASS_COMMUNICATIONSHID鍵盤、鼠標(biāo)USB_DEVICE_CLASS_HUMAN_INTERFACE圖像攝相機(jī)、掃描儀USB_DEVICE_CLASS_IMAGE顯示監(jiān)視器USB_DEVICE_CLASS_MONITOR物理回應(yīng)設(shè)備動(dòng)力回饋式游戲操縱桿USB_DEVICE_CLASS_PHYSICAL_INTERFACE電源不間斷電源供應(yīng)USB_DEVICE_CLASS_POWER打印機(jī)USB_DEVICE_CLASS_PRINTERBulk存儲(chǔ)器硬盤USB_DEVICE_CLASS_STORAGEHUBUSB_DEVICE_CLASS_HUBUSB總線主要性能特點(diǎn)每個(gè)USB系統(tǒng)中有一個(gè)主機(jī),通過“級(jí)聯(lián)”方式,USB總線可連接多個(gè)外部設(shè)備。每個(gè)USB設(shè)備用一個(gè)USB插頭連接到上一個(gè)USB設(shè)備的USB插座上,而其本身又提供一或多個(gè)USB插座供下一個(gè)或多個(gè)USB設(shè)備連接使用。這種多重連接通過集線器Hub實(shí)現(xiàn)的,整個(gè)USB網(wǎng)絡(luò)中最多可連接127個(gè)設(shè)備,支持多個(gè)設(shè)備同時(shí)操作。USB提供機(jī)箱外的熱即插即用功能,能自動(dòng)配置和重新配置外設(shè)。USB總線適用帶寬范圍在幾千位/秒(Kb/s)——幾百兆位/秒(Mb/s)的設(shè)備,可連接鍵盤、鼠標(biāo)、攝像頭、游戲設(shè)備、虛擬現(xiàn)實(shí)等低速設(shè)備,也可連接、聲頻、麥克風(fēng)、壓縮視頻等全速設(shè)備,還可連接視頻、存儲(chǔ)器、圖像采集等高速設(shè)備,同時(shí)允許復(fù)合設(shè)備(具有多種功能的外設(shè))連接到PC機(jī)。低本錢的電纜和連接器。USB通過一根四芯的電纜傳送信號(hào)和電源,電纜長(zhǎng)度可變,最達(dá)5m。USB具有錯(cuò)誤檢測(cè)和處理機(jī)制,可識(shí)別設(shè)備的錯(cuò)誤。較低的協(xié)議開銷提高了總線性能,適于低本錢外設(shè)開發(fā)。支持主機(jī)與設(shè)備之間的多數(shù)據(jù)流和多消息流傳輸,支持同步和異步傳輸類型。以往接口方案存在的缺點(diǎn)大多數(shù)微型計(jì)算機(jī)外圍設(shè)備基于接口實(shí)現(xiàn),這些接口的設(shè)計(jì)有很多缺陷,不僅給設(shè)計(jì)者帶來了許多麻煩,而且也給用戶帶來諸多不便。傳統(tǒng)的I/O模式,外圍設(shè)備通常被映射為CPU的I/O地址空間,并且被分配一個(gè)指定的IRQ(中斷請(qǐng)求),或者是一個(gè)DMA通道。系統(tǒng)資源被分配給指定的外圍設(shè)備,地址分配通常由IBM公司和其他設(shè)備制造商指定。這種地址分配方法已成為一種標(biāo)準(zhǔn)。軟件開發(fā)者要利用這些關(guān)于中斷請(qǐng)求和DMA通道的信息對(duì)指定的設(shè)備進(jìn)行訪問。因?yàn)镻C上的很多設(shè)備要求使用中斷,許多關(guān)鍵的系統(tǒng)資源問題都涉及到中斷請(qǐng)求分配。ISA總線不能可靠地支持共享式中斷,所以這點(diǎn)對(duì)于通過ISA總線和PC相連的外設(shè)尤其重要?;赑CI總線的系統(tǒng)也包括ISA或EISA兩種總線。典型的設(shè)備占用中斷情況表以往接口方案存在的缺點(diǎn)PC環(huán)境中,I/O地址沖突十分常見。外圍設(shè)備通常需要大塊的I/O地址單元,才能報(bào)告設(shè)備的狀態(tài)信息并給設(shè)備發(fā)送命令。盡管x86處理器有能力訪問64KB的I/O地址單元,但是傳統(tǒng)的擴(kuò)展卡通常只能對(duì)16條地址線中的10個(gè)進(jìn)行解碼,導(dǎo)致最多只能有1KB的地址空間塊可以被ISA的擴(kuò)展卡所使用。標(biāo)準(zhǔn)PC外設(shè)接口支持單個(gè)設(shè)備連接。一個(gè)給定時(shí)刻只有一個(gè)外設(shè)可以連接,,所以新的外設(shè)連到電腦上需要通過專用的擴(kuò)展卡插到擴(kuò)展總線上,這種擴(kuò)展外設(shè)的方法本錢比較昂貴。終端用戶遇到的問題:種類繁多的數(shù)據(jù)線;擴(kuò)展卡的安裝和配置;外圍設(shè)備不能熱插拔;本錢。USB優(yōu)點(diǎn)為所有USB外設(shè)提供單一的、易于使用的、標(biāo)準(zhǔn)的連接類型,簡(jiǎn)化USB外設(shè)設(shè)計(jì)和用戶使用,實(shí)現(xiàn)單一數(shù)據(jù)通用接口;整個(gè)USB系統(tǒng)只有一個(gè)端口和一個(gè)中斷,節(jié)省系統(tǒng)資源。USB支持熱插拔(hotplug)和PNP(Plug-and-Play),計(jì)算機(jī)系統(tǒng)可動(dòng)態(tài)地檢測(cè)外設(shè)的插拔,以及動(dòng)態(tài)加載驅(qū)動(dòng)程序USB在設(shè)備提供靈活的供電,USB直接連接到Hub,或是連接到Host的設(shè)備可通過USB電纜、電池或其它電力設(shè)備供電,或使用兩種供電方式組合。支持節(jié)約能源的掛機(jī)和喚醒模式。USB提供全速(12Mbps)、低速(1.5Mbps)、高速(480Mbps)的速率來適應(yīng)各種不同類型的外設(shè)傳輸速率。USB提供四種不同的數(shù)據(jù)傳輸類型:控制傳輸、Bulk數(shù)據(jù)傳輸、中斷數(shù)據(jù)傳輸和同步數(shù)據(jù)傳輸。USB端口有靈活的擴(kuò)展性,一個(gè)USB端口串接上一個(gè)USBHub就可以擴(kuò)展為多個(gè)USB端口傳輸。4.1USB串行總線概述4.1.1USB系統(tǒng)組成USB的互連;USB的設(shè)備;USB的主機(jī)。USB互聯(lián)USB的互連指USB設(shè)備與主機(jī)之間進(jìn)行連接和通信的操作??偩€的拓?fù)浣Y(jié)構(gòu):USB設(shè)備與主機(jī)之間的各種連接方式;內(nèi)部層次關(guān)系:根據(jù)性能疊置,USB任務(wù)分配到系統(tǒng)每一層次;數(shù)據(jù)流模式:數(shù)據(jù)通過USB從產(chǎn)生方到使用方的流動(dòng)方式;USB的調(diào)度:提供一個(gè)共享連接,對(duì)可使用的物理連接進(jìn)行調(diào)度以支持同步數(shù)據(jù)傳輸,防止優(yōu)先級(jí)別判斷的開銷。USB物理連接:有層次性的星型結(jié)構(gòu)。網(wǎng)絡(luò)集線器在星型中心,每條線段點(diǎn)點(diǎn)連接。從主機(jī)到集線器或其功能部件,或從集線器到集線器或其功能部件。USB總線拓?fù)浣Y(jié)構(gòu)USB互聯(lián)每個(gè)USB系統(tǒng)有且只有一個(gè)主機(jī)(host),負(fù)責(zé)管理整個(gè)USB系統(tǒng)包括USBDevice的連接與刪除,Host與USBDevice的通信總路線的控制等等。Host端有一個(gè)RootHub可提供一個(gè)或多個(gè)USB下行端口,每個(gè)端口可以連接一個(gè)USBHub或一個(gè)USBDevice,USBHub用于USB端口擴(kuò)展,

可將USB端口擴(kuò)展為多個(gè)端口,一個(gè)USB系統(tǒng)最多可連接127個(gè)功能(Function)。USB的系統(tǒng)有且只有一個(gè)host,

PC端的USB都是Host,兩臺(tái)PC

的USB口通過A-AUSB電纜連接起來不能實(shí)現(xiàn)通信。有USB

到USB的設(shè)備控制器可以實(shí)現(xiàn)兩個(gè)USBHost的相連。USB總線拓?fù)浣Y(jié)構(gòu)4.1USB串行總線概述4.1.1USB系統(tǒng)組成2.USB設(shè)備USB設(shè)備:集線器、分配器或文本設(shè)備等。USB可以按高速設(shè)備或低速設(shè)備設(shè)計(jì):High-speed:25Mbps~400Mbps(最大480Mbps[57M])Full-speed:500Kbps~10Mbps(最大12Mbps[1.4M]〕Low-speed:10Kbps~100Kbps(最大1.5Mbps[183k]〕集線器:提供USB連接點(diǎn)。USB功能器件(FunctionDevice):和USB協(xié)議完全兼容,可響應(yīng)標(biāo)準(zhǔn)的USB操作。用于說明USB外設(shè)身份的“BIOS”被稱為協(xié)議層。USBHUB特性

USBHUB特征:1)為自己和其它外設(shè)的連接提供可擴(kuò)展的下行(Downstream)和上行(Upstream)埠。2)支持USB總線的電源管理機(jī)制。3)支持總線傳輸失敗的檢測(cè)和恢復(fù)。4)可自動(dòng)檢測(cè)下行埠外設(shè)的連接和摘除,并向主機(jī)報(bào)告。5)支持低速外設(shè)和高速外設(shè)的同時(shí)連接。HUB應(yīng)答器(HUBRepeater):響應(yīng)主機(jī)對(duì)USB外設(shè)的設(shè)置,對(duì)連接到它下行端口的USB功能部件的連接(Attached)和摘除(Detached)的檢測(cè)、分類,并將其端口信息傳送給主機(jī),也負(fù)責(zé)如“總線傳輸失敗檢測(cè)”這樣的錯(cuò)誤處理。是上游端口和下游端口之間的協(xié)議控制開關(guān)。支持復(fù)位、掛起、喚醒信號(hào);HUB控制器(HUBController):提供主機(jī)到HUB數(shù)據(jù)傳輸?shù)奈锢頇C(jī)制。USBHUB的ROM有用來向主機(jī)說明身份的“BIOS”系統(tǒng),通過USB特征字使主機(jī)可以配置USBHUB,并監(jiān)控它的每一個(gè)埠。USB功能器件(FunctionDevice)USB功能器件:為主機(jī)系統(tǒng)提供某種功能的USB器件,如USBISDN的調(diào)制解調(diào)器、或是USB接口的數(shù)字?jǐn)z像機(jī)、USB鍵盤或鼠標(biāo)等。保持和USB協(xié)議的完全兼容,并可以響應(yīng)標(biāo)準(zhǔn)的USB操作。必有用于說明身份的“BIOS”系統(tǒng)(協(xié)議層)。在物理機(jī)制上,USB外設(shè)由四局部構(gòu)成:1)用于實(shí)現(xiàn)和USB協(xié)議兼容的SIE局部。2)用于內(nèi)存件特征字、存儲(chǔ)實(shí)現(xiàn)外設(shè)特殊功能程序及廠家信息的協(xié)議層(ROM)。3)用于實(shí)現(xiàn)外設(shè)功能的傳感器及對(duì)資料進(jìn)行簡(jiǎn)單處理的DSP局部。4)將外設(shè)連接到主機(jī)或USBHUB的接口局部。USB主機(jī)USB主機(jī)通過主機(jī)控制器與USB設(shè)備進(jìn)行交互,功能如下:檢測(cè)USB設(shè)備的安裝和拆卸;管理在主機(jī)和USB設(shè)備之間的控制流;管理在主機(jī)和USB設(shè)備之間的數(shù)據(jù)流;收集狀態(tài)和動(dòng)作信息;提供能量給連接的USB設(shè)備。USB主機(jī)的系統(tǒng)軟件管理USB設(shè)備和主機(jī)上該設(shè)備軟件間的相互交互,相互作用方式如下:設(shè)備編號(hào)和設(shè)置;同步數(shù)據(jù)傳輸;異步數(shù)據(jù)傳輸;電源管理;設(shè)備和總線管理信息。USB的連接插口分A型、B型端口和相應(yīng)的連接器。其中A型用于連接下游方向〔以主機(jī)為基準(zhǔn)〕的集線器或應(yīng)用型設(shè)備,B型用于連接上游集線器等設(shè)備。USB的B型端口和連接器USB的A型端口和連接器引腳編號(hào)信號(hào)名稱纜線顏色1Vcc紅2Data-(D-)白3Data+(D+)綠4Ground黑USB集線器(Hub)每個(gè)USB集線器有一個(gè)B型端口或連線,集線器通過它連接到其上游(主機(jī)的根集線器,或另一個(gè)集線器)方向;每個(gè)USB集線器有一個(gè)或多個(gè)A型端口,用于連接其下游USB設(shè)備。4.1.2USB系統(tǒng)的接口信號(hào)與電氣特性1.USB外部電氣特性USB總線的物理傳輸介質(zhì)由一根4線的電纜組成,其中兩條(VBus、GND)用于提供設(shè)備工作所需電源。VBus在源端的標(biāo)稱電壓值為+5V,GND為其對(duì)應(yīng)地線。另兩條(V+、V-)為絞線形式的信號(hào)傳輸線,阻抗90Ω。12Mb/S傳輸時(shí),電纜為屏蔽線,最大長(zhǎng)度為5米;1.5Mb/S傳輸時(shí),電纜的信號(hào)線允許是廉價(jià)的非屏蔽非雙絞線,電纜最大長(zhǎng)度為3米。信號(hào)以差模方式送入信號(hào)線,接收端靈敏度可到達(dá)200mv以上。4.1.2USB系統(tǒng)的接口信號(hào)與電氣特性1.USB外部電氣特性USB總線的物理傳輸介質(zhì)由一根4線的電纜組成,其中兩條(VBus、GND)用于提供設(shè)備工作所需電源。VBus在源端的標(biāo)稱電壓值為+5V,GND為其對(duì)應(yīng)地線。另兩條(V+、V-)為絞線形式的信號(hào)傳輸線,阻抗90Ω。12Mb/S傳輸時(shí),電纜為屏蔽線,最大長(zhǎng)度為5米;1.5Mb/S傳輸時(shí),電纜的信號(hào)線允許是廉價(jià)的非屏蔽非雙絞線,電纜最大長(zhǎng)度為3米。信號(hào)以差模方式送入信號(hào)線,接收端靈敏度可到達(dá)200mv以上。低速數(shù)據(jù)發(fā)送率為1.50Mb/S,低速功能設(shè)備所允許的誤差為±1.5%(15000ppm)。誤差,主要由下面的幾種情況所引起:負(fù)載電容量的影響;振蕩器上電壓供給的穩(wěn)定性影響;溫度的影響;器件的老化。USB1.0(1996年)速度只有1.5Mbps;USB1.1(1998年),速度提升到12Mbps;USB2.0(2000年4月)速度480Mbps,USB3.0最大傳輸帶寬高達(dá)5.0Gbps,也就是625MB/s,同時(shí)在使用A型的接口時(shí)向下兼容。4.1.2USB系統(tǒng)的接口信號(hào)與電氣特性2.信號(hào)發(fā)送USB總線的物理傳輸介質(zhì)由一根4線的電纜組成,其中兩條(VBus、GND)用于提供設(shè)備工作所需電源。VBus在源端的標(biāo)稱電壓值為+5V,GND為其對(duì)應(yīng)地線。另兩條(V+、V-)為絞線形式的信號(hào)傳輸線,阻抗90Ω。12Mb/S傳輸時(shí),電纜為屏蔽線,最大長(zhǎng)度為5米;1.5Mb/S傳輸時(shí),電纜的信號(hào)線允許是廉價(jià)的非屏蔽非雙絞線,電纜最大長(zhǎng)度為3米。信號(hào)以差模方式送入信號(hào)線,接收端靈敏度可到達(dá)200mv以上。USB驅(qū)動(dòng)整體結(jié)構(gòu)

USB設(shè)備根底構(gòu)成USB設(shè)備在操作系統(tǒng)中被視為一個(gè)文件,一個(gè)設(shè)備擁有一個(gè)或多個(gè)配置,不同的配置適應(yīng)不同的任務(wù),一個(gè)配置擁有一個(gè)或多個(gè)接口,不同的接口實(shí)現(xiàn)不同的邏輯功能,而每個(gè)接口又有0個(gè)或多個(gè)端點(diǎn)。

USB設(shè)備根底構(gòu)成1.設(shè)備端點(diǎn)(Endpoint)USB通信最根本的形式是通過端點(diǎn)實(shí)現(xiàn)的,端點(diǎn)是硬件設(shè)備上具有一定大小的緩沖區(qū)。每個(gè)端點(diǎn)對(duì)應(yīng)一個(gè)可識(shí)別的USB設(shè)備,USB端點(diǎn)傳輸數(shù)據(jù)只能往一個(gè)方向傳送,從主機(jī)到設(shè)備的端點(diǎn)叫輸出端點(diǎn),從設(shè)備到主機(jī)的端點(diǎn)叫輸入端點(diǎn)。幾個(gè)具有相同屬性的端點(diǎn)構(gòu)成一個(gè)USB邏輯設(shè)備,主機(jī)系統(tǒng)為每個(gè)邏輯設(shè)備分配一個(gè)唯一的地址,而設(shè)備中的每個(gè)端點(diǎn)在設(shè)備內(nèi)部有唯一的端點(diǎn)號(hào)。USB設(shè)備在剛接入系統(tǒng)的時(shí)候是沒有設(shè)備地址的,配置工作通過端點(diǎn)0完成,這個(gè)特殊端點(diǎn)既作為輸入端點(diǎn)又作為輸出端點(diǎn)。USB系統(tǒng)通過它端點(diǎn)初始化設(shè)備,并在通信中設(shè)置控制設(shè)備。一個(gè)設(shè)備依照它的實(shí)現(xiàn),可以擁有除端點(diǎn)0外其他假設(shè)干個(gè)端點(diǎn)。低速設(shè)備可擁有2個(gè)可選端點(diǎn),高速設(shè)備最多可具有15個(gè)輸入端點(diǎn)和15個(gè)輸出端點(diǎn)。除端點(diǎn)0之外的端點(diǎn)只有在設(shè)備被系統(tǒng)配置好之后才可以進(jìn)行訪問。USB設(shè)備根底構(gòu)成2.接口(Interface)具有相同屬性的USB端點(diǎn)集合在一起被稱為一個(gè)接口,即一個(gè)邏輯設(shè)備。每個(gè)USB接口只處理一種邏輯連接。有些物理設(shè)備具有多個(gè)接口,例如一個(gè)USB揚(yáng)聲器可包括兩個(gè)接口:一個(gè)USB鍵盤用于按鍵,以及一個(gè)USB音頻流。每個(gè)接口代表了設(shè)備的一個(gè)根本功能,在系統(tǒng)中每個(gè)USB驅(qū)動(dòng)負(fù)責(zé)控制相應(yīng)的一個(gè)接口。有多個(gè)接口的物理設(shè)備需幾個(gè)對(duì)應(yīng)的驅(qū)動(dòng)程序管理。一個(gè)接口可以有多種設(shè)置,由接口的參數(shù)決定。接口的初始狀態(tài)是編號(hào)為O的設(shè)置。通過選擇不同的設(shè)置可以以不同的方式來控制端點(diǎn)。例如為設(shè)備保存大小不同的帶寬,當(dāng)高速設(shè)備接入到一個(gè)低速的USB系統(tǒng)中時(shí),設(shè)備就必須通過使用低速環(huán)境時(shí)的設(shè)置來進(jìn)行通信。3.配置(Config)在接口的根底上,USB接口本身被捆綁成配置。在一個(gè)配置下,一個(gè)端點(diǎn)不會(huì)在接口之間共享,除非端點(diǎn)被同一個(gè)接口的不同設(shè)置使用。在不同配置的端點(diǎn),可無此限制。一個(gè)配置好后,設(shè)備可支持對(duì)配置的有限調(diào)整,如果一個(gè)接口有備選設(shè)置,在配置好后可選擇不同設(shè)置。USB中的描述符USB設(shè)備通過描述符反映他們的屬性。描述符是定義好格式的數(shù)據(jù)結(jié)構(gòu),每一個(gè)描述符以一個(gè)說明本描述符長(zhǎng)度字節(jié)開始,緊跟其后是一個(gè)字節(jié)的描述符類信息。使用描述符使得單個(gè)配置的特性存儲(chǔ)變得簡(jiǎn)明,因?yàn)槊總€(gè)配置可能會(huì)重復(fù)使用其它有相同特性的配置描述符的局部或全部,用這種方法,描述符用一個(gè)關(guān)系數(shù)據(jù)庫來表繪一個(gè)個(gè)的單獨(dú)數(shù)據(jù)記錄。在適當(dāng)?shù)牡胤?,描述符包括了指向字串描述符的引用。字串描述符提供了人能讀懂的信息。字串描述符可有可無,但描述符中的字串指引域是不可少的。如果一個(gè)設(shè)備不支持字串描述符,該域就為0。如果描述符值中的長(zhǎng)度域值少于定義值,此描述符非法,不能被主機(jī)接受。如果返回的描述符中的長(zhǎng)度域值大于定義值,那么過長(zhǎng)局部當(dāng)被忽略,但下一個(gè)描述符的位置由返回長(zhǎng)度而不是實(shí)際長(zhǎng)度來決定。USB中的描述符有端點(diǎn)描述符、接口描述符、配置描述符、設(shè)備描述符、字符串描述符。USB設(shè)備描述符層次結(jié)構(gòu)

USB中的描述符1.端點(diǎn)描述符:每個(gè)接口使用的端點(diǎn)都有自己的描述符,被主機(jī)用來決定每個(gè)節(jié)點(diǎn)的帶寬需求。每個(gè)結(jié)點(diǎn)的描述符總是作為配置描述的一局部返回的,端點(diǎn)0無描述符。偏移量域大小值描述0bLength1數(shù)字此描述表的字節(jié)數(shù)1bDescriptorType1常量配置描述表類型2wTotalLength2數(shù)字此配置信息的總長(zhǎng)(包括配置,接口,端點(diǎn)和設(shè)備類及廠商定義的描述表)4bNumInterfaces1數(shù)字此配置所支持的接口個(gè)數(shù)5bCongfigurationValue1數(shù)字在SetConfiguration請(qǐng)求中用作參數(shù)來選定此配置6iConfiguration1索引描述此配置的字串描述表索引7bmAttributes1位圖配置特性:D7:保留(設(shè)為1)D6:自給電源D5:遠(yuǎn)程喚醒D4…0:保留(設(shè)為1)一個(gè)既用總線電源又有自給電源的設(shè)備會(huì)在MaxPower域指出需要從總線取的電量。并設(shè)置D6為l。運(yùn)行時(shí)期的實(shí)際電源模式可由GetStatus(DEVICE)請(qǐng)求得到8MaxPower1mA在此配置下的總線電源消耗量。以2mA為一個(gè)單位USB中的描述符2.接口描述符:在一個(gè)配置內(nèi)給出一個(gè)接口的信息。如果一個(gè)配置支持不止一個(gè)接口,端點(diǎn)的描述符會(huì)跟在接口描述符后被返回,接口描述符總是作為配置描述符一局部被返回。偏移量域大小值描述0bLengthl數(shù)字此表的字節(jié)數(shù)1bDescriptorTypel常量接口描述表類2bInterfaceNumber1數(shù)字接口號(hào),當(dāng)前配置支持的接口數(shù)組索引(從零開始)3bAlternateSetting1數(shù)字可選設(shè)置的索引值4bNumEndpointsl數(shù)字此接口的端點(diǎn)數(shù)量,為零則說明此接口只用缺省控制管道。5bInterfaceClass1類類值:零值為將來的標(biāo)準(zhǔn)保留。如果此域的值設(shè)為FFH,則此接口類由廠商說明。所有其它的值由USB說明保留6bInterfaceSubClassl子類子類碼:這些值的定義視bInterfaceClass域而定。如果bInterfaceClass域的值為零則此域的值必須為零。bInterfaceClass域不為FFH則所有值由USB所保留7bInterfaceProtocoll協(xié)議協(xié)議碼:如果一個(gè)接口支持設(shè)備類相關(guān)的請(qǐng)求此域的值指出了設(shè)備類說明中所定義的協(xié)議8iInterface1索引描述此接口的字符串描述表的索引值USB中的描述符3.配置描述符:給出了一設(shè)備配置的信息,一個(gè)USB設(shè)備有一個(gè)或多個(gè)配置。每個(gè)配置有一個(gè)或多個(gè)接口。而每個(gè)接口又有0個(gè)或多個(gè)端點(diǎn)。在一個(gè)配置下,一個(gè)端點(diǎn)不會(huì)在接口之間共享,除非端點(diǎn)被同一個(gè)接口的不同配置使用。在不同配置端點(diǎn),可無此限制。一個(gè)配置好后,設(shè)備可支持對(duì)配置的有限調(diào)整,如果一個(gè)接口有備選設(shè)置,在配置好后可選擇不同設(shè)置。

偏移量域大小值描述0bLengthl數(shù)字此描述表的字節(jié)數(shù)1bDescriptorTypel常量配置描述表類型2wTotalLength2數(shù)字此配置信息的總長(zhǎng)(包括配置,接口,端點(diǎn)和設(shè)備類及廠商定義的描述表)4bNumInterfacesl數(shù)字此配置所支持的接口個(gè)數(shù)5bCongfigurationValue1數(shù)字在SetConfiguration()請(qǐng)求中用作參數(shù)來選定配置6iConfigurationl索引描述此配置的字串描述表索引7bmAttributes1位圖配置特性:D7:保留(設(shè)為一)D6:自給電源D5:遠(yuǎn)程喚醒D4...0:保留(設(shè)為一)一個(gè)既用總線電源又有自給電源的設(shè)備會(huì)在MaxPower域指出需要從總線取的電量。并設(shè)置D6為一。運(yùn)行時(shí)期的實(shí)際電源模式可由GetStatus(DEVICE)請(qǐng)求得到8MaxPower1mA在此配置下的總線電源耗費(fèi)量。以2mA為一個(gè)單位USB中的描述符4.設(shè)備描述符:給出USB設(shè)備的一般信息,包括對(duì)設(shè)備及所有設(shè)備配置起全程作用的信息。偏移量域大小值描述0bLength1數(shù)字此描述表的字節(jié)數(shù)lbDecriptorType1常量描述表種類為設(shè)備2bcdUSB2BCD碼此設(shè)備與描述表兼容的USB設(shè)備說明版本號(hào)(BCD碼)4bDeviceClass1類設(shè)備類碼:如果此域的值為0則一個(gè)設(shè)置下每個(gè)接口指出它自己的類,并且每個(gè)接口各自獨(dú)立工作。如果此域的值處于1到FEH之間,設(shè)備在不同的接口上支持不同的類。此值指出了,這些接口集體的類定義。此域設(shè)為FFH,則此設(shè)備的類由廠商定義5bDeviceSubClassl子類子類碼值的具體含義根據(jù)bDeviceClass域來看。如bDeviceClass域?yàn)榱悖擞蛞岔殲榱?。如bDeviceClass域?yàn)镕FH,此域的所有值保留6bDevicePortocol1協(xié)議協(xié)議碼的值視bDeviceClass和bDeviceSubClass的值而定。設(shè)備支持設(shè)備基礎(chǔ)上的類相關(guān)的協(xié)議,此碼標(biāo)志了設(shè)備類說明上的值。此域?yàn)榱悖O(shè)備不在設(shè)備基礎(chǔ)上支持設(shè)備類相關(guān)的協(xié)議。它可能在接口基礎(chǔ)上支持設(shè)備類相關(guān)的協(xié)議。此域的值為FFH,此設(shè)備使用廠商定義的協(xié)議7bMaxPacketSize01數(shù)字端點(diǎn)0的最大包大小(僅8,16,32,64為合法值)8idVendor2ID廠商標(biāo)志(由USB標(biāo)準(zhǔn)賦值)10idProduct2ID產(chǎn)品標(biāo)志(由廠商賦值)12bcdDevice2BCD碼設(shè)備發(fā)行號(hào)(BCD碼)14iManufacturer1索引描述廠商信息的字串的索引。15iProductl索引描述產(chǎn)品信息的字串的索引。16iSerialNumber1索引描述設(shè)備序列號(hào)信息的字串的索引。17bNumConfigurationsl數(shù)字可能的設(shè)置數(shù)USB中的描述符5.字符串描述符:可有可無的。如前所述,設(shè)備無字串描述符,其它描述表中有關(guān)字串描述符的索引都為0。偏移量域大小值描述0bLengthlN+2此描述表的字節(jié)數(shù)lbDescriptorTypel常量字串描述表類型2wLANGID[0]2數(shù)字語言標(biāo)識(shí)(LANGID)碼0……………NwLANGID[x]2數(shù)字語言標(biāo)識(shí)(LANGID)碼X2.信號(hào)發(fā)送USB信號(hào)發(fā)送的最大輸入波形由于USB設(shè)備上的輸入保護(hù)設(shè)備可能互相排斥,因此當(dāng)觀察數(shù)據(jù)的輸入端口時(shí),可能發(fā)現(xiàn)由電壓生成器產(chǎn)生的信號(hào)波形可能會(huì)變形??拷O(shè)備的USB連接器上的D+或D_插口2.信號(hào)發(fā)送任何驅(qū)動(dòng)狀態(tài)下,USB設(shè)備必須能接收上圖所示波形。波形從一個(gè)輸出阻抗為39Ω的電壓源直接進(jìn)入每個(gè)USB數(shù)據(jù)口。高速USB設(shè)備的連接是通過阻抗為90Ω±15%,最大單路時(shí)延為26ns的屏蔽雙絞線電纜進(jìn)行,其最大速率為12Mb/s,并且每個(gè)驅(qū)動(dòng)器的阻抗必須在28Ω~44Ω之間。低速USB設(shè)備在插口端必須要有一個(gè)帶有串行A口連接器的可控制電纜,速率為1.5Mb/s。當(dāng)電纜與設(shè)備相連時(shí),在D+/D-線上必須要有一個(gè)200~450PF的單終端電容器。低速電纜的傳播時(shí)延必須小于18ns,從而保證信號(hào)響在其上升沿或下降沿的第一個(gè)中點(diǎn)處產(chǎn)生,以允許電纜與一塊電容器相連。低速USB設(shè)備時(shí)序低速USB設(shè)備時(shí)序低速驅(qū)動(dòng)器信號(hào)波形驅(qū)動(dòng)器信號(hào)端口經(jīng)過信號(hào)端的標(biāo)準(zhǔn)輸出電平,并有最小映象和阻尼高速USB設(shè)備的連接時(shí)序高速USB設(shè)備的連接時(shí)序驅(qū)動(dòng)器信號(hào)端口

接收器信號(hào)端口

單路長(zhǎng)電纜時(shí)延單電纜時(shí)延后經(jīng)過信號(hào)端口的標(biāo)準(zhǔn)輸入電平高速信號(hào)波形

高、低速USB設(shè)備在集線器的終端位置及其所連的功能設(shè)備高、低速USB設(shè)備在集線器的終端位置及其所連的功能設(shè)備差分信號(hào)技術(shù)傳統(tǒng)的傳輸方式大多使用“正信號(hào)”或者“負(fù)信號(hào)”二進(jìn)制表達(dá)機(jī)制,信號(hào)利用單線傳輸,用不同的信號(hào)電平范圍來分別表示1和0,它們之間有一個(gè)臨界值,在數(shù)據(jù)傳輸過程中受到中低強(qiáng)度的干擾,上下電平不會(huì)突破臨界值,信號(hào)傳輸可以正常進(jìn)行。但如果遇到強(qiáng)干擾,上下電平突破臨界值,由此造成數(shù)據(jù)傳輸出錯(cuò)。一般說來,總線頻率越高,線路間的電磁干擾就越厲害,數(shù)據(jù)傳輸失敗的發(fā)生機(jī)率也就越高。差分信號(hào)技術(shù)必須使用兩條線路才能表達(dá)一個(gè)比特位,用兩條線路傳輸信號(hào)的壓差作為判斷1還是0的依據(jù),具有極強(qiáng)的抗干擾性。倘假設(shè)遭受外界強(qiáng)烈干擾,兩條線路對(duì)應(yīng)的電平同樣會(huì)出現(xiàn)大幅度提升或降低,但二者的電平改變方向和幅度幾乎相同,電壓差值可始終保持相對(duì)穩(wěn)定,因此數(shù)據(jù)的準(zhǔn)確性并不會(huì)因干擾噪聲而降低。USB系統(tǒng)能自動(dòng)檢測(cè)到USB設(shè)備連接,并識(shí)別出其采用的數(shù)據(jù)傳輸速率。USB采用在D+或D-線上增加上拉電阻的方法來識(shí)別低速和全速設(shè)備。當(dāng)主控制器或集線器的下行端口上沒有USB設(shè)備連接時(shí),其D+和D-線上的下拉電阻使得這兩條數(shù)據(jù)線的電壓都是近地的(0V);當(dāng)?shù)退?全速設(shè)備連接以后,電流流過由集線器的下拉電阻和設(shè)備在D+/D-的上拉電阻構(gòu)成的分壓器。由于下拉電阻阻值15KΩ,上拉電阻阻值1.5KΩ,在D+/D-線上會(huì)出現(xiàn)大小為(Vcc*15/(15+1.5))的直流高電平電壓。USB主機(jī)探測(cè)到D+/D-線的電壓接近高電平,而其它的線保持接地時(shí),就知道全速/低速設(shè)備已經(jīng)連接。高速設(shè)備在連接起始時(shí)需要以全速速率與主機(jī)進(jìn)行通信,以完成其配置操作,這時(shí)需要在D+線上連接1.5KΩ的上拉電阻。當(dāng)高速設(shè)備正常工作時(shí),如采用高速傳輸?shù)脑?,D+線不可上拉;但如果仍采用全速傳輸,那么在D+線上必須使用上拉電阻。所以,為識(shí)別出高速設(shè)備,需在上拉電阻和D+線間連接一個(gè)由軟件控制的開關(guān),它通常被集成在USB設(shè)備接口芯片的內(nèi)部。USB信號(hào)傳送USB數(shù)據(jù)收發(fā)器包含發(fā)送數(shù)據(jù)所需的差模輸出驅(qū)動(dòng)器和接收數(shù)據(jù)用的差模輸入接收器。輸出信號(hào)時(shí),差模輸出驅(qū)動(dòng)器向USB電纜傳送信號(hào)。信號(hào)的低輸出狀態(tài),驅(qū)動(dòng)器穩(wěn)態(tài)輸出值必須小于0.3V,且要承擔(dān)1.5KΩ的負(fù)載加到3.6V電源的灌電流。信號(hào)的高輸出狀態(tài),驅(qū)動(dòng)器穩(wěn)態(tài)輸出值必須大于2.8V,且要承擔(dān)15KΩ的負(fù)載到地的拉電流。傳輸數(shù)據(jù)時(shí),驅(qū)動(dòng)器輸出是兩個(gè)相差180度的信號(hào)。即一個(gè)輸出高電平,另一個(gè)為低電平。接收器檢測(cè)到兩條線之間的電壓差,當(dāng)D+比D-高時(shí),信號(hào)被定義為差?!?”;當(dāng)D-比D+高時(shí),信號(hào)被定義為差模“0”。驅(qū)動(dòng)器輸出還支持三態(tài)輸出,以保證可以進(jìn)行雙向半雙工通信。同時(shí)還需高阻抗來將那些正在進(jìn)行熱插入操作,或已經(jīng)連接了但電源卻沒有接通的下游設(shè)備同端口隔離開來。當(dāng)兩個(gè)差模數(shù)據(jù)輸入,以地電位為參考,D+和D-至少在0.8V到2.5V〔此為允許的共模電壓范圍〕之間時(shí),接收器具有的靈敏度大于200mV。在沒有損壞,并以本地地電位為參考的條件下,接收器所能承受的穩(wěn)態(tài)輸入電壓是-0.5V到3.8V之間。每一條信號(hào)線都必須有一個(gè)單端接收器,這些接收器必須有一個(gè)位于0.8V到2.0V之間〔TTL電平〕的開關(guān)閥值電壓(稱為接收器閥值電壓VSE)。USB信號(hào)傳送數(shù)據(jù)傳輸是由差模信號(hào)來實(shí)現(xiàn)的。在接收器看來,如果數(shù)據(jù)線的D+至少比D-高200mV就代表一個(gè)差?!?”,而一個(gè)差模“0”那么由D-至少比D+高200mV來表示。信號(hào)的交叉點(diǎn)必須位于1.3V和2.0V之間。數(shù)據(jù)的J和K狀態(tài)是系統(tǒng)中用于差模數(shù)據(jù)通信的兩個(gè)邏輯電平。差模信號(hào)是在數(shù)據(jù)線的信號(hào)交叉點(diǎn)處進(jìn)行測(cè)量的。只要信號(hào)的交叉電平位于共模范圍之內(nèi),差模數(shù)據(jù)信號(hào)就與信號(hào)的交叉電平無關(guān)。當(dāng)總線不處在差模信號(hào)方式時(shí),數(shù)據(jù)線必須處在單端接收器開關(guān)閥值〔VSE〕范圍〔0.8V到2.0V之間〕之外才有效,如“空閑”和“重新開始”狀態(tài)。注意,空閑和重新開始狀態(tài)在邏輯上分別等同于J和K狀態(tài)。而全速率的J和K狀態(tài)正好與低速率的狀態(tài)相反。USB信號(hào)電平規(guī)定如下表所示:〔2〕數(shù)據(jù)信號(hào)數(shù)據(jù)包開始信號(hào)發(fā)送波形數(shù)據(jù)信號(hào)的發(fā)送通過控制D+和D-線從空閑態(tài)到相反的邏輯電平(K態(tài)),就可以實(shí)現(xiàn)源端口的包發(fā)送(SOP:StandardOperationProcedure

[標(biāo)準(zhǔn)作業(yè)程序])。同步字中的第一位代表了這種在電平上的轉(zhuǎn)換。當(dāng)它的重新發(fā)送時(shí)間低于±5ns時(shí),集線器必須對(duì)SOP中第一位的寬度變化有所限制??梢酝ㄟ^使用具有延遲輸出使能的集線器來實(shí)現(xiàn)數(shù)據(jù)的匹配,這樣可以使數(shù)據(jù)失真減小到最小。SE0態(tài)表示包發(fā)送結(jié)束(EOP[ENDOFPRODUCTION]),可以通過控制D+和D-兩位時(shí)到達(dá)SE0態(tài),然后控制D+和D-線一位時(shí)后到達(dá)J態(tài),就可實(shí)現(xiàn)EOP信號(hào)的發(fā)送。從SE0態(tài)到J態(tài)的變化表示接收端包發(fā)送的結(jié)束。J態(tài)持續(xù)一個(gè)位時(shí),然后D+和D-上的輸出驅(qū)動(dòng)器均處于高阻抗?fàn)顟B(tài),總線尾端的電阻此時(shí)控制總線處于空閑態(tài)。數(shù)據(jù)包結(jié)束信號(hào)發(fā)送波形總線空閑包的第一位包的最后一位

EOP的SE0部分EOP端總線驅(qū)動(dòng)到J態(tài)總線流動(dòng)總線空閑總線狀態(tài)信號(hào)電平開始端的源連接器(一位時(shí)端)終端的目標(biāo)連接器需要條件接受條件差分的“1”D+>Voh(min)D-<Vol(max)(D+)-(D-)>200mv(D+)>Vih(min)(D+)-(D-)>200mv差分的“0”D->Voh(min)D+<Vol(max)(D+)-(D+)>200mvD->Vih(min)(D-)-(D+)>200mv單終端“0”(SE0)D+和D-<Vol(max)D+和D-<Vil(max)D+和D-<Vih(min)數(shù)據(jù)J態(tài):高速低速差分的“0”差分的“1”差分的“0”差分的“1”數(shù)據(jù)K態(tài):高速低速差分的“1”差分的“0”差分的“1”差分的“0空閑狀態(tài):高速低速N.A.D->Vihz(min)D+>Vil(max)D+>Vihz(min)D-<Vil(max)D->Vihz(min)D+<Vih(min)D+>Vihz(min)D-<Vih(min)喚醒狀態(tài)數(shù)據(jù)K狀態(tài)數(shù)據(jù)K狀態(tài)包開始(SOP)數(shù)據(jù)線從空閑態(tài)轉(zhuǎn)到K態(tài)包結(jié)束(EOP)SE0近似地為2位時(shí)其后僅接著1位時(shí)的JSE0≥1位時(shí),其后僅接著一位時(shí)的J態(tài)SE0≥1位時(shí),其后僅接著J態(tài)段開連接(在下行端口處)N.A.SE0持續(xù)時(shí)間大于等于2.5微秒連接(在上行端口處)N.A.空閑態(tài)持續(xù)時(shí)間大于等于2毫秒空閑態(tài)持續(xù)時(shí)間大于等于2.5微秒復(fù)位D+和D-小于Vol(max)的持續(xù)時(shí)間大于等于10毫秒D+和D-小于Vil(max)的持續(xù)時(shí)間大于等于10毫秒D+和D-小于Vil(max)的持續(xù)時(shí)間大于等于2.5微秒

USB信號(hào)電平

〔2〕復(fù)位信號(hào)復(fù)位:將一個(gè)信號(hào)從掛起態(tài)喚醒。集線器信號(hào)通過控制端口上的持久的SE0態(tài)來實(shí)現(xiàn)對(duì)下形端口的復(fù)位。復(fù)位信號(hào)去除后,設(shè)備都將處于缺省狀態(tài)。根據(jù)USB系統(tǒng)軟件的需求,復(fù)位信號(hào)可在任一個(gè)集線器或主機(jī)的控制端口產(chǎn)生,復(fù)位信號(hào)最小持續(xù)時(shí)間為10ms。復(fù)位后,集線器端口將處于能動(dòng)狀態(tài)。USB系統(tǒng)軟件和主機(jī)控制器必須確保發(fā)送到根端口的復(fù)位信號(hào)持續(xù)時(shí)間足夠長(zhǎng),以便通知當(dāng)前正試圖進(jìn)行喚醒操作的各下行設(shè)備。根端口產(chǎn)生的復(fù)位信號(hào)的持續(xù)時(shí)間應(yīng)為50ms,但并不要求它一直是延續(xù)的。如果復(fù)位信號(hào)不是連續(xù)的,那么各間斷的復(fù)位信號(hào)間的時(shí)間間隔應(yīng)小于3ms。如果設(shè)備上行端口SE0態(tài)持續(xù)時(shí)間超過2.5us,那么把該信號(hào)作為復(fù)位信號(hào)處理。在復(fù)位信號(hào)發(fā)送結(jié)束前,它必須已產(chǎn)生作用。端口處于使能狀態(tài)后,集線器傳播一個(gè)活動(dòng)信號(hào)到新復(fù)位端口。連在該端口的設(shè)備必須能識(shí)別總線活動(dòng)性,并能防止被掛起。在復(fù)位信號(hào)去除后的10ms的復(fù)位恢復(fù)時(shí)間后,集線器必須能接收所有集線器請(qǐng)求,設(shè)備也必須能接收一個(gè)SetAddress()請(qǐng)求。如果接收這些請(qǐng)求失敗,那么設(shè)備將不能被USB系統(tǒng)軟件所識(shí)別?!?〕掛起信號(hào)所有的設(shè)備都必須能支持掛起狀態(tài),并可從任一電平狀態(tài)進(jìn)入掛起態(tài)。當(dāng)設(shè)備發(fā)現(xiàn)其上行總線上的空閑態(tài)持續(xù)時(shí)間超3.0ms時(shí),便進(jìn)入掛起態(tài)。當(dāng)設(shè)備的所有端口上的總線不活動(dòng)時(shí)間不超過10ms后,設(shè)備必須被真正的掛起,此時(shí)它僅從總線上獲得掛起電流。如果任一其它總線交通缺乏時(shí),SOF令牌將在每幀中出現(xiàn)一次,以防止高速設(shè)備被掛起。當(dāng)任一低速設(shè)備交通缺乏時(shí),在SOF令牌出現(xiàn)的每一幀中至少有一個(gè)低速設(shè)備處于活動(dòng)態(tài),以防止它們不被掛起。處在掛起狀態(tài)的設(shè)備必須繼續(xù)為它的D+(高速)或D-(低速)上的Rpu電阻提供電壓,維持一個(gè)空閑態(tài),這樣上形集線器才能為設(shè)備維持正確的連結(jié)狀態(tài)。全局掛起:總線上沒有通信需要時(shí),用到全局掛起,所有總線都處在掛起狀態(tài)。主機(jī)通過中止它所有的傳送(包括SOF令牌)來發(fā)送開始全局掛起信號(hào)。當(dāng)總上的每個(gè)設(shè)備識(shí)別總線的空閑態(tài)持續(xù)適當(dāng)時(shí)間時(shí),它將進(jìn)入掛起狀態(tài)。局部掛起:向集線器端口發(fā)送SetPortFeature(PORT-SUSPEND),使與其相連的總線局部被掛起,此時(shí)設(shè)備適當(dāng)時(shí)延后進(jìn)入掛起狀態(tài)。(4)喚醒信號(hào)處在掛起狀態(tài)的設(shè)備,當(dāng)它的上行端口接收到任一非空閑信號(hào)時(shí),它的操作將被喚醒。如果設(shè)備的遠(yuǎn)程喚醒功能被USB系統(tǒng)軟件開啟時(shí),它將自動(dòng)發(fā)信號(hào)給系統(tǒng)來喚醒操作。喚醒信號(hào)由主機(jī)或設(shè)備使用,以使一個(gè)掛起的總線段回到活動(dòng)態(tài)。集線器在喚醒信號(hào)的生成和傳播中起了十分重要的作用。USB系統(tǒng)軟件必須提供10ms的喚醒恢復(fù)時(shí)間,在這段時(shí)間內(nèi),它將不對(duì)與被喚醒的局部總線相連的任一設(shè)備進(jìn)行操作。端口的中斷與連接也可以使集線器發(fā)送一個(gè)復(fù)位信號(hào),從而喚醒系統(tǒng),但僅當(dāng)集線器具有遠(yuǎn)程喚醒使能時(shí),這些事件才能引起集線器發(fā)送喚醒信號(hào)。3.數(shù)據(jù)的編碼與解碼在包傳送時(shí),USB數(shù)據(jù)編碼格式稱為Non-ReturntoZeroInvertedwhitbitstuffing〔ZRZI無回零反向碼〕。它可以確保收發(fā)數(shù)據(jù)不需要每個(gè)字節(jié)發(fā)送一個(gè)獨(dú)立的時(shí)鐘信號(hào),或以StartandStop位來保持與發(fā)送器的同步通信。在NRZI編碼的數(shù)據(jù)格式中,USB定義邏輯0為電壓改變,邏輯1為電壓保持不變,傳送的數(shù)據(jù)低位先送出。NRZI數(shù)據(jù)編碼位插入:在數(shù)據(jù)流中每六個(gè)連續(xù)的‘1’后插入一個(gè)‘0’,從而強(qiáng)迫NRZI碼發(fā)生變化。EOP特別說明:4.1.3USB流類型與傳輸類型USB層次結(jié)構(gòu)USB層次結(jié)構(gòu)在HSOT端,應(yīng)用軟件〔ClientSW〕不能直接訪問USB總線,而必須通過USB系統(tǒng)軟件和USB主機(jī)控制器來訪問USB總線,在USB總線上和USB設(shè)備進(jìn)行通訊。從邏輯上可以分為功能層、設(shè)備層和總線接口層三個(gè)層次。其中功能層完成功能級(jí)的描述、定義和行為;設(shè)備級(jí)那么完成從功能級(jí)到傳輸級(jí)的轉(zhuǎn)換,把一次功能級(jí)的行為轉(zhuǎn)換為一次一次的根本傳輸;USB總線接口層那么處理總線上的Bit流,完成數(shù)據(jù)傳輸?shù)奈锢韺訉?shí)現(xiàn)和總線管理。途中黑色箭頭代表真實(shí)的數(shù)據(jù)流,灰色箭頭代表邏輯上的通訊。物理上,USB設(shè)備通過分層的星型總線連接到HOST,但在邏輯上HUB是透明的,各USB設(shè)備和HOST直接連接,和HOST上的應(yīng)用軟件形成一對(duì)一的關(guān)系。各應(yīng)用軟件-功能設(shè)備對(duì)之間的通訊相互獨(dú)立,應(yīng)用軟件通過USB設(shè)備驅(qū)動(dòng)程序(USBD)發(fā)起IRQ請(qǐng)求,請(qǐng)求數(shù)據(jù)傳輸。主機(jī)控制器驅(qū)動(dòng)程序〔HCD〕接收IRQ請(qǐng)求,并解析成為USB傳輸和傳輸事務(wù)〔Transaction〕,并對(duì)USB系統(tǒng)中的所有傳輸事務(wù)進(jìn)行任務(wù)排定〔因?yàn)榭赡芡瑫r(shí)有多個(gè)應(yīng)用軟件發(fā)起IRQ請(qǐng)求〕。主機(jī)控制器〔HostController〕執(zhí)行排定的傳輸任務(wù),在同一條共享的USB總線上進(jìn)行數(shù)據(jù)包的傳輸。USB系統(tǒng)中數(shù)據(jù)的傳輸,宏觀的看來是在HOST和USB功能設(shè)備之間進(jìn)行;微觀的看是在應(yīng)用軟件的Buffer和USB功能設(shè)備的端點(diǎn)之間進(jìn)行。一般來說端點(diǎn)都有Buffer,可以認(rèn)為USB通訊就是應(yīng)用軟件Buffer和設(shè)備端點(diǎn)Buffer之間的數(shù)據(jù)交換,交換的通道稱為管道。應(yīng)用軟件通過和設(shè)備之間的數(shù)據(jù)交換來完成設(shè)備的控制和數(shù)據(jù)傳輸。通常需要多個(gè)管道來完成數(shù)據(jù)交換,因?yàn)橥还艿乐恢С忠环N類型的數(shù)據(jù)傳輸。用在一起來對(duì)設(shè)備進(jìn)行控制的假設(shè)干管道稱為設(shè)備的接口,這就是端點(diǎn)、管道和接口的關(guān)系。USB層次結(jié)構(gòu)USB物理設(shè)備:USB上的一種硬件,可運(yùn)行一些用戶程序;USB客戶軟件:為特定的USB設(shè)備而在主機(jī)上運(yùn)行的軟件;USB系統(tǒng)軟件:在操作系統(tǒng)中支持USB,由操作系統(tǒng)提供;USB主機(jī)控制器:總線在主機(jī)方面的接口,軟件和硬件總和。為了描述和管理USB通信,需要首先引入以下重要的概念:總線拓樸(BusTopology):USB的根本物理組成、根本邏輯組成,以及各組成局部之間的相互關(guān)系。通信流模型(CommunicationFlowModels):描述主機(jī)與設(shè)備如何通過USB通信,以及通信所用的四種通信類型??偩€訪問管理(BUSAccess):主機(jī)面對(duì)大量的USB設(shè)備的各種通信要求。USB通信流〔1〕設(shè)備端點(diǎn):唯一識(shí)別USB設(shè)備的端口。一系列相互獨(dú)立的端點(diǎn)在一起構(gòu)成了USB邏輯設(shè)備,每個(gè)邏輯設(shè)備有一個(gè)唯一的地址。這個(gè)地址是在設(shè)備連上主機(jī)時(shí),由主機(jī)分配的。一個(gè)端點(diǎn)的特性決定了它與客戶軟件進(jìn)行的傳送的類型,其特性如下:端點(diǎn)的總線訪問頻率要求;端點(diǎn)的總線延遲要求;端點(diǎn)的帶寬要求;端點(diǎn)的端點(diǎn)號(hào);對(duì)錯(cuò)誤處理的要求;端點(diǎn)能接收或發(fā)送的包的最大長(zhǎng)度;端點(diǎn)的傳送類型;端點(diǎn)與主機(jī)的數(shù)據(jù)傳送方向。USB通信流〔1〕設(shè)備端點(diǎn):對(duì)0號(hào)端點(diǎn)的要求:所有USB設(shè)備都需要實(shí)現(xiàn)一個(gè)缺省的控制方法。這種方法將端點(diǎn)0作為輸入端點(diǎn),同時(shí)也將端點(diǎn)0作為輸出端點(diǎn)。USB系統(tǒng)用這個(gè)缺省方法初始化及一般地使用邏輯設(shè)備(即設(shè)置此設(shè)備)。缺省控制通道支持了對(duì)控制的傳送,一旦設(shè)備接上,并加電,且又收到一個(gè)總線復(fù)位命令,端點(diǎn)0就是可訪問的了。對(duì)非0號(hào)端點(diǎn)的要求:設(shè)備可以有除0以外的其它端點(diǎn),這取決于這些設(shè)備的實(shí)現(xiàn)。低速設(shè)備在0號(hào)輸入及輸出端點(diǎn)外,只能有2個(gè)額外的可選端點(diǎn)。而高速設(shè)備可具有的額外端點(diǎn)數(shù)僅受限于協(xié)議的定義(協(xié)議中規(guī)定,最多15個(gè)額外的輸入端點(diǎn)和最多15個(gè)額外的輸出端點(diǎn))。除缺省控制通道的缺省端點(diǎn)外,其它端點(diǎn)只有在設(shè)備被設(shè)置后才可使用,對(duì)設(shè)備的設(shè)置是設(shè)備設(shè)置過程的一局部?!?〕通道:設(shè)備上的一個(gè)端點(diǎn)和主機(jī)上軟件之間的聯(lián)系。有兩種不同的且互斥的通道通信格式:流(Stream):指不具有USB定義的格式的數(shù)據(jù)流。消息(Message):指具有某種USB定義的格式的數(shù)據(jù)流。USB不解釋在通道中傳送的數(shù)據(jù)的內(nèi)容。消息通道要求數(shù)據(jù)組織成USB定義的格式,但它的內(nèi)容,USB是不管的。以下概念與通道相關(guān):對(duì)USB總線訪問的申請(qǐng)(claim),帶寬的使用情況;傳送類型;與通道相連的端點(diǎn)的特性,如端點(diǎn)的數(shù)據(jù)傳送方向,最大數(shù)據(jù)凈負(fù)荷區(qū)長(zhǎng)度。【數(shù)據(jù)凈負(fù)荷是總線處理事務(wù)(transaction)中,數(shù)據(jù)包中數(shù)據(jù)區(qū)的數(shù)據(jù)】。由兩個(gè)0號(hào)端點(diǎn)組成的通道叫缺省控制通道。一旦設(shè)備加電并復(fù)位后,此通道即可使用。其它通道只在設(shè)備被設(shè)置后才存在。USB系統(tǒng)軟件在決定設(shè)備身份、設(shè)置要求和設(shè)置設(shè)備時(shí)使用缺省控制通道。設(shè)備被設(shè)置后,設(shè)備的特定軟件還可使用該通道。USB系統(tǒng)軟件保存缺省控制通道的擁有權(quán),協(xié)調(diào)其它客戶軟件對(duì)通道的使用??蛻糗浖话愣纪ㄟ^I/O請(qǐng)求包(IRP)來要求數(shù)據(jù)傳送,而IRP的細(xì)節(jié)是由操作系統(tǒng)來指定的。IRP的細(xì)節(jié)由操作系統(tǒng)指定。客戶軟件提出與設(shè)備上的端點(diǎn)建立某個(gè)方向的數(shù)據(jù)傳送的請(qǐng)求,IRP就可簡(jiǎn)單地理解為這個(gè)請(qǐng)求。一個(gè)客戶軟件可以要求一個(gè)通道回送所有的IRP。當(dāng)關(guān)于IRP的總線傳送結(jié)束時(shí),無論它是成功地完成,還是出現(xiàn)錯(cuò)誤,客戶軟件都將獲得通知說IRP完成了。如果通道上沒有正在傳送的數(shù)據(jù),也沒有數(shù)據(jù)想使用此通道,這個(gè)通道就處于閑置狀態(tài)。主機(jī)控制器對(duì)它不采取任何動(dòng)作。如果一個(gè)非同步通道遇到一個(gè)迫使它給主機(jī)發(fā)STALL的情況,或者在任一個(gè)IRP中發(fā)現(xiàn)3個(gè)總線錯(cuò)誤。這個(gè)IRP將被中止。其它所有突出的IRP也一同被中止。通道不再接收任何IRP,直到客戶軟件從這個(gè)情況中恢復(fù)過來(恢復(fù)的方式取決于軟件的實(shí)現(xiàn)),而且成認(rèn)這個(gè)中止或出現(xiàn)的錯(cuò)誤,并發(fā)一個(gè)USBDCall來說明它已成認(rèn)。一個(gè)適宜的狀態(tài)信息將通知客戶軟件IRP的結(jié)果———出錯(cuò)或中止。一個(gè)IRP可能會(huì)需要多個(gè)數(shù)據(jù)凈荷區(qū)來傳遞數(shù)據(jù)。這些數(shù)據(jù)區(qū)除最后一個(gè)外,都具有數(shù)據(jù)凈荷區(qū)的最大長(zhǎng)度,最后一個(gè)數(shù)據(jù)區(qū)包含了這個(gè)IRP中剩下的數(shù)據(jù)。(可參見關(guān)于傳送類型的介紹,以獲得更詳細(xì)的了解)。對(duì)這樣的一個(gè)IRP,短包(也就是說未到達(dá)最大長(zhǎng)度的數(shù)據(jù)區(qū))在數(shù)據(jù)輸入時(shí)無法填完IRP數(shù)據(jù)緩沖區(qū)。這可能會(huì)有二種不同解釋,它依賴于客戶軟件的情況:如果該客戶軟件可以接受變長(zhǎng)的IRP,那么,IRP數(shù)據(jù)緩沖區(qū)未被填滿,可以看作一個(gè)分限,說明一個(gè)IRP已成功結(jié)束,主機(jī)控制器可以準(zhǔn)備接收下一個(gè)IRP了。如果該客戶軟件只收定長(zhǎng)的IRP。那么,我們認(rèn)為發(fā)生了一個(gè)錯(cuò)誤,這IRP將被中止,通道也會(huì)被阻塞,通道上的數(shù)據(jù)都中止。因?yàn)閷?duì)這兩種情況,主機(jī)控制器會(huì)有不同的反響,而且采取何種措施不由控制器決定,所以對(duì)每個(gè)IRP都必須說明客戶軟件的具體要求。通道的端點(diǎn)可以用NAK信號(hào)來通知主機(jī)自己正忙,NAK不能作為向主機(jī)反還IRP的中止條件。在一個(gè)給定的IRP處理過程中,可以遇到任意多個(gè)NAK,NAK不構(gòu)成錯(cuò)誤。流通道流通道中的數(shù)據(jù)是流的形式,也就是該數(shù)據(jù)的內(nèi)容不具有USB要求的結(jié)構(gòu)。數(shù)據(jù)從流通道一端流進(jìn)的順序與它們從流通道另一端流出時(shí)的順序是一樣的,流通道中的通信流總是單方向的。在流通道中傳送的數(shù)據(jù),USB認(rèn)為它來自同一個(gè)客戶。USB系統(tǒng)軟件不能夠提供使用同一流通道的多個(gè)客戶的同步控制。在流通道中傳送的數(shù)據(jù)遵循先進(jìn)先出原那么。流管流只能連到一個(gè)固定號(hào)碼的端點(diǎn)上,或者流進(jìn),或者流出。(這個(gè)號(hào)碼是由協(xié)議層決定的)。而具有這個(gè)號(hào)碼的另一個(gè)方向的端點(diǎn)可以被分配給其它流通道。流通道支持同步傳送,中斷傳送和批傳送,這些在稍后的章節(jié)會(huì)進(jìn)一步解釋。消息通道首先,主機(jī)向USB設(shè)備發(fā)出一個(gè)請(qǐng)求;接著,就是數(shù)據(jù)的傳送;最后,是一個(gè)狀態(tài)階段。為能夠容納請(qǐng)求/數(shù)據(jù)/狀態(tài)的變化,消息通道要求數(shù)據(jù)有一個(gè)格式,保證命令能夠被可靠地傳送和確認(rèn)。消息通道允許雙方向的信息流,雖然大多數(shù)的通信流是單方向的。特別地,缺省控制通道也是一個(gè)消息通道。USB系統(tǒng)軟件不會(huì)讓多個(gè)請(qǐng)求同時(shí)要求同一個(gè)消息通道。設(shè)備的每個(gè)消息通道在一個(gè)時(shí)間段內(nèi),只能為一個(gè)消息請(qǐng)求效勞,多個(gè)客戶軟件可以通過缺省控制通道發(fā)出它們的請(qǐng)求,但這些請(qǐng)求到達(dá)設(shè)備的次序是按先進(jìn)先出的原那么的。設(shè)備可以在數(shù)據(jù)傳送階段和狀態(tài)階段控制信息流,取決于這些設(shè)備與主機(jī)交互的能力。正常情況下,在上一個(gè)消息未被處理完之前,是不能向消息通道發(fā)下一個(gè)消息的。但在有錯(cuò)誤發(fā)生的情況下,主時(shí)機(jī)取消這次消息傳送,并且不等設(shè)備將已收的數(shù)據(jù)處理完,就開始下一次的消息傳送。在操作通道的軟件看來,一個(gè)IRP中的錯(cuò)誤,使這個(gè)IRP被取消,并且所有正排隊(duì)等待的IRP一同也被取消。申請(qǐng)這個(gè)IRP的客戶被通知IRP結(jié)束,且有出錯(cuò)提示。消息通道后有兩個(gè)相同號(hào)碼端點(diǎn),一個(gè)用于輸入,一個(gè)用于輸出。消息通道支持控制傳送。2.USB傳輸類型USB規(guī)定的數(shù)據(jù)格式信息流的方向數(shù)據(jù)凈荷區(qū)的長(zhǎng)度限制總線訪問的限制延時(shí)的限制出錯(cuò)處理2.USB傳輸類型USB的傳輸類型:控制(Control)、同步(isochronous)、中斷(interrupt)、大量(bulk),傳輸主動(dòng)權(quán)在host邊。如果從硬件開始來設(shè)計(jì)系統(tǒng),需要正確選擇傳輸方式,而書寫驅(qū)動(dòng)程序,就只需要弄清楚USB采用何種工作方式就行了。1控制(Control)方式傳輸:雙向傳輸,數(shù)據(jù)量通常較小,系統(tǒng)軟件主要進(jìn)行查詢、配置和給USB設(shè)備發(fā)送通用命令。該方式可以包括8、16、32和64字節(jié)的數(shù)據(jù),依賴于設(shè)備和傳輸速度。典型地應(yīng)用是主機(jī)和USB外設(shè)的端點(diǎn)(Endpoint)0的傳輸。2同步(isochronous)方式傳輸:提供確定的帶寬和間隔時(shí)間(latency),用于時(shí)間嚴(yán)格并具有較強(qiáng)容錯(cuò)性的流數(shù)據(jù)傳輸,或要求恒定的數(shù)據(jù)傳輸率的即時(shí)應(yīng)用中,例如執(zhí)行即時(shí)通話的網(wǎng)絡(luò)。同步數(shù)據(jù)要求確定的帶寬值和確定的最大傳輸次數(shù),同步傳輸來的即時(shí)數(shù)據(jù)傳遞比精度完美和數(shù)據(jù)完整性更重要。USB傳輸方式3中斷(interrupt)方式傳輸:主要用于定時(shí)查詢?cè)O(shè)備是否有中斷數(shù)據(jù)要傳輸,設(shè)備的端點(diǎn)模式器的結(jié)構(gòu)決定了它的查詢頻率從1到255ms之間,典型應(yīng)用是少量的分散的不可預(yù)測(cè)數(shù)據(jù)的傳輸,如鍵盤操縱桿和鼠標(biāo),中斷方式傳輸是單向的,并且對(duì)于host來說只有輸入的方式。4大量(bulk)傳輸:主要應(yīng)用于大量傳輸和接受數(shù)據(jù),同時(shí)又沒有帶寬和間隔時(shí)間要求的情況下,要求保證傳輸。如打印機(jī)和掃描儀(傳輸非常慢和大量被延遲,可以等到所有其它類型的數(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)籌安排,用來適應(yīng)整個(gè)的USB的帶寬。通常情況下同步方式和中斷方式的傳輸會(huì)占據(jù)整個(gè)帶寬的90%,剩下的就安排給控制方式傳輸數(shù)據(jù)。USB傳輸方式在主機(jī)控制器和USBHUB之間還有另外一種傳輸——?jiǎng)e離傳輸〔SplitTransaction〕,它僅在主機(jī)控制器和HUB之間執(zhí)行,通過別離傳輸,可以允許全速/低速設(shè)備連接到高速主機(jī)。別離傳輸對(duì)于USB設(shè)備來說是透明的、不可見的。別離傳輸:把一次完整的事務(wù)傳輸分成兩個(gè)事務(wù)傳輸來完成。其出發(fā)點(diǎn)是高速傳輸和全速/低速傳輸?shù)乃俣炔幌嗟?,如果使用一次完整的事?wù)來傳輸,勢(shì)必會(huì)造成比較長(zhǎng)的等待時(shí)間,從而降低了高速USB總線的利用率。通過將一次傳輸分成兩此,將令牌〔和數(shù)據(jù)〕的傳輸與響應(yīng)數(shù)據(jù)〔和握手〕的傳輸分開,這樣就可以在中間插入其他高速傳輸,從而提高總線的利用率。USB協(xié)議層標(biāo)準(zhǔn)USB采用littleedian字節(jié)順序,在總線上先傳輸一個(gè)字節(jié)的最低有效位,最后傳輸最高有效位,采用NRZI編碼,假設(shè)遇到連續(xù)的6個(gè)1要求進(jìn)行為填充,即插入一個(gè)0。所有的USB包都由SYNC開始,高速包的SYNC寬度為32bit,全速/低速包的SYNC段寬度為8bit。實(shí)際接收到的SYNC產(chǎn)度由于USBHUB的關(guān)系,可能會(huì)小于該值。PID表征了數(shù)據(jù)包的類型,分為令牌〔Token〕、數(shù)據(jù)〔Data〕、握手〔Handshacke〕以及特殊包4大類,共16種類型的PID。令牌包的PID之后是7位的地址和4位的端點(diǎn)號(hào)。令牌包沒有數(shù)據(jù)域,以5位的CRC校驗(yàn)和結(jié)束。SOF是一類特殊的令牌包,PID后跟的是11位的幀編號(hào)。數(shù)據(jù)包的PID之后直接跟數(shù)據(jù)域,數(shù)據(jù)域的長(zhǎng)度為

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論