设备描述符配置包
在USB通讯里,从主控器发出来的第一个配置包就是设备描述符配置包,目的只有一个,就是获取插入的USB属性,以便加载合适的驱动程序。现在就来详细地分析一下设备描述符包的定义。
在USB2.0的协议里找到9.3 USB Device Requests里就找到这个结构的定义,这里我使用C的定义结构如下:
typedef struct _USB_SETUP_PACKET
{
REQUEST_TYPE bmRequestType;
BYTE bRequest;
WORD_BYTE wValue;
WORD_BYTE wIndex;
WORD wLength;
} USB_SETUP_PACKET;
bmRequestType是包含有下面几方面的内容:
D7 D6 D5 D4 D3 D2 D1 D0
在这一个字节里,又按位分为:
D7位是表示后面传送数据的方向位。
当D7等于0时,表示后面的数据是从主控器发送到USB设备。在PC里,就是从PC机发送到USB的设备。
当D7等于1时,表示后面的数据是从USB设备发送到主控器。在PC里,就是从USB设备发送到USB设备。在上次里,我收到并显示出来的数据是80,就表示从USB设备里发送数据给PC。在这里再次给出上一次的包数据:
80 06 00 01 00 00 40 00
这里的80,就是D7位为1。
D6-D5位是请求主分类型
0 是表示标准的请求。
1 是表示类别的请求。
2 是表示厂商的请求。
3 是保留。
D4-D0位是表求接收这个包的接口。
0 是表示USB设备接收。
1 是表示接口接收。
2 是表示端点接收。
3 是表示其它接收,不知道的。
4-31是保留。
bRequest是本描述符的请求类型,也就是后面发送的数据是什么样的东西。由于USB里有很多配置信息,比如获取设备描述符,又有设置USB地址等等,就是通过这个字节来区分的。
从USB协议里查找表9-4,就可看到如下的编码:
GET_STATUS 0
CLEAR_FEATURE 1
Reserved for future use 2
SET_FEATURE 3
Reserved for future use 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
在上面的数据包里,看到它的内容是06,那么它就是GET_DESCRIPTOR类型。也就是主控器想读取USB设备的描述符,到这里就已经分析出来的意思,就是主控器想读取USB描述符,但还不知道是什么描述符的内容。
分享到:
相关推荐
龙芯软件开发------蔡军生.pdf
UOS服务器版MIPS架构龙芯openjdk-8-jdk离线安装包及依赖
龙芯Pmon-gcc-64位编译
此包架构是:龙芯--mips 该包版本:nginx-v1.18 特意买了几台国产机器安装和测试,有多种CPU电脑测试(1.飞腾-鲲鹏--arm64,2.龙芯--loongarch,3.龙芯--mips,4.兆芯-海光-intel-AMD--X86) 因为我们公司也是做...
此包架构是:龙芯--loongarch JDK版本:jdk-v8.0 特意买了几台国产机器安装和测试,有多种CPU电脑测试(1.飞腾-鲲鹏--arm64,2.龙芯--loongarch,3.龙芯--mips,4.兆芯-海光-intel-AMD--X86) 因为我们公司也是做...
此包架构是:龙芯--mips 该包版本:jdk-openjdk-1.8 特意买了几台国产机器安装和测试,有多种CPU电脑测试(1.飞腾-鲲鹏--arm64,2.龙芯--loongarch,3.龙芯--mips,4.兆芯-海光-intel-AMD--X86) 因为我们公司也是...
此包架构是:龙芯--mips 该包版本:mariadb-v10.3 特意买了几台国产机器安装和测试,有多种CPU电脑测试(1.飞腾-鲲鹏--arm64,2.龙芯--loongarch,3.龙芯--mips,4.兆芯-海光-intel-AMD--X86) 因为我们公司也是做...
龙芯系列处理器是中国科学院计算所研制的具有自主知 识产权的通用处理器,它具有低功耗、低成本的特点。龙芯 2E 处理器[3] 是一款实现 64 bit MIPS III 指令集的通用 RISC 处理器。 龙芯 2E 的指令流水线每个时钟...
此包架构是:龙芯--loongarch JDK版本:jdk-v8.0 特意买了几台国产机器安装和测试,有多种CPU电脑测试(1.飞腾-鲲鹏--arm64,2.龙芯--loongarch,3.龙芯--mips,4.兆芯-海光-intel-AMD--X86) 因为我们公司也是做...
此包架构是:龙芯--loongarch 数据库版本:mariadb-v10.3 特意买了几台国产机器安装和测试,有多种CPU电脑测试(1.飞腾-鲲鹏--arm64,2.龙芯--loongarch,3.龙芯--mips,4.兆芯-海光-intel-AMD--X86) 因为我们公司...
龙芯版架构QT软件打包龙芯版架构QT软件打包龙芯版架构QT软件打包龙芯版架构QT软件打包龙芯版架构QT软件打包龙芯版架构QT软件打包龙芯版架构QT软件打包龙芯版架构QT软件打包龙芯版架构QT软件打包龙芯版架构QT软件打包...
此包架构是:龙芯-loongarch 数据库版本:mariadb-v10.3 特意买了几台国产机器安装和测试,有多种CPU电脑测试(1.飞腾-鲲鹏--arm64,2.龙芯--loongarch,3.龙芯--mips,4.兆芯-海光-intel-AMD--X86) 因为我们公司...
龙芯--loongarch,3.龙芯--mips,4.兆芯-海光-intel-AMD--X86) 因为我们公司也是做国产软件的,这些必须测试成功,到客户那里直接安装和使用 安装命令: sudo dpkg -i 你的路径/*.deb 安装完可以直接使用 查看是否...
龙芯--loongarch,3.龙芯--mips,4.兆芯-海光-intel-AMD--X86) 因为我们公司也是做国产软件的,这些必须测试成功,到客户那里直接安装和使用 安装命令: sudo dpkg -i 你的路径/*.deb 安装完可以直接使用 查看是否...
使用方式见龙芯杯比赛文档,或者链接:https://oscourse-tsinghua.gitbook.io/loongsoncsprj2020-manual/ucore/long-xin-bian-yi-huan-jing-pei-zhi
全面介绍龙芯平台的软件开发。剖析各个硬件子模块的初始化过程。致力于国产CPU龙芯平台开发的童鞋不要错过了。
基于SimpleScalar的龙芯CPU模拟器Sim-Godson.pdf
gssproxy-0.7.0-4.ns7_4.mips64 keyutils-1.5.8-3. libbasicobjects-0 libcollection-0.6 libevent-2.0.21-4 libini_config-1.3 libnfsidmap-0.25- libpath_utils-0.2 libref_array-0.1. libtirpc-0.2.4-0. ...
龙芯ls1b-pwm-Led
龙芯中科--龙芯信息化平台的应用迁移工作思考,转自微信号“龙芯中科”