USB Complete : The Developer's Guide.
Material type:
- text
- computer
- online resource
- 9781931448291
- 004.64
- TK7895.B87 -- .A945 2015eb
Front Cover -- Title Page -- Copyright -- Contents -- Introduction -- 1. USB Basics -- Uses and limits -- Benefits for users -- Benefits for developers -- Addressing USB's limits -- USB and Ethernet -- USB and Thunderbolt -- Evolution of an interface -- USB 1.0 -- USB 1.1 -- USB 2.0 -- USB 2.1 -- USB 3.0 -- USB 3.1 -- Embedded Host and On-The-Go -- Bus components -- Topology -- Bus speed considerations -- Terminology -- Division of labor -- Host responsibilities -- Device responsibilities -- Bus speeds and data throughput -- Developing a device -- Components -- Tools for developing -- Steps in developing a project -- USB 3.1 essentials -- Features -- Compatibility -- Cables -- Power -- 2. Inside USB Transfers -- Transfer basics -- 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 -- Transfer types -- 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 -- Enhanced 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 -- Events and requests -- Getting to the Configured state -- Device removal -- Tips for successful enumeration -- Descriptors -- Types -- Device -- Device_qualifier -- Configuration -- Other_speed_configuration -- Interface association -- Interface -- Endpoint -- SuperSpeed endpoint companion -- SuperSpeedPlus isochronous endpoint companion -- String -- Binary device object store (BOS) and device capability -- OTG descriptor -- Microsoft OS descriptors -- Updating descriptors to USB 2.0 -- Updating descriptors to USB 3.1 -- 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 -- Documentation and example code -- Host driver -- Development boards -- USB microcontrollers -- Microchip PIC18 -- Cypress EZ-USB -- ARM processors -- Controllers that interface to CPUs -- Maxim MAX3420E -- PLX Technology USB 3380 -- FTDI interface chips -- 7. Device Classes -- Purpose -- Approved specifications -- Elements of a class specification -- Defined classes -- Audio -- Audio/Video -- Billboard -- Communications -- Content security.
Device firmware upgrade -- Human interface -- IrDA bridge -- Mass storage -- Personal healthcare -- Printer -- Smart card -- Still image capture -- Test and measurement -- Video -- Classes defined by other specifications -- Implementing non-standard functions -- Choosing a driver -- Using a generic driver -- Converting from RS-232 -- Converting from the parallel port -- Connecting two PCs -- 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 -- Low-level host drivers -- USB 3.0 drivers -- USB 2.0 drivers -- Writing drivers -- Kernel mode -- User mode -- Testing tools -- Using GUIDs -- Device setup GUIDs -- Device interface GUIDs -- 9. Matching a Driver to a Device -- Using Device Manager -- Viewing devices -- Property pages -- Device information in the registry -- The hardware key -- The class key -- The driver key -- The services key -- Using INF files -- Driver signing requirements -- File structure -- Inside an INF file -- 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 a 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 device attachment and removal -- Using WMI -- Adding a handler for newly arrived devices -- Detecting the target device -- Adding a handler for removed devices.
11. Human Interface Devices: Capabilities -- 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 -- 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 -- HIDClass support routines -- 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 capabilities of buttons and values -- Sending and receiving reports -- Sending Output reports with interrupt transfers -- Reading Input reports with interrupt transfers -- Writing Feature reports -- Writing Output reports with control transfers -- Reading Feature reports -- Reading Input reports with control transfers -- Closing communications -- 14. Using WinUSB for Vendor-defined Functions -- Capabilities and limits -- Device requirements -- Host requirements -- Driver requirements -- Device firmware -- Accessing the device -- Creating a SafeWinUsbHandle -- Obtaining a WinUSB handle -- Requesting an interface descriptor -- Identifying the endpoints -- Setting pipe policies -- Writing bulk and interrupt data.
Reading bulk and interrupt data -- Using vendor-defined control transfers -- Selecting an alternate interface -- Writing data: isochronous transfers -- Reading data: isochronous transfers -- Closing communications -- 15. Using WinUSB's System INF File -- Microsoft OS 1.0 descriptors -- Microsoft OS string descriptor -- Extended compat ID OS feature descriptor -- Extended properties OS feature descriptor -- Enumeration -- Microsoft OS 2.0 descriptors -- Microsoft OS 2.0 platform capability descriptor -- Microsoft OS 2.0 descriptor set -- Enumeration -- 16. Using Hubs to Extend and Expand the Bus -- USB 2.0 -- The hub repeater -- The transaction translator -- The hub controller -- Speed -- Maintaining active links -- USB 3.1 -- Bus speeds -- SuperSpeed -- SuperSpeedPlus -- Managing traffic -- The hub class -- Hub descriptors -- Hub class requests -- 17. Managing Power -- Power options -- Using bus current -- Bus voltage -- Bus-powered devices -- Hub power -- Power sources -- Over-current protection -- Power switching -- Conserving power -- USB 2.0 Link Power Management -- Suspend -- Sleep -- Enhanced SuperSpeed power management -- Advanced power delivery capabilities -- Requirements -- Negotiating power -- Role swapping -- Vendor-defined messages -- Power management under Windows -- Computer power states -- Utilities -- Battery charging -- Charger types -- Charger detection -- Charging dead or weak batteries -- 18. Testing and Debugging -- Tools -- Hardware protocol analyzers -- Software protocol analyzers -- Traffic generators -- Compliance testing -- Checklists -- USB Command Verifier software -- Device Framework tests -- Interoperability tests -- Current measurement -- Electrical tests -- Certified USB Logo -- Windows hardware certification -- Windows hardware certification -- Driver signatures -- Test-signing a driver.
Microsoft USB Test Tool (MUTT).
Now in its fifth edition, bridges the gap between the technical specifications and the real world of designing and programming devices that connect over the Universal Serial Bus (USB). Readers will learn how to select the appropriate USB speed, device class, and hardware for a device; communicate with devices using Visual C# and Visual Basic; use standard host drivers to access devices, including devices that perform vendor-defined tasks; save power with USB's built-in power-conserving protocols; and create robust designs using testing and debugging tools. This fully revised edition also includes instruction on how to increase bus speed with SuperSpeed and SuperSpeedPlus, implement wireless communications, and develop for USB On-The-Go and embedded hosts.
Description based on publisher supplied metadata and other sources.
Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2024. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries.
There are no comments on this title.