<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設計應用 > USB開(kāi)發(fā)步驟之標準篇

USB開(kāi)發(fā)步驟之標準篇

作者: 時(shí)間:2012-04-18 來(lái)源:網(wǎng)絡(luò ) 收藏
$2500就可以獲得一個(gè)Vendor ID,其實(shí),每個(gè)Vendor ID的零售價(jià)格只是$200,不過(guò)每個(gè)論壇的成員可以在關(guān)于的支持方面可以得到許多的好處。(對于俺們中國人來(lái)說(shuō),去弄一個(gè)什么成員是 很浪費錢(qián)的)

USB的設備類(lèi)型(device class)

雖然USB設備都會(huì )表現USB的一些基本的特征。但是,USB的設備還是可以分成多個(gè)不同類(lèi)型,同類(lèi)型的設備可以擁有一些共同的行為特征和工作協(xié)議,從而使設備的驅動(dòng)程序的書(shū)寫(xiě)變得簡(jiǎn)單一些。下表中就給出一些基本的USB的設備類(lèi)型分類(lèi)。

設備類(lèi)型(device class) 設備舉例 類(lèi)型常量(Class constant)
音頻(audio) 揚聲器 USB_DEVICE_CLASS_AUDIO
通信 MODEM USB_DECICE_CLASS_COMMUNICATIONS
HID 鍵盤(pán) 鼠標 USB_DEVICE_CLASS_HUMAN INTERFACE
顯示 監視器 USB_DEVICE_CLASS_MONITOR
物理回應設備 動(dòng)力回饋式游戲操縱桿 USB_DEVICE_CLASS_PHYSICAL_INTERFACE
電源 不間斷電源供應 USB_DEVICE_CLASS_POWER
打印機 USB_DEVICE_CLASS_PRINTER
大量的存儲器 硬盤(pán) USB_DEVICE_CLASS_STORAGE
HUB USB_DEVICE_CLASS_HUB

USB的基本特性
每一個(gè)設備(device)會(huì )有一個(gè)或者多個(gè)的邏輯連接點(diǎn)在里面,每個(gè)連接點(diǎn)叫 endpoint.每個(gè)endpoint有四種數據傳送方式:控制(Control)方式傳送;同步(isochronous)方式傳送;中斷 (interrupt)方式傳送;大量(bulk)傳送.但是所有的endpoint0都被用來(lái)傳送配置和控制信息。
在host和設備的endpoint之間的連接叫作管道"pipe",endpoint0叫做缺省(default pipe)。
對于同樣性質(zhì)的一組的endpoint的組合叫做接口(interface),如果一個(gè)設備包含不止一個(gè)的接口就可以稱(chēng)之為復合設備(composite device)。
同樣的道理,對于同樣的類(lèi)型的接口的組合可以稱(chēng)之為"配置"(configuration)。但是每次只能有一個(gè)配置是可用的,而一旦該配置激活,里面的接口和endpoint就都同時(shí)可以使用。
host從設備發(fā)過(guò)來(lái)的描述字(descriptors)中來(lái)判斷用的是哪個(gè)配置,哪個(gè)接口等等,而這些的描述字通常是在endpoint0中傳送。

Windows USB 驅動(dòng)程序接口
系統中的USB的驅動(dòng)程序完成許多的工作。
實(shí)際上對于一些HID的USB設 備,象鍵盤(pán),鼠標和游戲操縱桿之類(lèi)的設備可以自動(dòng)的被系統識別并且支持.而除此之外的設備就需要自己寫(xiě)一個(gè)驅動(dòng)程序來(lái)完成硬件和軟件之間的聯(lián)系。在核心模 式(kernel mode)下,驅動(dòng)程序用IOCTL來(lái)組織和操作一些由其他部分發(fā)過(guò)來(lái)的要求和命令。而IOCTL又是通過(guò)URB(USB request blocks)來(lái)實(shí)現數據的傳送的。
在正式的介紹USB的驅動(dòng)程序之前,先還是來(lái)看看USB的物理和邏輯結構。

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

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

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

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

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

USB將其有效的帶寬分成各個(gè)不同的



評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>