ULPI - The Standard for High-Speed USB PHYs
ULPI is an interface standard for high-speed USB 2.0 IP systems. It defines an interface between USB IP link controllers (such as MUSBHDRC) and the PHYs or transceivers that drive the actual bus. ULPI stands for UTMI+ low pin interface and is designed specifically to reduce the pin count of discrete high-speed USB PHYs. Pin count reductions minimize the cost and footprint of the PHY chip on the PCB and reduce the number of pins dedicated to USB for the link controller. As a result of these capabilities, ULPI is quickly becoming the new interface standard among system and chip designers.
Unlike full- and low-speed USB systems, which utilize serial interfaces, high-speed requires a parallel interface between the controller and PHY in order to run the bus at 480Mbps. This leads to a corresponding increase in complexity and pin count. ULPI keeps this down to only 8 or 12 signals because it combines just three control signals, plus clock, with a 4- or 8-bit bi-directional data bus. The 4- and 8-bit modes are known as double (DDR) and single data rate (SDR) respectively. This bus is also used for the USB packet transmission and for accessing register data in the ULPI PHY.
Mentor Graphics is a major contributor to the ULPI specification. Mentor currently supports ULPI with a wrapper for our high-speed USB cores. This wrapper has been vigorously tested on real hardware with PHYs from our partner companies - SMSC and NXP Semiconductors. Our ULPI wrapper is available as a no-cost option on all Mentor Graphics high-speed cores. The wrapper supports single or double data rate ULPI as well as an option for run-time selectable data rate for maximum flexibility in PHY choice.
ULPI is implemented as a wrapper around a UTMI+ PHY to reduce pin count in Hi-Speed USB systems.
UTMI+ and ULPI Standards
ULPI is an extension of the UTMI+ PHY standard. Both standards are definitions of interfaces between USB link controllers and PHYs, however ULPI is specifically for discrete PHY chips. The UTMI standard (USB transceiver macrocell interface) was defined by Intel® for high-speed peripherals (USB v2.0). UTMI allows the peripheral to connect to a host computer at either high- or full-speed (for compatibility with old PCs). The UTMI+ standard is an extension of the original UTMI that adds support for OTG and host controllers at all speeds.
Like UTMI+ for on-chip PHY implementations, the ULPI standard is proving to be a major benefit to USB implementers using discrete PHY chips. Both standards are managed by the ULPI Working Group. Although ULPI is not a fully open specification, anyone is free to join and become a ULPI adopter. Sign up on the ULPI Working Group web site to get a free copy of the specification.