USB Libraries Help > USB Device Libraries > USB CDC Device Library > Using the Library > Abstract Control Model (ACM)
MPLAB Harmony USB Stack
Abstract Control Model (ACM)

One of the basic supported models for communication by CDC is POTS (Plain Old Telephone Service). The POTS model is for devices that communicate via ordinary phone lines and generic COM port devices. The USB CDC specification refers to this basic model as PSTN (Public Switched Telephone Network). 

Depending on the amount of data processing the device is responsible for POTS/PSTN is divided into several models. The processing of data can include modulation, demodulation, error correction and data compression. 

Of the supported PSTN models, this CDC Function Driver implements ACM. In the ACM the device handles modulation, demodulation and handles V.25ter (AT) commands. This model (ACM) also supports requests and notifications to get and set RS-232 status, control, and asynchronous port part parameters. Virtual COM port devices use ACM. 

The following sections describe the management requests and notifications supported by the CDC Function Driver ACM_layer.

Management Requests

The Host requests/sends some information in the form of management requests on the bidirectional Endpoint 0. The following table shows the CDC specification ACM sub class management requests and how these request are handled by the CDC Function Driver.

Request Code 
Required/Optional 
Comments 
SEND_ENCAPSULATED_COMMAND 
Required 
Implemented by the CDC Function Driver ACM_layer. This request is stalled. 
GET_ENCAPSULATED_RESPONSE 
Required 
Implemented by the CDC Function Driver ACM_layer. This request is stalled. 
SET_COMM_FEATURE 
Optional 
Not Implemented. 
GET_COMM_FEATURE 
Optional 
Not Implemented. 
CLEAR_COMM_FEATURE 
Optional 
Not Implemented. 
SET_LINE_CODING 
Optional 
Implemented by the CDC Function Driver ACM_layer. Requires application response. 
GET_LINE_CODING 
Optional 
Implemented by the CDC Function Driver ACM_layer. Requires application response. 
SET_CONTROL_LINE_STATE 
Optional 
Implemented by the CDC Function Driver ACM_layer. Requires application response. 
SEND_BREAK 
Optional 
Implemented by the CDC Function Driver ACM_layer. Requires application response.