在C51单片机上对读写卡芯片MFRC522编程(3)

2019-08-02 00:47

pData[OUT]:从Mifare卡中读出的数据,16字节 操作成功返回0.

●本次设计中使用的程序: void ctrlprocess(void) {

unsigned char ii; char status;

status=PcdRequest(PICC_REQIDL,&RevBuffer[0]);//寻天线区内未进入休眠状态的卡,返回卡片类型 2字节

if(status!=MI_OK) {

return; }

status=PcdAnticoll(&RevBuffer[2]);//防冲撞,返回卡的序列号, 4字节的序列号被存放在RevBuffer[2]中

if(status!=MI_OK) {

return; }

memcpy(MLastSelectedSnr,&RevBuffer[2],4);//将RevBuffer[2]中存放的4字节的序列号复制到MLastSelectedSnr变量中存储

for(ii=0;ii<4;ii++) {

Show816(0,5+2*ii,(MLastSelectedSnr[ii]>>4)&0x0f); Show816(0,6+2*ii,MLastSelectedSnr[ii]&0x0f); } //将4个字节序列号分别存放到MLastSelectedSnr[0]到MLastSelectedSnr[3],方便后续的显示与发送

11

2 Mifare One卡

① Mifare卡的激励

首先,通信系统中的读卡器始终都在通过天线向周围发射一组频率固定的电磁波,这组电磁波即激励信号。接下来,一旦非接触式Mifare卡进入读写器工作范围内,即会被读写器的激励限号信号所激励。受到激励信号的影响,Mifare卡内部的谐振电路就会产生共振,从而使卡的内部电容中内产生了电荷。而在这个电容的另一端,我们通过一个单向导通的电子泵,就可以将电容内储存的电荷转移到另一个电容内储存。然后,整个共振和电荷转移的过程周而复始,当电容中存储的电压达到2 V时,此电容就成为Mifare卡的电源,并开始为卡内的其他电路提供工作电压,从而帮助Mifare卡完成应答、存储、通信等一系列功能。

② ATR模块的启动:Answer To Request(“应答读写器发出的请求”) 当非接触式Mifare卡进入读写器的工作范围内时,我们就可以控制读写器向Mifare卡发出Request all(或Request std)指令,收到指令后的Mifare卡将启动ATR模块。这时,Mifare卡的内部芯片就会将卡的类型号(TagType)传送给读写器,从而建立Mifare卡与读写器的联络。

注意,如果不进行ATR的启动,读写器对卡的进一步操作(读/写操作等)将不会进行。所以,我们可以将ATR启动理解为Mifare卡与读写器之间通信的第一步。

③ AntiCollision模块:Mifare卡防冲突

当有多张Mifare卡处在读写器的天线工作范围内时,AntiCollision模块,即防冲突功能将被启动。这时,读写器首先将逐一地与每一张Mifare卡进行通信,从而读取每一张Mifare卡序列号(Serial Number)。由于每一张Mifare卡都的序列号都是独一无二的,因此我们就可以借助读写器中的AntiCollision防重叠模块以及Mifare卡上的防重叠模块,通过Mifare卡唯一的序列号来选定多张Mifare卡中的一张。被选中的卡就可以畅通无阻地与读写器进行数据交换,而那些未被选中的卡则处于待命状态,准备随时与读写器进行通信联络。

12

④ Select Application 模块:选中并锁定Mifare卡片

当Mifare卡与读写器完成了上面的两个步骤之后,若读写器要想对卡进行读/写操作,还须对已经完成了ATR启动的Mifare卡进行“Select”操作,从而使卡真正地被选中。

被选中并锁定的Mifare卡会将卡片上存储的“Size” 字节传送给读写器。只有当读写器收到这一字节之后,才可对卡进行下一步的操作。

⑤ Authentication & Access Control 模块:认证及存取控制模块

以上的三个步骤完成后,我们还必须要对卡上已经设置了的密码进行认证,只有密码匹配,我们才能被允许进一步的读/写操作。

Mifare卡上有16个扇区,每个扇区都能够独立设置各自的密码,各个扇区之间互不干涉,因此我们必须逐一地分别加以认证,才能对密码匹配的扇区进行下一步的操作。

这种设计的优点是每个扇区都可以独立开来,应用于一个特定的场合,从而让一张Mifare卡实现多种功能,我们校内的“一卡通”就是一个典型的例子。

Mifare卡的密码的认证采用了三次相互的认证的方法,安全性极佳。试图靠猜测密码打开卡某个扇区几乎不可能。

⑥ Control & Arithmetic Unit:控制及算术运算单元

该单元主要由Mifare卡内部的中中央微处理器(MCU)构成,它是整个卡的“大脑”。它对卡的各个单元进行控制,同时它还需要完成对各种数据的运算处理。

⑦ RAM/ROM:存储单元

Mifare卡内部的RAM主要起到配合控制及算术运算单元,将运算的结果进行暂时存储的功能。RAM中的数据在卡失掉电源后(卡片离开读写器天线的有效工作范围)将会丢失。

13

而ROM中则存储了一些已经固化了的Mifare卡运行所必须的程序指令,当需要调用时,由控制及算术运算单元直接从ROM中取出,从而通过指令对每个单元进行控制。

14


在C51单片机上对读写卡芯片MFRC522编程(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:东师范计算机应用基础17春在线作业3

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: