详解USB通信协议「特性、类型、信息格式、工作原理」

亿佰特物联网应用 2025-03-04 15:41:56

USB的全称是通用串行总线(英语:Universal Serial Bus),USB协议或通用串行总线最初由英特尔的Ajay Bhatt于1996年开发和推出,通用串行总线(USB)是一种广泛采用的接口标准,用于将设备连接到计算机,从而实现设备之间的数据传输、电源传输和通信。

USB协议是一套规则和标准,用于管理通过USB连接进行的设备通信,对于使用USB设备或开发基于USB的应用程序的个人来说,它是必备知识。USB协议定义了数据包的结构、数据传输的时间以及连接的电气特性。

通用串行总线旨在实现热插拔和增强即插即用。即插即用允许操作系统自发配置和发现新外围设备,而无需启动计算机,而热插拔则无需重新启动即可移除和更换新外围设备。市场上有不同类型的USB连接器,其中A型和B型是最常用的。目前,旧款连接器已被Mini-USB、Micro-USB和USB-C电缆取代,典型的A型USB连接器用于各种应用。这些USB包括下面给出的4个引脚。这种类型的USB主要用于将各种设备连接到PC,因为它是典型的四针USB连接器。这种连接器更高更窄,包括排列在一个盒子内的4个引脚。

A型USB的引脚用彩色线表示,以执行特定功能,PIN1(VBUS):红色线,用于提供电源,PIN2(D-):白色差分对引脚,用于USB连接,PIN3(D+):绿色差分对引脚,用于USB连接,Pin4(GND):黑色接地引脚,在上述引脚中,D+和D-引脚均表示数据传输。当通过线路发送“1”时,D+线将有正向流动,如果发送“0”,则发生反向流动。

USB协议的架构如下所示。一旦各种I/O设备通过USB连接到计算机,它们就会像一棵树一样构成结构。在这种USB结构中,每个I/O设备都会进行点对点连接,以通过串行传输格式传输数据。

在这种架构中,I/O设备通过USB连接到计算机,这被称为集线器。架构中的集线器是I/O设备和计算机之间的连接点。此架构中的根集线器用于将整个结构连接到主机计算机。此架构中的I/O设备包括键盘、鼠标、扬声器、摄像头等。

USB协议如何工作?

USB协议只是基于轮询原理工作,因为在轮询中,处理器会不断检查输入/输出设备是否准备好传输数据。因此,I/O设备不必向处理器更新其状况,因为处理器的主要职责是不断检查。这将使USB低成本且简单,每当新设备连接到集线器时,它的地址都是“0”。

在正常情况下,主机将轮询集线器以获取其状况,从而使主机知道系统中的I/O设备已连接到系统还是已从系统断开连接。一旦主机对新设备做出响应,它就会通过读取设备USB接口特定内存中的可用数据来了解设备容量。这样主机就会使用合适的驱动程序与设备通信。之后,主机会为新设备分配一个地址,该地址会写入设备寄存器。有了此设备,USB便可提供即插即用功能。

USB协议的另一个特性是“热插拔”,这意味着,无需关闭或重启,即可将I/O设备连接到主机系统或从主机系统移除。因此,无论I/O设备连接或断开,系统都会持续运行。USB协议还可以支持等时通信,只要数据以预设的时间间隔传输即可。与同步和异步数据传输相比,等时数据传输速度非常快。为了保持通信的等时性,根集线器通过USB传输一系列位,这些位指定等时数据的开始,实际数据可以在这一系列位之后传输。

USB协议时序

USB协议时序图如下所示,主要用于工程领域,解释USB线沿时间轴的开/关值,“1”表示无电荷,“0”表示活动。随着时间的推移,您可以观察到开/关的进程。下面的系统显示了非归零反转(NRZI)编码,这是一种更有效的数据传输方法。

USB信息格式

USB协议的数据在数据包中以LSB优先的方式传输,SB数据包主要有四种类型:令牌、数据、握手和帧起始。每个数据包都由各种字段类型设计而成,如下面的信息格式图所示。

SYNC:在USB协议中,每个USB数据包都会以一个SYNC字段开始,该字段通常用于同步发送端和接收端,以精确传输数据。在低速或全速USB系统中,SYNC字段包含3对KJ序列,随后是2个K,用于组成8位的数据。在高速USB系统中,同步需要15对KJ序列,随后是2个K,用于组成32位的数据。该字段的长度在低速和全速模式下为8位,而在高速模式下为32位,其目的是用于同步发送端和接收端的时钟(CLK)。最后的2位指示PID字段的起始位置。

PID:USB协议中的数据包标识符字段主要用于识别正在传输的数据包类型,从而识别数据包数据格式。此字段的长度为8位,其中高4位识别数据包类型,低4位是高4位的逐位补码。

Address:USB协议的地址字段指示数据包主要指定用于哪个设备。7位长度仅允许支持127个设备。地址零无效,因为任何尚未分配地址的设备都应对传输到零地址的数据包做出反应。

Endpoint:USB协议中的端点字段长度为4位,允许在寻址方面具有额外的灵活性。通常,这些字段被划分为数据的输入/输出。端点“0”是一种特殊情况,称为控制端点,每个设备都包含一个端点0。

Data:数据字段的长度不固定,因此其长度范围为0到8192位,并且始终是字节数的整数,在其后面是循环冗余校验(CRC),循环冗余校验在数据包有效负载中的数据上执行,其中所有令牌数据包都包含5位CRC,数据包包含16位CRC。CRC-5长度为5位,由令牌数据包以及帧数据包的开头使用。每个数据包以EOP(End of the Packet,数据包结束)字段结束,该字段包括持续2位时间的SE0(单端零),随后是持续1位时间的J。

>>>USB接口LoRa模块

上新!远距离图传数传电台、割草机LoRa射频模块、功率放大器模组、2.4G无线串口模块​

0 阅读:6

亿佰特物联网应用

简介:一家专注于物联网通信应用的高新技术企业