1.USB简介
随着计算机飞速发展,对外围接口也产生了一定要求,如小型化、高传输速度、抗干扰能力强等,老版本计算机的并行接口、RS232接口、RS485接口、ISA接口等由于存在诸多缺陷,如体型庞大、功能单一、不支持热插拔、连接数量少等,已经逐渐被淘汰了。
为了满足计算机小型化需求,USB总线接口协议在1994年11月,由Compap、Digital Equipment、IBM、Intel、Microsoft、NEC、Norrhern Telecom共7家巨头提出。由于USB接口的小巧、即插即用、良好的兼容性和低成本等特性,迅速普及开来,逐步取代了很多老式设备,比如USB键鼠取代了PS/2接口的键鼠、并口打印机被USB接口打印机取代等。
USB(Universal serial Bus),通用串行总线,从1994年提出第一个版本依赖,USB总线接口技术经历了USB1.0、USB1.1、USB2.0、USB3.0等多个版本,传输速率也有了质的飞跃。
1.2.认识USB总线接口
在日常生活中,USB接口随从可见,如U盘、USB键鼠、USB摄像头等,本小节介绍常见的USB接口发展历史及相关硬件规范。
USB版本如下表所示:
USB版本 | 理论速率 | 供电电压/最大电流 | 控制器类型 | 简称 | 说明 |
---|---|---|---|---|---|
USB 1.0 | 1.5Mb/s | 5V/500mA | OHCI/UHCI | Low Speed USB | 无 |
USB 1.1 | 12Mb/s | 5V/500mA | OHCI/UHCI | Full Speed USB | 无 |
USB 2.0 | 480Mb/s | 5V/500mA | EHCI | High Speed USB | 无 |
USB 3.0 | 5Gb/s | 5V/900mA | xHCI | Super Speed USB | 无 |
USB 3.1 | 10Gb/s | 20V/2A或者12V/3A | xHCI | Super-Super Speed USB | 无 |
USB OTG | 无 | 无 | 无 | 无 | 用于主从切换 |
1.2.1.USB1.x和USB2.0常见接口及引脚定义
- USB A/B型接口
USB A/B型接口引脚说明如下图所示:
标准A/B型接口的引脚定义说明如下表所示:
引脚 | 名称 | 说明 | 接线颜色 |
---|---|---|---|
1 | VBus | +5V | 红色 |
2 | D- | 差分数据- | 白色 |
3 | D+ | 差分数据+ | 绿色 |
4 | GND | 地 | 黑色 |
- USB min型接口
- USB micro型接口
USB min/micro型接口引脚说明如下图所示:
USB min/micro型接口引脚定义说明如下表所示:
引脚 | 名称 | 说明 | 接线颜色 |
---|---|---|---|
1 | VBus | +5V | 红色 |
2 | D- | 差分数据- | 白色 |
3 | D+ | 差分数据+ | 绿色 |
4 | ID | ID引脚,用于OTG | NA |
5 | GND | 地 | 黑色 |
1.2.2.USB3.x常见接口及引脚定义
USB3.x A型接口引脚说明如下图所示:
标准A/B型接口的引脚定义说明如下表所示:
引脚 | 名称 | 说明 | 接线颜色 |
---|---|---|---|
1 | VBus | +5V | 红色 |
2 | D- | 差分数据- | 白色 |
3 | D+ | 差分数据+ | 绿色 |
4 | GND | 电源地 | 黑色 |
5 | StdA_SSRX−/StdB_SSTX- | 高速数据差分对-接收 | 蓝色 |
6 | StdA_SSRX+/StdB_SSTX+ | 高速数据差分对-接收 | 黄色 |
7 | GND | 信号地 | NA |
8 | StdA_SSTX−/StdB_SSRX- | 高速数据差分对-发送 | 紫色 |
9 | StdA_SSTX+/StdB_SSRX+ | 高速数据差分对-发送 | 橙色 |
注:USB3.x下的micro接口与USB2.0 micro接口基本一致,只是增加了2对高速数据差分对和一个信号地,共10pin,用于提高传输速率。
1.2.3.USB接口区分方法
为了方便区分USB3.x和其他版本USB接口区别,下面介绍一下USB接口的简单区分方法:
-
触点法, USB3.x接口有9-10个金属触点,而其他版本USB接口只有4-5个金属触点,通过对金属触点就可以明显区分。
-
颜色法:USB-IF组织要求USB接口及线缆生产商在超高速USB3.x接口中采用蓝色基座,以便于和其他版本USB进行区分。
-
标志法:USB-IF组织要求超高速USB接口必须印有"SS"字样,可以通过该标志区分USB3.0和其他版本USB。
1.2.4.USB速度识别
- 全速和低速的识别
主机的hub端的D+和D-上分别接了15k的下拉电阻到地,当主机hub悬空时,主机hub端均为低电平;
usb设备端的D+或者D-上接有1.5k上拉电阻,低速设备的上拉电阻接到D-上,高速和全速设备的上拉电阻接到D+上,当设备插入主机时,根据数据线的电平高低识别速度,如下图所示:
2. 高速设备的识别
usb高速设备的D+上接有1.5k的上拉电阻,当设备插入主机时,首先被识别为全速设备。之后,hub和设备需要通过“Chirp序列”的总线握手机制来识别高速和全速设备。整个过程中,高速的hub需要检测插入的设备是高速、全速还是低速,高速的设备需要检测所连接上的hub是都支持高速模式,如果双方都确认成功,就进行以系列的动作,设备从全速切换到高速模式,高速模式下,采用电流传输模式,设备需要将上拉电阻断开。否则,设备以全速模式工作。
1.3.USB Controller和USB Phy关系
无论在USB device或者USB host中,都需要USB Controller和USB Phy,它两关系如下图所示:
Controller部分主要实现USB的协议和控制。内部逻辑主要有MAC层、CSR层和FIFO控制层,还有其他低功耗管理之类层次。MAC实现按USB协议进行数据包打包和解包,并把数据按照UTMI总线格式发送给PHY(USB3.0为PIPE)。CSR层进行寄存器控制,软件对USB芯片的控制就是通过CSR寄存器,这部分和CPU进行交互访问,主要作为Slave通过AXI或者AHB进行交互。FIFO控制层主要是和DDR进行数据交互,控制USB从DDR搬运数据的通道,主要作为Master通过AXI/AHB进行交互。PHY部分功能主要实现并转串的功能,把UTMI或者PIPE口的并行数据转换成串行数据,再通过差分数据线输出到芯片外部。
1.4.USB OTG技术
USB OTG(USB ON-The-Go)技术主要针对移动设备之间的互联和数据传输,在没有USB OTG技术之前,USB设备分为Host 设备和Slave设备,无法满足端对端传输,USB OTG技术让USB传输摆脱了原来主从架构的限制,实现了端对端的传输模式。
USB OTG控制器硬件信号如下图所示:
OTG控制器可以做host,也能做device,控制器的角色一般由USB ID电平来决定,USB_ID 默认上拉,处于 device 状况,如果要控制器进入host 状态,需外接mini-A 口或 micro-A 口将USB_ID短接到地。当然,除了通过硬件将USB_ID引脚接地,软件上也可以控制,方便device和host模式的相互切换。