usb:认识usb传输(一)

2023-10-30


一、usb发展背景

1. usb特点

特点 备注
简单易用 使用统一制式电缆和连接进行外设扩展,即插即用,支持热插拔
稳定性能 使用差分信号传输,较强的纠错能力,多种差错管理和回恢复机制
速度选择 1.5Mbps, 12Mbps, 480Mbps, 5Gbps, 10GBps, 29Gbps等多种等级
使用灵活 提供了适合各种应用的传输类型,协议
应用广泛 协议标准向下兼容,系统集成驱动,扩展性强,连接支持27个外部设备,拓扑结构,复合设备等

2. usb发展

1.更名

名称 更名
USB1.1 USB 2.0 Full Speed
USB2.0 USB 2.0 High Speed
USB3.0 USB 3.2 gen1
USB3.1 USB 3.2 gen2
USB3.2 USB 3.2 gen2*2

2.发展

协议 发展
USB 1.1 规范了USB低全速传输
USB 2.0 规范了USB高速传输
USB 3.0 采用8b/10b编码,增加一对超高速差分线,供电5v/0.9A
USB 3.1 采用128b/132b编码,速度提高一倍,供电20v/5A,同时增加了A/V影音传输标准
USB 3.2 增加一对超高速传输通道,速度再次翻倍,只能在C型接口上运行

3.传输速度

速度 等级
1.5Mbps 低速传输
12Mbps 全速传输
480Mbps 高速传输
5Gbps 超高速传输
10Gbps 超高速传输
20Gbps 超高速传输

tips:键盘鼠标等都遵循usb1标准,低速传输

4.usb编/解码方式 ——反向不归零(NRZI);位填充

反向不归零:数据为0,电平翻转,数据为1,电平不翻转
位填充:在数据进行NRZI编码前,每6个连续的1信号之后都会插入一个0信号,一面电平不能突变丢失同步

5.信号传输状态

状态
J状态 Low Speed: 差分0,Full Speed:差分1
K状态 Low Speed: 差分1,Full Speed:差分0
SE0状态 D+ 和 D- 都为 0v
SE1状态 D+ 和 D- 都大于为 0.8v

差分0:D+ 约等于 0v,D-约等于 3v
差分1:D+ 约等于 3v,D-约等于 0v

5.帧

帧的概念:一个时间单位,固定为1ms(低/全速),高速-微针 125us;

6.通讯过程划分

在这里插入图片描述
Tips:事务为最基本的单位

二、usb的四种传输

1. 控制传输

主机获取设备信息,状态,选择设备配置等一系列命令式工作(usb设备必须支持),中断传输,批量传输和等时传输(设备可以都不支持,或支持一个和多个)

2. 中断传输

收发数据量小,周期性传输(usb会为中断传输保留一定的总线带宽,适用于键盘,鼠标等)

3. 批量传输

用于传输大量,且对数据传输时间没有要求,但必须保证数据的准确性,当usb总线繁忙,会变慢,当usb总线比较空闲,会传输较快

4. 等时传输

恒定速率,没有差错控制,数据量大,但是速率恒定,不能保证每次传输都成功,适合音视频。

三、相关概念

1. 上传/下传

USB主机接收USB设备的数据成为上传(主机发起请求,设备将数据给主机,设备不能直接发送数据,必须主机要),USB主机发送数据给USB设备成为下传

2. 地址

主机管理设备,而为每一个连接的设备分配,主机最多可以分配127个地址

3. 端点

USB设备中实际的物理单元,端点和地址决定了主机和设备之间通讯的物理通道

4. USB传输特点

物理传输双方角色一定是主机和设备,一问一答传输方式,永远主机先发起包请求

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

usb:认识usb传输(一) 的相关文章

  • 如何禁用 Android 设备 USB 端口

    我正在尝试搜索是否有一种方法可以禁用 Android 设备 USB 端口 主要是软件级别 因此用户仍然可以为 Android 设备充电 但无法再与 PC 通信 我得到了一些线索link1 https groups google com fo
  • USB 控制传输能否保证交付?

    USB 2 0 指定 http www usb org developers docs usb20 docs 4 种传输类型 第 5 4 节传输类型 控制转移 同步传输 中断传输 批量转账 第 5 8 节规定批量转账提供 在带宽可用的基础上
  • Android 11 5G 获取小区参数

    我正在新的 Android studio 预览版上尝试网络类型 5G 上的 Android 11 我的目标是获取单元信息详细信息 但是 方法 getAllCellInfo 在模拟器上返回空 空列表 Android 11 之前的所有模拟器都会
  • 如何拦截并翻译USB事件

    我想使用飞利浦 LFH 2330 查看图像 使用 Windows Image Viewer 或其他查看器 如 IrfanView 等 LFH 2330 是一款带有四个踏板的脚踏控制器 参见here http www aaaaudio net
  • 使用 DeviceWatcher 监视 USB 驱动器并检索设备信息?

    I m a WinForms开发人员和我已经知道如何使用 WMI 监视连接或断开连接的 USB 但不久前我发现了设备观察者 http msdn microsoft com en us library windows devices enum
  • 通过 USB 模拟 UART

    有谁知道是否可以通过 USB 模拟 UART 简单串行发送和接收 这将如何实现 我在 Microchip 网站上找到了这个链接 但不是很容易找到 http www microchip com forums m522571 print asp
  • 使用 C# 向 USB 连接的 GPRS 调制解调器发送 AT 命令

    任何人都可以给我一个关于如何访问连接到 USB 端口的 GPRS 调制解调器的良好指示或指南 我应该为我的程序制作一个 USB 驱动程序以将 AT 命令发送到调制解调器吗 或者就像一个路由器 我可以使用IP地址访问它 谢谢 如果 Windo
  • Mac中如何获取usb设备的设备描述符和配置描述符?

    I have minimum exposure to xcode and I Okit framework I have seen device descriptor and configuration descriptor of a us
  • 是否有可通过 USB 密钥在 Mac OS X 10.6 上运行的便携式 python 解释器?

    我一直在努力寻找一个可以通过工作计算机上的 USB 密钥运行的便携式解释器 Work comp 运行的是 Mac OS X 10 6 环境相当受限 无法访问终端 无法安装应用程序 但我知道便携式应用程序可以从 USB 驱动器运行 我一直在使
  • adb 未检测到 micromax a111

    最近我购买了 micromax a111 Android 设备 我是安卓开发者 因此尝试使用该设备进行调试选项 但 adb 无法检测到该设备 我也更改了设置 但没有成功 如果有人有解决方案 请帮助我解决这个问题 micromax没有官方的P
  • Android 上的 HP TouchPad USB 驱动

    我可以在运行的 HP TouchPad 上进行应用程序开发吗氰基模组 http en wikipedia org wiki CyanogenMod 9 我有一个安装了 CyanogenMod 9 的 HP TouchPad 并且正在尝试从E
  • 如何在没有窗口句柄的情况下使用 RegisterDeviceNotification?

    我正在编写一个 DLL 库 该库使用 VB NET 中的 winusb 连接到 USB 设备 由于它是一个 DLL 所以我没有窗口 而且我的库的用户也可能没有窗口 例如命令行应用程序 我见过的检测设备连接和分离的示例都使用RegisterD
  • 使用Python直接向USB发送信号

    如何使用 Python 将 USB 端口连接设置为高或低 这可用于定制 USB 设备 例如 假设我有一个 LED 连接到 USB 端口 数据线 现在通过代码我想闪烁它或控制它 现在 这可以通过使用任何微控制器 Arduino Raspber
  • 如何枚举所有HID设备? C#

    我需要枚举连接到我的 PC 的所有 HID 设备 我尝试使用这个答案 https stackoverflow com a 3331509 902424 但它枚举了 USBHub 设备 但我在那里找不到我的 HID 设备 EDIT 我很高兴知
  • 使用 STM32 USB 设备库将闪存作为大容量存储设备

    我的板上有这个闪存IC 它连接到我的STM32F04 ARM处理器 处理器的USB端口可供用户使用 我希望我的闪存在通过 USB 连接到 PC 时被检测为存储设备 作为第一步 我在程序中将 USB 类定义为 MSC 效果很好 因为当我将主板
  • 从网络浏览器中检测和访问 USB 设备 - 即使用插件

    是否可以通过插件 activeX Java 或 Flex 编写一个能够检测从 USB 设备通道读取数据流的浏览器插件 我做了一些研究 但没有找到答案 http support microsoft com kb 832678 http sup
  • Android:如何以编程方式连接/断开 OTG

    我想在我的 Android 设备中以编程方式连接和断开 USB OTG 笔式驱动器 硬盘驱动器等 对于USB 我使用以下路径在连接到PC时绑定 取消绑定USB sys bus usb drivers usb bind or unbind 我
  • 我可以从哪里开始使用可编程硬件?

    一段时间以来 我一直渴望至少学习一点有关硬件编程的知识 并想在这里提出要求以获得一些起点 我是一位相当有成就的程序员 具有 Delphi 和 Objective c 经验 但从未听过设备端口 中断 我什至不知道术语 更不用说对硬件进行编程了
  • STM32 传输结束时,循环 DMA 外设到存储器的行为如何?

    我想问一下 在以下情况下 STM32 中的 DMA SPI rx 会如何表现 我有一个指定的 例如 96 字节数组 名为 A 用于存储从 SPI 接收到的数据 我打开循环 SPI DMA 它对每个字节进行操作 配置为 96 字节 是否有可能
  • Python:获取USB闪存驱动器设备的名称[windows]

    我正在尝试编写一个小程序 它将能够读取有关 REMOVEABLE DEVICE USB 的一些信息 我试过了pyusb https github com walac pyusb但我无法提取我需要的数据 我想从系统中读取 USB 设备的名称

随机推荐

  • 透过简单例子说明“工厂方法模式”与“模板方法模式”

    最近看了一下阎宏博士的 java与模式 看的不多 的确很经典 通俗易懂 工作中很多的问题一下子就明朗了 本人菜鸟 今天看到 工厂方法模式 Factory Method 的一道思考题 其中又简单涉及了 模板方法模式 Template Meth
  • 基于 Python 的音乐流派分类

    音乐就像一面镜子 它可以告诉人们很多关于你是谁 你关心什么 不管你喜欢与否 我们喜欢说 you are what you stream Spotify Spotify 拥有 260 亿美元的净资产 是如今很受欢迎的音乐流媒体平台 它目前在其
  • ppp-2.4.5移植(交叉编译)

    移植无非就三个步骤 1 configure 2 make 3 make install 正常情况下在步骤1可以指定编译器 CC xxxx之类 或者直接指定host名称 一般 host xxxxx指定后 对应的编译器就不用指定了 会默认xxx
  • Hadoop集群搭建

    搭建教程和资源已上传 1 1Linux搭建 在VMware上部署6台Linux虚拟机用于搭建集群和虚拟机的配置 包括虚拟机网卡和主机虚拟网卡和网关的配置 以及Linux的一些基础配置 有防火墙 主机名 ssh免密登陆和主机名和地址的映射等配
  • Django TypeError: __init__() missing 1 required positional argument: 'on_delete'

    解决方法 在括号里加入 on delete models CASCADE
  • selenium——一个用于web应用程序测试的工具

    selenium是什么 他的前世今生是什么 他的作用是什么 他的原理是什么 啊哈哈 想知道 那还不赶紧去百度百科 https baike baidu com item selenium 18266 鉴于自觉地人少之又少 所以鄙人查询百般资料
  • VUE 实现 Table的动态绑定

    模板代码
  • springboot中使用EasyExcel实现Excel 导入导出

    一 EasyExcel的介绍 EasyExcel 是一款基于 Java 的简单易用的 Excel 文件操作工具 它提供了丰富的 API 可以方便地读取 写入和操作 Excel 文件 支持常见的 Excel 操作 如读取 写入单元格数据 合并
  • httpUtil工具类

    简单httpUtil工具类发送post get请求 package com wt commons utils import com alibaba fastjson JSONObject import lombok extern slf4j
  • 通过宝塔面板部署一个SpringBoot+Vue前后端分离项目的指南(三更)

    采取的部署方案 阿里云服务器 gt FinalShell gt 宝塔面板 近期需要将自己的一个SpringBoot Vue前后端分离项目 并且是分模块开发的项目部署到服务器上 记录一下踩坑的地方 结合C站大佬的解决方案 循循善诱一步步部署到
  • centos7安装Elasticsearch6.2.4

    elasticsearch启动报错 在centos7中使用wget 下载elasticsearch安装 wget https artifacts elastic co downloads elasticsearch elasticsearc
  • 单相锁相放大器,双相锁相放大器(AD630详解)

    电路图是经过资料搜集验证并优化之后 实测好用 B站对应讲解视频链接 如何测量被噪声埋没了的信号 在测量各种物理量 温度 加速度等 时 用传感器将其变换成为电信号 然后输入到分析仪器 测量仪器 中去 但是 仅想获得必要的信号是很难做到的 通常
  • 【沧海拾昧】C# .Net SplitContainer(分割器)控件的使用笔记

    C0202 沧海茫茫千钟粟 且拾吾昧一微尘 沧海拾昧集 CuPhoenix 阅前敬告 沧海拾昧集仅做个人学习笔记之用 所述内容不专业不严谨不成体系 如有问题必是本集记录有谬 切勿深究 目录 一 将窗口绑定到SplitContainer中作为
  • Mybatis-plus常用方法

    Mybatis plus常用方法总结 便携查看 1 单表增删改查 class GgktDemoApplicationTests 注入mapper Autowired private UserMapper userMapper 1 查询 Te
  • JavaScript 实现全选、全不选和反选功能

    网页中使用到表单复选框时 如果有大量的数据需要选择 经常会用到全选或者反选功能 也可能会用到全不选功能 其实是全选的反选 下面使用原生的js来实现一下全选 全不选和反选功能 声明 文章转载链接出自 JavaScript 实现全选 全不选和反
  • 《Leaflet 基础知识点》- 绘制圆、线、矩形和多边形

    前言 注意绘制的都是矢量图层 所以在 Vector Layers 分类下 绘制 圆 官网API 示例 圆 半径 radius 的单位为米 var circle L circle 31 537628173828125 121 19018554
  • 给label绘制下划线

    UIlabel本身没有下划线的属性 使用绘制的方法 添加下滑下 并且赋给该label一个action作为响应方法 实现DIY超链接的效果 调用 import UnderLineLabel h UnderLineLabel label Und
  • naive 路由使用 loadingBar 进度条

    环境 devDependencies vitejs plugin vue 4 2 3 axios 1 4 0 less 4 1 3 less loader 11 1 3 naive ui 2 34 4 pinia 2 1 4 typescr
  • PostMan使用技巧:“status“: 415 解决方案

    前言 该错误的出现 主要原因是Postmanf操作不当所致 下面代码为调用方法入口 一 错误提示信息 二 处理方案 如下图所示 调整传参方式为Body gt raw gt JSON application json 尾言 错误不大 侮辱性极
  • usb:认识usb传输(一)

    文章目录 一 usb发展背景 1 usb特点 2 usb发展 1 更名 2 发展 3 传输速度 4 usb编 解码方式 反向不归零 NRZI 位填充 5 信号传输状态 5 帧 6 通讯过程划分 二 usb的四种传输 1 控制传输 2 中断传