1 / 29

USB Tutorial

USB Tutorial. Objectives. Review USB functionalities Be able to read a USB trace Understand the enumeration process Highlight that class drivers are part of the USB success. Keyboard. Root Hub. Speaker. Printer. Disk. Few generalities on USB. Tiered start topology

Antony
Télécharger la présentation

USB Tutorial

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. USB Tutorial

  2. Objectives • Review USB functionalities • Be able to read a USB trace • Understand the enumeration process • Highlight that class drivers are part of the USB success

  3. Keyboard Root Hub Speaker Printer Disk Few generalities on USB • Tiered start topology • 2 types of peripherals: • HUB • Function • Up to 127 peripherals • A master/slave architecture • USB 2.0 spec supercedes USB 1.1 spec • USB 2.0 LS (  USB1.1 at 1.5Mbps) • USB 2.0 FS (  USB 1.1 at 12Mbps) • USB 2.0 HS (480 Mbps) • Power Management • Different device class: bus powered or self powered • Vbus > 4.35V. 100mA, (500mA after negociation), 500uA in suspend mode • Host disables power to ill-behaved peripherals Host HUB HUB

  4. The Transaction Protocol is Host Based • Host based token polling • Data from host-to-function and function-to-host • Host handles most of the protocol complexity • Peripheral design is simple and low-cost • Robustness • Handshake to acknowledge data transfer and flow control • Very low raw physical bit error rate (< 10 –10) • CRC protection plus hardware retry option • Data toggle Sequence bits • Bounded transfer characteristics • Data transfer bandwidth and latency prenegociated • Flow control for peripheral buffer management • No asynchronous message/interrupt from the peripheral

  5. Dok @: 3 Mouse @: 4 Keyboard Keyboard IP phone @: 6 @: 6 @: 5 IP phone @: 5 Audio Driver MSD Driver HUB Driver HID Driver USB Topology • A unique device address is assigned to each USB device • Physical tiered start network: Dok @: 3 HOST Hub @: 2 @: 1 Mouse @: 4 Root Hub USB cable • Logical network: Root Hub @: 1 A driver has no information on the topology of the physical network HOST Hub @: 2 Logical link • Each device sees all traffic generated by the host • A device does not see data sent by another peripheral

  6. USB transfer • A device has several endpoints • Each endpoint is assigned to a logical pipe with the host • Each pipe is characterized by: • Device address • Endpoint number • Transfer type • Transfer type: SOF @5EP0 @6EP1 @6EP2 A 1ms USB Frame • Control: configuration/command/status type communication • Bulk: large amounts of data at highly variable times • Isochronous: constant-rate, error tolerant transfers • Interrupt: send or receive data infrequently but with bounded service periods

  7. Disk On Key Device Address 3 Host Control Transfer Ep0 Bulk IN Transfer Ep1 Bulk OUT Transfer Ep2 Mouse Device Address 4 Control Transfer Ep0 Interrupt IN Transfer Ep3 IP Phone Device Address 5 Control Transfer Ep0 Iso IN Transfer Ep1 Iso OUT Transfer Ep2 Hub Device Address 2 Control Transfer Ep0 Interrupt IN Transfer Ep1 Logical Pipe USB pipes • Device address is affected by the host • Endpoint configuration depends on the device implementation • Time multiplexing of transfer is under host control

  8. Example of USB controller

  9. USB transactions • A transfer is composed of one or several transactions • Example of control transfer (several transactions) Setup Stage Data Stage Status Stage • Example of bulk transfer (one transaction)

  10. Token Data Transfer Handshake USB Transactions (1) • A transaction is made of 3 packets • Token: device address, endpoint number, transfer type • Data : data to be sent • Handshake: acknowledge • Example of bulk transaction:

  11. Token Data Transfer Handshake USB Transactions (2) • Example of bulk OUT transaction: Endpoint Address Device Address PID Host Token Data Device Handshake

  12. Control Bulk Iso Int Handshake pkt Token pkt Data pkt Summary • The host affects an address to the device • The device has several endpoints • To each endpoint corresponds a pipe and a type of transfer • Transfer is made of one or several transactions • Transactions are composed of 3 packets Transfer • Device • Device address Handles Offers • Pipe/Endpoint • Endpoint number • Endpoint type 2+ 1+ 1+ 1+ Transaction

  13. Control transfer The device is not ready… The device does not acknowledge the transaction The host retries… The device has Acknowledged the transaction

  14. @3 @6 @6 @6 @5 @2 @5 @5 SOF SOF SOF USB scheduling(1) • USB transfers occurs in a millisecond time-frame window • The host sends a Start Of Frame (SOF) Packet at the beginning of each frame • This is the host which starts a transfer with a logical peripheral • Transactions are time multiplexed in one or several frames • This is the host which do the transaction arbitration SOF Time A 1ms USB Frame • Host handles most of the protocol complexity • Peripheral design is simple and low-cost

  15. USB scheduling (2) • The bus allocation depends on the host controller • A constant interval width is allocated to isochronous and interrupt transfer • A minimum interval width is reserved for control transfer • The rest of interval is for bulk transfer Variable width Valible width Fixed width Controltransfers Iso + Interrupt transfer Bulk transfer • A host can refuse a new peripheral which requests large isochronous transfer size • Such peripheral offers several configurations

  16. Bandwidth • Theorically up to 1216 bytes can be transferred through a bulk endpoint in a frame • In practice ~950 bytes 1ms frame

  17. 3.3V 1.5 Kohms Device detection • The host (hub) downstream port integrates 2 pull-downs (15Kohms). The bus state is SE0 (DP = DM = 0V) • When a device is connected, the bus state is idle (DP = 3.3V DM = 0V). DP is forced by the device pull-up (1.5Kohms). • The hub/host detects the port status change and forces a bus reset to the new device (DP = 0V DM = 0V). • Then the host sends requests to the device through the default control endpoint (endpoint number 0). A newly connected device address is 0. HOST DP 15 Kohms DP DM DM 15 Kohms Device

  18. Host Hub Device Connect Cable Status Change Addressed Configured Attached Powered Default Query Change Port Enable Reset Device Get Device Descriptor via default Pipe and Address Assign a Unique Address Read all Configuration Information Configure and Assign Configuration Value Enumeration • Enumeration is the Process of Assigning Addresses and Setting Configurations

  19. Enumeration trace Default Address, default control endpoint Enter Address State Enter Configured State

  20. USB Device State After 3ms of bus inactivitythe device must enter Suspended state and drain less than 500uA

  21. Standard requests • A setup transaction includes an 8-byte formatted data packet • Standard requests are defined in Chapter 9 of the USB spec

  22. Host Controller regs Host software architecture Linux and WIN CE provide • OHCI/UHCI/EHCI HCD driver • USBD Driver • Main class drivers: Hub, HID, Mass storage, Printer, … HID MS HUB Etc… • Symbian and RTOS does not provide USB host stack driver • SW IPs providers are able to provide solutions for RTOS • Softconnex, Philog, … • Expensive: (65k$ for a mass storage solution) • It is still possible to build a mini host from our full host: • the SW is only able to drive some kinds of devices USB Protocol Driver API Host Controller Driver (HCD) OHCI-UHCI-EHCI

  23. Attach/DetachProcessing Endpoint FIFORegisters Device USB driver components USB Device driver API • Control Protocol • Standard Requests • Class Requests • Vendor Requests • Endpoint Data • Transfer ProtocolsBulk In/Out • Isochronous In/Out • Interrupt In/Out PowerManagement Status&Control ClockRegisters Pull-UpResistor USB ControllerRegisters

  24. Device descriptor • The USB Host stacks uses the descriptor retrieved from the device to find the corresponding driver. • Windows looks for a matching Vendor ID/Product ID in its .inf library • If not found, it will search for a matching class driver • If not found then it will request the user to insert a CD to install the corresponding driver Device Descriptor Configuration Descriptor Configuration Descriptor Interface Descriptor Interface Descriptor Interface Descriptor EndpointDescriptor EndpointDescriptor EndpointDescriptor EndpointDescriptor EndpointDescriptor EndpointDescriptor

  25. USB class drivers • Building on top of the USB specifications, there are Device Class Specifications from the Device Working Group • Matching device class requirements allow use of standard host class drivers provided by Windows or Linux • Each class driver specifies the endpoint configurations required • Existing class drivers: • Audio class (speakers, …) • HID (keyboard, mouse, …) • Mass Storage (disk on key) • Printer class • Smart Card CCID • Communication Data Class • …

  26. Objectives • Review USB functionalities • Be able to read a USB trace • Understand the enumeration process • Highlight that class drivers are part of the USB success

  27. What is happening? Transaction NACKed by the device

  28. What is the physical topology? How many device connected? Which device answers? Where is connected the bus analyser?

  29. Answer Bus Analyzer HUB New Device Upstream Port Downstream Ports Device Nb 3 Device Nb 2 USB Wire The bus analyzer logs all downstream packets from the host and only upstream packets from the new device

More Related