【精品】rfid 开发技术及实践 (西电版第5章高频rfid阅读器设计精品ppt课件.ppt

上传人:1595****071 文档编号:86273045 上传时间:2023-04-14 格式:PPT 页数:142 大小:1.91MB
返回 下载 相关 举报
【精品】rfid 开发技术及实践 (西电版第5章高频rfid阅读器设计精品ppt课件.ppt_第1页
第1页 / 共142页
【精品】rfid 开发技术及实践 (西电版第5章高频rfid阅读器设计精品ppt课件.ppt_第2页
第2页 / 共142页
点击查看更多>>
资源描述

《【精品】rfid 开发技术及实践 (西电版第5章高频rfid阅读器设计精品ppt课件.ppt》由会员分享,可在线阅读,更多相关《【精品】rfid 开发技术及实践 (西电版第5章高频rfid阅读器设计精品ppt课件.ppt(142页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、RFID 开发技术及实践(西电版)第5章 高频RFID阅读器设计第5章 高频RFID阅读器设计 2 25.1 Mifare卡卡Mifare是NXP Semiconductors(恩智浦半导体)拥有的商标之一。Mifare卡是目前世界上使用量大、技术成熟、性能稳定、内存容量大的一种感应式智能IC卡。5.1.1 Mifare卡的特点卡的特点Mifare技术是NXP(前身为飞利浦半导体)所拥有的13.56 MHz非接触性辨识技术。NXP并不制造卡片或卡片阅读机,而是在开放的市场上贩售相关技术与芯片,卡片和卡片阅读器的制造商再利用它们的技术来研发产品出售给一般使用者。第5章 高频RFID阅读器设计 3

2、 3Mifare卡经常被认为是一种智能卡的技术,这是因为它可以在卡片上兼具读写的功能。事实上,Mifare卡仅具备记忆功能,必须搭配阅读器才能达到读写功能。Mifare卡的非接触式读写功能是为处理大众运输系统中的付费交易部分来设计的,其与众不同的地方是具备执行升幂和降序的排序功能,简化资料读取的过程。尽管接触性智能卡也能够执行同样的动作,但非接触性智能卡的速度更快且操作更简单,而且卡片阅读机几乎不需要任何维修,卡片也较为耐用。第5章 高频RFID阅读器设计 4 4Mifare卡除了保留接触式IC卡的原有优点外,还具有以下特点:操作简单、快捷。由于采用射频无线通信,使用时无需插拔卡及不受方向和正

3、反面的限制,完成一次读写操作仅需0.1 s,大大提高了每次使用的速度,既适用于一般场合,又适用于快速、高流量的场所。抗干扰能力强。Mifare卡中有快速防冲突机制,在多卡同时进入读写范围内时,能有效防止卡片之间出现数据干扰,读写设备可一一对卡进行处理,提高了应用的并行性及系统工作的速度。第5章 高频RFID阅读器设计 5 5 可靠性高。Mifare卡与阅读器之间没有机械接触,避免了由于接触读写而产生的各种故障;而且卡中的芯片和感应天线完全密封在标准的PVC中,进一步提高了应用的可靠性和卡的使用寿命。适合于一卡多用。Mifare 卡的存储结构及特点(大容量16分区、1024字节),能应用于不同的

4、场合或系统,有很强的系统应用扩展性,可以真正做到“一卡多用”。第5章 高频RFID阅读器设计 6 6第5章 高频RFID阅读器设计 7 7第5章 高频RFID阅读器设计 8 8图5-1 MF1读写示意图 第5章 高频RFID阅读器设计 9 9目前,市场上较常见的MF1 S50卡的主要性能指标如下:MifareRF接口(ISO/IEC14443A)。非接触数据传输并提供能源(不需电池)。工作距离:可达100 mm(取决于天线的尺寸结构)。工作频率:13.56 MHz。快速数据传输:106 kb/s。高度数据完整性保护:16 bitCRC、奇偶校验、位编码和位计数。真正的防冲突。典型票务交易:小于

5、100 ms(包括备份管理)。第5章 高频RFID阅读器设计 10 101 KB EEPROM,分为16个区,每区4个块,每块16字节。用户可定义内存块的读写条件。数据耐久性为10年。写入耐久性可达100 000次。相互三轮认证(ISO/IEC DIS9798-2)。带重现攻击保护的射频通道数据加密。每区(每个应用)两个密钥,支持密钥分级的多应用场合。每卡一个唯一序列号。在运输过程中以传输密钥保护对EEPROM的访问权。第5章 高频RFID阅读器设计 11 11MF1 S50集成电路芯片内含1 KB EEPROM、RF接口和数字控制单元。能量和数据通过天线传输,卡中天线为几匝线圈,直接连接到芯

6、片上,不再需要额外的组件。Mifare卡的结构如图5-2所示。图5-2中,各组件的功能简述如下:RF接口:调制解调器检波器时钟发生器的上电复位稳压器。防冲突:读写范围内的几张卡可以逐一选定和操作。认证:在所有存储器操作之前进行认证过程,以保证必须通过各块指定的密钥才能访问该块。第5章 高频RFID阅读器设计 12 12图5-2 Mifare卡的结构 第5章 高频RFID阅读器设计 13 13控制逻辑单元:数值以特定的冗余格式存储,可以增减。EEPROM接口:是与内部EEPROM的通信接口。加密单元:域验证的CRYPTO1数据流加密,保证数据交换的安全。EEPROM:总容量为1 KB,每区的最后

7、一块称做“尾块”,含有两个密钥和本区各块的读写条件。第5章 高频RFID阅读器设计 14 145.1.3 Mifare1卡存储器组织卡存储器组织在MF1 S50卡中,10248 bit EEPROM存储器分为16个扇区,每区4块,每块16字节。在擦除后的状态下,EEPROM的单元读为逻辑“0”,写后的状态下读为“1”。EEPROM结构如图5-3所示。1.制造商占用块制造商占用块制造商占用块是第1扇区的第1块(块0),它含有集成电路制造商数据。出于安全和系统需求,此块是制造商在生产过程中编程后写保护的。制造商占用块的结构如图5-4所示。第5章 高频RFID阅读器设计 15 15图5-3 EEPR

8、OM结构 第5章 高频RFID阅读器设计 16 16图5-4 制造商占用块的结构 第5章 高频RFID阅读器设计 17 172.数据块数据块各扇区均有3个16字节的块用于存储数据(区0只有两个数据块以及一个只读的厂商代码块)。数据块可以通过读写控制位设置为:读写块:例如用于非接触门禁管理。数值块:可直接控制存储值的命令,如增值、减值。其中,数值块具有电子钱包功能(有效命令包括read、write、increment、decrement、restore、transfer)。数值块有固定的数据格式,以便于错误检测、纠错和备份管理。数值块中存储的数值和地址只能通过数值块格式的写操作生成。数值和地址说

9、明如下:第5章 高频RFID阅读器设计 18 18 数值:有符号4字节数值。数值的最低字节存储在最低地址字节。负值以标准的2的补码形式存储。出于数据完整性和安全原因,数值存储三次,两次不取反,一次取反。地址(Adr):1字节地址,当进行备份管理时,可用于保存块的地址。地址保存四次,两次取反,两次不取反。在increment、decrement、restore和transfer 操作中,地址保持不变。它只能通过write命令更改。数值块的结构如图5-5所示。第5章 高频RFID阅读器设计 19 19图5-5 数值块的结构第5章 高频RFID阅读器设计 20203.尾块尾块(块块3)各扇区均有一个

10、尾块,存有:密钥A和B(可选),读时返回逻辑“0”。该区四个块的读写条件,存储在字节69。读写控制位也指定了数据块的类型(读写块或数值块)。如果不需要密钥B,块3的最后6字节可以用作数据字节。尾块的字节9可用于用户数据。因为此字节享有与字节6、7、8相同的读写权限。尾块的结构如图5-6所示。第5章 高频RFID阅读器设计 21 21图5-6 尾块的结构 第5章 高频RFID阅读器设计 22221)读写条件每个数据块和尾块的读写条件均由3个bit定义,并以非取反和取反形式保存在各个区的尾块中。读写控制位管理着使用密钥A和B读写存储器的权限。如果知道相关的密钥,并且当前读写条件允许,读写条件是可以

11、更改的,读写条件说明如图5-7所示。第5章 高频RFID阅读器设计 2323图5-7 读写条件说明 第5章 高频RFID阅读器设计 24242)尾块的读写条件对密钥和控制位的读写取决于尾块(块3)的访问控制位,这些控制位存放在字节68中,以正值和反值的形式存放,分为“禁止”、“KEYA”、“KEYB”和“KEYA|B(KEYA或KEYB)”。读写条件在尾块中的存储位置如表5-1所示。读写条件定义如表5-2所示。由上表可知,尾块和KEY A被预定义为传输配置状态。因为在传输配置状态下KEY B可读,新卡必须用KEY A认证。由于访问控制位本身也可以禁止访问,所以操作时应当特别小心。第5章 高频R

12、FID阅读器设计 2525表表5-1 读写条件在尾块中的存储位置读写条件在尾块中的存储位置 第5章 高频RFID阅读器设计 2626表表5-2 读写条件定义读写条件定义 第5章 高频RFID阅读器设计 27273)数据块的访问控制条件对数据块(块0至2)的读写访问取决于其访问控制位,分为“禁止”、“KEY A”、“KEY B”和“KEY A|B”。相关访问控制位的设置决定了其用途以及相应的可用命令。读写块:允许读、写操作。数值块:运行另外的数值操作,如加值、减值、转存和恢复。在用于非充值卡的一种情况(“001”)下,只能够读和减值。在另一种情况(“110”)下,可以用KEYB充值。制造厂商块:

13、只读,不受访位控制位设置的影响。密钥管理:在传输配置状态下,必须用KEY A认证。数据块的访问控制条件如表5-3所示。第5章 高频RFID阅读器设计 2828表表5-3 数据块的访问控制条件数据块的访问控制条件 第5章 高频RFID阅读器设计 2929如果相应扇区尾块KEY B可读,则不得用作认证(上表中所有灰色行)。如果阅读器试图用灰色行的访问控制条件以KEY B认证任何扇区的任何块,卡将在认证后拒绝所有后续存储器访问。第5章 高频RFID阅读器设计 30305.1.4 Mifare卡读写卡读写读写Mifare卡的命令由阅读器发出,按照读写流程通过防碰撞和认证才能真正对卡片进行操作,其操作如

14、图5-8所示。1.呼叫呼叫(request standard/all)卡片一旦进入阅读器范围内,就会收到载波并进行充电。卡片上电复位后,如果收到阅读器发来的request命令,则通过发送应答码ATQA(符合ISO/IEC 14443A)回应阅读器向天线范围内所有卡发出的request命令。第5章 高频RFID阅读器设计 31 31图5-8 Mifare卡读写 第5章 高频RFID阅读器设计 32322.防碰撞循环防碰撞循环(anticollision loop)在防碰撞循环中,可以读回一张卡的序列号。如果在阅读器的工作范围内有几张卡,则它们可以通过唯一序列号区分开来,并可选定以进行下一步交易。

15、未被选定的卡转入待命状态,等候新的request命令。3.选卡选卡(select card)阅读器通过select card命令选定一张卡进行认证存储器的相关操作。该卡返回选定应答码(ATS=08h),明确所选卡的卡型。4.三轮认证三轮认证(3 pass authentication)选卡后,阅读器指定后续读写的存储器位置,并用相应密钥进行三轮认证。认证成功后,所有的存储器操作都是加密的。第5章 高频RFID阅读器设计 33335.存储器操作存储器操作经过三轮认证后,阅读器可对卡片执行下列操作:读数据块。写数据块。减值:减少数据块内的数值,并将结果保存在临时内部数据寄存器中。加值:增加数据块内

16、的数值,并将结果保存在数据寄存器中。恢复:将数据块内容移入数据寄存器。转存:将临时内部数据寄存器的内容写入数值块。第5章 高频RFID阅读器设计 34346.数据完整性数据完整性在阅读器和卡之间的非接触通信链接中实施下列机制,以保证数据传输的可靠性:每块16 bit CRC。每字节的奇偶位。位计数检查。位编码,以区分“1”、“0”和无信息。通道监控(协议序列和位流分析)。第5章 高频RFID阅读器设计 35357.安全安全安全认证中的三轮认证采用符合ISO 9798-2的协议,以保证高度的安全性。三轮认证过程如下:阅读器指定要访问的区,并选择密钥A或B。第一轮为卡从位块读区密钥和访问条件。然后

17、,卡向阅读器发送随机数。第二轮为阅读器利用密钥和随机数计算回应值。回应值连同阅读器的随机数发送给卡。第三轮为卡通过与自己的随机数比较验证阅读器的回应值,再计算回应值并发送。阅读器通过比较验证卡的回应值。在第一个随机数传送之后,卡与阅读器之间的通信都是加密的。第5章 高频RFID阅读器设计 36365.2 MF RC522MF RC522(简称RC522)是应用于13.56 MHz非接触式通信中高集成度读写卡系列芯片中的一员。它是NXP公司针对“三表”应用推出的一款低电压、低成本、体积小的非接触式读写卡芯片,是智能仪表和便携式手持设备研发的较好选择。第5章 高频RFID阅读器设计 37375.2

18、.1 概述概述MF RC522运用了先进的调制和解调概念,完全集成了13.56 MHz下所有类型的被动非接触式通信方式和协议,并支持ISO 14443A的多层应用。其内部发送器部分可驱动阅读器天线与ISO 14443A/Mifare卡和应答机的通信,无需其他电路。接收器部分提供一个坚固而有效的解调和解码电路,用于处理ISO 14443A兼容的应答器信号。数字部分处理ISO 14443A帧和错误检测。第5章 高频RFID阅读器设计 3838此外,RC522还支持快速CRYPTO1加密算法,用于验证Mifare系列产品。MF RC522支持Mifare更高速的非接触式通信,双向数据传输速率高达42

19、4kb/s。可根据不同的用户需求,选取SPI、I2C或串行UART(类似RS232)模式之一,有利于减少连线,缩小PCB板体积,降低成本。MF RC522的其他特性如下:高集成度的调制解调电路。采用少量外部器件,即可将输出驱动级接至天线。支持ISO/IEC 14443 TYPE A和Mifare通信协议。支持ISO 14443 212 kb/s和424 kb/s更高传输速率的通信。第5章 高频RFID阅读器设计 3939支持Mifare Classic加密。10 Mb/s的SPI接口。I2C接口,快速模式的速率为400 kb/s,高速模式的速率为3400 kb/s。串行UART,传输速率高达1

20、228.8 kb/s,帧取决于RS232接口,电压电平取决于提供的管脚电压。64字节的发送和接收FIFO缓冲区。灵活的中断模式。可编程定时器。具备硬件掉电、软件掉电和发送器掉电三种节电模式。第5章 高频RFID阅读器设计 4040内置温度传感器,以便在芯片温度过高时自动停止RF发射。采用相互独立的多组电源供电,以避免模块间的相互干扰,提高工作的稳定性。具备CRC和奇偶校验功能。内部振荡器,连接27.12 MHz的晶体。2.53.6 V的低电压低功耗设计。5 mm5 mm0.85 mm的超小体积。第5章 高频RFID阅读器设计 41 415.2.2 原理图原理图MF RC522组成并不复杂,其原

21、理图如图5-9所示。MF RC522集成度很高,其相关功能特性如下:MF RC522支持可直接相连的各种MCU接口类型,如SPI、I2C和串行UART。数据处理部分执行数据的并/串转换。它支持的帧包括CRC和奇偶校验。它以完全透明的模式进行操作,因而支持ISO 14443A的所有层。第5章 高频RFID阅读器设计 4242图5-9 MF RC522的原理图 第5章 高频RFID阅读器设计 4343状态和控制部分允许对器件进行配置以适应环境的影响并将性能调节到最佳状态。当与Mifare Standard和Mifare产品通信时,使用高速CRYPTO1流密码单元和一个可靠的非易失性密匙存储器。模拟

22、电路包含了一个具有非常低阻抗桥驱动器输出的发送部分,这使得最大操作距离可达100mm。接收器可以检测到并解码非常弱的应答信号。第5章 高频RFID阅读器设计 44445.2.3 与与MCU接口接口MF RC522共有32个管脚,其管脚图如图5-10所示。MF RC522的32个管脚有其各自不同的功能和定义,如表5-4所示。第5章 高频RFID阅读器设计 4545图5-10 MFRC522管脚图 第5章 高频RFID阅读器设计 4646表表5-4 管管 脚脚 定定 义义 第5章 高频RFID阅读器设计 4747第5章 高频RFID阅读器设计 48481.MCU接口接口在每次上电或硬件复位后,RC

23、522也复位其接口模式并检测当前微处理器的接口类型。MF RC522在复位阶段后根据控制脚的逻辑电平识别微处理器接口。这是由固定管脚连接的组合和一个专门的初始化程序来实现的,其所有通信接口如表5-5所示。本例中,RC522与MCU连接的端口为SPI口,其他接口可参考相关资料。兼容SPI接口可使能RC522和一个MCU之间的高速串行通信。兼容SPI接口的处理与标准SPI接口相同。在本书配套的开发板上,RC522还需要经过一个跳线才能与MCU相连,其跳线定义如图5-11所示。第5章 高频RFID阅读器设计 4949表表5-5 通通 信信 接接 口口第5章 高频RFID阅读器设计 5050图5-11

24、 跳线定义 第5章 高频RFID阅读器设计 51 51在SPI通信中,RC522作从机,SPI时钟SCK由主机产生。数据通过MOSI线从主机传输到从机。数据通过MISO线从RC522发回主机。MOSI和MISO传输每个字节时都是高位在前。MOSI上的数据在时钟的上升沿保持不变,在时钟的下降沿改变。MISO与之类似,在时钟的下降沿,MISO上的数据由RC522来提供,在时钟的上升沿数据保持不变。2.读数据读数据通过SPI接口读出数据需要有特定的数据结构。发送的第一个字节定义了模式本身和地址,也可连续读出多个地址的数据,其顺序如表5-6所示。第5章 高频RFID阅读器设计 5252表表5-6 读数

25、据顺序读数据顺序第5章 高频RFID阅读器设计 53533.写数据写数据通过SPI接口写入数据需要有特定的数据结构。发送的第一个字节定义了模式本身和地址,也可连续读出多个地址的数据,其顺序如表5-7所示。4.地址字节地址字节地址字节按特殊格式传输,第一个字节的MSB位设置使用的模式如下:MSB位为1时从RC522读出数据。MSB为0时将数据写入RC522。第一个字节的位6:1定义地址,最后一位应当设置为0。其位含义如表5-8所示。第5章 高频RFID阅读器设计 5454表表5-7 写数据顺序写数据顺序 第5章 高频RFID阅读器设计 5555表表5-8 地址字节位含义地址字节位含义 第5章 高

26、频RFID阅读器设计 56565.3 RC522基本操作基本操作RC522是一款高度集成的RFID读写芯片,还需要配合MCU和其他外围电路才能真正地实现阅读器的功能。5.3.1 RC522寄存器寄存器RC522的存储器中共有4页(PAGE)存放寄存器,用于配置和相关状态指示,详细定义如表5-9所示。第5章 高频RFID阅读器设计 5757表表5-9 RC522寄存器寄存器 第5章 高频RFID阅读器设计 5858第5章 高频RFID阅读器设计 5959第5章 高频RFID阅读器设计 6060第5章 高频RFID阅读器设计 61 615.3.2 FIFO缓冲区操作缓冲区操作MF RC522包含一

27、个648位的FIFO缓冲区,用来缓存主机MCU和MF RC522的内部状态机之间的输入和输出数据流。因此,FIFO缓冲区可以处理长度大于64字节的数据流,但又不考虑时序的限制。1.访问访问FIFO缓冲区缓冲区FIFO缓冲区的输入和输出数据总线连接到FIFODataReg寄存器。通过写FIFODataReg寄存器将一个字节的数据存入FIFO缓冲区,之后内部FIFO缓冲区写指针加1。第5章 高频RFID阅读器设计 6262 读出的FIFODataReg寄存器的内容是存放在FIFO缓冲区读指针处的数据,之后FIFO缓冲区读指针减1。FIFO缓冲区的读和写指针之间的间隔通过读取FIFOLevelReg

28、得到。当MCU发布一个命令后,MFRC522可以在命令执行过程中根据命令要求来访问FIFO缓冲区。通常,只能实现一个FIFO缓冲区的操作,该缓冲区可用在输入和输出方向中。因此,MCU必须小心不能以其他方式来访问FIFO缓冲区。第5章 高频RFID阅读器设计 63632.控制控制FIFO缓冲区缓冲区除了读写FIFO缓冲区外,FIFO缓冲区指针还可通过置位寄存器FIFOLevelReg的FlushBuffer位来复位。从而使FIFOLevel位被清零,寄存器ErrorReg的BufferOvfl位也被清零,实际存储的字节不能再访问,FIFO缓冲区可以用来存放下一批64字节的数据。3.FIFO缓冲区

29、的状态信息缓冲区的状态信息MCU可得到以下FIFO缓冲区状态的数据:已经存放在FIFO缓冲区中的字节数:寄存器FIFOLevelReg的FIFOLevel字段。第5章 高频RFID阅读器设计 6464 FIFO缓冲区已满的警告:寄存器Status1Reg的HiAlert位。FIFO缓冲区已空的警告:寄存器Status1Reg的LoAlert位。指示FIFO缓冲区已满时仍有字节写入:寄存器ErrorReg的BufferOvfl位。BufferOvfl位可通过置位FIFOLevelReg寄存器的FlushBuffer位来清零。当出现以下情况时,MFRC522可以产生中断信号:如果寄存器CommIE

30、nReg的LoAlertIEn被置位,且当寄存器Status1Reg的LoAlert位变成1时,管脚IRQ激活。第5章 高频RFID阅读器设计 6565 如果寄存器CommIEnReg的HiAlertIEn被置位,且当寄存器Status1Reg的HiAlert位变成1时,管脚IRQ激活。如果FIFO缓冲区中只允许存放WaterLevel个(在寄存器WaterLevelReg中设置)或更少的字节,则HiAlert标志置位。上述数据满足下面的等式:HiAlert=(64-FIFOLength)WaterLevel 如果实际只有WaterLevel个或更少的字节存放在FIFO缓冲区中,则LoAler

31、t标志置位。同时,它们满足下面的等式:LoAlert=(64-FIFOLength)WaterLevel第5章 高频RFID阅读器设计 66665.3.3 RC522命令命令RC522的操作可由执行一系列命令的内部状态机来决定。即通过向命令寄存器写入相应的命令代码来启动命令,并且执行一个命令所需的参数和数据可通过FIFO缓冲区来交换。1.通用特性通用特性 RC522的命令可以动用FIFO缓冲区设置参数和数据,其操作有一些通用的特性如下:每个需要数据流(或数据字节流)作为输入的命令在发现FIFO缓冲区有数据时会立刻处理,收发命令除外,收发命令的发送由寄存器BitFramingReg的StartS

32、end位来启动。第5章 高频RFID阅读器设计 6767 每个需要某一数量参数的命令只有在它通过FIFO缓冲区接收到正确数量的参数时才能开始处理。FIFO缓冲区不能在命令启动时自动清除。也有可能要先将命令参数或数据字节写入FIFO缓冲区,再启动命令。每个命令的执行都可能由MCU向命令寄存器写入一个新的命令代码(如idle命令)来中断。RC522命令有8个,其命令代码和描述如表5-10所示。第5章 高频RFID阅读器设计 6868表表5-10 RC522命令命令 第5章 高频RFID阅读器设计 69692.Idle命令命令RC522处于空闲模式。该命令也可用来终止实际正在执行的命令。3.Calc

33、CRC命令命令FIFO的内容被传输到CRC协处理器并执行CRC计算,该命令有如下特点:计算结果存放在CRCResultReg寄存器中。CRC计算无需限制字节的数目。当在数据流过程中FIFO变成空时计算也不会停止。写入FIFO的下个字节增加到计算中。第5章 高频RFID阅读器设计 7070 CRC的预置值由寄存器ModeReg的CRCPreset位控制,该值在命令启动时装入CRC协处理器。这个命令必须通过向命令寄存器写入任何一个命令(如空闲命令)来清除。如果寄存器AutoTestReg的SelfTest位设置正确,则MFRC522处于自测试模式,启动CalCRC命令执行一次数字自测试。自测试的结

34、果写入FIFO。4.Transmit命令命令发送FIFO的内容。在发送FIFO的内容之前必须对所有相关的寄存器进行设置。该命令在FIFO变空后自动终止。第5章 高频RFID阅读器设计 71 715.NOCmdChange命令命令该命令不会影响CommandReg寄存器中正在执行的任何命令。它可用来修改CommandReg寄存器中除命令位之外的任何位,如RcvOff位或PowerDown位。6.Receive命令命令MF RC522激活接收器通路,等待接收任何数据流。该命令在接收到的数据流结束时自动终止。根据所选的成帧和速度,通过帧模式结束或长度字节来指示。第5章 高频RFID阅读器设计 727

35、27.Transceive命令命令该循环命令重复发送FIFO数据,并不断接收RF场的数据。第一个动作是发送,发送结束后命令变为接收数据流。其顺序为:发送接收发送接收。每个发送过程都在BitFramingReg寄存器的StartSend位置位时启动。TRANSCEIVE命令通过向命令寄存器写入任何一个命令(如idle命令)来清除。8.MFAuthent命令命令该命令用来处理Mifare认证以使能任何Mifare普通卡的安全通信。在命令激活前以下数据必须被写入FIFO:认证命令代码(0 x60,0 x61)。第5章 高频RFID阅读器设计 7373块地址。扇区密钥字节0。扇区密钥字节1。扇区密钥字

36、节2。扇区密钥字节3。扇区密钥字节4。扇区密钥字节5。卡序列号字节0。卡序列号字节1。卡序列号字节2。卡序列号字节3。第5章 高频RFID阅读器设计 7474上述命令参数总共12字节,应当写入FIFO中。当MFAuthent命令有效时,任何FIFO访问都被禁止。只要访问FIFO的操作发生,ErrorReg寄存器的WrErr位就置位。该命令在Mifare卡被认证且Status2Reg寄存器的MFCrypto1On位置位时自动终止。当卡未响应时,该命令不会自动终止。因此,定时器必须初始化成自动模式。这时,除IdleIRQ外,TimerIRQ也可用作终止的标准。在认证过程中,RxIRQ和TxIRQ被

37、禁止。第5章 高频RFID阅读器设计 7575认证命令结束后(处理完协议或将IDLE写入命令寄存器后),只有Crypto1On位有效。如果认证过程中有错误出现,则ErrorReg寄存器的ProtocolErr位置位。Status2Reg寄存器的Crypto1On位清零。9.SoftReset命令命令该命令用来执行一次器件复位,内部缓冲区的配置数据保持不变。所有寄存器都设置成复位值,命令完成后自动终止。由于SerialSpeedReg寄存器被复位,则串行数据速率被设置成9600 kb/s。第5章 高频RFID阅读器设计 76765.3.4 RC522基本指令基本指令RC522有14种基本指令集,

38、实现不同方式的数据传输,其指令代码及含义如表5-11所示。第5章 高频RFID阅读器设计 7777表表5-11 指令代码及含义指令代码及含义 第5章 高频RFID阅读器设计 78785.4 高频高频RFID阅读器程序设计阅读器程序设计高频RFID阅读器程序的主要工作是能够操作RC522,并按照Mifare卡的规则和流程对MF1卡进行读写和验证。一般分为三部分:初始化程序、驱动程序和主程序。5.4.1 初始化程序初始化程序初始化程序用于各种管脚和器件的初始化,以便能够正常进行解码。下述内容用于实现描述5.D.1,即编写RC522的初始化程序。基于模块化和移植的考虑,可将本例中初始化子程序单独封装

39、成子函数InitAll(),具体源码如下:第5章 高频RFID阅读器设计 7979【描述5.D.1】InitAll()/初始化子函数void InitAll(void)InitPort();InitRc522();INT_Init();TIMER_init();/液晶屏显示初始化LCD_init();loc(1,0);LCD_display(高频HF读卡器:);loc(4,0);LCD_display(-请刷卡-);第5章 高频RFID阅读器设计 8080/参数,标志位初始化bWarn=0;bPass=0;SysTime=0;KeyNum=0;KuaiN=0;oprationcard=0;bS

40、endID=0;Pass();第5章 高频RFID阅读器设计 81 81InitPort()函数负责初始化相关的I/O端口,具体源码如下:【描述5.D.1】InitPort()/初始化相关的I/O端口void InitPort(void)/蜂鸣器管脚DDRD|=(1PD7);PORTD|=(1PD7);/LED管脚DDRC|=(1PC7);PORTC|=(1PC7);第5章 高频RFID阅读器设计 8282/初始化H-RST,CSS,MOSI,SCK.DDRB|=(1PB3)|(1PB4)|(1PB5)|(1PB7);/MISODDRB&=(1PB6);/使能SPI 主机模式,设置时钟速率为f

41、ck/4SPCR=(1SPE)|(1MSTR);第5章 高频RFID阅读器设计 8383INT_Init()函数负责初始化外部中断的相关工作方式和参数,具体源码如下:【描述5.D.1】INT_Init()/初始化外部中断void INT_Init(void)/开启INT0中断,并初始化MCUCR|=(1 ISC01);GICR|=(1 INT0);SREG|=(1 7);DDRD|=(1 PD2);PORTD|=(1 PD2);DDRD&=(1 PD2);第5章 高频RFID阅读器设计 8484InitRc522()函数负责初始化RC522的相关配置和参数,具体源码如下:【描述5.D.1】In

42、itRc522()/初始化RC522void InitRc522(void)/重启天线PcdReset();PcdAntennaOff();PcdAntennaOn();/初始化工作类型为ISO14443 TYPE AM500PcdConfigISOType(A);第5章 高频RFID阅读器设计 8585TIMER_init()函数负责初始化定时器的相关配置,具体源码如下:【描述5.D.1】TIMER_init()/初始化定时器void TIMER_init(void)/初始化定时器0TCCR0|=(1 CS02)+(1 CS00);TIMSK|=(1 TOIE0);TCNT0 =256-61

43、;SREG|=(1 7);第5章 高频RFID阅读器设计 86865.4.2 驱动程序驱动程序驱动程序是RC522能够正确解码的相关读写、命令设置等函数。下述内容用于实现描述5.D.2,即编写RC522的相关驱动程序。SPIReadByte()函数负责使用SPI端口读入一个Byte,具体源码如下:【描述5.D.2】SPIReadByte()/使用SPI端口读入一个byteunsigned char SPIReadByte(void)unsigned long i=60000;第5章 高频RFID阅读器设计 8787/启动数据传输 SPDR=0XFF;/等待传输结束while(i-)if(SPS

44、R&(1SPIF)break;return SPDR;第5章 高频RFID阅读器设计 8888SPIWriteByte()函数负责使用SPI端口写入一个Byte,具体源码如下:【描述5.D.2】SPIWriteByte()/使用SPI端口写入一个Bytevoid SPIWriteByte(unsigned char SPIData)unsigned long i=60000;/启动数据传输 SPDR=SPIData;/等待传输结束 while(i-)if(SPSR&(1SPIF)break;第5章 高频RFID阅读器设计 8989PcdRequest()函数负责寻卡的相关操作和功能,具体源码如

45、下:【描述5.D.2】PcdRequest()/功 能:寻卡/参数说明:req_codeIN:寻卡方式/0 x52=寻感应区内所有符合14443A标准的卡/0 x26=寻未进入休眠状态的卡/pTagTypeOUT:卡片类型代码/0 x4400=Mifare_UltraLight/0 x0400=Mifare_One(S50)/0 x0200=Mifare_One(S70)第5章 高频RFID阅读器设计 9090/0 x0800=Mifare_Pro(X)/0 x4403=Mifare_DESFire/返 回:成功返回MI_OK/unsigned char PcdRequest(unsigned

46、 char req_code,unsigned char*pTagType)unsigned char status;unsigned int unLen;unsigned char ucComMF522BufMAXRLEN;/18/清除标志位ClearBitMask(Status2Reg,0 x08);WriteRawRC(BitFramingReg,0 x07);SetBitMask(TxControlReg,0 x03);第5章 高频RFID阅读器设计 91 91ucComMF522Buf0=req_code;/读取状态字status=PcdComMF522(PCD_TRANSCEIVE

47、,ucComMF522Buf,1,ucComMF522Buf,&unLen);if(status=MI_OK)&(unLen=0 x10)*pTagType=ucComMF522Buf0;*(pTagType+1)=ucComMF522Buf1;elsestatus=MI_ERR;return status;第5章 高频RFID阅读器设计 9292PcdAnticoll()函数负责防冲撞算法,具体源码如下:【描述5.D.2】PcdAnticoll()/功 能:防冲撞/参数说明:pSnrOUT:卡片序列号,4字节/返 回:成功返回MI_OK/unsigned char PcdAnticoll(u

48、nsigned char*pSnr)unsigned char status;unsigned char i,snr_check=0;unsigned int unLen;unsigned char ucComMF522BufMAXRLEN;第5章 高频RFID阅读器设计 9393/清除标志位ClearBitMask(Status2Reg,0 x08);WriteRawRC(BitFramingReg,0 x00);ClearBitMask(CollReg,0 x80);ucComMF522Buf0=PICC_ANTICOLL1;ucComMF522Buf1=0 x20;/读取状态字statu

49、s=PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,2,ucComMF522Buf,&unLen);第5章 高频RFID阅读器设计 9494if(status=MI_OK)for(i=0;i4;i+)*(pSnr+i)=ucComMF522Bufi;snr_check=ucComMF522Bufi;if(snr_check!=ucComMF522Bufi)status=MI_ERR;SetBitMask(CollReg,0 x80);return status;第5章 高频RFID阅读器设计 9595PcdSelect()函数负责选定卡片,具体源码如下:【描述

50、5.D.2】PcdSelect()/功 能:选定卡片/参数说明:pSnrIN:卡片序列号,4字节/返 回:成功返回MI_OK/unsigned char PcdSelect(unsigned char*pSnr)unsigned char status;unsigned char i;unsigned int unLen;unsigned char ucComMF522BufMAXRLEN;第5章 高频RFID阅读器设计 9696ucComMF522Buf0=PICC_ANTICOLL1;ucComMF522Buf1=0 x70;ucComMF522Buf6=0;/存入bufferfor(i=

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁