Zephyr API Documentation 4.0.0-rc3
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
usb_cdc.h File Reference

USB Communications Device Class (CDC) public header. More...

Go to the source code of this file.

Data Structures

struct  cdc_header_descriptor
 Header Functional Descriptor. More...
 
struct  cdc_union_descriptor
 Union Interface Functional Descriptor. More...
 
struct  cdc_cm_descriptor
 Call Management Functional Descriptor. More...
 
struct  cdc_acm_descriptor
 Abstract Control Management Functional Descriptor. More...
 
struct  cdc_acm_line_coding
 Data structure for GET_LINE_CODING / SET_LINE_CODING class requests. More...
 
struct  cdc_acm_notification
 Data structure for the notification about SerialState. More...
 
struct  cdc_ecm_descriptor
 Ethernet Networking Functional Descriptor. More...
 
struct  cdc_ncm_descriptor
 Ethernet Network Control Model (NCM) Descriptor. More...
 

Macros

#define CDC_SRN_1_20   0x0120
 CDC Specification release number in BCD format.
 
#define ACM_SUBCLASS   0x02
 Communications Class Subclass Codes.
 
#define ECM_SUBCLASS   0x06
 
#define EEM_SUBCLASS   0x0c
 
#define NCM_SUBCLASS   0x0d
 
#define AT_CMD_V250_PROTOCOL   0x01
 Communications Class Protocol Codes.
 
#define EEM_PROTOCOL   0x07
 
#define ACM_VENDOR_PROTOCOL   0xFF
 
#define NCM_DATA_PROTOCOL   0x01
 
#define DATA_INTERFACE_CLASS   0x0A
 Data Class Interface Codes.
 
#define HEADER_FUNC_DESC   0x00
 bDescriptor SubType for Communications Class Functional Descriptors
 
#define CALL_MANAGEMENT_FUNC_DESC   0x01
 
#define ACM_FUNC_DESC   0x02
 
#define UNION_FUNC_DESC   0x06
 
#define ETHERNET_FUNC_DESC   0x0F
 
#define ETHERNET_FUNC_DESC_NCM   0x1a
 
#define CDC_SEND_ENC_CMD   0x00
 PSTN Subclass Specific Requests for ACM devices.
 
#define CDC_GET_ENC_RSP   0x01
 
#define SET_LINE_CODING   0x20
 
#define GET_LINE_CODING   0x21
 
#define SET_CONTROL_LINE_STATE   0x22
 
#define USB_CDC_NETWORK_CONNECTION   0x00
 PSTN Subclass Class-Specific Notification Codes.
 
#define USB_CDC_RESPONSE_AVAILABLE   0x01
 
#define USB_CDC_AUX_JACK_HOOK_STATE   0x08
 
#define USB_CDC_RING_DETECT   0x09
 
#define USB_CDC_SERIAL_STATE   0x20
 
#define USB_CDC_CALL_STATE_CHANGE   0x28
 
#define USB_CDC_LINE_STATE_CHANGE   0x23
 
#define USB_CDC_SERIAL_STATE_OVERRUN   BIT(6)
 PSTN UART State Bitmap Values.
 
#define USB_CDC_SERIAL_STATE_PARITY   BIT(5)
 
#define USB_CDC_SERIAL_STATE_FRAMING   BIT(4)
 
#define USB_CDC_SERIAL_STATE_RINGSIGNAL   BIT(3)
 
#define USB_CDC_SERIAL_STATE_BREAK   BIT(2)
 
#define USB_CDC_SERIAL_STATE_TXCARRIER   BIT(1)
 
#define USB_CDC_SERIAL_STATE_RXCARRIER   BIT(0)
 
#define SET_CONTROL_LINE_STATE_RTS   0x02
 Control Signal Bitmap Values for SetControlLineState.
 
#define SET_CONTROL_LINE_STATE_DTR   0x01
 
#define USB_CDC_LINE_CTRL_BAUD_RATE   UART_LINE_CTRL_BAUD_RATE
 Enhance enum uart_line_ctrl with CDC specific values.
 
#define USB_CDC_LINE_CTRL_DCD   UART_LINE_CTRL_DCD
 
#define USB_CDC_LINE_CTRL_DSR   UART_LINE_CTRL_DSR
 
#define USB_CDC_LINE_CTRL_BREAK   BIT(5)
 
#define USB_CDC_LINE_CTRL_RING_SIGNAL   BIT(6)
 
#define USB_CDC_LINE_CTRL_FRAMING   BIT(7)
 
#define USB_CDC_LINE_CTRL_PARITY   BIT(8)
 
#define USB_CDC_LINE_CTRL_OVER_RUN   BIT(9)
 
#define SERIAL_STATE_OVER_RUN   0x40
 UART State Bitmap Values.
 
#define SERIAL_STATE_PARITY   0x20
 
#define SERIAL_STATE_FRAMING   0x10
 
#define SERIAL_STATE_RING_SIGNAL   0x08
 
#define SERIAL_STATE_BREAK   0x04
 
#define SERIAL_STATE_TX_CARRIER   0x02
 
#define SERIAL_STATE_RX_CARRIER   0x01
 
#define USB_CDC_LINE_CODING_STOP_BITS_1   0
 PSTN Subclass Line Coding Values.
 
#define USB_CDC_LINE_CODING_STOP_BITS_1_5   1
 
#define USB_CDC_LINE_CODING_STOP_BITS_2   2
 
#define USB_CDC_LINE_CODING_PARITY_NO   0
 
#define USB_CDC_LINE_CODING_PARITY_ODD   1
 
#define USB_CDC_LINE_CODING_PARITY_EVEN   2
 
#define USB_CDC_LINE_CODING_PARITY_MARK   3
 
#define USB_CDC_LINE_CODING_PARITY_SPACE   4
 
#define USB_CDC_LINE_CODING_DATA_BITS_5   5
 
#define USB_CDC_LINE_CODING_DATA_BITS_6   6
 
#define USB_CDC_LINE_CODING_DATA_BITS_7   7
 
#define USB_CDC_LINE_CODING_DATA_BITS_8   8
 
#define SET_ETHERNET_MULTICAST_FILTERS   0x40
 Class-Specific Request Codes for Ethernet subclass.
 
#define SET_ETHERNET_PM_FILTER   0x41
 
#define GET_ETHERNET_PM_FILTER   0x42
 
#define SET_ETHERNET_PACKET_FILTER   0x43
 
#define GET_ETHERNET_STATISTIC   0x44
 
#define GET_NTB_PARAMETERS   0x80
 Class-Specific Request Codes for NCM subclass.
 
#define GET_NET_ADDRESS   0x81
 
#define SET_NET_ADDRESS   0x82
 
#define GET_NTB_FORMAT   0x83
 
#define SET_NTB_FORMAT   0x84
 
#define GET_NTB_INPUT_SIZE   0x85
 
#define SET_NTB_INPUT_SIZE   0x86
 
#define GET_MAX_DATAGRAM_SIZE   0x87
 
#define SET_MAX_DATAGRAM_SIZE   0x88
 
#define GET_CRC_MODE   0x89
 
#define SET_CRC_MODE   0x8A
 
#define PACKET_TYPE_MULTICAST   0x10
 Ethernet Packet Filter Bitmap.
 
#define PACKET_TYPE_BROADCAST   0x08
 
#define PACKET_TYPE_DIRECTED   0x04
 
#define PACKET_TYPE_ALL_MULTICAST   0x02
 
#define PACKET_TYPE_PROMISCUOUS   0x01
 

Detailed Description

USB Communications Device Class (CDC) public header.

Header follows the Class Definitions for Communications Devices Specification (CDC120-20101103-track.pdf), PSTN Devices Specification (PSTN120.pdf) and Ethernet Control Model Devices Specification (ECM120.pdf). Header is limited to ACM and ECM Subclasses.

Macro Definition Documentation

◆ ACM_FUNC_DESC

#define ACM_FUNC_DESC   0x02

◆ ACM_SUBCLASS

#define ACM_SUBCLASS   0x02

Communications Class Subclass Codes.

◆ ACM_VENDOR_PROTOCOL

#define ACM_VENDOR_PROTOCOL   0xFF

◆ AT_CMD_V250_PROTOCOL

#define AT_CMD_V250_PROTOCOL   0x01

Communications Class Protocol Codes.

◆ CALL_MANAGEMENT_FUNC_DESC

#define CALL_MANAGEMENT_FUNC_DESC   0x01

◆ CDC_GET_ENC_RSP

#define CDC_GET_ENC_RSP   0x01

◆ CDC_SEND_ENC_CMD

#define CDC_SEND_ENC_CMD   0x00

PSTN Subclass Specific Requests for ACM devices.

Note
PSTN120.pdf, 6.3, Table 13

◆ CDC_SRN_1_20

#define CDC_SRN_1_20   0x0120

CDC Specification release number in BCD format.

◆ DATA_INTERFACE_CLASS

#define DATA_INTERFACE_CLASS   0x0A

Data Class Interface Codes.

Note
CDC120-20101103-track.pdf, 4.5, Table 6

◆ ECM_SUBCLASS

#define ECM_SUBCLASS   0x06

◆ EEM_PROTOCOL

#define EEM_PROTOCOL   0x07

◆ EEM_SUBCLASS

#define EEM_SUBCLASS   0x0c

◆ ETHERNET_FUNC_DESC

#define ETHERNET_FUNC_DESC   0x0F

◆ ETHERNET_FUNC_DESC_NCM

#define ETHERNET_FUNC_DESC_NCM   0x1a

◆ GET_CRC_MODE

#define GET_CRC_MODE   0x89

◆ GET_ETHERNET_PM_FILTER

#define GET_ETHERNET_PM_FILTER   0x42

◆ GET_ETHERNET_STATISTIC

#define GET_ETHERNET_STATISTIC   0x44

◆ GET_LINE_CODING

#define GET_LINE_CODING   0x21

◆ GET_MAX_DATAGRAM_SIZE

#define GET_MAX_DATAGRAM_SIZE   0x87

◆ GET_NET_ADDRESS

#define GET_NET_ADDRESS   0x81

◆ GET_NTB_FORMAT

#define GET_NTB_FORMAT   0x83

◆ GET_NTB_INPUT_SIZE

#define GET_NTB_INPUT_SIZE   0x85

◆ GET_NTB_PARAMETERS

#define GET_NTB_PARAMETERS   0x80

Class-Specific Request Codes for NCM subclass.

Note
NCM100.pdf, 6.2, Table 6-2

◆ HEADER_FUNC_DESC

#define HEADER_FUNC_DESC   0x00

bDescriptor SubType for Communications Class Functional Descriptors

Note
CDC120-20101103-track.pdf, 5.2.3, Table 13

◆ NCM_DATA_PROTOCOL

#define NCM_DATA_PROTOCOL   0x01

◆ NCM_SUBCLASS

#define NCM_SUBCLASS   0x0d

◆ PACKET_TYPE_ALL_MULTICAST

#define PACKET_TYPE_ALL_MULTICAST   0x02

◆ PACKET_TYPE_BROADCAST

#define PACKET_TYPE_BROADCAST   0x08

◆ PACKET_TYPE_DIRECTED

#define PACKET_TYPE_DIRECTED   0x04

◆ PACKET_TYPE_MULTICAST

#define PACKET_TYPE_MULTICAST   0x10

Ethernet Packet Filter Bitmap.

◆ PACKET_TYPE_PROMISCUOUS

#define PACKET_TYPE_PROMISCUOUS   0x01

◆ SERIAL_STATE_BREAK

#define SERIAL_STATE_BREAK   0x04

◆ SERIAL_STATE_FRAMING

#define SERIAL_STATE_FRAMING   0x10

◆ SERIAL_STATE_OVER_RUN

#define SERIAL_STATE_OVER_RUN   0x40

UART State Bitmap Values.

◆ SERIAL_STATE_PARITY

#define SERIAL_STATE_PARITY   0x20

◆ SERIAL_STATE_RING_SIGNAL

#define SERIAL_STATE_RING_SIGNAL   0x08

◆ SERIAL_STATE_RX_CARRIER

#define SERIAL_STATE_RX_CARRIER   0x01

◆ SERIAL_STATE_TX_CARRIER

#define SERIAL_STATE_TX_CARRIER   0x02

◆ SET_CONTROL_LINE_STATE

#define SET_CONTROL_LINE_STATE   0x22

◆ SET_CONTROL_LINE_STATE_DTR

#define SET_CONTROL_LINE_STATE_DTR   0x01

◆ SET_CONTROL_LINE_STATE_RTS

#define SET_CONTROL_LINE_STATE_RTS   0x02

Control Signal Bitmap Values for SetControlLineState.

◆ SET_CRC_MODE

#define SET_CRC_MODE   0x8A

◆ SET_ETHERNET_MULTICAST_FILTERS

#define SET_ETHERNET_MULTICAST_FILTERS   0x40

Class-Specific Request Codes for Ethernet subclass.

Note
ECM120.pdf, 6.2, Table 6

◆ SET_ETHERNET_PACKET_FILTER

#define SET_ETHERNET_PACKET_FILTER   0x43

◆ SET_ETHERNET_PM_FILTER

#define SET_ETHERNET_PM_FILTER   0x41

◆ SET_LINE_CODING

#define SET_LINE_CODING   0x20

◆ SET_MAX_DATAGRAM_SIZE

#define SET_MAX_DATAGRAM_SIZE   0x88

◆ SET_NET_ADDRESS

#define SET_NET_ADDRESS   0x82

◆ SET_NTB_FORMAT

#define SET_NTB_FORMAT   0x84

◆ SET_NTB_INPUT_SIZE

#define SET_NTB_INPUT_SIZE   0x86

◆ UNION_FUNC_DESC

#define UNION_FUNC_DESC   0x06

◆ USB_CDC_AUX_JACK_HOOK_STATE

#define USB_CDC_AUX_JACK_HOOK_STATE   0x08

◆ USB_CDC_CALL_STATE_CHANGE

#define USB_CDC_CALL_STATE_CHANGE   0x28

◆ USB_CDC_LINE_CODING_DATA_BITS_5

#define USB_CDC_LINE_CODING_DATA_BITS_5   5

◆ USB_CDC_LINE_CODING_DATA_BITS_6

#define USB_CDC_LINE_CODING_DATA_BITS_6   6

◆ USB_CDC_LINE_CODING_DATA_BITS_7

#define USB_CDC_LINE_CODING_DATA_BITS_7   7

◆ USB_CDC_LINE_CODING_DATA_BITS_8

#define USB_CDC_LINE_CODING_DATA_BITS_8   8

◆ USB_CDC_LINE_CODING_PARITY_EVEN

#define USB_CDC_LINE_CODING_PARITY_EVEN   2

◆ USB_CDC_LINE_CODING_PARITY_MARK

#define USB_CDC_LINE_CODING_PARITY_MARK   3

◆ USB_CDC_LINE_CODING_PARITY_NO

#define USB_CDC_LINE_CODING_PARITY_NO   0

◆ USB_CDC_LINE_CODING_PARITY_ODD

#define USB_CDC_LINE_CODING_PARITY_ODD   1

◆ USB_CDC_LINE_CODING_PARITY_SPACE

#define USB_CDC_LINE_CODING_PARITY_SPACE   4

◆ USB_CDC_LINE_CODING_STOP_BITS_1

#define USB_CDC_LINE_CODING_STOP_BITS_1   0

PSTN Subclass Line Coding Values.

Note
PSTN120.pdf, 6.3.11, Table 17

◆ USB_CDC_LINE_CODING_STOP_BITS_1_5

#define USB_CDC_LINE_CODING_STOP_BITS_1_5   1

◆ USB_CDC_LINE_CODING_STOP_BITS_2

#define USB_CDC_LINE_CODING_STOP_BITS_2   2

◆ USB_CDC_LINE_CTRL_BAUD_RATE

#define USB_CDC_LINE_CTRL_BAUD_RATE   UART_LINE_CTRL_BAUD_RATE

Enhance enum uart_line_ctrl with CDC specific values.

◆ USB_CDC_LINE_CTRL_BREAK

#define USB_CDC_LINE_CTRL_BREAK   BIT(5)

◆ USB_CDC_LINE_CTRL_DCD

#define USB_CDC_LINE_CTRL_DCD   UART_LINE_CTRL_DCD

◆ USB_CDC_LINE_CTRL_DSR

#define USB_CDC_LINE_CTRL_DSR   UART_LINE_CTRL_DSR

◆ USB_CDC_LINE_CTRL_FRAMING

#define USB_CDC_LINE_CTRL_FRAMING   BIT(7)

◆ USB_CDC_LINE_CTRL_OVER_RUN

#define USB_CDC_LINE_CTRL_OVER_RUN   BIT(9)

◆ USB_CDC_LINE_CTRL_PARITY

#define USB_CDC_LINE_CTRL_PARITY   BIT(8)

◆ USB_CDC_LINE_CTRL_RING_SIGNAL

#define USB_CDC_LINE_CTRL_RING_SIGNAL   BIT(6)

◆ USB_CDC_LINE_STATE_CHANGE

#define USB_CDC_LINE_STATE_CHANGE   0x23

◆ USB_CDC_NETWORK_CONNECTION

#define USB_CDC_NETWORK_CONNECTION   0x00

PSTN Subclass Class-Specific Notification Codes.

Note
PSTN120.pdf, 6.5, Table 30

◆ USB_CDC_RESPONSE_AVAILABLE

#define USB_CDC_RESPONSE_AVAILABLE   0x01

◆ USB_CDC_RING_DETECT

#define USB_CDC_RING_DETECT   0x09

◆ USB_CDC_SERIAL_STATE

#define USB_CDC_SERIAL_STATE   0x20

◆ USB_CDC_SERIAL_STATE_BREAK

#define USB_CDC_SERIAL_STATE_BREAK   BIT(2)

◆ USB_CDC_SERIAL_STATE_FRAMING

#define USB_CDC_SERIAL_STATE_FRAMING   BIT(4)

◆ USB_CDC_SERIAL_STATE_OVERRUN

#define USB_CDC_SERIAL_STATE_OVERRUN   BIT(6)

PSTN UART State Bitmap Values.

Note
PSTN120.pdf, 6.5.4, Table 31

◆ USB_CDC_SERIAL_STATE_PARITY

#define USB_CDC_SERIAL_STATE_PARITY   BIT(5)

◆ USB_CDC_SERIAL_STATE_RINGSIGNAL

#define USB_CDC_SERIAL_STATE_RINGSIGNAL   BIT(3)

◆ USB_CDC_SERIAL_STATE_RXCARRIER

#define USB_CDC_SERIAL_STATE_RXCARRIER   BIT(0)

◆ USB_CDC_SERIAL_STATE_TXCARRIER

#define USB_CDC_SERIAL_STATE_TXCARRIER   BIT(1)