USB的全称是通用串行总线(英语:UniversalSerialBus),USB协议或通用串行总线最初由英特尔的AjayBhatt于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设备都会进行点对点连接,以通过串行传输格式传输数据。
在这种架构中,IO模块设备通过USB连接到计算机,这被称为集线器。架构中的集线器是I/O设备和计算机之间的连接点。此架构中的根集线器用于将整个结构连接到主机计算机。此架构中的I/O设备包括键盘、鼠标、扬声器、摄像头等
USB协议只是基于轮询原理工作,因为在轮询中,处理器会不断检查输入/输出设备是否准备好传输数据。因此,以太网I/O模块设备不必向处理器更新其状况,因为处理器的主要职责是不断检查。因此,这将使USB低成本且简单,每当新设备连接到集线器时,它的地址都是“0”。在正常情况下,主机将轮询集线器以获取其状况,从而使主机知道系统中的I/O设备已连接到系统还是已从系统断开连接。一旦主机对新设备做出响应,它就会通过读取设备USB接口特定内存中的可用数据来了解设备容量。这样主机就会使用合适的驱动程序与设备通信。之后,主机会为新设备分配一个地址,该地址会写入设备寄存器。有了此设备,USB便可提供即插即用功能。USB协议的另一个特性是“热插拔”,这意味着,无需关闭或重启,即可将I/O设备连接到主机系统或从主机系统移除。因此,无论I/O设备连接或断开,系统都会持续运行。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(EndofthePacket,数据包结束)字段结束,该字段包括持续2位时间的SE0(单端零),随后是持续1位时间的J。
今天的分享就到这里啦,EBYTE每一天都致力于更好的助力物联化、智能化、自动化的发展,提升资源利用率,更多产品更多资料,感兴趣的小伙伴可以登录我们的亿佰特官网和企业公众号(微信号:cdebyte)进行了解,也可以直接拨打400电话咨询技术专员!
相关阅读:
7 X 24 销售服务热线
4000-330-990深圳办事处柯经理:18218726658 南京办事处葛经理:17626012283
无锡办事处刘经理:13558641933
成都总部销售经理:
秦 科(无线模块):18884314654 冯子恒(无线模块):18828049434
蔡友银(无线模块):13882211021 葛宇龙(通信设备):19138800613
胡兵(外贸销售经理):18584911141、 sales06@ebyte.com
业务邮箱:support@cdebyte.com 全国销售投诉电话:19934352316
地址:四川省成都市高新西区西区大道199号B5栋(前台座机:028-61543675)
©© 成都亿佰特电子科技有限公司【版权所有】 蜀ICP备13019384号