USB2.0 Spec 中文篇

体系简介

线缆

USB 是一种支持热拔插的高速串行传输总线,使用一对(两根)差分信号来传输数据,半双工。要求使用屏蔽双绞线。

供电

USB 支持 “总线供电” 和 “自供电” 两种供电模式。在总线供电方式下,设备最多可以获得 500mA 的电流。

兼容

向下兼容 USB1.0(低速),USB1.1(全速)

速度

低速 1.5Mbps,全速12Mbps,高速 480Mbps

USB 体系组成

USB 体系包括 “主机”、“设备”、“物理连接” 三个部分。
主机是一个提供 USB 接口及接口管理能力的硬件、软件及固件的复合体,可以是 PC,也可以是 OTG 设备,一个 USB 系统中仅有 1 个USB 主机。
USB 设备包括 USB 功能设备和 USB HUB,最多支持 127 个设备。
物理连接指 USB 传输线。

地址

一个 USB HOST 支持 128 个地址,地址 0 作为默认地址,只在设备枚举期间临时使用,而不能被分配给任何一个设备。因此,一个 USB HOST 最多可以支持 127 个设备。
但是,如果要连接 127 个设备,必须要用到 USB HUB,USB HUB 也是占用地址的,所以,实际支持的 USB 设备数量小于 127。

拓扑

USB 体系采用分层的星型拓扑来连接所有 USB 设备,以 HOST-ROOT HUB 为起点,最多支持 7 层,也就是说,最多允许 5 个 USB HUB 级联。
在这里插入图片描述

ROOT HUB

ROOT HUB 是一个特殊的 USB HUB,它集成在主机控制器里,不占用地址。

复合设备

复合设备可以占用多个地址。所谓复合设备其实就是把多个功能设备通过内置的 USB HUB 组合而成的设备,比如带麦克风的 USB 摄像头。

轮询广播

USB 采用轮询的广播机制传输数据,所有的传输都由主机发起,任何时刻整个 USB 体系内仅允许一个数据包进行传输,所有设备看到的数据包都是被同一广播的数据包。

数据包

USB 采用 “令牌包” - “数据包” - “握手包” 的传输机制,在令牌包中指定数据包去向或来源的设备地址和端点(Endpoint),从而保证了只有一个设备,对被广播的数据包/令牌包 做出响应,握手包表示了传输的成功与否。
“数据包” 是 USB 总线上数据传输的最小单位,包括 SYNC、数据和 EOP 三部分。其中,数据以 8 位的 PID 开始,PID 指定了数据包的类型(共 16 种)。令牌包即 PID 为 IN/OUT/SETUP 的包。

端点

端点(Endpoint)是 USB 设备中可以进行数据收发的最小单元,支持单向或双向的数据传输。
设备支持端点的数量是有限制的,除默认端点外,低速设备最多支持 2 组端点(2 输入,2 输出),高速和全速设备最多支持 15 组端点。

管道

管道(Pipe)是主机和设备端点之间数据传输的模型,共有两种类型的管道:无格式的流管道(Stream Pipe)、有格式的信息管道(Message Pipe)。
任何一个 USB 设备一旦上电,就存在一个信息管道,即默认的控制管道,USB HOST 通过该管道来获取设备的描述、配置、状态,并对设备进行配置。

接口

一个设备可能有一个或多个接口。(复合设备具有多个接口,驱动中,是只认接口,不认设备的,一个驱动程序对应一个接口。一个包含两个接口的复合设备,如电子琴,包含键盘接口和扬声器接口,那么就会有两个驱动与该设备对应,即键盘驱动和扬声器驱动)
一个接口可能有一个或多个端点

枚举

USB 设备连接到 HOST 时,HOST 必须通过默认的控制管道对其进行枚举,完成获得设备描述、进行地址分配、获得配置描述、进行配置等操作后,方可正常使用。USB 的即插即用特性依赖于此。
枚举是 USB 体系中一个很重要的活动,由一系列标准请求组成,若设备属于某个子类,还包含该子类定义的特殊请求
通过枚举,HOST 可以获得设备的基本描述信息,如 USB 版本,PID、VID、设备分类(Class)、供电方式、最大消耗电流、配置数量、各种类型端点数量、传输能力、最大包长度。HOST 根据 PID 和 VID 加载设备驱动程序,并对设备进行合适的配置。
只有经过枚举的设备才能正常使用。
对于总线供电的设备,在枚举完成前,最多可从总线获取 100mA 的电流。

标准请求

USB 设备通过管道和 HOST 通信,在默认控制管道上接受并处理以下 3 种类型的请求:

  1. 标准请求:一共有 11 个标准请求,如得到设备描述、设置地址等。所有 USB 设备必须支持这些请求。HOST 通过标准请求来识别和配置设备。
  2. 类(Class)请求:USB 还定义了若干个子类,如 HUB 类、大容量存储器类等。不同的类又定义了若干类请求,该类设备应该支持这些类请求。设备所属类在设备描述符中得到。
  3. 厂商请求:这部分请求并不是 USB 规范定义的,而是设备生产商为了实现一定的功能而自己定义的请求。

HUB PORT

HUB 的上行 PORT 面向 HOST,下行 PORT 面向设备。
在下行 PORT 上,提供了设备连接检测移除检测的能力,并给各下行 PORT 供电。
HUB 可以单独使能各下行 PORT,不同 PORT 可以工作在不同的速度等级。

HUB 的组成

HUB 由重发器(Repeater)、转发器(Transaction Translator)以及控制器(Controller)三部分组成。
重发器是上行 PORT 和下行 PORT 之间的一个协议控制的开关,负责数据包的重生与分发。
控制器负责和 HOST 通信,HOST 通过 HUB 类请求和 HUB 控制器通信,获得关于 HUB 本身和下行 PORT 的 HUB 描述符,进行 HUB 和下行 PORT 的监控和管理。
转发器提供了从高速和全速/低速通信的转换。

分发

HUB 从上行 PORT 接收到的数据包需要向所有使能的下行 PORT 发送,即广播。

通信

宏观上看,是在 HOST 和 USB 功能设备之间进行;
微观上看,是在应用软件的 Buffer 和 USB 设备端点的 Buffer 之间进行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/245229.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

等保二级测评国家收费标准是多少?

随着信息化的快速发展,网络安全问题日益突出,等保测评作为网络安全领域的重要环节,越来越受到企业和政府的重视。然而,很多人在进行等保测评时,对于等保二级测评的费用标准并不清楚。本文将详细介绍等保二级测评的国家…

自动化测试基础篇:Selenium 框架设计(POM)

【导语】Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。本文介绍selenium的框架设计。 自动化测试框架 1.什么是自动化测试框架 简单来说,自动化测试框架就是由一些标准,协议&#…

一、win10+yolov8+anaconda环境部署

1、安装anaconda (1)打开aonconda下载地址:https://www.anaconda.com/download,点击download下载。 2、下载完成后,双击打开,点击Next,I Agree,选择just me; 3、勾选…

计算机组成原理-ATT格式vsIntel格式

文章目录 AT&T格式 vs lntel格式 x86汇编语言是lntel格式,还有一种汇编语言格式是AT&T AT&T格式 vs lntel格式 lntel格式中取主存地址内容未指明长度默认为32位,对应下图中第四行右边的指令 百分号 美元符号 小括号 可用于计算机结构体数组…

lwIP 细节之六:connected、sent、poll 回调函数是何时调用的

使用 lwIP 协议栈进行 TCP 裸机编程,其本质就是编写协议栈指定的各种回调函数。将你的应用逻辑封装成函数,注册到协议栈,在适当的时候,由协议栈自动调用,所以称为回调。 注:除非特别说明,以下内…

MATLAB 最小二乘空间直线拟合 (37)

MATLAB 最小二乘空间直线拟合 (37) 一、算法介绍二、算法实现1.代码一、算法介绍 对于空间中的这样一组点:大致呈直线分布,散乱分布在直线左右, 我们可采用最小二乘方法拟合直线,使用下面的代码可以得到图中的结果。(其中图片中的点解释和具体的实现代码如下所示) C++…

档案馆数字化建设实施方案

档案馆数字化建设实施方案主要包括以下几个方面的内容: 1. 目标与规划:明确数字化建设的目标和规划,确定数字化建设的优先领域和重点工作,制定长期和短期的发展规划。 2. 技术设施建设:建设专久智能数字化档案管理系统…

LSTM和GRU的介绍以及Pytorch源码解析

介绍一下LSTM模型的结构以及源码,用作自己复习的材料。 LSTM模型所对应的源码在:\PyTorch\Lib\site-packages\torch\nn\modules\RNN.py文件中。 上次上一篇文章介绍了RNN序列模型,但是RNN模型存在比较严重的梯度爆炸和梯度消失问题。 本文…

【TwinCAT学习笔记 1】TwinCAT开发环境搭建

写在前面 作为技术开发人员,开启任何一项开发工作之前,首先都要搭建好开发环境,所谓磨刀不误砍材工,一定要有耐心,一次不行卸载再装。我曾遇到过一个学生,仅搭建环境就用了两周,这个过程也是一…

数据寻址-偏移寻址(硬核)

目录 一. 基址寻址二. 变址寻址三. 相对寻址四. 硬件如何实现数的"比较" \quad \quad \quad \quad \quad \quad \quad 一. 基址寻址 \quad A就是偏移量 有的用通用寄存器来代替BR专用寄存器的功能 其中 R 0 R_0 R0​的位数是由通用寄存器的总数来判断的, 比如通用寄存…

社交网络分析1:起源发展、不同领域的应用、核心概念

社交网络分析1:社交网络相关定义和概念 写在最前面关于课程 社交网络、社交网络分析社交网络发展阶段(自己感兴趣)1. 社交网络的起源2. 社交网络的演变3. 社交网络的成熟4. 发展阶段补充和展望 2023社交大变革(自己感兴趣的点&…

安装spaCy及语言包下载安装

文章目录 1. spaCy的安装1.1 安装spaCy包方式1 : 通过pip / conda命令安装方式2 : 通过离线导入 1.2 安装语言模型方式1 : 通过pip / conda命令安装方式2 : 通过离线导入 2. 常见问题a. 版本问题 3. 参考文档 关注公众号:『AI学习星球』 回复:遥感图像语…

【Spring】04 国际化

文章目录 1. 定义2. Spring 的支持1) MessageSource接口2) ResourceBundleMessageSource 3. 配置国际化1)配置MessageSource Bean2)创建资源文件3)在Bean中使用国际化消息 4. 使用占位符和参数结语 Spring 为我们提供了…

橘子学K8S01之容器中所谓的隔离

我们一直都在说容器就是一个沙盒,沙盒技术顾名思义就是像一个集装箱一样,把应用(服务,进程之类的)装起来的技术,这样每个进程在自己的沙盒中和其他的沙盒隔离开来,每个沙盒之间存在一个边界使得他们互不干扰&#xff0…

【动手学深度学习】(十三)深度学习硬件

文章目录 一、CPU和GPU二、更多的芯片1.DSP:数字信号处理2.可编程阵列(FPGA)3.AI ASIC 三、单机多卡并行 一、CPU和GPU 提升CPU利用率 在计算ab之前,需要准备数据 主内存->L3->L2->L1->寄存器(数据只有进入寄存器才可以参与运算) 提升空间和时间的内存…

Linux基本开发工具

编译器和自动化构建工具 一、编译器——gcc、g1. 安装 gcc/g2. 使用3. 链接库4. 拓展命令:od/file/ldd/readelf 二、自动化构建项目——make、makefile1. 介绍2. 使用例子touch——change file timestampsstat——display file or file system status修改时间 .PHON…

Java入门学习笔记二

一、抽象类 当编写一个类时,我们往往会为该类定义一些方法,这些方法是用来描述该类的行为方式,那么这些方法都有具体的方法体。 分析事物时,发现了共性内容,就出现向上抽取。会有这样一种特殊情况,就是功…

国家开放大学 湖南开放大学形成性考核 平时作业 统一资料

试卷代号:1258 房屋建筑混凝土结构设计 参考试题 一、单项选择题(每小题2分,共计40分) 1.( )是将框架结构中的部分跨间布置剪力墙或把剪力墙结构的部分剪力墙抽掉改为框架承重。 A.梁板结构体系 B.框…

区块链的可拓展性研究【05】闪电网络

1.闪电网络:闪电网络是一种基于比特币区块链的 Layer2 扩容方案,它通过建立一个双向支付通道网络,实现了快速、低成本的小额支付。闪电网络的交易速度非常快,可以达到每秒数万笔交易,而且交易费用非常低,几…

Linux---复制、移动文件及目录命令

1. 复制、移动文件及目录命令的使用 命令说明cp拷贝文件、拷贝目录mv移动文件、移动目录、重命名 cp命令效果图: 说明: 拷贝目录需要加上-r选项,-r表示递归拷贝目录及其内容 mv命令移动文件效果图 mv命令移动目录效果图 mv命令重名名效果图 2. 小结 cp&#…