Universal Serial Bus InterfaceMCF5253 Reference Manual, Rev. 1Freescale Semiconductor 24-107The software must apply the following rules when calculating the schedule and linking the schedule datastructures into the periodic schedule:• The software must ensure that an isochronous split-transaction is started so that it will completebefore the end of the B-Frame.• The software must ensure that for a single full-speed isochronous endpoint, there is never astart-split and complete-split in H-Frame, micro-frame 1. This is mandated as a rule so that case 2aand case 2b can be discriminated. According to the core USB specification, the long isochronoustransaction illustrated in Case 2b, could be scheduled so that the start-split was in micro-frame 1of H-Frame N and the last complete-split would need to occur in micro-frame 1 of H-Frame N+1.However, it is impossible to discriminate between cases 2a and case 2b, which has significantimpact on the complexity of the host controller.24.9.12.3.2 Tracking Split Transaction Progress for Isochronous TransfersIsochronous endpoints do not employ the concept of a halt on error, however the host controller doesidentify and report per-packet errors observed in the data stream. This includes schedule traversalproblems (skipped micro-frames), timeouts and corrupted data received.In similar kind to interrupt split-transactions, the portions of the split transaction protocol must execute inthe micro-frames they are scheduled. The queue head data structure used to manage full- and low-speedinterrupt has several mechanisms for tracking when portions of a transaction have occurred. Isochronoustransfers use siTDs for their transfers and the data structures are only reachable using the schedule in theexact micro-frame in which they are required (so all the mechanism employed for tracking in queue headsis not required for siTDs). The software has the option of reusing siTD several times in the completeperiodic schedule. However, it must ensure that the results of split transaction N are consumed and thesiTD re-initialized (activated) before the host controller gets back to the siTD (in a future micro-frame).Split-transaction isochronous OUTs utilize a low-level protocol to indicate which portions of the splittransaction data have arrived. Control over the low-level protocol is exposed in an siTD using the fieldsTransaction Position (TP) and Transaction Count (T-count). If the entire data payload for the OUT splittransaction is larger than 188 bytes, there will be more than one start-split transaction, each of whichrequire proper annotation. If host hold-offs occur, then the sequence of annotations received from the hostwill not be complete, which is detected and handled by the transaction translator. See Section 24.9.12.3.1,“Split Transaction Scheduling Mechanisms for Isochronous,” for a description on how these fields areused during a sequence of start-split transactions.The fields siTD[T-Count] and siTD[TP] are used by the host controller to drive and sequence thetransaction position annotations. It is the responsibility of the system software to properly initialize thesefields in each siTD. Once the budget for a split-transaction isochronous endpoint is established, S-mask,T-Count, and TP initialization values for all the siTD associated with the endpoint are constant. Theyremain constant until the budget for the endpoint is recalculated by the software and the periodic scheduleadjusted.For IN-endpoints, the transaction translator simply annotates the response data packets with enoughinformation to allow the host controller to identify the last data. As with split transaction Interrupt, it is thehost controller's responsibility to detect when it has missed an opportunity to execute a complete-split. The