1/3
文档分类:通信/电子

基于Arduino的MiFare射频卡读写机制的研究.docx


下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

特别说明:文档预览什么样,下载就是什么样。

0/100
您的浏览器不支持进度条
下载所得到的文件列表
基于Arduino的MiFare射频卡读写机制的研究.docx
文档介绍:
基于Arduino的MiFare射频卡读写机制的研究.docx基于Arduino的MiFare射频卡读写机制的研究摘要:本文阐述了在ArduinoUNO上对MiFareOne卡射频识别卡进行读写的软件实现,并重点描述了阅读器与卡片之间的通信过程。Abstract:ThispaperexpoundsthesoftwareofimplementingMiFareOneradiofrequencyidentificationcardbasedonArduinoUNO,municationprocessbetweenthereaderandthecard.关键词:射频识别;Arduino;MFRC522;MiFareOne;读/写Keywords:radiofrequencyidentification;Arduino;MFRC522;MiFareOne;read/write中图分类号:TP368.1文献标识码:A文章编号:1006-4311(2015)07-0071-021MiFareOne卡片的特性与结构MiFareOne卡片内部包括一块微型芯片和一个天线。在工作时,卡片与阅读器之间通过13.56MHz频段进行通信。每张卡片具有唯一的序列号,具有防冲突机制,同时对卡内存储的数据通过密码进行读写保护。卡片的微型芯片内建了EEPROM存储器,以MiFareOneS50为例,存储器容量为8Kbit。整个存储空间被划分为16个扇区,记为扇区0-15,每个扇区有4个数据块,记为数据块0、1、2、3,每个数据块16个字节,对卡片的读写以数据块为单位进行,如图1所示。其中第0扇区第0数据块为厂商标志块,用于存储厂商信息与卡号。另外每一个扇区的最后一个数据块用于存储本扇区的读写密码。2Arduino与MFRC522的通信2.1Arduino与MFRC522的连接Arduino通过SPI①与MFRC522进行连接,连接方式如表1所示。2.2Arduino对MFRC522的控制Arduino对MFRC522的控制是通过对MFRC522的寄存器进行读写来实现的。mand、CFG、TestRegister共计64个寄存器,所有寄存器与其地址之间在预处理中建立绑定关系,例如:#mandReg0x01读写MFRC522的寄存器时需要使用Arduino的SPI库中的transfer()函数,所以在程序的setup()函数中要调用SPI.begin()对SPI总线等进行初始化。使用SPI.transfer()函数时要按照先传送读写地址,再读取或写入数据的方式来完成。在传送地址时,需要同时告知此次操作是读还是写,地址格式如表2所示。以写函数为例,地址格式要求为:0XXXXXX0,函数实现如下:/*addr:寄存器地址;val:写入值;*/voidWrite_MFRC522(ucharaddr,ucharval){digitalWrite(chipSelectPin,LOW);SPI.transfer((addr<<1)&0x7E);SPI.transfer(val);digitalWrite(chipSelectPin,HIGH);}3读/写卡片时的数据传输过程在向卡片写入数据时,首先要将写命令字和进行写操作的数据块号输入MFRC522的FIFO缓冲区,然后启动阅读器与卡之间的数据传输。 内容来自淘豆网www.taodocs.com转载请标明出处.