青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

USB開發(fā)基礎(chǔ)--USB命令(請(qǐng)求)和USB描述符

一、USB命令

  在USB規(guī)范里,對(duì)命令一詞提供的單詞為“Request”,但這里為了更好的理解主機(jī)與設(shè)備之間的主從關(guān)系,將它定義成“命令”。

  所有的USB設(shè)備都要求對(duì)主機(jī)發(fā)給自己的控制命令作出響應(yīng),USB規(guī)范定義了11個(gè)標(biāo)準(zhǔn)命令,它們分別是:Clear_Feature、Get_Configuration、Get_Descriptor、Get_Interface、Get_Status、Set_Address、Set_Configuration、Set_Descriptor、Set_Interface、Set_Feature、Synch_Frame。所有USB設(shè)備都必須支持這些命令(個(gè)別命令除外,如Set_Descriptor、Synch_Frame)。

  不同的命令雖然有不同的數(shù)據(jù)和使用目的,但所有的USB命令結(jié)構(gòu)是一樣的。下表所示為USB命令的結(jié)構(gòu): 

表1、USB命令的結(jié)構(gòu)
偏移量  長度(字節(jié)) 描述
0 bmRequestType 1 位圖 請(qǐng)求特征:
D7:傳輸方向 
0=主機(jī)至設(shè)備 
1=設(shè)備至主機(jī) 
D6..5:種類 
0=標(biāo)準(zhǔn) 
1=類 
2=廠商 
3=保留 
D4..0:接受者 
0=設(shè)備 
1=接口 
2=端點(diǎn) 
3=其他 
4..31 保留
1 bRequest 1 命令類型編碼值(見表3)
2 wValue 2 根據(jù)不同的命令,含義也不同
4 wIndex 2 索引或偏移 根據(jù)不同的命令,含義也不同,主要用于傳送索引或偏 移
6 wLength 2   如有數(shù)據(jù)傳送階段,此為數(shù)據(jù)字節(jié)數(shù)。

 

下表列出了USB的11種標(biāo)準(zhǔn)命令

 

表2、USB的11種標(biāo)準(zhǔn)命令
命令

bmRequestType

bRequest

wValue

wIndex

wLength

Data

Clear_Feature

00000000B
00000001B
00000010B

CLEAR_FEATURE

特性選擇符

零 
接口號(hào) 
端點(diǎn)號(hào)

Get_Configuration

10000000B

GET_CONFIGURATION

配置值

Get_Descriptor

10000000B

GET_DESCRIPTOR

描述表種類(高字節(jié),見表5)和索引(低字節(jié))

零或語言標(biāo)志

描述表長

描述表

Get_Interface

10000001B

GET_INTERFACE

接口號(hào)

可選設(shè)置

Get_Status

10000000B
10000001B
10000010B

GET_STATUS

零(返回設(shè)備狀態(tài))
接口號(hào)(對(duì)像時(shí)接口時(shí))
端點(diǎn)號(hào)(對(duì)象是端點(diǎn)時(shí))

設(shè)備,
接口 ,或 
端點(diǎn)狀態(tài)

Set_Address

00000000B

SET_ADDRESS

設(shè)備地址

Set_Configuration

00000000B

SET_CONFIGURATION

配置值(高字節(jié)為0,低字節(jié)表示要設(shè)置的配置值)

Set_Descriptor

00000000B

SET_DESCRIPTOR

描述表種類(高字節(jié),見表5)和索引(低字節(jié))

零或語言標(biāo)志

描述表長

描述表

Set_Feature

00000000B
00000001B
00000010B

SET_FEATURE

特性選擇符(1表示設(shè)備,0表示端點(diǎn))

零 
接口號(hào) 
端點(diǎn)號(hào)

Set_Interface

00000001B

SET_INTERFACE

可選設(shè)置

接口號(hào)

Synch_Frame

100000010B

SYNCH_FRAME

端點(diǎn)號(hào)

幀號(hào)

 

其中bRequest為命令編碼值,含意見表3:

 

表3、USB標(biāo)準(zhǔn)命令的編碼值

bRequest

Value

GET_STATUS

0

CLEAR_FEATURE

1

為將來保留

2

SET_FEATURE

3

為將來保留

4

SET_ADDRESS

5

GET_DESCRIPTOR

6

SET_DESCRIPTOR

7

GET_CONFIGURATION

8

SET_CONFIGURATION

9

GET_INTERFACE

10

SET_INTERFACE

11

SYNCH_FRAME

12

 

 

二、USB描述符

  USB協(xié)議為USB設(shè)備定義了一套描述設(shè)備功能和屬性的有固定結(jié)構(gòu)的描述符,包括標(biāo)準(zhǔn)的描述符即設(shè)備描述符、配置描述符、接口描述符、端點(diǎn)描述符和字符串描述符,還有百標(biāo)準(zhǔn)描述符,如類描述符。USB設(shè)備通過這些描述符向USB主機(jī)匯報(bào)設(shè)備的各種各樣屬性,主機(jī)通過對(duì)這些描述符的訪問對(duì)設(shè)備進(jìn)行類型識(shí)別、配置并為其提供相應(yīng)的客戶端驅(qū)動(dòng)程序。

  USB設(shè)備通過描述符反映自己的設(shè)備特性。USB描述符是由特定格式排列的一組數(shù)據(jù)結(jié)構(gòu)組成。

  在USB設(shè)備枚舉過程中,主機(jī)端的協(xié)義軟件需要解析從USB設(shè)備讀取的所有描述符信息。在USB主向設(shè)備發(fā)送讀取描述符的請(qǐng)求后,USB設(shè)備將所有的描述符以連續(xù)的數(shù)據(jù)流方式傳輸給USB主機(jī)。主機(jī)從第一個(gè)讀到的字符開始,根據(jù)雙方規(guī)定好的數(shù)據(jù)格式,順序地解析讀到的數(shù)據(jù)流。

  USB描述符包含標(biāo)準(zhǔn)描述符、類描述符和廠商特定描述3種形式。任何一種設(shè)備必須USB標(biāo)準(zhǔn)描述符(隊(duì)字符串描述符可選外)。

  在USB1.X中,規(guī)定了5種標(biāo)準(zhǔn)描述符:設(shè)備描述符(Device Descriptor)、配置描述符(Configuration Descriptor)、接口描述符(Interface Descriptor)、端點(diǎn)描述符(Endpoint Descriptor)和字符串描述符(String Descriptor)。

  每個(gè)USB設(shè)備只有一個(gè)設(shè)備描述符,而一個(gè)設(shè)備中可包含一個(gè)或多個(gè)配置描述符,即USB設(shè)備可以有多種配置。設(shè)備的每一個(gè)配置中又可以包含一個(gè)或多個(gè)接口描述符,即USB設(shè)備可以支持多種功能(接口),接口的特性通過描述符提供。

  在USB主機(jī)訪問USB設(shè)備的描述符時(shí),USB設(shè)備依照設(shè)備描述符、配置描述符、接口描述符、端點(diǎn)描述符、字符串描述符順序?qū)⑺忻枋龇麄鹘o主機(jī)。一設(shè)備至少要包含設(shè)備描述符、配置描述符和接口描述符,如果USB設(shè)備沒有端點(diǎn)描述符,則它僅僅用默認(rèn)管道與主機(jī)進(jìn)行數(shù)據(jù)傳輸。

1、設(shè)備描述符

  設(shè)備描述符給出了USB設(shè)備的一般信息,包括對(duì)設(shè)備及在設(shè)備配置中起全程作用的信息,包括制造商標(biāo)識(shí)號(hào)ID、產(chǎn)品序列號(hào)、所屬設(shè)備類號(hào)、默認(rèn)端點(diǎn)的最大包長度和配置描述符的個(gè)數(shù)等。一個(gè)USB設(shè)備必須有且僅有一個(gè)設(shè)備描述符。設(shè)備描述符是設(shè)備連接到總線上時(shí)USB主機(jī)所讀取的第一個(gè)描述符,它包含了14個(gè)字段,結(jié)構(gòu)如下:

 

表4、USB設(shè)備描述符的結(jié)構(gòu)

偏移量

大小

描述

0

bLength

1

數(shù)字

此描述表的字節(jié)數(shù)

1

bDecriptorType

1

常量

描述符的類型(此處應(yīng)為0x01,即設(shè)備描述符)

2

bcdUSB

2

BCD碼

此設(shè)備與描述表兼容的USB設(shè)備說明版本號(hào)(BCD 碼)

4

bDeviceClass

1

設(shè)備類碼:
如果此域的值為0則一個(gè)設(shè)置下每個(gè)接口指出它自己的類,各個(gè)接口各自獨(dú)立工作。 
如果此域的值處于1~FEH之間,則設(shè)備在不同的接口上支持不同的類。并這些接口可能不能獨(dú)立工作。此值指出了這些接口集體的類定義。 
如果此域設(shè)為FFH,則此設(shè)備的類由廠商定義。

5

bDeviceSubClass

1

子類

子類挖碼 
這些碼值的具體含義根據(jù)bDeviceClass 域來看。 
如bDeviceClass 域?yàn)榱悖擞蛞岔殲榱?nbsp;
如bDeviceClass 域?yàn)镕FH,此域的所有值保留。

6

bDevicePortocol

1

協(xié)議

協(xié)議碼 
這些碼的值視bDeviceClass 和 bDeviceSubClass 的值而定。 
如果設(shè)備支持設(shè)備類相關(guān)的協(xié)議,此碼標(biāo)志了設(shè)備類的值。如果此域的值為零,則此設(shè)備不支持設(shè)備類相關(guān)的協(xié)議,然而,可能它的接口支持設(shè)備類相關(guān)的協(xié)議。如果此域的值為FFH,此設(shè)備使用廠商定義的協(xié)議。

7

bMaxPacketSize0

1

數(shù)字

端點(diǎn)0的最大包大小(僅8,16,32,64
為合法值)

8

idVendor

2

ID

廠商標(biāo)志(由USB-IF組織賦值)

10

idProduct

2

ID

產(chǎn)品標(biāo)志(由廠商賦值)

12

bcdDevice

2

BCD 碼

設(shè)備發(fā)行號(hào)(BCD 碼)

14

iManufacturer

1

索引

描述廠商信息的字符串描述符的索引值。

15

iProduct

1

索引

描述產(chǎn)品信息的字串描述符的索引值。

16

iSerialNumber

1

索引

描述設(shè)備序列號(hào)信息的字串描述符的索引值。

17

bNumConfigurations

1

數(shù)字

可能的配置描述符數(shù)目

 

其中bDescriptorType為描述符的類型,其含義可查下表(此表也適用于標(biāo)準(zhǔn)命令Get_Descriptor中wValue域高字節(jié)的取值含義):

 

表5、USB描述符的類型值
類型 描述符 描述符值
標(biāo)準(zhǔn)描述符 設(shè)備描述符(Device Descriptor) 0x01
配置描述符(Configuration Descriptor) 0x02
字符串描述符(String Descriptor) 0x03
接口描述符(Interface Descriptor) 0x04
端點(diǎn)描述符(EndPont Descriptor) 0x05
類描述符 集線器類描述符(Hub Descriptor) 0x29
人機(jī)接口類描述符(HID) 0x21
廠商定義的描述符   0xFF

 

設(shè)備類代碼bDeviceClass可查下表:

 

表6、設(shè)備的類別(bDeviceClass)
值(十進(jìn)制)
值(十六進(jìn)制)
說明
0
0x00
接口描述符中提供類的值
2
0x02
通信類
9
0x09
集線器類
220
0xDC
用于診斷用途的設(shè)備類
224
0xE0
無線通信設(shè)備類
255
0xFF
廠商定義的設(shè)備類

 

下表列出了一個(gè)USB鼠標(biāo)的設(shè)備描述符的例子,供大家分析一下:

 

表7、一種鼠標(biāo)的設(shè)備描述符示例
字段 描述符值(十六制)

bLength

0x12

bDecriptorType

0x01

bcdUSB

x0110

bDeviceClass

0x00

bDeviceSubClass

0x00

bDevicePortocol

0x00

bMaxPacketSize0

0x08

idVendor

0x045E(Microsoft Corporation)

idProduct

0x0047

bcdDevice

0x300

iManufacturer

0x01

iProduct

0x03

iSerialNumber

0x00

bNumConfigurations

0x01

 

2、配置描述符

  配置描述符中包括了描述符的長度(屬于此描述符的所有接口描述符和端點(diǎn)描述符的長度的和)、供電方式(自供電/總線供電)、最大耗電量等。主果主機(jī)發(fā)出USB標(biāo)準(zhǔn)命令Get_Descriptor要求得到設(shè)備的某個(gè)配置描述符,那么除了此配置描述符以外,此配置包含的所有接口描述符與端點(diǎn)描述符都將提供給USB主機(jī)。

 

表8、USB配置描述符的結(jié)構(gòu)

   偏移量

     域

 大小

   值

   描述

      0

bLength

1

   數(shù)字

此描述表的字節(jié)數(shù)長度。

      1

bDescriptorType

1

   常量

配置描述表類型(此處為0x02)

      2

wTotalLength

2

   數(shù)字

此配置信息的總長(包括配置,接口,端點(diǎn)和設(shè)備類及廠商定義的描述符)

      4

bNumInterfaces

1

   數(shù)字

此配置所支持的接口個(gè)數(shù)

      5

bCongfigurationValue

1

   數(shù)字

在SetConfiguration()請(qǐng)求中用作參數(shù)來選定此配置。

      6

iConfiguration

1

   索引

描述此配置的字串描述表索引

      7

bmAttributes

1

   位圖

配置特性: 
D7: 保留(設(shè)為一) 
D6: 自給電源 
D5: 遠(yuǎn)程喚醒 
D4..0:保留(設(shè)為一) 
一個(gè)既用總線電源又有自給電源的設(shè)備會(huì)在MaxPower域指出需要從總線取的電量。并設(shè)置D6為一。運(yùn)行時(shí)期的實(shí)際電源模式可由GetStatus(DEVICE) 請(qǐng)求得到。

      8

MaxPower

1

    mA

在此配置下的總線電源耗費(fèi)量。以 2mA 為一個(gè)單位。

 

下面是一種硬盤的配置描述符示例:

 

表9、一種硬盤的配置描述符示例
字段 描述符值(十六進(jìn)制)

bLength

0x09

bDescriptorType

0x02

wTotalLength

0x01F

bNumInterfaces

0x01

bCongfigurationValue

0x01

iConfiguration

0x00

bmAttributes

0x0C

MaxPower

0x32

 

3、接口描述符

  配置描述符中包含了一個(gè)或多個(gè)接口描述符,這里的“接口”并不是指物理存在的接口,在這里把它稱之為“功能”更易理解些,例如一個(gè)設(shè)備既有錄音的功能又有揚(yáng)聲器的功能,則這個(gè)設(shè)備至少就有兩個(gè)“接口”。

  如果一個(gè)配置描述符不止支持一個(gè)接口描述符,并且每個(gè)接口描述符都有一個(gè)或多個(gè)端點(diǎn)描述符,那么在響應(yīng)USB主機(jī)的配置描述符命令時(shí),USB設(shè)備的端點(diǎn)描述符總是緊跟著相關(guān)的接口描述符后面,作為配置描述符的一部分被返回。接口描述符不可直接用Set_Descriptor和Get_Descriptor來存取。

  如果一個(gè)接口僅使用端點(diǎn)0,則接口描述符以后就不再返回端點(diǎn)描述符,并且此接口表現(xiàn)的是一個(gè)控制接口的特性,它使用與端點(diǎn)0相關(guān)聯(lián)的默認(rèn)管道進(jìn)行數(shù)據(jù)傳輸。在這種情況下bNumberEndpoints域應(yīng)被設(shè)置成0。接口描述符在說明端點(diǎn)個(gè)數(shù)并不把端點(diǎn)0計(jì)算在內(nèi)。

 

表10、USB接口描述符的結(jié)構(gòu)

偏移量

大小

說明

       0

bLength

1

數(shù)字

此表的字節(jié)數(shù)

       1

bDescriptorType

1

常量

接口描述表類(此處應(yīng)為0x04)

       2

bInterfaceNumber

1

數(shù)字

接口號(hào),當(dāng)前配置支持的接口數(shù)組索引(從零開始)。

       3

bAlternateSetting

1

數(shù)字

可選設(shè)置的索引值。

       4

bNumEndpoints

1

數(shù)字

此接口用的端點(diǎn)數(shù)量,如果是零則說明此接口只用缺省控制管道。

       5

bInterfaceClass

        1

接口所屬的類值: 
零值為將來的標(biāo)準(zhǔn)保留。 
如果此域的值設(shè)為FFH,則此接口類由廠商說明。 
所有其它的值由USB 說明保留。

       6

bInterfaceSubClass

        1

子類

子類碼 
這些值的定義視bInterfaceClass域而定。
如果bInterfaceClass域的值為零則此域的值必須為零。 
bInterfaceClass域不為FFH則所有值由USB 所保留。

       7

bInterfaceProtocol

        1

協(xié)議

協(xié)議碼:bInterfaceClass 和bInterfaceSubClass 域的值而定.如果一個(gè)接口支持設(shè)備類相關(guān)的請(qǐng)求此域的值指出了設(shè)備類說明中所定義的協(xié)議.

       8

iInterface

        1

索引

描述此接口的字串描述表的索引值。

 

對(duì)于bInterfaceClass字段,表示接口所屬的類別,USB協(xié)議根據(jù)功能將不同的接口劃分成不的類,其具體含義如下表所示:

 

表11、USB協(xié)議定義的接口類別(bInterfaceClass)
值(十六進(jìn)制) 類別
0x01 音頻類
0x02 CDC控制類
0x03 人機(jī)接口類(HID)
0x05 物理類
0x06 圖像類
0x07 打印機(jī)類
0x08 大數(shù)據(jù)存儲(chǔ)類
0x09 集線器類
0x0A CDC數(shù)據(jù)類
0x0B 智能卡類
0x0D 安全類
0xDC 診斷設(shè)備類
0xE0 無線控制器類
0xFE 特定應(yīng)用類(包括紅外的橋接器等)
0xFF 廠商定義的設(shè)備

 

4、端點(diǎn)描述符

  端點(diǎn)是設(shè)備與主機(jī)之間進(jìn)行數(shù)據(jù)傳輸?shù)倪壿嫿涌冢渲檬褂玫亩它c(diǎn)0(控制端點(diǎn),一般一個(gè)設(shè)備只有一個(gè)控制端點(diǎn))為雙向端口外,其它均為單向。端點(diǎn)描述符描述了數(shù)據(jù)的傳輸類型、傳輸方向、數(shù)據(jù)包大小和端點(diǎn)號(hào)(也可稱為端點(diǎn)地址)等。

  除了描述符中描述的端點(diǎn)外,每個(gè)設(shè)備必須要有一個(gè)默認(rèn)的控制型端點(diǎn),地址為0,它的數(shù)據(jù)傳輸為雙向,而且沒有專門的描述符,只是在設(shè)備描述符中定義了它的最大包長度。主機(jī)通過此端點(diǎn)向設(shè)備發(fā)送命令,獲得設(shè)備的各種描述符的信息,并通過它來配置設(shè)備。

 

表12、USB端點(diǎn)描述符的結(jié)構(gòu)

偏移量

大小

說明

0

bLength

1

數(shù)字

此描述表的字節(jié)數(shù)長度

1

bDescriptorType

1

常量

端點(diǎn)描述表類(此處應(yīng)為0x05)

2

bEndpointAddress

1

端點(diǎn)

此描述表所描述的端點(diǎn)的地址、方向: 
Bit 3..0 : 端點(diǎn)號(hào).
Bit 6..4 : 保留,為零 
Bit 7:    方向,如果控制端點(diǎn)則略。 
0:輸出端點(diǎn)(主機(jī)到設(shè)備) 
1:輸入端點(diǎn)(設(shè)備到主機(jī))

3

bmAttributes

1

位圖

此域的值描述的是在bConfigurationValue域所指的配置下端點(diǎn)的特性。 
Bit 1..0 :傳送類型 
00=控制傳送 
01=同步傳送 
10=批傳送 
11=中斷傳送 
所有其它的位都保留。

4

wMaxPacketSize

2

數(shù)字

當(dāng)前配置下此端點(diǎn)能夠接收或發(fā)送的最大數(shù)據(jù)包的大小。 
對(duì)于實(shí)進(jìn)傳輸,此值用于為每幀的數(shù)據(jù)凈負(fù)荷預(yù)留時(shí)間。在實(shí)際運(yùn)行時(shí),管道可能不完全需要預(yù)留的帶寬,實(shí)際帶寬可由設(shè)備通過一種非USB定義的機(jī)制匯報(bào)給主機(jī)。對(duì)于中斷傳輸,批量傳輸和控制傳輸,端點(diǎn)可能發(fā)送比之短的數(shù)據(jù)包
 

6

bInterval

1

數(shù)字

周期數(shù)據(jù)傳輸端點(diǎn)的時(shí)間間隙。 
此域的值對(duì)于批傳送的端點(diǎn)及控制傳送的端點(diǎn)無意義。對(duì)于同步傳送的端點(diǎn)此域必需為1,表示周期為1ms。對(duì)于中斷傳送的端點(diǎn)此域值的范圍為1ms到255ms。

 

下表是一種鼠標(biāo)的端點(diǎn)描述符的示例,該端點(diǎn)是一個(gè)中斷端點(diǎn):

 

表13、一種鼠標(biāo)的端點(diǎn)描述符示例
值(十六進(jìn)制)

bLength

0x07

bDescriptorType

0x05

bEndpointAddress

0x81

bmAttributes

0x03

wMaxPacketSize

0x04

bInterval

0x0A

 

5、字符串描述符

  字符串描述符是一種可選的USB標(biāo)準(zhǔn)描述符,描述了如制商、設(shè)備名稱或序列號(hào)等信息。如果一個(gè)設(shè)備無字符串描述符,則其它描述符中與字符串有關(guān)的索引值都必須為0。字符串使用的是Unicode編碼。

  主機(jī)請(qǐng)示得到某個(gè)字符串描述符時(shí)一般分成兩步:首先主機(jī)向設(shè)備發(fā)出USB標(biāo)準(zhǔn)命令Get_Descriptor,其中所使用的字符串的索引值為0,設(shè)備返回一個(gè)字符串描述符,此描述符的結(jié)構(gòu)如下:

 

表14、USB字符串描述符(響應(yīng)主機(jī)請(qǐng)求時(shí)返回的表示語言ID的字符串描述符)

偏移量

大小

     描述

0

bLength

1

N+2

此描述表的字節(jié)數(shù)

1

bDescriptorType

1

常量

字串描述表類型(此處應(yīng)為0x03)

2

wLANGID[0]

2

數(shù)字

語言標(biāo)識(shí)(LANGID) 
碼0

      

N

wLANGID[x]

2

數(shù)字

語言標(biāo)識(shí)(LANGID) 
碼X

 

該字符串描述符雙字節(jié)的語言ID的數(shù)組,wLANGID[0]~wLANGID[x]指明了設(shè)備支持的語言,具體含義可查看USB_LANGIDs.pdf

  主機(jī)根據(jù)自己需要的語言,再次向設(shè)備發(fā)出USB標(biāo)準(zhǔn)命令Get_Descriptor,指明所要求得到的字符串的索引值和語言。這次設(shè)備所返回的是Unicode編號(hào)的字符串描述符,其結(jié)構(gòu)如下:

 

表15、Unicode字符串描述符(響應(yīng)主機(jī)請(qǐng)求時(shí)真正表示字符串編碼的字符串描述符)

偏移量

大小

描述

0

bLength

1

數(shù)字

此描述表的字節(jié)數(shù)(bString域的數(shù)值N+2)

1

bDescriptorType

1

常量

字串描述表類型(此處應(yīng)為0x03)

2

bString

N

數(shù)字

UNICODE 編碼的字串

 

bString域?yàn)樵O(shè)備實(shí)際返回的以UNICODE編碼的字符串流,我們?cè)诰帉懺O(shè)備端硬件驅(qū)動(dòng)的時(shí)候需要將字符串轉(zhuǎn)換為UNICODE編碼,您可以通過一些UNICODE轉(zhuǎn)換工具進(jìn)行轉(zhuǎn)換。這里推薦由百合電子工作室開發(fā)的一款USB描述符生成工具“USB Unicode 字符串描述符生成器”,它專門為編寫設(shè)備端驅(qū)動(dòng)程序的需要而定制,可以非常方便將您需要的字符串轉(zhuǎn)換成UNICODE格式,進(jìn)而導(dǎo)入您的C或匯編程序代碼中,以下是它的界面:

USB Unicode 字符串描述符生成器-生成C語言格式

USB Unicode 字符串描述符生成器-生成匯編格式

溫馨提示:

  百合電子工作室有一個(gè)關(guān)于USB開發(fā)方面的開源項(xiàng)目-Easy USB 51 Programer,整個(gè)開發(fā)過程寫得非常詳細(xì),不防參考一下,您還可以進(jìn)入她的論壇參與此項(xiàng)目的討論。

注:本篇文章部分內(nèi)容摘自《USB協(xié)議》和《USB技術(shù)及應(yīng)用設(shè)計(jì)》

 原文地址 http://www.baiheee.com/Documents/090518/090518112619.htm

posted on 2010-11-24 14:39 wrh 閱讀(1053) 評(píng)論(0)  編輯 收藏 引用


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


導(dǎo)航

<2011年5月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

統(tǒng)計(jì)

常用鏈接

留言簿(19)

隨筆檔案

文章檔案

收藏夾

搜索

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美一级在线亚洲天堂| 亚洲性图久久| 欧美婷婷久久| 欧美色视频在线| 国产精品卡一卡二| 国产精品每日更新在线播放网址| 欧美视频在线不卡| 国产精品大全| 国产综合久久| 亚洲电影自拍| 亚洲一区二区三区免费视频| 欧美在线视频一区| 亚洲第一在线视频| 亚洲狼人综合| 亚洲欧美在线免费| 麻豆久久久9性大片| 欧美日韩免费一区二区三区视频| 国产精品视频在线观看| 亚洲第一综合天堂另类专| aⅴ色国产欧美| 久久免费视频一区| 欧美一级久久久| 国产亚洲精品福利| 亚洲精品一区二区三区不| 亚洲午夜在线观看| 久久综合福利| 一区二区三区免费在线观看| 性18欧美另类| 欧美日韩精品综合在线| 国产日韩在线一区二区三区| 亚洲精品欧美激情| 久久人人超碰| 亚洲午夜激情在线| 欧美韩日高清| 韩国久久久久| 香蕉精品999视频一区二区| 欧美激情国产精品| 亚洲欧美在线另类| 欧美日韩美女在线| 亚洲大胆人体在线| 久久精品日韩| 亚洲色图自拍| 欧美日韩国产成人精品| 黄色亚洲网站| 欧美有码在线视频| 在线中文字幕一区| 欧美日韩国产精品| 亚洲美女av黄| 亚洲国产精品一区二区第一页| 久久成人国产| 国产欧美日韩另类一区| 校园春色综合网| 亚洲视频在线一区观看| 欧美日韩精品在线播放| 亚洲精品网址在线观看| 免费日韩成人| 久久午夜电影| 激情久久中文字幕| 久久免费视频网| 亚洲欧美一区二区原创| 国产日韩欧美三区| 欧美有码在线视频| 欧美一区二区久久久| 国产网站欧美日韩免费精品在线观看| 亚洲一区二区在| 亚洲视频观看| 国产精品大片免费观看| 欧美亚洲一区在线| 久久国产成人| 亚洲国产婷婷| 亚洲精品久久久久久久久久久久久 | 久久免费黄色| 国产人成精品一区二区三| 亚洲欧美日韩成人高清在线一区| 一区二区三区成人| 久久高清福利视频| 在线日韩av片| 亚洲欧洲日产国产网站| 欧美理论电影网| 亚洲一区区二区| 亚洲欧美一区二区原创| 在线免费观看成人网| 亚洲福利视频免费观看| 欧美丝袜一区二区三区| 欧美在线观看一二区| 久久久999成人| 亚洲精品美女在线观看| 亚洲天堂网在线观看| 激情六月婷婷久久| 亚洲精品乱码久久久久| 国产精品一区二区黑丝| 老鸭窝91久久精品色噜噜导演| 欧美高清在线视频| 久久岛国电影| 欧美理论在线播放| 久久久水蜜桃| 欧美色网在线| 欧美h视频在线| 国产精品久久久| 久久字幕精品一区| 欧美系列精品| 嫩草伊人久久精品少妇av杨幂| 欧美精品亚洲一区二区在线播放| 欧美中文字幕在线观看| 欧美激情在线有限公司| 欧美综合国产精品久久丁香| 欧美日韩亚洲一区二区三区在线观看 | 免费亚洲视频| 国产精品久久久久一区| 久久精品国产亚洲一区二区三区 | 国产精品外国| 欧美激情第1页| 国产亚洲精品一区二区| 亚洲激情视频网站| 今天的高清视频免费播放成人| 亚洲精品欧美在线| 亚洲韩国一区二区三区| 欧美一级片在线播放| 亚洲影视在线播放| 欧美精品一区二区三区一线天视频| 亚洲欧美视频在线观看视频| 欧美国产欧美亚洲国产日韩mv天天看完整 | 亚洲国产精品传媒在线观看| 国产一区二区三区精品欧美日韩一区二区三区 | 美女精品国产| 国产精品一区一区| 亚洲美女精品久久| 在线免费观看日本一区| 欧美一区免费视频| 欧美在线一二三四区| 国产精品一区=区| 亚洲欧美日韩在线一区| 亚洲一级黄色片| 欧美视频一区在线观看| 一区二区三区日韩精品视频| 亚洲色图自拍| 国产精品第13页| 亚洲综合丁香| 久久久久国产精品一区| 国产午夜精品全部视频在线播放| 亚洲免费在线观看| 久久不见久久见免费视频1| 国产日韩欧美一区二区| 午夜在线不卡| 狂野欧美激情性xxxx欧美| 影音先锋日韩资源| 老司机午夜精品视频在线观看| 蜜桃av一区| 亚洲乱码精品一二三四区日韩在线| 免费看黄裸体一级大秀欧美| 欧美激情第9页| 中文精品在线| 国产精品综合久久久| 久久精品国产v日韩v亚洲| 免费在线观看一区二区| 亚洲精品国产日韩| 国产精品v欧美精品v日韩| 亚洲欧美激情四射在线日| 久久久久久久性| 亚洲激情一区二区| 欧美日韩在线精品一区二区三区| 亚洲视频在线观看| 久久亚洲精品网站| 99精品热视频| 国产情人综合久久777777| 久久人体大胆视频| 亚洲精品中文字| 欧美一区精品| 136国产福利精品导航网址| 欧美剧在线免费观看网站| 亚洲欧美乱综合| 亚洲狠狠婷婷| 欧美影院成年免费版| 亚洲黄色av一区| 国产精品盗摄一区二区三区| 久久久xxx| 一道本一区二区| 麻豆国产精品一区二区三区| 一区二区三区国产在线| 狠狠做深爱婷婷久久综合一区| 欧美激情中文字幕一区二区| 亚洲欧美网站| 亚洲日本欧美日韩高观看| 久久精品官网| 亚洲深夜av| 亚洲成色www8888| 国产精品视频久久一区| 欧美日韩岛国| 美女精品视频一区| 久久爱www| 亚洲免费小视频| 99riav1国产精品视频| 亚洲精品久久久久| 在线日韩一区二区| 国产欧美一区二区精品性色| 欧美日韩亚洲网| 欧美电影打屁股sp| 久久久久久久性| 欧美亚洲视频在线观看| 亚洲天堂久久|