USB设备连接和枚举

news2025/1/5 9:52:18

https://space.bilibili.com/489340606/channel/collectiondetail?sid=896957
以下图片来自于沁恒微电子蔡亮工程师的讲课,对USB开发入门很有好处。

1. USB主设备和从设备

在这里插入图片描述

2. USB设备按功能分类

在这里插入图片描述

3. USB功能设备内部架构

可以有多个配置,但同一个时间只能有一个配置生效。
在这里插入图片描述

4. USB设备拓扑结构

USB设备采用星型网络结构,最多支持7层,最多支持127个设备。
在这里插入图片描述

5. USB主机和USB设备通讯在软件上有以下特征

帧用于全速和低速通讯。微帧用于高速通讯。USB主机和设备之间通讯协议处理的基本单位是事务处理。通讯时总是主机问询,设备应答。
在这里插入图片描述

6. USB设备连接与检测----低速设备

USB主机在D+和D-上都有15K电阻下拉,平时电平都是0。低速USB设备在D-上有一个1.5k的上拉电阻,当设备插入时,将D-信号拉为1,主机从而识别到有低速设备插入。
在这里插入图片描述

7. USB设备连接与检测----全速设备

USB主机在D+和D-上都有15K电阻下拉,平时电平都是0。全速USB设备在D+上有一个1.5k的上拉电阻,当设备插入时,将D+信号拉为1,主机从而识别到有全速设备插入。
在这里插入图片描述

8. USB设备连接与检测----高速设备

在高速设备插入时,高速主机和高速设备会进行互相检测,确定都是高速时才会进入高速状态,否则用全速状态工作。

USB主机在D+和D-上都有15K电阻下拉,平时电平都是0。高速USB设备在D+上有一个1.5k的上拉电阻,当设备插入时,将D+信号拉为1,主机从而识别到有全速设备插入。在主机发出复位信号期间,高速设备发出一个Chip K信号给主机,告知我是一个高速设备。然后主机发出Chip K-J序列,设备识别到该主机是高速主机,然后自动断开D+上的1.5k电阻,连接高速终端电阻,进入高速状态。
在这里插入图片描述

9. USB设备连接与检测----小结

在这里插入图片描述

10. USB总线几种状态

在这里插入图片描述

11. USB设备枚举

在这里插入图片描述

12. USB设备枚举的过程

在这里插入图片描述

13. USB设备描述符

在这里插入图片描述

14. 控制传输

控制传输是所有USB设备和主机都必须支持的一种传输方式。在设备枚举过程中,采用的都是控制传输。
在这里插入图片描述

14.1 控制传输----控制写在这里插入图片描述
14.2 控制传输----控制读

在这里插入图片描述

14.3 控制传输----无数据

在这里插入图片描述

15. 控制传输的特征

一个控制传输过程有建立阶段、数据阶段和状态阶段3种阶段,其中数据阶段不是必须的。
Setup事务采取固定的8字节结构,这个很重要,所有主机发出给设备的控制请求都要根据这8个字节进行解析,来决定接下来做什么样的数据应答。

在这里插入图片描述

16. 控制传输的Setup阶段

以下为setup事务的8字节命令请求格式含义:
在这里插入图片描述

17. USB设备连接与枚举知识点

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

华为OD机试真题 Java 实现【字母组合】【2023Q1 200分】

一、题目描述 每个数字对应多个字母,对应关系如下: 0:a,b,c 1:d,e,f 2:g,h,i 3:j,k,l 4:m,n,o 5:p,q,r 6:s,t 7:u,v 8:w,x 9:y, z …

PostGIS的10个最佳实践

PostGIS 是一个功能强大的开源空间数据库,可用于存储、查询和分析地理空间数据。 对于需要存储和分析大量地理空间数据的组织来说,这是一个流行的选择。 但是,正确使用 PostGIS 以充分利用它很重要。 在本文中,我们将讨论 10 个 …

Mit6.006-lecture09-Breadth-First-Search

一、新单元:图 Quiz 1包含lecture01到lecture08,关注数据结构和排序 今天开始新单元,lecture09-lecture14,关注图算法 二、图应用 图无处不在 任何网络系统都存在有向连接图 比如:路网、计算机网络、社交网络 任…

1146 Topological Order(31行代码+详细注释)

分数 25 全屏浏览题目 作者 CHEN, Yue 单位 浙江大学 This is a problem given in the Graduate Entrance Exam in 2018: Which of the following is NOT a topological order obtained from the given directed graph? Now you are supposed to write a program to test …

Elasticsearch:在 Elastic 中访问机器学习模型

作者:Bernhard Suhm, Josh Devins Elastic 支持你需要的机器学习模型 Elastic 让你可以应用适合你的用例和 ML 专业水平的机器学习 (ML)。 你有多种选择: 利用内置的模型。 除了我们的可观察性和安全解决方案中针对特定安全威胁和系统问题类型的模型外…

Ubuntu crontab定时任务

1. crontab 相关的命令: 安装:apt-get install cron 启动:service cron start 重启:service cron restart 停止:service cron stop 检查状态:service cron status 查询cron可用的命令:service …

【算法排序】直接插入排序

目录 一、概念及其介绍二、过程图示三、复杂度以及稳定性四、代码实现 一、概念及其介绍 插入排序(InsertionSort),一般也被称为直接插入排序。 对于少量元素的排序,它是一个有效的算法。插入排序是一种最简单的排序方法,它的基本思想是将一…

Keil(MDK-ARM)如何补充安装旧的编译器 AC5(ARM Compiler 5)

目录 一、前言二、下载1. 进入 Arm Developer 官网2. 下载 ARM Compiler 5 安装包3. 下载完成 三、安装1. 开始安装2. 安装过程3. 安装完成 四、配置1. 打开“Manage Project Items”2. 添加 ARM Compiler 5 编译器3. 添加成功4. 选择 ARM Compiler 5 作为当前使用的编译器 一、…

PHP+vue二手车交易信息网站系统

原来二手车网站由于二手车网站制度的不完善,许多城市的二手车网站市场都很少,而且欺诈行文较严重,肆意提高价格,隐瞒汽车所存在的故障问题,人们买卖二手车还是经过朋友帮忙介绍的途径来实现。这就导致了很多人的想卖车…

GitLab服务器搭建

文章目录 前述方式一:非容器安装搭建GitLab服务器查看gitlab用户的初始密码:修改初始密码gitlab配置文件修改服务的端口号启动并访问服务 方式二:容器下安装基于Docker安装Docker在容器中安装gitlab服务宿主机配置修改容器配置修改启动并访问…

SpringBoot如何优雅的实现参数验证

唠嗑部分 在我们设计接口时,参数验证是必不可少的一个环节,严格的参数验证能够保证数据的严谨,那么在SpringBoot项目中,你是如何验证参数的呢? 首先我们来描述一下需求 用户类,有用户名、用户头像、邮件…

基于html+css的图展示88

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

2000万的行数在2023年仍然是 MySQL 表的有效软限制吗?

谣言 互联网上有传言说我们应该避免在单个 MySQL 表中有超过 2000 万行。否则,表的性能会下降,当它超过软限制时,你会发现 SQL 查询比平时慢得多。这些判断是在多年前使用HDD硬盘存储时做出的。我想知道在2023年对于基于SSD的MySQL数据库来说…

【大数据学习篇10】Spark项目实战~网站转化率统计

学习目标/Target 掌握网站转化率统计实现思路 了解如何生成用户浏览网页数据 掌握如何创建Spark连接并读取数据集 掌握利用Spark SQL统计每个页面访问次数 掌握利用Spark SQL获取每个用户浏览网页的顺序 掌握利用Spark SQL合并同一用户浏览的网页 掌握利用Spark SQL统计每…

安卓基础巩固(三)多线程、数据存储、文件IO、SQLite

文章目录 多线程Handler相关概念UI线程/主线程MessageMessage QueueLooperHandler 使用步骤Handler.sendMessage()Handler.post() Handler 机制工作原理Handler内存泄露前置知识案例分析解决方案一:静态内部类弱引用解…

数据结构学习记录——图应用实例-六度空间(题目描述、算法思路、伪代码及解读、图解)

目录 题目描述 算法思路 伪代码 总体算法 BFS算法 伪代码解读 BFS算法 图解 题目描述 六度空间理论的核心观点是,人类社交网络中的任何两个人之间,平均只需要通过不超过六个中间人(也就是六个社交关系)就可以建立联系。换…

多台plc之间如何快速实现以太网无线连接?

常规来说,多台plc要实现以太网无线连接,首先要先确定以太网线必须正确连接,并建立物理连接。然后需要在PLC端设置好IP地址,以使不同PLC以相同协议可以实现通信交流。最后是建立PLC端数据采集及交换系统,要求在PLC端设置…

《封号码罗》关于js逆向猿人学第二题cookies里面m值的获取[纯扣算法](二十六)

这一题有点儿误打误撞的感觉。 本题使用了抓包工具Fiddler,m值在cookie里面,而且这个cookie是本地生成的 抓包发现有两次请求,第一次返回了一堆JS,而且cookie里面没有m值,第二次请求就带上了m值,所以m应该…

信号完整性分析基础知识之传输线和反射(七):带负载传输线、感性不连续引起的反射

带负载传输线 如果在传输线上有一个小的容性负载,信号会出现失真,上升时间也会降低。每个分立电容都会降低信号在其附近看到的阻抗。如果传输线上分布有多个容性负载(例如一个总线上每隔1.2inch有一个2pF的连接器残桩,或者一个内…

单模光纤一维模场分布的MATLAB仿真

根据已知的单模光纤电场z分量分布,可以用MATLAB展示一维的模场分布 具体来说,通过数值计算解出给定光纤(n_1,n_2,a)参数时对应的V参量 通过特征方程解出V对应的W和U 通过这三个参数带入到光场的表达式中…