USB系列之“外部PHY接口”

市面上很多处理器的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 MacrocellUSB 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 SignalsUSB Interface SignalsVendor Control SignalsData Interface SignalsSystem 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 hostOn-The-Go peripherals因此UTMI+UTMI的基础上增加了对USB2.0 hostOn-The-Go peripherals的支持,形成了标准的USB2.0接口。

由于高速USB HOSTOTG的复杂性,UTMI+接口分成了不同的等级,Level 0就是UTMI接口(修复了一些bug,比如不同厂商之间的兼容性问题等),Level 1集成了HSFSOTG功能,Level 2增加了LS相关功能,Level 3增加了对FS HUB相关的支持。



2.1、UTMI+ Level 0

由于UTMI规范的一些部分没有明确地指定,或者可以用不同的方式进行解释。这导致不同供应商的UTMI收发器之间并不能保证完全兼容,所以UTMI+ Level 0UTMI的基础上进行了修改,主要包括:

  • 使用LineState作为时序标准,在UTMI规范中多次提到LineState是用于约束USB总线时序最精准的信号,但这并不是规范的硬性要求,厂商可以使用任何别的方式实现USB总线时序,只要保证USB总线的时序,并且对PHY的设计不增加额外的约束即可。

  • LineState的滤波,为了保证DP/DM信号线上的Skew,并且在JK状态之间不会出现不必要的SE0SE1。滤波只能用于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可以用于HSFS模式的USB2.0 peripheral, host or On-the-Go device,但如果要用于LS HOST,则只能用Level 2. 对于OTG模式,收发器可以集成电荷泵来给VBUS供电,也可以使用外部独立的VBUS供电。

为了实现OTG的功能,需要一些额外的功能信号如下:

  • 识别OTGmini-Amini-B插头;

  • 识别VBUS电压是否有效;

  • OTGVBUS充放电驱动信号;

  • DP上拉和DM上下拉电阻控制信号;

  • HOSTDP/DM信号线上的15K下拉控制信号;

  • HOST端对DEVICE的插拔检测信号。



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




其中新增加的几个功能包括:Generation of long EOP、Data line pulsingHS keep-alive generation兼容EHCIHOST控制器,要求能传输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 packetUTMI+ level 2需要进行如下图所示的操作。



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




2.4、UTMI+ Level 3

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



3、ULPI

ULPI的全称是UTMI+ Low Pin Interface,PHYLink之间的接口信号减少到8根(4-bit data)或者12根(8-bit data),支持USB2.0 HOST、DEVICE、OTG的所有特性,这使得PHY芯片的封装可以采用32pin,而不用UTMI+64pin80pin,从而大大减小PCB的面积。

默认PHYmaster,双向数据总线由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,提供USBLink端之间的speakermicrophone接口。


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接口的较多,选型时只需关注接口类型、接口信号电压即可。