USB协议学习

文章目录

    • USB发展背景
      • 发展变化
      • 速度等级
      • 通讯接口
    • 四种传输
    • 主设备 & 从设备
      • 主设备
      • 从设备
    • 连接与检测
      • 高速设备与主机连接
      • USB总线常见的几种状态
    • 枚举过程
      • 特点
    • 控制传输
    • 学习资料

USB发展背景

发展变化

  • USB1.1:规范了USB低全速传输;

  • USB2.0:规范了USB高速传输,采用NRZI(反向不归零)编码(NRZI采用8bit编码方式),位填充(在数据进行NRZI编码前,每6个连续的1信号之后都会插入1个0信号,以避免电平不能突变丢失同步);

  • USB3.0:采用8b/10b编码,增加一对超高速差分线,供电5V/0.9A

  • USB3.1:采用采用128b/132b编码,速度提高一倍,供电20V/5A,同时增加了A/V影音传输标准;

  • USB3.2:增加一对超高速传输通道,速度再次翻倍,只能在C型接口上使用。

速度等级

1.5Mbps / 12Mbps / 480Mbps / 5Gbps / 10Gbps / 20Gbps

通讯接口

四种传输

  • 控制传输:主机获取设备信息、状态,选择设备配置等,传输的数据量不大,但数据传输的正确性有很高的保障,一般适用于信息的获取、命令的控制、参数的配置等;

  • 中断传输:收发数据量少、周期性传输,USB会为中断传输保留一定的总线带宽,用于保证其能在规定的时间周期内得到分配,适用于键盘、鼠标等设备;

  • 批量传输:利用任何可获得的总线带宽进行数据传输,**对传输的时间和速率没有要求,但必须保证数据的正确性,**可在总线带宽比较紧张的时候为其他的传输方式让出时间,而将本身的传输延迟,但当总线比较空闲时,可以很快的速率传输来发送大量的数据,比较适用于存储类的产品、打印机、扫描仪等;

  • 等时传输:恒定速率、没有差错控制和重传机制的传输,不能保证每次传输都是成功的,比较适用于音/视频类的产品。

主设备 & 从设备

主设备和从设备之间的通讯物理通道:主设备分配的地址/默认地址0 + 从设备固有端点号。

主设备和从设备之间的时间长度单位:帧(1ms,低/全速)/微帧(125us,高速)。

主设备和从设备之间协议处理基本单位:事务处理。


主设备

USB主设备一般具有以下功能:

  • 检测从设备的插拔;
  • 管理主从通讯之间的控制流;
  • 管理主从通讯之间的数据流;
  • 记录主设备状态和从设备动作信息;
  • 控制主控制器和从设备之间的电气接口。

从设备

  • 集线器
    支持最多5个集线器(不包括主设备的根集线器)级联。

  • 功能设备
    内部包含有描述自身功能和资源需求的配置信息。

连接与检测

当端口没有设备连接时,其D+和D-的电压均为0V,当主机检测到此状态维持至少2.5us,则认为没有设备连接。

当低速设备连接到主机时,D-上的电压为3V,D+上的电压仍然为0V,当主机检测到该状态维持2ms,则认为有设备连接且当前设备为低速设备。


当全速设备连接到主机时,D+上的电压为3V,D-上的电压仍然为0V,当主机检测到该状态维持2ms,则认为有设备连接且当前设备为全速设备。

高速设备与主机连接

  • 高速设备先以全速设备结构和主机连接,它们之间做双向检测;
  • 主机输出总线复位信号期间,USB设备以是否可以产生Chip K信号来表明高速或全速身份;
  • 在Chip K信号后,主机是否产生KJ序列来表明高速主机身份或全速主机身份;
  • 匹配到高速主机和高速设备后,USB设备断开D+上的1.5K的上拉电阻,连接D+/D-上的高速终端电阻,进入默认的高速状态,否则以全速状态通信。

USB总线常见的几种状态

  • 正常工作:即总线正常活动,需要随时进行传输,总线上存在周期性(全速:1ms/次;高速:125us/次)的令牌包;
  • 总线复位:由主机控制器或集线器的下行端口产生,一般出现于主机和设备刚连接后,也出现于一些传输出错或异常的情况下;
  • 总线挂起:总线无活动大于3ms。

枚举过程

特点

  • 主设备连接识别从设备必须的过程;
  • 由多个控制传输构成;
  • 经过地址0(缺省地址)到其他地址(主设备分配地址)的通信;
  • 对于挂载多个USB从设备的系统,主设备逐一进行枚举操作。

控制传输

  • 所有USB从设备必须支持的传输方式,固定使用端点0通信;
  • 控制传输的方向是双向的;
  • 控制传输多用于主设备和从设备进行信息、功能、状态等方面的获取和修改。


学习资料

B站发现了一个很宝藏的课程,如果你想深入了解USB的话可以看看哦。

  • USB技术应用与开发

原文:USB协议学习

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

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

相关文章

讲讲 kafka 维护消费状态跟踪的方法?

大家好,我是锋哥。今天分享关于【讲讲 kafka 维护消费状态跟踪的方法?】面试题?希望对大家有帮助; 讲讲 kafka 维护消费状态跟踪的方法? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 Kafka 中&#x…

【成都新篇】龙信科技电子取证实验室,引领科技取证新时代

文章关键词:电子数据取证实验室、手机取证、介质取证、云取证、现场勘查、电子物证 在科技创新的浪潮中,龙信科技成都实验室以其卓越的电子数据取证服务,成为了中西部地区一颗璀璨的明珠。随着新址的搬迁,我们不仅扩大了业务范围…

linux自动清理管理日志文件 logrotate

logrotate是linux通常会自带的工具,可以自动切割清理日志文件 一、安装(通常无需) 通常系统自带 sudo apt install logrotate或者 sudo dnf install logrotate二、具体使用 以nginx日志为例 1.创建脚本文件 vi /etc/logrotate.d/nginx…

JDBC学习笔记

九月十八: 需要添加jar包到依赖 虽然能驱动了,但是仍然不知道当时为什么不能驱动, 8.0以上会自动驱动, 也就是说只需要做好connection和statement 连接数据库的五种方式: 方式五: Statement: SQL注入小案例: ? 相当于占位符 JDBCUtils: 事务与批处理: String sql "INS…

wps Excel下拉框生成填充及下拉框内容颜色格式修改

一、Excel下拉框生成:(路径:数据-下拉列表) 1、先选中需要插入下拉列表的单元格 2、然后进入“数据-下拉列表”中增加对应的下拉项目(例如:√,X) 二、下拉框选项颜色和字体修改 1、先选中需要修改的下拉列表的所有单元格 2、然…

预约小程序多选修改——思路分享

预约小程序——多选的修改 预约小程序模版的来源:yunzizyy/ZixiAppt: 在这个小程序上做了较多的修改(补充了丢失的代码、二维码签到、惩罚封禁机制、多选时间段和设置日期),其中有一个涉及到了时间段选择中的多选功能的添加&…

PostgreSQL核心揭秘(二)-进程和内存架构

目录 1、进程架构2、进程架构图 3、内存架构 4、内存架构图 PostgreSQL 的进程架构采用了一个多进程的设计,这使其能够有效地管理并发连接和资源。以下是 PostgreSQL 的主要进程架构组成部分的详细描述: 1. 主进程(Postmaster) 功…

pta题目

1.查询至少生产两种不同的计算机(PC或便携式电脑)且机器速度至少为133的厂商 AC: select distinct(pd.maker) --去重查询 from product pd where pd.type in (个人电脑, 便携式电脑) --题目上要求的,至少一个,in是从里面选择 and --这里也是model其实相…

【Effective C++】阅读笔记2

1. 复制对象时要保证复制内容完整性 错误场景复现(没有复制基类部分) 如果一个类中包含多个成员变量或者继承了基类,那么在拷贝构造函数或者赋值运算符中,必须保证所有成员的基类部分被复制。 基类没有被复制,这样就都…

线程基础知识、jmm(Java内存模型)

目录 线程基础知识 并发与并行 进程和线程 线程优先级 创建线程的方式主要有三种 休眠 作出让步 join() 方法 线程协作注意什么 理解线程状态 选择合适的协作工具 共享资源的访问控制 避免竞争条件 创建线程几种方式 线程状态,状态之间切换 新建&…

计算机毕业设计Spark+大模型股票推荐系统 股票预测系统 股票可视化 股票数据分析 量化交易系统 股票爬虫 股票K线图 大数据毕业设计 AI

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

MyBatis-Plus快速入门:从安装到第一个Demo

一、前言 在现代 Java 应用程序中,数据访问层的效率与简洁性至关重要。MyBatis-Plus 作为 MyBatis 的增强工具,旨在简化常见的数据操作,提升开发效率。它提供了丰富的功能,如自动生成 SQL、条件构造器和简单易用的 CRUD 操作&…

零基础Java第十二期:类和对象(三)

目录 一、static成员(补) 1.1. static修饰成员方法 1.2. static成员变量初始化 二、代码块 2.1. 静态代码块和实例代码块 ​三、对象的打印 一、static成员(补) 1.1. static修饰成员方法 public class Linear {public st…

Topaz Video AI for Mac 视频无损放大软件安装教程【保姆级,操作简单轻松上手】

Mac分享吧 文章目录 Topaz Video AI for Mac 视频无损放大软件 安装完成,软件打开效果一、Topaz Video AI 视频无损放大软件 Mac电脑版——v5.3.5⚠️注意事项:1️⃣:下载软件2️⃣:安装软件,将安装包从左侧拖入右侧文…

Java基础语法①Java特点和环境安装

目录 1. Java的概念和用途 1.1 Java的概念和发展史 1.2 Java的重要性 1.3 Java的特点 2. Java环境 2.1 JVM 和 JDK 2.2 Java环境安装 2.3 安装IntelliJ IDEA并使用 写在前面:本人已经学习了C/C方向的内容,大二结束找到实习回学校后还有时间&…

atest v0.0.18 提供了强大、灵活的 HTTP API Mock 功能

atest 发布 v0.0.18 atest 是致力于帮助开发者持续保持高质量 API 的开源接口工具。 你可以在命令行终端或者容器中启动: docker run -p 8080:8080 ghcr.io/linuxsuren/api-testing:v0.0.18 亮点 在开源之夏 2024 中 atest 增加了基于 MySQL 的测试用例历史的支持HT…

ele-table表格列表内,双击编辑部分信息(el-table组件同理)

说明 ele-table 为公司内部组件,重点看 【主要代码】 部分代码 ele-table表格列表内:双击需要编辑的区域,编辑部分信息 实现 双击需要编辑的数据,展示输入框/日期选择, 展示输入框:修改完之后,按…

开源的GPT-4o模型使用指南,Mini-Omni2集视觉、语音和双工能力于一体的

1. Mini-Omni2 是什么? Mini-Omni2 是一个开源的多模态语言模型,旨在模拟 GPT-4o 的视觉、语音和文本处理能力。它能够理解和生成视觉、听觉和文本内容,并支持实时的语音输出和灵活的双工交互。 Mini-Omni2 由清华大学和 Inspirai 的研究人…

Serverless + AI 让应用开发更简单

本文整理自 2024 云栖大会,阿里云智能高级技术专家,史明伟演讲议题《Serverless AI 让应用开发更简单》 随着云计算和人工智能(AI)技术的飞速发展,企业对于高效、灵活且成本效益高的解决方案的需求日益增长。本文旨在…

正式开源:从 Greenplum 到 Cloudberry 迁移工具 cbcopy 发布

Cloudberry Database 作为 Greenplum 衍生版本和首选开源替代,由 Greenplum 原始团队成员创建,与 Greenplum 保持原生兼容,并能实现无缝迁移,且具备更新的 PostgreSQL 内核和更丰富的功能。GitHub: https://github.com/cloudberry…