USB Device
Universal Serial Bus (USB) Devices are peripherals attached to a USB Host. Using the USB protocol, devices provide functionality to the end-user. Typical devices include products such as keyboards, mice, medical devices and thumb-drives.
Devices are implemented by adding both software and hardware to a peripheral's design.
Device Hardware
- Contains the circuitry to serialize and deserialize all communications with the Host.
- Notifies the Host of its presence and speed requirements
- Generates CRC when needed.
- Supplies the memory (or registers) for the endpoints
Device Software
- Responds to all Host communication requests
- During enumeration informs the Host regarding communication requirements of the Device.
- Provides communication APIs for the Device's application programmers.

