3.4.2.1 Abstraction Model

The CDC Host Client Driver interacts with the Host Layer to control the attached CDC device. The USB Host Layer attaches the CDC Host Client Driver to the CDC device when it meets the matching criteria specified in the USB Host TPL table. The CDC Host Client Driver abstracts the details of sending CDC class specific control transfer commands by providing easy to use non-blocking API to send these command. A command, when issued, is assigned a request handle. This request handle is returned in the event that is generated when the command has been processed, and can be used by the application to track the command. The class specific command functions are implemented in usb_host_cdc_acm.c.

While transferring data over the data interface, the CDC Host Client Driver abstracts details such as the bulk interface, endpoints and endpoint size. The CDC Host Client Driver internally (and without application intervention) validates the CDC class specific device descriptors and opens communication pipes. While transferring data, multiple read and write requests can be queued. Each such request gets assigned a transfer handle. The transfer handle for a transfer request is returned along with the completion event for that transfer request. The data transfer routines are implemented in usb_host_cdc.c.