市面上很多处理器的USB接口都是通过DP/DM(USB2.0)或者RXP/N、TXP/N(USB3.0)信号直接引出的,但有一部分处理器为了降低成本,没有集成USB PHY芯片,需要外置PHY芯片,本文就针对常见的PHY芯片接口进行介绍。
目前市面上主要有三种PHY芯片的接口:UTMI、UTMI+、ULPI,其中用的最多的是ULPI接口,下面就针对这三种接口进行简单的介绍。
1、UTMI+
UTMI的全称是USB2.0 Transceiver Macrocell Interface,主要针对USB2.0的信号特点进行定义,分为8位或16位数据接口。目的是为了减少芯片厂家的工作量,缩短产品的设计周期,降低风险。此接口模块主要是处理物理底层的USB协议及信号,可与SIE(Serial Interface Engine)整合设计成一颗专用ASIC芯片,也可独立作为PHY的收发器芯片。
UTMI定义了USB Transceiver Macrocell和USB Link layer (SIE)之间的接口,实现数据的serialization and deserialization、bit stuffing、clock recovery、synchronization等等。
UTMI规范只适用于USB2.0 peripherals,不支持USB 2.0 host or On-The-Go peripherals。

1.1、UTMI接口信号
UTMI接口信号包括四类:System Interface Signals、USB Interface Signals、Vendor Control Signals、Data Interface Signals,System Interface Signals包括时钟、传输控制、端接控制、挂起、DP/DM状态控制、操作模式等信号,USB Interface Signals包括DP/DM差分对,Vendor Control Signals主要是厂商自定义的error, status and control信息等,每一类定义如下:







8-bit模式的接口信号如下:

16-bit模式的接口信号如下:

1.2、UTMI接口信号时序
UTMI接口为并行接口,其控制和数据信号线较多,时序比较复杂,本文就不再一一介绍了,具体可参见Intel的规范《USB 2.0 Transceiver Macrocell Interface (UTMI) Specification Version 1.05》
2、UTMI+
UTMI+接口是在UTMI的基础上发展起来的,UTMI+定义了一种接口,通用于USB 2.0 ASIC, ASSP, discrete PHY, system peripherals and IP vendors。由于UTMI接口不能用于USB2.0 host和On-The-Go peripherals,因此UTMI+在UTMI的基础上增加了对USB2.0 host和On-The-Go peripherals的支持,形成了标准的USB2.0接口。
由于高速USB HOST和OTG的复杂性,UTMI+接口分成了不同的等级,Level 0就是UTMI接口(修复了一些bug,比如不同厂商之间的兼容性问题等),Level 1集成了HS和FS的OTG功能,Level 2增加了LS相关功能,Level 3增加了对FS HUB相关的支持。

2.1、UTMI+ Level 0
由于UTMI规范的一些部分没有明确地指定,或者可以用不同的方式进行解释。这导致不同供应商的UTMI收发器之间并不能保证完全兼容,所以UTMI+ Level 0在UTMI的基础上进行了修改,主要包括:
使用LineState作为时序标准,在UTMI规范中多次提到LineState是用于约束USB总线时序最精准的信号,但这并不是规范的硬性要求,厂商可以使用任何别的方式实现USB总线时序,只要保证USB总线的时序,并且对PHY的设计不增加额外的约束即可。
LineState的滤波,为了保证DP/DM信号线上的Skew,并且在J和K状态之间不会出现不必要的SE0和SE1。滤波只能用于SE0,如果在给SE0滤波期间,有non-SE0事件,则滤波结束,LineState保持之前的状态,为了滤除最坏情况下的SE0噪声,收发器应该事先的滤波参数如下表所示:

一旦USB传输开始后,UTMI PHY必须在内部阻断USB接收通路,直到出现Squelch (HS)或者SE0-to-J (FS/LS)之后才能解除阻塞。
Chirp mode一定要使用TxReady信号,如果UTMI PHY没有该信号,在USB设备发送chirp信号时,可能导致设备内核被锁定。
下表中的Total Receive End Delay有问题,当接口速率为30MHz时,应该改为32~96 bit times。

UTMI+ Level 0的信号定义和UTMI一模一样,没有任何变化。

2.2、UTMI+ Level 1
Level 1可以用于HS和FS模式的USB2.0 peripheral, host or On-the-Go device,但如果要用于LS HOST,则只能用Level 2. 对于OTG模式,收发器可以集成电荷泵来给VBUS供电,也可以使用外部独立的VBUS供电。
为了实现OTG的功能,需要一些额外的功能信号如下:
识别OTG的mini-A和mini-B插头;
识别VBUS电压是否有效;
OTG的VBUS充放电驱动信号;
DP上拉和DM上下拉电阻控制信号;
HOST端DP/DM信号线上的15K下拉控制信号;
HOST端对DEVICE的插拔检测信号。

UTMI+ Level 1增加的信号定义如下表(其中OpMode信号只增加了功能,没有增加硬件信号):


其中新增加的几个功能包括:Generation of long EOP、Data line pulsing和HS keep-alive generation(兼容EHCI的HOST控制器,要求能传输HS keep-alive SYNC packet,这种同步模式不需要其他的数据或者EOP)。


2.3、UTMI+ Level 2
为了实现LS HOST的功能,在Level 1的基础上还需要额外的工作,具体包括:
在LS模式下传输packets;
发送LS keep-alive packets(等同于LS EOP)。
同时还增加了一个额外的功能信号(XcvrSelect(1)),配合XcvrSelect(0)用于传输模式选择。


LS模式下,为了产生LS keep-alive packet,UTMI+ level 2需要进行如下图所示的操作。

在不同模式下(upstream facing ports和downstream facing port),LineState信号的定义如下图所示:


2.4、UTMI+ Level 3
Level 3是为了灵活的处理通过FS hub实现LS传输的功能,Level 2的LS模式只能通过HOST和DEVICE的直连实现。Level 3的信号和Level 2一样,只是XcvrSelect(1:0)的定义多了一种模式。

3、ULPI
ULPI的全称是UTMI+ Low Pin Interface,将PHY和Link之间的接口信号减少到8根(4-bit data)或者12根(8-bit data),支持USB2.0 HOST、DEVICE、OTG的所有特性,这使得PHY芯片的封装可以采用32pin,而不用UTMI+的64pin或80pin,从而大大减小PCB的面积。
默认PHY是master,双向数据总线由PHY控制,如果Link端要占用数据总线,通过DIR信号实现,DIR为高则PHY传输数据,DIR为低则Link侧传输数据(默认情况下为Link端发送)。

收发由STP信号控制,Link端数据发送完毕后将STP拉高结束发送,PHY端控制DIR切换数据方向为PHY端发送(默认为低,保持PHY端接收数据)。

PHY侧可以通过切换DIR信号中断传输,如果Link侧想中断PHY侧的传输,则只能通过STP信号,这将导致PHY无条件的切换DIR,并开始接收Link侧的传输。

3.1、ULPI接口信号定义

PHY芯片和Link端的ULPI接口信号机连接如下:

整个PHY芯片自身对外接口及信号如下:


ULPI PHY主要包括以下几部分:
UTMI+ Level 3 PHY core,完全兼容UTMI+ Level 3;
ULPI PHY Wrapper,将UTMI+接口转换成LPI接口,并增加寄存器存储UTMI+接口的相关静态信号;
时钟部分,包括外部时钟和内部PLL;
偏置部分,用于内部模拟电路;
VBUS控制部分,用于驱动VBUS和检测外部VBUS电压;
POR部分,用于上电复位;
Carkit部分,为了支持Carkit Mode,提供USB和Link端之间的speaker和microphone接口。
3.2、ULPI接口信号时序


ULPI接口信号时序部分由于操作模式和协议实现内容较多,时序比较复杂,本文就不再一一介绍了,具体可参见规范《UTMI+ Low Pin Interface (ULPI) Specification Revision 1.1》的3.7章节。
常见厂家的USB PHY芯片如下表所示:
厂家 | 器件型号 | 接口类型 | 接口电压 |
TI | TUSB1210/1 | ULPI | 1.8 |
SMSC | USB32xx | UTMI | 3.3 |
USB33xx | ULPI | 1.8/3.3 | |
USB3450/3500 | UTMI+ | 3.3 | |
Cypress | CY7C68003 | ULPI | 1.8/3.3 |
NXP | ISP1504 | ULPI | 1.8/3.3 |
USB PHY相关的一些规范如下:
USB 2.0 Transceiver Macrocell Interface (UTMI) Specification Version 1.05
UTMI+ Specification Revision 1.0
UTMI+ Low Pin Interface (ULPI) Specification Revision 1.1
USB 2.0 Transceiver and Macrocell Tester(T&MT) Interface Specification, Version 1.2
Universal Serial Bus Specification, Revision 2.0
On-The-Go Supplement to the USB 2.0 Specification, Revision 1.0a
CEA-936-A, Mini-USB Analog Carkit Interface Specification
以上就是针对UTMI、UTMI+、ULPI接口的介绍,主要从硬件的角度介绍了这几个接口的特性、信号定义等信息,深入的可以参看相关规范和PHY芯片的数据手册。市面上有很多相关的PHY芯片,其中ULPI接口的较多,选型时只需关注接口类型、接口信号电压即可。