throbber
Universal Serial Bus Specification Revision 2.0
`
`be returned to the high-speed Idle state ( using the SendEOR state). After this, the port will return to the
`Enabled state. The high-speed status of the port is maintained throughout the suspend-resume cycle.
`
`Figure 11-17 and Figure 11-18 show the timing relationships for an example remote-wakeup sequence.
`This example illustrates a device initiating resume signaling through a suspended hub ('B') to an awake hub
`('A'). Hub 'A' in this example times and completes the resume sequence and is the "Controlling Hub".
`The timings and events are defined in Section 7 .1. 7. 7.
`
`Full/low speed Bus driving
`Full/low speed Bus driving -
`repeat
`Full/low speed Bus Idle or
`driven at other end
`High speed idle state
`
`(DS) /I Controlling Hub
`
`+
`R
`II. H b D ·
`C
`t
`on ro mg u
`rives esume
`____o,,,J',
`sends EOR ending
`~ 20ms (nominal)
`i--------------------i:
`resume
`Idle ('J') :_· ____ ::· ___ 'J, __ Resume(_('K')
`\
`.A~--~-----------~:.,_\ ____ i?le
`~ !.- Controlling. Hub Reflects Resume
`,
`!
`l
`l
`l
`l
`.
`.
`:
`:
`
`Everything
`below Hub 'A'
`in Suspend
`state
`
`-
`
`Hub
`Upstream
`Port
`
`,
`i
`i
`.
`:
`
`,
`
`(DS) 900µs
`
`_J Hub 'B' generates
`I EOP ending resume
`
`/
`
`,
`
`Enabled DS
`
`_Idle ('J')~---~,_R_e_s..,um~e-('K_'_)-;,---;i
`
`::: :
`
`:
`
`: : i \_ _j_~l-e ('~')-
`
`~ ""'''"'
`
`~
`
`:+- Hub 'B' Drives Res~me (US and DS)
`

`
`[e.g., 1pms]
`
`1
`I
`I
`
`1
`I
`I
`
`Device
`Hub Port
`
`,._Hub 'B' Reflects Resume (US and DS)

`900µs
`
`Device
`
`Device
`
`I~~~·~·~] Resume ('KD
`
`Device r.·':_ . .
`
`Remote
`Wakeup
`
`~
`to 1
`t1 :
`
`t2 :
`
`r---
`------------~
`/Idle ('J')
`:\
`'
`:---------------~J-. ..L·-·
`
`,._ Qevice Drives Resume
`[e.g., 10ms]


`t,:
`t, :
`
`Figure 11-17. Example Remote-wakeup Resume Signaling With Full-flow-speed Device
`
`333
`
`PA_0001543
`
`

`

`~ Controlling Hub
`suspended DS
`Port
`
`-
`
`Hub
`Upstream
`Port
`
`\l["""'o~
`
`Enabled DS
`
`1
`I
`I
`
`1
`I
`I
`
`Device
`Hub Port
`
`Device
`
`(DS) 900µs
`
`j
`
`!
`
`!
`
`i
`
`_Idle ('J') i __ J Resume ('K')
`
`~
`
`idle
`......... ................. :.: -----
`Hub 'B' Drives Resume (US and DS)
`[e.g., 1pms]
`
`Universal Serial Bus Specification Revision 2.0
`
`Everything
`below Hub 'A'
`in Suspend
`state
`
`Full/low speed Bus driving
`Full/low speed Bus driving -
`repeat
`Full/low speed Bus Idle or
`driven at other end
`High speed idle state
`
`. /i Controlling Hub
`
`Controlling Hub Drives Resume (DS)
`~ sends EOR ending
`20ms (nominal)
`---..:
`,_· - - - - - - - - - - - - - - - .=


`resume
`Idle ('J ') i.· ___ i. ___ ,J, Resumei_('K')
`\
`.Ji,----;---.;..--------.;.,!\ ___ __ idle
`l
`l
`1+- Controlling. Hub Reflects Resume
`i
`
`Device
`
`l~I~~·~·~] Resume ('Ki)
`
`De v i ce~•!_ . .
`Remote
`~
`to !
`Wakeup
`11 ,
`
`t,,
`
`:
`:
`:
`:
`~H~b 'B' Refiects Resume (US and DS)
`900µs
`
`-----------i
`''
`idle
`'.---------------~j _ ____ _
`._ Qevice Drives Resume


`[e.g., 10ms]
`t,l
`t,l
`
`Figure 11-18. Example Remote-wakeup Resume Signaling With High-speed Device
`
`Here is an explanation of what happens at each t,,:
`
`t0 Suspended device initiates remote-wakeup by driving a K' on the data lines.
`
`t, Suspended hub 'B' detects the 'K' on its downstream facing port and wakes up enough within 900 µs
`to filter and then reflect the resume upstream and down through all enabled ports.
`
`t2 Hub 'A' is not suspended (implication is that the port at which 'B' is attached is selectively
`suspended), detects the 'K' on the selectively suspended port where 'B' is attached, and filters and
`then reflects the resume signal back to 'B' within 900 µs.
`
`t1 Device ceases driving 'K' upstream.
`t, Hub 'B' ceases driving 'K' upstream and down all enabled ports and begins repeating upstream
`signaling to all enabled downstream facing ports.
`
`t5 Hub 'A' completes resume sequence, after appropriate timing interval, by driving a speed-appropriate
`end of resume downstream. (End of resume will be an Idle state for a high-speed device or a low(cid:173)
`speed EOP for a full-/low-speed device.)
`
`The hub reflection time is much smaller than the minimum duration a USB device will drive resume
`upstream. This relationship guarantees that resume will be propagated upstream and downstream without
`any gaps.
`
`11.10 Hub Reset Behavior
`Reset signaling to a hub is defined only in the downstream direction, which is at the hub's upstream facing
`port. Reset signaling required of the hub is described in Section 7 .1. 7 .5.
`
`A suspended hub must interpret the start of reset as a wakeup event; it must be awake and have completed
`its reset sequence by the end of reset signaling.
`
`334
`
`PA_0001544
`
`

`

`Universal Serial Bus Specification Revision 2.0
`
`After completion of the reset sequence, a hub is in the following state:
`
`• Hub Controller default address is 0.
`
`• Hub status change bits are set to zero.
`
`• Hub Repeater is in the WFSOPFU state.
`
`•
`
`Transmitter is in the Inactive state.
`
`• Downstream facing ports are in the Not Configured state and SEO driven on all downstream facing
`ports.
`
`11.11 Hub Port Power Control
`Self-powered hubs may have power switches that control delivery of power downstream facing ports but it
`is not required. Bus-powered hubs are required to have power switches. A hub with power switches can
`switch power to all ports as a group/gang, to each port individually, or have an arbitrary number of gangs of
`one or more ports.
`
`A hub indicates whether or not it supports power switching by the setting of the Logical Power Switching
`Mode field in wHubCharacteristics. If a hub supports per-port power switching, then the power to a port is
`turned on when a SetPortFeature(PORT _POWER) request is received for the port. Port power is turned off
`when the port is in the Powered-off or Not Configured states. If a hub supports ganged power switching,
`then the power to all ports in a gang is turned on when any port in a gang receives a
`SetPortFeature(PORT_POWER) request. The power to a gang is not turned off unless all ports in a gang
`are in the Powered-off or Not Configured states. Note, the power to a port is not turned on by a
`SetPortFeature(PORT _POWER) if both C _HUB_ LOCAL _POWER and Local Power Status (in
`wHubStatus) are set to 1B at the time when the request is executed and the PORT_POWER feature would
`be turned on.
`
`Although a self-powered hub is not required to implement power switching, the hub must support the
`Powered-off state for all ports. Additionally, the hub must implement the PortPwrCtr!Mask (all bits set to
`IB) even though the hub has no power switches that can be controlled by the USB System Software.
`
`Note: To ensure compatibility with previous versions ofUSB Software, hubs must implement the Logical
`Power Switching Mode field in wHubCharacteristics. This is because some versions of SW will not use the
`SetPortFeature() request if the hub indicates in wHubCharacteristics that the port does not support port
`power switching. Otherwise, the Logical Power Switching Mode field in wHubCharacteristics would have
`become redundant as of this version of the specification.
`
`The setting of the Logical Power Switching Mode for hubs with no power switches should reflect the
`manner in which over-current is reported. For example, if the hub reports over-current conditions on a per(cid:173)
`port basis, then the Logical Power Switching Mode should be set to indicate that power switching is
`controlled on a per-port basis.
`
`For a hub with no power switches, bPwrOn2PwrGood must be set to zero.
`
`11.11.1 Multiple Gangs
`A hub may implement any number of power and/or over-current gangs. A hub that implements more than
`one over-cLment and/or power switching gang must set both the Logical Power Switching Mode and the
`Over-current Reporting Mode to indicate that power switching and over-current reporting are on a per port
`basis (these fields are in wHubCharacteristics). Also, all bits in PortPwrCtr!Mask must be set to IB.
`
`When an over-current condition occurs on an over-current protection device, the over-current is signaled on
`all ports that are protected by that device. When the over-current is signaled, all the p01is in the group are
`placed in the Powered-off state, and the C _PORT_ OVER-CURRENT field is set to 1B on all the ports.
`When port status is read from any port in the group, the PORT_OVER-CURRENT field will be set to 1B as
`
`335
`
`PA_0001545
`
`

`

`Universal Serial Bus Specification Revision 2.0
`
`long as the over-current condition exists. The C_PORT_OVER-CURRENT field must be cleared in each
`port individually.
`
`When multiple ports share a power switch, setting PORT_POWER on any port in the group will cause the
`power to all ports in the group to tum on. IL will not, however, cause the other ports in that group to leave
`the Powered-off state. When all the ports in a group are in the Powered-off state or the hub is not
`configured, the power to the ports is turned off.
`
`lf a hub implements both power switching and over-current, it is not necessary for the over-current groups
`to be the same as the power switching groups.
`
`If an over-current condition occurs and power switches are present, then all power switches associated with
`an over-current protection circuit must be turned off. If multiple over-current protection devices are
`associated with a single power switch then that switch will be turned off when any of the over-cLment
`protection circuits indicates an over-current condition.
`
`11.12 Hub Controller
`The Hub Controller is logically organized as shown in Figure 11-19.
`
`UPSTREAM ONNECTION
`
`Status Change
`Endpoint
`
`ENDPOINT 0:
`Configuration
`lnfonnation
`
`Port 1
`
`Port N
`
`Port 3
`Port 2
`Figure 11-19. Example Hub Controller Organization
`
`11.12.1 Endpoint Organization
`The Hub Class defines one additional endpoint beyond Default Control Pipe, which is required for all hubs:
`the Status Change endpoint. The host system receives port and hub status change notifications through the
`Status Change endpoint. The Status Change endpoint is an interrupt endpoint. If no hub or port status
`change bits are set, then the hub returns an NAK when the Status Change endpoint is polled. When a status
`change bit is set, the hub responds with data, as shown in Section 11.12.4, indicating the entity (hub or port)
`with a change bit set. The USB System Software can use this data to determine which status registers to
`access in order to determine the exact cause of the status change interrupt.
`
`336
`
`PA_0001546
`
`

`

`Universal Serial Bus Specification Revision 2.0
`
`11.12.2 Hub Information Architecture and Operation
`Figure 11-20 shows how status, status change, and control information relate to device states. Hub
`descriptors and Hub/Port Status and Control are accessible through the Default Control Pipe. The Hub
`descriptors may be read at any time. When a hub detects a change on a port or when the hub changes its
`own state, the Status Change endpoint transfers data to the host in the form specified in Section 11.12.4.
`
`Hub or port status change bits can be set because of hardware or Software events. When set, these bits
`remain set until cleared directly by the USB System Software through a ClearPortFeature() request or by a
`hub reset. While a change bit is set, the hub continues to report a status change when polled until all change
`bits have been cleared by the USB System Software.
`
`Status Information
`(static)
`
`Change Information
`(due to hardware
`events)
`
`Hardware Events -
`
`Device Control
`
`Control Information
`( change device state)
`
`Software Device
`Control
`
`Figure 11-20. Relationship of Status, Status Change, and Control Information to Device States
`
`The USB System Software uses the interrupt pipe associated with the Status Change endpoint to detect
`changes in hub and port status.
`
`11.12.3 Port Change Information Processing
`
`Hubs report a port's status through port commands on a per-port basis. The USB System Software
`acknowledges a port change by clearing the change state corresponding to the status change reported by the
`hub. The acknowledgment clears the change state for that port so future data transfers to the Status Change
`endpoint do not report the previous event. This allows the process to repeat for further changes (see
`Figure 11-21).
`
`337
`
`PA_0001547
`
`

`

`Universal Serial Bus Specification Revision 2.0
`
`Begin
`
`System Software requests Interrupt Pipe notification for Status Change Information
`
`Hub NAKs
`status change
`IN token
`
`Interrupt Pipe returns Hub and Port Status Change Bitmap
`
`Interrupt Pipe notification retired
`
`System Software reads Hub or Port status (for affected ports)
`
`Yes
`
`• Accumulate change information
`• System Software clears
`corresponding change state
`
`System Software processes accumulated change information
`
`Re-initialize Interrupt Pipe for Status Change endpoint
`
`Return to
`beginning
`
`Figure 11-21. Port Status Handling Method
`
`11.12.4 Hub and Port Status Change Bitmap
`The Hub and Port Status Change Bitmap, shown in Figure 11-22, indicates whether the hub or a port has
`experienced a status change. This bitmap also indicates which port(s) has had a change in status. The hub
`returns this value on the Status Change endpoint. Hubs report this value in byte-increments. That is, if a
`hub has six ports, it returns a byte quantity, and reports a zero in the invalid port number field locations.
`The USB System Software is aware of the number of ports on a hub (this is reported in the hub descriptor)
`and decodes the Hub and Port Status Change Bitmap accordingly. The hub reports any changes in hub
`status in bit zero of the Hub and Port Status Change Bitmap.
`
`The Hub and Port Status Change Bitmap size varies from a minimum size of one byte. Hubs report only as
`many bits as there are ports on the hub, subject to the byte-granularity requirement (i.e., round up to the
`nearest byte).
`
`338
`
`PA_0001548
`
`

`

`Universal Serial Bus Specification Revision 2.0
`
`II
`
`I 1-------------------- I :-------------------1 2
`
`1
`
`I
`
`0
`
`I
`
`I
`
`N
`
`I
`
`Port N change detected g_
`
`~
`
`:::
`
`~
`
`I
`
`'
`
`:::
`
`~
`
`:::
`
`:::
`
`~
`
`Port 2 change detected
`Port 1 change detected
`Hub change detected
`
`~
`
`~
`
`~
`
`Figure 11-22. Hub and Port Status Change Bitmap
`
`Any time the Status Change endpoint is polled by the host controller and any of the Status Changed bits are
`non-zero, the Hub and Port Status Change Bitmap is returned. Figure 11-23 shows an example creation
`mechanism for hub and port change bits.
`
`Hub and Port Status Change Bitmap
`
`I
`
`_____ J
`
`I I
`N
`
`Figure 11-23. Example Hub and Port Change Bit Sampling
`
`11.12.5 Over-current Reporting and Recovery
`USB devices must be designed to meet applicable safety standards. Usually, this will mean that a self(cid:173)
`powered hub implement current limiting on its downstream facing ports. If an over-current condition
`occurs, it causes a status and state change in one or more ports. This change is reported to the USB System
`Software so that it can take corrective action.
`
`A hub may be designed to report over-current as either a port or a hub event. The hub descriptor field
`wHubCharacteristics is used to indicate the reporting capabilities of a particular hub (see Section 11.23.2).
`The over-current status bit in the hub or port status field indicates the state of the over-current detection
`when the status is returned. The over-current status change bit in the Hub or Port Change field indicates if
`the over-current status has changed.
`
`When a hub experiences an over-current condition, it must place all affected ports in the Powered-off state.
`If a hub has per-port power switching and per-port current limiting, an over-current on one po1i may still
`
`339
`
`PA_0001549
`
`

`

`Universal Serial Bus Specification Revision 2.0
`
`cause the power on another port to fall below specified minimums. In this case, the affected port is placed
`in the Powered-off state and C _PORT_ OVER_ CURRENT is set for the port, but
`PORT_OVER_CURRENT is not set. If the hub has over-cun-ent detection on a hub basis, then an over(cid:173)
`cun-ent condition on the hub will cause all ports to enter the Powered-off state. However, in this case,
`neither C_PORT_OVER_CURRENT nor PORT_OVER_CURRENT is set for the affected ports.
`
`Host recovery actions for an over-cUil"ent event should include the following:
`
`1. Host gets change notification from hub with over-cun-ent event.
`
`2. Host extracts appropriate hub or port change information (depending on the information in the
`change bitmap).
`
`3. Host waits for over-cun-ent status bit to be cleared to 0.
`
`4. Host cycles power on to all of the necessary ports (e.g., issues a SetPortFeature(PORT_POWER)
`request for each port).
`
`5. Host re-enumerates all affected ports.
`
`11.12.6 Enumeration Handling
`The hub device class commands are used to manipulate its downstream facing port state. When a device is
`attached, the device attach event is detected by the hub and reported on the status change inten-upt. The host
`will accept the status change report and request a SetPortFeature(PORT_RESET) on the port. As part of the
`bus reset sequence, a speed detect is performed by the hub's port hardware.
`
`The Gel_Status(PORT) request invoked by the host will return a "nol PORT_LOW _SPEED and
`PORT_HIGH_SPEED" indication for a downstream facing port operating at high-speed. The
`Get_Status(PORT) will report "PORT_LOW _SPEED" for a downstream facing port operating at low(cid:173)
`speed. The Get_Status(PORT) will report "not PORT_LOW _SPEED and not PORT_HIGH_SPEED" for a
`downstream facing port operating at full-speed.
`
`When the device is detached from the port, the port reports the status change through the status change
`endpoint and the port will be reconnected to the high-speed repeater. Then the process is ready to be
`repeated on the next device attach detect.
`
`11.13 Hub Configuration
`Hubs are configured through the standard USB device configuration commands. A hub that is not
`configured behaves like any other device that is not configured with respect to power requirements and
`addressing. If a hub implements power switching, no power is provided to the downstream facing ports
`while the hub is not configured. Configuring a hub enables the Status Change endpoint. The USB System
`Software may then issue commands to the hub to switch port power on and off at appropriate times.
`
`The USB System Software examines hub descriptor infonnation to determine the hub's characteristics. By
`examining the hub's characteristics, the USB System Software ensures that illegal power topologies are not
`allowed by not powering on the hub's ports if doing so would violate the USB power topology. The device
`status and configuration info1mation can be used to determine whether the hub should be used as a bus or
`self-powered device. Table 11-12 summarizes the information and how it can be used to determine the
`cun-ent power requirements of the hub.
`
`340
`
`PA_0001550
`
`

`

`Universal Serial Bus Specification Revision 2.0
`
`Table 11-12. Hub Power Operating Mode Summary
`
`Configuration Descriptor
`
`MaxPower
`
`bmAttributes
`(Self Powered)
`
`Hub
`Device Status
`(Self Power)
`
`Explanation
`
`0
`
`0
`
`0
`
`>0
`
`>0
`
`>0
`
`0
`
`1
`
`1
`
`0
`
`1
`
`1
`
`N/A
`
`N/A
`This is an illegal set of information.
`
`0
`
`1
`
`N/A
`
`0
`
`1
`
`N/A
`A device which is only self-powered, but does
`not have local power cannot connect to the bus
`and communicate.
`
`Self-powered only hub and local power supply is
`good. Hub status also indicates local power
`good, see Section 11.16.2.5. Hub functionality is
`valid anywhere depth restriction is not violated.
`
`Bus-powered only hub. Downstream facing
`ports may not be powered unless allowed in
`current topology. Hub device status reporting
`Self Powered is meaningless in combination of a
`zeroed bmAttributes. Self-Powered.
`
`This hub is capable of both self- and bus-
`powered operating modes. It is currently only
`available as a bus-powered hub.
`
`This hub is capable of both self- and bus-
`powered operating modes. It is currently
`available as a self-powered hub.
`
`A self-powered hub has a local power supply, but may optionally draw one unit load from its upstream
`connection. This allows the interface to function when local power is not available (see Section 7.2.1.2).
`When local power is removed ( either a hub-wide over-current condition or local supply is off), a hub of this
`type remains in the Configured state but transitions all ports (whether removable or non-removable) to the
`Powered-off state. While local power is off, all port status and change information read as zero and all
`SetPortFeature() requests are ignored (request is treated as a no-operation). The hub will use the Status
`Change endpoint to notify the USB System Software of the hub event (see Section 11.24.2.6 for details on
`hub status).
`
`The MaxPower field in the configuration descriptor is used to report to the system the maximum power the
`hub will draw from VBUS when the configuration is selected. For bus-powered hubs, the reported value
`must not include the power for any of external downstream facing ports. The external devices attaching to
`the hub will report their individual power requirements.
`
`A compound device may power both the hub electronics and the permanently attached devices from VBUS .
`The entire load may be reported in the hubs' configuration descriptor with the permanently attached devices
`each reporting self-powered, with zero MaxPower in their respective configuration descriptors.
`
`341
`
`PA_0001551
`
`

`

`Universal Serial Bus Specification Revision 2.0
`
`11.14 Transaction Translator
`A hub has a special responsibility when it is operating in high-speed and has full-/low-speed devices
`connected on downstream facing ports. In this case, the hub must isolate the high-speed signaling
`environment from the full-/low-speed signaling environment. This function is performed by the Transaction
`Translator (TT) portion of the hub.
`
`This section defines the required behavior of the transaction translator.
`
`11.14.1 Overview
`Figure 11-24 shows an overview of the Transaction Translator. The TT is responsible for pmiicipating in
`high-speed split transactions on the high-speed bus via its upstTeam facing port and issuing corresponding
`full-/low-speed transactions on its downstream facing ports that are operating at full-/low-speed. The TT
`acts as a high-speed function on the high-speed bus and performs the role of a host controller for its
`downstream facing ports that are operating at full-/low-speed. The TT includes a high-speed handler to deal
`with high-speed transactions. The TT also includes a full-/low-speed handler that performs the role of a
`host controller on the downstream facing ports that are operating at full-/low-speed.
`
`Full/Low Speed Bus
`
`Figure 11-24. Transaction Translator Overview
`
`The TT has buffers (shown in gray in the figure) to hold transactions that are in progress and tracks the state
`of each buffered transaction as it is processed by the TT. The buffers provide the connection between the
`high-speed and full-/low-speed handlers. The state tracking the TT does for each transaction depends on the
`specific USB transfer type of the transaction (i.e., bulk, control, interrupt, isochrnnous). The high-speed
`handler accepts high-speed start-split transactions or responds to high-speed complete-split transactions.
`The high-speed handler places the start-split transactions in local buffers for the full-/low-speed handler's
`use.
`
`The buffered start-split transactions provide the full-/low-speed handler with the infonnation that allows it
`to issue corresponding full-/low-speed transactions to full-/low-speed devices attached on downstream
`facing ports. The full-/low-speed handler buffers the results of these full-/low-speed transactions so that
`they can be returned with a corresponding complete-split transaction on the high-speed bus.
`
`The general conversion between full-/low-speed transactions and the corresponding high-speed split
`transaction protocol is described in Section 8.4.2. More details about the specific transfer types for split
`transactions are described later in this chapter.
`
`342
`
`PA_0001552
`
`

`

`Universal Serial Bus Specification Revision 2.0
`
`The high-speed handler of the TT operates independently of the full-/low-speed handler. Both handlers use
`the local transaction buffers to exchange information where required.
`
`ransact10n Trans ator
`
`Bulk&
`Control
`
`Interrupt &
`Isochronous
`
`Figure 11-25. Periodic and Non-periodic Buffer Sections of TT
`
`The TT has two buffer and state tracking sections (shown in gray in Figure 11-24 and Figure 11-25):
`periodic (for isochronous/intenupt full-/low-speed transactions) and non-periodic (for bulk/control full(cid:173)
`/low-speed transactions). The requirements on the TT for these two buffer and state tracking sections are
`different. Each will be described in turn later in this chapter.
`
`11.14.1.1 Data Handling Between High-speed and Full-flow-speed
`The host converts transfer requests involving a full-/low-speed device into conesponding high-speed split
`transactions to the TT to which the device is attached.
`
`Low-speed Preamble(PRE) packets are never used on the high-speed bus to indicate a low-speed
`transaction. Instead, a low-speed transaction is encoded in the split transaction token.
`
`The host can have a single schedule of the transactions that need to be issued to devices. This single
`schedule can be used to hold both high-speed transactions and high-speed split transactions used for
`communicating with full-/low-speed devices.
`
`11.14.1.2 Host Controller and TT Split Transactions
`The host controller uses the split transaction protocol for initiating full-/low-speed transactions via the TT
`and then determining the completion status of the full-/low-speed transaction. This approach allows the
`host controller to start a full-/low-speed transaction and then continue with other high-speed transactions
`while avoiding having to wait for the slower transaction to proceed/complete at its speed. A high-speed
`split transaction has two parts: a start-split and a complete-split. Split transactions are only used between
`the host controller and a hub. No other high-/full-/low-speed devices ever participate in split transactions.
`
`When the host controller sends a start-split transaction at high-speed, the split transaction is addressed to the
`TT for that device. That TT will accept the transaction and buffer it locally. The high-speed handler
`responds with an appropriate handshake to inform the host controller that the transaction has been accepted.
`Not all split transactions have a handshake phase to the start-split. The start-split transactions are kept
`temporarily in a TT transaction buffer.
`
`The full-/low-speed handler processes start-split periodic transactions stored in the periodic transaction
`buffer (in order) as the downstream full-/low-speed bus is ready for the "next" transaction. The full-/low(cid:173)
`speed handler accepts any result information from the downstream bus (in response to the full-/low-speed
`transaction) and accumulates it in a local buffer for later transmission to the host controller.
`
`At an appropriate future time, the host controller sends a high-speed complete-split transaction to retrieve
`the status/data/result for appropriate full-/low-speed transactions. The high-speed handler checks this high(cid:173)
`speed complete-split transaction with the response at the head of the appropriate local transaction buffer and
`responds accordingly. The specific split transaction sequences are defined for each USB transfer type in
`later sections.
`
`343
`
`PA_0001553
`
`

`

`Universal Serial Bus Specification Revision 2.0
`
`11.14.1.3 Multiple Transaction Translators
`A hub has two choices for organizing transaction translators (TTs). A hub can have one TT for all
`downstream facing ports that have full-/low-speed devices attached or the hub can have one TT for each
`downstream facing port. The hub must report its organization in the hub class descriptor.
`
`11.14.2 Transaction Translator Scheduling
`As the high-speed handler accepts start-splits, the full-/low-speed transaction information and data for
`OUTs or the transaction information for IN s accumulate in buffers awaiting their service on the downstream
`bus. The host manages the periodic TT transaction buffers differently than the non-periodic transaction
`buffers.
`
`11.14.2.1 TT Isochronous/Interrupt (Periodic) Transaction Buffering
`Periodic transactions have strict timing requirements to meet on a full-/low-speed bus (as defined by the
`specific endpoint and transfer type). Therefore, transactions must move across the high-speed bus, through
`the TT, across the full-/low-speed bus, back through the TT, and onto the high-speed bus in a timely
`fashion. An overview of the microframe pipeline of buffering in the TT is shown in Figure 11-26. A
`transaction begins as a start-split on the high-speed bus, is accepted by the high-speed handler, and is stored
`in the stmi-split transaction buffer. The full-/low-speed handler uses the next start-split transaction at the
`head of the stmi-split transaction buffer when it is time to issue the next periodic full-/low-speed transaction
`on the downstream bus. The results of the transaction are accumulated in the complete-split transaction
`buffer. The TT responds to a complete-split from the host and extracts the appropriate response from the
`complete-split transaction buffer. This completes the flow for a periodic transaction through the TT. This
`is called the periodic transaction pipeline.
`
`High Speed Start-Split
`
`High Speed Complete-Split
`
`TT
`
`Start-split
`FIFO
`
`Complete-split
`FIFO
`
`Figure 11-26. TT Microframe Pipeline for Periodic Split Transactions
`
`The TT implements a traditional pipeline of transactions with its periodic transaction buffers. There is
`separate buffer space for start-splits and complete-splits. The host is responsible for filling the start-split
`transaction buffer and draining the complete-split transaction buffer. The host software manages the host
`controller to cause high-speed split transactions at the correct times to avoid over/under runs in the TT
`periodic transaction buffers. The host controller sends data "just in time" for full-/low-speed OUTs and
`retrieves response data from full-/low-speed INs to ensure that the periodic transaction buffer space required
`in the TT is the minimum possible. See Section 11.18 for more detailed information.
`
`USB strictly defines the timing requirements of periodic transactions and the isochronous transport
`capabilities of the high-speed and full-/low-speed buses. This allows the host to accurately predict when
`
`344
`
`PA_0001554
`
`

`

`Universal Serial Bus Specification Revision 2.0
`
`data for periodic transactions must be moved on both the full-/low-speed and high-speed buses, whenever a
`client requests a data transfer with a full-flow-speed periodic endpoint. Therefore, the host can "pipeline"
`data to/from the TT so that it moves in a timely manner with its target endpoint. Once the configuration of
`a full-/low-speed device with periodic endpoints is set, the host streams data to/from the TT to keep the
`device's endpoints operating normally.
`
`11.14.2.2 TT Bulk/Control (Non-Periodic) Transaction Buffering
`Non-periodic transactions have no timing requirements, but the TT supports the maximum full-/low-speed
`throughput allowed. A TT provides a few transaction buffers for bulk/control full-/low-speed transactions.
`The host and TT use simple flow control (NAK) mechanisms to manage the bulk/control non-periodic
`transaction buffers. The host issues a start-split transaction, and ifthere is available buffer space, the TT
`accepts the transaction. The full-/low-speed handler uses the buffered information to issue the downstream
`full-/low-speed transaction and then uses the same buffer to hold any results (e.g. , handshake or data or
`timeout). The buffer is then emptied with a corresponding high-speed complete-split and the process
`continues. Figure 11-27 shows an example overview of a TT that has two bulk/control buffers.
`
`High Speed Start-/Complete-Split
`
`TT
`
`Full/Low Speed Transaction
`
`Figure 11-27. TT Nonperiodic Buffering
`
`11.14.2.3 Full-flow-speed Handler Transaction Scheduling
`The full-flow-speed handler uses a simple, scheduled priority scheme to service pending transactions on the
`downstream bus. Whenever the full-/low-speed handler finishes a transaction on the downstream bus, it
`takes the next start-sp

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket