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

news2024/11/13 14:46:32

连接计算机外围设备最简单的方法是通过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字段结束。

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

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

相关文章

前端Vue——安装和遇到的问题记录

文章目录 安装Node.js安装Vue需要的脚手架Vue Cli在PyCharm中开发Vue项目 安装Node.js 下载地址:https://nodejs.cn/download/ 下载.Msi即可,然后安装,一直next WinR,cmd,node -v可以查看node的版本,v18.1…

Deno 命令行界面

目录 1、命令行界面 ​2、脚本源 3、脚本参数 4、监听模式 5、完整性标记(lock files) 6、缓存和编译标记 7、运行时标记 7.1 类型检查标记 7.2 权限标记 7.2.1 权限 7.2.2 放心地运行不受信任的代码 7.2.3 权限列表 7.2.4 可配置权限 文件…

Vm虚拟机安装Linux(ubuntu18.04)系统教程(2023最新最详细)

软件:Linux版本:18.0.4语言:简体中文大小:1.82G安装环境:VMware硬件要求:CPU2.0GHz 内存4G(或更高) 下载通道①丨百度网盘: 1.Vm虚拟机15.5下载链接: https://pan.baidu.…

Vue项目中使用Multiavatarjs生成自定义随机头像-demo

Multiavatar & vue-color-avatar 前者使用简单一点提供的有api,后者更类似一个项目 主要使用Multiavatar去实现随机生成头像的功能 https://github.com/multiavatar/Multiavatar/blob/main/multiavatar.js 使用很简单,把js下载保存到项目中&#xff…

【Top101】002链表内指定区间反转

链表内指定区间反转_牛客题霸_牛客网 import java.util.*;/** public class ListNode {* int val;* ListNode next null;* public ListNode(int val) {* this.val val;* }* }*/public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿…

零代码编程:用ChatGPT将Mobi、epub、azw3等电子书批量转换为word文档

将ebook格式转换为PDF需要一个名为Calibre的命令行工具。这是一个开源的电子书管理工具,首先在系统上安装它,软件下载地址:https://calibre-ebook.com/download_windows 然后将其添加到PATH环境变量中: 接下来,在ChatG…

学信息系统项目管理师第4版系列35_补遗

题外话:1. 计划没有变化快,10月18日软考出了通告,10月28日和29日分别是信息系统项目管理师第一批次和第二批次考试,比原先11月4日提前一周,祝贺那一批敢为人先的幸运儿。 2. 该系列也进入了尾声,补遗是正文…

【Maven】Unknown lifecycle phase “.skip.test=true“.

idea 终端执行如下命令时 mvn clean install -Dmaven.skip.testtrue报&#xff1a; Unknown lifecycle phase ".skip.testtrue". You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id&…

【ONE·C++ || 智能指针 特殊类的设计】

总言 主要介绍智能指针&#xff08;auto_ptr、unique_ptr、shared_ptr、weak_ptr&#xff09;和特殊类的设计&#xff08;单例模式&#xff09;。 文章目录 总言1、为什么需要智能指针&#xff1f;&#xff08;内存泄漏&#xff09;1.1、什么是内存泄漏1.2、内存泄漏的分类和常…

leetcode做题笔记199. 二叉树的右视图

给定一个二叉树的 根节点 root&#xff0c;想象自己站在它的右侧&#xff0c;按照从顶部到底部的顺序&#xff0c;返回从右侧所能看到的节点值。 示例 1: 输入: [1,2,3,null,5,null,4] 输出: [1,3,4]示例 2: 输入: [1,null,3] 输出: [1,3]示例 3: 输入: [] 输出: [] 思路一&…

SD/SDIO(2):SDIO协议介绍和初始化流程

文章目录 1 标准/非标准SDIO规范2 SDIO引脚定义3 SDIO初始化流程3.1 由不支持I/O的主机初始化3.2 由支持I/O的主机初始化3.3 CMD5(IO_SEND_OP_COND)3.4 R4(CMD5的回复) 4 总结 1 标准/非标准SDIO规范 如下图所示&#xff0c;SDIO总线规范由物理层规范和SDIO规范定义。组合卡(包…

基于WebRTC构建的程序因虚拟内存不足导致闪退问题的排查以及解决办法的探究

目录 1、WebRTC简介 2、问题现象描述 3、将Windbg附加到目标进程上分析 3.1、Windbg没有附加到主程序进程上&#xff0c;没有感知到异常或中断 3.2、Windbg感知到了中断&#xff0c;中断在DebugBreak函数调用上 3.3、32位进程用户态虚拟地址和内核态虚拟地址的划分 …

Dockerfile 镜像创建

目录 一、创建镜像的三种方法&#xff1a; 二、基于已有镜像创建&#xff1a; 1.启动一个镜像&#xff1a; ​编辑 2.将修改后的容器提交为新的镜像&#xff1a; 三、基于本地模板创建&#xff1a; 1.下载模板&#xff1a; 2.导入为镜像&#xff1a; 四、基于Dockerfile 创…

AD9371 官方例程HDL详解之JESD204B TX_CLK生成 (一)

AD9371 系列快速入口 AD9371ZCU102 移植到 ZCU106 &#xff1a; AD9371 官方例程构建及单音信号收发 ad9371_tx_jesd -->util_ad9371_xcvr接口映射&#xff1a; AD9371 官方例程之 tx_jesd 与 xcvr接口映射 参考资料&#xff1a; UltraScale Architecture GTH Transceive…

Windows 11中无法通过默认应用更改文件关联

这里写自定义目录标题 现象解决方法 这里以.md格式文件为例。 现象 在 Windows 11 计算机上安装第三方软件后&#xff0c;关联 JPG、JPE、JPEG、PNG、MPG、MPEG、MD 等文件类型和其他文件类型的能力可能会受到阻碍。以下是尝试更改上述文件类型的文件关联时可能遇到的问题。 …

docker部署与基础操作

目录 一、Docker 概述&#xff1a; 1. docker简介&#xff1a; 2. 容器的优点&#xff1a; 3. 容器在内核中支持2种重要技术&#xff1a; 4 . 容器与虚拟机 的区别&#xff1a; 5. docker三个核心概念&#xff1a; 二、安装docker&#xff1a; 1. 关闭防火墙&#xff1a; 2. 安…

字节码进阶之JVM Attach API详解

字节码进阶之JVM Attach API详解 文章目录 字节码进阶之JVM Attach API详解附加到虚拟机加载代理和获取信息分离虚拟机 使用Attach API的基本步骤1. **获取虚拟机实例**&#xff1a;2. **附加到虚拟机**&#xff1a;3. **加载代理或获取信息**4. **从虚拟机分离**&#xff1a;…

GCC安装

查看gcc版本 gcc -vUsing built-in specs. COLLECT_GCCgcc COLLECT_LTO_WRAPPER/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper Target: x86_64-redhat-linux Configured with: ../configure --prefix/usr --mandir/usr/share/man --infodir/usr/share/info --with-…

Identity-Preserving Talking Face Generation with Landmark and Appearance Priors

主要问题:1)模型如何生成具有与输入音频一致的面部运动(特别是嘴部和下颌运动)的视频?2)模型如何在保留身份信息的同时生成视觉上逼真的帧? 摘要: 从音频生成说话脸部视频引起了广泛的研究兴趣。一些特定个人的方法可以生成生动的视频,但需要使用目标说话者的视频进行训…

【tg】6: MediaManager的主要功能

【tg】2:视频采集的输入和输出 的管理者是 media manager‘ media 需要 network的支持:NetworkInterface friend class MediaManager::NetworkInterfaceImpl;NetworkInterfaceImpl 直接持有 MediaManager 的指针即可:发送rtp包、rtcp包、设置socket选项?