rc522可以读什么型号的ic卡芯片?
发布网友
发布时间:2022-04-23 07:29
我来回答
共2个回答
热心网友
时间:2022-06-17 16:53
mifare(s50、s70、pro、UltraLight)、desfire、FM11RF08。。。。
凡是符合ISO 14443A 协议的卡片均可以读。
热心网友
时间:2022-06-17 16:53
这是什么意思? #包括
#定义RST 1 << 8 / / P0.7控制RC522复位,低电平有效复位/ *
******************* ************************************************** ************************************
**函数名称:RC522_RST() **功能:复位RC522
**调试说明:需要连接跳线JP5和RST。
********************************************** ************************************************** *********
* / INT RC522_RST(无效)
{/ / PINSEL0 = 00000000; / /设置针连接器GPIO
IO0DIR = RST; / /设置RST控制端口作为输出
IO0SET = RST; / / P0.7置高
DelayNS(10); / /延迟
IO0CLR = RST; / /置低P0.7
DelayNS(3);
IO0SET = RST;
返回0;
} / *
*********** ************************************************** ***************
**函数名称:ReadRawRC()
**功能:读取MF522寄存器
**参数:地址[IN] :寄存器地址
**返回值:读取 ******************************** ************************************************** **********************
* / unsigned char型ReadRawRC(无符号字符型地址)
{
无符号字符ucAddr;
无符号字符ucResult = 0;
ucAddr =((地址<< 1)&的0x7E)| 0x80的;
ucResult = MSPI_SendData(ucAddr);
回报ucResult;
/ *
******************************* ************************************************** **********************
**函数名称:WriteRawRC()
**功能:写MF522寄存器
* *参数:地址[IN]:寄存器地址
**值[IN]:写入的值
**返回值:无
************* ************************************************** ****************************************
* /无效WriteRawRC(无符号字符地址,无符号字符值)
{无符号字符ucAddr;
ucAddr =((地址<< 1)&0x7E的);
MSPI_SendData(ucAddr);
MSPI_SendData(值);
返回0;} / *
******************************** ************************************************** *********************
**函数名称:SetBitMask()
**功能:设置MF522寄存器位
* *参数:第[IN]:寄存器地址
**口罩[IN]:设定值
**返回值:无
************* ************************************************** ****************************************
* /无效SetBitMask(无符号字符REG,unsigned char型面膜)
{
字符TMP = 0X0;
TMP = ReadRawRC(REG);
WriteRawRC(REG,tmp目录|面罩);
返回0;
} / *
*********** ************************************************** **************
**函数名称:ClearBitMask()
**功能:清晰MF522寄存器位
**参数:REG [IN] :寄存器地址
**口罩[IN]:清位值
**返回值:无
****************** ************************************************** ***********************************
* /无效ClearBitMask(unsigned char型REG,无符号字符型面罩)
{
字符TMP = 0X0;
tmp目录ReadRawRC(REG);
WriteRawRC(REG,TMP&面罩);
返回0; } / *
*********** ************************************************** **************
**函数名称:PcdAntennaOn()
**功能:打开天线
**功能:每次开启时间或关闭还有的BR 1ms的**返回值发射机天线之间至少间隔:无
*********************** ************************************************** ******************************
* /无效PcdAntennaOn()
{
无符号烧焦我; I = ReadRawRC(TxControlReg);
{
SetBitMask(TxControlReg,×03)((I&0x03)的!);
}返回0;
} / *
*********** ************************************************** **************
**函数名称:PcdAntennaOff()
**功能:关闭天线
**功能:每次开机时有至少或BR 1ms的**返回值发射天线之间的紧密间距:无
************************** ************************************************** ***************************
* /无效PcdAntennaOff()
{
ClearBitMask(TxControlReg, ×03);
} / *
*********************************** ************************************************** ******************
**函数名称:PcdComMF522()
**功能:通过沟通RC522和ISO14443卡 **功能说明:命令[IN]:RC522命令字
** pIndata [IN]:RC522通过数据 ** InLenByte [IN]:发送数据的字节长度
** pOutData [OUT]:接收到的返回数据卡
*** pOutLenBit [OUT]:返回数据位长度
**返回值:成功返回MI_OK
********* ************************************************** ********************************************
* /字符PcdComMF522(无符号字符命令,
无符号字符* pInData,
unsigned char型InLenByte,
无符号字符* pOutData,
无符号整型* pOutLenBit)
{
>字符状态= MI_ERR;
无符号字符IRQEN = 0×00;
无符号字符WAITFOR = 0×00;
无符号字符lastBits;
无符号字符N;
无符号整数I;
开关(命令)
{
情况PCD_AUTHENT:
IRQEN = 0X12;
WAITFOR = 0X10;
突破;
情况PCD_TRANSCEIVE:
IRQEN = 0x77;
WAITFOR = 0X30;
突破;
默认:
突破;
WriteRawRC(ComIEnReg,IRQEN | 0x80的);
ClearBitMask(ComIrqReg,如0x80);
WriteRawRC(CommandReg,PCD_IDLE);
SetBitMask(FIFOLevelReg,如0x80);
就(i = 0;我<InLenByte,我+ +)
{WriteRawRC(FIFODataReg,pInData由[i]);}
WriteRawRC(CommandReg,命令);
如果(命令== PCD_TRANSCEIVE)
{SetBitMask(BitFramingReg,如0x80);}
I = 600 ;/ /时钟频率调节,操作M1卡最大等待时间为25ms {
N = ReadRawRC(ComIrqReg);
我 - ;
而((i! = 0)&&(N&0X01)&&(N&WAITFOR)!);
ClearBitMask(BitFramingReg,如0x80);!
如果(i! = 0)
{
如果((ReadRawRC(ErrorReg)及0X1B))
{
状态= MI_OK;
如果(N&IRQEN&0X01)
{状态= MI_NOTAGERR;}
如果(命令== PCD_TRANSCEIVE) {
N = ReadRawRC(FIFOLevelReg);
lastBits = ReadRawRC(CONTROLREG)&0X07;
如果(lastBits)
{* pOutLenBit =(N-1)* 8 + lastBits;}
{* pOutLenBit = N * 8;}
如果(N == 0)
{N = 1;}
如果(N> MAXRLEN)
{N = MAXRLEN;}
就(i = 0;我<N;我+ +)
{pOutData由[i] = ReadRawRC(FIFODataReg);}
}
}
{状态= MI_ERR;}
BR />}
SetBitMask(CONTROLREG,如0x80); / /停止定时器现在
WriteRawRC(CommandReg,PCD_IDLE);
返回状态;
} 2007-8-11 22:33:00 jianjian1981
级别:初中级
帖子:51
点数:1461
门派:无门无派
>报名:2楼,2006年4月19日---------------------------------------- ----------------------------------------
/ *
************************************************** ************************************************** ***
**函数名称:PcdRequest()
**功能:寻卡
**功能描述:req_code [IN]:寻卡方式
** 0x52 =感应区找到所有匹配的14443A标准卡
** 0X26 =请求无法进入休眠卡
** pTagType [OUT]:卡片类型代码
** 0x4400 = Mifare_UltraLight
* * 0x0400 = Mifare_One(S50)
** 0x0200 = Mifare_One(S70)
**为0x0800 = Mifare_Pro(倍)
** 0x4403 = Mifare_DESFire
**返回值:成功返回MI_OK
**************** ************************************************** *********
* /字符PcdRequest(无符号字符req_code为unsigned char * pTagType)
{
字符状态;
无符号整型UNLEN;
unsigned char型ucComMF522Buf [MAXRLEN]; ClearBitMask(Status2Reg,0X08);
WriteRawRC(BitFramingReg,0X07); SetBitMask(TxControlReg,0×03);
ucComMF522Buf [0] = req_code;状态= PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,1,ucComMF522Buf,与UNLEN);
如果((状态== MI_OK)&&(UNLEN == 0X10))
{
* pTagType = ucComMF522Buf [0];
(pTagType 1)= ucComMF522Buf [1];
}
{状态= MI_ERR;}
返回状态;
} / *
*********** ************************************************** **************
**函数名称:PcdAnticoll()
**功能:防碰撞功能
**说明:PSNR [OUT] :卡序列号,4字节
**返回值:成功返回MI_OK
************************** ************************************************** ***************************
* /字符PcdAnticoll(无符号字符* PSNR)
{
字符状态;
unsigned char型我,snr_check = 0;
无符号整型UNLEN;
unsigned char型ucComMF522Buf [MAXRLEN];
ClearBitMask(Status2Reg,0X08);
WriteRawRC(BitFramingReg,为0x00);
ClearBitMask(CollReg,如0x80);
ucComMF522Buf [0] = PICC_ANTICOLL1;
ucComMF522Buf [1] = 0X20;状态= PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,2,ucComMF522Buf,与UNLEN);如果(状态== MI_OK)
{
就(i = 0; I <4; i + +)
{
*(PSNR + I)= ucComMF522Buf [I] ;
snr_check ^ = ucComMF522Buf由[i];
}
如果(snr_check = ucComMF522Buf由[i]!)
{状态= MI_ERR;}
}
SetBitMask(CollReg,如0x80);
返回状态;
} / *
*********** ************************************************** **************
**函数名称:PcdSelect()
**功能:选中的卡
**功能:PSNR [IN]:卡序列号,4字节
**返回值:成功返回MI_OK
**************************** ************************************************** *************************
* /字符PcdSelect(无符号字符* PSNR)
{
字符状态;
unsigned char型我;
无符号整型UNLEN;
unsigned char型ucComMF522Buf [MAXRLEN];
ucComMF522Buf [0] = PICC_ANTICOLL1; ucComMF522Buf [1] = 16进制值为0x70;
ucComMF522Buf [6] = 0;
就(i = 0; I <4; i + +)
{
ucComMF522Buf [I + 2] = *(PSNR + I);
ucComMF522Buf [6] ^ = *(PSNR + I);
}
CalulateCRC(ucComMF522Buf,7,&ucComMF522Buf [7]);
ClearBitMask(Status2Reg,0X08);状态= PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,9,ucComMF522Buf,与UNLEN);
如果((状态== MI_OK)&&(UNLEN == 0X18))
{状态= MI_OK;}
{状态= MI_ERR;}回报状态;
}
rc522可以读什么型号的ic卡芯片?
mifare(s50、s70、pro、UltraLight)、desfire、FM11RF08。。。凡是符合ISO 14443A 协议的卡片均可以读。
RC522读卡芯片怎么用?
MFRC522通过内部寄存器的读写控制与Mifare1IC卡数据通信。怎么用单片机来控... MF RC522内部有64个寄存器,共分4页:PAGE0:COMMAND AND STATUS;PAGE1:COMMAND;PAGE2:CFG;PAGE3:TEST。MF RC522通过内部寄存器的读写控制与Mifare 1 IC卡数据通信。怎么用单片机来控制的? 展开 我来答 1个回答 #热议# 已婚女...
RC522芯片与单片机通信
单片机 与 上位机串口通信,需要单片机的串口波特率 与 上位机串口波特率 要一致,单片机与RC522 IC卡读卡芯片是用SPI通信的,也就是上位机 向 单片机 发送 读卡指令 单片机 通过 读卡程序控制 RC522,读取 接近读卡芯片的 IC卡数据,通过串口上传给 上位机。
小区门禁卡可以复制吗?
1、首先,该门禁卡需要是ID卡才能复制,如果是IC卡复制的门槛目前来说就非常的高,一般复制都是采用57卡写入ID号即称为复制,也可采用其他类57的芯片。2、市面上有多种门禁卡复制的工具,使用方法也基本类似,一般先开机,把原来的门禁卡放在复制工具的读取资料区域上面,准备复制资料。3、按复制资料的...
小区门禁卡可以复制吗?
部分小区门禁卡可以复制,重庆商报记者找到一家开锁公司,对方称可以复制门禁卡,上门服务90元,讨价还价后以50元成交。记者借到一张位于石油路某小区的门禁卡,开锁的罗师傅拿出一个读卡机器,把母卡放在机器背后,很快显示屏读出一串数字。接着他又拿出一张空白卡,放在读卡器后,不到半分钟,门禁卡就...
施乐2020密码重置
应答器是RFID系统的信息载体,应答器大多是由耦合原件(线圈、微带天线等)和微芯片组成无源单元。rfid天线芯片有哪些? 类似RC522和nRF905之类的,不论高频低频。_百度知 ... —— 专业解答:1:太多了,TRF7960,RC600,RC631,24L01,R1000,R2000等等。2:需要设计RFID可以联系。
常见的小区门禁卡是什么原理
因为里面有一个称之为RFID的芯片,当我们拿着含有RFID芯片的卡片通过卡片阅读机时,卡片阅读机所发射出来的电磁波就会开始读取卡片里面的信息,这里面的信息不但可以读出,而且还可以写入,修改,因此芯片卡不但只是个钥匙它更是张电子身份证。因为只要在芯片中写入你的个人数据,在卡片阅读机的地方就可以...