付費下載
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、USB 傳輸協(xié)議 (2010-11-10 15:13:19) 轉(zhuǎn)載 標(biāo)簽: 雜談 1總線協(xié)議 USB 是一種輪詢方式的總線,主機控制器初始化所有的數(shù)據(jù)傳輸。 每個總線執(zhí)行動作按照傳輸前制定的原則, 最多傳輸三個數(shù)據(jù)包。 每次傳輸開始, 主機 控制器發(fā)送一個描述傳輸動作的種類、方向、 USB 設(shè)備地址和端口號的數(shù)據(jù)包,這個數(shù)據(jù) 包通常稱為標(biāo)志包 PID ( packet ID), USB 設(shè)備從解碼后的數(shù)據(jù)包中取出屬于自己的數(shù)據(jù)。 傳輸開始時, 由標(biāo)志包來標(biāo)志數(shù)據(jù)的傳輸方向, 然后發(fā)送端發(fā)送數(shù)據(jù)包, 接收端相應(yīng)地 發(fā)送一個握手的數(shù)據(jù)包, 以表明傳輸是否成功。 發(fā)送端和接收端之間的數(shù)據(jù)傳輸, 可視
2、為在 主機和設(shè)備端口之間的一條通道中進行。 通道可分為兩類: 流通道和消息通道。 各通道之間的數(shù)據(jù)流動是相互獨立的, 一個 USB 設(shè)備可以有幾條通道。例如,一個 USB 設(shè)備可建立向其他設(shè)備發(fā)送數(shù)據(jù)和從其他設(shè)備接收 數(shù)據(jù)的兩條通道。 2USB 的傳輸方式 為了滿足不同的通信要求, USB 提供了四種傳輸方式:控制( control )方式傳輸,等時 (isochronous )方式傳輸,中斷( interrupt )方式傳輸及批( bulk )方式傳輸。每種傳輸模 式應(yīng)用到具有相同名字的終端時,具有不同的性質(zhì)。 (1) 控制方式傳輸 控制傳輸是雙向傳輸, 數(shù)據(jù)量通常較小。 控制傳輸類型支持外
3、設(shè)與主機之間的控制、 狀 態(tài)、配置等信息的傳輸, 為外設(shè)與主機之間提供一條控制通道。 每種外設(shè)都支持控制傳輸類 型,這樣,主機與外設(shè)之間就可以傳輸配置和命令 /狀態(tài)信息。 (2) 等時方式傳輸 等時傳輸提供了確定的帶寬和間隔時間(latency)。它用于時間嚴格并具有較強容錯性 的流數(shù)據(jù)傳輸,或者用于要求恒定的數(shù)據(jù)傳輸速率和即時應(yīng)用中。 例如,在執(zhí)行即時通話的網(wǎng)絡(luò)電話應(yīng)用中, 使用等時傳輸模式是很好的選擇。 等時數(shù)據(jù) 要求確定的帶寬值和確定的最大傳輸次數(shù), 對于等時傳輸來說,即時數(shù)據(jù)傳遞比精度和數(shù)據(jù) 的完整性更重要一些。 (3) 中斷方式傳輸 中斷方式傳輸主要用于定時查詢設(shè)備是否有中斷申請。
4、這種傳輸方式的典型應(yīng)用是在少 量的、分散的、不可預(yù)測數(shù)據(jù)的傳輸方面,鍵盤、操縱桿和鼠標(biāo)等就屬于這一類型。這些設(shè) 備與主機間的數(shù)據(jù)傳輸量小、無周期性, 但對響應(yīng)時間敏感, 要求馬上響應(yīng)。中斷方式傳輸 是單向的,并且對于主機來說只有輸入方式。 (4) 批方式傳輸 主要應(yīng)用于大量傳輸數(shù)據(jù)又沒有帶寬和間隔時間要求的情況下, 要求保證傳輸。打印機 和掃描儀就屬于這種類型,在滿足帶寬的情況下,才進行該類型的數(shù)據(jù)傳輸。 USB 采用分塊帶寬分配方案,若外設(shè)超過當(dāng)前或潛在的帶寬分配要求,則主機將拒絕與外 設(shè)進行數(shù)據(jù)傳輸。等時和中斷傳輸類型的終端保留帶寬, 并保證數(shù)據(jù)按一定的速率傳輸, 集 中和控制終端按可用的
5、最佳帶寬來傳輸數(shù)據(jù)。但是, 10%的帶寬為批傳輸和控制傳輸保留, 數(shù)據(jù)塊傳輸僅在帶寬滿足要求的情況下才會出現(xiàn)。 問題一:USB 的傳輸線結(jié)構(gòu)是如何的呢?答案一: 一條 USB 的傳輸線分別由地 線、電源線、D+、D-四條線構(gòu)成,D+和 D-是差分輸入線,它使用的是 3.3V 的 電壓(注意哦,與 CMOS 的 5V 電平不同),而電源線和地線可向設(shè)備提供 5V 電壓,最大電流為 500MA (可以在編程中設(shè)置的,至于硬件的實現(xiàn)機制,就不 要管它了)。 問題二:數(shù)據(jù)是如何在 USB 傳輸線里面?zhèn)魉偷拇鸢付簲?shù)據(jù)在 USB 線里傳送 是由低位到高位發(fā)送的。 問題三:USB 的編碼方案?答案三:US
6、B 采用不歸零取反來傳輸數(shù)據(jù),當(dāng)傳 輸線上的差分數(shù)據(jù)輸入 0 時就取反,輸入 1 時就保持原值,為了確保信號發(fā)送 的準(zhǔn)確性,當(dāng)在 USB 總線上發(fā)送一個包時,傳輸設(shè)備就要進行位插入 *作(即 在數(shù)據(jù)流中每連續(xù) 6 個 1 后就插入一個 0),從而強迫 NRZI 碼發(fā)生變化。這個 了解就行了,這些是由專門硬件處理的。 問題四:USB 的數(shù)據(jù)格式是怎么樣的呢?答案四:和其他的一樣, USB 數(shù)據(jù) 是由二進制數(shù)字串構(gòu)成的,首先數(shù)字串構(gòu)成域(有七種),域再構(gòu)成包,包再構(gòu) 成事務(wù)(IN、OUT、SETUP ),事務(wù)最后構(gòu)成傳輸(中斷傳輸、并行傳輸、批 量傳輸和控制傳輸)。下面簡單介紹一下域、包、事務(wù)、傳
7、輸,請注意他們之間 的關(guān)系。(一)域:是 USB 數(shù)據(jù)最小的單位,由若干位組成(至于是多少位由 具體的域決定),域可分為七個類型: 1、 同步域(SYNC),八位,值固定為 0000 0001,用于本地時鐘與輸入同步 2、 標(biāo)識域(PID),由四位標(biāo)識符+四位標(biāo)識符反碼構(gòu)成,表明包的類型和格式, 這是一個很重要的部分,這里可以計算出,USB 的標(biāo)識碼有 16 種,具體分類請 看問題五。 3、 地址域(ADDR ):七位地址,代表了設(shè)備在主機上的地址,地址 000 0000 被命名為零地址,是任何一個設(shè)備第一次連接到主機時, 在被主機配置、枚舉前 的默認地址,由此可以知道為什么一個 USB 主機
8、只能接 127 個設(shè)備的原因。 4、 端點域(ENDP ),四位,由此可知一個 USB 設(shè)備有的端點數(shù)量最大為 16 個。 5、 幀號域(FRAM),11 位,每一個幀都有一個特定的幀號,幀號域最大容量 0 x800,對于同步傳輸有重要意義(同步傳輸為四種傳輸類型之一,請看下面)。 6、 數(shù)據(jù)域(DATA ):長度為 01023 字節(jié),在不同的傳輸類型中,數(shù)據(jù)域的長 度各不相同,但必須為整數(shù)個字節(jié)的長度 7、 校驗域(CRC ):對令牌包和數(shù)據(jù)包(對于包的分類請看下面)中非 PID 域 進行校驗的一種方法,CRC 校驗在通訊中應(yīng)用很泛,是一種很好的校驗方法, 至于具體的校驗方法這里就不多說,請
9、查閱相關(guān)資料,只須注意 CRC 碼的除法 是模 2 運算,不同于 10 進制中的除法。 (二)包:由域構(gòu)成的包有四種類型,分別是令牌包、數(shù)據(jù)包、握手包和特殊 包,前面三種是重要的包,不同的包的域結(jié)構(gòu)不同,介紹如下 1、 令牌包:可分為輸入包、輸出包、設(shè)置包和幀起始包(注意這里的輸入包是 用于設(shè)置輸入命令的,輸出包是用來設(shè)置輸出命令的,而不是放據(jù)數(shù)的)其中輸 入包、輸出包和設(shè)置包的格式都是一樣的: SYNC+PID+ADDR+ENDP+CRC5 (五位的校驗碼) (上面的縮寫解釋請看 上面域的介紹,PID 碼的具體定義請看問題五)幀起始包的格式: SYNC+PID+11 位 FRAM+CRC5
10、(五位的校驗碼) 2、 數(shù)據(jù)包:分為 DATA0 包和 DATA1 包,當(dāng) USB 發(fā)送數(shù)據(jù)的時候,當(dāng)一次發(fā) 送的數(shù)據(jù)長度大于相應(yīng)端點的容量時,就需要把數(shù)據(jù)包分為好幾個包,分批發(fā)送, DATA0 包和 DATA1 包交替發(fā)送, 即如果第一個數(shù)據(jù)包是 DATA0, 那第二個數(shù) 據(jù)包就是 DATA1。但也有例外情況,在同步傳輸中(四類傳輸類型中之一), 所有的數(shù)據(jù)包都是為 DATA0 ,格式如下: SYNC+PID+01023 字節(jié) +CRC16 3、握手包:結(jié)構(gòu)最為簡單的包,格式如下 SYNC+PID (注上面每種包都有不同類型的, USB1.1 共定義了十種包, 具體請見問題五) (三)事務(wù):
11、分別有 IN 事務(wù)、OUT 事務(wù)和 SETUP 事務(wù)三大事務(wù),每一種事 務(wù)都由令牌包、 數(shù)據(jù)包、 握手包三個階段構(gòu)成, 這里用階段的意思是因為這些包 的發(fā)送是有一定的時間先后順序的,事務(wù)的三個階段如下: 1、 令牌包階段:啟動一個輸入、輸出或設(shè)置的事務(wù) 2、 數(shù)據(jù)包階段:按輸入、輸出發(fā)送相應(yīng)的數(shù)據(jù) 3、握手包階段:返回數(shù)據(jù)接收情況,在同步傳輸?shù)?IN 和 OUT 事務(wù)中沒有這個 階段,這是比較特殊的。事務(wù)的三種類型如下 (以下按三個階段來說明一個事務(wù)) : 1、 IN 事務(wù):令牌包階段一一主機發(fā)送一個 PID 為 IN 的輸入包給設(shè)備,通知設(shè) 備要往主機發(fā)送數(shù)據(jù);數(shù)據(jù)包階段 設(shè)備根據(jù)情況會作出
12、三種反應(yīng)(要注意: 數(shù)據(jù)包階段也不總是傳送數(shù)據(jù)的,根據(jù)傳輸情況還會提前進入握手包階段) 1 ) 設(shè)備端點正常,設(shè)備往入主機里面發(fā)出數(shù)據(jù)包( DATA0 與 DATA1 交替); 2)設(shè)備正在忙,無法往主機發(fā)出數(shù)據(jù)包就發(fā)送 NAK 無效包, IN 事務(wù)提前結(jié)束, 到了下一個 IN 事務(wù)才繼續(xù); 3) 相應(yīng)設(shè)備端點被禁止,發(fā)送錯誤包 STALL 包, 事務(wù)也就提前結(jié)束了, 總線進入空閑狀態(tài)。 握手包階段 主機正確接收到數(shù)據(jù) 之后就會向設(shè)備發(fā)送 ACK 包。 2、 OUT 事務(wù):令牌包階段一一主機發(fā)送一個 PID 為 OUT 的輸出包給設(shè)備,通 知設(shè)備要接收數(shù)據(jù); 數(shù)據(jù)包階段 比較簡單, 就是主機會
13、設(shè)備送數(shù)據(jù), DATA 0 與 DATA1交替握手包階段一一設(shè)備根據(jù)情況會作出三種反應(yīng) 1 )設(shè)備端點接收正確,設(shè)備往入主機返回 ACK ,通知主機可以發(fā)送新的數(shù)據(jù), 如果數(shù)據(jù)包發(fā)生了 CRC 校驗錯誤,將不返回任何握手信息; 2) 設(shè)備正在忙,無法往主機發(fā)出數(shù)據(jù)包就發(fā)送 NAK 無效包,通知主機再次發(fā) 送數(shù)據(jù); 3) 相應(yīng)設(shè)備端點被禁止,發(fā)送錯誤包 STALL 包,事務(wù)提前結(jié)束,總線直接進 入空閑狀態(tài)。 3、SETUT 事務(wù):令牌包階段一一主機發(fā)送一個 PID 為 SETUP 的輸出包給設(shè)備, 通知設(shè)備要接收數(shù)據(jù);數(shù)據(jù)包階段比較簡單,就是主機會設(shè)備送數(shù)據(jù), 注意, 這里只有一個固定為 8 個
14、字節(jié)的 DATA0 包,這 8 個字節(jié)的內(nèi)容就是標(biāo)準(zhǔn)的 US B 設(shè)備請求命令(共有 11 條,具體請看問題七) 握手包階段 設(shè)備接收到 主機的命令信息后, 返回 ACK ,此后總線進入空閑狀態(tài), 并準(zhǔn)備下一個傳輸 (在 SETUP 事務(wù)后通常是一個 IN 或 OUT 事務(wù)構(gòu)成的傳輸) (四)傳輸:傳輸由 OUT、IN、SETUP 事務(wù)其中的事務(wù)構(gòu)成,傳輸有四種類 型,中斷傳輸、批量傳輸、同步傳輸、控制傳輸,其中中斷傳輸和批量轉(zhuǎn)輸?shù)慕Y(jié) 構(gòu)一樣,同步傳輸有最簡單的結(jié)構(gòu),而控制傳輸是最重要的也是最復(fù)雜的傳輸。 1 、中斷傳輸:由 OUT 事務(wù)和 IN 事務(wù)構(gòu)成,用于鍵盤、鼠標(biāo)等 HID 設(shè)備的數(shù)據(jù)
15、 傳輸中 2、批量傳輸:由 OUT 事務(wù)和 IN 事務(wù)構(gòu)成,用于大容量數(shù)據(jù)傳輸,沒有固定的 傳輸速率,也不占用帶寬,當(dāng)總線忙時,USB 會優(yōu)先進行其他類型的數(shù)據(jù)傳輸, 而暫時停止批量轉(zhuǎn)輸。 3、 同步傳輸:由 OUT 事務(wù)和 IN 事務(wù)構(gòu)成,有兩個特殊地方,第一,在同步傳 輸?shù)腎N 和 OUT 事務(wù)中是沒有返回包階段的; 第二, 在數(shù)據(jù)包階段所有的數(shù)據(jù) 包都為 DATA0 4、 控制傳輸: 最重要的也是最復(fù)雜的傳輸, 控制傳輸由三個階段構(gòu)成 (初始設(shè) 置階段、可選數(shù)據(jù)階段、狀態(tài)信息步驟),每一個階段可以看成一個的傳輸,也 就是說控制傳輸其實是由三個傳輸構(gòu)成的,用來于 USB 設(shè)備初次加接到主機
16、之 后,主機通過控制傳輸來交換信息,設(shè)備地址和讀取設(shè)備的描述符,使得主機識 別設(shè)備,并安裝相應(yīng)的驅(qū)動程序,這是每一個 USB 開發(fā)者都要關(guān)心的問題。 1、 初始設(shè)置步驟:就是一個由 SET 事務(wù)構(gòu)成的傳輸 2、 可選數(shù)據(jù)步驟:就是一個由 IN 或 OUT 事務(wù)構(gòu)成的傳輸,這個步驟是可選的, 要看初始設(shè)置步驟有沒有要求讀/寫數(shù)據(jù) (由 SET 事務(wù)的數(shù)據(jù)包階段發(fā)送的標(biāo)準(zhǔn) 請求命令決定) 3、 狀態(tài)信息步驟:顧名思義,這個步驟就是要獲取狀態(tài)信息,由 IN 或 OUT 事 務(wù)構(gòu)成構(gòu)成的傳輸,但是要注意這里的 IN 和 OUT 事務(wù)和之前的 INT 和 OUT 事 務(wù)有兩點不同: 1) 傳輸方向相反,
17、通常 IN 表示設(shè)備往主機送數(shù)據(jù),OUT 表示主機往設(shè)備送數(shù) 據(jù);在這里,IN 表示主機往設(shè)備送數(shù)據(jù),而 OUT 表示設(shè)備往主機送數(shù)據(jù),這是 為了和可選數(shù)據(jù)步驟相結(jié)合; 2) 在這個步驟里,數(shù)據(jù)包階段的數(shù)據(jù)包都是 0 長度的,即 SYNC+PID+CRC1 6 除了以上兩點有區(qū)別外,其他的一樣,這里就不多說 (思考:這些傳輸模式在實際*作中應(yīng)如何通過什么方式去設(shè)置?) 問題五:標(biāo)識碼有哪些?答案五:如同前面所說的標(biāo)識碼由四位數(shù)據(jù)組成, 因 此可以表示十六種標(biāo)識碼,在 USB1.1 規(guī)范里面,只用了十種標(biāo)識碼,USB2.0 使用了十六種標(biāo)識碼,標(biāo)識碼的作用是用來說明包的屬性的, 標(biāo)識碼是和包聯(lián)系
18、 在一起的,首先簡單介紹一下數(shù)據(jù)包的類型,數(shù)據(jù)包分為令牌包、數(shù)據(jù)、握手包 和特殊包四種(具體分類請看問題七),標(biāo)識碼分別有以下十六種:令牌包 : 0 x01 輸出(OUT)啟動一個方向為主機到設(shè)備的傳輸,并包含了設(shè)備地址和標(biāo) 號 0 x09 輸入(IN)啟動一個方向為設(shè)備到主機的傳輸,并包含了設(shè)備地址和標(biāo)號 0 x05幀起始(SOF )表示一個幀的開始,并且包含了相應(yīng)的幀號 0 x0d 設(shè)置(SETUP )啟動一個控制傳輸,用于主機對設(shè)備的初始化數(shù)據(jù)包 : 0 x03 偶數(shù)據(jù)包(DATA0), 0 x0b 奇數(shù)據(jù)包(DATA1 )握手包: 0 x02 確認接收到無誤的數(shù)據(jù)包(ACK) 0 x0
19、a 無效,接收(發(fā)送)端正在忙而無法接收(發(fā)送)信息 0 x0e 錯誤,端點被禁止或不支持控制管道請求特殊包 0 x0C 前導(dǎo),用于啟動下 行端口的低速設(shè)備的數(shù)據(jù)傳輸 問題六:USB 主機是如何識別 USB 設(shè)備的?答案六:當(dāng) USB 設(shè)備插上主機 時,主機就通過一系列的動作來對設(shè)備進行枚舉配置 (配置是屬于枚舉的一個態(tài), 態(tài)表示暫時的狀態(tài)),這這些態(tài)如下: 1、 接入態(tài)(Attached ):設(shè)備接入主機后,主機通過檢測信號線上的電平 變化來發(fā)現(xiàn)設(shè)備的接入; 2、 供電態(tài)(Powered):就是給設(shè)備供電,分為設(shè)備接入時的默認供電值, 配置階段后的供電值(按數(shù)據(jù)中要求的最大值,可通過編程設(shè)置
20、) 3、 缺省態(tài)(Default): USB 在被配置之前,通過缺省地址 0 與主機進行 通信; 4、 地址態(tài)(Address ):經(jīng)過了配置,USB 設(shè)備被復(fù)位后,就可以按主機 分配給它的唯一地址來與主機通信,這種狀態(tài)就是地址態(tài); 5、 配置態(tài)(Con figured ):通過各種標(biāo)準(zhǔn)的 USB 請求命令來獲取設(shè)備的 各種信息,并對設(shè)備的某此信息進行改變或設(shè)置。 6、 掛起態(tài)(Suspended ):總線供電設(shè)備在 3ms 內(nèi)沒有總線*作,即 U SB 總線處于空閑狀態(tài)的話,該設(shè)備就要自動進入掛起狀態(tài),在進入掛起狀態(tài)后, 總的電流功耗不超過 280UA。 問題七:剛才在答案四提到的標(biāo)準(zhǔn)的 U
21、SB 設(shè)備請求命令究竟是什么?答案七: 標(biāo)準(zhǔn)的 USB 設(shè)備請求命令是用在控制傳輸中的 初始設(shè)置步驟”里的數(shù)據(jù)包階段 (即DATA0,由八個字節(jié)構(gòu)成),請看回問答四的內(nèi)容。標(biāo)準(zhǔn) USB 設(shè)備請求命 令共有 11個,大小都是 8 個字節(jié),具有相同的結(jié)構(gòu),由 5 個字段構(gòu)成(字段是 標(biāo)準(zhǔn)請求命令的數(shù)據(jù)部分),結(jié)構(gòu)如下(括號中的數(shù)字表示字節(jié)數(shù),首字母 bm, b,w分別表示位圖、字節(jié),雙字節(jié)): bmRequestType(1)+bRequest ( 1)+wvalue (2)+wlndex (2)+wLength ( 2) 各字段的意義如下: 1、 bmRequestType : D7D6D5D4
22、D3D2D1D0 D7=0 主機到設(shè)備 =1 設(shè)備到主機;D6D5=00 標(biāo)準(zhǔn)請求命令 =01 類請求命令 =10 用戶定義的命令 =11 保留值 D4D3D2D1D0=00000 接收者為設(shè)備 =00001 接收者為設(shè)備 =00010 接收者為端點 =00011 接收者為其他接收者 =其他其他值保留 2、 bRequest :請求命令代碼,在標(biāo)準(zhǔn)的 USB 命令中,每一個命令都定義了編 號,編號的值就為字段的值,編號與命令名稱如下(要注意這里的命令代碼要與 其他字段結(jié)合使用,可以說命令代碼是標(biāo)準(zhǔn)請求命令代碼的核心, 正是因為這些 命令代碼而決定了 11 個 USB 標(biāo)準(zhǔn)請求命令): 0)0
23、GET_STATUS :用來返回特定接收者的狀態(tài) 1)1 CLEAR_FEATURE :用來清除或禁止接收者的某些特性 2) 3 SET_FEATURE :用來啟用或激活命令接收者的某些特性 3) 5 SET_ADDRESS :用來給設(shè)備分配地址 4) 6 GET_DEscriptOR :用于主機獲取設(shè)備的特定描述符 5) 7 SET_DEscriptOR :修改設(shè)備中有關(guān)的描述符,或者增加新的描述符 6) 8 GET_CONFIGURATION :用于主機獲取設(shè)備當(dāng)前設(shè)備的配置值(注同上 面的不同) 7) 9 SET_CONFIGURATION :用于主機指示設(shè)備采用的要求的配置 8) 10
24、 GET_INTERFACE :用于獲取當(dāng)前某個接口描述符編號 9) 11 SET_INTERFACE :用于主機要求設(shè)備用某個描述符來描述接口 10)1 2 SYNCH_FRAME :用于設(shè)備設(shè)置和報告一個端點的同步幀以上的 11 個命令要 說得明白真的有一匹布那么長,請各位去看書吧,這里就不多說了,控制傳輸是 USB 的重心,而這 11 個命令是控制傳輸?shù)闹匦?,所以這 11 個命令是重中之重, 這個搞明白了, USB 就算是入門了。 問題八:在標(biāo)準(zhǔn)的 USB 請求命令中,經(jīng)常會看到 Descriptor,這是什么來的 呢?回答八:Descriptor 即描述符,是一個完整的數(shù)據(jù)結(jié)構(gòu),可以通
25、過 C 語言等 編程實現(xiàn),并存儲在 USB 設(shè)備中,用于描述一個 USB 設(shè)備的所有屬性,USB 主機是通過一系列命令來要求設(shè)備發(fā)送這些信息的。它的作用就是通過如問答節(jié) 中的命令*作來給主機傳遞信息,從而讓主機知道設(shè)備具有什么功能、屬于哪 一類設(shè)備、要占用多少帶寬、使用哪類傳輸方式及數(shù)據(jù)量的大小, 只有主機確定 了這些信息之后,設(shè)備才能真正開始工作,所以描述符也是十分重要的部分, 要 好好掌握。標(biāo)準(zhǔn)的描述符有 5 種,USB 為這些描述符定義了編號: 1 - 設(shè)備描述符 2 配置描述符 3 字符描述符 4 接口描述符 5 - 端點描述符上面的描述符之間有一定的關(guān)系,一個設(shè)備只有一個設(shè)備描述 符
26、,而一個設(shè)備描述符可以包含多個配置描述符, 而一個配置描述符可以包含多 個接口描述符,一個接口使用了幾個端點,就有幾個端點描述符。這間描述符是 用一定的字段構(gòu)成的,分別如下說明: 1、設(shè)備描述符 struct _DEVICE_DEscriptOR_STRUCT BYTE bLength; /設(shè)備描述符的字節(jié)數(shù)大小,為 0 x12 BYTE bDescriptorType; / 描 述 符 類 型 編 號, 為 0 x01 WORD bcdUSB; /USB 版本號 BYTE bDeviceClass; /USB 分配的設(shè)備類代碼,0 x010 xfe 為標(biāo)準(zhǔn)設(shè)備類,Oxff 為廠商自定義類型
27、/0 x00 不是在設(shè)備描述符中定義的,如 HID BYTE bDeviceSubClass; /usb 分配的子類代碼,同上,值由 USB 規(guī)定和分 配的 BYTE bDeviceProtocl; /USB 分配的設(shè)備協(xié)議代碼,同上 BYTE bMaxPacketSizeO; / 端點 0 的最大包的大小 WORD idVendor; / 廠商編號 WORD idProduct; / 產(chǎn)品編號 WORD bcdDevice; / 設(shè)備出廠編號 BYTE iManufacturer; / 描述廠商字符串的索引 BYTE iProduct; / 描述產(chǎn)品字符串的索引 BYTE iSerialNumber; / 描述設(shè)備序列號字符串的索引 BYTE bNumConfiguration; / 可能的配置數(shù)量 2、配置描述符 struct _CONFIGURATION_DEscriptOR_STRUCT BYTE bLength; / 設(shè) 備 描 述 符 的 字 節(jié) 數(shù) 大 小 , 為 0 x12 BYTE bDescriptorType; / 描述符類型編號,為 0 x01 WORD wTotalLength; / BYTE bNumInterface; / BYTE bConfigura
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 合成碳膜電位器制造工崗前工作改進考核試卷含答案
- 2025年地震減災(zāi)服務(wù)合作協(xié)議書
- 熟料燒結(jié)工崗前安全風(fēng)險考核試卷含答案
- 2025年公路養(yǎng)護劑合作協(xié)議書
- 2025年新型電子打火沼氣灶合作協(xié)議書
- 2025年抗狂犬病血清項目發(fā)展計劃
- 2025年四川省巴中市中考化學(xué)真題卷含答案解析
- 工會經(jīng)費收支情況自查報告
- 中心小學(xué)火災(zāi)隱患排查整治工作方案
- 路基強夯試驗段施工方案
- 中職數(shù)學(xué)高等教育出版社
- 2024屆山東省威海市高三二模數(shù)學(xué)試題(解析版)
- 設(shè)備管理獎罰管理制度
- ab股權(quán)協(xié)議書范本
- 工程造價審計服務(wù)投標(biāo)方案(技術(shù)方案)
- 蟹苗買賣合同協(xié)議
- 胸外科手術(shù)圍手術(shù)期的護理
- 全球著名空港產(chǎn)業(yè)發(fā)展案例解析
- 科技領(lǐng)域安全風(fēng)險評估及保障措施
- 鍋爐水質(zhì)化驗記錄表(完整版)
- 鋼筋工勞務(wù)合同
評論
0/150
提交評論