设备描述符DeviceDscr.docx

上传人:b****8 文档编号:9118656 上传时间:2023-02-03 格式:DOCX 页数:11 大小:19.34KB
下载 相关 举报
设备描述符DeviceDscr.docx_第1页
第1页 / 共11页
设备描述符DeviceDscr.docx_第2页
第2页 / 共11页
设备描述符DeviceDscr.docx_第3页
第3页 / 共11页
设备描述符DeviceDscr.docx_第4页
第4页 / 共11页
设备描述符DeviceDscr.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

设备描述符DeviceDscr.docx

《设备描述符DeviceDscr.docx》由会员分享,可在线阅读,更多相关《设备描述符DeviceDscr.docx(11页珍藏版)》请在冰豆网上搜索。

设备描述符DeviceDscr.docx

设备描述符DeviceDscr

【1】设备描述符DeviceDscr

重新看了描述符文件,对照了好多参考书,发现以前很多不明白的地方现在清晰了很多,不过有些地方可能从来没有用过的缘故,我也是不甚明了(打上了问号),只能以后用到的时候,有新的发现再慢慢理解了。

dscr51里放的是USB描述符表,EZ-USB在重枚举阶段会读取或设置相应的描述符

     db  DSCR_DEVICE_LEN     ;;Descriptorlength

     db  DSCR_DEVICE  ;;Decriptortype

     dw  0002H     ;;SpecificationVersion(BCD)

     db  00H       ;;Deviceclass

     db  00H        ;;Devicesub-class

     db  00H        ;;Devicesub-sub-class

     db  64        ;;Maximumpacketsize

     dw  0B404H     ;;VendorID

     dw  0410H     ;;ProductID(SampleDevice)

     dw  0000H     ;;ProductversionID

     db  1        ;;Manufacturerstringindex

     db  2        ;;Productstringindex

     db  0        ;;Serialnumberstringindex

     db  1        ;;Numberofconfigurations

【1】db  DSCR_DEVICE_LEN――bLength段

指明整个设备描述符的长度,单位字节。

【2】db  DSCR_DEVICE――bDescriporType段

描述符类型值。

DSCR_DEVICE=04H--设备描述符。

【3】dw  0002H――bcdUSB

表明该USB设备所遵循的USB协议版本,用bcd码表示,2字节。

例如2.0版本,值为0200H,用bcd码表示,低字节在前,高字节在后,表示为0002H;同理,1.1版本,则表示为1001H。

【4】db  00H――bDeviceClass段

    指明USB设备所属的设备类。

=0,表示USB各接口相互独立工作,分属不通的设备类,具体信息在接口描述符中说明;

=1~FEH,表明该USB设备属于某个明确的设备类,例如04H代表显示设备

=FFH,厂商自定义的设备类。

【5】db  00H――bDeviceSubClass段

     指明USB设备所述的设备子类。

其值依赖bDeviceClass。

    =0,此时bDeviceClass必须首先为0

    =1~FEH,详细的设备子类。

例如如果bDeviceClass=04H,是显示设备,则bDeviceSubClass=01H,表示CRT显示器;

    =FFH,厂家自定义

【6】db  00H――bDevicePortcol段

    指明USB所使用的设备类协议。

其值依赖bDeviceClass和bDeviceSubClass。

=0,表示该设备不使用任何设备类协议。

=1~FEH,则该USB必须属于某个明确的设备类和子设备类。

如视频类协议(UVC),音频类协议(UAC)等。

=FFH,厂家自定义。

【7】db  64――bMaxPacketSize0段

    指明该USB设备端点0控制传输所支持的最大数据包长度,单位字节。

【8】dw  0B404H――VID

【9】dw  0410H――PID

【10】dw  0000H――bcdDevice段

    指明USB设备版本号。

产品ID

【11】db  1――iManuFacture段

     厂商信息字符串索引值,没有时为0.这里为1,,即下面的“Cypress”字符串。

【12】db  2――iProduct段

     产品信息字符串索引值,没有时为0.后面的“EZ-USB”字符串。

【13】db  0――iSerial段

     USB设备序列号信息字符串索引值,没有时为0.

【14】db  1――bNumConfigurations段

     指明USB设备所支持的配置数。

如果USB设备支持两种传输速率,则该字段指出的是该速率下的配置数,而不是两种速率下的配置数和。

EZ-USBFX2(68013)固件研究(8)——dscr.a51文件【2】设备限定描述符:

DeviceQualDscr

2009-12-1711:

44

设备限定描述符:

DeviceQualDscr

DeviceQualDscr:

     db  DSCR_DEVQUAL_LEN  ;;Descriptorlength

     db  DSCR_DEVQUAL  ;;Decriptortype

     dw  0002H     ;;SpecificationVersion(BCD)

     db  00H       ;;Deviceclass

     db  00H        ;;Devicesub-class

     db  00H        ;;Devicesub-sub-class

     db  64        ;;Maximumpacketsize

     db  1        ;;Numberofconfigurations

     db  0        ;;Reserved

设备限定描述符,9个字段,共10字节。

仅当该USB为高速USB设备,且设备既需支持高速(HighSpeed)又需支持全速(Full)时,就需要用到设备限定描述符。

例如该高速USB设备目前工作于全速模式,则该描述符中包含高速模式的总体信息。

在设备请求处理函数SetupCommand(void)中,当收到读设备限定描述符请求时,会首先判断是否为高速USB设备。

if(HighSpeedCapable())。

【1】db  DSCR_DEVQUAL_LEN――bLength段

    整个设备限定描述符的长度,单位字节,共10个字节。

【2】db  DSCR_DEVQUAL――bDescriptorType段

    指出该描述符类型。

06H->设备限定描述符。

【3】dw  0002H――bcdUSB段

    USB协议版本号。

【4】db  00H――bDeviceClass段

    该USB设备所属的USB设备类。

【5】db  00H――bDeviceSubClass段

    所属子类。

对bDeviceClass的进一步细化分类说明。

【6】db  00H――bDeviceProtocol段

    该设备所使用的设备类协议。

【7】db  64――bMaxPacketSize0段

    端点0控制传输所支持的最大数据包长度,单位字节。

【8】db  1――bNumConfigurations段

    另一速率所支持的配置数。

【9】db  0――bReserved段

    保留,必须为0.

EZ-USBFX2(68013)固件研究(9)——dscr.a51文件【3】配置描述符

2009-12-1714:

40

配置描述符:

HighSpeedConfigDscr/FullSpeedConfigDscr

     db  DSCR_CONFIG_LEN              ;;Descriptorlength

     db  DSCR_CONFIG                 ;;Descriptortype

     db  (HighSpeedConfigDscrEnd-HighSpeedConfigDscr)mod256;;TotalLength(LSB)

     db  (HighSpeedConfigDscrEnd-HighSpeedConfigDscr)/256;;TotalLength(MSB)

     db  1     ;;Numberofinterfaces

     db  1     ;;Configurationnumber

     db  0     ;;Configurationstring

     db  10000000b  ;;Attributes(b7-buspwr,b6-selfpwr,b5-rwu)

     db  100     ;;Powerrequirement(div2ma)

   配置描述符包含8个字段,共9字节。

所有的USB设备至少包含一个配置描述符,例如这里包含两个配置描述符高速HighSpeedConfigDscr和全速FullSpeedConfigDscr。

【1】db  DSCR_CONFIG_LEN――bLength段

    描述符长度,9字节。

【2】db  DSCR_CONFIG――bDescriptorType段

    描述符类型。

【3】db  (HighSpeedConfigDscrEnd-HighSpeedConfigDscr)mod256

db  (HighSpeedConfigDscrEnd-HighSpeedConfigDscr)/256――wTotalLength段

    指明配置信息总长度,2字节表示。

为配置描述符,接口描述符,端点描述符,设备类定义描述符,供应商自定义描述符长度的和。

在这里只有配置、接口和端点描述符。

【4】db  1――bNumInterface段

     指明该配置所支持的接口数(?

),最小为1.

【5】db  1――bConfigurationValue段

    指明该配置的配置值。

例如这里值为1,在重枚举时,主机发送Setconfiguration(x),当x=1时,就调用该配置。

【6】db  00――iConfiguration段

    该配置的字符串索引值,没有时为0.

【7】db  10000000b――bmAttributes段

    指明该配置的特性,8位。

b0~b4,保留,必须为0.

b5:

远程唤醒选择。

=1,支持远程唤醒;=0,不支持远程唤醒。

b6:

是否总线电源选择。

如果该USB设备外加了电源,=1,使用总线电源,=0,使用自供的电源。

b7:

必须为1.

在主机设备请求caseSC_GET_STATUS,caseGS_DEVICE中获得该信息。

【8】db  100――bMaxPower段

    总线供电时,该USB设备可获得的最大电流。

单位2mA,所以最大值为250.如果该电流得不到满足,USB将不能使用这个配置

EZ-USBFX2(68013)固件研究(10)——dscr.a51文件【4】接口描述符

2009-12-1807:

31

接口描述符:

;;InterfaceDescriptor

     db  DSCR_INTRFC_LEN     ;;Descriptorlength

     db  DSCR_INTRFC        ;;Descriptortype

     db  0              ;;Zero-basedindexofthisinterface

     db  0              ;;Alternatesetting

     db  6              ;;Numberofendpoints

     db  0ffH           ;;Interfaceclass

     db  00H              ;;Interfacesubclass

     db  00H              ;;Interfacesubsubclass

     db  0              ;;Interfacedescriptorstringindex

     接口描述符有9个字段,共9字节。

注意,主机不能用SetDescription和GetDescription来设置和读取接口描述符,它只能作为配置描述符的一部分信息返回,在主机发送caseSC_GET_DESCRIPTOR,且caseGD_CONFIGURATION时一并读取。

所以我们看到,在fw.c文件中并没有对接口描述符的判断。

2楼

05210324kw发表于:

2010-4-2918:

49:

00

【1】db  DSCR_INTRFC_LEN――bLength段

    描述符长度。

【2】db  DSCR_INTRFC――bDescriptorType段

     描述符类型。

【3】db  0――bInterfaceNumber段

    指明该接口的接口号。

【4】db  0――bAlternateSetting段

    指明接口的可替换设置值。

【5】db  6――bNumberEndpoints段

    指明接口所使用的断点数,不包括端点0.

【6】db  0ffH――bInterfaceClass段

    指明接口所使用的设备类。

   =0,保留。

=1~FEH,表明该接口属于某个明确的USB设备类。

=FFH,厂家自定义的设备类。

【7】db  00H――bInterfaceSubClass段

    该接口所属的USB设备子类。

【8】db  00H――bInterfaceProtocol段

    该接口所使用的设备类协议。

【9】db  0――iInterface段

    接口字符串描述符的索引值,没有时为0.

EZ-USBFX2(68013)固件研究(11)——dscr.a51文件【5】端点描述符

2009-12-1816:

50

;;EndpointDescriptor

     db  DSCR_ENDPNT_LEN     ;;Descriptorlength

     db  DSCR_ENDPNT        ;;Descriptortype

     db  02H              ;;Endpointnumber,anddirection

     db  ET_BULK           ;;Endpointtype

     db  00H              ;;Maximunpacketsize(LSB)

     db  02H              ;;Maxpackectsize(MSB)

     db  00H              ;;Pollinginterval

    端点描述符有6个字段,共7字节。

和接口描述符一样,也不能由主机通过发送GetDedcription()请求读取,只能作为配置信息caseGD_CONFIGURATION的一部分返回给主机。

【1】db  DSCR_ENDPNT_LEN――bLength段

    该描述符长度,单位字节。

【2】db  DSCR_ENDPNT――bDescriptorType段

    该描述符类型。

【3】db  02H――bEndpointAddress段

     指明端点的端点号及传输方向。

     b0~b3:

该端点的端点号。

如0001端点1,0010端点2;

     b4~b6:

:

保留,必须为0

     b7:

端点传输方向。

1-IN传输;0-OUT传输             

【4】db  ET_BULK――bmAttributes段

    指明端点的一些特性。

    b0~b1:

端点的传输类型。

00-控制传输,01-同步传输,10-块传输,11-中断传输

    b2~b3:

当该端点为同步端点时,这两位指出同步类型。

00-非同步,01-异步,10-自适应,11-同步

    b4~b5:

端点用法类型。

00-数据端点,01-显示反馈端点,10-隐式反馈端点,11-保留

    b6~b7:

保留,必须为0           

【5】db  00H――wMaxpacketSize段(LSB)

    指明端点所支持的最大数据包长度,共16位。

    b0~b10:

端点所支持的最大数据包长度。

    b11~b12:

当该端点为高速中断端点或同步端点时,这两位指出每小帧中最多传输的事务数。

00-每小帧1次(默认),01-每小帧2次(附加一次),10-每小帧3次(附加2次),11-保留。

    b13~b15:

保留,必须为0           

【5】db  02H――wMaxpacketSize段(MSB)

     高8位。

数据包大小为:

0000001000000000,取0~10位,还是0200,512字节。

             

【6】db  00H――bInterval段

    指明端点数据传输的访问间隔。

    低速中断端点:

=10~255ms.

    全速中断端点:

=1~255ms              

    高速中断端点:

=1~16,访问间隔为2(bInterval-1)(幂)×1us

    全速/高速同步端点:

=1~16,访问间隔为2(bInterval-1)(幂)×1ms和2(bInterval-1)(幂)×1us

    高速块/控制out端点:

指明其最大NAK握手包发送速率。

        =0,表示该端点永远不会发出NAK握手包

        =其他值,表示每个bInterval时间内,该端点最多只能发送一次NAK握手包。

   其他类型端点:

该字段无效。

EZ-USBFX2(68013)固件研究(12)——dscr.a51文件【6】字符串描述符

2009-12-1816:

51

字符串描述符:

StringDscr1:

StringDscr1:

  

     db  StringDscr1End-StringDscr1     ;;Stringdescriptorlength

     db  DSCR_STRING

     db  'C',00

     db  'y',00

     db  'p',00

     db  'r',00

     db  'e',00

     db  's',00

     db  's',00

StringDscr1End:

   3个自独,长度是变化的(字节)。

偏移量

    域

  大小

   值

    描述

     0

bLength

    1

    N+2

此描述表的字节数

     1

bDescriptorType

    1

    常量

字串描述表类型

     2

wLANGID[0]

    2

    数字

语言标识(LANGID)码0

    …

    …

    …

     N

wLANGID[x]

    2

    数字

语言标识(LANGID)码X

【1】db  StringDscr1End-StringDscr1――bLength段

    描述符长度

【2】db  DSCR_STRING――bDescriptorType段

    描述符类型。

【3】Unicode编码的字符串。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1