October 10, 20001
2 USB 2.0 Hub Testing Dan Froelich Intel
October 10, Agenda w USB 2.0 Hub Overview w Electrical and Chapter 11 Test Additions w High Speed Repeater Testing w Test Hardware Requirements w Transaction Translator Testing – Full Speed and Low Speed Compliance Devices – Functional Testing – Protocol Testing – Non-Periodic Buffer Affinity – Periodic Microframe Scheduling
October 10, Hub Overview – Architecture w Unchanged From 1.1 Hubs (Except HS Signaling) – HS & FS/LS Repeaters, Determined by Upstream Facing Link – Hub Controller w Minor changes from classic hub: – Hub state machine (HS Detect, HS Termination Transitions, Test Mode) w New Hub Functional Units: – Transaction Translator – Port Routing logic HS/Classic Hub Controller ControllerTransactionTranslator (1 or N) TransactionTranslator Full/LowSpeed High Speed Only..... HS/Classic Hub State Machine Machine Routing Logic Port HS/Classic Hub Repeater Repeater
October 10, Routing Logic Routing Logic TransactionTranslatorTransactionTranslator Full/LowSpeed High Speed Only Port Repeater, Controller,... Port Hub Overview – New Pieces w Port Routing Logic – Controllable Electrical Connection Between: u Full/Low (Transaction Translator), or u High-Speed (Repeater) – Route Done Once Per Device Reset w Transaction Translator – Major addition for USB 2.0 – Uses Split Transaction Protocol.....
October 10, Transaction Translator w What is a Transaction Translator? – Component of the hub that handles data transfers to/from full and low speed downstream devices w When is it Used? – Active when hub is configured at high speed and full and/or low speed devices connected downstream u Buffers data transfers u Finite space u 2 kind of Buffers - Periodic and Non-Periodic u 1 TT per hub OR 1 TT per port
October 10, Transaction Translator Hub Components HS Device Device LSDevice Port MHz 12 MHz 1.5 MHz Port 2 Port N FSDevice HubRepeaterHubRepeater Routing Logic HubControllerHubController Hub State Machines Machines High speed connection TT 1 TT 2 TT N
October 10, Hub Overview – Transaction Translator w Bulk/Control – 2 or More Buffers - 1 Per Transfer – Uses USB Flow Control – PING not used w Interrupt/Isochronous – Scheduled Transaction Pipeline – Separate Buffer From Bulk/Control – Separate SS and CS FIFOs Transaction Translator Bulk & Control Bulk & Control Interrupt & Isochronous Interrupt & Isochronous
October 10, Electrical and Chapter 11 Test Additions Review w Electrical (New Test Fixture) – HS Signal Quality – TDR – Receiver Sensitivity – J and K Voltage Levels w Chapter 11 Additions – TT Command Support – Port Indicator Manual Mode Support – New Status Bits See Compliance Overview Presentation For Details
October 10, High Speed Repeater Electrical Testing w Packet Connectivity – Sync Truncation (4 bits) – EOP Dribble w Repeater Path – Jitter – Latency w Noise Filtering – RWU Filter – SORP Filter w EOF1 and EOF2 Rules w End of Resume Generation Routing Logic Routing Logic TransactionTranslatorTransactionTranslator Full/LowSpeed High Speed Only Port Repeater, Controller,... Port
October 10, Example – Testing Sync Truncation and EOP Dribble w Put Hub Port in Test_Force_Enable w Test SW Generates Downstream Traffic w Capture Pre/Post Hub Signals w Analyze Data to Test Sync Truncation and EOP Dribble Test Mode SW Oscilloscope Hub Under Test Breakout Board
October 10, Example - Testing Latency w Put Hub Port in Test_Force_Enable w Test SW Generates Downstream Traffic w Capture Pre/Post Hub Signals w Analyze Data to Test Latency – Start of Sync Reference Test Mode SWOscilloscope Hub Under Test Breakout Board
October 10, TT Testing – Overview Type Functional Protocol Implementation Number of Buffers Buffer Affinity Buffer Size SS Microframe Arrival Abort Rules TT Testing Periodic Non Periodic Combination Control And Bulk Loopback Data Integrity Enumeration Isoch and Interrupt Loopback Data Integrity Drop Rate Speed Combinations Multiple Transfer Type Multiple Endpoints StallTimeoutNakStallTimeoutNak
October 10, TT Testing – Compliance Devices w Basic Functionality – Full Speed – Low Speed – All Transfer Types – Multiple Endpoints w Protocol Level Control – Produce All Possible Device Responses – Allows Testing of Corner Cases, Buffer Affinity, etc. w Defined Device Interface – Allow Any Capable PDK/Device to Be Used
October 10, Functional Testing Example – Bulk w Set Device In Loopback Mode w Send Out Data Transfer w Read In Data Transfer w Compare Data w Repeat For Multiple Iterations w Repeat for Different Data Sizes – 8,16,32,64 w Repeat for Multiple EndPoints – Test all TT Buffer Space HostHostDeviceDevice TTTT SS CS SSCS Data Ack Data In
October 10, Protocol Testing Example – Bulk Out w Device Actions – Device Naks – Device Stalls – Device Transmits Corrupt Data – Device Doesn’t Respond u First TT Attempt u 3 or more Attempts w Tradeoffs – Device Complexity vs. Thorough Coverage TTTT DeviceDevice HostHost SSOutData0Ack Out Data0 NakAck Or Stall NakAckStallNothing Bad CRC
October 10, Implementation Testing Example – Buffer Affinity Rules w Buffer Affinity Rules – Control Endpoints - One Transfer Buffered At a Time – Bulk Enpoints - Same Rule - But Direction Matters – Same Buffer Reused For Transaction For Same Endpoint w Why Do Rules Matter? – Drivers Use Only One TD List Per Endpoint – Error Cases Can Produce Similar Behavior w How Do You Determine If Rules Are Correct? – Can’t Control SS and CS Separately (Handled in Hardware) – No Specific SW Level Behavior Difference
October 10, Buffer Affinity – Correct Operation TTTT DeviceDevice HostHost SSSSOutOutData0Data0AckAck OutData0 SSSSOutOutData0Data0AckAck Ack CSCSAckAck Buf A Buf B Buf A Buf B OldOldPendingReady/Ack SS Ack 3 Old/Ack 3 CS OneTransactionBuffered 2
October 10, Buffer Affinity – Incorrect Operation TTTT DeviceDevice HostHost SSSSOutOutData0Data0AckAck Out Data0 SSOutData0Ack Ack CS Ack or Nak Buf A Buf B Buf A Buf B Old OldPendingReady/Ack SS Ack 3 Old/Ack 3 CS TwoTransactionsBuffered Out Data0 Nak 45 PendingReady/Nak SS 25 Ack Old/Nak 3 CS Could See Either - Even For Subsequent CS
October 10, Buffer Affinity – Testing The Behavior w Simulating An Ack Smash (Two SS Same Transaction) – Need to Ensure Both SS Reach TT Before First CS – Example Solution Async Queue Head Bulk Out siTD Dummy TD w Difference In Behavior Is On Device Side – Tell Device To Count Transactions – 1 = Correct, 2 = Incorrect Poll On Status On Do Complete Reset To Do Start Correct Pointer
October 10, Microframe Scheduling Rules Y0Y0Y0Y0 Y1Y1Y1Y1 Y2Y2Y2Y2 Y3Y3Y3Y3 Y4Y4Y4Y4 Y5Y5Y5Y5 Y6Y6Y6Y6 Y7Y7Y7Y7 HS Start-Splits w All Allowed HS Start Split Arrivals w Abort Cases - Eof, X+4 w Free Cases - Eof (Except Y7), X+4
October 10, Hub Testing – Summary w Hub Testing Areas – HS Repeater Testing – Electrical Testing – Chapter 11 Command Additions (USBCheck) – Transaction Translator w Transaction Translator - Most Important Test Area – Functional Testing For all Transfers – Protocol Testing Through All Device Behaviors – Buffer Affinity – Microframe Scheduling Cases
October 10, Questions?