Preview only show first 10 pages with watermark. For full document please download

Usb

   EMBED


Share

Transcript

USB 세미나 디에이큐시스템 2011. 11. 30 www.daqsystem.com [email protected] 1 http://www.daqsystem.com 목 차 USB 소개     USB 개요 USB장치의 구성 개발에 필요한 정보 응용 제품 USB 응용     USB 프로토콜 H/W 설명 Firmware Driver 구조 2 프로토콜 분석   USB 프로토콜 분석 질의 응답 http://www.daqsystem.com USB 소개 USB 개요        1981년 IBM PC 발표 (Open Architecture) i8086, ISA, Serial(RS232), Parallel(Centronics), IDE Limited Device 1995년 PCI, USB by Intel ISA -> EISA -> PCI->PCI-X (VESA, AGP, PCI-Express) PCMCIA->Card bus RS232,Parallel -> USB(Serial, Power, Speed, Device, PnP Hot-plug) 3 http://www.daqsystem.com 4 http://www.daqsystem.com USB 장치의 구성 5 http://www.daqsystem.com  Host - Over all management of USB bus - Enumeration - Device management  Cable Upstream B Downstream A 6 http://www.daqsystem.com  Device - Add functional capability to Host - Single upstream connection - Data terminal (create or consume)  Hub - A Device has more usb ports - Can connect more device through a usb port 7 http://www.daqsystem.com  Feature - Hot swap (do not require system re-booting) - Maximum 127 Device - High speed data rate(480Mbps, USB2.0 HS) 12Mbps(Full speed), 1.25Mbps(Low speed) - Bus-powered operation(Max 500mA per a Device) - 4-wire serial interface(+5V, GND, D+, D-) - Power management(Power-saving, sleep mode) 8 http://www.daqsystem.com 9 http://www.daqsystem.com 개발에 필요한 정보 • • • • • • • • Device Functionality Performance requirement (throughput) Host system(PC, Operating system, Driver) Power consumtion USB support chip (Microcontroller, stand alone) Chip manufacture (Cypress, Philips, NS, Atmel, TI, Samsung, Microchips, SMSC, Winbond, ST, Point chips etc.) Development S/W (OS, Driver, Firmware, Compiler) Protocol Monitoring 10 http://www.daqsystem.com  응용 제품 1 카메라 지문인식 허브 모뎀 신서사이저 튜너 저장장치 카메라 11 http://www.daqsystem.com  응용 제품 2 센서 GPIB 조이스틱 I/O expander 메모리리더 전화기 키보드 휴대폰 12 http://www.daqsystem.com USB 응용 USB 프로토콜  Topology 13 http://www.daqsystem.com  Physical 14 http://www.daqsystem.com  Signaling 15 http://www.daqsystem.com IDLE J state K State : D+(High), D-(Low) : D+(High), D-(Low) after SOP : D+(Low), D-(High) 16 http://www.daqsystem.com 17 http://www.daqsystem.com  Device Detect 18 http://www.daqsystem.com  Packet Type PID Value Packet Type Packet Category 0101 SOF Token 1101 SETUP Token 1001 IN Token 0001 OUT Token 0011 DATA0 Data 1011 DATA1 Data 0111 DATA2 Data 1111 MDATA Data 0110 NYET Handshake 0010 ACK Handshake 1010 NAK Handshake 1110 STALL Handshake 1100 ERR Special 1100 PRE Special 1000 SPLIT Special 0100 PING Special 19 http://www.daqsystem.com • • • • Token ( For Device setup) Data (Data Transmission) Handshake (data acknowledgement) Special - PRE (For low-speed connection) - SPILT/PING (For HS transaction) 20 http://www.daqsystem.com  Packet Type Type Important Attributes Maximum Size Example Interrupt Quality 1024/64/8 Mouse, Keyboard Bulk Quality 512/64 Printer, Scanner HDD Isochronous Time 1024/1024 Video, Audio Control Time and Quality 64/64/8 Device control 21 http://www.daqsystem.com  H/W 설명  USB I/O Device 22 http://www.daqsystem.com Anchor Chips(Cypress) Ez-usb chip 23 http://www.daqsystem.com 24 http://www.daqsystem.com  Firmware 25 http://www.daqsystem.com Configuration0 Interface0 USB Device End Point0 End Point1 Other Interfaces Interface1 Other Interfaces Configuration1 Interfaces Other Configurations 26 http://www.daqsystem.com 27 http://www.daqsystem.com  Driver USB Application USB Application HIDCLASS.SYS HIDUSB.SYS USBHUB.SYS User Mode Kernel Mode USBD.SYS UHCD.SYS OpenHCI.SYS PCI Enumerator Physical Interface(Cable) 28 http://www.daqsystem.com Host Root Hub HUB HUB Keyboard Speaker Printer Disk 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 29 http://www.daqsystem.com • 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 • • • 30 http://www.daqsystem.com • USB Topology • • A unique device address is assigned to each USB device Physical tiered start network: HOST Hub Root Hub Keyboard @: 3 Mouse @: 4 IP phone @: 5 Root Hub @: 1 Hub @: 2 Dok @: 3 Mouse @: 4 IP phone @: 5 Keyboard @: 6 @: 2 @: 1 USB cable Dok @: 6 Logical network: HOST A driver has no information on the topology of the physical network HUB Driver MSD Driver Audio Driver HID Driver Logical link Each device sees all traffic generated by the host A device does not see data sent by another peripheral 31 http://www.daqsystem.com • 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 SOF @5EP0 @6EP1 @6EP2 – Endpoint number – Transfer type A 1ms USB Frame Transfer type: Type Control Bulk Isochronous Interrupt Direction Bidir Unidir Unidir Unidir Packets per frame Several Several One One max M ax Packet Size 64 Bytes 64 Bytes 1024 Bytes 64 Bytes 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 32 http://www.daqsystem.com • USB pipes • Device address is affected by the host • Endpoint configuration depends on the device implementation • Time multiplexing of transfer is under host control Control Transfer Bulk IN Transfer Bulk OUT Transfer Control Transfer Interrupt IN Transfer Host Control Transfer Iso IN Transfer Iso OUT Transfer Control Transfer Interrupt IN Transfer 33 Device Address 3 Ep0 Disk On Key Ep1 Ep2 Device Address 4 Mouse Ep0 Ep3 Device Address 5 Ep0 IP Phone Ep1 Ep2 Device Address 2 Hub Ep0 Ep1 http://www.daqsystem.com • Example of USB controller 34 http://www.daqsystem.com • 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) 35 http://www.daqsystem.com • USB Transactions (1) • A transaction is made of 3 packets – Token: device address, endpoint number, transfer type – Data : data to be sent – Handshake: acknowledge Token Data Transfer Example of bulk transaction: • 36 Handshake http://www.daqsystem.com • USB Transactions (2) • Example of bulk OUT transaction: Token Data Transfer Handshake Endpoint Address Device Address PID Host Token Data Device Handshake 37 http://www.daqsystem.com • 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 Offers Handles Pipe/Endpoint Control 2+ •Endpoint number •Endpoint type Bulk Iso 1+ 1+ Int 1+ Transaction Token pkt Data pkt Handshake pkt 38 http://www.daqsystem.com • Control transfer The device is not ready… The device does not acknowledge the transaction The host retries… The device has Acknowledged the transaction 39 http://www.daqsystem.com • 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 @5 @3 @6 SOF @5 @6 @6 SOF @5 @2 SOF Time A 1ms USB Frame -Host handles most of the protocol complexity -Peripheral design is simple and low-cost 40 http://www.daqsystem.com • 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 Valible width Control transfers Variable width Fixed width Iso + Interrupt transfer Bulk transfer -A host can refuse a new peripheral which requests large isochronous transfer size -Such peripheral offers several configurations 41 http://www.daqsystem.com • Bandwidth • Theorically up to 1216 bytes can be transferred through a bulk endpoint in a frame • In practice ~950 bytes 1ms frame 42 http://www.daqsystem.com • 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. 3.3V HOST 1.5 Kohms DP 15 Kohms DP DM DM 15 Kohms Device 43 http://www.daqsystem.com • Enumeration • Enumeration is the Process of Assigning Addresses and Setting Configurations Host Hub Device Connect Cable Status Change Attached Query Change Powered Port Enable Reset Device Get Device Descriptor via default Pipe and Address Default Assign a Unique Address Read all Configuration Information Addressed Configure and Assign Configuration Value Configured 44 http://www.daqsystem.com • Enumeration trace Default Address, default control endpoint Enter Address State Enter Configured State 45 http://www.daqsystem.com • USB Device State After 3ms of bus inactivity the device must enter Suspended state and drain less than 500uA 46 http://www.daqsystem.com • Standard requests • A setup transaction includes an 8-byte formatted data packet n Standard requests are defined in Chapter 9 of the USB spec 47 http://www.daqsystem.com • Device USB driver components USB Device driver API Power Management Attach/ Detach Processing Clock Registers Pull-Up Resistor Status & Control Control Protocol Endpoint Data •Standard Requests •Class Requests •Vendor Requests •Transfer Protocols Bulk In/Out •Isochronous In/Out •Interrupt In/Out USB Controller Registers 48 Endpoint FIFO Registers http://www.daqsystem.com • 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 Interface Descriptor Endpoint Descriptor Endpoint Descriptor Configuration Descriptor Interface Descriptor Interface Descriptor Endpoint Descriptor Endpoint Descriptor 49 Endpoint Descriptor Endpoint Descriptor http://www.daqsystem.com • 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 – … • • • 50 http://www.daqsystem.com Thanks! 51 http://www.daqsystem.com