什么是ULPI协议?
ULPI协议的全称是UTMI+Low Pin Interface。从名字上就可以看出ULPI是UTMI的Low Pin版本。UTMI(USB2.0 Transceiver Macrocell Interface)是一种用于USB controller和USB PHY通信的协议。相对于ULPI,UTMI有更多的控制信号,支持8bit/16bit 数据接口。
- UTMI 接口信号
- ULPI 接口信号
信号定义
SIGNAL | DIRECTION | DESCRIPTION |
---|---|---|
CLK | I/O | 时钟输入,60MHz |
DATA[7:0] | I/O | 8-bit双向数据总线 |
DIR | OUT | 控制数据总线方向,0 => LINK到PHY, 1 => PHY到LINK |
STP | IN | Stop信号,用于Stop PHY的输出,获取总线控制权,为1时有效 |
NXT | OUT | 当LINK向PHY发送数据时,NXT为1表示当前数据已经被PHY所接受。当PHY向LINK发送数据时,NXT为1表示PHY有新的数据在总线上 |
时序
- Power On Reset (POR)
对于使用ULPI协议的PHY芯片而言,POR时序尤为重要,POR时序不满足会直接导致PHY芯片无法Lock PLL,不能输出稳定的60MHz CLK。以下是USB3320的POR时序:
- DIR信号获取Bus控制权
- 发送和接收时序图
注意以下几点- 数据和控制信号都是在上升沿采样
- 由于数据的收发不是分开的,发送数据方需要考虑output delay, 并保证数据在下一个clk的上升沿采样时满足setup time和hold time