3.3 Endpoint Types and Their Roles in CDC

In the context of USB communication, endpoints play a critical role in defining how data is transferred between the device and the host.

Control Endpoints

Every USB device must have a control endpoint, known as Endpoint 0. The control endpoint is used for device management and setup in CDC devices. It handles requests sent by the host to retrieve device descriptors, set the device configuration, and control the device state. For instance, it can send commands to change the baud rate or configure other communication parameters.

Bulk Endpoints

Bulk endpoints are used for transferring large amounts of data with error detection and retransmission in case of failure but without guaranteed timing. In CDC, bulk endpoints are typically used for data transmission and reception. They are ideal for transferring data packets, such as network packets or serial data, not requiring real-time transfer but reliable delivery.

Interrupt Endpoints

Interrupt endpoints transfer small amounts of data the device needs to send to the host periodically or when a specific event occurs. In CDC devices, an interrupt endpoint might notify the host of changes in the device's status, such as a change in the connection state or to signal that data is available to be read.

Isochronous Endpoints

Isochronous endpoints are not typically used in CDC devices, as they are designed for data streams that require consistent timing, such as audio or video streams. These endpoints provide guaranteed timing but do not have error correction, which is not ideal for the types of communication usually handled by CDC devices.