Vendor Class Overview
On the Windows side, the application communicates with the vendor device by interacting with the USBDev_API library. This library provided by Micrium offers an API to manage a device and its associated pipes, and to communicate with the device through control, bulk and interrupt endpoints. USBDev_API is a wrapper that allows the use of the WinUSB functions exposed by Winusb.dll.
On the device side, the Vendor class is composed of the following endpoints:
- A pair of control IN and OUT endpoints called the default endpoint.
- A pair of bulk IN and OUT endpoints.
- A pair of interrupt IN and OUT endpoints. This pair is optional.
Table - Vendor Class Endpoints Usage indicates the usage of the different endpoints:
Endpoint | Direction | Usage |
---|---|---|
Control IN Control OUT | Device-to-host Host-to-device | Standard requests for enumeration and vendor-specific requests. |
Bulk IN Bulk OUT | Device-to-host Host-to-device | Raw data communication. Data can be structured according to a proprietary protocol. |
Interrupt IN Interrupt OUT | Device-to-host Host-to-device | Raw data communication or notification. Data can be structured according to a proprietary protocol. |
The device application can use bulk and interrupt endpoints to send or receive data to or from the host. It can only use the default endpoint to decode vendor-specific requests sent by the host. The standard requests are managed internally by the Core layer of µC/USB-Device.