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