⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mifare530.h

📁 上海数传信息科技有限公司的所有模块使用的都是2.4Ghz频段
💻 H
字号:
#define TYPE_A_ISO14443                0
#define TYPE_B_ISO14443                1

#define READER_ERR_BASE_START           0
#define MI_OK                           0
#define MI_CHK_OK                       0
#define MI_CRC_ZERO                     0
// ICODE1 Error   Codes
#define  I1_OK                      0
#define  I1_NO_ERR                  0

#define MI_CRC_NOTZERO                  1

#define MI_NOTAGERR                     (-1)
#define MI_CHK_FAILED                   (-1)
#define MI_CRCERR                       (-2)
#define MI_CHK_COMPERR                  (-2)
#define MI_EMPTY                        (-3)
#define MI_AUTHERR                      (-4)
#define MI_PARITYERR                    (-5)
#define MI_CODEERR                      (-6)

#define MI_SERNRERR                     (-8)
#define MI_KEYERR                       (-9)
#define MI_NOTAUTHERR                   (-10)
#define MI_BITCOUNTERR                  (-11)
#define MI_BYTECOUNTERR                 (-12)
#define MI_IDLE                         (-13)
#define MI_TRANSERR                     (-14)
#define MI_WRITEERR                     (-15)
#define MI_INCRERR                      (-16)
#define MI_DECRERR                      (-17)
#define MI_READERR                      (-18)
#define MI_OVFLERR                      (-19)
#define MI_POLLING                      (-20)
#define MI_FRAMINGERR                   (-21)
#define MI_ACCESSERR                    (-22)
#define MI_UNKNOWN_COMMAND              (-23)
#define MI_COLLERR                      (-24)
#define MI_RESETERR                     (-25)
#define MI_INITERR                      (-25)
#define MI_INTERFACEERR                 (-26)
#define MI_ACCESSTIMEOUT                (-27)
#define MI_NOBITWISEANTICOLL            (-28)
#define MI_QUIT                         (-30)
#define MI_CODINGERR                    (-31)
#define MI_SENDBYTENR                   (-51)
#define MI_CASCLEVEX                    (-52)    
#define MI_SENDBUF_OVERFLOW             (-53)
#define MI_BAUDRATE_NOT_SUPPORTED       (-54)
#define MI_SAME_BAUDRATE_REQUIRED       (-55)
#define MI_ERROR_CARD_TYPE              (-56)
#define MI_WRITE_BLOCK_ERROR            (-57)
#define MI_WRONG_PARAMETER_VALUE        (-60)

// ICODE1 Error   Codes
#define  I1_WRONGPARAM                  (-61)
#define  I1_NYIMPLEMENTED               (-62)
#define  I1_TSREADY                     (-63)

#define  I1_TIMEOUT                     (-70)
#define  I1_NOWRITE                     (-71)
#define  I1_NOHALT                      (-72)
#define  I1_MISS_ANTICOLL               (-73) 

#define  I1_COMM_ABORT                  (-82)

#define MI_BREAK                        (-99)
#define MI_NY_IMPLEMENTED               (-100)
#define MI_NO_MFRC                      (-101)
#define MI_MFRC_NOTAUTH                 (-102)
#define MI_WRONG_DES_MODE               (-103)
#define MI_HOST_AUTH_FAILED             (-104)

#define MI_WRONG_LOAD_MODE              (-106)
#define MI_WRONG_DESKEY                 (-107)
#define MI_MKLOAD_FAILED                (-108)
#define MI_FIFOERR                      (-109)
#define MI_WRONG_ADDR                   (-110)
#define MI_DESKEYLOAD_FAILED            (-111)

#define MI_WRONG_SEL_CNT                (-114)

#define MI_WRONG_TEST_MODE              (-117)
#define MI_TEST_FAILED                  (-118)
#define MI_TOC_ERROR                    (-119)
#define MI_COMM_ABORT                   (-120)
#define MI_INVALID_BASE                 (-121)
#define MI_MFRC_RESET                   (-122)
#define MI_WRONG_VALUE                  (-123)
#define MI_VALERR                       (-124)

#define MI_WRONG_MAC_TOKEN              (-149)
#define MI_WRONG_TOKEN                  (-150)
#define MI_NO_VALUE                     (-151)
#define MI_MFRC150                      (-152)
#define MI_MFRC170                      (-153)

#define MI_WRONG_BASEADDR               (-180)

#define MI_NO_ERROR_TEXT_AVAIL          (-199)

#define MI_DRIVER_FAILURE               (-254)

#define MI_INTERFACE_FAILURE            (-255)
#define MI_PROTOCOL_FAILURE             (-256)

#define MI_SERERR                       (-260)
#define MI_CALLOPEN                     (-261)
#define MI_RESERVED_BUFFER_OVERFLOW     (-58)
#define MI_RECBUF_OVERFLOW              MI_RESERVED_BUFFER_OVERFLOW

#define READER_ERR_BASE_END             (-999)

#define INIT_AS_TYPEA 0
#define INIT_AS_TYPEB_ASK 1
#define INIT_AS_TYPEB_STD 2
#define INIT_AS_TYPEB_MOT 3

extern unsigned char New_PICCsnr[];   //The CARD Serial Number卡片序列号.(4bytes) 
extern char Mf500KeyWriteToEeprom(
  unsigned char key_type,
  unsigned char sector,
  unsigned char *uncoded_keys);
extern unsigned char ResetAllCard(void);
extern char SwitchRfOff(void);
extern char InitMC530(short);
extern char CardAccess(
  unsigned char auth_mode,
  unsigned char WR_mode,
  unsigned char sector,
  unsigned char Block,
  unsigned char* rdata,
  unsigned char* wdata);
extern char CardAccessMultiBlocks(
  unsigned char auth_mode,
  unsigned char WR_mode,
  unsigned char sector,
  unsigned char Block,
  unsigned char BlockCnt,
  unsigned char* rdata,
  unsigned char* wdata);
extern char CardTrailerWrite(
  unsigned char auth_mode,
  unsigned char sector,
  unsigned char* KEYA,
  unsigned char* KEYB,
  unsigned char C1x0_3,
  unsigned char C2x0_3,
  unsigned char C3x0_3);
extern char CardValue(
  unsigned char auth_mode,
  unsigned char dd_mode,
  unsigned char sector,
  unsigned char Block,
  unsigned long value);
extern void MC530Off(void);

#define  PICC_WriteBlock 1
#define  PICC_ReadBlock  0
#define  NULL 0

#define PICC_REQIDL        0x26         //!< request idle
#define PICC_REQALL        0x52         //!< request all
#define PICC_ANTICOLL1     0x93         //!< anticollision level 1 106 kBaud
#define PICC_ANTICOLL11    0x92         //!< anticollision level 1 212 kBaud
#define PICC_ANTICOLL12    0x94         //!< anticollision level 1 424 kBaud
#define PICC_ANTICOLL13    0x98         //!< anticollision level 1 848 kBaud
#define PICC_ANTICOLL2     0x95         //!< anticollision level 2
#define PICC_ANTICOLL3     0x97         //!< anticollision level 3
#define PICC_AUTHENT1A     0x60         //!< authentication(证明,鉴定) using key A
#define PICC_AUTHENT1B     0x61         //!< authentication(证明,鉴定) using key B
#define PICC_READ16        0x30         //!< read 16 byte block
#define PICC_WRITE16       0xA0         //!< write 16 byte block
#define PICC_WRITE4        0xA2         //!< write 4 byte block
#define PICC_DECREMENT     0xC0         //!< decrement value
#define PICC_INCREMENT     0xC1         //!< increment value
#define PICC_RESTORE       0xC2         //!< restore command code  
#define PICC_TRANSFER      0xB0         //!< transfer command code 
#define PICC_HALT          0x50         //!< halt

extern char CardCTSReqT( void );
extern char CardCTSEnableModification( void );
extern char CardCTSRead( unsigned char blocknum, unsigned char* rdata);
extern char CardCTSWrite( unsigned char blocknum, unsigned char* rdata);
extern char CardCTSErase( unsigned char blocknum);
extern char CardCTSDeactivate( void );

extern char CardTypeARequest(
  unsigned char req_code, // request code ALL = 0x52
                          // or IDLE = 0x26 
  unsigned char *atq);    // answer to request(ATQ)

extern char CardTypeAAnticoll (
  unsigned char level,
  unsigned char *serial_number);
extern char CardTypeASelect(
  unsigned char level,
  unsigned char *serial_number,
  unsigned char *ATS);

#define CardTypeAAnticollLevel1(s) CardTypeAAnticoll(PICC_ANTICOLL1,(s))

#define CardTypeASelectLevel1(s,a) CardTypeASelect(PICC_ANTICOLL1,(s),(a))

extern char CardMFCAuthKey(
  unsigned char auth_mode,
  unsigned char *snr,       
  unsigned char *keys,      
  unsigned char block);

extern char CardMFCRead16Bytes(
  unsigned char block_addr,
  unsigned char* data);

extern char CardMFCWrite16Bytes(
  unsigned char block_addr,
  unsigned char *data);

extern char CardMFCWrite4Bytes(
  unsigned char block_addr,
  unsigned char *data);


extern char CardMFCValueWithTransfer(
  unsigned char dd_mode,
  unsigned char from_block,
  unsigned char to_block,
  unsigned long lvalue);

extern char CardMFCValueDebit(
  unsigned char dd_mode,
  unsigned char block,
  unsigned long lvalue);

extern char CardTypeAHalt(void);


extern char CardTypeAExchangeBlock(unsigned char *send_data,
                           unsigned short send_bytelen,
                           unsigned char *rec_data,  
                           unsigned short *rec_bytelen,
                           unsigned char append_crc, 
                           unsigned long timeout );

extern char CardTypeBExchangeBlock(unsigned char *send_data,
                           unsigned short send_bytelen,
                           unsigned char *rec_data,  
                           unsigned short *rec_bytelen,
                           unsigned long timeout );

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -