打印
[应用相关]

usb协议相关学习分享——设备描述符

[复制链接]
4482|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Jacquetry|  楼主 | 2023-11-24 17:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
设备描述符通常在插入后最先被主机读取,每个设备都有且只有一个设备描述符
struct _DEVICE_DESCRIPTOR_STRUCT 
{
    BYTE bLength;         
    BYTE bDescriptorType;  
    WORD bcdUSB;           
    BYTE bDeviceClass;                        
    BYTE bDeviceSubClass;  
    BYTE bDeviceProtocol;  
    BYTE bMaxPacketSize0;  
    WORD idVendor;         
    WORD idProduct;      
    WORD bcdDevice;        
    BYTE iManufacturer;   
    BYTE iProduct;        
    BYTE iSerialNumber;  
    BYTE bNumConfiguration;
}
上面是关于设备描述符的相关结构体,下面来挨个介绍下它的含义。
bLength : 用来确定描述符的大小.固定值为0x12.也就是整个结构体占18个字节。
bDescriptorType : 设备描述符类型.固定为0x01.
bcdUSB : 这个就相当于usb的版本号.前面的bcd前缀代表使用的是BCD码表示。
bDeviceClass :bDeviceSubClass : bDeviceProtocol :

这三个分别代表设备类型,子类型,设备使用的协议,包含图像类、无线类、人机交互类、音频类等等,子类比如的音频控制、音频流等等,协议比如鼠标、键盘等
bMaxPacketSize0 : 端点0最大分组大小(只有8,16,32,64有效).
idVendor : 供应商ID.由USB协议分配,厂商需要缴纳一定费用才能申请
idProduct : 产品ID。
bcdDevice : 设备出产编码.由厂家自行设置.
iManufacturer : 厂商描述符字符串索引.索引到对应的字符串描述符. 为0则表示没有.
iProduct : :产品描述符字符串索引.同上.
iSerialNumber : 设备序列号字符串索引.同上.
bNumConfigurations : 可能的配置数.定义设备以当前速度支持的配置数量

使用特权

评论回复
沙发
jf101| | 2023-11-30 12:20 | 只看该作者
设备描述符就是描述设备相关数据参数

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

91

主题

1719

帖子

0

粉丝