LUFA Library  210130
Common Class Definitions

Data Structures

struct  USB_CCID_BulkMessage_Header_t
 
struct  USB_CCID_Descriptor_t
 
struct  USB_CCID_ProtocolData_T0_t
 
struct  USB_CCID_ProtocolData_T1_t
 
struct  USB_CCID_RDR_to_PC_DataBlock_t
 
struct  USB_CCID_RDR_to_PC_DataRateAndClockFrequency_t
 
struct  USB_CCID_RDR_to_PC_Escape_t
 
struct  USB_CCID_RDR_to_PC_Parameters_t
 
struct  USB_CCID_RDR_to_PC_SlotStatus_t
 

Macros

#define CCID_COMMANDSTATUS_ERROR   1
 
#define CCID_COMMANDSTATUS_FAILED   (1 << 6)
 
#define CCID_COMMANDSTATUS_PROCESSEDWITHOUTERROR   0
 
#define CCID_COMMANDSTATUS_RFU   (3 << 6)
 
#define CCID_COMMANDSTATUS_TIMEEXTENSIONREQUESTED   (2 << 6)
 
#define CCID_CURRENT_SPEC_RELEASE_NUMBER   0x0110
 
#define CCID_DESCRIPTOR_CLOCK_KHZ(khz)   (khz)
 
#define CCID_DESCRIPTOR_CLOCK_MHZ(mhz)   ((mhz) * 1000)
 
#define CCID_ERROR_CMD_ABORTED   0xFF
 
#define CCID_ERROR_CMD_NOT_ABORTED   0xFF
 
#define CCID_ERROR_NO_ERROR   0x80
 
#define CCID_ERROR_NOT_SUPPORTED   0
 
#define CCID_ERROR_PARAMETERS_PROTOCOL_NOT_SUPPORTED   0x7
 
#define CCID_ERROR_RFU_START   0x80
 
#define CCID_ERROR_SLOT_NOT_FOUND   5
 
#define CCID_ICCSTATUS_NOICCPRESENT   (1 << 1)
 
#define CCID_ICCSTATUS_PRESENTANDACTIVE   0
 
#define CCID_ICCSTATUS_PRESENTANDINACTIVE   (1 << 0)
 
#define CCID_PROTOCOLNUM_T0   0
 
#define CCID_PROTOCOLNUM_T1   (1 << 0)
 
#define CCID_PROTOCOLS_T0   (1 << 0)
 
#define CCID_PROTOCOLS_T1   (1 << 1)
 
#define CCID_VOLTAGESUPPORT_1V8   (1 << 1)
 
#define CCID_VOLTAGESUPPORT_3V   (1 << 0)
 
#define CCID_VOLTAGESUPPORT_5V   0
 

Enumerations

enum  CCID_BulkOutMessages_t {
  CCID_PC_to_RDR_IccPowerOn = 0x62 ,
  CCID_PC_to_RDR_IccPowerOff = 0x63 ,
  CCID_PC_to_RDR_GetSlotStatus = 0x65 ,
  CCID_PC_to_RDR_XfrBlock = 0x6f ,
  CCID_PC_to_RDR_GetParameters = 0x6c ,
  CCID_PC_to_RDR_ResetParameters = 0x6d ,
  CCID_PC_to_RDR_SetParameters = 0x61 ,
  CCID_PC_to_RDR_Escape = 0x6b ,
  CCID_PC_to_RDR_IccClock = 0x6e ,
  CCID_PC_to_RDR_T0APDU = 0x6a ,
  CCID_PC_to_RDR_Secure = 0x69 ,
  CCID_PC_to_RDR_Mechanical = 0x71 ,
  CCID_PC_to_RDR_Abort = 0x72 ,
  CCID_PC_to_RDR_SetDataRateAndClockFrequency = 0x73 ,
  CCID_RDR_to_PC_DataBlock = 0x80 ,
  CCID_RDR_to_PC_SlotStatus = 0x81 ,
  CCID_RDR_to_PC_Parameters = 0x82 ,
  CCID_RDR_to_PC_Escape = 0x83 ,
  CCID_RDR_to_PC_DataRateAndClockFrequency = 0x84
}
 
enum  CCID_ClassRequests_t {
  CCID_ABORT = 0x1 ,
  CCID_GET_CLOCK_FREQUENCIES = 0x2 ,
  CCID_GET_DATA_RATES = 0x3
}
 
enum  CCID_Descriptor_ClassSubclassProtocol_t {
  CCID_CSCP_CCIDClass = 0x0b ,
  CCID_CSCP_NoSpecificSubclass = 0x00 ,
  CCID_CSCP_NoSpecificProtocol = 0x00
}
 
enum  CCID_DescriptorTypes_t { CCID_DTYPE_Functional = 0x21 }
 
enum  CCID_Features_Auto_t {
  CCID_Features_Auto_None = 0x0 ,
  CCID_Features_Auto_ParameterConfiguration = 0x2 ,
  CCID_Features_Auto_ICCActivation = 0x4 ,
  CCID_Features_Auto_VoltageSelection = 0x8 ,
  CCID_Features_Auto_ICCClockFrequencyChange = 0x10 ,
  CCID_Features_Auto_ICCBaudRateChange = 0x20 ,
  CCID_Features_Auto_ParameterNegotiation = 0x40 ,
  CCID_Features_Auto_PPS = 0x80
}
 
enum  CCID_Features_ExchangeLevel_t {
  CCID_Features_ExchangeLevel_TPDU = 0x00010000 ,
  CCID_Features_ExchangeLevel_ShortAPDU = 0x00020000 ,
  CCID_Features_ExchangeLevel_ShortExtendedAPDU = 0x00040000
}
 

Detailed Description

Module Description

Constants, Types and Enum definitions that are common to both Device and Host modes for the USB CCID Class.

Macro Definition Documentation

◆ CCID_COMMANDSTATUS_ERROR

#define CCID_COMMANDSTATUS_ERROR   1

◆ CCID_COMMANDSTATUS_FAILED

#define CCID_COMMANDSTATUS_FAILED   (1 << 6)

◆ CCID_COMMANDSTATUS_PROCESSEDWITHOUTERROR

#define CCID_COMMANDSTATUS_PROCESSEDWITHOUTERROR   0

◆ CCID_COMMANDSTATUS_RFU

#define CCID_COMMANDSTATUS_RFU   (3 << 6)

◆ CCID_COMMANDSTATUS_TIMEEXTENSIONREQUESTED

#define CCID_COMMANDSTATUS_TIMEEXTENSIONREQUESTED   (2 << 6)

◆ CCID_CURRENT_SPEC_RELEASE_NUMBER

#define CCID_CURRENT_SPEC_RELEASE_NUMBER   0x0110

◆ CCID_DESCRIPTOR_CLOCK_KHZ

#define CCID_DESCRIPTOR_CLOCK_KHZ (   khz)    (khz)

◆ CCID_DESCRIPTOR_CLOCK_MHZ

#define CCID_DESCRIPTOR_CLOCK_MHZ (   mhz)    ((mhz) * 1000)

◆ CCID_ERROR_CMD_ABORTED

#define CCID_ERROR_CMD_ABORTED   0xFF

◆ CCID_ERROR_CMD_NOT_ABORTED

#define CCID_ERROR_CMD_NOT_ABORTED   0xFF

◆ CCID_ERROR_NO_ERROR

#define CCID_ERROR_NO_ERROR   0x80

◆ CCID_ERROR_NOT_SUPPORTED

#define CCID_ERROR_NOT_SUPPORTED   0

◆ CCID_ERROR_PARAMETERS_PROTOCOL_NOT_SUPPORTED

#define CCID_ERROR_PARAMETERS_PROTOCOL_NOT_SUPPORTED   0x7

◆ CCID_ERROR_RFU_START

#define CCID_ERROR_RFU_START   0x80

◆ CCID_ERROR_SLOT_NOT_FOUND

#define CCID_ERROR_SLOT_NOT_FOUND   5

◆ CCID_ICCSTATUS_NOICCPRESENT

#define CCID_ICCSTATUS_NOICCPRESENT   (1 << 1)

◆ CCID_ICCSTATUS_PRESENTANDACTIVE

#define CCID_ICCSTATUS_PRESENTANDACTIVE   0

◆ CCID_ICCSTATUS_PRESENTANDINACTIVE

#define CCID_ICCSTATUS_PRESENTANDINACTIVE   (1 << 0)

◆ CCID_PROTOCOLNUM_T0

#define CCID_PROTOCOLNUM_T0   0

◆ CCID_PROTOCOLNUM_T1

#define CCID_PROTOCOLNUM_T1   (1 << 0)

◆ CCID_PROTOCOLS_T0

#define CCID_PROTOCOLS_T0   (1 << 0)

◆ CCID_PROTOCOLS_T1

#define CCID_PROTOCOLS_T1   (1 << 1)

◆ CCID_VOLTAGESUPPORT_1V8

#define CCID_VOLTAGESUPPORT_1V8   (1 << 1)

◆ CCID_VOLTAGESUPPORT_3V

#define CCID_VOLTAGESUPPORT_3V   (1 << 0)

◆ CCID_VOLTAGESUPPORT_5V

#define CCID_VOLTAGESUPPORT_5V   0

Enumeration Type Documentation

◆ CCID_BulkOutMessages_t

Enum for possible bulk messages between PC and Reader

Enumerator
CCID_PC_to_RDR_IccPowerOn 
CCID_PC_to_RDR_IccPowerOff 
CCID_PC_to_RDR_GetSlotStatus 
CCID_PC_to_RDR_XfrBlock 
CCID_PC_to_RDR_GetParameters 
CCID_PC_to_RDR_ResetParameters 
CCID_PC_to_RDR_SetParameters 
CCID_PC_to_RDR_Escape 
CCID_PC_to_RDR_IccClock 
CCID_PC_to_RDR_T0APDU 
CCID_PC_to_RDR_Secure 
CCID_PC_to_RDR_Mechanical 
CCID_PC_to_RDR_Abort 
CCID_PC_to_RDR_SetDataRateAndClockFrequency 
CCID_RDR_to_PC_DataBlock 
CCID_RDR_to_PC_SlotStatus 
CCID_RDR_to_PC_Parameters 
CCID_RDR_to_PC_Escape 
CCID_RDR_to_PC_DataRateAndClockFrequency 

◆ CCID_ClassRequests_t

Enum for the CCID class specific control requests that can be issued by the USB bus host.

Enumerator
CCID_ABORT 
CCID_GET_CLOCK_FREQUENCIES 
CCID_GET_DATA_RATES 

◆ CCID_Descriptor_ClassSubclassProtocol_t

Enum for possible Class, Subclass and Protocol values of device and interface descriptors relating to the CCID device class.

Enumerator
CCID_CSCP_CCIDClass 

Descriptor Class value indicating that the device or interface belongs to the CCID class.

CCID_CSCP_NoSpecificSubclass 

Descriptor Subclass value indicating that the device or interface belongs to no specific subclass of the CCID class.

CCID_CSCP_NoSpecificProtocol 

Descriptor Protocol value indicating that the device or interface belongs to no specific protocol of the CCID class.

◆ CCID_DescriptorTypes_t

Enum for the CCID class specific descriptor types.

Enumerator
CCID_DTYPE_Functional 

CCID class specific Interface functional descriptor.

◆ CCID_Features_Auto_t

Enumerator
CCID_Features_Auto_None 
CCID_Features_Auto_ParameterConfiguration 
CCID_Features_Auto_ICCActivation 
CCID_Features_Auto_VoltageSelection 
CCID_Features_Auto_ICCClockFrequencyChange 
CCID_Features_Auto_ICCBaudRateChange 
CCID_Features_Auto_ParameterNegotiation 
CCID_Features_Auto_PPS 

◆ CCID_Features_ExchangeLevel_t

Enumerator
CCID_Features_ExchangeLevel_TPDU 
CCID_Features_ExchangeLevel_ShortAPDU 
CCID_Features_ExchangeLevel_ShortExtendedAPDU