Usb2 Transceiver Macrocell Interface Specification PDF
Usb2 Transceiver Macrocell Interface Specification PDF
0
Transceiver Macrocell Interface
(UTMI)
Specification
Version 1.05
3/29/2001
All product names are trademarks, registered trademarks, or service marks of their respective owners.
Contributors
Jon Lueker
Steve McGowan (Editor)
Ken Oliver
Dean Warren
Table of Contents
1 Preface .................................................................................................................................................... 7
1.1 Scope of this Revision..................................................................................................................... 7
1.2 Revision History ............................................................................................................................. 7
2 Introduction............................................................................................................................................. 9
2.1 USB 2.0 Transceiver Macrocell (UTM) ......................................................................................... 9
2.2 Serial Interface Engine.................................................................................................................. 10
2.3 Device Specific Logic................................................................................................................... 10
3 Functional Block Diagram .................................................................................................................... 11
4 UTMI Signal Descriptions .................................................................................................................... 12
4.1 System Interface Signals............................................................................................................... 12
4.1.1 CLK ...................................................................................................................................... 13
4.1.1.1 Options.............................................................................................................................. 13
4.1.2 XcvrSelect............................................................................................................................. 13
4.1.3 TermSelect ............................................................................................................................ 13
4.1.4 LineState ............................................................................................................................... 13
4.1.4.1 Synchronization ................................................................................................................ 13
4.1.4.2 Signaling Levels................................................................................................................ 14
4.1.4.3 Minimizing Transitions..................................................................................................... 14
4.1.4.4 Bus Packet Timing ............................................................................................................ 15
4.1.5 OpMode ................................................................................................................................ 15
4.2 USB Interface Signals................................................................................................................... 15
4.3 Vendor Control Signals................................................................................................................. 16
4.4 Data Interface Signals ................................................................................................................... 17
4.4.1 Receive Active ...................................................................................................................... 18
5 Block level Descriptions ....................................................................................................................... 21
5.1 Clock Multiplier............................................................................................................................ 21
5.1.1 Clocking................................................................................................................................ 21
5.1.1.1 HS/FS operation................................................................................................................ 21
5.1.1.2 FS Only operation ............................................................................................................. 22
5.1.1.3 LS Only operation............................................................................................................. 22
5.2 HS DLL (High Speed Delay Line PLL) ....................................................................................... 22
5.3 Elasticity Buffer ............................................................................................................................ 22
5.4 Mux............................................................................................................................................... 22
5.5 NRZI Decoder............................................................................................................................... 23
5.6 Bit Unstuff Logic .......................................................................................................................... 23
5.7 Rx Shift/Hold Register.................................................................................................................. 23
5.8 Receive State Machine.................................................................................................................. 23
5.8.1 Receive Error Reporting ....................................................................................................... 27
5.8.1.1 Bit Suff Error Reporting.................................................................................................... 27
5.9 Rx Shift/Hold Registers ................................................................................................................ 28
5.10 NRZI Encoder............................................................................................................................... 29
5.11 Bitstuff Logic ................................................................................................................................ 29
5.12 Tx Shift/Hold Register .................................................................................................................. 29
5.13 Transmit State Machine ................................................................................................................ 30
5.13.1 Transmit Error Reporting...................................................................................................... 31
5.14 USB Full Speed XCVR................................................................................................................. 32
5.14.1 Transmit Driver..................................................................................................................... 32
5.14.2 Receive Buffer ...................................................................................................................... 32
5.15 USB2.0 XCVR.............................................................................................................................. 32
5.15.1 Transmit Driver..................................................................................................................... 32
5.15.2 Receive Buffer ...................................................................................................................... 32
5.15.3 Other Components of Transceiver ........................................................................................ 32
5.15.3.1 Transmission Envelope Detector .................................................................................. 32
5.15.3.2 Full-Speed Indicator Control......................................................................................... 32
Table of Figures
Figure 1: ASIC Functional Blocks.................................................................................................................. 9
Figure 2: UTM Functional Block Diagram................................................................................................... 11
Figure 3: FS CLK Relationship to Receive Data and Control Signals.......................................................... 21
Figure 4: FS CLK Relationship to Transmit Data and Control Signals ........................................................ 22
Figure 5: Receive Timing for Data with after Unstuffing Bits ..................................................................... 23
Figure 6: Receive State Diagram .................................................................................................................. 24
Figure 7: Receive Timing for Data Packet (with CRC-16)........................................................................... 25
Figure 8: Receive Timing for Setup Packet .................................................................................................. 26
Figure 9: Receive Timing for a Handshake Packet (no CRC) ...................................................................... 26
Figure 10: RXError Timing diagram ............................................................................................................ 27
Figure 11: Transmit Timing delays due to Bit Stuffing ................................................................................ 29
Figure 12: Transmit State Diagram............................................................................................................... 30
Figure 13: Transmit Timing for a Data packet.............................................................................................. 31
Figure 14: 8-Bit Bi-directional Data Bus Interface....................................................................................... 34
Figure 15: Transmit Timing for 16-bit Data, Even Byte Count.................................................................... 36
Figure 16: Transmit Timing for 16-bit Data, Odd Byte Count ..................................................................... 36
Figure 17: Receive Timing for 16-bit Data, Even Byte Count ..................................................................... 37
Figure 18: Receive Timing for 16-bit Data, Odd Byte Count....................................................................... 37
Figure 19: 16-bit Bi-directional Data Bus Interface...................................................................................... 38
Figure 20: Vendor Control Register Block Diagram .................................................................................... 39
Figure 21: Suspend Timing Behavior (HS Mode) ........................................................................................ 41
Figure 22: Reset Timing Behavior (HS Mode)............................................................................................. 42
Figure 23: HS Detection Handshake Timing Behavior (FS Mode) .............................................................. 45
Figure 24: Chirp K-J-K-J-K-J Sequence Detection State Diagram .............................................................. 46
Figure 25: HS Detection Handshake Timing Behavior (HS Mode).............................................................. 47
Figure 26: HS Detection Handshake Timing Behavior from Suspend ......................................................... 48
Figure 27: Resume Timing Behavior (HS Mode)......................................................................................... 50
Figure 28: Device Attach Behavior .............................................................................................................. 52
Figure 29: Data Encoding Sequence: FS SYNC........................................................................................... 53
Figure 30: Data Encoding Sequence: FS EOP .............................................................................................. 54
Figure 31: Data Encoding Sequence: HS SYNC .......................................................................................... 55
Figure 32: Data Encoding Sequence: HS EOP ............................................................................................. 56
Figure 33: Timing Constraints ...................................................................................................................... 57
Figure 34: HS Receive to transmit inter-packet delay .................................................................................. 58
Figure 35: HS Transmit to Receive inter-packet delay ................................................................................. 60
Figure 36: HS Back to back receives with minimum inter-packet delay. ..................................................... 61
Figure 37: FS Receive to transmit inter-packet delay ................................................................................... 62
Figure 38: FS transmit to receive or receive to receive inter-packet delay ................................................... 63
Figure 39: Start of FS handshake transmit.................................................................................................... 64
Figure 40: 8-Bit Interface Entity Diagram .................................................................................................... 66
Figure 41: 16-Bit Interface Entity Diagram .................................................................................................. 66
Figure 42: 8-Bit Bi-directional Interface Entity Diagram ............................................................................. 67
Figure 43: 16-Bit Bi-directional Interface Entity Diagram ........................................................................... 67
Table of Tables
Table 1: System Interface Signals................................................................................................................. 12
Table 2: USB Interface Signals..................................................................................................................... 15
Table 3: Vendor Control Signals .................................................................................................................. 16
Table 4: Data Interface Signals (Transmit) ................................................................................................... 17
Table 5: Data Interface Signals (Receive) .................................................................................................... 18
Table 6: Data Interface Signals (16-bit Bi-directional)................................................................................. 19
Table 7: Data Interface Signals (Other) ........................................................................................................ 20
Table 8: USB 2.0 Test Mode to Macrocell Mapping.................................................................................... 34
Table 9: Suspend Timing Values (HS Mode) ............................................................................................... 41
Table 10: Reset Timing Values (HS Mode).................................................................................................. 42
Table 11: HS Detection Handshake Timing Values (FS Mode) ................................................................... 45
Table 12: Reset Timing Values..................................................................................................................... 47
Table 13: HS Detection Handshake Timing Values from Suspend .............................................................. 49
Table 14: Resume Timing Values (HS Mode).............................................................................................. 50
Table 15: Attach and Reset Timing Values .................................................................................................. 52
Table 16: Receive End Delay Components .................................................................................................. 59
Table 17: Receive Start Delay Components ................................................................................................. 60
1 Preface
2 Introduction
High volume USB 2.0 devices will be designed using ASIC technology with embedded USB 2.0 support.
For full-speed USB devices the operating frequency was low enough to allow data recovery to be handled
in a vendors VHDL code, with the ASIC vendor providing only a simple level translator to meet the USB
signaling requirements. Today's gate arrays operate comfortably between 30 and 60 MHz. With USB 2.0
signaling running at hundreds of MHz, the existing design methodology must change.
As operating frequencies go up it becomes more difficult to compile VHDL code without modification.
This document defines the USB 2.0 Transceiver Macrocell Interface (UTMI) and many operational aspects
of the USB 2.0 Transceiver Macrocell (UTM). The intent of the UTMI is to accelerate USB 2.0 peripheral
development. This document defines an interface to which ASIC and peripheral vendors can develop.
ASIC vendors and foundries will implement the UTM and add it to their device libraries. Peripheral and IP
vendors will be able to develop their designs, insulated from the high-speed and analog circuitry issues
associated with the USB 2.0 interface, thus minimizing the time and risk of their development cycles.
The figure below summarizes a number of concepts expressed throughout this spec. There are assumed to
be three major functional blocks in a USB 2.0 peripheral ASIC design: the USB 2.0 Transceiver Macrocell,
the Serial Interface Engine (SIE), and the device specific logic.
ASIC
Endpoint Logic
Device
SIE USB 2.0
Specific USB 2.0
Endpoint Logic Control Transceiver
Logic
Logic Macrocell
…
Endpoint Logic
The UTMI is designed to support HS/FS, FS Only and LS Only UTM implementations. The three options
allow a single SIE implementation to be used with any speed USB transceiver. A vendor can choose the
transceiver performance that best meets their needs.
A HS/FS implementation of the transceiver can operate at either a 480 Mb/s or a 12 Mb/s rate. Two modes
of operation are required to properly emulate High-speed device connection and suspend/resume features of
USB 2.0, as well as Full-speed connections if implementing a Dual-Mode device.
FS Only and LS Only UTM implementations do not require the speed selection signals since there is no
alternate speed to switch to.
The USB 2.0 Transceiver can be placed in a low-power mode with the SuspendM signal.
SIE logic module can be developed by peripheral vendors or purchased from IP vendors. The
standardization of the UTMI allows compatible SIE VHDL to drop into an ASIC that provides the
macrocell.
HS XCVR
(A) NRZI (B) Bit
Data+ Rcv HS Elasticity M
DLL Buffer u Decoder Unstuffer
x (C)
Status/ Rx Rx
Control Shift Hold
Receive Reg Reg
Data-
State
Parallel
Machine
RX Data
Xmit
FS XCVR
Logic
Rcv FS DLL &
Data
Transmit Parallel
Recovery
State TX Data
Machine Tx Tx
Shift Hold
Status/ Reg Reg
Control
(D)
(F) NRZI (E) Bit
Xmit
Encoder Stuffer
Control Control
Logic
4.1.1 CLK
Nominal CLK accuracy is ±500ppm for frequency, and 50±5% duty cycle.
No transitions of CLK should occur until it is "usable", where usable is defined as a frequency accuracy of
±10%, and a duty cycle accuracy of 50±10%.
Conceptually, there is a "CLKUsable" signal, internal to the UTM, which blocks any transitions of CLK
until it is "usable". This "CLKUsable" signal is also used to switch the LineState output between CLK
synchronized and combinatorial signaling. See section 5.22.2.3 for further discussion of CLK.
4.1.1.1 Options
There are 3 possible implementations for a UTMI device: HS/FS, FS Only, or LS Only. The HS/FS version
has 4 interface options: 16-bit unidirectional, 8-bit unidirectional, 16-bit bidirectional/8-bit unidirectional,
and 8-bit bi-directional. In each case, when a 16-bit option is selected CLK is at 30 MHz, and when an 8-bit
option is selected CLK is at 60 MHz.
Note that the 16-bit bidirectional/8-bit unidirectional uses the "DataBus16_8" signal to swtich between
them. This signal also switches the CLK frequency.
The FS Only, or LS Only implementations only support 48 MHz and 6 MHz clocks, respectively, and
always use 8 bit interfaces (either 8-bit unidirectional or 8-bit bi-directional).
4.1.2 XcvrSelect
XcvrSelect controls a number of transceiver related elements, for instance.
• Selects the receiver (source for the Mux block) in the receive data path.
• It is used as a gating term for enabling the respective HS or FS Transmit Driver.
• Switch internal UTM clocks to shared logic.
4.1.3 TermSelect
TermSelect controls a number of termination related elements, for instance.
• In HS mode the FS Driver is forced to assert an SE0 on the USB, providing the 50 Ohm termination to
ground and generating the HS Idle state on the bus.
• In FS Mode TermSelect enables the 1.5K pull-up on to the DP signal to generate the FS Idle state on
the bus.
4.1.4 LineState
The LineState signals are used by the SIE for detecting reset, speed signaling, packet timing, and to
transition from one behavior to another.
Note: While data packets are being transmitted or received on the USB the LineState signals may toggle
randomly between the 'J' and 'K' states in FS, and remain in the ‘J’ state in HS. The SIE should
ignore these transitions.
4.1.4.1 Synchronization
To minimize unwanted transitions to the SIE during normal operation, the LineState is internally
synchronized with CLK. When synchronized, the setup and hold timing of LineState is identical to
DataOut. The exception to this is when CLK is not "usable". If CLK is not "usable" then the LineState
signals are not synchronized, but driven with combinatorial logic directly from the DP and DM signal
lines. The UTM must multiplex between combinatorial and synchronous LineState output depending on
whether CLK is "usable". See section 4.1.1 for a discussion of what a "usable" CLK is. See section 4.1.4.3
for an addition method of minimizing LineState transitions in HS mode.
There is no concept of variable, single ended thresholds in the USB 2.0 specification. The assumption (see
Figure 7-1 in the USB 2.0 spec) was that the HS receiver would be used to detect a Chirp K or J, where the
output of the HS receiver is always qualified with the "Squelch" signal. If Squelch = 1 then the output of
the HS receiver is meaningless.
In the macrocell, as an alternative to using variable thresholds for the single ended receivers the following
approach to encoding the LineState outputs can be used.
Full High
Mode Chirp Invalid
Speed Speed
XcvrSelect 1 0 0 1
TermSelect 1 0 1 0
SE0 SE0 Squelch Squelch Invalid
! Squelch &
J State J !Squelch1 Invalid
Line HS_Differential_Receiver_Output
State ! Squelch &
K State K Invalid Invalid
! HS_Differential_Receiver_Output
SE1 SE1 Invalid Invalid Invalid
Note: With this scheme, SE1 is never generated in HS Mode. This is not a problem because SE1 is
defined as an illegal bus state in the USB 2.0 specification and is provided by the UTM for debug
purposes only.
Note: An SIE attached to a LS Only UTM implementation must interpret the K State as Bus Idle.
This scheme allows LineState to indicate a J State whenever a packet is on the USB, thus satisfying the
requirement that a LineState transition occurs when there is activity on the USB, while minimizing the
number of LineState transitions while there is data on the bus. Using TermSelect, rather than XcvrSelect,
allows the Speed Chirp protocol to complete before enabling this mode.
This approach has the side effect of turning any Chirp K's after the HS terminations are enabled
(TermSelect = 0. See Figure 25, T7 to T8) into Chirp J's. However, this only occurs after the SIE has
determined that it is attached to a HS downstream facing port and the SIE is no longer interested in whether
a J or K is on the bus.
1
Note: This term is optional. See section 4.1.4.3 for a discussion of this term.
2
Note: When identifying bus "activity", the SIE should not use the data path to monitor SOFs.
HS Mode
When XcvrSelect and TermSelect are in HS mode, the LineState transition from the Idle state (SE0) to a
non-Idle state (J) marks the beginning of a packet on the bus. The LineState transition from a non-Idle
state (J) to the Idle state (SE0) marks the end of a packet on the bus.
FS Mode
When XcvrSelect and TermSelect are in FS mode, the LineState transition from the J State (Idle) to a K
State marks the beginning of a packet on the bus. The SIE must then wait for the end of the packet. The
LineState transition from the SE0 to the J-State marks the end of a FS packet on the bus.
4.1.5 OpMode
When a device generates resume signaling to the host, it switches the OpMode to "Disable Bit Stuffing and
NRZI Encoding", asserts TXValid, and presents the data on the DataOut bus. The assertion of OpMode to
“Normal” mode at the end of the 1 ms signaling period should occur until after the maximum TX End
Delay (TXValid has been de-asserted for at least 40 bit times or in FS mode 160 CLKs). See section 0 for a
discussion of TX End Delay.
SIE designers note: if OpMode switched to “Normal” mode before the maximum TX End Delay
completes, then there is the possibility that the last data still pending in the UTM will be NRZI encoded and
bit stuffed (in case 6 1's occur), resulting in K and J transitions on the DP/DM signal lines at the end of
resume from the device. At this time the downstream facing port will also be propagating back the K state
(detected device resume) onto all enabled down stream ports. This creates bus conflict on DP/DM.
3
Note that the number of CLKs depends on the bus and interface options:
FS 16-bit interface (CLK = 30 MHz) Max TX Start Delay = 5 CLKs
FS 8-bit interface (CLK = 60 MHz) Max TX Start Delay = 10 CLKs
FS Only 8-bit interface (CLK = 48 MHz) Max TX Start Delay = 8 CLKs
LS Only 8-bit interface (CLK = 6 MHz) Max TX Start Delay = 8 CLKs
4
A FS Idle state follows a FS EOP, where a FS EOP is an SE0 asserted for 2 FS times followed by a J
asserted for 1 FS bit time. See Figure 37: FS Receive to transmit inter-packet delayFigure 37.
bit stuff error (EOP) is detected. Two HS cases in particular should be considered: 1) dribble bits5
introduced by hubs and 2) long EOPs at the end of SOF packets. In both cases, the initial bit stuff error that
signals the EOP is followed by several additional bits before the USB returns to the Idle state. The
deassertion of RXActive under normal conditions must reflect the USB being in the Idle state, not simply
timed off the recognition of EOP. The exception is if an error is detected during a receive. In this case
RXValid will be negated after the next rising edge of CLK after the error is detected. And RXActive may
be negated immediately or after a Bus Idle condition is detected. See section 5.8 for more information.
It is recommended that for HS packets, the internal "squelch" signal of the UTM be used to qualify the
negation of RXActive under normal conditions, because squelch indicates an SE0 (HS Idle State) on the
bus.
Table 6: Data Interface Signals (16-bit Bi-directional)
Active
Name Direction Description
Level
Data0-7 Bidir N/A Data. 8-bit parallel USB data input bus when
DataBus16_8 = 0.
Low byte of bi-directional parallel USB data bus when
DataBus16_8 = 1.
Data8-15 Bidir N/A Data. 8-bit parallel USB data output bus when
DataBus16_8 = 0.
High byte of bi-directional parallel USB data bus when
DataBus16_8 = 1.
DataBus16_8 may only be changed while Reset is
asserted.
ValidH Bidir High ValidH. This signal indicates that the high order 8 bits of a
16-bit data word presented on the Data bus are valid.
When DataBus16_8 = 1 and TXValid = 0, ValidH is an
output, gating RXValidH to the SIE, indicating that the
high order receive data byte on the Data bus is valid.
When DataBus16_8 = 1 and TXValid = 1, ValidH is an
input and indicates that the high order transmit data byte,
presented on the Data bus by the transceiver is valid.
When DataBus16_8 = 0, ValidH is undefined.
The status of the low order data byte is determined by
TXValid and RXValid.
5
Each hub is allowed to introduce up to 4 dribble bits to the end of a packet. i.e. A device that is attached 5
hubs deep will see up to 20 dribble bits.
The UTM vendor determines the frequency of the external crystal. The Clock Multiplier circuit and the
External Crystal must meet the requirements defined in the USB 2.0 specification.
After the release of SuspendM, the CLK signal generated by the transceiver must meet the following
requirements:
1) Produce the first CLK transition no later than 5.6 ms after the negation of SuspendM.
2) The CLK signal frequency error must be less than 10% (±6.00 MHz)
3) The CLK must fully meet the required accuracy of ±500 ppm (±30.0 KHz), no later than 1.4ms after the
first transition of CLK.
5.1.1 Clocking
Figure 3 shows the relationship between CLK and the receive data transfer signals in FS mode. RXActive
"frames" a packet, transitioning only at the beginning and end of a packet, however transitions of RXValid
may take place any time 8 bits of data are available. Figure 3 also shows how RXValid is only asserted for
one CLK cycle per byte time even though the data may be presented for the full byte time. The Macrocell
is required to present valid data for only for one clock cycle (while RXValid is asserted), although it may
be presented until new data is received.
CLK
RXActive
RXValid
lines has been read by the Macrocell (small arrows above DataIn signal. The SIE must present the next data
byte on the DataIn bus after it detects TXReady high on a rising edge of CLK.
Transitions of TXValid must meet the defined setup and hold times relative to CLK. The delay between
the assertion of TXValid and the first assertion of TXReady is Macrocell implementation dependent.
CLK
TXValid
Overflow or underflow conditions detected in the elasticity buffer can be reported with the RXError
signal.
5.4 Mux
The bulk of the logic in the transceiver can be used with HS or FS operations. The Mux block allows the
data from the HS or FS receivers to be routed to the shared receive logic. The state of the Mux is
determined by the XcvrSelect input.
The bit rate on USB is constant, however the bit rate as presented by the UTMI to the SIE is slightly
reduced due to the extraction of inserted 1 bits. Normally a byte of data is presented on the DataOut bus
for every 8 bits received, however after eight stuffed bits are eliminated from the data stream a byte time is
skipped in the DataOut stream. Figure 5 shows how RXValid is used to skip bytes in the DataOut byte
stream.
CLK
RXActive
Invalid Data
DataOut(7:0) Data Invalid Data Data Data Data Invalid Data CRC CRC
RXValid
In FS mode, if a bit stuff error is detected then the Receive State Machine will assert RXError. See section
5.8.1 for more information.
The assertion of Reset will force the Receive State Machine into the Reset state. The Reset state negates
RXActive and RXValid. When the Reset signal is negated the Receive State Machine enters the RX Wait
state and starts looking for a SYNC pattern on the USB. When a SYNC pattern is detected the state
machine will enter the Strip SYNC state and assert RXActive. The length of the received SYNC pattern
varies and can be up to 32 bits long. As a result, the state machine may remain in the Strip SYNC state for
several byte times before capturing the first byte of data and entering the RX Data state.
After 8 bits of valid serial data is received the state machine enters the RX Data state, where the data is
loaded into the RX Holding Register on the rising edge of CLK and RXValid is asserted. The SIE must
clock the data off the DataOut bus on the next rising edge of CLK.
Stuffed bits are stripped from the data stream. Each time 8 stuffed bits are accumulated the state machine
will enter the RX Data Wait state, negating RXValid thus skipping a byte time.
When the EOP is detected the state machine will enter the Strip EOP state and negate RXActive and
RXValid. After the EOP has been stripped the Receive State Machine will reenter the RX Wait state and
begin looking for the next packet.
If a Receive Error is detected, the Error State is entered and RXError is asserted. Then either the Abort 1
State is entered where RXActive, RXValid, and RXError are negated, or the Abort 2 State is entered
where only RXValid, and RXError are negated. The Abort 1 State proceeds directly to the RX Wait State,
while Abort 2 State proceeds to the Terminate State after an Idle bus state is detected on DP and DM. The
Terminate State proceeds directly to the RX Wait State.
When the last data byte is clocked off the DataOut bus the SIE must also capture the state of the RXError
signal.
!SYNC
Reset Reset
!RXActive & !Reset RX Wait Terminate
Strip EOP
!RXValid !RXActive
!RXActive &
!RXValid,
SYNC Detected EOP
Data Detected Abort 1 Idle
!RXActive & state
Data !RXValid &
Strip SYNC RX Data !RXError
RXActive RXValid
SYNC
Receive Abort 2
!Data Data Error !RXValid &
Error !RXError
RXError
RX Data Wait
!Data
!RXValid !Idle
state
Figure 7 shows the timing relationship between the received data (DP/DM) , RXValid, RXActive,
RXError and DataOut signals.
Note that the USB 2.0 Transceiver does NOT decode Packet ID's (PIDs). They are passed to the SIE for
decoding.
Note: Figure 7, Figure 8 and Figure 9 are timing examples of a HS/FS UTM when it is in HS mode. When
a HS/FS UTM is in FS Mode there are approximately 40 CLK cycles every byte time. The Receive State
Machine assumes that the SIE captures the data on the DataOut bus if RXActive and RXValid are
asserted. In FS mode, RXValid will only be asserted for one CLK per byte time. See section 5.1.1 for
more information on FS clocking. The clocking of a HS/FS UTM in FS mode is similar to FS Only and LS
Only implementations, except that for FS Only and LS Only implementations there are only 8 CLK cycles
per byte time.
Note: The receive and transmit sections of the transceiver operate independently. The receiver will
"receive" any packets on the USB. The transceiver does not identify whether the packet that it is receiving
is from the upstream or the downstream port. The SIE must ignore receive data while it is transmitting.
CLK
RXActive
RXValid
RXError
DP/DM SYNC PID Data Data Data Data CRC CRC EOP
CRC-16 Computation
Note: In Figure 7, Figure 8 and Figure 9 the packet displayed on DP/DM may be pipelined by the UTM
and occur several bit times, or even several byte times earlier, relative to the UTMI signal transitions
(RXActive, DataOut, RXValid, etc.). Macrocell implementations should minimize internal latencies.
CLK
RXActive
RXValid
RXError
CRC-5 Computation
CLK
RXActive
DataOut(7:0) PID
RXValid
RXError
DataOut(7:0)
RXActive
RXValid
RXError
By definition, a "bit stuff error" during a HS packet is automatically interpreted as an EOP. In this case
RXError is not asserted. However if the bit stuff error was a true bit stuff error vs. an EOP-forced bit stuff
error, then there will continue to be packet data on the bus and an EOP-forced bit stuff error will occur at
the end of the packet. The SIE should know that some problem occurred during the packet because the
CRC for the packet will be incorrect, however it is conceivable that the last 2 bytes of data received before
the true bit stuff error match the correct CRC and an error is not detected by CRC. To maximize the
robustness of the error detection, the UTM should flag a framing error for any bit stuff error that does not
occur at the expected byte boundary.
The USB 2.0 specification does not specifically state that the receive state machine must detect an Idle state
before beginning the search for a SYNC pattern, however one should consider it a requirement for a robust
design. In the case of a true bit stuff error in the middle of a long packet, this will prevent the possibility of
interpreting data as a SYNC pattern and incorrectly beginning the reception of one or more false packets.
There is always the possibility of multiple bit stuff errors occurring during a packet.
If a true bit stuff error occurred during the Data packet of an OUT transaction, then the SIE must not
handshake thus allowing the transaction to timeout.
To prevent this collision and maintain the correct inter-packet delay, the Receive State Machine can be
implemented in one of two ways:
1) If the Receive State Machine negates RXActive immediately, it must internally block TXValid to the
Transmit State Machine until the USB is back to an Idle state and the minimum inter-packet delay, as
defined by the USB 2.0 specification, has transpired.
2) The Receive State Machine can hold RXActive asserted until an Idle state is detected on the bus. Thus,
holding off the SIE until the bus is Idle. In this case the SIE is responsible for timing the inter-packet delay.
It is recommended that for HS packets, the internal "squelch" signal of the UTM be used to qualify the
negation of RXActive.
Note: Figure 10 shows RXValid and RXError asserted at the same time. The state of RXValid is a
function of data flow control, while RXError is asserted when an error is detected.
Serial Data
480 MHz
Rx Rx
Shift 8 Hold 8 DataOut0-7
Reg Reg 60 MHz
In FS mode bit stuffing by the transmitter is always enforced, without exception. If required by the bit
stuffing rules, a zero bit is inserted even after the last bit before the TXValid signal is negated.
After 8 bits are stuffed into the USB data stream TXReady is negated for one byte time to hold up the data
stream on the DataIn bus. Figure 11 show the timing relationship between TXReady and DataIn.
Byte CLK
TXValid
TXReady
Serial Data
480 MHz
TX TX
DataIn0-7 8 Hold 8 Shift
60 MHz Reg Reg
The Reset signal forces the state machine into the Reset state which negates TXReady. When Reset is
negated the transmit state machine will enter the TX Wait state.
In the TX Wait state, the transmit state machine looks for the assertion of TXValid. When TXValid is
detected, the state machine will enter the Send SYNC state and begin transmission of the SYNC pattern.
When the transmitter is ready for the first byte of the packet (PID), it will enter the TX Data Load state,
assert TXReady and load the TX Holding Register. The state machine may enter the TX Data Wait state
while the SYNC pattern transmission is completed.
TXReady is used to throttle transmit data. The state machine will remain in the TX Data Wait state until
the TX Data Holding register is available for more data. In the TX Data Load state, the state machine loads
the Transmit Holding register. The state machine will remain in the TX Data Load state as long as the
transmit state machine can empty the TX Holding Register before the next rising edge of CLK.
When TXValid is negated the transmit state machine enters the Send EOP state where it sends the EOP.
While the EOP is being transmitted TXReady is negated and the state machine will remain in the Send
EOP state. After the EOP is transmitted the Transmit State Machine returns to the TX Wait state, looking
for more work.
!TXValid
Reset !Reset
Reset
!TXReady TX Wait
EOP not
TXValid
done
TX Hold
Reg Empty !TXValid
TX Hold TX Hold
Reg Full Reg Empty
• After the SIE asserts TXValid it can assume that the transmission has started when it detects
TXReady asserted.
• The SIE assumes that the UTM has consumed a data byte if TXReady and TXValid are asserted.
• The SIE must have valid packet information (PID) asserted on the DataIn bus coincident with the
assertion of TXValid. Depending on the UTM implementation, TXReady may be asserted by the
Transmit State Machine as soon as one CLK after the assertion of TXValid.
• TXValid and TXReady are sampled on the rising edge of CLK.
• The Transmit State Machine does NOT automatically generate Packet ID's (PIDs) or CRC. When
transmitting, the SIE is always expected to present a PID as the first byte of the data stream and if
appropriate , CRC as the last bytes of the data stream.
• The SIE must use LineState to verify a Bus Idle condition before asserting TXValid in the TX Wait
state.
• The state of TXReady in the TX Wait and Send SYNC states is undefined. An MTU implementation
may prepare for the next transmission immediately after the Send EOP state and assert TXReady in
the TX Wait state. An MTU implementation may also assert TXReady in the Send SYNC state. The
first assertion of TXReady is Macrocell implementation dependent. The SIE must prepare DataIn for
the first byte to be transmitted before asserting TXValid.
Figure 13 shows the timing relationship between TXValid, DataIn, TXReady and the transmitted data
(DP/DM).
CLK
TXValid
TXReady
DP/DM SYNC PID Data Data Data Data CRC CRC EOP
In HS mode, if an error condition occurs during transmission, the current transmit stream must be
terminated by the transmission of a complemented version of the CRC, followed by an EOP. In this case
the SIE will be responsible for presenting the complemented CRC to the DataIn lines before negating
TXValid.
In either mode the negation of TXValid will cause the UTM to terminate the packet with the appropriate
EOP.
This envelope detector is used to disable or "squelch" the HS receiver when the amplitude of the
differential signal falls below the minimum required level for data reception, preventing noise from
propagating through the receive logic.
Mode 0 allows the transceiver to operate with normal USB data decoding and encoding.
Mode 1 allows the transceiver logic to support a soft disconnect feature which tri-states both the HS and FS
transmitters, and removes any termination from the USB making it appear to an upstream port that the
device has been disconnected from the bus.
Mode 2 disables Bit Stuff and NRZI encoding logic so 1's loaded from the DataIn bus becomes 'J's on the
DP/DM lines and 0's become 'K's. Note that this mode affects the automatic SYNC Pattern and EOP
generation by TXValid. It is disabled so that Chirps can be generated on the USB. The operation of the
receiver is undefined.
Note that the OPMode signals are normally changed only when the transmitter and the receiver are
quiescent, i.e. when entering a test mode or for a device initiated resume, the OPMode is set and then
TXValid is asserted. In this case, the SYNC pattern and EOP are not transmitted by the UTM.
The only exception is when the OPMode signals are set to mode 2 while TXValid is asserted (the
transceiver is transmitting a packet), in order to flag a transmission error. See section 5.13.1 for more
information. In this case, the SYNC pattern has already been transmitted by the UTM so upon the negation
of TXValid the EOP must also be transmitted to properly terminate the packet.
Changing the OPMode signals under all other conditions, while the transceiver is receiving or transmitting
data will generate undefined results.
To force an SE0 State on the bus the UTM is placed in test mode 0 (Normal Operation) and no data is
transmitted. This results in an HS Idle mode on the bus, which is SE0.
To force a 'J' State on the bus the UTM is placed in test mode 2 (Disable Bit Stuffing and NRZI encoding)
and all 1's are loaded into the Transmit Data Holding register.
To force a 'K' State on the bus the UTM is placed in test mode 2 (Disable Bit Stuffing and NRZI encoding)
and all 0's are loaded into the Transmit Data Holding register.
To generate a Test Packet on the bus the UTM is placed test mode 0 (Normal Operation) and all the Test
Packet data (as defined in Chapter 5 of the USB 2.0 specification) is loaded into the transmit data register.
Note that the "Test Force_Enable" mode described in the USB 2.0 Specification does not apply to upstream
ports.
FS Only and LS Only UTM implementations do not require the XcvrSelect and TermSelect speed
selection signals since there is no alternate speed to switch to.
When this option is applied, 8 data lines will be presented by the transceiver, where Data0-7 is a bi-
directional data bus.
If TXValid is asserted (1) then the signals Data0-7 accept transmit data from the SIE. If TXValid is
negated (0) then the signals Data0-7 present received data to the SIE.
TXValid
TXValid
Transceiver DataOut0-7
Macrocell
Data0-7
DataIn0-7
• CLK will run at half the rate of the equivalent 8-bit implementation (30 MHz). The 16-bit interface is
only defined for HS/FS transceiver implementations (not for FS Only or LS Only).
• Additional signals (RXValidH and TXValidH) are provided to identify whether the high byte of the
respective 16-bit data word is valid.
• Additional data lines are provided (DataIn 8-15 and DataOut 8-15).
• The TXReady signal will drop low for one clock time each time 16 stuffed bits are accumulated vs.
after the accumulation of 8 stuffed bits with the 8-bit interface.
• The RXValid and RXValidH signals will simultaneously drop low for one clock time each time 16
stuffed bits are accumulated vs. RXValid dropping low after the accumulation of 8 stuffed bits with
the 8-bit interface.
Note that DataBus16_8 controls data bus width and the frequency of CLK. It is only sampled by the
macrocell on the negation of Reset.
Note that the other sections of this document assume that the Transceiver is operating with an 8-bit
interface. The timings need to be adjusted appropriately for operation using 16-bit interface.
CLK
TXValid
TXValidH
TXReady
DP/DM SYNC PID Data Data Data Data Data CRC CRC EOP
0 1 2 3 4 hi lo
Figure 15: Transmit Timing for 16-bit Data, Even Byte Count
CLK
TXValid
TXValidH
TXReady
DP/DM SYNC PID Data Data Data Data CRC CRC EOP
0 1 2 3 hi lo
Figure 16: Transmit Timing for 16-bit Data, Odd Byte Count
Note: The CRC must be transmitted MSb first, however the UTM does not distinguish CRC from data on
the DataIn byte lanes, so the SIE is responsible for placing the CRC bytes on the correct DataIn byte lane.
In Figure 15 and Figure 16 the high and low byte of the CRC16 must be swapped between the DataIn byte
lanes depending in whether the byte count is even or odd.
CLK
RXValid
RXValidH
RXActive
DP/DM Sync PID Data Data Data Data Data CRC CRC EOP
0 1 2 3 4 hi lo
Figure 17: Receive Timing for 16-bit Data, Even Byte Count
CLK
RXValid
RXValidH
RXActive
DP/DM Sync PID Data Data Data Data CRC CRC EOP
0 1 2 3 hi lo
Figure 18: Receive Timing for 16-bit Data, Odd Byte Count
Note: The CRC must be transmitted MSb first, however the UTM does not distinguish CRC from data on
the DataOut byte lanes, so the SIE is responsible for receiving the CRC bytes on the correct DataIn byte
lane. In Figure 17and Figure 18 the high and low byte of the CRC16 are swapped between the DataIn byte
lanes depending in whether the byte count is even or odd.
When this option is applied, 16 data lines will be presented by the transceiver. When DataBus16_8 is low
(0), the 16 data signals act as two 8-bit data buses, where Data0-7 is an input bus for receive data, identical
to the DataIn0-7 bus and Data8-15 is an output bus for transmit data, identical to the DataOut0-7 bus.
When DataBus16_8 is high (1), transceiver is placed in 16-bit mode, where Data0-15 is a bi-directional
data bus. If TXValid is asserted (1) then the signals Data0-15 accept transmit data from the SIE. If
TXValid is negated (0) then the signals Data0-15 present received data to the SIE.
To additionally reduce the signal count the TXValidH and RXValidH signals are multiplexed onto the
ValidH signal. Note that the ValidH signal is undefined if DataBus16_8 = 0.
TXValid
DataBus16_8 DataBus16_8
TXValid
DataOut0-7
Data0-7
DataIn0-7
Transceiver
Macrocell
DataBus16_8
DataOut0-7 Sel B
A
Mux
DataOut8-15 Data8-15
B
DataIn8-15
RXValidH
ValidH
TXValidH
The UTMI provides for optional vendor-defined error, status and control information to be presented
through a standard interface. The vendor control interface consists of two registers. All the registers are
synchronous with CLK. SIEs are required to make these registers accessible to system software, so that
detailed diagnostic and error analysis can be performed. The 2 registers are:
1) An 8-bit "Vendor Status" register that is an output of the macrocell. A macrocell vendor can use this port
to present internal transceiver information to the SIE. Typical examples are: the internal macrocell signals
like "CLK Usable" or "Squelch", error codes, etc.
2) A 4-bit "Vendor Control" register that is an input to the macrocell. A macrocell vendor can use this
register to enable special test modes, like digital or analog loopback, select the information that is presented
on the Vendor Status port, etc. Macrocells will use Reset to initialize this register to values that allow
normal operation. This way if the SIE does not drive these signals the macrocell will still be fully
functional.
CLK Reset
4 8
RESET
Vendor Vendor
Control Status
LD
4 Macrocell 8
SIE
VControlLoadM VControl (0-3) VStatus (0-7)
The following sections make a distinction between "soft" SE0 and "driven" SE0. Soft SE0 is the bus
signaling that results from the DP and DM signal lines being pulled down exclusively by the 15K pull-
down resistors (Rpd). Driven SE0 is the result of generating a SE0 condition by enabling the FS
Transmitter. In this case the DP and DM signal lines are being pulled down by the 45 Ohm serial (Rs)
termination resistors.
Note: Rpd and Rs are defined in Figure 7.1 of the USB 2.0 Specification.
For high-speed operation, Idle is an SE0 state on the bus. SE0 is also used to reset a high-speed device. A
high-speed device cannot use the 2.5 µs assertion of SE0 (as defined for FS operation) to indicate reset
since the bus is often in this state between packets. If no bus activity (Idle) is detected for more than 3 ms. a
high-speed device must determine whether the downstream port is signaling a suspend or a reset. Sections
5.22.1.1 and 5.22.1.2 detail how this determination is made. If a reset is signaled the high-speed device will
then initiate the HS Detection handshake protocol, as defined in section 5.22.2.
Note that the initial assertion of SE0 on the bus is referred to in the core specification and this specification
as "HS Reset T0" (see Section 7.1.7.3 "Reset Signaling" of the USB 2.0 Specification).
time
T0 T1 T2 T3 T4
SuspendM
Xcvr Select
Term Select
Last
DP/DM Activity Soft SE0 'J' State
Device is
suspended
Upstream port
Actions T0
time
Device
Actions T1 T2
XcvrSelect
TermSelect
Last
DP/DM Activity Driven SE0
HS Detection
Handshake
There are three ways in which a device may enter the HS Handshake Detection process:
1) If the device is suspended and it detects an SE0 state on the bus it may immediately enter the HS
handshake detection process.
2) If the device is in FS mode and an SE0 state is detected for more than 2.5 µs. it may enter the HS
handshake detection process.
3) If the device is in HS mode and an SE0 state is detected for more than 3.0 ms. it may enter the HS
handshake detection process. In HS mode, a device must first determine whether the SE0 state is signaling
a suspend or a reset condition. To do this the device reverts to FS mode by placing XcvrSelect and
TermSelect into FS mode. The device must not wait more than 3.125 ms before the reversion to FS mode.
After reverting to FS mode, no less than 100 µs. and no more than 875 µs. later the SIE must check the
LineState signals. If a J state is detected the device will enter a suspend state. If an SE0 state is detected,
then the device will enter the HS Handshake detection process.
In each case, the assertion of the SE0 state on the bus initiates the reset interval (referred to in this section
as "HS Reset T0"). The minimum reset interval is 10 ms. Depending on the previous mode that the bus was
in, the delay between the initial assertion of the SE0 state (HS Reset T0) and entering the HS Handshake
detection process (T0 in Table 11, Table 12, and
This transceiver design pushes as much of the responsibility for timing events on to the SIE as possible, and
the SIE requires a stable CLK signal to perform accurate timing. In cases 2 and 3 above CLK has been
running and is stable, however in case 1 the UTM is reset from a suspend state, and the internal oscillator
and clocks of the transceiver are assumed to be powered down. A device has up to 6 ms after the release of
SuspendM (HS Reset T0) to assert a minimum of a 1 ms Chirp K. To meet these timing constraints and
provide reasonably relaxed clock stability requirements for the transceiver, several requirements are placed
on the transceiver clock generator. See section 5.1 for details. Given these constraints the SIE can reliably
generate a 1ms Chirp K.
Upon entering the HS Detection process (T0) XcvrSelect and TermSelect are in FS mode. The D+ pull-up
is asserted and the HS terminations are disabled. The SIE then sets OpMode to Disable Bit Stuffing and
NRZI encoding, and begins the transmission of all 0's data, which asserts a HS K (chirp) on the bus (T1).
The device chirp must last at least 1.0ms and must end no later than 7.0ms after HS Reset T0. At time T1
the SIE sets XcvrSelect to HS mode and begins listening for a chirp sequence from the downstream port.
If the downstream port is a not HS capable, then the HS K asserted by the device is ignored and the
alternating sequence of HS Chirp K’s and J’s is not generated. If the downstream chirps are not detected
(T4) the device will enter FS mode by returning XcvrSelect to FS mode.
Upstream T0 T3 T5
Port Actions
time
Device
Actions T1 T2 T4
Xcvr Select
Term Select
TXValid
Device Chirp K
SE0 SOF
DP/DM
No
Upstream Downstream FS Mode
Port Chirp Port Chirps
Upon entering the HS Detection process (T0) XcvrSelect and TermSelect are in FS mode. The D+ pull-up
is asserted and the HS terminations are disabled. The SIE then sets OpMode to Disable Bit Stuffing and
NRZI encoding, and begins the transmission of all 0's data, which asserts a HS K (chirp) on the bus (T1).
The device chirp must last at least 1.0ms, and must end no later than 7.0ms after HS Reset T0. At time T1
the SIE sets XcvrSelect to HS mode and asserts a Chirp K on the bus. After the Chirp K is complete the
SIE begins listening for the chirp sequence from the downstream port.
If the downstream port is HS capable then it will begin generating an alternating sequence of Chirp K’s and
Chirp J’s (T3) after the termination of the chirp from the device (T2). After the device sees the valid
downstream port chirp sequence Chirp K-J-K-J-K-J (T6), it will enter HS mode by setting TermSelect to
HS mode (T7). Figure 24 provides a state diagram for Chirp K-J-K-J-K-J validation. Prior to the end of
reset (T9) the upstream port must terminate the sequence of Chirp K’s and Chirp J’s (T8) and assert SE0
(T8-T9). Note that the sequence of Chirp K’s and Chirp J’s constitutes bus activity.
Start Chirp
K-J-K-J-K-J
!K State
detection
K State Chirp Invalid
Chirp Count Detect K? INC Chirp
=0 Count
SE0
Chirp Count != 6
& !SE0
!J State
Upstream T0 T3 T4 T5 T8 T9
Port Actions
time
Device
Actions T1 T2 T6 T7
XcvrSelect
TermSelect
TXValid
Device Chirp K K J K J K J
K J SE0 SOF
DP/DM
When reset is entered from a suspended state (J to SE0 transition reported by LineState), SuspendM is
combinatorially negated at time T0 by the SIE. Depending on the implementation, it may take several
milliseconds for the transceiver's oscillator to stabilize. The UTM must not generate any transitions of the
CLK signal until it is "usable", where "usable" is defined as stable to within ±10% of the nominal
frequency and the duty cycle accuracy 50±10%. After CLK is "usable", the SIE must initialize a timer (T1)
and look for SE0 to be asserted for at least 2.5 us. If the test is TRUE (T1 >= Tfiltse0) then start the reset
handshake protocol. If the test is FALSE, the latest time that you could successfully start the Chirp
sequence was exceeded and the SIE never saw SE0 for at least 2.5 us (T0 >= Tuchend - Tuch & T1 <
Tfiltse0), then return to the suspend state (assert SuspendM).
The first transition of CLK occurs at T1. The SIE must assert a Chirp K for 66000 CLK cycles to ensure a
1ms minimum duration. If CLK is 10% fast (66 mHz) then Chirp K will be 1.0 ms. If CLK is 10% slow
(54 mHz) then Chirp K will be 1.2 ms. The 5.6ms (T1) requirement for the first CLK transition after
SuspendM, provides 200 ns for the SIE to initialize itself (T1 to T2) and ensures enough time to assert a
1ms Chirp K and still complete before T3 with a worst case CLK. Once the Chirp K is completed (T3) the
SIE can begin looking for downstream chirps and use CLK to time the process.
To detect the assertion of the downstream Chirp K's and Chirp J's for 2.5 us {TFILT}, the SIE must see the
appropriate LineState signals asserted continuously for 165 CLK cycles.
Upstream T0
Port Actions
time
Device T1 T2 T3 T4
Actions
XcvrSelect
SuspendM
TXValid
CLK
Device asserted K
DP/DM J SE0 SE0
The device has 10 ms. where it can draw a non-suspend current before it must drive resume signaling. At
the beginning of this period the SIE may negate SuspendM, allowing the transceiver (and its oscillator) to
power up and stabilize.
Figure 27 illustrates the behavior of a device returning to HS mode after being suspended. At T4, a device
that was previously in FS mode would maintain TermSelect and XcvrSelect high.
To generate resume signaling (FS 'K') the UTM is placed in the "Disable Bit Stuffing and NRZI encoding"
OpMode must be in “Disable Bit Stuffing and NRZI encoding” mode, TermSelect and XcvrSelect must
be in FS mode, TXValid asserted, and all 0's data is presented on the DataIn bus for at least 1 ms (T1 -
T2). See section 4.1.5 for a discussion of OpMode operation.
Upstream T3
Port Actions
time
Device Actions T0 T1 T2 T4
SuspendM
XcvrSelect &
TermSelect
TXValid
FS Mode HS Mode
The resume signaling (FS 'K') will be asserted for at least 20 ms. At the beginning of this period the SIE
may negate SuspendM, allowing the transceiver (and its oscillator) to power up and stabilize.
The low-speed EOP condition is relatively short. SIEs that simply look for an SE0 condition to exit
suspend mode do not necessarily give the transceivers clock generator enough time to stabilize. It is
recommended that all SIE implementations key off the 'J' to 'K' transition for exiting suspend mode
(SuspendM = 1). And within 1.25 µs after the transition to the SE0 state (low-speed EOP) the SIE must
enable normal operation, i.e. enter HS or FS mode depending on the mode the device was in when it was
suspended.
If the device was in FS mode before the suspend: then the SIE leaves the FS terminations enabled. After the
SE0 expires, the downstream facing port will assert a J state for one low-speed bit time, and the bus will
enter a FS Idle state (J state, maintained by the FS terminations).
If the device was in HS mode before the suspend: then the SIE must switch to the HS terminations before
the SE0 expires ( < 1.25 µs). After the SE0 expires, the bus will then enter a HS Idle state (maintained by
the HS terminations).
VBUS is the +5V power available on the USB. Device Reset in Figure 28 indicates that VBUS is within
normal operational range as defined in the USB 2.0 specification. The assertion of Device Reset (T0) will
initialize the device and cause the SIE state machine to set the XcvrSelect and TermSelect signals to FS
mode (T1). Note that Device Reset is not the same as the UTMI Reset signal. Device Reset is an input to
the SIE, which in turn can use it to assert Reset to the UTM.
Device Reset is combinatorially asserted to the SIE after VBUS is in normal operating range. The SIE should
then combinatorially release Reset and SuspendM to the to the UTM, allowing the UTM clocks to spin up.
CLK will begin oscillating after the internal clock is stable. See section 5.22.2.3 for a discussion of what a
"stable" clock is.
The standard FS technique of using a pull up on DP to signal the attach of a FS device is employed. The
SIE must then check the LineState signals for SE0. If LineState = SE0 is asserted at time T2 then the
upstream port is forcing the reset state to the device (i.e. Driven SE0). The device will then reset itself
before initiating the HS Detection Handshake protocol.
Upstream port T0 T2
Actions
time
Device
Actions T1
VBUS
Device
Reset
XcvrSelect
TermSelect
HS Detection
Handshake
6 Appendix
6.1 FS Operations
The following sections provide examples of FS SYNC and EOP generation by the Transmit State Machine.
Bits 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 …
Don't Care
CLK (Not to scale)
DataIn0-7 1st Data Byte (0xFF) 2nd Data Byte 3rd Data Byte
TXValid
TXReady
Bit Stuffed
Don't Care
Data
Six Ones
Note: the "Serial TX Data" is the output of the TX Shift Reg block (D) in Figure 2. The "Bit Stuffed Data"
is the output of the Bit Stuffer block (E) in Figure 2. The "NRZI Encoded Data" is the output of the NRZI
Encoder block (F) in Figure 2.
Negating the TXValid signal initiates the FS EOP process; bit stuffing will cease, the bit stuff state
machine will be reset, and the FS EOP (two bit times of SE0 followed by a single 'J' bit) will be asserted on
the bus.
TXReady is negated after TXValid is detected false and cannot be reasserted (dashed line) until after the
EOP pattern and 'J' state bit are transmitted. The delay between the assertion of TXValid and the first
assertion of TXReady is UTM implementation dependent.
Bits 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 …
TXReady
TXValid
6.2 HS Operation
The following sections provide examples of HS SYNC and EOP generation by the Transmit State Machine.
Figure 31 demonstrates how the detection of a zero to one transition of TXValid forces the transmit state
machine of the transceiver to send a 32-bit Sync pattern then begin transmission with bit stuffing enabled.
TXReady is negated to indicate to the SIE that the data on the DataIn bus has not been loaded into the
Transmit Data Holding Register.
Bits 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 …
CLK
DataIn Don't Care 1st Data Byte (0xFF) 2nd Data Byte 3rd Data Byte
TXValid
TXReady
Serial TX Data Don't Care 0x00 (Forced) 0x80 (Forced) 1st Data Byte
32-bit SYNC Data Pattern Packet Data
Stuffed Bit
Bit Stuffed
Data Don't Care
Six Ones
NRZI Idle (SE0) K J K J K J K J K J K J K J K K
Encoded Data
SYNC Pattern Packet Data
If required by the bit stuffing rules, a zero bit is inserted even after the last data bit.
TXReady is negated for at least one byte time while the EOP pattern is being transmitted.
TXReady is negated after TXValid is detected false and cannot be reasserted (dashed line) until after the
EOP pattern is transmitted. The delay between the assertion of TXValid and the first assertion of
TXReady is UTM implementation dependent.
Bits 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 …
CLK
TXReady
TXValid
0xFE (Forced)
Last Data Byte
No transitions =
Bit stuff error
Note: The Serial TX Data is shifted out least significant bit first.
CLK
Tch
Tcsu
Control_in
Tdh
Tdsu
DataIn
Tcco
Control_out
Tdco
DataOut
Timing Constraints
Tcsu = Control Signal Setup TIme = ? ns Minimum
Tdsu = Data Signal Setup TIme = ? ns Minimum
Tch = Control Signal Hold Time = ? ns Minimum
Tdh = Data Signal Hold Time = ? ns Minimum
Tcco = Control Signal Clock to Out Time = ? ns minimum, ? ns maximum
Tdco = Data Signal Clock to Out Time = ? ns minimum, ? ns maximum
Notes:
1. DataIn represents the signals DataIn00 through DataIn07 (or DataIn15 if a 16-bit implementation).
3. Control_in represents all remaining System and Data Interface input signals.
4. DataOut represents the signals DataOut00 through DataOut07 (or DataIn15 if a 16-bit
implementation).
5. Control_out represents all remaining System and Data Interface output signals.
8 bit times
CLK
RXActive
TXValid
TX Start Delay
SIE Decision
Time
DP/DM represents the serial data on the bus. Received data is synchronized to a CLK boundary by the
UTM. The EOP on the DP/DM signal lines represents an EOP on the USB that arrives perfectly
synchronized with CLK. The EOP in the dotted box represents an EOP that completes one bit time too late
to be synchronized with CLK, representing an additional 7-bit time delay.
Assuming a worst case where the elasticity buffer is full, it will take 4 byte times to unload it. Also
assuming that it takes the UTM 1 CLK time to decode the EOP (shifted out of the elasticity buffer) and one
CLK time for the change in the RXActive signal, the total worst case delay is 63 bit times.
If EOP arrives on a CLK edge and the elasticity buffer is empty then the best case delay is 16 bit times.
The Data Synchronization Offset is delay between the end of EOP and the synchronization with CLK,
representing an additional 0 to 7-bit time delay.
Note that the Receive End Delay budget discussed in the table above is a representative example. The
actual contribution of each component of the Receive End Delay is implementation specific. However, in
all cases a device must meet the constraints of the Total Receive End Delay (22-63 bit times). The
exception is if RXError is asserted and RXActive is negated immediately (RX Abort 1 state).
The Receive End Delay is the time between the beginning of the Idle state on the bus after a receive packet
and the CLK edge that the SIE detects the negation of RXActive.
The Transmit Start Delay is the time between the CLK edge that the UTM transmit state machine detects
the assertion of TXValid and the assertion of the SYNC pattern on the bus.
The SIE Decision Time is the delay between the SIE detecting the negation of RXActive and the UTM
detecting the assertion of TXValid.
If the Receive End Delay is 3 to 8 CLK times and the Transmit Start Delay is 1 to 2 CLKs, then the SIE
Decision Time must be between 0 and 14 CLKs to meet the requirements of the USB spec.
The worst case SIE Decision Time assumes that the elasticity buffer is full, the EOP just missed
synchronizing with CLK, maximum Trace Propagation, and 32 bits are in the Elasticity Buffer (8 CLKs),
and it takes 2 CLKs between the assertion of TXValid and the beginning of the SYNC pattern. the SIE
Decision Time must not take more than 14 CLKs to ensure that it does not exceed the inter-packet delay
maximum of 192 bit times (24 CLKs).
In this example, the best case inter-packet delay assumes that the elasticity buffer is empty, the EOP is
perfectly synchronized with CLK, 0 Trace Propagation, and 0 bits are in the Elasticity Buffer (4 CLKs), it
takes 1 CLK between the assertion of TXValid and the beginning of the SYNC pattern, and the SIE
Decision Time takes 1 CLK. In this case there will be a minimum of 38 bit times (5 CLKs) between EOP
and SYNC. This timing exceeds the 8 bit time minimum inter-packet delay required by the spec. UTM
implementations that minimize the Receive End Delay will provide better performance and more closely
meet the minimum 8 bit time delay.
The list of delays in Table 16 should remain basically unchanged whether the interface is running with a 60
or 30 MHz CLK. When considering a 16-bit interface (30 MHz CLK), the only difference is
synchronizing the serial input stream with CLK. Data Synchronization Offset will be 0-15 for a 30 MHz
CLK. This results in a Total Receive End Delay of 22-81 bit times or 2-6, 30MHz CLKs.
6
Some implementations may not pre-fill the elasticity buffer, and instead use the flow control provided by
RXValid to handle cases where the downstream port clocking rate is slower than that of the upstream port.
In this case the Elasticity Buffer purge time would be 0-20 bit times.
CLK
DP/DM Data CRC CRC EOP SYNC PID Data Data Data Data
DataIn(7:0) CRC
TXValid
Note: To meet the minimum inter-packet delays between transmitting a packet and receiving the next, it is
recommended that the receiver be disabled while transmitting. Whether this is necessary will depend on the
implementation. In HS mode this can be accomplished by asserting the "squelch" signal if the
HS_Drive_Enable signal is asserted. See Figure 7-1 of the USB 2.0 Specification for an explanation of the
squelch and HS_Drive_Enable signals.
In this example TX End Delay is fixed at 16 bit times, however the worst case TX End Delay can be 40 bit
times or longer, depending on the implementation. The 16 bit time TX End Delay assumes that the last byte
(2nd CRC byte in Figure 35) of the packet and the EOP will be shifted out after TXValid is negated.
7
Some implementations may not pre-fill the elasticity buffer, and instead use the flow control provided by
RXValid to handle cases where the downstream port clocking rate is slower than that of the upstream port.
Note that the Receive Start Delay budget discussed in the table above is a representative example. The
actual contribution of each component of the Receive Start Delay is implementation specific. However, in
all cases a device must meet the constraints of the Total Receive Start Delay.
Best case RX Start Delay (22 bit times) assumes a minimum length SYNC pattern (12 bit times), the end of
the SYNC pattern is synchronized with CLK in a manner that will result in minimum delay, and a 0 bit
time Trace Propagation delay (3 CLKs).
Worst case RX Start Delay (63 bit times) assumes a maximum length SYNC pattern (32 bit times), the end
of the SYNC pattern is synchronized with CLK in a manner that will result in maximum delay, and a 2 bit
time Trace Propagation delay (8 CLKs).
TX End Delay is implementation dependent and may vary from 16 to 40 bit times (2 to 5 CLKs).
SIE Prep Time is the delay between negating TXValid and detecting the assertion of RXActive.
Assuming the best case TX End Delay of 16 bit times (2 CLKs), a minimum inter-packet gap of 8 bit times
(1 CLK time), and a best case RX Start Delay of 22 bit times (3 CLKs), then the SIE Prep Time will be as
short as 6 CLKs.
Assuming the worst case TX End Delay of 40 bit times (5 CLKs), a maximum inter-packet gap of 192 bit
times (24 CLKs), and a worst case RX Start Delay (8 CLKs), then the SIE Prep Time will be up to 37
CLKs.
CLK
DP/DM Data EOP SYNC PID Data Data Data Data Data Data Data Data Data
RX End Delay
RXActive
In all implementations the Rx Start Delay + minimum inter-packet gap must be greater than RX End Delay.
In the case where a UTM implementation pre-fills the elasticity buffer the Rx Start Delay (best case, 34 bit
times 5 CLKs) + minimum inter-packet gap (32 bit times, 4 CLKs) will be greater than RX End Delay
(worst case, 63 bit times, 8 CLKs). If the UTM implementation does not pre-fills the elasticity buffer then
the Rx Start Delay (best case, 22 bit times 4 CLKs) + minimum inter-packet gap (32 bit times, 4 CLKs)
will be still greater than RX End Delay (worst case, 51 bit times, 7 CLKs).
CLK
EOP SYNC
LineState J or K SE0 J K J K
RXActive
For timing the inter-packet delay the SIE must utilize LineState to determine the EOP transition from SE0
to the J-State. RXActive must also be negated before TXValid can be asserted because the SIE must parse
the received data to determine what data to return with the following transmit operation.
FS SIE Decision Time must be between 7-19 CLKs10 to ensure that 6.5 bit times FS inter-packet gap is
met.
Note: In FS mode, the RX End Delay is relaxed. RXActive must be negated by the end of the EOP + 2
CLKs, so the best case RX End Delay is 17 CLKs. And worst case RX End Delay is 18 CLKs assuming that
some clock synchronization delay.
8
The LineState delay assumes that the DP/DM signals are double clocked to prevent metastability
problems.
9
The USB specification (section 7.1.18.1) states that a device with a detachable cable must not exceed a
6.5 bit time delay and a device with a detachable cable must not exceed a 7.5 bit time delay. Not knowing
which implementation that the UTMI will be used in, the 6.5 bit time max is assumed.
10
The minimum of 2 CLKs is required so that there is no collision on the bus. This is because the
downstream facing port will force a J State for one bit time to complete the EOP. Best case LineState Delay
+ best case TXValid to first K of Sync + 2 = 1 bit time (5).
Note: The timing in Figure 37 allows approximately two FS bit times from the detection of TXValid
asserted, to the assertion of SYNC on the USB. So if the UTMI is running with a 16 bit interface (30 MHz
CLK), then the TXStart Delay is a minimum of 1 CLK and a maximum of 3 CLKs.
The FS SIE Decision Time must be between 4 and 15 CLKs to ensure that 6.5 bit times FS inter-packet gap
is met.
For a transmit followed by a receive the downstream port determines the inter-packet delay. The SIE must
measure the inter-packet delay to determine whether a timeout has occurred or not. In this case, TXValid
and RXActive are not used to measure the inter-packet delay because TXValid is negated long before the
EOP is sent and RXActive will not be asserted until after the SYNC pattern is recognized. The SIE must
use LineState to measure inter-packet delays.
CLK
EOP SYNC
DP/DM Data SE0 J K J K
LineState J or K SE0 J K J K
The worst case situation is if LineState takes 2 CLKs to identify EOP and 3 CLKs to identify SYNC (or
vice versa). In all other cases the LineState delays cancel.
The USB specification declares that a device must not timeout before 16 bit times (80 CLKs) and shall
timeout after 18 bit times (90 CLKs).
If the inter-packet delay exceeds 89 CLKs a timeout error has occurred. Where 89 - 2 (min LineState EOP
delay) + 3 (max LineState SYNC delay) = 90.
The USB specification declares that a device must not timeout before 16 bit times (64 CLKs) and not after
18 bit times (72 CLKs).
If the inter-packet delay exceeds 63 CLKs an error has occurred. Where 63 - 2 (min LineState EOP delay)
+ 3 (max LineState SYNC delay) = 64.
For very short packets, like an ACKnowledgemnent, only one byte needs to be loaded. In this case the SIE
will assert TXValid, and the UTM will assert TXReady and load the byte into the Transmit Holding
Register. The SIE having moved the last byte to the SIE will then immediately drop TXValid, signaling the
end of the packet. This complete handshake can occur in less than one FS bit time, meanwhile the
handshake packet will take approximately 19 FS bit times (8 SYNC bits, 8 data bits, 3 bit times for the
EOP). This means that any inter-packet timing must use LineState to accurately determine when the packet
is on the bus. The figure below shows the beginning of the FS handshake transmission.
CLK
LineState J K J K J K J K J D(0)
TX Start Delay
1-5 CLKs LineState Delay
2-3 CLKs
TXValid
TXReady
8-Bit Interface
DataIn(0-7) DataOut(0-7)
TXValid TXReady
RXActive
RXValid
Reset CLK
SuspendM RXError
XcvrSelect DP
TermSelect DM
OpMode(0-1) LineState(0-1)
16-Bit Interface
DataIn(8-15) DataOut(8-15)
DataIn(0-7) DataOut(0-7)
TXValid TXReady
TXValidH
RXActive
DataBus16_8 RXValid
RXValidH
Reset CLK
SuspendM RXError
XcvrSelect DP
TermSelect DM
OpMode(0-1) LineState(0-1)
8-Bit Bi-directional
Interface
Data(0-7)
DataOut(0-7) DataIn(0-7)
TXValid
Note: That the 16-Bit Bi-directional Interface block shown below, attaches to the 16-Bit Interface Entity
Diagram above to provide a 16-bit bi-directional interface for the UTM. For the internals of this block see
Figure 19.
16-Bit Bi-directional
Interface
DataBus16_8 Data(8-15)
Data(0-7)
ValidH
DataOut(8-15) DataIn(8-15)
DataOut(0-7) DataIn(0-7)
TXValid TXReady
RXValidH TXValidH