USB学习(1):USB基础之接口类型、协议标准、引脚分布、架构、时序和数据格式

本文主要是介绍USB学习(1):USB基础之接口类型、协议标准、引脚分布、架构、时序和数据格式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

连接计算机外围设备最简单的方法是通过USB(通用串行总线)。USB是即插即用接口,可以将扫描仪、打印机、数码相机、闪存驱动器等计算机外围设备连接到计算机上。本篇文章就来介绍一下USB的一些基础知识,包括。

文章目录

  • 1 接口类型和标准规范
  • 2 引脚分布
  • 3 USB体系架构和工作原理
  • 4 USB时序
  • 5 USB数据格式

1 接口类型和标准规范

USB接口有不同的形状和设计,最初只有两种USB类型:USB-A和USB-B。现在,又衍生出了更多地接口类型,包括USB-C、USB Micro、USB Mini和Lightning Cable,如下图所示:
在这里插入图片描述
(1)USB-A:最常见的USB类型,主要应用于有线鼠标、键盘和U盘。它的线缆端较宽,由于该连接器没有旋转对称性,两端不同,对应不同类型的端口。

(2)USB-B:中间为小矩形孔形状。它通常不用于现代计算机,但在打印机、路由器和扫描仪上常见。

(3)USB-C:有一个更扁平、更小的公口,中间的孔是扁平的椭圆形,适合小型连接器针脚插入。它是取代USB-A和USB-B的新标准,更适用于较薄的设备,如MacBook和手机。

(4)USB Micro:USB-A和USB-B都有Micro大小的版本。Micro USB是如今许多智能手机中非常常见的USB连接器。然而,随着USB Type C的出现,Micro USB正在慢慢被淘汰,不再用于新款高端智能手机。但Micro USB仍然广泛应用于全球的廉价智能手机和其他电子设备中。

(5)USB Mini:同样有两种分为USB Mini A和USB Mini B。它们是Type A和Type B USB连接器的缩小版,一般用于便携式相机、游戏控制器和一些老款移动电话中。

(6)Lightning Cable:主要用于iPhone和iPad,采用完全不同类型的USB连接器,即Lightning cable。这种线缆的一端有一个薄的矩形连接器,另一端是Type C连接器。Lightning cables没有正反面的区分,不用担心插入的正反。


USB支持三种速度:低速(1.5Mbps)、全速(12Mbps)和高速(480Mbps)。
(1)USB 2.0标准:高速USB,最大数据传输速度为480Mbps,支持所有类型的连接器,最大电缆长度为5米,最大充电功率为15瓦。

(2)USB 3.2标准(第一代):超高速USB,最大数据传输速度为5Gbps,支持USB-A 3.0、USB-B 3.0和USB-C等不同连接器,最大电缆长度为3米,最大充电功率为15瓦。

(3)USB 3.2标准(第二代):同样是超高速USB,最大数据传输速度为10Gbps,最大电缆长度为1米,支持不同类型的连接器,最大充电功率为100瓦。

(4)USB 3.2标准(第2×2代):超高速USB,最大数据传输速度为20Gbps,最大电缆长度为1米,支持USB连接器,最大充电功率为100瓦。

(5)Thunderbolt 3标准:最大数据传输速度高达40Gbps,最大电缆长度为2米(主动电缆,即包括放大和补偿信号的芯片转换的电缆)和0.8米(被动电缆),支持USB连接器,最大充电功率为100瓦。

(6)USB 4标准:也称为Thunderbolt 4,最大数据传输速度高达40 Gbps,最大电缆长度为2米(主动电缆)和0.8米(被动电缆),支持USB连接器,最大充电功率为100瓦。

  • USB 4的标准和Thunderbolt 3几乎一样,因为Thunderbolt 3由Intel开发,通常受特定的厂商支持,而USB4则是一个开房标准,不受制造商限制,任何厂商都可以实现USB 4,而不需要特定的许可

2 引脚分布

USB2.0共4条线,其中数据通过D+D-连接器传输,而VbusGND为USB设备供电。下图为USB-A和USB-B的引脚图:
在这里插入图片描述
将USB-A的线剪开,如下图所示:
在这里插入图片描述

USB3.0的引脚如下:
在这里插入图片描述
可以看到USB3.0多了5个引脚:两根高速发送引脚、两根高速接收引脚和参考地。之所以预留原来的4个引脚是为了兼容USB2.0。

3 USB体系架构和工作原理

下图是USB协议结构的概述,一旦各种I/O设备通过USB连接到计算机,它们就会构成一个树状结构。在这种USB结构中,每个I/O设备都会进行点对点连接,通过串行传输格式来传输数据。

在这种架构中,I/O设备通过USB连接到计算机,USB也被称为集线器。架构中的集线器是I/O设备与计算机之间的连接点。该架构中的根集线器用于将整个结构连接到主机计算机。
在这里插入图片描述
USB协议的工作基于轮询机制,CPU会持续检查输入/输出设备是否准备好传输数据。因此,I/O设备无需向处理器更新它们的状况。每当新的设备连接到集线器时,它会被分配一个地址,第一个设备的地址为0。正常情况下,主机会对集线器进行轮询以获取其状况,从而使主机知道系统中的I/O设备是连接还是断开的。

一旦主机响应新设备,它通过读取设备的USB接口的特定内存中的可用数据来了解设备的容量。然后,主机使用适当的驱动程序与设备通信。接着,主机分配一个地址给新设备,该地址写入设备寄存器。通过这个功能,USB提供了即插即用的功能,允许主机自动识别新的可用I/O设备。

USB协议的另一个特点是“热插拔”,这意味着可以在不关闭或重启的情况下连接或断开I/O设备,因此当I/O设备连接或断开时,系统可以持续运行。

USB协议还可以支持等时传输,即数据在预定的时间间隔内传输。相比同步和异步数据传输,等时数据传输的传输速度非常快。为了保持等时的传输,根集线器通过USB发送一系列位,这些位指定了等时数据的开始,实际的数据可以在这一系列位之后传输。

4 USB时序

对于USB来说,它的数据传输仅依靠一对差分的D+和D-,而没有时钟线,那么它是怎么实现时间的同步的呢?USB采用反向不归零编码(NRZI)来传输数据:当下一个电平为0时,电平反转;当下一个电平为1时,电平不变。
在这里插入图片描述

每个USB数据包,最开始都有一个同步域(SYNC),接受者通过此包来计算出发送者的USB数据的频率。同时由于遇到逻辑0时比特位会翻转,接收者也一直在根据这个特性在调整USB的同步频率。但还是有一个问题,就是计算出来的频率不准确或自身的采样时钟无法完全与发送者的完全一致,所以如果连续出现多个逻辑1的话,很有可能造成数据传输的不一致。所以如果数据出现6个逻辑1,则会在这后面填充一个逻辑0,如上图所示中的Suffered Bit。接收端采样数据时只需要把这个填充位去掉即可。

5 USB数据格式

主设备之间进行有效通信非常重要。一旦外设通过USB连接到计算机,计算机会识别它是什么类型的设备,并自动加载允许设备正常工作的驱动程序。在这两个设备之间传输的少量数据称为数据包,每个数据包传输一个数字信息单元。USB协议中常见的4种数据包如下图所示:
在这里插入图片描述
(1)SYNC(Syncronize,同步字段):USB协议中,每个USB数据包都以SYNC字段开始,通常用于确保发送者和接收者保持时钟同步。在低速或全速USB系统中,SYNC字段为10101011。在高速USB系统中,SYNC字段为10101010 10101010 10101010 10101011。最后2位固定为11,用于指示PID字段的起始位置。

(2)PID字段(Packet Identifier,包标识符字段):用于识别正在传输的数据包类型以及数据包数据格式。该字段长8位,其中前4位识别数据包类型,后4位是前4位的按位补码。
在这里插入图片描述

(3)Address(地址字段):指示数据包主要用于哪个设备。这个7位长的字段允许最多支持127个设备。地址为零的设备是无效的,因为尚未分配地址的任何设备都应该对零地址的传输数据包做出响应。

(4)Endpoint(端点字段):端点字段长4位,允许更灵活地进行寻址。通常,这些字段用于指示数据是输入还是输出。端点’0’是一个特殊情况,被称为控制端点,每个设备都包括一个端点0。

(4)Data(数据字段):数据字段的长度不是固定的,可以从0到8192bit,但必须以字节为单位。

(5)CRC字段(Cyclic Redundancy Checks):CRC是在数据包有效负载中的数据上执行的,所有令牌数据包(用来启动一次USB传输)和帧起始数据包使用5位CRC,而数据数据包使用16位CRC。

(6)EOP字段(End of the Packet,数据包结束字段):每个数据包都以EOP字段结束。

这篇关于USB学习(1):USB基础之接口类型、协议标准、引脚分布、架构、时序和数据格式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/266509

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识