LPCOpen Platform
LPCOpen Platform for NXP LPC Microcontrollers
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
CDCClassCommon.h
Go to the documentation of this file.
1
/*
2
* @brief Common definitions and declarations for the library USB CDC Class driver
3
*
4
* @note
5
* Copyright(C) NXP Semiconductors, 2012
6
* Copyright(C) Dean Camera, 2011, 2012
7
* All rights reserved.
8
*
9
* @par
10
* Software that is described herein is for illustrative purposes only
11
* which provides customers with programming information regarding the
12
* LPC products. This software is supplied "AS IS" without any warranties of
13
* any kind, and NXP Semiconductors and its licensor disclaim any and
14
* all warranties, express or implied, including all implied warranties of
15
* merchantability, fitness for a particular purpose and non-infringement of
16
* intellectual property rights. NXP Semiconductors assumes no responsibility
17
* or liability for the use of the software, conveys no license or rights under any
18
* patent, copyright, mask work right, or any other intellectual property rights in
19
* or to any products. NXP Semiconductors reserves the right to make changes
20
* in the software without notification. NXP Semiconductors also makes no
21
* representation or warranty that such application will be suitable for the
22
* specified use without further testing or modification.
23
*
24
* @par
25
* Permission to use, copy, modify, and distribute this software and its
26
* documentation is hereby granted, under NXP Semiconductors' and its
27
* licensor's relevant copyrights in the software, without fee, provided that it
28
* is used in conjunction with NXP Semiconductors microcontrollers. This
29
* copyright, permission, and disclaimer notice must appear in all copies of
30
* this code.
31
*/
32
43
#ifndef _CDC_CLASS_COMMON_H_
44
#define _CDC_CLASS_COMMON_H_
45
46
/* Includes: */
47
#include "../../Core/StdDescriptors.h"
48
49
/* Enable C linkage for C++ Compilers: */
50
#if defined(__cplusplus)
51
extern
"C"
{
52
#endif
53
54
/* Preprocessor Checks: */
55
#if !defined(__INCLUDE_FROM_CDC_DRIVER)
56
#error Do not include this file directly. Include LPCUSBlib/Drivers/USB.h instead.
57
#endif
58
59
/* Macros: */
65
#define CDC_CONTROL_LINE_OUT_DTR (1 << 0)
66
70
#define CDC_CONTROL_LINE_OUT_RTS (1 << 1)
71
75
#define CDC_CONTROL_LINE_IN_DCD (1 << 0)
76
80
#define CDC_CONTROL_LINE_IN_DSR (1 << 1)
81
85
#define CDC_CONTROL_LINE_IN_BREAK (1 << 2)
86
90
#define CDC_CONTROL_LINE_IN_RING (1 << 3)
91
95
#define CDC_CONTROL_LINE_IN_FRAMEERROR (1 << 4)
96
100
#define CDC_CONTROL_LINE_IN_PARITYERROR (1 << 5)
101
105
#define CDC_CONTROL_LINE_IN_OVERRUNERROR (1 << 6)
106
107
115
#define CDC_FUNCTIONAL_DESCRIPTOR(DataSize) \
116
struct \
117
{ \
118
USB_Descriptor_Header_t Header; \
119
uint8_t SubType; \
120
uint8_t Data[DataSize]; \
121
}
122
123
/* Enums: */
127
enum
CDC_Descriptor_ClassSubclassProtocol_t
128
{
129
CDC_CSCP_CDCClass
= 0x02,
132
CDC_CSCP_NoSpecificSubclass
= 0x00,
135
CDC_CSCP_ACMSubclass
= 0x02,
138
CDC_CSCP_ATCommandProtocol
= 0x01,
141
CDC_CSCP_NoSpecificProtocol
= 0x00,
144
CDC_CSCP_VendorSpecificProtocol
= 0xFF,
147
CDC_CSCP_CDCDataClass
= 0x0A,
150
CDC_CSCP_NoDataSubclass
= 0x00,
153
CDC_CSCP_NoDataProtocol
= 0x00,
156
};
157
159
enum
CDC_ClassRequests_t
160
{
161
CDC_REQ_SendEncapsulatedCommand
= 0x00,
162
CDC_REQ_GetEncapsulatedResponse
= 0x01,
163
CDC_REQ_SetLineEncoding
= 0x20,
164
CDC_REQ_GetLineEncoding
= 0x21,
165
CDC_REQ_SetControlLineState
= 0x22,
166
CDC_REQ_SendBreak
= 0x23,
167
};
168
170
enum
CDC_ClassNotifications_t
171
{
172
CDC_NOTIF_SerialState
= 0x20,
177
};
178
180
enum
CDC_DescriptorSubtypes_t
181
{
182
CDC_DSUBTYPE_CSInterface_Header
= 0x00,
183
CDC_DSUBTYPE_CSInterface_CallManagement
= 0x01,
184
CDC_DSUBTYPE_CSInterface_ACM
= 0x02,
185
CDC_DSUBTYPE_CSInterface_DirectLine
= 0x03,
186
CDC_DSUBTYPE_CSInterface_TelephoneRinger
= 0x04,
187
CDC_DSUBTYPE_CSInterface_TelephoneCall
= 0x05,
188
CDC_DSUBTYPE_CSInterface_Union
= 0x06,
189
CDC_DSUBTYPE_CSInterface_CountrySelection
= 0x07,
190
CDC_DSUBTYPE_CSInterface_TelephoneOpModes
= 0x08,
191
CDC_DSUBTYPE_CSInterface_USBTerminal
= 0x09,
192
CDC_DSUBTYPE_CSInterface_NetworkChannel
= 0x0A,
193
CDC_DSUBTYPE_CSInterface_ProtocolUnit
= 0x0B,
194
CDC_DSUBTYPE_CSInterface_ExtensionUnit
= 0x0C,
195
CDC_DSUBTYPE_CSInterface_MultiChannel
= 0x0D,
196
CDC_DSUBTYPE_CSInterface_CAPI
= 0x0E,
197
CDC_DSUBTYPE_CSInterface_Ethernet
= 0x0F,
198
CDC_DSUBTYPE_CSInterface_ATM
= 0x10,
199
};
200
202
enum
CDC_LineEncodingFormats_t
203
{
204
CDC_LINEENCODING_OneStopBit
= 0,
205
CDC_LINEENCODING_OneAndAHalfStopBits
= 1,
206
CDC_LINEENCODING_TwoStopBits
= 2,
207
};
208
210
enum
CDC_LineEncodingParity_t
211
{
212
CDC_PARITY_None
= 0,
213
CDC_PARITY_Odd
= 1,
214
CDC_PARITY_Even
= 2,
215
CDC_PARITY_Mark
= 3,
216
CDC_PARITY_Space
= 4,
217
};
218
219
/* Type Defines: */
230
typedef
ATTR_IAR_PACKED
struct
231
{
232
USB_Descriptor_Header_t
Header
;
233
uint8_t
Subtype
;
236
uint16_t
CDCSpecification
;
239
}
ATTR_PACKED
USB_CDC_Descriptor_FunctionalHeader_t
;
240
252
typedef
ATTR_IAR_PACKED
struct
253
{
254
uint8_t
bFunctionLength
;
255
uint8_t
bDescriptorType
;
258
uint8_t
bDescriptorSubType
;
261
uint16_t
bcdCDC
;
262
}
ATTR_PACKED
USB_CDC_StdDescriptor_FunctionalHeader_t
;
263
273
typedef
ATTR_IAR_PACKED
struct
274
{
275
USB_Descriptor_Header_t
Header
;
276
uint8_t
Subtype
;
279
uint8_t
Capabilities
;
283
}
ATTR_PACKED
USB_CDC_Descriptor_FunctionalACM_t
;
284
295
typedef
ATTR_IAR_PACKED
struct
296
{
297
uint8_t
bFunctionLength
;
298
uint8_t
bDescriptorType
;
301
uint8_t
bDescriptorSubType
;
304
uint8_t
bmCapabilities
;
308
}
ATTR_PACKED
USB_CDC_StdDescriptor_FunctionalACM_t
;
309
319
typedef
ATTR_IAR_PACKED
struct
320
{
321
USB_Descriptor_Header_t
Header
;
322
uint8_t
Subtype
;
325
uint8_t
MasterInterfaceNumber
;
326
uint8_t
SlaveInterfaceNumber
;
327
}
ATTR_PACKED
USB_CDC_Descriptor_FunctionalUnion_t
;
328
339
typedef
ATTR_IAR_PACKED
struct
340
{
341
uint8_t
bFunctionLength
;
342
uint8_t
bDescriptorType
;
345
uint8_t
bDescriptorSubType
;
348
uint8_t
bMasterInterface
;
349
uint8_t
bSlaveInterface0
;
350
}
ATTR_PACKED
USB_CDC_StdDescriptor_FunctionalUnion_t
;
351
359
typedef
ATTR_IAR_PACKED
struct
360
{
361
uint32_t
BaudRateBPS
;
362
uint8_t
CharFormat
;
365
uint8_t
ParityType
;
368
uint8_t
DataBits
;
369
}
ATTR_PACKED
CDC_LineEncoding_t
;
370
371
/* Disable C linkage for C++ Compilers: */
372
#if defined(__cplusplus)
373
}
374
#endif
375
376
#endif
377
software
LPCUSBLib
Drivers
USB
Class
Common
CDCClassCommon.h
Generated on Fri Nov 16 2012 13:36:44 for LPCOpen Platform by
1.8.2