USB Communication Device Class (CDC) protocol definitions.
Copyright (c) 2009-2018 Microchip Technology Inc. and its subsidiaries.
#include "compiler.h"
Data Structures | |
struct | usb_cdc_acm_desc_t |
CDC ACM Functional Descriptor. More... | |
struct | usb_cdc_call_mgmt_desc_t |
CDC Call Management Functional Descriptor. More... | |
struct | usb_cdc_control_signal_t |
Control signal structure. More... | |
struct | usb_cdc_hdr_desc_t |
CDC Header Functional Descriptor. More... | |
struct | usb_cdc_line_coding_t |
Line Coding structure. More... | |
struct | usb_cdc_notify_msg_t |
struct | usb_cdc_notify_serial_state_t |
Hardware handshake support (cdc spec 1.1 chapter 6.3.5) More... | |
struct | usb_cdc_union_desc_t |
CDC Union Functional Descriptor. More... | |
Macros | |
Possible values of class | |
#define | CDC_CLASS_DEVICE 0x02 |
USB Communication Device Class. More... | |
#define | CDC_CLASS_COMM 0x02 |
CDC Communication Class Interface. More... | |
#define | CDC_CLASS_DATA 0x0A |
CDC Data Class Interface. More... | |
USB CDC Subclass IDs | |
#define | CDC_SUBCLASS_DLCM 0x01 |
Direct Line Control Model. More... | |
#define | CDC_SUBCLASS_ACM 0x02 |
Abstract Control Model. More... | |
#define | CDC_SUBCLASS_TCM 0x03 |
Telephone Control Model. More... | |
#define | CDC_SUBCLASS_MCCM 0x04 |
Multi-Channel Control Model. More... | |
#define | CDC_SUBCLASS_CCM 0x05 |
CAPI Control Model. More... | |
#define | CDC_SUBCLASS_ETH 0x06 |
Ethernet Networking Control Model. More... | |
#define | CDC_SUBCLASS_ATM 0x07 |
ATM Networking Control Model. More... | |
USB CDC Communication Interface Protocol IDs | |
#define | CDC_PROTOCOL_V25TER 0x01 |
Common AT commands. More... | |
USB CDC Data Interface Protocol IDs | |
#define | CDC_PROTOCOL_I430 0x30 |
ISDN BRI. More... | |
#define | CDC_PROTOCOL_HDLC 0x31 |
HDLC. More... | |
#define | CDC_PROTOCOL_TRANS 0x32 |
Transparent. More... | |
#define | CDC_PROTOCOL_Q921M 0x50 |
Q.921 management protocol. More... | |
#define | CDC_PROTOCOL_Q921 0x51 |
Q.931 [sic] Data link protocol. More... | |
#define | CDC_PROTOCOL_Q921TM 0x52 |
Q.921 TEI-multiplexor. More... | |
#define | CDC_PROTOCOL_V42BIS 0x90 |
Data compression procedures. More... | |
#define | CDC_PROTOCOL_Q931 0x91 |
Euro-ISDN protocol control. More... | |
#define | CDC_PROTOCOL_V120 0x92 |
V.24 rate adaption to ISDN. More... | |
#define | CDC_PROTOCOL_CAPI20 0x93 |
CAPI Commands. More... | |
#define | CDC_PROTOCOL_HOST 0xFD |
Host based driver. More... | |
#define | CDC_PROTOCOL_PUFD 0xFE |
Describes the Protocol Unit Functional Descriptors [sic] on Communication Class Interface. More... | |
USB CDC Functional Descriptor Types | |
#define | CDC_CS_INTERFACE 0x24 |
Interface Functional Descriptor. More... | |
#define | CDC_CS_ENDPOINT 0x25 |
Endpoint Functional Descriptor. More... | |
USB CDC Functional Descriptor Subtypes | |
#define | CDC_SCS_HEADER 0x00 |
Header Functional Descriptor. More... | |
#define | CDC_SCS_CALL_MGMT 0x01 |
Call Management. More... | |
#define | CDC_SCS_ACM 0x02 |
Abstract Control Management. More... | |
#define | CDC_SCS_UNION 0x06 |
Union Functional Descriptor. More... | |
USB CDC Request IDs | |
#define | USB_REQ_CDC_SEND_ENCAPSULATED_COMMAND 0x00 |
#define | USB_REQ_CDC_GET_ENCAPSULATED_RESPONSE 0x01 |
#define | USB_REQ_CDC_SET_COMM_FEATURE 0x02 |
#define | USB_REQ_CDC_GET_COMM_FEATURE 0x03 |
#define | USB_REQ_CDC_CLEAR_COMM_FEATURE 0x04 |
#define | USB_REQ_CDC_SET_AUX_LINE_STATE 0x10 |
#define | USB_REQ_CDC_SET_HOOK_STATE 0x11 |
#define | USB_REQ_CDC_PULSE_SETUP 0x12 |
#define | USB_REQ_CDC_SEND_PULSE 0x13 |
#define | USB_REQ_CDC_SET_PULSE_TIME 0x14 |
#define | USB_REQ_CDC_RING_AUX_JACK 0x15 |
#define | USB_REQ_CDC_SET_LINE_CODING 0x20 |
#define | USB_REQ_CDC_GET_LINE_CODING 0x21 |
#define | USB_REQ_CDC_SET_CONTROL_LINE_STATE 0x22 |
#define | USB_REQ_CDC_SEND_BREAK 0x23 |
#define | USB_REQ_CDC_SET_RINGER_PARMS 0x30 |
#define | USB_REQ_CDC_GET_RINGER_PARMS 0x31 |
#define | USB_REQ_CDC_SET_OPERATION_PARMS 0x32 |
#define | USB_REQ_CDC_GET_OPERATION_PARMS 0x33 |
#define | USB_REQ_CDC_SET_LINE_PARMS 0x34 |
#define | USB_REQ_CDC_GET_LINE_PARMS 0x35 |
#define | USB_REQ_CDC_DIAL_DIGITS 0x36 |
#define | USB_REQ_CDC_SET_UNIT_PARAMETER 0x37 |
#define | USB_REQ_CDC_GET_UNIT_PARAMETER 0x38 |
#define | USB_REQ_CDC_CLEAR_UNIT_PARAMETER 0x39 |
#define | USB_REQ_CDC_GET_PROFILE 0x3A |
#define | USB_REQ_CDC_SET_ETHERNET_MULTICAST_FILTERS 0x40 |
#define | USB_REQ_CDC_SET_ETHERNET_POWER_MANAGEMENT_PATTERNFILTER 0x41 |
#define | USB_REQ_CDC_GET_ETHERNET_POWER_MANAGEMENT_PATTERNFILTER 0x42 |
#define | USB_REQ_CDC_SET_ETHERNET_PACKET_FILTER 0x43 |
#define | USB_REQ_CDC_GET_ETHERNET_STATISTIC 0x44 |
#define | USB_REQ_CDC_SET_ATM_DATA_FORMAT 0x50 |
#define | USB_REQ_CDC_GET_ATM_DEVICE_STATISTICS 0x51 |
#define | USB_REQ_CDC_SET_ATM_DEFAULT_VC 0x52 |
#define | USB_REQ_CDC_GET_ATM_VC_STATISTICS 0x53 |
#define | USB_REQ_CDC_NOTIFY_RING_DETECT 0x09 |
#define | USB_REQ_CDC_NOTIFY_SERIAL_STATE 0x20 |
#define | USB_REQ_CDC_NOTIFY_CALL_STATE_CHANGE 0x28 |
#define | USB_REQ_CDC_NOTIFY_LINE_STATE_CHANGE 0x29 |
USB CDC Call Management Capabilities | |
#define | CDC_CALL_MGMT_SUPPORTED (1 << 0) |
Device handles call management itself. More... | |
#define | CDC_CALL_MGMT_OVER_DCI (1 << 1) |
Device can send/receive call management info over a Data Class interface. More... | |
USB CDC ACM Capabilities | |
#define | CDC_ACM_SUPPORT_FEATURE_REQUESTS (1 << 0) |
Device supports the request combination of Set_Comm_Feature, Clear_Comm_Feature, and Get_Comm_Feature. More... | |
#define | CDC_ACM_SUPPORT_LINE_REQUESTS (1 << 1) |
Device supports the request combination of Set_Line_Coding, Set_Control_Line_State, Get_Line_Coding, and the notification Serial_State. More... | |
#define | CDC_ACM_SUPPORT_SENDBREAK_REQUESTS (1 << 2) |
Device supports the request Send_Break. More... | |
#define | CDC_ACM_SUPPORT_NOTIFY_REQUESTS (1 << 3) |
Device supports the notification Network_Connection. More... | |
Possible values in usb_cdc_control_signal_t | |
#define | CDC_CTRL_SIGNAL_ACTIVATE_CARRIER (1 << 1) |
Carrier control for half duplex modems. More... | |
#define | CDC_CTRL_SIGNAL_DTE_PRESENT (1 << 0) |
Indicates to DCE if DTE is present or not. More... | |
Possible values in usb_cdc_notify_serial_state_t | |
#define | CDC_SERIAL_STATE_DCD CPU_TO_LE16((1<<0)) |
#define | CDC_SERIAL_STATE_DSR CPU_TO_LE16((1<<1)) |
#define | CDC_SERIAL_STATE_BREAK CPU_TO_LE16((1<<2)) |
#define | CDC_SERIAL_STATE_RING CPU_TO_LE16((1<<3)) |
#define | CDC_SERIAL_STATE_FRAMING CPU_TO_LE16((1<<4)) |
#define | CDC_SERIAL_STATE_PARITY CPU_TO_LE16((1<<5)) |
#define | CDC_SERIAL_STATE_OVERRUN CPU_TO_LE16((1<<6)) |
Enumerations | |
USB CDC line coding | |
enum | cdc_char_format { CDC_STOP_BITS_1 = 0, CDC_STOP_BITS_1_5 = 1, CDC_STOP_BITS_2 = 2 } |
Possible values of bCharFormat. More... | |
enum | cdc_parity { CDC_PAR_NONE = 0, CDC_PAR_ODD = 1, CDC_PAR_EVEN = 2, CDC_PAR_MARK = 3, CDC_PAR_SPACE = 4 } |
Possible values of bParityType. More... | |
#define CDC_CTRL_SIGNAL_ACTIVATE_CARRIER (1 << 1) |
Carrier control for half duplex modems.
This signal corresponds to V.24 signal 105 and RS-232 signal RTS. The device ignores the value of this bit when operating in full duplex mode.
Referenced by udi_cdc_comm_setup().
#define CDC_CTRL_SIGNAL_DTE_PRESENT (1 << 0) |
Indicates to DCE if DTE is present or not.
This signal corresponds to V.24 signal 108/2 and RS-232 signal DTR.
Referenced by udi_cdc_comm_setup().
#define CDC_SERIAL_STATE_BREAK CPU_TO_LE16((1<<2)) |
Referenced by udi_cdc_serial_state_msg_sent().
#define CDC_SERIAL_STATE_DCD CPU_TO_LE16((1<<0)) |
Referenced by udi_cdc_ctrl_signal_dcd(), and udi_cdc_multi_ctrl_signal_dcd().
#define CDC_SERIAL_STATE_DSR CPU_TO_LE16((1<<1)) |
Referenced by udi_cdc_ctrl_signal_dsr(), and udi_cdc_multi_ctrl_signal_dsr().
#define CDC_SERIAL_STATE_FRAMING CPU_TO_LE16((1<<4)) |
#define CDC_SERIAL_STATE_OVERRUN CPU_TO_LE16((1<<6)) |
Referenced by udi_cdc_multi_signal_overrun(), udi_cdc_serial_state_msg_sent(), and udi_cdc_signal_overrun().
#define CDC_SERIAL_STATE_PARITY CPU_TO_LE16((1<<5)) |
#define CDC_SERIAL_STATE_RING CPU_TO_LE16((1<<3)) |
Referenced by udi_cdc_serial_state_msg_sent().
enum cdc_char_format |
enum cdc_parity |