首页
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). 一个设置描述符可以
热门专题
R语言一列数据小写怎么改成大写
computed有参数吗
element表格展开表格
CSP破解1.10.6补丁
mvc后台获取file
mapreduce cleanup()方法删除中间表
dmp文件怎么查看 toad
sparksql 提高写文件的并行度
FH ADMIN 前端空间UI
思科模拟器主机配置交换机方法步骤图
C# WPF DataGrid模板无法绑定数据
kali 木马永久后门
与“www.fiddler2.com”的连接失败
Android 蓝牙 开源库
visual studio工具箱控件属性介绍
不使用JDK而使用JRE
es6的引用数据类型
winform settngs 保存位置在哪里
树莓派 国内 Docker 源
phpmyadmin4.0漏洞