#ifndef __RC522_H__ #define __RC522_H__ #include "iocc2530.h" #include "public.h" //#define IC_SDA P2_0 //#define IC_SCK P0_7 //#define IC_MOSI P0_6 //#define IC_MISO P0_5 //#define IC_RST P0_4 #define IC_SDA_PIN P2_0 //�������� #define IC_SDA_NUM GPIO_0 #define IC_SDA_PORT P2DIR //���÷��� ���뻹����� #define IC_SDA_PIN_MODE P2INP //��������ģʽ �������� ��̬ ��������̬ P10P11������������ģʽ //��������Ϊ����� #define IC_SDA_PIN_OUT() { IC_SDA_PORT |= IC_SDA_NUM; asm("NOP");IC_SDA_PIN_MODE&=~IC_SDA_NUM; } #define IC_SCK_PIN P1_7 //�������� #define IC_SCK_NUM GPIO_7 #define IC_SCK_PORT P1DIR //���÷��� ���뻹����� #define IC_SCK_PIN_MODE P1INP //��������ģʽ �������� ��̬ ��������̬ P10P11������������ģʽ //��������Ϊ����� #define IC_SCK_PIN_OUT() { IC_SCK_PORT |= IC_SCK_NUM; asm("NOP");IC_SCK_PIN_MODE&=~IC_SCK_NUM; } #define IC_MOSI_PIN P1_6 //�������� #define IC_MOSI_NUM GPIO_6 #define IC_MOSI_PORT P1DIR //���÷��� ���뻹����� #define IC_MOSI_PIN_MODE P1INP //��������ģʽ �������� ��̬ ��������̬ P10P11������������ģʽ //��������Ϊ����� #define IC_MOSI_PIN_OUT() { IC_MOSI_PORT |= IC_MOSI_NUM; asm("NOP");IC_MOSI_PIN_MODE&=~IC_MOSI_NUM; } #define IC_MISO_PIN P1_5 //�������� #define IC_MISO_NUM GPIO_5 #define IC_MISO_PORT P1DIR //���÷��� ���뻹����� #define IC_MISO_PIN_MODE P1INP //��������ģʽ �������� ��̬ ��������̬ P10P11������������ģʽ //��������Ϊ����� #define IC_MISO_PIN_OUT() { IC_MISO_PORT |= IC_MISO_NUM; asm("NOP");IC_MISO_PIN_MODE&=~IC_MISO_NUM; } #define IC_RST_PIN P1_4 //�������� #define IC_RST_NUM GPIO_4 #define IC_RST_PORT P1DIR //���÷��� ���뻹����� #define IC_RST_PIN_MODE P1INP //��������ģʽ �������� ��̬ ��������̬ P10P11������������ģʽ //��������Ϊ����� #define IC_RST_PIN_IN() { IC_RST_PORT &=~IC_RST_NUM; asm("NOP");IC_RST_PIN_MODE&=~IC_RST_NUM; } char PcdRead(unsigned char addr,unsigned char *pData); void SPIWriteByte(unsigned char infor); unsigned char SPIReadByte(void); unsigned char ReadRawRC(unsigned char Address); void WriteRawRC(unsigned char Address, unsigned char value); void SetBitMask(unsigned char reg,unsigned char mask) ; void ClearBitMask(unsigned char reg,unsigned char mask) ; void PcdAntennaOn(void); void PcdAntennaOff(void); void PcdReset(void); void M500PcdConfigISOType(unsigned char type); char PcdComMF522(unsigned char Command, //RC522������ unsigned char *pInData, //ͨ��RC522���͵���Ƭ������ unsigned char InLenByte, //�������ݵ��ֽڳ��� unsigned char *pOutData, //���յ��Ŀ�Ƭ�������� unsigned int *pOutLenBit) ; char PcdRequest(unsigned char req_code,unsigned char *pTagType); char PcdAnticoll(unsigned char *pSnr); void CalulateCRC(unsigned char *pIndata,unsigned char len,unsigned char *pOutData); char PcdSelect(unsigned char *pSnr); char PcdAuthState(unsigned char auth_mode,unsigned char addr,unsigned char *pKey,unsigned char *pSnr); char PcdWrite(unsigned char addr,unsigned char *pData); char PcdRead(unsigned char addr,unsigned char *pData); char PcdHalt(void); extern void PcdReset(void);//��λ extern void M500PcdConfigISOType(unsigned char type);//������ʽ extern char PcdRequest(unsigned char req_code,unsigned char *pTagType);//Ѱ�� extern char PcdAnticoll(unsigned char *pSnr);//������ extern void RC522_HAL_Init(void); ///////////////////////////////////////////////////////////////////// //MF522������ ///////////////////////////////////////////////////////////////////// #define PCD_IDLE 0x00 //ȡ����ǰ���� #define PCD_AUTHENT 0x0E //��֤��Կ #define PCD_RECEIVE 0x08 //�������� #define PCD_TRANSMIT 0x04 //�������� #define PCD_TRANSCEIVE 0x0C //���Ͳ��������� #define PCD_RESETPHASE 0x0F //��λ #define PCD_CALCCRC 0x03 //CRC���� ///////////////////////////////////////////////////////////////////// //Mifare_One��Ƭ������ ///////////////////////////////////////////////////////////////////// #define PICC_REQIDL 0x26 //Ѱ��������δ��������״̬ #define PICC_REQALL 0x52 //Ѱ��������ȫ���� #define PICC_ANTICOLL1 0x93 //����ײ #define PICC_ANTICOLL2 0x95 //����ײ #define PICC_AUTHENT1A 0x60 //��֤A��Կ #define PICC_AUTHENT1B 0x61 //��֤B��Կ #define PICC_READ 0x30 //���� #define PICC_WRITE 0xA0 //д�� #define PICC_DECREMENT 0xC0 //�ۿ� #define PICC_INCREMENT 0xC1 //��ֵ #define PICC_RESTORE 0xC2 //�������ݵ������� #define PICC_TRANSFER 0xB0 //���滺���������� #define PICC_HALT 0x50 //���� ///////////////////////////////////////////////////////////////////// //MF522 FIFO���ȶ��� ///////////////////////////////////////////////////////////////////// #define DEF_FIFO_LENGTH 64 //FIFO size=64byte #define MAXRLEN 18 ///////////////////////////////////////////////////////////////////// //MF522�Ĵ������� ///////////////////////////////////////////////////////////////////// // PAGE 0 #define RFU00 0x00 #define CommandReg 0x01 #define ComIEnReg 0x02 #define DivlEnReg 0x03 #define ComIrqReg 0x04 #define DivIrqReg 0x05 #define ErrorReg 0x06 #define Status1Reg 0x07 #define Status2Reg 0x08 #define FIFODataReg 0x09 #define FIFOLevelReg 0x0A #define WaterLevelReg 0x0B #define ControlReg 0x0C #define BitFramingReg 0x0D #define CollReg 0x0E #define RFU0F 0x0F // PAGE 1 #define RFU10 0x10 #define ModeReg 0x11 #define TxModeReg 0x12 #define RxModeReg 0x13 #define TxControlReg 0x14 #define TxAutoReg 0x15 #define TxSelReg 0x16 #define RxSelReg 0x17 #define RxThresholdReg 0x18 #define DemodReg 0x19 #define RFU1A 0x1A #define RFU1B 0x1B #define MifareReg 0x1C #define RFU1D 0x1D #define RFU1E 0x1E #define SerialSpeedReg 0x1F // PAGE 2 #define RFU20 0x20 #define CRCResultRegM 0x21 #define CRCResultRegL 0x22 #define RFU23 0x23 #define ModWidthReg 0x24 #define RFU25 0x25 #define RFCfgReg 0x26 #define GsNReg 0x27 #define CWGsCfgReg 0x28 #define ModGsCfgReg 0x29 #define TModeReg 0x2A #define TPrescalerReg 0x2B #define TReloadRegH 0x2C #define TReloadRegL 0x2D #define TCounterValueRegH 0x2E #define TCounterValueRegL 0x2F // PAGE 3 #define RFU30 0x30 #define TestSel1Reg 0x31 #define TestSel2Reg 0x32 #define TestPinEnReg 0x33 #define TestPinValueReg 0x34 #define TestBusReg 0x35 #define AutoTestReg 0x36 #define VersionReg 0x37 #define AnalogTestReg 0x38 #define TestDAC1Reg 0x39 #define TestDAC2Reg 0x3A #define TestADCReg 0x3B #define RFU3C 0x3C #define RFU3D 0x3D #define RFU3E 0x3E #define RFU3F 0x3F ///////////////////////////////////////////////////////////////////// //��MF522ͨѶʱ���صĴ������ ///////////////////////////////////////////////////////////////////// #define MI_OK 0x26 #define MI_NOTAGERR 0xcc #define MI_ERR 0xbb #endif