小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

USB開(kāi)發(fā)步驟之標(biāo)準(zhǔn)篇

 Archangel 2007-08-09
USB開(kāi)發(fā)步驟之標(biāo)準(zhǔn)篇
[ 2005-9-28 16:37:00 | By: 沃伊頓吃三萬(wàn) ]
 

通用串行總線(Universal Serial Bus)

   是用于將適用USB的外圍設(shè)備連接到主機(jī)的外部總線結(jié)構(gòu),其主要是用在中速和低速的外設(shè)。USB是通過(guò)PCI總線和PC的內(nèi)部系統(tǒng)數(shù)據(jù)線連接,實(shí)現(xiàn)數(shù)據(jù)的傳送。

    USB同時(shí)又是一種通信協(xié)議,他支持主系統(tǒng)(host)和USB的外圍設(shè)備(device)之間的數(shù)據(jù)傳送,在USB的網(wǎng)絡(luò)協(xié)議中,每個(gè)USB的系統(tǒng)有且 只有一個(gè)host,因此,很多的朋友問(wèn)我是否可以將兩臺(tái)PC的USB口通過(guò)A-A頭連接起來(lái),是否可以實(shí)現(xiàn)通信,這樣是不行的,因?yàn)閷?duì)于電腦主板上的 USB設(shè)備,都是host,如果連起來(lái)就是兩個(gè)host的通信,這樣一來(lái)的一個(gè)USB的系統(tǒng)有了兩個(gè)的host,與它的網(wǎng)絡(luò)協(xié)議沖突。 Anchorchip出了一個(gè)可以直接連接的設(shè)備(好象是AN2720SC),實(shí)際上是一個(gè)由兩個(gè)背靠背的USB的device組合起來(lái)的一塊芯片,要賣 80多個(gè)刀樂(lè),太貴了,呵呵!

USB的優(yōu)點(diǎn)有以下幾條:

  1. USB為所有的USB外設(shè)提供了單一的、易于操作的標(biāo)準(zhǔn)的連接類型。這樣一來(lái)就簡(jiǎn)化了USB外設(shè)的設(shè)計(jì),同時(shí)也簡(jiǎn)化了用戶在判斷哪個(gè)插頭對(duì)應(yīng)哪個(gè)插槽時(shí)的任務(wù),實(shí)現(xiàn)了單一的數(shù)據(jù)通用接口。

  2. USB排除了各個(gè)設(shè)備象鼠標(biāo)、調(diào)制解調(diào)器、鍵盤和打印機(jī)設(shè)備對(duì)去系統(tǒng)資源的需求,因而減少了硬件的復(fù)雜性和對(duì)端口的占用,整個(gè)的USB的系統(tǒng)只有一個(gè)端口和一個(gè)中斷,節(jié)省了系統(tǒng)資源。

  3. USB支持熱插拔(hot plug),也就是說(shuō)在不關(guān)PC的情況下可以安全的插上和斷開(kāi)USB設(shè)備,動(dòng)態(tài)的加載驅(qū)動(dòng)程序。其他普通的外圍連接標(biāo)準(zhǔn),如SCSI設(shè)備等必須在關(guān)掉主機(jī)的情況下才能增加或移走外圍設(shè)備。

  4. USB支持PNP。當(dāng)插入U(xiǎn)SB設(shè)備的時(shí)候,計(jì)算機(jī)系統(tǒng)檢測(cè)該外設(shè)并且通過(guò)自動(dòng)的加載相關(guān)的驅(qū)動(dòng)程序來(lái)對(duì)該設(shè)備進(jìn)行配置,并使其正常工作。

  5. USB在設(shè)備供電方面提供了靈活性。USB直接連接到Hub或者是連接到Host的設(shè)備可以通過(guò)USB電纜供電,也可以通過(guò)電池或者其它的電力設(shè)備來(lái)供電,或使用兩種供電方式的組合.并且支持節(jié)約能源的掛機(jī)和喚醒模式。

  6. USB提供全速12Mbps的速率和低速1.5Mbps的速率來(lái)適應(yīng)各種不同類型的外設(shè)。

  7. 針對(duì)不能處理突然發(fā)生的非連續(xù)傳送的設(shè)備,如音頻和視頻設(shè)備,USB可以保證其固定帶寬。

  8. 為了適應(yīng)各種不同類型外圍設(shè)備的要求,USB提供了四種不同的數(shù)據(jù)傳送類型。

  9. USB使得多個(gè)外圍設(shè)備可以跟主機(jī)通信。

USB的目的:1,使用方便 2,可以提供實(shí)時(shí)的數(shù)據(jù)給PC 3,端口的靈活擴(kuò)展性

   USB標(biāo)準(zhǔn)可以在www.usb.org/developer中找到,并且你還可以在該站點(diǎn)找到另外的一個(gè)USB的測(cè)試工具:usbcomp.exe,它 包含一個(gè)usbcheck的工具可以檢測(cè)到設(shè)備是否一些USB的高層次的要求。同時(shí)它還有一個(gè)usbcheck的工具可以檢測(cè)HID(human interface device)的設(shè)備。而Win98還有一個(gè)"Ignore hubs"(Memphis only)的檢測(cè)窗口。在W2K DDK中包含的一個(gè)USBView的工具可以看出系統(tǒng)中所有的USB總線以及USB總線上的所有的設(shè)備。

USB論壇(USB forum)的成員每年只需要支付$2500就可以獲得一個(gè)Vendor ID,其實(shí),每個(gè)Vendor ID的零售價(jià)格只是$200,不過(guò)每個(gè)USB論壇的成員可以在關(guān)于USB的支持方面可以得到許多的好處。(對(duì)于俺們中國(guó)人來(lái)說(shuō),去弄一個(gè)什么USB成員是 很浪費(fèi)錢的)

USB的設(shè)備類型(device class)

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

設(shè)備類型(device class) 設(shè)備舉例 類型常量(Class constant)
音頻(audio) 揚(yáng)聲器 USB_DEVICE_CLASS_AUDIO
通信 MODEM USB_DECICE_CLASS_COMMUNICATIONS
HID 鍵盤 鼠標(biāo) USB_DEVICE_CLASS_HUMAN INTERFACE
顯示 監(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_PRINTER
大量的存儲(chǔ)器 硬盤 USB_DEVICE_CLASS_STORAGE
HUB USB_DEVICE_CLASS_HUB

USB的基本特性

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

Windows USB 驅(qū)動(dòng)程序接口

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

傳輸方式

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

  • 控制(Control)方式傳送:控制傳送是雙向傳送,數(shù)據(jù)量通常較小。USB系統(tǒng)軟 件用來(lái)主要進(jìn)行查詢、配置和給USB設(shè)備發(fā)送通用的命令??刂苽魉头绞娇梢园?、16、32和64字節(jié)的數(shù)據(jù),這依賴于設(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í)通話的網(wǎng)絡(luò)電話應(yīng)用時(shí),使用同步傳輸模式是很好的選擇。同步數(shù)據(jù)要求確定的帶寬值和確定的最大傳送次數(shù)。對(duì)于同步傳送來(lái)說(shuō),即時(shí)的數(shù)據(jù)傳遞比完美的精 度和數(shù)據(jù)的完整性更重要一些。

  • 中斷(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來(lái)說(shuō)只有輸入的方式。

  • 大量(bulk)傳送:主要應(yīng)用在數(shù)據(jù)大量傳送傳送和接受數(shù)據(jù)上,同時(shí)又沒(méi)有帶寬和間隔時(shí)間要求的情況下,要求保證傳輸。打印機(jī)和掃描儀屬于這種類型。這種類型的設(shè)備適合于傳輸非常慢和大量被延遲的傳輸,可以等到所有其它類型的數(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都稱為設(shè)備,在設(shè)備與設(shè)備之間是無(wú)法實(shí) 現(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控制器。一般有兩種類型的控制器:UHCI(USB host控制器接口),OHCI(開(kāi)放的host控制器接口)。Windows的USB類驅(qū)動(dòng)程序?qū)τ诿恳环N的控制器類型都有一種miniclass驅(qū)動(dòng)程序來(lái)支持。

USB的物理信號(hào)

USB的電纜有四根線,兩根傳送的是5V的電源,有一些直接和電源HUB相連的設(shè)備可 以直接利用它來(lái)供電。另外的兩根是數(shù)據(jù)線,數(shù)據(jù)線是單工的,在整個(gè)的一個(gè)系統(tǒng)中的數(shù)據(jù)速率是一定的,要么是高速,要么是低速,沒(méi)有一個(gè)可以中間變速的設(shè)備 來(lái)實(shí)現(xiàn)數(shù)據(jù)碼流的變速.在這一點(diǎn)上,USB和1394有明顯的差別。
USB的總線可以在不使用的時(shí)候被掛起,這樣一來(lái)就可以節(jié)約能源。
在有些時(shí)候的總線還有可能擋機(jī)(stall),比如說(shuō)象數(shù)據(jù)傳送的時(shí)候突然被打斷,這個(gè)時(shí)候通過(guò)host的重新配置可以實(shí)現(xiàn)總線的重新工作。

低層協(xié)議

USB的物理協(xié)議規(guī)定了大多數(shù)的在總線上的數(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ù)類型。對(duì)于DATA數(shù)據(jù)包來(lái)說(shuō),設(shè)置兩種類型的數(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í)候,將不同于總線速度的設(shè)備中就會(huì)回應(yīng)一個(gè)PRE的包從而會(huì)忽略該設(shè)備。
各種不同類型的包的大小是不同的,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è)備可以從總線上獲得100mA的電流,如果特殊的向系統(tǒng)申請(qǐng),最多可以獲得500mA的電流,在掛機(jī)的狀態(tài)下,電流只有500uA.  

驅(qū)動(dòng)程序的安裝步驟

Windows用設(shè)備描述字或者接口描述字來(lái)了解到底是什么樣的設(shè)備被接入到系統(tǒng)。 Windows初始化的Hardware ID中有設(shè)備提供商的ID域(IDVendor,IDProduct,和BCDDevice)。如果你沒(méi)有向系統(tǒng)提供一個(gè)INF文件的話,系統(tǒng)就會(huì)自動(dòng)選 擇提供一個(gè)兼容ID(可能不是工作得很好,就像你買了一個(gè)Rockswell的Modem,而你使用標(biāo)準(zhǔn)Modem的驅(qū)動(dòng)程序,你的Modem可能會(huì)工作 的有很多的毛病,也可能跑得飛快,電腦的事情,什么都可能發(fā)生,就像中國(guó)足球........我在九四年就發(fā)誓不再為中國(guó)足球惱火,可是俺前不久還是罵了 一下那個(gè)叫章魚(yú)鱗的小伙子,怎么就.......好歹還是一孩子,就原諒一回吧,哎!)

USB的新特性

共享性 一個(gè)物理設(shè)備可以使用許多不同的pipe
實(shí)時(shí)性 可以實(shí)現(xiàn)和一個(gè)設(shè)備之間有效的實(shí)時(shí)通信
動(dòng)態(tài)性 可以實(shí)現(xiàn)接口間的動(dòng)態(tài)切換
聯(lián)合性 不同的而又有相近的特性的接口可以聯(lián)合起來(lái),
多能性 各個(gè)不同的接口可以使用不同的供電模式
自動(dòng)性 缺省的pipe的使用使基系統(tǒng)的建立和配置變得自動(dòng)并且快速

 

以上幾個(gè)方面只是簡(jiǎn)要的介紹了一下USB的標(biāo)準(zhǔn)的一些情況,介紹得非常非常之淺,還有 象USB的host在系統(tǒng)中的唯一性和device的帶寬分布,以及hub,和USB的電氣特性等等,以及網(wǎng)絡(luò)分層結(jié)構(gòu)等方面我就不贅述了,在標(biāo)準(zhǔn)里面有 詳細(xì)的敘述。鄙人僅致力于用中文給大家一個(gè)比較淺顯的介紹,希望不會(huì)給大家不正確的引導(dǎo)。(諸位大蝦倘要做USB設(shè)備,當(dāng)閱讀美利堅(jiān)合眾國(guó)之原版文章。切 記,切記!不瞞大家,朕亦十分反感大不列顛國(guó)之文字,一日,吾弟問(wèn)朕,國(guó)人何以皆學(xué)洋文,朕曰寡人如何得知,料想倘念好洋文,就有機(jī)會(huì)去誑洋人錢財(cái)。)


本來(lái)想單獨(dú)開(kāi)一個(gè)USB2.0的頁(yè),可是敲中文實(shí)在是太麻煩,再加上現(xiàn)在的 USB2.0只是一個(gè)DEMO的期間,USB2.0的器件更是沒(méi)有,關(guān)于USB2.0沒(méi)有什么改變,所有的硬件不用改變,就可以跑USB2.0,到時(shí)候 400多Mb可以讓你任何的器件都可以通過(guò)USB來(lái)玩了,不過(guò),現(xiàn)在只是在USB的高速的host和USB的高速HUB間可以有這么高的速度,普通的外設(shè) 就差了一些,不知道以后會(huì)不會(huì)變化!稍后我將給出USB2.0的專題介紹。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多