在C51单片机上对读写卡芯片MFRC522编程_第1页
在C51单片机上对读写卡芯片MFRC522编程_第2页
在C51单片机上对读写卡芯片MFRC522编程_第3页
在C51单片机上对读写卡芯片MFRC522编程_第4页
在C51单片机上对读写卡芯片MFRC522编程_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、在C51微控制器上读写卡芯片MFRC522编程1概述在整个射频识别系统中。读写卡模块起到了非常重要的作用,负责构建单片机和电子标签之间的通信。完整读和写卡模块的核心是读和写卡芯片MFRC522MFRC522是NXP公司为各种测量测试设备设计的低成本低功耗非接触读写卡芯片。用于13.56MHz非接触通信的此芯片应用了更先进的调制和解调概念,集成了许多通信方式和协议,内部强大的电路无需其他外部电路直接驱动天线,并通过独特的加密算法提供了更强的安全性。MFRC522是一个更成功的读写卡芯片,使用较少的连接进行串行通信,并允许根据用户需要在三种总线模式(SPI、I2C和串行UART)中进行选择,从而减

2、少连接数量、减少PCB板大小并降低成本。目前,MFRC522广泛用于低成本、小型、低功耗和单电源非接触通信,适用于智能仪器、板单元和便携式手持设备。目前MFRC522是全国主要城市的公共交通终端和非接触式公用电话应用程序性质21.高度集成的模拟电路模块,应用新概念完成调制和解调。2.支持ISO 14443A和MIFARE通信协议3.驱动器优化,将驱动级别输出到较少的外部设备作为天线4.支持MIFARE的加密算法5.多种主机接口选择: 10mit/s的SPI接口 I2C接口,快速传输模式速度400 kbit/s;高速模式的速度为3400 kbit/秒串行UART,波特率高达1228.8 kbit

3、/秒,帧取决于RS232接口,电压级别取决于提供的针脚电压6.弹性中断模式7.64字节的发送接收缓冲区8.软件断电、硬件断电和发射器断电三种低功耗模式可以通过关闭相应的模块或驱动器来实现节能效果。9.2.5至3.3V低电压、低功耗设计10.内部振荡器,链路27.12HZ修正11.可编程计时器12.自由编程的I/O端号13.内置温度传感器,在芯片温度太高时自动停止无线电频率信号传输14.体积小,只有5毫米/5毫米5毫米0.85毫米3系统结构MFRC522和MCU通过串行端口交换数据,并支持三种类型的微控制器接口:SPI、I2C和串行UART。MFRC522具有接口重置功能,可自动检测当前执行电源

4、重置或硬重置的微控制器的接口类型。MFRC522的数据处理模块执行数据的并行和串行到串行转换和奇偶校验,集成了多种协议以支持ISO14443A的所有层。状态和控制模块为环境和外部影响配置设备,使芯片性能达到最佳。加密1流密码设备是确保MFRC522通信稳定性和安全的关键,当芯片建立MIFARE电子标签和通信时,高速CRYPTO1流密码设备和非易失性密钥内存完成密钥验证。模拟电路包含负责发送和接收信号的强大驱动部分。4针配置作者使用Protel绘制的原理图:如上图所示,MFRC522芯片是32英尺HVQFN封装。此设备使用三个单独的电源以满足电磁兼容性要求。天线MFRC522芯片通过TX1和TX

5、2两个针脚输出13.56MHz的能量托架来驱动天线。如果电子标签接收来自天线的激发信号,则发送响应信号,并且天线接收的响应信号通过天线的外部电路发送到RX针脚进行处理。名称类类型气力TX1、TX2输出缓冲区天线驱动器WMID模拟基准电压RX输入模拟天线输入信号此外,为了确保驱动模块正常运行,MF RC522设计了单独的电源来为驱动部分供电。名称类类型气力TVDD电源发射机电源电压TVSS电源发射机电源区模拟电源MFRC522的模拟部分使用单独的电源供电。名称类类型气力AVDD电源模拟部分电源电压AVSS电源模拟部分电源数字电源MFRC522数字部分使用单独的电源供电。名称类类型气力DVDD电源

6、数字部分电源电压DVSS电源数字部分电源振荡器频率为27.12MHz的晶振通过缓冲区连接到OSCIN针脚和OSCOUT针脚。如果开发人员需要使用外部正振作为时钟,则可以从OSCIN引入外部时钟信号。名字类型功能OSCIN输入振荡器缓冲输入OSCOUT输出振荡器缓冲输出电子标签界面MFRC522为MIFARE活动天线的设计提供了适当的支持。MIFARE的信号可以通过SIGIN和SIGOUT处理。名字类型功能西格恩带有施密特触发器的输入输入MIFARE界面信号转导输出MIFARE接口输出AUX1/2输出辅助输出:用于测试串行连接器名字类型功能D1.D7I/O其他接口的数据线(测试脚,I2C,SPI

7、,UART)SDAI/O串行数据线I2C输入I2C是EA输入地址:提供I2C的地址在SPI接口模式下,列出每个插针的定义,因为在MFRC522和MCU之间最后选择了SPI接口。接脚名称速度方式SDANSSI2ClEAhD7密斯奥D6MOSID5SCK5实施MFRC522功能对MFRC522读写卡功能进行编程的第一步是定义要使用的命令单词和地址。您可以浏览芯片文档,了解MFRC522命令、MifareOne卡命令和MFRC522每个寄存器的功能和定义。接下来,打开Keil uVision4,将rc522.h文件添加到项目中,以定义可在所有射频识别过程中使用的命令单词和地址。看上图,整个522.h

8、文件默认为#define。您只需仔细输入芯片手册中的信息并注释即可。此外,为了便于管理,rc522.h中的语句分为4个类别,每个类别为:MFRC522命令词MifareOne卡指令词 MFRC522寄存器MF522通信错误处理代码现在,我们开始编程,以便实现MFRC522的特定功能。在项目中创建新的rc522.c文件时,请按照创建MFRC5222读写卡的说明进行操作。开始RC522完整读写卡流程图:初始化端口RC522重置找卡n有卡吗y避免碰撞,选择卡n可以用密码认证吗yny更改扇区?读或写卡根据上面的读写卡流程图,创建与每个框的内容相对应的过程。请求查找卡读写卡模块向外部发送激励信号,当Mi

9、fare卡进入读取器天线操作范围时,读写模块将发送命令。Mifare卡收到命令后,将双字节数据(卡上存储设备的卡类型号信息)发送给读取器。设置Mifare卡与RC522通信的第一步。寻找卡片请求函数:char PCD request(unsigned char req _ code,unsigned char * ptptgtype)说明:如何查找Req_codeIN:卡0x52=在诱导区中找到所有14443A兼容卡0x26=找到未进入休眠状态的卡Ptptgtype out:卡片类型代码0x4400=Mifare_UltraLight0x0400=Mifare_One(S50)0x0200=M

10、ifare_One(S70)0x0800=Mifare_Pro(X)0x4403=Mifare_DESFire操作成功返回值0表示完整的卡查找请求已完成。防止选定的Mifare卡崩溃由于RC522一次可以与一个Mifare卡通信,因此在完成找卡请求后,多个Mifare卡必须与Mifare卡联系以获得唯一的序列号,以防止多个Mifare卡同时处于读写卡模块天线工作范围内。防碰撞函数:char PC danticoll(unsigned char * PSNR)说明: pSnrOUT:用于卡序列号4字节如果操作成功,则函数返回值为0。收到Mifare卡的序列号后,请选择指定序列号的Mifare卡,

11、以便只有选定的卡可以与RC522进行更多通信,其他所有Mifare卡都将返回初始状态。选定的Mifar卡函数:char PCD select(unsigned char * PSNR)说明:从pSnrIN:之前的防碰撞操作中获得的Mifare卡序列号,4字节如果操作成功,则函数返回值为0。确认Mifare密码要访问存储在Mifare卡某个扇区中的数据,必须验证密码。用户首先将配置的密钥编程到c522内部密钥存储中,以比较存储在Mifare卡上的密钥和c522密钥存储中的密钥是否相同。只有确保这两个关键点相同后,才能对当前Mifare卡的此扇区执行以下步骤:密码验证函数:char pcdauth

12、state(unsigned charauth _ mode,unsigned char addr,unsigned char * pkey,unsigned char * PSNR)说明:Auth_modeIN:密码验证模式0x60=验证a密钥0x61=确认b键AddrIN:块地址PKeyIN:密码PSnrIN:卡序列号,4字节如果操作正确,则返回0。阅读密码认证完成后,可以从Mifare卡的扇区读取数据,每个读取数据的大小为16字节。读取操作函数:Char PCD read (unsigned char addr,unsigned char * pdata)说明:AddrIN:块地址,值范

13、围0-63PDataOUT:从Mifare卡读取的数据,16字节操作成功返回0。本设计中使用的程序:Void ctrlprocess(void)Unsigned char iiChar statusStatus=pcdrequest (PICC _ reqidl,rev ber0);/在“查找天线”区域中查找未进入休眠状态的卡,并返回卡类型2字节If(状态!=MI_OK)Returnstatus=pcdanticoll(rev ber2);/避免冲突,返回卡的序列号,4字节的序列号保留在revbufer 2中If(状态!=MI_OK)ReturnMemcpy (mlastselectednr,

14、revber 2,4);/将存储在revbffer 2中的4字节序列号复制并存储在MLastSelectedSnr变量中for(ii=0);Ii4Ii)Show 816 (0,5 2 * ii,(mlastselectednrii4)0x 0f);Show 816 (0,6 2 * ii,mlastselectednrii0x0f);/将4字节序列号从mlastselectednr 0保留到mlastselectednr 3,以方便以后的显示和传输2 Mifare One卡 Mifare卡的激励第一,通信系统的读卡器总是通过天线向周围发射一组恒定频率的电磁波,这组电磁波就是这里的信号。接着,非接触Mifare卡进入领导者操作范围后,将受到领导者的激励限制信号的激励。受此信号影响,Mifare卡内部的谐振电路会产生共振,从而在卡的内部电容器中产生电荷。在这个电容的另一端,我们可以通过单向传导电子泵将电容器中存储的电荷转移到另一个电容内。然后,整个谐振和电荷转移过程重复,当电容中存储的电压达到2 V时,该电容器成为Mi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论