首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
USB描述符先低字节在高字节
2024-09-06
USB系列之二:读取USB设备的描述符
在前面的文章中,我们已经给出了USB协议的链接地址,从这篇文章起,我们会涉及到许多USB 1.1的内容,我们的指导思想是先从熟悉USB 1.1协议入手,先使用现成的HCD和USBD,直接面对客户端驱动编程,尽快看到成果,使读者对USB的开发充满信心,进而去研究USBD和HCD的编程方法.请读者自行阅读协议,文章中有关协议的详细情况,由于会涉及非常多的文字,恕不能过多解释. 1.USB系统主机端的软件结构 一般来说,教科书或者协议上都会把USB主机端的软件说成有三层,第一层叫主机控制器驱动程序H
USB描述符解析-->枚举.
枚举可以理解为主机按不定的顺序向USB设备讨要设备信息,好给它分配资源,若枚举不成功,就放弃分配资源,免得浪费资源.一般都是使用中断传输方式通信. 常用的描述符有以下几种:01H.设备描述符 02H.配置描述符 03H.字符串描述符 04H.接口描述符 05H.端点描述符 21H:HID描述符 22H:HID报告 一个设备只能有一个设备描述符,而一个设备描述符可以包含多个配置描述符(bNumConfigurations ),一个配置描述符又可以包含多个接口描述符,一个接口使用了几个端点
USB描述符概述
在USB总线接口协议中,规定了一些标准的USB描述符,如表所示. 对于USB设备来说,有些USB描述符是必需的,例如: 设备描述符 配置描述符 字符串描述符 接口描述符 端点描述符 其余一些描述符并非必需,只在特定USB设备中使用,例如:设备限定描述符.其他速率配置描述符用于高速USB设备:OTG设备描述符用于USB OTG外设:超高速端点伴侣描述符用于超高速USB设备. USB描述符其实就是一个数据集合,用来表征USB设备某一方面的功能.USB协议中严格规定了每一种描述符的数据格式.各个USB
USB 描述符
标准的USB设备有5种USB描述符:设备描述符,配置描述符,字符串描述符,接口描述符,端点描述符. // Standard Device Descriptor typedef struct { u8 bLength; // 描述符的长度,固定值12H u8 bDescriptorType; // 描述符类型,设备描述符=01H u16 bcdUSB; // USB规范版本号(采用BCD码,0xAABC) // AA:主板本号 // B: 次版本号 // C: 子次版本号 u8 bDeviceCl
USB学习笔记连载(十二):USB描述符
USB设备是端口,接口,配置的集合,USB协议是以各种USB描述符来表征USB设备的功能.计算机通过这些描述符来获得USB设备的功能. USB描述符包括: USB标准设备描述符,USB集线器描述符.HID描述符,这里主要讲解USB描述符. USB标准设备描述符包括:设备描述符,端点描述符,接口描述符,配置描述符,设备限定描述符,其他描述符.这些所有的描述符都在 官方固件中的 dscr.a51 文件中,注意!!!!! 1.设备描述符 一共18个字节,14个字段.在官方给的固件程序中的描述如下图
USB描述符【整理】
USB描述符 USB描述符信息存储在USB设备中,在枚举过程中,USB主机会向USB设备发送GetDescriptor请求,USB设备在收到这个请求之后,会将USB描述符信息返回给USB主机,USB主机分析返回来的数据,判断出该设备是哪一种USB设备,建立相应的数据链接通道.那么USB描述符信息到底是一个什么样的数据呢,USB协议中有详细描述. 通用的USB描述符信息包括设备描述符.配置描述符.接口描述符和端点描述符,具体不同的USB设备还包括其它类型的描述符,例如,USB鼠标.键盘还包括HID
usb描述符简述(二)
title: usb描述符简述 tags: linux date: 2018/12/18/ 18:25:23 toc: true --- usb描述符简述 转载自cnblog 具体描述符 https://blog.csdn.net/hushiganghu/article/details/54929066 在USB描述符中,从上到下分为四个层次: USB设备描述符(usb_device_descriptor) USB配置描述符(usb_config_descriptor). USB接口描述符(us
2.6 USB摄像头驱动之USB描述符
学习目标:分析USB摄像头驱动的描述符: 一.USB设备描述符 在usb设备驱动分析那一节,也用到了usb描述符. usb描述符可分为: USB设备描述符(usb_device_descriptor): USB配置描述符(usb_config_descriptor): USB接口描述符(usb_interface_descriptor): USB端点描述符(usb_endpoint_descriptor): 其中,一个USB设备描述符可以有多个配置描述符:配置描述符可以有多个接口描述符(比如声卡
USB描述符(转)
//============================================================================// 文件名: USBDESC.C// 用 途: USB描述符// 作 者: shenfei5// 时 间: 2007.2.3// 版 本: V1.10//============================================================================ #include <RTL.h>
usb协议分析-设备描述符配置包-描述符
/* usb协议分析仅供大家参考---设备描述符配置包,设备描述符, 地址设置, 配置描述符, 字符串描述符 */ /* -1- usb设备描述符配置包 */ typedef struct _USB_SETUP_PACKET { REQUEST_TYPE bmRequestType; BYTE bRequest; WORD_BYTE wValue; WORD_BYTE wIndex; WORD wLength; } USB_SETUP_PACKET; .bmRequestType 是包含有下面几
usb驱动开发7之接口描述符
前面struct usb_interface里表示接口设置的struct usb_host_interface被有意的飘过了,咱们在这节主要讲讲这个结构体,同样在include/linux/usb.h文件里定义. /* host-side wrapper for one interface setting's parsed descriptors */ struct usb_host_interface { struct usb_interface_descriptor desc; /* arr
自己总结的USB数据结构及其描述符
背景: USB理论知识光看着空想总觉着丢三落四,好像哪里没法理解到位,自己做个总结. 正文: 1. USB通信的最基本单位是“包”.如果把“包”肢解的话,可以分为各种“域”(7类,即一串二进制数.每类域均有具体的位数规定). 包有三种:令牌包,数据包,握手包 a) 令牌包:输入包,输出包,设置包,帧起始包.(通俗理解为,主机要求设备做什么) b) 数据包:Data0 / Data1. c) 握手包:ACK正确应答包,NAK无效包,STALL延时包. 2. USB是一
lpc1768usb端点响应以及描述符定义
#ifndef __USBEP1_H_ #define __USBEP1_H_ #include "usb.h" #include "usbhw.h" extern s8 sendBuffer[4]; //鼠标数据发送缓冲区 extern u8 mouse_connect; //鼠标连接标志 void usb_ep1_in_process(void); void usb_ep1_out_process(void); #endif #include &qu
USB设备描述符和请求命令
USB设备描述符和请求命令 介绍标准的USB设备描述符和请求命令. 标准的USB描述符 当USB设备第一次连接到主机上时,要接收主机的枚举和配置,目的就是让主机知道该设备具有什么功能.是哪一类的USB设备.需要占用多少USB的资源.使用了哪些传输方式以及传输的数据量多大等等.只有主机完全确认了这些信息后,设备才能真正开始工作.这些信息是通过存储在设备中的USB描述符来体现的. USB设备的属性包括很多内容,为了便于管理,USB协议1.1将这些信息做了分类,定义了很多种描述符,其中标准的描述符包括
数据段描述符和代码段描述符(一)——《x86汇编语言:从实模式到保护模式》读书笔记10
一.段描述符的分类 在上一篇博文中已经说过,为了使用段,我们必须要创建段描述符.80X86中有各种各样的段描述符,下图展示了它们的分类. 看了上图,你也许会说:天啊,怎么这么多段描述符啊!我可怎么记住呢? 别担心,我会在以后的博文中,跟随原书的作者,为您逐步介绍.我们的学习是循序渐进的,所以不要求一下子掌握所有东西.我们的原则是:用到什么学什么.我们今天的重点是"存储段描述符". 二.段描述符的通用格式[1] 段描述符是GDT和LDT中的一个数据结构项,用于向处理器提供有关一个段的位置
操作系统中的描述符和GDT
在操作系统中,全局描述符是什么?GDT又是什么?在进入保护模式之前,准备好GDT和GDT中的描述符是必须的吗?用汇编代码怎么创建描述符?本文解答上面几个问题. 在实模式下,CPU是16位的,意思是,寄存器是16位的,数组总线(data bus)是16位的,但地址总线是20位的.物理内存地址的计算公式是: $$ 物理地址 = 段地址 * 16 + 偏移量 $$ 段地址和偏移量都是16位的,能寻址的最大内存地址是1M. 1M是怎么计算出来的?2的20次方就是1M,能表示的内存地址是 0~(2的20次
python基础----再看property、描述符(__get__,__set__,__delete__)
一.再看property 一个静态属性property本质就是实现了get,set,delete三种方法 class Foo: @property def AAA(self): print('get的时候运行我啊') @AAA.setter def AAA(self,value): print('set的时候运行我啊') @AAA.deleter de
USB设备描述符
/* USB Standard Device Descriptor */ const u8 Virtual_Com_Port_DeviceDescriptor[] = { 0x12, /* bLength */ //USB设备描述符的总长度固定为18个字节,因此为12H USB_DEVICE_DESCRIPTOR_TYPE, /* bDescriptorType */ //USB设备描述符的类型值,固定为01H 0x00, //USB遵循的规范版本号,USB2.0; 0xXXYZ,XX为主版本号
USB2.0协议学习笔记---描述符
USB设备描述符 字段名 长 度(字节) 地址偏移 含 义 bLenth 1 0 描述符长度 bDescriptorType 1 1 描述符类型 (这里为 1) bcdUSB 2 2 USB规范版本号(BCD码) bDeviceClass 1 4 类代码 bDeviceSubClass 1 5 子类代码 bDeviceProtocol 1 6 协议代码 bMaxPackSize0 1 7 端点0最大支持数据包长度 id
USB_4大描述符
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/aaa6695798/archive/2009/11/06/4776202.aspx 在USB描述符中,从上到下分为四个层次: USB设备描述符(usb_device_descriptor). USB配置描述符(usb_config_descriptor). USB接口描述符(usb_interface_descriptor). USB端点描述符(usb_endpoint_descriptor). 一个设置描述符可以
热门专题
ardupilot debug消息
xposed hook 监听消息队列
python中chunksize()迭代
ip地址如何划分子网
urllib库处理所爬取内容怎么汉字编码显示
nvm安装后node不见了
buck PSIM建模
全连接层numpy实现
arcmap分屏联动
Playwright定位列表
php 防止sql注入怎么做的
python 顯示圖像 尺寸
文件夹改变图标INI
django models 字段名称自定义
类似于Excel2Cad的插件
为啥sql结合算法也很难写
win10有自带.net吗
wpf style下如何触发鼠标左键按下
freeswitch 9196没有声音
dapper的设计目标