Information
Universal Serial Bus Interface
MPC8308 PowerQUICC II Pro Processor Reference Manual, Rev. 1
Freescale Semiconductor 13-111
transaction state machine is used to manage the split-transaction protocol sequence. The host controller
uses the fields defined in Section 13.6.12.3.2, “Tracking Split Transaction Progress for Isochronous
Transfers,” plus the variable cMicroFrameBit defined in Section 13.6.12.2.5, “Split Transaction Execution
State Machine for Interrupt,” to track the progress of an isochronous split transaction. Figure 13-59
illustrates the state machine for managing an siTD through an isochronous split transaction. Bold, dotted
circles denote the state of the Active bit in the Status field of a siTD. The Bold, dotted arcs denote the
transitions between these states. Solid circles denote the states of the split transaction state machine and
the solid arcs denote the transitions between these states. Dotted arcs and boxes reference actions that take
place either as a result of a transition or from being in a state.
Figure 13-59. Split Transaction State Machine for Isochronous
13.6.12.3.4 Periodic Isochronous—Do-Start-Split
Isochronous split transaction OUTs use only this state. An siTD for a split-transaction isochronous IN is
either initialized to this state, or the siTD transitions to this state from Do Complete Split when a case 2a
(IN) or 2b scheduling boundary isochronous split-transaction completes.
Each time the host controller reaches an active siTD in this state, it checks the siTD[S-mask] against
cMicroFrameBit. If there is a one in the appropriate position, the siTD executes a start-split transaction.
By definition, the host controller cannot reach an siTD at the wrong time. If the I/O field indicates an IN,
then the start-split transaction includes only the extended token plus the full-speed token. Software must
initialize the siTD[Total Bytes To Transfer] field to the number of bytes expected. This is usually the
maximum packet size for the full-speed endpoint. The host controller exits this state when the start-split
transaction is complete.
Do
Complete-
Split
Do
Start-
Split
Active
Case 2(a,b)
siTD x–1
Complete
NYET
.and.
Not Last
MDATA
Not
Active
Active = 0
OUT Split
Transaction
Complete
IN Split
Transaction
Complete
Advance Data
Active = 0
Issue Start-Split
Transaction
siTD.S-Mask & cMicroFrameBit
.and.
Direction .eq. OUT
siTD.S-Mask & cMicroFrameBit
.and.
Direction .eq. IN
Issue Complete-Split
Transaction
CheckPreviousBit(C-prog-mask,
C-Mask, cMicroFrameBit)
Buffer State
Active = 1