36、USB设备驱动

简介: USB(Universal Serial Bus)串行通用总线,支持即插即用,也称之为菊链(daisy chaining),因为在一条线缆上可以最多链接127个设备;速度传输速率可达4Mb/s~12Mb/s。

    USBUniversal Serial Bus)串行通用总线,支持即插即用,也称之为菊链(daisy chaining,因为在一条线缆上可以最多链接127个设备;速度传输速率可达4Mb/s~12Mb/sUSB采用级联方式。<?xml:namespace prefix = o />

1USB连接拓扑结构

1USB host控制器;host控制器其实也就是一个PCI设备,挂载在PCI总线上。

2USB HubUSB设备。

我们可以将USB设备理解也一个USB Host连接多个逻辑设备。

wps_clip_image-15952

wps_clip_image-6718

2USB通信流程

USB的连接模式是HostDevice的连接模式,所有的请求都是由HostDevice发出。

wps_clip_image-2148

SWsoftware

    每个USB设备都会有多个管道。对于USB设备驱动程序员,主要工作在USB设备层。

对于每个USB设备,都有一个或者多个的接口,每个接口(Interface)有多个端点(Endpoints,每个端点通过管道(Pipes)USB Host控制器连接。每个USB设备都会有一个特殊的端点,Endpoint0,它负责传输设备的描述信息,同时也负责传输PC与设备之间的控制信息。

wps_clip_image-17363

USB设备驱动向USB控制器驱动请求请求的每次传输被称为一个事务,事务有四种类型,Bulk Transaction,Control Transaction,Interrupt Transaction,Isochronous Transaction。每次事务都会分解成若干个数据包在USB总线上传输。每次传输必须经历两个或三个部分;第一部分,USB控制器向USB设备发出命令,第二部分是USB控制器和USB设备之间传递读写请求,是可选的,第三部分是握手信号。

如下为Bulk Transaction的示意图:

wps_clip_image-7376

wps_clip_image-22829

其它参见[1]

3、关于Windows 下的USB驱动

常用usbviewBusHound来观察和分析USB设备。关于USB设备请求,设备描述符,配置描述符,接口描述符,端点描述符,及USB具体实例,可以参见[1]

USB驱动程序的主要功能就是设置这些USB令牌,和获取USB设备描述符。USB驱动程序将这些请求最终转化为USB请求包(URB),然后发往USB总线驱动程序。

[1] Windows驱动开发详解,张帆

目录
相关文章
|
SQL 存储 分布式计算
CDP的Hive3系列之Hive Metastore介绍
CDP的Hive Metastore (HMS) 是一种服务,用于在后端 RDBMS(例如 MySQL 或 PostgreSQL)中存储与 Apache Hive 和其他服务相关的元数据。Impala、Spark、Hive 和其他服务共享元存储。与 HMS 的连接包括 HiveServer、Ranger 和代表 HDFS 的 NameNode。
2666 0
CDP的Hive3系列之Hive Metastore介绍
|
12月前
|
人工智能
人工智能管理体系解读(一)
ISO/IEC 42001 标准旨在指导组织建立、实施、维护和持续改进人工智能管理体系,强调负责任地使用、开发和运营人工智能系统,适用于所有采用AI系统的组织。标准涵盖了道德问题、法律法规遵从性、持续改进等方面,帮助组织提升运营效率、加强风险管理并提高声誉。
242 1
|
存储 安全 生物认证
强密码策略之减少字典攻击风险
【8月更文挑战第14天】
300 2
|
小程序
【微信小程序】英文字母不换行问题 flex布局字符超出宽度折行问题:设置了word-break: break-all;和flex: 1;冲突flex不生效问题
【微信小程序】英文字母不换行问题 flex布局字符超出宽度折行问题:设置了word-break: break-all;和flex: 1;冲突flex不生效问题
439 1
|
机器学习/深度学习 数据采集 人工智能
使用R语言进行机器学习的初学者指南
【4月更文挑战第25天】本文是R语言机器学习初学者指南,介绍了R语言在统计分析和机器学习中的应用。首先,简述R语言的背景及特点,包括其丰富的统计功能和扩展性。接着,指导如何安装和配置R语言及RStudio,以及设置国内R包安装源。然后,讲解R语言的基础知识,如数据类型、变量、数据结构和控制结构。此外,文中还推荐了几个常用的机器学习库,如caret、gbm、RandomForest和xgboost。最后,通过一个线性回归模型实例,展示了使用R语言进行机器学习的基本流程,包括数据准备、预处理、模型训练、评估和预测。
474 2
|
运维 Serverless 数据库
函数计算产品使用问题之如何并行运算函数计算任务,并对任务计算后的结果再进行聚合运算
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
安全 数据安全/隐私保护 物联网
带你读《自主管理身份:分布式数字身份和可验证凭证》——第3章 用示例场景演示SSI工作原理(1)
带你读《自主管理身份:分布式数字身份和可验证凭证》——第3章 用示例场景演示SSI工作原理(1)
带你读《自主管理身份:分布式数字身份和可验证凭证》——第3章 用示例场景演示SSI工作原理(1)
数据结构学习笔记——顺序存储结构实现循环队列
数据结构学习笔记——顺序存储结构实现循环队列
数据结构学习笔记——顺序存储结构实现循环队列
|
计算机视觉
VGG家族网络学习——VGG16
VGG家族网络学习——VGG16
908 0
VGG家族网络学习——VGG16
|
设计模式 存储 算法
项目实战:Qt+OpenCV图像处理与识别算法平台(持续更新,当前v1.7.0)
项目实战:Qt+OpenCV图像处理与识别算法平台(持续更新,当前v1.7.0)
项目实战:Qt+OpenCV图像处理与识别算法平台(持续更新,当前v1.7.0)