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

长度为零的USB获取描述符请求

是指在USB通信中,设备端收到主机端发送的获取描述符请求时,如果请求中的wLength字段为零,则设备端应该返回一个长度为零的数据包作为响应。

USB(Universal Serial Bus)是一种用于连接计算机和外部设备的通用串行总线标准。USB设备通过描述符来描述自身的特性和功能。获取描述符请求是主机端向设备端发送的一种控制传输请求,用于获取设备的描述符信息。

长度为零的USB获取描述符请求的主要作用是用于查询设备的存在性和状态,而不需要获取具体的描述符数据。这种请求通常用于设备的插拔检测、设备初始化等场景。

优势:

  1. 快速响应:长度为零的请求可以减少数据传输量,从而提高响应速度。
  2. 节省带宽:对于只需要设备状态信息而不需要具体描述符数据的情况,长度为零的请求可以节省带宽资源。

应用场景:

  1. 设备插拔检测:通过发送长度为零的请求,主机可以快速检测设备的插拔状态,以便进行相应的处理。
  2. 设备初始化:在设备初始化阶段,主机可以发送长度为零的请求来获取设备的状态信息,以便进行后续的配置和初始化操作。

腾讯云相关产品推荐: 腾讯云提供了一系列与云计算相关的产品和服务,以下是一些与USB设备相关的产品推荐:

  1. 云服务器(Elastic Compute Cloud,简称CVM):提供弹性计算能力,可用于搭建USB设备管理系统。
  2. 云物理服务器(Dedicated Host):提供独享的物理服务器资源,适用于对性能和安全性要求较高的USB设备应用。
  3. 云数据库(TencentDB):提供高可用、可扩展的数据库服务,可用于存储USB设备相关的数据。
  4. 人工智能服务(AI Lab):提供丰富的人工智能算法和模型,可用于USB设备数据的分析和处理。

更多关于腾讯云产品的详细介绍和使用方法,请访问腾讯云官方网站:https://cloud.tencent.com/

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Linux驱动开发: USB驱动开发

USB 2.0连接线最大长度5米,但如果用五个USB适配器,则最大长度可达30米。...如bDeviceClass 域,此域也须 如bDeviceClass 域FFH,此域所有值保留。...如果设备支持设备类相关协议,此码标志了设备类值。如果此域,则此设备不支持设备类相关协议,然而,可能它接口支持设备类相关协议。如果此域FFH,此设备使用厂商定义协议。...6 bInterfaceSubClass 1 子类 子类:这些值定义视bInterfaceClass域而定。 如果bInterfaceClass域则此域值必须。...除了描述符中描述端点外,每个设备必须要有一个默认控制型端点,地址0,它数据传输双向,而且没有专门描述符,只是在设备描述符中定义了它最大包长度

69.8K20

硬件笔记(8)----USB学习笔记5

偏移 字段 大小(字节) 说明 0 bLength 1 该描述符长度 = 18 个字节 1 bDescriptorType 1 描述符类型 = 设备(01h) 2 bcdUSB 2 USB 规范版本(...该描述符会提供主机必须获取端点信息。这些信息包括端点方向、传输类型和数据包最大尺寸。表 9 显示是端点描述符结构。...3…0:端点数量位 6…4:预留,复位位 7:端点方向。...支持两种速度配置设备都需要具备该描述符请求了该描述符情况下,如果设备正在全速运行,那么它会通知主机:设备以高速运行时操作有什么区别。...USB 2.0 设备标 准描述符中 bcdUSB 字段值表示设备支持通过发出GetDescriptor(BOS)请求读取 BOS 描述符

1.7K20
  • 基于FPGAUSB接口控制器设计(VHDL)(中)

    设备描述符包含是设备信息,而 USB 请求是指 USB 主机和设备之间获取特定信息格式,标准 USB 请求有 11 个。...• 主机发送获取配置描述符请求 Get_Descriptor(wValue = 0x02),此时请求仅仅是配置描述符,总长度 9 个字节。...• 主机再次发送获取配置描述符请求 Get_Descriptor(wValue = 0x02),这次请求数据长度可能会是 0xFF,这表示主机要求获取所有的配置信息,包括配置描述符、接口描述符和端点描述符...功能:主机要求获取目前配置数值。 数据:设备到主机,长度 1 字节,目前配置索引。 格式: ? 说明:当前配置数值作为数据被传送回主机。...功能:主机要求获取一个描述符。 数据:设备到主机,所请求获取描述符长度。 格式: ?

    1.5K20

    USB协议基本知识

    ,这种状态就是地址态; 5、配置态(Configured):通过各种标准USB请求命令来获取设备各种信息,并对设备某些信息进行改变或设置。...当集线器释放了重启状态,设备此时处于缺省状态,且已准备好在端点通过缺省通道响应主机控制传输。缺省地址00h,设备能从总线获取高达100mA电流。...7、获取最大数据包长度 主机向address 0发送Get_Device_Deor(读设备描述符)报文,以取得缺省控制管道所支持最大数据包长度。...并在有限时间内等待USB设备响应。该长度包含在设备描述符bMaxPacketSize0字段中,其地址偏移量7,所以这时主机只需读取该描述符前8个字节。...例:当主机收到正确前16字节描述符后,会给设备分配一个地址,我PC分配地址:0x03(这个要看你机子当时USB接口设备数目而定) Set_Address 请求所发送数据:00 05 03

    2.7K20

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

    设备加入USB网络后,USB主机立即发送设置请求。将指示该设备选择配置和接口,以匹配USB主机上运行应用程序需求。选择配置和接口后,设备必须活动端点提供服务,以此与USB主机交换数据。...USB主机可以动态选择接口。 接口描述符永远不会在端点编号中包含端点0。如果接口仅使用端点0,则必须将字段bNumEndpoints设置。...如果设备不支持字符串描述符,则必须将设备,配置和接口描述符中对字符串描述符所有引用都设置。 字符串描述符以Unicode编码,因此单个产品可以支持多种语言。...请求字符串描述符时,请求者使用USB-IF定义16位语言ID(LANGID)指定所需语言(详情请参阅语言标识符(LANGID))。...数组大小(以字节单位)是通过描述符第一个字节值减去2而得出。 UNICODE字符串描述符不是以NULL结尾。字符串长度是通过从描述符第一个字节值中减去2来计算

    53430

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

    设备加入USB网络后,USB主机立即发送设置请求。将指示该设备选择配置和接口,以匹配USB主机上运行应用程序需求。选择配置和接口后,设备必须活动端点提供服务,以此与USB主机交换数据。...USB主机可以动态选择接口。 接口描述符永远不会在端点编号中包含端点0。如果接口仅使用端点0,则必须将字段bNumEndpoints设置。...如果设备不支持字符串描述符,则必须将设备,配置和接口描述符中对字符串描述符所有引用都设置。 字符串描述符以Unicode编码,因此单个产品可以支持多种语言。...请求字符串描述符时,请求者使用USB-IF定义16位语言ID(LANGID)指定所需语言(详情请参阅语言标识符(LANGID))。...数组大小(以字节单位)是通过描述符第一个字节值减去2而得出。 UNICODE字符串描述符不是以NULL结尾。字符串长度是通过从描述符第一个字节值中减去2来计算

    56920

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

    设备加入USB网络后,USB主机立即发送设置请求。将指示该设备选择配置和接口,以匹配USB主机上运行应用程序需求。选择配置和接口后,设备必须活动端点提供服务,以此与USB主机交换数据。...USB主机可以动态选择接口。 接口描述符永远不会在端点编号中包含端点0。如果接口仅使用端点0,则必须将字段bNumEndpoints设置。...如果设备不支持字符串描述符,则必须将设备,配置和接口描述符中对字符串描述符所有引用都设置。 字符串描述符以Unicode编码,因此单个产品可以支持多种语言。...请求字符串描述符时,请求者使用USB-IF定义16位语言ID(LANGID)指定所需语言(详情请参阅语言标识符(LANGID))。...数组大小(以字节单位)是通过描述符第一个字节值减去2而得出。 UNICODE字符串描述符不是以NULL结尾。字符串长度是通过从描述符第一个字节值中减去2来计算

    52110

    基于FPGAUSB接口控制器设计(VHDL)(下)

    conv_integer(data_in); -- 判断数据长度是否 if read_in = 0 then handle_step := 7...USB 标准请求已经在前面做了介绍,下面就以获取描述符请求例介绍一下请求响应实现方法,其他标准请求以及厂商请求获取、设置密码)相对来说比较简单,实现方法请读者参考源代码。...获取描述符请求是最为重要请求,因为这在设备枚举过程中是必需,它是主机了解设备第一个步。获取描述符请求处理流程如图 47 所示。 ?...图 47 获取描述符处理流程 获取设备描述符请求响应实现代码如下: -- 获取描述符请求响应状态 when TS_SEND_DESCRIPTOR => handle_step := 0;...• ULONG TransferBufferLength 发送或者接收数据长度。 • UCHAR RequestTypeReservedBit 请求类型位掩码,一般

    1.4K20

    基于FPGAUSB接口控制器设计(附代码)

    conv_integer(data_in); -- 判断数据长度是否 if read_in = 0 then handle_step := 7...USB 标准请求已经在前面做了介绍,下面就以获取描述符请求例介绍一下请求响应实现方法,其他标准请求以及厂商请求获取、设置密码)相对来说比较简单,实现方法请读者参考源代码。...获取描述符请求是最为重要请求,因为这在设备枚举过程中是必需,它是主机了解设备第一个步。获取描述符请求处理流程如图 47 所示。...图 47 获取描述符处理流程 获取设备描述符请求响应实现代码如下: -- 获取描述符请求响应状态 when TS_SEND_DESCRIPTOR => handle_step := 0;...• ULONG TransferBufferLength 发送或者接收数据长度。 • UCHAR RequestTypeReservedBit 请求类型位掩码,一般

    2.4K10

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

    HID是一种USB通信协议,无需安装驱动就能进行交互,在学习HID之前,先来复习一下USB协议相关内容。 USB设备描述符-概述 当插入USB设备后,主机会向设备请求各种描述符来识别设备。...在获取描述符时,先获取设备描述符,然后再获取配置描述符,根据配置描述符配置集合长度,一次将配置描述符、接口描述符、端点描述符一起一次读回。其中可能还会有获取设备序列号,厂商字符串,产品字符串等。...厂商自定义类型,0x00不是在设备描述符中定义,如HID BYTE bDeviceSubClass; //usb分配子类代码,同上,值由USB规定和分配,HID设备此值0 BYTE...USB HID类描述符结构 偏移量 域 大小 值 描述 0 bLength 1 数字 此描述符长度(以字节单位) 1 bDescriptorType 1 常量 描述符种类(此处0x21即HID类描述符...USB设备 1=从USB设备到USB HOST 位6~5: 01=请求类型设备类请求 位4~0: 0001=请求对象接口(interface) 因而,针对HID设备类请求,仅仅10100001

    12.3K50

    USB通信基础知识

    允许最大层数6层(出去主机);每层电缆最大长度5米,电缆总长度30米;每层最大允许接5个DEVICE(设备); 3 USB系统程序 1....应用程序:应用程序运行与USB设备所连接主机上。部分应用程序会由操作系统主机提供,大部分应用程序由USB设备供应商提供。 2. 驱动程序:驱动程序服务于特定操作系统,USB设备提供支持。...6.2 信号层 6.2.1设备速度检测 6.2.2 信号编码 USB数据采用反向不归编码方式(NRZI:none-return to zero inverted),并对D+和D-线所处不同状态定义成...获取(device descriptor) 获取(configuration descriptor) 获取(string descriptor)(可选) 配置 6.6.1 USB描述符 通过一套描述符...、厂商信息、USB协议类型、端点包数据最大长度等,每个USB设备只有一个设备描述符

    2.1K10

    USB 协议核心概念与实践

    USB 101 首先要明确一点,USB 协议是以主机中心 (Host Centric),也就是说只有主机端向设备端请求数据后,设备端才能向主机发送数据。...,如接口、端点和字符串描述符,因此需要 wTotalLength 来表示返回数据长度。...端点描述 端点描述符用来描述除了端点(ep0)之外其他端点,端点总是被假定为控制端点,并且在开始请求任意描述符之前就已经被配置好了。...__le16 wIndex; // 同上 __le16 wLength; // 如果请求包含 Data Stage,则指定数据长度 } __attribute__ ((packed)); 下面是一些标准请求示例...('test') 总的来说分为几步, 根据设备描述符查找到指定设备 获取该设备配置描述符,选择并激活其中一个 在指定配置中查找接口和端点描述符 使用端点描述符进行数据传输 如果不清楚 USB 工作原理

    1.6K51

    【专业技术】USB体系结构

    每个事务处理包含一个地址字段,它标识目标设备或集线器,低速设备只能看见低速事务处理,它总是跟在一个高带前导事务处理之后 USB信号环境 USB采用了NRZI(反相非归)编码和差分信号。...设备描述符: 字段编号 字段名 字段大小(字节) 字段取值 说明 0 长度 1 数字 描述符长度(以字节单位) 1 描述符类型 1 常数 设备描述符,0x01 2 USB版本号 2 BCD 4...: 字段编号 字段名 字段大小(字节) 字段取值 说明 0 长度 1 数字 描述符长度(以字节单位) 1 描述符类型 1 常数 配置描述符,0x02 2 总长度 2 数字 用于配置返回数据长度...接口描述符: 字段编号 字段名 字段大小(字节) 字段取值 说明 0 长度 1 数字 描述符长度(以字节单位) 1 描述符类型 1 常数 接口描述符, 2 接口数 1 数字 接口编号。...端点描述符: 字段编号 字段名 字段大小(字节) 字段取值 说明 0 长度 1 数字 描述符长度(以字节单位) 1 描述符类型 1 常数 端点描述符,0x05 2 端点地址 1 端点 描述符所描述

    1.2K60

    USB总线-Linux内核USB3.0设备控制器之UDC驱动分析(六)

    _gadget_ep0_desc = { .bLength = USB_DT_ENDPOINT_SIZE, // 端点描述符长度 .bDescriptorType = USB_DT_ENDPOINT...命令类型由USB3_DEPnCMD寄存器bit[0:3]位决定,bit[10]控制命令是否执行,软件设置1则端点开始执行命令,执行完毕,端点自动清,软件可以根据此位判断端点是否执行完命令。...后者通过端点描述符USB3.0端点伴侣描述符进行匹配,使用较多,返回值1时表示匹配成功,返回值0表示匹配失败,其匹配流程如下: 若ep->claimed字段true说明该端点已经被使用,则直接返回...从started_list链表中获取一个USB请求。...2.7.map和unmap USB请求 dwc3驱动在发送USB请求时候需要调用usb_gadget_map_request映射缓冲区,获取缓冲区DMA地址。

    9.3K20

    高通SDX55平台:adb功能异常

    主要作用是创建设备、给新设备选择新编号,获取设备各种描述符,然后调用usb_new_device注册新设备。...usb_new_device调用usb_enumerate_device获取usb描述符 注:设备描述符在hub_port_init里面获取 如下图获取配置描述符usb_get_configuration...首先从设备描述符里面获取配置描述符数量,然后遍历所有配置描述符获取,将获取描述符格式化到dev->rawdescriptors[cfgno]里面。...usb3.0有超高速伙伴描述符usb_ss_ep_comp_descriptor,所以只有usb3.0会获取它,usb2.0是不会获取这个描述符。...在usb3.0情况下adb需要在查找到每一个endpoint描述服务后,将缓冲区偏移一个高速端点伙伴描述符长度

    3.6K31

    USB Gadget 驱动程序框架

    以访问设备、获取描述符例: Host 要分配地址、把地址发送给设备:不管要模拟什么设备,Gadget 都必须接收地址,这部分由 usb_gadget (硬件相关驱动程序)实现 Host 要读取各类描述符...Host 获取描述符时,方法是固定、通用,这些方法可以由内核统一提供,这就是:usb_gadget_driver。...所以,从获取描述符角度看看,上层软件至少分为 2 层: usb_gadget_driver:实现一些通用 USB 访问方法,比如 Host 访问描述符时,由 usb_gadget_driver 提供...从获取描述符角度理解 Gadget 框架 安装好 gadget 驱动程序后(比如 modprobe g_zero), 它只是构造好了各类描述符。在设备枚举过程会读取描述符。...使用新地址,重新读取设备描述符,设备描述符长度是 18 读取配置描述符:它传入长度是 255,想一次性把当前配置描述符、它下面的接口描述符、端点描述符全部读出来。 读取字符描述符

    3.1K30

    【STM32F429】第4章 ThreadX USBX协议栈基础知识

    然后,事务类型在DATA0和DATA1之间交替,直到所有必需数据都已传输。 3、STATUS阶段是含有长度分组DATA1事务。如果DATA阶段IN,则STATUS阶段OUT,反之亦然。...中断端点数据最大包大小: 全速USB最大64字节。 高速USB最大1024字节。 开发人员可以定义主机多久请求设备进行数据传输。例如,对于鼠标,可以保证每10 ms数据传输速率。...数据域(DATA):长度0~1023字节,在不同传输类型中,数据域长度各不相同,但必须整数个字节长度。...选择配置和接口后,设备必须活动端点提供服务,以此与USB主机交换数据。 常用描述符如下: 设备描述符。 配置描述符。 接口描述符。 一个或多个端点描述符。...具体各种描述符定义,在后面章节大家说明。 4.9 USB类 常用USB类如下: 其中HID,CDC,Audio,MSC等类,将在后续章节详细说明。

    62610

    【STM32F429】第8章 学习USB协议栈前要了解基础知识

    然后,事务类型在DATA0和DATA1之间交替,直到所有必需数据都已传输。 3、STATUS阶段是含有长度分组DATA1事务。如果DATA阶段IN,则STATUS阶段OUT,反之亦然。...中断端点数据最大包大小: 全速USB最大64字节。 高速USB最大1024字节。 开发人员可以定义主机多久请求设备进行数据传输。例如,对于鼠标,可以保证每10 ms数据传输速率。...数据域(DATA):长度0~1023字节,在不同传输类型中,数据域长度各不相同,但必须整数个字节长度。...选择配置和接口后,设备必须活动端点提供服务,以此与USB主机交换数据。 常用描述符如下: 设备描述符。 配置描述符。 接口描述符。 一个或多个端点描述符。...具体各种描述符定义,在后面章节大家说明。 8.9 USB类 常用USB类如下: 其中HID,CDC,Audio,MSC等类,将在后续章节详细说明。

    2.1K20

    【STM32F407】第8章 学习USB协议栈前要了解基础知识

    然后,事务类型在DATA0和DATA1之间交替,直到所有必需数据都已传输。 3、STATUS阶段是含有长度分组DATA1事务。如果DATA阶段IN,则STATUS阶段OUT,反之亦然。...中断端点数据最大包大小: 全速USB最大64字节。 高速USB最大1024字节。 开发人员可以定义主机多久请求设备进行数据传输。例如,对于鼠标,可以保证每10 ms数据传输速率。...数据域(DATA):长度0~1023字节,在不同传输类型中,数据域长度各不相同,但必须整数个字节长度。...选择配置和接口后,设备必须活动端点提供服务,以此与USB主机交换数据。 常用描述符如下: 设备描述符。 配置描述符。 接口描述符。 一个或多个端点描述符。...具体各种描述符定义,在后面章节大家说明。 8.9 USB类 常用USB类如下: 其中HID,CDC,Audio,MSC等类,将在后续章节详细说明。

    81311
    领券