Files
99_7018_lmx/apps/earphone/remote_control/RFID/include/MIFARE.h

98 lines
3.5 KiB
C
Raw Normal View History

2025-11-24 16:33:33 +08:00
#ifndef _MIFARE_H_
#define _MIFARE_H_
// 定义Mifare认证密钥类型
#define KEY_A_M1 0
#define KEY_B_M1 1
// 声明全局变量
extern unsigned char SECTOR,BLOCK,BLOCK_NUM;
extern unsigned char BLOCK_DATA[16];
extern unsigned char KEY_A[16][6];
extern unsigned char KEY_B[16][6];
/**
* @brief Mifare卡事件处理函数
* @return SUCCESS表示成功FAIL表示失败
*/
extern unsigned char MIFARE_CARD_EVENT(void);
/**
* @brief Mifare卡加密认证标志
* @return
*/
extern void Mifare_Clear_Crypto(void);
/**
* @brief 6Mifare密钥加载到芯片的密钥缓冲区
* @param mifare_key [in] 6
* @return SUCCESS表示成功FAIL表示失败
*/
unsigned char Mifare_LoadKey(unsigned char *mifare_key);
/**
* @brief Mifare卡的传输Transfer
* @param block [in]
* @return SUCCESS表示成功FAIL表示失败
*/
extern unsigned char Mifare_Transfer(unsigned char block);
/**
* @brief Mifare卡的恢复Restore
* @param block [in]
* @return SUCCESS表示成功FAIL表示失败
*/
extern unsigned char Mifare_Restore(unsigned char block);
/**
* @brief 4Mifare值块格式并写入指定块
* @param block [in]
* @param data_buff [in] 4
* @return SUCCESS表示成功FAIL表示失败
*/
extern unsigned char Mifare_Blockset(unsigned char block,unsigned char *data_buff);
/**
* @brief Mifare卡的指定值块执行增值操作
* @param block [in]
* @param data_buff [in] 4
* @return SUCCESS表示成功FAIL表示失败
*/
extern unsigned char Mifare_Blockinc(unsigned char block,unsigned char *data_buff);
/**
* @brief Mifare卡的指定值块执行减值操作
* @param block [in]
* @param data_buff [in] 4
* @return SUCCESS表示成功FAIL表示失败
*/
extern unsigned char Mifare_Blockdec(unsigned char block,unsigned char *data_buff);
/**
* @brief Mifare卡写入一个16字节的数据块
* @param block [in] (0x00 - 0x3F)
* @param data_buff [in] 16
* @return SUCCESS表示成功FAIL表示失败
*/
extern unsigned char Mifare_Blockwrite(unsigned char block,unsigned char *data_buff);
/**
* @brief Mifare卡读取一个16字节的数据块
* @param block [in] (0x00 - 0x3F)
* @param data_buff [out] 16
* @return SUCCESS表示成功FAIL表示失败
*/
extern unsigned char Mifare_Blockread(unsigned char block,unsigned char *data_buff);
/**
* @brief Mifare Classic卡片的指定扇区进行认证
* @param key_mode [in] `KEY_A_M1` (0) 使A`KEY_B_M1` (1) 使B
* @param sector [in] (0-15)
* @param mifare_key [in] 6
* @param card_uid [in] 4UID的指针
* @return SUCCESS表示认证成功FAIL表示失败
*/
extern unsigned char Mifare_Auth(unsigned char key_mode,unsigned char sector,unsigned char *mifare_key,unsigned char *card_uid);
#endif