1 #ifndef _RFID_ISO14443A_H
2 #define _RFID_ISO14443A_H
5 RFID_OPT_14443A_SPEED_RX = 0x00000001,
6 RFID_OPT_14443A_SPEED_TX = 0x00000002,
9 enum rfid_14443_opt_speed {
10 RFID_14443A_SPEED_106K = 0x01,
11 RFID_14443A_SPEED_212K = 0x02,
12 RFID_14443A_SPEED_424K = 0x04,
13 RFID_14443A_SPEED_848K = 0x08,
18 #include <sys/types.h>
20 /* protocol definitions */
22 /* ISO 14443-3, Chapter 6.3.1 */
23 enum iso14443a_sf_cmd {
24 ISO14443A_SF_CMD_REQA = 0x26,
25 ISO14443A_SF_CMD_WUPA = 0x52,
26 ISO14443A_SF_CMD_OPT_TIMESLOT = 0x35, /* Annex C */
27 /* 40 to 4f and 78 to 7f: proprietary */
30 struct iso14443a_atqa {
31 u_int8_t bf_anticol:5,
34 u_int8_t proprietary:4,
38 #define ISO14443A_HLTA 0x5000
40 /* ISO 14443-3, Chapter 6.3.2 */
41 struct iso14443a_anticol_cmd {
42 unsigned char sel_code;
44 unsigned char uid_bits[5];
47 enum iso14443a_anticol_sel_code {
48 ISO14443A_AC_SEL_CODE_CL1 = 0x93,
49 ISO14443A_AC_SEL_CODE_CL2 = 0x95,
50 ISO14443A_AC_SEL_CODE_CL3 = 0x97,
53 #define ISO14443A_BITOFCOL_NONE 0xffffffff
55 struct iso14443a_handle {
58 unsigned int tcl_capable;
61 enum iso14443a_level {
68 enum iso14443a_state {
69 ISO14443A_STATE_ERROR,
71 ISO14443A_STATE_REQA_SENT,
72 ISO14443A_STATE_ATQA_RCVD,
73 ISO14443A_STATE_NO_BITFRAME_ANTICOL,
74 ISO14443A_STATE_ANTICOL_RUNNING,
75 ISO14443A_STATE_SELECTED,
78 #include <librfid/rfid_layer2.h>
79 struct rfid_layer2 rfid_layer2_iso14443a;
81 #endif /* __LIBRFID__ */
84 #endif /* _ISO14443A_H */