|
//******************************************************************/
// Mifare_One卡片命令字 */
//******************************************************************/
#define PICC_REQIDL 0x26 //尋天線區(qū)內(nèi)未進(jìn)入休眠狀態(tài)
#define PICC_REQALL 0x52 //尋天線區(qū)內(nèi)全部卡
#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 //調(diào)塊數(shù)據(jù)到緩沖區(qū)
#define PICC_TRANSFER 0xB0 //保存緩沖區(qū)中數(shù)據(jù)
#define PICC_HALT 0x50 //休眠
這段命令字都是在哪里看到的啊
查了很多資料,都沒有找到,十分難受
//******************************************************************/
//功 能:防沖撞 /
//參數(shù)說明: pSnr[OUT]:卡片序列號,4字節(jié) /
//返 回: 成功返回MI_OK /
//******************************************************************/
char PcdAnticoll(unsigned char *pSnr)
{
char status;
unsigned char i,snr_check=0;
unsigned int unLen;
unsigned char ucComMF522Buf[MAXRLEN];
ClearBitMask(Status2Reg,0x08);
WriteRawRC(BitFramingReg,0x00);
ClearBitMask(CollReg,0x80);
ucComMF522Buf[0] = PICC_ANTICOLL1;
ucComMF522Buf[1] = 0x20; //這里為啥第二位數(shù)據(jù)是0x20??????
status = PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,2,ucComMF522Buf,&unLen);
if (status == MI_OK)
{
for (i=0; i<4; i++)
{
*(pSnr+i) = ucComMF522Buf[i];
snr_check ^= ucComMF522Buf[i];
}
if (snr_check != ucComMF522Buf[i])
{ status = MI_ERR; }
}
SetBitMask(CollReg,0x80);
return status;
}
還有這里的關(guān)于RF522讀卡的防沖撞操作,數(shù)據(jù)幀的格式是什么?
急求了解的大神講解,謝謝
|
|