Cover image for USB Complete : The Developer's Guide.
USB Complete : The Developer's Guide.
Title:
USB Complete : The Developer's Guide.
Author:
Axelson, Jan.
ISBN:
9781931448093
Personal Author:
Edition:
4th ed.
Physical Description:
1 online resource (529 pages)
Series:
Complete Guides series
Contents:
Front Cover -- Copyright -- Contents -- Introduction -- 1 USB Basics -- Uses and Limits -- Benefits for Users -- Benefits for Developers -- What USB Can't Do -- USB versus Ethernet -- USB versus IEEE-1394 -- Evolution of an Interface -- USB 1.0 -- USB 1.1 -- USB 2.0 -- USB 3.0 -- USB On-The-Go -- Wireless USB -- Bus Components -- Topology -- Bus Speed Considerations -- Terminology -- Division of Labor -- The Host's Duties -- The Device's Duties -- Bus Speeds and Data Throughput -- Developing a Device -- Components -- Tools for Developing -- Steps in Developing a Project -- USB 3.0 Frequently Asked Questions -- Features -- Compatibility -- Cables -- Power -- 2 Inside USB Transfers -- Transfer Basics -- The Essentials -- Purposes for Communication -- Managing Data on the Bus -- Elements of a Transfer -- Endpoints: the Source and Sink of Data -- Transaction Types -- Pipes: Connecting Endpoints to the Host -- Types of Transfers -- Stream and Message Pipes -- Initiating a Transfer -- USB 2.0 Transactions -- Transaction Phases -- Packet Sequences -- Timing Constraints and Guarantees -- Split Transactions -- Ensuring Successful Transfers -- Status and Control -- Reporting the Status of Control Transfers -- Error Checking -- SuperSpeed Transactions -- Packet Types -- Transferring Data -- Link Management Packets -- 3 A Transfer Type for Every Purpose -- Control Transfers -- Availability -- Structure -- Data Size -- Speed -- Detecting and Handling Errors -- Device Responsibilities -- Bulk Transfers -- Availability -- Structure -- Data Size -- Speed -- Detecting and Handling Errors -- Device Responsibilities -- Interrupt Transfers -- Availability -- Structure -- Data Size -- Speed -- Detecting and Handling Errors -- Device Responsibilities -- Isochronous Transfers -- Availability -- Structure -- Data Size -- Speed -- Detecting and Handling Errors.

Device Responsibilities -- More about Time-critical Transfers -- Bus Bandwidth -- Device Capabilities -- Host Capabilities -- Host Latencies -- 4 Enumeration: How the Host Learns about Devices -- The Process -- Enumeration Steps -- Device Removal -- Tips for Successful Enumeration -- Descriptors -- Types -- Device -- Device_Qualifier -- Configuration -- Other_Speed_Configuration -- Interface Association -- Interface -- Endpoint -- SuperSpeed Endpoint Companion -- String -- Binary Object Store and Device Capability -- Other Standard Descriptors -- Microsoft OS Descriptors -- Updating Descriptors to USB 2.0 -- 5 Control Transfers: Structured Requests for Critical Data -- Elements of a Control Transfer -- Setup Stage -- Data Stage -- Status Stage -- Handling Errors -- Device Firmware -- Standard Requests -- Get Status -- Clear Feature -- Set Feature -- Set Address -- Get Descriptor -- Set Descriptor -- Get Configuration -- Set Configuration -- Get Interface -- Set Interface -- Synch Frame -- Set SEL -- Set Isochronous Delay -- Other Requests -- Class-Specific Requests -- Vendor-Defined Requests -- 6 Chip Choices -- Components of a USB Device -- Inside a USB 2.0 Controller -- Other Device Components -- Simplifying Device Development -- Device Requirements -- Chip Documentation -- Driver Choices -- Debugging Tools -- USB Microcontrollers -- Microchip PIC18F4550 -- Cypress EZ-USB -- ARM -- Controllers that Interface to CPUs -- ST-NXP Wireless ISP1582 -- PLX Technology NET2272 -- FTDI USB UART and USB FIFO -- 7 Device Classes -- Elements and Use -- Approved Specifications -- Elements of a Class Specification -- Defined Classes -- Audio -- Communications -- Content Security -- Device Firmware Upgrade -- Human Interface -- IrDA Bridge -- Mass Storage -- Personal Healthcare -- Printer -- Smart Card -- Still Image Capture -- Test and Measurement -- Video.

Implementing Non-standard Functions -- Choosing a Driver -- Using a Generic Driver -- Converting from RS-232 -- Converting from the Parallel Port -- PC-to-PC Communications -- 8 How the Host Communicates -- Device Drivers -- The Layered Driver Model -- User and Kernel Modes -- Inside the Layers -- Applications -- User-mode Client Drivers -- Kernel-mode Client Drivers -- Bus and Host-Controller Drivers -- Writing Drivers -- Kernel-mode Drivers -- User-mode Drivers -- Testing Tools -- Using GUIDs -- Device Setup GUIDs -- Device Interface GUIDs -- 9 Matching a Driver to a Device -- Using the Device Manager -- Viewing Devices -- Property Pages -- Device Information in the Registry -- The Hardware Key -- The Class Key -- The Driver Key -- The Service Key -- Inside INF Files -- Structure and Syntax -- Device-specific Values -- Using Device Identification Strings -- Finding a Match -- When to Provide an INF File -- Tools and Diagnostic Aids -- Tips for Using INF Files -- What the User Sees -- 10 Detecting Devices -- A Brief Guide to Calling API Functions -- Managed and Unmanaged Code -- Managing Data -- Finding Your Device -- Obtaining the Device Interface GUID -- Requesting a Pointer to a Device Information Set -- Identifying a Device Interface -- Requesting a Structure with the Device Path Name -- Extracting the Device Path Name -- Closing Communications -- Obtaining a Handle -- Requesting a Communications Handle -- Closing the Handle -- Detecting Attachment and Removal -- About Device Notifications -- Registering for Device Notifications -- Capturing Device Change Messages -- Reading Device Change Messages -- Retrieving the Device Path Name in the Message -- Stopping Device Notifications -- 11 Human Interface Devices: Using Control and Interrupt Transfers -- What is a HID? -- Hardware Requirements -- Firmware Requirements -- Descriptors.

The HID Interface -- HID Class Descriptor -- Report Descriptors -- HID-specific Requests -- Get Report -- Get Idle -- Get Protocol -- Set Report -- Set Idle -- Set Protocol -- Transferring Data -- Writing Firmware -- Tools -- 12 Human Interface Devices: Reports -- Report Structure -- Using the HID Descriptor Tool -- Control and Data Item Values -- Item Format -- The Main Item Type -- Input, Output, and Feature Items -- Collections -- The Global Item Type -- Identifying the Report -- Describing the Data's Use -- Converting Units -- Converting Raw Data -- Describing the Data's Size and Format -- Saving and Restoring Global Items -- The Local Item Type -- Physical Descriptors -- Padding -- 13 Human Interface Devices: Host Application -- HID API Functions -- Requesting Information about the HID -- Sending and Receiving Reports -- Providing and Using Report Data -- Managing HID Communications -- Identifying a Device -- Reading the Vendor ID and Product ID -- Getting a Pointer to Device Capabilities -- Getting the Device's Capabilities -- Getting the Capabilities of the Buttons and Values -- Sending and Receiving Reports -- Sending an Output Report to the Device -- Reading an Input Report from the Device -- Writing a Feature Report to the Device -- Reading a Feature Report from a Device -- Closing Communications -- 14 Using WinUSB for Vendor-Defined Functions -- Capabilities and Limits -- Device Requirements -- Host Requirements -- Device Firmware -- Assigning the WinUSB Driver -- Accessing the Device -- Obtaining a WinUSB Handle -- Requesting an Interface Descriptor -- Identifying the Endpoints -- Setting Pipe Policies -- Writing Data via Bulk and Interrupt Transfers -- Reading Data via Bulk and Interrupt Transfers -- Using Vendor-defined Control Transfers -- Closing Communications -- 15 All About Hubs -- USB 2.0 -- The Hub Repeater.

The Transaction Translator -- The Hub Controller -- Speed -- Maintaining Active Links -- USB 3.0 -- Bus Speeds -- Components -- Managing Traffic -- The Hub Class -- Hub Descriptors -- Hub Class Requests -- Port Indicators -- 16 Managing Power -- Power Options -- Voltages -- Using Bus Power -- Power Needs -- Informing the Host -- Battery Charging -- Hub Power -- Power Sources -- Over-current Protection -- Power Switching -- Saving Power -- USB 2.0 Link Power Management -- Suspend State -- Sleep State -- SuperSpeed Power Management -- Power Management under Windows -- 17 Testing and Debugging -- Tools -- Hardware Protocol Analyzers -- Software Protocol Analyzers -- Traffic Generators -- Testing -- Compliance -- Windows Logo -- 18 Packets on the Bus -- USB 2.0 -- Low Speed and Full Speed Bus States -- High Speed Bus States -- Data Encoding -- Staying Synchronized -- Timing Accuracy -- Packet Format -- Inter-Packet Delay -- Test Modes -- SuperSpeed -- Data Scrambling -- Encoding -- Link Layer -- Reset -- 19 The Electrical and Mechanical Interface -- USB 2.0 Transceivers -- Cable Segments -- Low- and Full-Speed Transceivers -- High-speed Transceivers -- Signal Voltages -- USB 2.0 Cables -- Conductors -- Connectors -- Detachable and Captive Cables -- Cable Length -- Bus Length -- Inter-Chip Connections -- USB 3.0 -- Transmitters and Receivers -- Cables -- Ensuring Signal Quality -- Sources of Noise -- Balanced Lines -- Twisted Pairs -- Shielding -- Edge Rates -- Isolated Interfaces -- Going Wireless -- Certified Wireless USB -- Cypress WirelessUSB -- Other Options -- 20 Hosts for Embedded Systems -- USB On-The-Go -- Capabilities and Limits -- The OTG Connector -- The A-Device and B-Device -- Requirements for an OTG Device -- The OTG Descriptor -- Feature Codes for HNP -- Other Host Options -- Requirements -- Device Ports -- Controller Chips.

Microcontrollers.
Abstract:
Now in its fourth edition, this developer's guide to the Universal Serial Bus (USB) interface covers all aspects of project development, such as hardware design, device firmware, and host application software. Topics include how to choose a device controller chip, cut development time by using USB classes, and write software to access devices that perform vendor-specific functions. Example codes are provided using Visual Basic .NET and Visual C# .NET for performing tasks such as detecting device arrival and removal and transferring vendor-defined data using the human interface device class. This newest edition has updated information on controller chips, USB classes, power use, and Microsoft's WinUSB driver.
Local Note:
Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2017. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries.
Electronic Access:
Click to View
Holds: Copies: