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
.