首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【STM32F429】第9章 RL-USB各种USB描述符简介

9.1初学者重要提示 9.2 USB描述符概述 9.3 USB设备描述符 9.4 USB配置描述符 9.5 USB接口描述符 9.6 USB端点描述符 9.7 USB字符串描述符...9.3 USB设备描述符(Device Descriptor) 设备描述符为主机提供了许多信息,如设备需要满足的USB规范、设备配置编号、设备支持的协议、供应商标识(idVendor又称为VID,每个公司只能从...设备描述符包含了 USB 设备的重要信息。 9.4 USB配置描述符(Configuration Descriptor) 该配置描述符包含有关设备的功率需求,它可以支持的接口数量。...字符串描述符以Unicode编码,因此单个产品可以支持多种语言。请求字符串描述符时,请求者使用USB-IF定义的16位语言ID(LANGID)指定所需的语言(详情请参阅语言标识符(LANGID))。...字符串索引零用于所有语言,并返回一个字符串描述符,该描述符包含设备支持的两字节LANGID代码的数组。 LANGID代码的数组不是以NULL结尾的。

50930
您找到你想要的搜索结果了吗?
是的
没有找到

【STM32H7】第9章 RL-USB各种USB描述符简介

9.1初学者重要提示 9.2 USB描述符概述 9.3 USB设备描述符 9.4 USB配置描述符 9.5 USB接口描述符 9.6 USB端点描述符 9.7 USB字符串描述符...9.3 USB设备描述符(Device Descriptor) 设备描述符为主机提供了许多信息,如设备需要满足的USB规范、设备配置编号、设备支持的协议、供应商标识(idVendor又称为VID,每个公司只能从...设备描述符包含了 USB 设备的重要信息。 9.4 USB配置描述符(Configuration Descriptor) 该配置描述符包含有关设备的功率需求,它可以支持的接口数量。...字符串描述符以Unicode编码,因此单个产品可以支持多种语言。请求字符串描述符时,请求者使用USB-IF定义的16位语言ID(LANGID)指定所需的语言(详情请参阅语言标识符(LANGID))。...字符串索引零用于所有语言,并返回一个字符串描述符,该描述符包含设备支持的两字节LANGID代码的数组。 LANGID代码的数组不是以NULL结尾的。

50720

【STM32F407】第9章 RL-USB各种USB描述符简介

9.1初学者重要提示 9.2 USB描述符概述 9.3 USB设备描述符 9.4 USB配置描述符 9.5 USB接口描述符 9.6 USB端点描述符 9.7 USB字符串描述符...9.3 USB设备描述符(Device Descriptor) 设备描述符为主机提供了许多信息,如设备需要满足的USB规范、设备配置编号、设备支持的协议、供应商标识(idVendor又称为VID,每个公司只能从...设备描述符包含了 USB 设备的重要信息。 9.4 USB配置描述符(Configuration Descriptor) 该配置描述符包含有关设备的功率需求,它可以支持的接口数量。...字符串描述符以Unicode编码,因此单个产品可以支持多种语言。请求字符串描述符时,请求者使用USB-IF定义的16位语言ID(LANGID)指定所需的语言(详情请参阅语言标识符(LANGID))。...字符串索引零用于所有语言,并返回一个字符串描述符,该描述符包含设备支持的两字节LANGID代码的数组。 LANGID代码的数组不是以NULL结尾的。

46910

USB初学(一)---USB-HID的初步认识【转】

USB设备描述符-概述 当插入USB设备后,主机会向设备请求各种描述符来识别设备。那什么是设备描述符呢?...Descriptor即描述符,是一个完整的数据结构,可以通过C语言等编程实现,并存储在USB设备中,用于描述一个USB设备的所有属性,USB主机是通过一系列命令来要求设备发送这些信息的。...USB有5种标准描述符: 设备描述符 配置描述符 字符描述符 接口描述符 端点描述符 描述符之间有一定的关系,一个设备只有一个设备描述符,而一个设备描述符可以包含多个配置描述符,而一个配置描述符可以包含多个接口描述符...由此我们可以看出,USB的描述符之间的关系是一层一层的,最上一层是设备描述符,下面是配置描述符,再下面是接口描述符,再下面是端点描述符。...设备描述符 struct _DEVICE_DEscriptOR_STRUCT { BYTE bLength; //设备描述符的字节数大小 BYTE bDescriptorType;

10.4K50

Linux USB 设备基础理论

Use class information in the interface Descriptors 01h 接口描述符 音频 02h 设备描述符、接口描述符 通讯设备,如电话,moden等等 03h...接口描述符 HID设备 05h 接口描述符 Physical 06h 接口描述符 Image 07h 接口描述符 打印机 08h 接口描述符 大容量存储 09h 设备描述符 Hub USB集线器 0Ah...Billboard Device Class 12h 接口描述符 USB Type-C Bridge Class DCh 设备描述符、接口描述符 Diagnostic Device E0h 接口描述符...无线控制器 EFh 设备描述符、接口描述符 Miscellaneous FEh 接口描述符 Application Specific FFh 设备描述符、接口描述符 厂商用自定义 参考文献# USB...设备类bDeviceClass、bDeviceSubClass、bDeviceProtocol By USB 中文网 USB设备描述符中的idVendor、idProduct和bcdDevice By

28130

Win知识 – 程序是怎样跑起来的(合集)

C语言等高级编程语言并不依存于特定的操作系统。这是因为人们希望不管是Windows还是Linux,都能使用几乎相同的源代码。...图9-6 高级编程语言的函数调用在编译后变成了系统调用 在高级编程语言中,也存在可以直接调用系统调用的编程语言。不过,利用这种方式做成的应用,移植性①并不友好(也俗称为有恶意行为的应用)。...在用C语言等高级编程语言开发的Windows应用中,大家很少能接触到直接控制硬件的指令。这是因为硬件的控制是由Windows全权负责的。 不过,Windows提供了通过应用来间接控制硬件的方法。...带有“设备描述表的句柄”这一注释的参数hdc,是用来指定字符串及图形等绘制对象的识别值,表示的也不是直接硬件设备。...代码清单11-1 TextOut函数的语法(C语言) BOOL TextOut( HDC hdc, //设备描述表的句柄 int nXStart, /

19110

USB 描述符和 USB 枚举

使用描述符(Descriptors),有设备描述符、配置描述符、接口描述符、端点描述符。所谓描述符,就是一些格式化的数据,用来描述信息。...一个 USB 设备, 只有一个设备描述符:用来表示设备的 ID、它有多少个配置、它的端点 0 一次最大能传输多少字节数据 可能有多个配置描述符:用来表示它有多少个接口、供电方式、最大电流 一个配置描述符下面...3.1 设备描述符 3.2 配置描述符 3.3 接口描述符 3.4 端点描述符 3.5 示例 在 Ubuntu 中可以执行lsusb -v查看 USB 设备的描述符信息: $ sudo lsusb...设备枚举过程示例 使用"usbprotocolsuite"打开,可以看到设备的枚举过程: 使用控制传输,读取设备信息(设备描述符):第一次读取时,它只需要得到8 字节数据,因为第 8 个数据表示端点 0...Host 分配地址给设备,然后把新地址发给设备: 使用新地址,重新读取设备描述符,设备描述符长度是 18: 读取配置描述符:它传入的长度是 255,想一次性把当前配置描述符、它下面的接口描述符、端点描述符全部读出来

35220

使用BitBlt实现位图背景透明

nWidth 表示绘制位图目标的区域宽度; int nHeight 表示绘制位图目标的区域高度; CDC* pSrcDC 表示存储源位图的设备描述表...下面是整个实现过程: 1) 创建一张大小与需要绘制图像相同的位图作为“掩码”位图(maskBmp); 2) 将新创建的“掩码”位图存储至掩码位图的设备描述表(maskDC)中; 3) 把内存设备描述表...,即不需要显示的颜色; 4) 复制粘贴位图到“掩码”位图的设备描述表中,这个时候“掩码”位图设备描述表中存放的位图与位图设备描述表中的位图一样 (maskDC.BitBlt(……)) ,此时会进行掩码运算...第二步:将创建的掩码位图选进掩码位图的设备描述表中 如下: CDC maskDC; ...span>//初始化设备DCCBitmap *oldMaskBmp = maskDC.SelectObject(&maskBmp); //将掩码位图存入,并返回旧的位图 第三步:将内存设备描述表的背景色设置为透明色

1.2K30

13.USB驱动

USB设备就必须回答"我是xxx", 并且回答的语言必须是中文 USB总线驱动程序会发出某些命令想获取设备信息(描述符), USB设备必须返回"描述符"给PC 问3....retval = usb_get_device_descriptor(udev, 8);//(2)获得USB设备描述符前8个字节 ......(2)usb_get_device_descriptor()函数主要是获取目标设备描述符前8个字节,为什么先只开始读取8个字节?...是因为开始时还不知道对方说支持的信包容量,这8个字节是每个设备都有的,后面再根据设备的数据,通过usb_get_device_descriptor()重读一次目标设备的设备描述结构。...; //本描述符的size __u8 bDescriptorType;//描述符的类型,这里是设备描述符DEVICE __le16 bcdUSB;//指名usb的版本,比如usb2.0

1.9K20

高通SDX55平台:adb功能异常

usb_init用于初始化usb内核框架,主要进行以下初始化: USB debugfs初始化:创建字符设备/sys/kernel/debug/usb/devices,读取该字符设备可以得到usb总线拓扑结构、带宽、设备描述信息...hub_port_init里面获取 如下图获取配置描述符,usb_get_configuration首先从设备描述符里面获取配置描述符的数量,然后遍历所有配置描述符并获取,将获取到描述符格式化到dev-...usb devices: 如上图,find_usb_device读取字符设备/dev/bus/usb/ {bus_id}/ {device_id}获取设备各种描述符: 然后跳过设备描述符和配置描述符...3 问题小结 3.1 问题根因 adb代码里面find_usb_device,当adb server在读取到的usb设备描述符里面查找adb对应的interface和endpoint描述符来注册adb,...由于usb3.0在设备描述符里面会加入usb高速端点伙伴描述符,而在usb2.0的设备描述符里面没有。

3.3K31

USB Gadget 驱动程序框架

endpoint 上读写数据 基于 Gadget 驱动框架模拟一个 USB 设备时,endpoint 的数据传输能力是底层的 USB Device Controller 驱动提供的,我们要做的就是: 提供各类设备描述符...每个 USB Device 都有 1 个设备描述符 都 1 个或多个配置描述符 每个配置描述符里面有 1个 或多个接口描述符 每个接口描述符里面有 0 个多个端点描述符 怎么进行数据传输?...从构造描述符的角度理解 Gadget 框架 假设你要【模拟】一个 USB 设备: 这个 USB 设备含有厂家信息:它记录在设备描述符里,所以设备描述符应该由你提供 这个芯片可能有多种配置,这也是由你决定...使用 OTG 线连接电脑和开发板时,电脑软件会执行如下操作: 使用控制传输,读取设备信息(设备描述符):第一次读取时,它只需要得到 8 字节数据,因为第 8 个数据表示端点 0 能传输的最大数据长度。...使用新地址,重新读取设备描述符,设备描述符长度是 18 读取配置描述符:它传入的长度是 255,想一次性把当前配置描述符、它下面的接口描述符、端点描述符全部读出来。 读取字符描述符。

1.9K30

基于FPGA的USB接口控制器设计(VHDL)(中)

设备描述符包含了整个设备的信息以及设备支持的配置号码,每一个设备只能有一个设备描述符。但每一个设备可以有几个配置描述符,它包含了电源管理信息以及所支持的接口号码。...(1)设备描述设备描述符描述了一个 USB 设备的总体信息,它是枚举过程中主机从设备读取的第一个描述符。设备描述符总共有 18 个字节,分为 14 个字段,如表 5 所示。...表 5 设备描述符 ? (2)配置描述符 配置、接口以及端点描述符都是在主机得到设备描述符之后发送给主机的。...说明:wIndex 字段高字节是描述符类型(见描述符类型表),低字节是描述符的数值;wIndex 字段在字符串描述符时是语言 ID,其他情况下是 0。 (9)Set_Feature 代码:0x03。...实际应用中硬件加密设备是为软件开发商提供的一种智能型的软件加密工具,包含一个安装在计算机并行口或 USB 口上的硬件,及一套适用于各种语言的接口软件和工具软件,其目的是通过对软件与数据的加密防止知识产权被非法使用

1.4K20
领券