关注+星标公众,不错过精彩内容

视频号 | strongerHuang

微信公众号 | strongerHuang

1写在前面

USB:Universal Serial Bus,通用串行总线。

USB最初由英特尔与微软倡导发起,最大的特点是尽可能的实现热插拔和即插即用。

USB总线是差分信号吗?

什么是USB 2.0、USB 3.0?

什么是低速、全速、高速?

什么是Type-A、Type-B、Type-C?

针对这些疑问,本文讲述USB相关的一些基础知识。

2USB发展历程

较早版本

USB 0.7:1994年11月发布。

USB 0.8:1994年12月发布。

USB 0.9:1995年4月发布。

USB 0.99:1995年8月发布。

USB 1.0 RC:1995年11月发布。

USB 1.0:1996年1月发布

数据传输速率为1.5Mbit/s(Low-Speed)。无预测及通过检测功能。仅极少数出现在市场上。

USB 1.1:1998年9月发布

修正1.0版已发现的问题,大部分是关于USB Hubs。最早被采用的修订版。数据传输速率为12Mbit/s(Full-Speed)。

USB 2.0:2000年4月发布

增加更高的数据传输速率480Mbit/s(现在称作Hi-Speed),但受限于BOT传输协议和NRZI编码方式,实际最高传输速度只有35MByte/s左右。

USB OTG(On-The-Go)是USB2.0规格的补充标准。

USB 3.0:2008年11月发布

速度由480Mbps大幅提升到5Gbps,USB 3.0插座通常是蓝色的,并向下兼容USB 2.0。

USB 3.1:2013年7月31日发布

传输速度提升为10Gb/s,比USB3.0的5Gb/s快上一倍,并向下兼容USB 2.0/1.0,电力供应可高达100W。

USB 3.2

在现有的USB Type-C数据在线实现双通道,使用USB 3.2主机连接USB 3.2存储设备,可以实现两条通道10Gb/s的传输速度,理论上也就是相当接近于20Gb/s。

USB 4:2019年9月3日发布

采用Thunderbolt 3协议规格,使Thunderbolt 3设备将能兼容于USB 4,现有3.2及2.0也向下兼容。速度方面加倍来到两条通道总共40Gb/s的传输速度。

3USB版本

USB-IF当前正式的主版本号只有USB 2.0和USB 3.2两个。

(USB-IF:USB Implementers Forum,USB标准化组织)

USB标准化组织主版本只有两个,但现在USB标准中,按照速度等级和连接方式分为以下几种版本:USB 1.0、 1.1、 2.0、 3.0、 3.1、 3.2。

下面给一张图:

准确的说,主版本号除了USB 2.0和USB 3.2,还应该有一个USB4。

上面那张图信息量有点大,你会发现我们学习、开发板上使用的基本都是USB 2.0版本(低速、全速、高速),也是众多嵌入式产品中常用的一种。

4USB接口

现在流行于手机中的一种接口【Type-C】,相信绝大部分人都知道。

Type-C属于USB中一种较新的接口,在这之前其实还有Type-A和Type-B(可能很多人不知道)。

下面给一张图:

你会发现接口的触点有4个的,也有5个的。其中多的那个引脚为USB_ID,主要用于OTG(On-The-Go)主设备和从设备。

OTG设备使用插头中的ID引脚来区分A/B Device,ID接地被称作为A-Device,充当USB Host,A-Device始终为总线并提供电力。

ID悬空被称作为B-Device,充当USB Device。设备的USB Host/USB Device角色可以通过HNP(主机交换协议)切换。

5USB设备识别

USB信号使用分别标记为D+和D- 的双绞线传输,它们各自使用半双工的差分信号并协同工作,以抵消长导线的电磁干扰。

因为USB设备类型有很多,同时又做了兼容,因此就需要对不同设备进行识别。

这里讲述一下低速、全速和高速设备的识别原理(官方有手册)。

1.低速和全速设备识别

低速(Low Speed)和全速(Full Speed)设备区分方法比较简单:在设备端有一个1.5k的上拉电阻,当设备插入hub或上电(固定线缆的USB设备)时,有上拉电阻的那根数据线就会被拉高,hub根据D+/D-上的电平判断所挂载的是全速设备还是低速设备。

  • 低速设备1.5K上拉电阻位于D-

  • 全速设备1.5K上拉电阻位于D+

如下图:

2.高速设备识别

(上面)USB低速和全速的识别比较简单,但只有一对D+和D-数据线,高速设备就不能再像上面那样仅依靠数据线上拉电阻来识别。

高速设备初始是以一个全速设备的身份出现,和全速设备一样,D+线上有一个1.5k的上拉电阻。USB2.0的hub把它当作一个全速设备,之后,hub和设备通过一系列握手信号确认双方的身份。

如上图,hub检测到有设备插入/上电时,向主机通报,主机发送Set_Port_Feature请求让hub复位新插入的设备。设备复位操作是hub通过驱动数据线到复位状态SE0(Single-ended 0,即D+和D-全为低电平),并持续至少10ms。

具体识别过程相对复杂,具体可见下面描述:

6USB更多

更多关于USB协议和标准,可进入官方网站了解。

文档:

https://www.usb.org/documents

------------ END ------------

关注公众号后台回复『通信教程』『单片机』相关文章。

回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。

点击“阅读原文”查看更多分享

通信教程 | USB接口、标准和基础原理相关推荐

  1. 通信教程05_USB接口、标准和基础原理

    关注.星标公众号,不错过精彩内容 本教程由作者strongerHuang于2019年11月原创发布. 标签:串口. USB. 通信 版权所有:禁止商用 申明:该文档仅供个人学习使用,转载请公众号联系作 ...

  2. 通信教程 | SPI接口说明及原理

    视频号 | strongerHuang 微信公众号 | strongerHuang 1简介 SPI:Serial Peripheral Interface,是串行外设接口. SPI是由摩托罗拉于 19 ...

  3. USB接口图和工作原理

    通用串行总线(英语:Universal Serial Bus,缩写:USB)是连接计算机系统与外部设备的一种串口总线标准,也是一种输入输出接口的技术规范. 它只有4根线,两个电源(5V,地线),两个数 ...

  4. 微型计算机usb只能连接u盘,USB接口连接的外部设备(如移动硬盘、U盘等)必须另外供应电源...

    正确答案: D USB接口连接的外部设备(如移动硬盘.U盘等)必须另外供应电源 题目:下面关于USB的叙述中,错误的是______. 解析:解析:USB是一个外部总线标准,用于规范计算机与外部设备的连 ...

  5. 通信教程 | 常见串行通信基础原理

    视频号 | strongerHuang 微信公众号 | strongerHuang 为什么要讲述串行通信呢?因为现在并行通信相对很少见,基本上都是串行通信. 今天给大家概要讲述一下常见的串行通信及相关 ...

  6. 一篇读懂:Android手机如何通过USB接口与外设通信(附原理分析及方案选型)

    更多技术干货,欢迎扫码关注博主微信公众号:HowieXue,共同探讨软件知识经验,关注就有海量学习资料免费领哦: 目录 0背景 1.手机USB接口通信特点 1.1 使用方便 1.2 通用性强 1.3 ...

  7. 通信教程 | I²C基础原理及通信协议

    视频号 | strongerHuang 微信公众号 | strongerHuang I²C是目前使用较多的一种总线,一般用于连接各种从设备,比如:EEPROM存储器.温湿度传感器.角速度计等. 1I2 ...

  8. RS232接口转USB接口的通信方法

    2006-05-03 21:44:07 组图]RS232接口转USB接口的通信方法 RS232接口转USB接口的通信方法 USB作为一种新的PC机互连协议,使外设到计算机的连接更加高效.便利.这种接口 ...

  9. 通过USB接口与EFM8微控制器进行通信

    了解如何使用标准USB接口将数据从PC发送到EFM8微控制器. 所需的硬件/软件 ● SLSTK2000A EFM8评估板 ● Simplicity Studio集成开发环境 ● SCILAB 项目概 ...

最新文章

  1. ESI计算机排名2021年01月,喜忧参半!2021年5月ESI世界大学排行榜,21个学科排名数据分析!...
  2. 从opensuse 12.3 升级到 opensuse13.1体验
  3. 一个退休程序员,用高中几何方法,让百年数学难题逼近理论极限
  4. 使用VirtualBox SDK之初步编译
  5. 函数不可访问_关于可重入函数
  6. 从Xbox和Zune中学到的四门创业课
  7. 什么样的状态该跳槽了?
  8. OCS Inventory NG使用之win平台下的AGENT端安装与信息收集(一)
  9. 变分模态分解(VMD)原理-附代码
  10. python 英语分词_Python实现中英文分词
  11. 怎么在计算机中添加用户账户,使用net user命令在win7电脑中添加账户的步骤
  12. 搭建云免流服务器教程,搭建云免流服务器教程
  13. 【LLM大模型】模型和指令微调方法
  14. 获取crumbIssuer
  15. grep搜索特定文件
  16. netty 实现消息群发
  17. [Hive]那些年我们踩过的Hive坑
  18. NCBI Pathogen Detection project简介
  19. 《算法第一步》出版啦!
  20. C语言:srand函数与rand函数的使用(纯干货)【易懂】

热门文章

  1. java与前端实现7种二维码
  2. 迈思德物联网网关问答集锦
  3. androidP 对反射的限制之黑名单机制
  4. 一段用c#操作datatable的代码
  5. Java 核心技术卷 II(第 8 版) – 读书笔记 – 第 1 章(下)
  6. 利用LORA无线信号接入数据的手持PDA装置
  7. u盘插上计算机未响应,插U盘没反应的一种情况与解决
  8. 基于java的电子病历管理系统ssh框架
  9. RoboCup Rescue Simulator Tutorial core
  10. 在农业道路上越扎越深,拼多多看到了什么?