
These specification documents are available to view online. There are many classifications of USB devices, each with a protocol specification of how to use it. The others are commonly used for more immediate or command/response type communications. The bulk and isochronous transfers tend to be used for devices that transfer large amounts of data in bursts or streams such as digital cameras or printers. Endpoints are classified into four types depending upon the transfer type supported: control transfers, bulk transfers, interrupt transfers and isochronous transfers. There are stream pipes and message pipes. The operating system provides logical connections or pipes from the client to endpoints on the host device. Each device must support endpoint 0 which is reserved for system use such as device enumeration.

Each device can support multiple interfaces or endpoints. Two important properties on all USB devices are its Vendor ID (VID) and Product ID (PID), which can be used to uniquely identify the device type by the operating system’s plug and play system. A client can then query the device to work out its class and capabilities. We will also use the techniques presented here to control a device that was probably never intended to be used with a PC, but opens up lots of possibilities for fun PC game projects as well as illustrating the portability and simplicity of USB HID devices.Ī USB device provides information about itself in the form of descriptors.

NET software to run on a PC connected to a USB device. In this article, we look at creating the. NET library in order to interact with them. USB devices are now ubiquitous across the hardware space, but there are still no native support within the. This article was originally published in VSJ, which is now part of Developer Fusion.
