转发“USB Complete 4th Edition”,USB学习必备
内容还郎阔了最新的USB3.0,确实不错~!
Contents
Benefits for Users . . . . . . . . . . . . 2
Benefits for Developers . . . . . . . . 5
What USB Can’t Do . . . . . . . . . 7
USB versus Ethernet . . . . . . . . . 10
USB versus IEEE-1394. . . . . . . 11
USB 1.0 . . . . . . . . . . . . . . . . . . 11
USB 1.1 . . . . . . . . . . . . . . . . . . 12
USB 2.0 . . . . . . . . . . . . . . . . . . 12
USB 3.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
USB On-The-Go . . . . . . . . . . . . . . . . . . . . 14
Wireless USB . . . . . . . . . . . . . . . . . . . . . . . 14
Topology . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Bus Speed Considerations . . . . . . . . . . . . . 16
Terminology . . . . . . . . . . . . . . . . . . . . . . . 18
The Host’s Duties . . . . . . . . . . . . . . . . . . . 20
The Device’s Duties. . . . . . . . . . . . . . . . . . 22
Bus Speeds and Data Throughput . . . . . . . 24
Components . . . . . . . . . . . . . . . . . . . . . . . 25
Tools for Developing. . . . . . . . . . . . . . . . . 25
Steps in Developing a Project . . . . . . . . . . 25
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Compatibility . . . . . . . . . . . . . . . . . . . . . . 28
Cables . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Power . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
The Essentials . . . . . . . . . . . . . . . . . . . . . . 31
Purposes for Communication . . . . . . . . . . 32
Managing Data on the Bus . . . . . . . . . . . . 33
Endpoints: the Source and Sink of Data . . 34
Transaction Types . . . . . . . . . . . . . . . . . . . 35
Pipes: Connecting Endpoints to the Host . 36
Types of Transfers . . . . . . . . . . . . . . . . . . . 36
Stream and Message Pipes . . . . . . . . . . . . . 38
Initiating a Transfer. . . . . . . . . . . . . . . . . . 39
Transaction Phases . . . . . . . . . . . . . . . . . . 41
Packet Sequences . . . . . . . . . . . . . . . . . . . . 44
Timing Constraints and Guarantees . . . . . 45
Split Transactions . . . . . . . . . . . . . . . . . 46
Status and Control . . . . . . . . . . . . . . . . . . . 46
Reporting the Status of Control Transfers. . 49
Error Checking . . . . . . . . . . . . . . . . 50
Packet Types. . . . . . . . .. . . . . . . . . . 53
Transferring Data . . . . . .. . . . . . . . . 54
Link Management Packets . . . . . . . 59
Availability . . . . . . . . . . . . . . . . . . . 61
Structure. . . . . . . . . . . . . . . . . . . . . 62
Data Size . . . . . . . . . . . . . . . . . . . . 68
Speed . . . . . . . . . . . .. . . . . . . . . . . . 68
Detecting and Handling Errors . . . . 69
Device Responsibilities . . .. . . . . . . . 70
Availability . . . . . . . . . . . . . . . . . . . 71
Structure. . . . . . . . . . . . . . . . . . . . . 71
Data Size . . . . . . . . . . . . . . . . . . . . 74
Speed . . . . . . . . . . . .. . . . . . . . . . . . 74
Detecting and Handling Errors. . . . . 75
Device Responsibilities . . . . .. . . . . . . 75
Availability . . . . . . . . . . . . . . . . . . . . 76
Structure. . . . . . . . . . . . . . . . . . . . . . 76
Data Size . . . . . . . . . . . . . . . . . . . . . 77
Speed . . . . . . . . . . . . . .. . . . . . . . . . . 78
Detecting and Handling Errors. . . . . 79
Device Responsibilities . . . . .. . . . . . . 80
Availability . . . . . . . . . . . . . . . . . . . . 80
Structure. . . . . . . . . . . . . . . . . . . . . . 80
Data Size . . . . . . . . . . . . . . . . . . . . . 83
Speed . . . . . . . . . . . . . .. . . . . . . . . . . 84
Detecting and Handling Errors. . . . . 85
Device Responsibilities . . . . .. . 85
Bus Bandwidth . . . . . . . . . . . . . . . . 86
Device Capabilities . . . . . . . . . . . . . 86
Host Capabilities . . . . . . . .. . . . . . . . 87
Host Latencies . . . . . . . . . . . . . . . . . 88
Enumeration Steps . . . . . . . . . . . . . 90
Device Removal. . . . . . . . . .. . . . . . . 96
Tips for Successful Enumeration .. . . 96
Types. . . . . . . . . . . . . . . . . . . . . . . . 97
Device . . . . . . . . . . . . . . . . . . . . . . . 99
Device_Qualifier . . . . . . . . . . . . . . 102
Configuration . . . . . . . . . .. . . . . . . 103
Other_Speed_Configuration . . . .. . 105
Interface Association . . . . . .. . . . . . 105
Interface . . . . . . . . . . . . . . . . . . . . 107
Endpoint . . . . . . . . . . . . . . . . . . . . 110
SuperSpeed Endpoint Companion . . . . . . . . 112
String . . . . . . . . . . . . . . . . . . . 113
Binary Object Store and Device Capability . . 114
Other Standard Descriptors. . . . . . . . . . . . . . 115
Microsoft OS Descriptors . . . . . . . . . . . . . . . 116
Updating Descriptors to USB 2.0 . . . . . . . . . 116
Setup Stage . . . . . . . . . . . . . 118
Data Stage . . . . . . . . . . . . . . 119
Status Stage . . . . . . . . . . . . . 121
Handling Errors. . . . . . . . . . 122
Device Firmware . . . . . . . .123
Get Status . . . . . . . . . . . . . . . 126
Clear Feature . . . . . . . . . . . . 127
Set Feature . . . . . . . . . . . . . . 128
Set Address . . . . . . . . . . . . . . 129
Get Descriptor . . . . . . . . . . . 130
Set Descriptor. . . . . . . . . . . . 131
Get Configuration . . . . . . . . 132
Set Configuration . . . . . . . . . 132
Get Interface. . . . . . . . . . . . . 133
Set Interface . . . . . . . . . . . . . . . 133
Synch Frame. . . . . . . . . . . . . . . 134
Set SEL. . . . . . . . . . . . . . . . . . . 135
Set Isochronous Delay . . . . . . . 135
Class-Specific Requests . . . . . . . 136
Vendor-Defined Requests. . . . . 136
Inside a USB 2.0 Controller . . . 138
Other Device Components. . . . 139
Device Requirements . . . . . . . . 142
Chip Documentation . . . . . . . . 143
Driver Choices . . . . . . . . . . . . . 144
Debugging Tools . . . . . . . . . . . 144
Microchip PIC18F4550 . . . . . . 148
Cypress EZ-USB. . . . . . . . . . . . 152
ARM . . . . . . . . . . . . . . . . . . . . 156
ST-NXP Wireless ISP1582. . . . 157
PLX Technology NET2272 . . . . . . . . . 157
FTDI USB UART and USB FIFO. . . . 159
Approved Specifications. . 164
Audio . . . . . . . . . .. . . . . 165
Communications . . . . . .. 169
Content Security . . . . .. . 176
Device Firmware Upgrade . 7
Human Interface . . . . . . 180
IrDA Bridge. . . . . . . .. . . 183
Mass Storage . . . . . . .. . . 184
Personal Healthcare . . . . 189
Printer . . . . . . . . . . . . . . 190
Smart Card . . . . . . . . . . 192
Still Image Capture . . . . 194
Test and Measurement . . . . . . 197
Video. . . . . . . . . . . . . . . . . . . . 198
Choosing a Driver . . . . . . . . . . 203
Using a Generic Driver . . . . . . 203
Converting from RS-232 . . . . . 204
Converting from the Parallel Port . 204
PC-to-PC Communications . . . . . 205
The Layered Driver Model . . . . . . 209
User and Kernel Modes . . . . . . . . . 210
Applications. . . . . . . . . . . . . . . . . . 212
User-mode Client Drivers . . . . . . . 213
Kernel-mode Client Drivers. . . . . . 213
Bus and Host-Controller Drivers. . . . . .. 215
Kernel-mode Drivers . . . . . 218
User-mode Drivers . . . . . . . 218
Testing Tools . . . . . . . . . . . 218
Device Setup GUIDs . . . . . 219
Device Interface GUIDs . . . 220
Viewing Devices . . . . . . . . . 224
Property Pages . . . . . . . . . . 225
The Hardware Key . . . . . . . 227
The Class Key. . . . . . . . . . . 229
The Driver Key. . . . . . . . . . 231
The Service Key . . . . . . . . . 231
Structure and Syntax. . . . . . 232
Device-specific Values. . . . . 235
Finding a Match . . . . . . . . . 238
When to Provide an INF File . . . . . . . . . . . . 239
Tips for Using INF Files. . . . . . . . . . . . . . . . 240
What the User Sees. . . . . . . . . . . . . . . .. . . . . . . . . . 241
Managed and Unmanaged Code. . . . . . . . . . . .. . . . 244
Managing Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
Obtaining the Device Interface GUID . . . . . . .. . . . 252
Requesting a Pointer to a Device Information Set.. . 254
Identifying a Device Interface . . . . . . . . . . . . . . . . . 255
Requesting a Structure with the Device Path Name 258
Extracting the Device Path Name . . . . . . . . .. . . . . . 261
Closing Communications . . . . . . . . . . . . . . . . . . . . 261
Requesting a Communications Handle . . . . . . . . . 262
Closing the Handle . . . . . . . . . . . . . . . 264
About Device Notifications . . . . . . . . . . . . . . . . . . 265
Registering for Device Notifications . . . . . .. . . . . . 265
Capturing Device Change Messages . . . . . . . .. . . . 269
Reading Device Change Messages . . . . . . . . . . . . . 270
Retrieving the Device Path Name in the Message .. 271
Stopping Device Notifications. . . . . . . . . . . . . . . . 275
The HID Interface . . . . . .. 285
HID Class Descriptor . . . . . 286
Report Descriptors. . . . . . . 286
Get Report . . . . . . . . . . . . 290
Get Idle . . . . . . . . . . .. . . . . 290
Get Protocol . . . . . . . . . . . 291
Set Report . . . . . . . . . .. . . . 291
Set Idle . . . . . . . . . . . . . . . 292
Set Protocol . . . . . . . . .. . . . 292
Writing Firmware . . . . . . .. . . . . . . . . 293
Tools . . . . . . . . . . . . . . . . 293
Using the HID Descriptor Tool . . . . . 296
Control and Data Item Values. . . . . . 296
Item Format . . . . . . . . . . . . . . . . 296
Input, Output, and Feature Items. . . . . . 298
Collections . . . . . . . . . . . . . . . . . . . . . . . 302
Identifying the Report . . . . . . . . . . . . . . 303
Describing the Data’s Use. . . . . . . . . . . . 304
Converting Units . . . . . . . . . . . . . . . . . . 306
Converting Raw Data . . . . . . . . . . . . . . . 307
Describing the Data’s Size and Format . . 311
Saving and Restoring Global Items . . . . . 311
Physical Descriptors . . . . . . . . . . . 314
Padding . . . . . . . . . . . . . . . . . 314
Requesting Information about the HID . 317
Sending and Receiving Reports. . . . . . . . 317
Providing and Using Report Data. . . . . . 318
Managing HID Communications. . . . . . 319
Reading the Vendor ID and Product ID. 321
Getting a Pointer to Device Capabilities . . 323
Getting the Device’s Capabilities . . . . . . . 324
Getting the Capabilities of the Buttons and Values 327
Sending an Output Report to the Device . . . . . .. . 328
Reading an Input Report from the Device . . . . .. . 330
Writing a Feature Report to the Device . . . . . . . . 339
Reading a Feature Report from a Device. . . . . . . . 341
Closing Communications . . . . . . . . . .
Device Requirements. . . . . . . . . . . . . 345
Host Requirements . . . . . . . . . . . . . . 346
Device Firmware . . . . . . . . . . . . . . . . 346
Assigning the WinUSB Driver. . . . . . 349
Obtaining a WinUSB Handle . . . . . . 350
Requesting an Interface Descriptor . . 352
Identifying the Endpoints . . . . . . . . . 354
Setting Pipe Policies. . . . . . . . . . . . . . 359
Writing Data via Bulk and Interrupt Transfers . .. 364
Reading Data via Bulk and Interrupt Transfers . . 366
Using Vendor-defined Control Transfers. . . . . . . 368
Closing Communications . . . . . . . 371
The Hub Repeater. . . . . . . . . . . . . 376
The Transaction Translator . .. . . . . 377
The Hub Controller . . . . . . . . . . . 383
Speed. . . . . . . . . . . . .. . . . . . 383
Maintaining Active Links . . . . . . . 385
Bus Speeds. . . . . . . . . . . . . . . . . . . 386
Components . . . . . . . . . .. . . . . . . . 386
Managing Traffic. . . . . . . . . . . . . . 387
Hub Descriptors . . . . . . . . . . . . . . 388
Hub Class Requests . . . . . .. . . . . . . 388
Port Indicators. . . . . . . .. . . . . . . 388
Voltages . . . . . . . . . . . . . . . . . . . . . 390
Using Bus Power . . . . . . .. . . . . . . . 390
Power Needs. . . . . . . . . .. . . . . . . . . 392
Informing the Host. . . . . . . . . . . . . 393
Battery Charging . . . . . . . . . . . . . . 393
Power Sources. . . . . . . . .. . . . . . . . . 396
Over-current Protection . . . . . . . . . 397
Power Switching . . . . . . . . . . . . . . . 399
USB 2.0 Link Power Management . 399
Suspend State . . . . . . . . . . . . . . . . . 400
Sleep State . . . . . . . . .. . . . . . . . . . . 401
SuperSpeed Power Management. .. . 402
Power Management under Windows 407
Hardware Protocol Analyzers . . . . . . . 410
Software Protocol Analyzers . . . . . . . . 412
Traffic Generators. . . . . . . . . . . . . . . . 414
Compliance . . . . . . . . . . . . . . . . . . . . 415
Windows Logo . . . . . . . . . . . . . . . . . . 422
Low Speed and Full Speed Bus States . 425
High Speed Bus States . . . . . . . . . . . . 428
Data Encoding . . . . . . . . . . . . . . . . . . 430
Staying Synchronized . . . . . . . . . . . . . 431
Timing Accuracy . . . . . . . . . . . . . . . . 432
Packet Format. . . . . . . . . . . . . . . . . . . 433
Inter-Packet Delay . . . . . . . . . . . . . . . 434
Test Modes. . . . . . . . . . . . . . 435
Data Scrambling . . . . . . . . . . . . . . . . 436
Encoding . . . . . . . . . . . . . . . . . . . . . . 436
Link Layer . . . . . . . . . . . . . . . . . . . . . 437
Reset . . . . . . . . . . . . . . . . . . . . . . . . . 438
Cable Segments . . . . . . . . . . . . . . . . . 440
Low- and Full-Speed Transceivers . . . 441
High-speed Transceivers . . . . . . . . . . 444
Signal Voltages . . . . . . . . . . . . . . . . . 448
Conductors . . . . . . . . . . . . . . . . . . . . 450
Connectors . . . . . . . . . . . . . . . . . . . . 451
Detachable and Captive Cables . . . . . 453
Cable Length . . . . . . . . . . . . . . . . . . . 454
Bus Length . . . . . . . . . . . . . . . . . . . . 455
Inter-Chip Connections. . . . . . . . . . . 455\
Transmitters and Receivers . . . . . . . . 457
Cables . . . . . . . . . . . . . . . . . . . . . . . . 457
Sources of Noise . . . . . . . . . . . . . . . . 462
Balanced Lines. . . . . . . . . . . . . . . . . . 462
Twisted Pairs . . . . . . . . . . . . . . . . . . . 463
Shielding . . . . . . . . . . . . . . . . . . . . . . 464
Edge Rates. . . . . . . . . . . . . . . . . . . . . 464
Isolated Interfaces . . . . . . . . . . . . . . . 465
Certified Wireless USB . . . . . . . . . . . 466
Cypress WirelessUSB. . . . . . . . . . . . . 466
Other Options. . . . . . . . . . . . . . . . . . 468
Capabilities and Limits . . . . . . . . . . . . 472
The OTG Connector . . . . . . . . . . . . . 472
The A-Device and B-Device . . . . . . . . 472
Requirements for an OTG Device . . . 473
The OTG Descriptor . . . . . . . . . . . . . 479
Feature Codes for HNP . . . . . . . . . . . 480
Requirements . . . . . . . . . . . . . . . . . . . 481
Device Ports . . . . . . . . . . . . . . . . . . . . 481
Microcontrollers . . . . . . . . . . . . . . . . . 483
Interface Chips . . . . . . . . . . . . . . . . . . 484
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |