USB Device
Universal Serial Bus (USB) devices are peripherals attached to a USB Host. Using the USB protocol, devices provide the 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 Cyclic Redundancy Check (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 Application Programming Interfaces (APIs) for the device's application programmers.