基于MSP430和RC522的读卡器系统设计

合集下载

基于RC522的非接触式IC卡读卡器设计(含程序)

基于RC522的非接触式IC卡读卡器设计(含程序)

1 绪论1.1 课题的研究背景工业3.0将世界带入信息化的时代,信息技术的发展日新月异,一个以电子商务为主要特征的经济时代成为主要潮流,智能射频卡是一种将用户数据最快捷地送入到环球信息互联网并获得信息的最有用的工具,智能IC卡成为了人们身份识别和实现电子支付的手段,影响了我们生活工作的方式。

智能IC卡与普通磁卡对比具有更高的安全性,所以,对智能IC卡的功能进行研究是非常有意义的。

智能IC卡,又是CPU卡。

顾名思义, 这种卡片上集成了存储器、通信接口及CPU,具有存储数据、对外交流和数据处理的能力,因此,又是一片卡上的单片机系统。

为了使这一系统中的硬件和软件资源充分得到利用, 卡上存放了进行数据读写和安全通信的协议,以及管理这些程序的Chip Operating system卡上操作系统。

这操作系统是按照IC卡性能特征而专门设计的操作系统,它极大地不同于计算机上常见的DOS和WINDOWS 等操作系统,IC 卡存储器的容量大小和CPU的性能的限制着Chip Operating system卡上操作系统。

主要功能是:控制IC卡与读卡器的数据交流;管理IC卡上各种存储器;在IC卡内执行读写器发来的各种操作命令。

有了CPU与COS系统,成就了智能IC卡。

所以,智能射频卡具有超强的管理性能,提供很高的数据安全性和可靠性[1]。

1.2 非接触式IC卡1.2.1 非接触式IC卡的简介非接触式IC卡又称射频卡,由IC芯片、感应天线组成,封装在一个标准的PVC卡片内,芯片及天线无外露部分[2]。

它是全球上最近发展成熟的一项技术,射频识别技术和IC卡技术被成功地结合起来,解决了无源和非接触这一难题,无源即卡中没有电源,这是电子科学领域的一大突破[2]。

卡片接近读写器天线产生电磁场的一定空间范围 (通常为50—100mm),通过电磁波的发送来完成数据的读写操作。

1.2.2 非接触式IC卡的特点(1)操作快捷卡与读卡器之间的通讯是非接触的。

基于RC522的读卡器系统设计

基于RC522的读卡器系统设计

基于RC522的读卡器系统设计本文设计的读卡器系统以PICl6F7x 单片机作为主控芯片,选用MIFARE S50 卡片,读卡器与卡片间以106kbps 速率通信,同时实现读卡过程中的防冲突处理和对卡E2PROM 块内容的读/写等功能。

读卡器内部设置了Flash 存储器以存放卡数据,在Flash 容量满的情况下可通过读卡器的以太网口读出全部数据到管理中心上位机,便于建立对卡数据的综合管理系统。

1 硬件系统设计读卡器硬件框单片机PICl6F7x 通过SPI 总线与RC522 和Flash 芯片AT45D011 相连,同时用简化的ISA 总线连接以太网接口芯片C58900,以提供连接到局域网的能力。

AT45D0ll 存储容量为lMb,可同时存储7400 多组MIFARE 的E2PROM 块和UID 号,提供了足够读卡器一天内读取的信息量的存放容量。

对于RC522 天线部分的设计,Philips 公司有专门的手册详细介绍,本文不再赘述。

RC522 的SPI 总线接口有其自身的时序要求。

它只能工作于从模式,最高传输速率为10 Mbps,数据与时钟相位关系满足空闲态时钟为低电平,在时钟上升沿同步接收和发送数据,在下降沿数据转换的约束关系。

PICl6F7x 系列单片机的片上外设包括1 个SSP 模块。

该模块可配置为SPI 接口使用,通过相应的寄存器可控制SPI 接口的数据传输率、数据一时钟相位天系等通信参数。

本文中配置SSP 模块工作于SPI 主模式下,时钟为1/4 单片机主频,接收和发送数据都在时钟上升沿发生。

需要注意的是,由于RC522 支持的数字接口形式多种多样,因此芯片在每次复位时都会检测外部引脚连接关系。

对于SPI 接口,RC522 的相关引脚必须按照。

基于RC522的非接触式IC卡读卡器设计

基于RC522的非接触式IC卡读卡器设计

基于RC522的非接触式IC卡读卡器设计一、引言非接触式IC卡技术是一种新兴的智能卡技术,其具有快速、方便、安全等特点,在许多领域得到了广泛应用。

本文基于RC522模块,设计了一种非接触式IC卡读卡器,能够实现IC卡的读取、验证和数据传输功能。

二、硬件设计1.RC522模块RC522模块是一种非接触式IC卡读卡器模块,内置了射频信号的硬件电路和通信协议。

通过与主控芯片的串口通信,可以实现与IC卡的交互操作。

2. Arduino UNO控制器Arduino UNO控制器是一种开源的硬件平台,具有易学易用、开发快速等特点。

通过编写Arduino语言的程序,可以控制各种外设的工作。

3.电源电路为了保证系统的正常工作,需要提供稳定的电源电压和电流。

可以通过将主控芯片的VCC引脚连接到稳定电源上,来实现电源电路的设计。

三、软件设计1.初始化RC522模块首先,需要在Arduino程序中引入MFRC522库并初始化RC522模块。

初始化包括设置模块的SPI引脚和读取器模式等参数。

2.读取UID通过调用MFRC522库中的函数,可以实现读取IC卡的UID(唯一标识符)。

UID可以用于后续的卡片验证和数据传输。

3.卡片验证IC卡的验证过程包括选择卡片、验证密码等步骤。

在Arduino程序中,可以通过调用MFRC522库中的函数来实现。

4.数据传输一旦IC卡验证成功,就可以实现数据的传输。

可以通过读取或写入IC卡的扇区、块来实现对数据的读取或修改。

四、程序流程1.初始化RC522模块和串口通信2.循环读取IC卡3.读取IC卡的UID4.验证IC卡密码5.读取或写入IC卡的数据6.返回步骤2,继续读取下一张IC卡五、总结通过RC522模块与Arduino控制器的组合,可以实现非接触式IC卡的读取、验证和数据传输功能。

本设计具有简单、易实现的特点,可以作为非接触式IC卡读卡器在实际应用中的参考。

以上就是基于RC522的非接触式IC卡读卡器的设计思路和程序介绍,对于感兴趣的人员来说是一个很好的学习和实践项目,可以通过进一步的研究和开发,改进和完善这个设计。

基于MFRC522的RFID读卡器模块设计

基于MFRC522的RFID读卡器模块设计

线 及 其 滤 波 匹 配 电 路 。 MC U选 用 T I公 司 的 超 低 功 耗 单
片 机 MS 4 O l9, 单 片 机 支 持 多 种 低 功 耗 模 式 , 能 P3 F4 该 并
够 快 速 唤 醒 ,具 有 6 KB 2 6B的 Fah 2 KB的 R 0 +5 ls 、 AM、 两 个 既 可 做 异 步 U R 又 可 以 做 S I使 用 的 串 行 通 讯 A T P


基 于 MF C 2 R 52的 R I FD读 卡器 模块 设计
黄 俊 祥 ,陶 维 青
( 肥 工 业 大 学 电 气 与 自动 化 学 院,安 徽 合 肥 2 00 ) 合 3 09
摘 要 :以 T I公 司 的 超 低 功 耗 单 片 机 MS 4 0 19为 主 控 芯 片 , 制 恩 智 浦 公 司 的 高 集 成 度 读 卡 P3F4 控

sr t n o p rt n lpo e ue o h d l. c i i f o eai a r c d r f t e mo u e po o
K y wo d :c r e d r e r s ad ra e;RF D;RF a tn a I ne n ;MS 4 0 P 3 :MF C5 2 R 2

MF RC5 2 n MCU n h d sg o n e n t i ’ t h n i u t r r s n i eal At t e e d t e e s b e e 2 a d a d t e e in f a tn a wi t S ma c i g cr i ae p e e t n d ti h c s h n h r i a r f d — i
目前 国 内 的 1 .6MH FD 读 卡 器 芯 片 市 场 上 , 35 zR I 荷

RC522读卡模块使用说明

RC522读卡模块使用说明

TJDZ-RC522 RFID 读卡模块
用户操作手册
Ver_1.0_20121101
RC522 RFID 读卡模块使用说明
(以 MSP430F149 处理器为例)
第一步:将 RFID 模块与 MSP430F149 最小系统板采用杜邦线连接;
RC522 接口MSP430F149 接口
SDA(数据接口) P2.7
SCK(时钟接口)P2.6
MOSI(SPI 接口主出从入)P2.5
MISO(SPI 接口主入从出)P2.1
NC(悬空)
GND(地)GND
RST(复位信号)P2.3
3.3V(电源) 3.3V
第二步:程序通过 BSL 下载到 MSP430F149 中;
第三步:将串口线 USB-RS232 连接计算机与开发板;
第四步:打开串口调试手(正确设置波特率以及串口号);
第五步:按 MSP430F149 最小系统板上的复位键,则串口调试手出现如下画面:
第六步:在串口发送区,输入 A 点击发送,为自动寻卡模式;若输入F 点击发送则为单次寻卡模式;
第七步:将卡片放到读卡模块上,则可以看到读出卡的 ID 号。

测试完毕。

单片机读写rc522教程

单片机读写rc522教程

单片机读写rc522教程摘要:1.RFID-RC522 模块简介2.单片机与RFID-RC522 模块的连接方式3.基于Msp430 单片机的RC522 模块程序讲解4.51 单片机RC522 无线射频IC 卡驱动教程5.Arduino 教程:RFID-RC522 读IC 卡门禁原理及破解防御正文:一、RFID-RC522 模块简介RFID-RC522 模块是一种基于射频识别技术的无线通信模块,广泛应用于门禁系统、智能卡、智能家居等领域。

它可以实现数据的读取和写入,具有较高的安全性和稳定性。

二、单片机与RFID-RC522 模块的连接方式单片机与RFID-RC522 模块的连接主要涉及到硬件连接和软件连接两个方面。

硬件连接主要包括模块的电源、数据线、接地线等,而软件连接则是通过单片机的串口程序与模块进行通信。

三、基于Msp430 单片机的RC522 模块程序讲解在基于Msp430 单片机的RC522 模块程序中,首先需要初始化单片机和模块,然后通过发送特定的命令来实现数据的读取和写入。

具体的程序讲解可以参考寒冷的海王星的博客,里面有详细的程序实例。

四、51 单片机RC522 无线射频IC 卡驱动教程51 单片机RC522 无线射频IC 卡驱动教程主要介绍了如何使用51 单片机控制RFID-RC522 模块实现读卡、写卡等功能。

其中涉及到单片机与模块的引脚连接、通信协议、数据处理等环节。

可以通过嵌入式lover 的博客了解详细的教程。

五、Arduino 教程:RFID-RC522 读IC 卡门禁原理及破解防御Arduino 教程:RFID-RC522 读IC 卡门禁原理及破解防御主要介绍了如何使用Arduino 开发板与RFID-RC522 模块实现门禁系统的制作。

其中涉及到RC522 模块的读取原理、数据处理、门禁逻辑等环节。

基于某MFRC522地RFID读卡器模块设计及实现

基于某MFRC522地RFID读卡器模块设计及实现

基于某MFRC522地RFID读卡器模块设计及实现首先,需要进行硬件设计。

设计一个扩展板,将MFRC522模块连接到单片机主控,可以选择使用Arduino等常见的开发板作为主控。

连接MFRC522模块的SPI接口,以实现与主控的通信。

同时,还需要为MFRC522模块提供合适的电源供电,一般是3.3V。

接下来,需要进行软件设计和实现。

首先,需要在主控上编写代码,以控制MFRC522模块的初始化和数据读取。

使用主控的SPI接口与MFRC522模块进行通信,发送相应的命令和接收数据。

可以使用MFRC522的库文件,方便地实现这些功能。

在代码中,首先需要初始化MFRC522模块。

这包括将MFRC522模块的寄存器设置为合适的状态,并设置其工作频率等参数。

然后,可以通过发送命令来附近的RFID卡片。

一旦找到卡片,可以读取卡片的UID和其他相关数据。

读取卡片UID后,可以通过与数据库连接,查询卡片对应的用户信息。

将卡片UID与用户信息进行关联,可以实现对卡片的身份验证和数据读取。

可以根据业务需求,设计实现需要的功能,例如门禁系统、考勤系统等。

需要注意的是,MFRC522模块在设计和使用时需要遵循一些基本的安全原则。

例如,需要设置适当的安全密钥以保护卡片数据的安全性。

在通信过程中,使用合适的加密算法以防止数据被窃取或篡改。

在实现过程中,可以参考MFRC522模块的相关资料和示例代码,例如MFRC522模块的数据手册和库文件。

此外,还可以参考其他类似的开源项目,了解设计和实现RFID读卡器模块的方法和技巧。

总结起来,基于MFRC522的RFID读卡器模块的设计和实现需要进行硬件和软件两方面的工作。

在硬件方面,需要设计一个扩展板来连接MFRC522模块和主控。

在软件方面,需要在主控上编写代码来控制MFRC522模块的初始化和数据读取。

通过合理的设计和实现,可以实现对RFID卡片的识别和数据读取功能,满足不同应用场景的需求。

低功耗无磁水表中射频卡读写器的设计

低功耗无磁水表中射频卡读写器的设计

第22卷第1期宁波大学学报(理工版)V ol.22 No.1 2009年3月JOURNAL OF NINGBO UNIVERSITY ( NSEE ) Mar. 2009文章编号:1001-5132(2009)01-0017-06低功耗无磁水表中射频卡读写器的设计祝向辉1, 王让定1*, 姚灵2, 孙广清1, 陈昌根1(1.宁波大学信息科学与工程学院, 浙江宁波 315211; 2.宁波水表股份有限公司, 浙江宁波 315000)摘要:为了加强数据的安全性且方便用户进行刷卡操作, 选择在无磁水表中加入射频读卡器. 读卡器的硬件上采用MSP430单片机与射频读写芯片RC522相结合的方式, 具有较低的功耗; 软件上根据Mifare 1 S50射频卡及多扇区多密码的特点, 采用一次一密的动态加密方式, 较好地保护了卡内数据的安全性, 同时对于用户恶意补卡现象也做了相应防备措施.关键词: RC522; MSP430单片机; Mifare 1 S50卡; 射频读卡器中图分类号: TP391 文献标识码: A随着我国金卡工程的实施和发展, 智能卡的应用已逐步融入人们的生活, 水表中智能卡的应用也是趋势发展的必然结果. 射频卡以其良好的可靠性、方便的操作及其本身非接触等特点, 成为卡式水表中智能IC卡的首选.RC522是philips公司继MF RC500、RC531及RC632等一系列典型产品后推出的一款针对智能仪表领域的低电压、低功耗、低成本的完全符合ISO1443A协议的非接触读卡芯片, 采用统一的3.3 V供电电压, 且具有灵活高速串行接口(I2C、SPI、UART). 但它的操作难度主要在于如何通过单片机来设置其内部寄存器, 以及传送特有格式的指令来向射频卡发送、接收有效数据, 从而达到读、写卡的目的.本设计硬件上采用MSP430单片机与RC522结合, 供电电压完全一致, 读卡器与Mifare 1 S50卡(以下简称M1卡)间以典型值106Kbps的速率通信, 软件上采用动态的加密方式, 并在单片机中留部分Flash空间用以记录使用过的M1卡的序列号, 以防止人为的恶意换卡.1系统硬件设计1.1系统总体设计设计采用TI公司MSP430FW427单片机为主控芯片, 它与外围扩展的无磁传感器、电源管理、存储模块、LCD显示、保护装置、电磁阀门驱动、读写卡器共7个模块共同构成了整个水表系统的主体, 其系统框图如图1所示.图1 系统框图图1中的无磁传感器采用2个LC振荡器, 用于检测叶轮转动速度和转动方向; 电源管理模块收稿日期:2008-04-03. 宁波大学学报(理工版)网址: 基金项目:浙江省科技厅计划项目(2007C21G2070004); 宁波市科技局工业攻关项目(2006B100067).第一作者:祝向辉(1987-), 男, 江西鹰潭人, 在读硕士研究生, 主要研究方向: 射频通信及嵌入式应用. E-mail: zxh19870127@ *通讯作者:王让定(1962-), 男, 甘肃天水人, 博士/教授, 主要研究方向: 数字水印及语音识别. E-mail: wangrangding@18 宁波大学学报(理工版) 2009可检测电池电量以及完成必要的电压转换功能; 而存储模块主要用于记录用户用水量的历史数据; LCD 显示模块作为人机交互接口, 方便用户查询用水信息或自来水公司查询水表工作状态; 保护装置主要用于防止用户恶意拆卸、破坏水表, 并保障水表即使在非正常工作的状态下也不发生错误计量; 用户的供水由电磁阀门控制, 当用水量余额不足或电池电量不足时, 阀门关闭; 用户还可通过读写卡模块向水表充值, 实现用水金额的预付. 1.2 读写卡器硬件设计射频读卡器的主要硬件电路包括RC522与单片机的接口电路以及外围天线的设计. 其中读写卡芯片RC522与单片机通过I 2C 总线连接, 其接口方式如图2所示.图2 单片机与RC522连接方式由于二者连接采用I 2C 总线协议, 因此RC522的I 2C 口应接高电平, EA 与D 1~D 6共同确定RC 522作为I 2C 协议中从设备的地址(7bit). 当EA =1, RC522地址的6bit 数据由D 1~D 6来决定(这里特别要注意的是D 1~D 6的值不要与I 2C 协议中规定的一些特殊地址冲突), 剩下1bit 一般为0; 若EA =0, 则RC522的地址的高四位为0101, 低位由D 1~D 3确定[1].除了与单片机的连接, RC522还需要外接天线及其匹配、滤波和接收电路, 如图3所示.在图3的电路中, 由C mid 、R 1、C rx 、R 2组成的接收电路与由L 0及C 0组成的滤波电路其元件参数值是固定的, 而天线匹配电路中C 1、C 2与R a 的值由设计的天线确定. 由于M1卡工作所需的电压由读卡器天线产生的磁通供给, 其能量的传输类似于变压器原理, 因此卡获得的能量随着卡和天线间的距离不同而变化, 为获得良好性能, 相关参数值的选取还须经过天线的调谐过程[2].2 系统软件设计系统软件设计是整个系统设计的核心与难点, 主要完成射频卡和读卡器之间的信息交互. 2.1 标准M1卡的内部存储结构[3]M1卡内部有1个容量为8K 的EEPROM, 分为16个扇区, 每个扇区为4块, 每块16Byte, 其结构如图4所示.块0 数据块0扇区0块1 数据块1 块2 数据块2 块3密码A 存取控制 密码B 控制块3 块0数据块4扇区1块1数据块5 块2数据块6块3密码A 存取控制 密码B 控制块7 ∶ 0数据块60扇区15 1数据块61 2 数据块62 3 密码A 存取控制 密码B 控制块63图4 M1 S50卡内部存储结构其中每个扇区的块0、1、2为数据块, 用于存储16Byte 数据. 数据块可分为2种: 普通的数据块和特殊数据块, 二者的区别在于数据的存储格式不同, 普通数据块可存任意16Byte 数据, 而特殊数据块内数据存储格式如图5所示, 其中有效数据为4Byte, 块号为1Byte, 只有这种存储格式的数据块才可执行卡的增/减指令. 另外, 每个扇区的块3为控制块, 其中包括了密码A 、存取控制和密码B,图3 RC522外围天线电路第1期 祝向辉, 等: 低功耗无磁水表中射频卡读写器的设计 19具体结构如图6所示. 每个扇区的密码和存取控制都是独立的, 默认存取控制(FF 07 80 69)表明该扇区使用密码A 验证, 而密码B 无效. 需要注意的是: 第0扇区的块0用于存放厂商代码, 已经固化, 永远不可更改.图5 特殊数据块存储格式图6 各扇区控制块结构2.2 卡的基本功能的实现卡的基本功能包括卡的增、减、读、写操作, 它需要借助于许多不同指令来实现, RC522与M1卡都有各自的指令(分别称之为Command 指令和M1指令)[4], 因此如何通过Command 指令来完成M1指令从而达到读写卡的目的是整个软件设计的主要内容.在一般情况基本的卡操作中, 并不是所有指令都要用到, 常用的几个Command 指令有空闲指令(IDLE), 它可使读卡器进入空闲模式; CalcCRC 用于CRC 校验计算; Transceive 指令是Command 指令中最常用的一个, 主要用于数据的发送与接收; 而MFAuthent 密码认证指令用于M1卡中的密码验证.常用的M1指令主要有询卡指令(Request), 包括Request All 和Request Idle 2种模式, 用于搜索一定范围内是否存在M1卡; 防冲突指令(Anticolli- sion)和选卡指令(Select)成功执行后, 可从多张卡中选取1张有效M1卡; Authentication 指令是进行密码认证; 其他的还有Read 、Write 、Decrement 、Increment 指令分别用于对卡的读、写、增值与减值; Halt 指令可使卡进入空闲状态.M1卡与读卡器之间的典型通讯过程如下: 将待发送数据(包括标准M1卡指令)按一定格式写入RC522的FIFOData 寄存器后, 再写Command 指令到Command 寄存器, 以此触发通信的开始(有些指令还需对一些寄存器操作后才开始通信), 卡若接收到数据, 先读取数据中的M1卡指令, 再将余下数据作为M1指令的操作对象进行相应的操作, 并将结果返回RC522的FIFOData 寄存器. 卡内部操作是自发, 一般只将Command 指令写入Command 寄存器中, 一定时间后通过读取FIFOData 寄存器中卡的返回值来确定M1卡是否成功地完成了预定的操作. 显然, Command 指令在RC522内识别, 标准M1卡指令在读卡器内相当于一些普通数据, 它的识别过程在M1卡内进行. M1指令的执行过程是卡基本功能的具体实现过程, 流程如图7所示.图7 M1卡操作流程要对M1卡进行读写, 必须先经过询卡、防冲突、选卡、密码认证等环节[5]. 询卡主要用于搜寻一定范围内是否存在M1卡, 询卡成功后, 则进入防冲突获取序列号过程, 这是整个流程中较为复杂的环节, 它的主要功能是在若干个M1卡中按一定的算法获取其中1张M1卡的序列号, 为选卡做准备.防冲突循环的流程如图8所示, 其中防冲突命令(SEL+NVB)中SEL 为防冲突指令0x93, NVB 为1Byte 数据, 高4位表示本次待发送数据的有效字节数, 低4位为发送数据最后1个字节的有效位数. 成功接收到读卡器发送的防冲突指令后, 有效范围内的所有卡均以其序列号响应, 显然, 若范围内不单有1张卡时, 冲突必然发生, 一旦发生冲突, 则应读取相应寄存器的值确定冲突位; 之后通过不断更新NVB 的值与接收到的有效数据位来更新防20 宁波大学学报(理工版) 2009冲突指令传送的数据, 直至再无冲突产生, 若成功接收到某1张卡的序列号, 则可发送选卡命令, 成功选卡后方可进行密码认证过程.图8 防冲突循环流程密码认证以扇区为单位, 其结果在于开启通信加密单元, 成功后的数据传输都将加密. 且只有密码认证通过之后才可对卡进行读、写、增/减值等操作. 卡的读、写、增/减值等操作均以块为单位, 其中增/减值过程较为复杂, 其过程如下:(1) 发送增值(0xC0)/减值(0xC1)指令+块号+ CRC 校验(2Byte)共4Byte 数据, 若返回4bit 数据1010, 则可进行下一步操作;(2) 继续发送以下数据: 待增/减值(4Byte)+ CRC 校验(2Byte)共6Byte, 仍以返回值1010来判断该步操作是否成功;(3) 最后发送数据Transfer 指令(0xB0)+块号+ CRC 校验(2Byte)共4Byte, 成功则返回1010, 如此则表明整个增/减值过程执行成功.卡操作完毕后, 可使卡进入Halt 状态, 此时只有Request All 指令方可唤醒该卡.3 动态加密方式由于M1卡有多个扇区, 每个扇区可以有各自不同的密码, 这为一卡多表提供了可能性, 同时也成为本设计中一次一密的加密方式(称之为动态加密)成功实现的前提条件.虽然前述密码认证之后数据的传输将先被加密, 但若只用单一密码且每次执行相同的卡操作(比如增值)的话, 则卡与读卡器之间的数据通信存有一定规律性, 有时甚至是固定的, 这样攻击者可先通过图9所示的方式监听数据通信的过程, 完全了解该过程之后, 便可模拟M1卡与读卡器通讯(图10), 这样即使没有射频卡也可达到增值的目的,这是我们所不想看到的.图9 攻击者监听数据通信过程图10 攻击者模拟卡发送数据为此, 我们可以采用动态加密方式来克服上述弊端, 整个加密过程可分解为M1卡的初始化和具体的加密操作2部分. 为便于描述该过程, 先假设函数des(Data, Key, flag)为8Byte DES 加/解密算法, 其中Data 为待加/解密数据, Key 为密钥, flag 为加/解密模式(0为解密, 1为加密); 另外, 由于动态加密过程需要用到两个扇区, 程序员可选0~15中的任意2个, 这里假定为扇区1和扇区2, 其中扇区1存储与扇区2的密码相关的数据, 扇区2真正记录卡内余额. 3.1 卡的初始化要使M1卡能用于上述的动态加密, 首先必须经过卡的初始化过程, 过程如图11所示, 其中UID 即为M1卡的序列号.图11 动态加密初始化过程如下:第1期祝向辉, 等: 低功耗无磁水表中射频卡读写器的设计 21(1) 读取M1卡的序列号, 并设定扇区1密码Code1与UID及Key1相关;(2) 任意初始化扇区1内8Byte数据Data1, 但注意最好不要初始化为全0或全1等极具规律性的数据, 因为使用这些数据将会大大降低通讯的安全性;(3) 将扇区1数据Data1用密钥KEY2加密后, 作为扇区2的密码Code2, 即为: Code2=des(Data1, Key2, 1).3.2具体的加密操作过程M1卡经过初始化后, 其动态加密具体执行过程如下:(1) 表内读卡器获取卡UID后, 用密钥Key1和UID获取扇区1密码并访问扇区1数据Data1;(2) 用密钥Key2将Data1加密后作为扇区2的密码, 并访问扇区2数据Data2, 从而可进行相应的卡操作;(3) 如图11所示, 将Data1作为输入数据, 用密钥Key3加密后得到的数据更新Data1;(4) 同理, 用密钥Key2将更新后的Data1加密, 再将得到的数据更新扇区2密码Code2.经过以上4个步骤, 则1次动态加密过程中卡的操作便已完成. 为确保每次卡操作的成功, 扇区1中数据Data1的改变与扇区2中密码Code2的更新必须同步, 即每执行过1次步骤3后, 一定要有1次步骤4的执行. 另外, des算法在此并未起到加/解密的作用, 只是将2个无规律8Byte数用密钥Key联系起来, 程序员可以用其他更简单的算法代替, 以降低单片机的计算复杂度, 从而减少操作时间. 整个加密过程的安全性取决于数据Data1与Code2更改的无规律性, 程序员自己编写算法时须注意到此点.4防止用户恶意补卡为防止用户在前1张卡还完好时, 向自来水厂提出补卡的要求将导致用户同时拥有2张有效卡向水表充值(第2张卡免费且拥有第1张卡中的余额), 因此有必要在单片机中留有一定的Flash空间. 若发现异常情况, 则记录相应卡的序列号, 防止用户再使用, 该过程如图12所示.图12 软件防止恶意补卡流程可以在Flash地址A中存储前1张卡的UID, Flash地址B中存放被禁止卡的UID, 该过程中首先读取地址A中的数据与当前卡的UID, 若二者相同, 则判断为同1张卡; 若不同, 则进行密码认证, 成功认证后读取地址B中存放的数据(可以记录多个被禁止的UID)逐一与当前UID相比, 只有全不相同的情况下才确定当前卡为补卡, 进行相应卡的操作后将前1张卡UID记入地址B中, 禁止它再次被使用, 同时将当前卡UID记入地址A.需要注意的是, 由前述M1卡初始化过程可知, 水表内读取数据Data是通过当前卡UID来完成的, 那么虽然不同的卡有不同的UID, 但密码存储在卡内, 所以所有以上述方法初始化后的卡都可以在相同的水表上操作, 这显然是不可行. 为解决此问题, 可以在Flash地址C中存储第1张卡的UID(这里的第1张卡指的是从水表被制造完成后的第1张与其接触的M1卡), 这显然是唯一的, 且地址C中的数据永远不得改动. 以后可通过读取地址C中的数据来获取扇区1密码, 从而读取数据Data1. 因此, 1块水表对应的只有1个密码即可解决上述22 宁波大学学报(理工版) 2009问题. 自来水厂应记录用户第1张卡的序列号(用户水表中密码只与该序列号有关), 若用户需补卡, 对其初始化过程与前述过程相似, 注意初始化扇区1密码时UID为第1张卡序列号即可.5小结介绍了无磁水表中以MFRC522为核心的读卡器的设计, 硬件上采用Philips提供的RC522典型外围电路, 软件上除了基本的卡操作流程外, 根据M1卡多扇区多密码的特点, 在数据传输的加密方面采用了一次一密的动态加密方式, 大大地提高了数据安全性, 不过由于每次读写卡时至少要访问到两个扇区, 这样增加了一些用户的操作等待时间, 但总体来讲并无大碍.尽管基于RC500读写卡器的技术已十分成熟, 但以RC522为核心的相关系统在国内并不多见, 同样是Philips公司的产品, RC522显然是RC500的精简版, 无论是Command指令, 还是内部寄存器都比RC500要更为简洁, 且价格更为低廉, 而总体功能上却并未削弱多少, 因此本文认为RC522替代RC500将会是一种趋势.参考文献:[1]Philips. MFRC522 contactless reader IC product datasheet(Rev3.2)[EB/OL]. (2007-12-11)[2006-08-15]. http:// /.[2]Philips. Design of RC500 matching circuits and antennas(Rev1.0) [EB/OL]. (2007-12-13)[2006-07-25]. http://www./.[3]Philips. Mifare standard card IC MF 1 IC S50 functionalspecification (Rev4.0) [EB/OL]. (2007-12-10) [2006-06- 12]. /.[4]Philips. MFRC500 Basical Function Library(Rev2.0)[EB/OL]. (2008-01-10) [2006-12-05]. http://www.rfidwor /[5]徐丽华. 射频卡识别读写模块的设计与应用[D]. 苏州:苏州大学, 2005.Design of Unsupervised Reading System for Low Power Nonmagnetic Water Meter ZHU Xiang-hui1, WANG Rang-ding1*, YAO Ling2, SUN Guang-qing1, CHENG Chang-gen1( 1.Faculty of Information Science and Technology, Ningbo University, Ningbo 315211, China;2.Ningbo Water Meter Limited Corporation, Ningbo 315211, China )Abstract: In order to increase the data security and reduce inconveniences in meter reading, a non-contact reader is designed for ultimate embedding into the nonmagnetic water meter system. The system power consumption is lowered as result of combining MSP430 singlechip and MF RC522 chip in the design. By taking advantage of multi-sector and multi-password featured in Mifare 1 S50 card, the dynamic mode of one-encrypting-at-a-time is adopted, which consequently enhances the security of data transfer. In addition, some measures are also taken to prevent users from holding more than one card when interfacing with the system.Key words: RC522; MSP430 singlechip; Mifare 1 S50 card; contactless readerCLC number: TP391 Document code: A(责任编辑 章践立)。

基于某MFRC522地RFID读卡器模块设计及实现

基于某MFRC522地RFID读卡器模块设计及实现

基于MFRC522的RFID读卡器模块设计及实现RFID是射频识别的英文缩写。

通俗地说,RFID读卡器是一种能阅读电子标签数据的自动识别设备。

RFID读卡器RFID射频识别是一种非接触式的自动识别技术,它通过射频信号自动识别目标对象并获取相关数据,识别工作无须人工干预,可工作于各种恶劣环境。

RFID技术可识别高速运动物体并可同时识别多个标签,操作快捷方便。

目前国内的13.56MHzRFID读卡器芯片市场上,荷兰恩智浦公司的Mifare非接触读卡芯片系列中MFRC522系列具有低电压、低功耗、小尺寸、低成本等优点。

采用3.3V统一供电,工作频率为13.56MHz,兼容ISO/IEC14443A及MIFARE模式。

MFRC522主要包括两部分,其中数字部分由状态机、编码解码逻辑等组成;模拟部分由调制器、天线驱动器、接收器和放大器组成。

MFRC522的内部发送器无需外部有源电路即可驱动读写天线实现与符合ISO/IEC14443A或MIFARE标准的卡片的通讯。

接收器模块提供了一个强健而高效的解调和解码电路,用于接收兼容ISO/IEC14443A和MIFARE的卡片信号。

数字模块控制全部ISO/IEC14443A帧和错误检测(奇偶和CRC)功能。

模拟接口负责处理模拟信号的调制和解调。

非接触式异步收发模块配合主机处理通信协议所需要的协议。

FIFO(先进先出)缓存使得主机与非接触式串行收发模块之间的数据传输变得更加快速方便。

1 系统组成如图1所示,读卡器模块包括MCU、读卡器芯片、天线及其滤波匹配电路。

MCU选用TI公司的超低功耗单片机MSP430F149,该单片机支持多种低功耗模式,并能够快速唤醒,具有60KB+256B的Flash、2KB的RAM、两个既可做异步UART又可以做SPI使用的串行通讯口、6组I/O口、一个内部DCO和2个外部时钟,非常适合开发低功耗高性能的产品。

在本模块中MCU通过SPI方式与MFRC522连接,供电电压均为3.3V,所以不再需要外围的电压转换电路,外接一个天线及简单的滤波匹配电路,即可实现与卡片的通信。

MFRC522读卡器设计1

MFRC522读卡器设计1

MFRC522读卡器设计1MFRC522读卡器设计11.硬件设计:(1)主控芯片选择:(2)射频天线设计:射频天线是实现读卡器与智能卡之间无线通信的关键部件。

设计射频天线时需要考虑天线的传感区域、天线形状以及天线材料等因素。

相对于直线天线,环形天线更适合进行非接触射频通信。

在设计过程中,还需要根据具体应用需求选择适当的天线材料,如PCB、螺线等。

(3)电源管理设计:读卡器需要提供稳定的电源供应,MFRC522芯片一般采用 3.3V供电。

电源管理电路需要保证电源稳定,同时需要考虑功耗和EMI等问题。

可通过选用稳压芯片、滤波电容和电源管理电路来实现电源的稳定供应。

(4)外部接口设计:MFRC522读卡器通常还需要与其他设备进行数据交互,如PC、单片机等。

外部接口设计需要根据具体应用需求来确定,常见的接口有UART、SPI、I2C等。

设计时需要考虑通信速率、接口协议和接口电平等因素。

2.软件设计:(1)驱动程序:(2)数据处理程序:数据处理程序负责对读取到的卡片数据进行处理和解析,获取卡片的相关信息。

例如,对于IC卡,可以通过数据处理程序来解析卡片的UID、芯片类型和存储数据等。

(3)用户界面:读卡器还需要提供用户操作界面,以便用户进行相应的操作。

用户界面可以通过开发相应的应用程序来实现,如PC端程序或移动端APP等。

(4)安全性设计:考虑到读卡器使用场景的安全性要求,可以在设计中加入相应的安全措施。

例如,可以使用加密算法对通信数据进行加密保护,防止数据被恶意篡改或窃取。

以上是MFRC522读卡器的设计要点,包括硬件设计和软件设计两个方面。

硬件设计需要注意主控芯片的选择、射频天线的设计、电源管理和外部接口的设计。

软件设计包括驱动程序的编写、数据处理程序的设计、用户界面的开发和安全性设计等。

通过合理的设计,可以实现MFRC522读卡器的功能需求,并且满足应用的实际要求。

基于MSP430和MFRC522的非接触式读写器的低功耗设计

基于MSP430和MFRC522的非接触式读写器的低功耗设计

对于需要电池供电的便携式系统,功率问题成为电路设计考虑的重要因素之一。

芯片电路的功耗主要来自开关的动态功耗和漏电的静态功耗。

动态功耗主要是电容的充放电(包括网络电容和输入负载)以及P/N MOS同时打开形成的瞬间短路电流。

静态功耗主要是扩散区与衬底形成二极管的反偏电流和关断晶体管中通过栅氧的电流。

工作时序及软件算法设计有缺陷,会降低系统工作效率、延长工作时间,也会直接增加系统能量的消耗。

本文将具体阐述低功耗设计理念在基于MSP430和MFRC522的非接触式读写器上的应用与实现。

1.模块电路设计系统选用MSP430F413单片机和MFRC522射频芯片。

为简化系统结构,本系统仅由低电压报警单元、MCU单元、射频收发单元、天线、红外发射接收以及外围信号组成。

本系统选用的是SPI接口方式,其连接图如图1所示。

图1 MCU与射频接口及下载接口图MSP430选用JTAG接口下载仿真程序。

为了进一步减少功耗,在系统处于休眠模式时可通过指令关闭SPI接口和MCU中无用的端口。

射频卡读写器采用电感耦合式天线,主要用于产生磁通量,而磁通量用于向射频卡提供电源并在读卡器与射频卡之间传输信息。

当一个RFID系统正常工作时所需的磁感应强度B一定时,安培匝数NI由环形天线的边长a以及标签和读写器天线的距离x来共同决定。

其关系式为:电感耦合式天线的特征值主要有品质因数(Q)和谐振频率。

一般而言,Q一方面衡量能量的传输效率,另一方面也衡量频率的选择性。

对于并联谐振回路,Q可以定义为:Q=2πfRC=R/(2πfL)(f在本系统中为13.56MHz) (2)式中:f为谐振频率;R为负载电阻;L为回路电感;C为回路电容。

Q值越高,天线的输出能量越高,然而太高的Q值会干扰读写器的带通特性,从而无法遵从协议标准。

一般来说,Q=20时,整个系统的带通特性与带宽都比较好。

RFID系统中的品质因数一般在10~30内取值,最大不要超过60。

RC522教程(基于mps430)

RC522教程(基于mps430)

RFID-RC522速成教程(基于msp430单片机的程序讲解)学习一种模块,有很多种方法,其中一种方式是先去弄明白怎么使用这个模块,亲自体验了这个模块的大体功能之后,再回过头来了解该模块的工作原理,再去深层次的研究该模块。

在这里,着重介绍怎么用程序实现RC522模块的一些功能,而RC522的结构,功能等便不再介绍。

这个程序的讲解是基于MSP430F149/169单片机的。

模块使用的是SPI接口,与单片机接口如下:#define RF_LPCTL BIT3 // P2.3 射频卡休眠控制------RST#define RF_SS BIT7 // p2.7 射频卡从机选择(SS)---SDA#define RF_SCLK BIT6 // p2.6 射频卡数据时钟输出(SCLK)#define RF_DATA_OUT BIT5 // p2.5 射频卡数据输出(MOSI)#define RF_DATA_IN BIT1 // p2.1 射频模块输入(MISO)要想对模块内部的数据块进行读写,需要完成4个步骤:寻卡→防冲突→选卡→读/写卡;第一步:寻卡。

status2=PcdRequest(0x52,Temp);////寻卡参数Temp为返回的卡类型if(status2== MI_OK){tochar(Temp[0]);tochar(Temp[1]);//输出卡类型}其中0x52代表寻天线区内全部卡。

卡类型(TagType):0x4400 = Mifare_UltraLight0x0400 = Mifare_One(S50)0x0200 = Mifare_One(S70)0x0800 = Mifare_Pro(X)0x4403 = Mifare_DESFire比如,当Temp[0]=04,Temp[1]=00时,卡类型为S50。

第二步:防冲突。

status2 = PcdAnticoll(UID); //防冲撞处理,输出卡片序列号,4字节if(status2==MI_OK){PutString0("Card Id is:");tochar(UID[0]);tochar(UID[1]);tochar(UID[2]);tochar(UID[3]); //输出卡片序列号}第三步:选卡。

基于RC522的RFID读卡器电路设计实现

基于RC522的RFID读卡器电路设计实现

基于RC522的RFID读卡器电路设计实现RFID(Radio Frequency Identification,射频识别)是通过电磁场无线识别特定目标并获取相关数据的一种技术,广泛应用于物联网、智能交通、门禁管理等领域。

而基于RC522的RFID 读卡器电路,是一种较为常见的RFID应用,下面就来介绍一下它的设计实现。

1、硬件设计(1)RC522芯片RC522芯片是一种高度集成化的射频识别电路,它包含收发器模块、解调/调制器、存储器和调制器等多个功能模块,可以满足基本的读写操作。

在设计RFID读卡器电路时,需要将RC522芯片与微控制器STM8S003F3P6连接,实现读写卡片的功能。

(2)卡片天线要实现RFID读写的功能,需要将RC522芯片的天线和卡片之间的电磁场进行相互作用。

因此,需要在RFID读卡器电路中加入一根天线,将其与RC522芯片连接,以提供射频信号的发送和接收功能。

(3)电源RFID读卡器电路的工作需要稳定的电源,因此需要为电路的各个部分提供合适的电压,以保证其正常运行。

此外,还需要考虑电路的电流大小,以保证电路的安全稳定运行。

2、软件设计(1)引脚配置在软件设计中,需要对微控制器的引脚进行配置。

具体来说,需要将控制芯片的时钟引脚和数据总线引脚与RC522芯片连接,以实现控制和通信的功能。

(2)操作流程RFID读卡器电路的操作流程分为两个主要环节,即初始化和读卡。

在初始化环节中,需要将RC522芯片的各个寄存器进行初始化,并设置好卡片天线的参数。

而在读卡环节中,则需要使用RC522芯片提供的API函数进行卡片的寻卡、选择、认证和读取等操作。

(3)数据传输在RFID读写过程中,需要使用SPI总线进行数据的传输。

因此,需要在软件设计中对SPI接口进行配置,以实现数据的快速传输。

3、其他注意事项在实际的RFID读卡器电路设计中,还需要对防冲击和磁场等外界干扰因素进行考虑,以保证电路的稳定性和可靠性。

MFRC522读卡器设计重点讲义资料

MFRC522读卡器设计重点讲义资料

MFRC522读卡器设计重点讲义资料
引言:
MFRC522读卡器是一款非常流行的射频识别设备,广泛应用于门禁系统、智能支付、物联网等领域。

本文将介绍MFRC522读卡器的设计原理、工作流程以及一些设计注意事项,帮助读者能更好地理解和应用该技术。

一、MFRC522读卡器的原理
二、MFRC522读卡器的工作流程
1.初始化:通过SPI接口与主控制器进行通信,设置相关寄存器、配置工作模式和参数。

三、MFRC522读卡器的设计注意事项
2.电源设计:为保证读卡器的正常工作,应注意电源的稳定性和可靠性。

可以采用稳压电源和合适的滤波电路。

3.通信接口选择:MFRC522读卡器通常通过SPI接口与主控制器进行通信,设计时应注意信号线的布局、长度和阻抗匹配,以确保稳定的数据传输速率。

4.PCB设计:将MFRC522读卡器的各个模块、器件布局在PCB上时,应注意信号分布的合理性、阻抗匹配和地线的设计。

结论:
MFRC522读卡器是一款非常实用的射频识别设备,在门禁系统、智能支付和物联网等领域有着广泛的应用。

通过理解其工作原理和工作流程,以及注意一些设计要点,可以更好地应用该技术,并实现更高效、稳定的
系统设计。

希望本文所提供的讲义资料能帮助读者更好地学习和应用MFRC522读卡器技术。

rc522读写程序

rc522读写程序

rc522读写程序
摘要:
1.RC522 读写程序简介
2.RC522 读写程序的工作原理
3.RC522 读写程序的应用场景
4.RC522 读写程序的发展前景
正文:
一、RC522 读写程序简介
RC522 读写程序是一款基于射频识别技术(RFID)的读写程序,主要用于MFRC522 射频识别卡与读写器之间的通信。

该程序可以实现对射频识别卡的读取、写入和删除数据等操作,为各类应用场景提供了便捷的解决方案。

二、RC522 读写程序的工作原理
RC522 读写程序的工作原理主要基于射频识别技术的无线通信。

当射频识别卡进入读写器的工作范围时,读写器会发射一定频率的射频信号,激活射频识别卡内的芯片。

随后,射频识别卡将自身的数据传递给读写器,完成数据的读取或写入。

三、RC522 读写程序的应用场景
RC522 读写程序在现实生活中的应用场景非常广泛,包括但不限于以下几个方面:
1.门禁系统:通过射频识别技术,可实现对进出门禁的人员或物品的自动识别和控制。

2.考勤管理:企业或学校可利用RC522 读写程序实现对员工或学生的考勤管理,提高管理效率。

3.智能交通:RC522 读写程序可用于实现智能交通领域的车辆识别、交通监控等功能。

4.零售行业:通过射频识别技术,实现对商品的快速扫描和识别,提高购物体验。

四、RC522 读写程序的发展前景
随着科技的不断进步,射频识别技术在各个领域的应用也在不断拓展。

RC522 读写程序作为射频识别技术的重要组成部分,具有非常广阔的发展前景。

rc522芯片课程设计

rc522芯片课程设计

rc522芯片课程设计一、课程目标知识目标:1. 理解RC522芯片的基本原理与功能,掌握其工作流程和通信协议。

2. 学习并掌握RC522芯片的编程方法,能运用相关指令进行基本操作。

3. 了解RFID技术在实际应用中的优势,理解其在物联网领域的应用前景。

技能目标:1. 能够独立完成RC522芯片的硬件连接,进行基本的调试工作。

2. 能够利用编程软件编写RFID读取程序,实现对标签的识别与读写。

3. 培养学生的动手实践能力,提高解决问题的能力。

情感态度价值观目标:1. 培养学生对电子信息技术、物联网技术的兴趣,激发学生的学习热情。

2. 培养学生的团队协作精神,提高沟通与交流能力。

3. 引导学生关注新技术的发展,认识到科技对社会进步的重要性。

课程性质分析:本课程为信息技术课程,旨在通过RC522芯片的教学,让学生掌握RFID技术的基本原理和应用,提高学生的实践操作能力。

学生特点分析:本课程面向初中或高中年级学生,他们对电子信息技术有一定的基础,对新事物充满好奇,具备一定的动手实践能力。

教学要求:1. 结合课本内容,注重理论与实践相结合,提高学生的实际操作能力。

2. 通过问题导向、任务驱动等教学方法,激发学生的学习兴趣和主动性。

3. 强化团队协作,培养学生的沟通与交流能力。

二、教学内容1. RC522芯片基本原理:介绍RFID技术背景,讲解RC522芯片的工作原理、内部结构及其功能模块,如发射器、接收器、控制单元等。

教材章节:第三章RFID技术原理及其应用。

2. 硬件连接与调试:讲解RC522芯片的硬件连接方法,演示如何与微控制器(如Arduino)相连接,进行基本的硬件调试。

教材章节:第四章RFID硬件系统设计。

3. 通信协议与编程:介绍RC522芯片的通信协议,包括指令集、数据格式等,教授如何利用编程软件(如Arduino IDE)编写RFID读取程序。

教材章节:第五章RFID编程与应用。

4. 实践操作:组织学生进行RC522芯片的实践操作,包括硬件连接、程序编写、标签识别与读写等。

基于RC522模块的水控机一卡通读写控制器设计

基于RC522模块的水控机一卡通读写控制器设计

基于RC522模块的水控机一卡通读写控制器设计作者:徐绍娟邱琳来源:《科技传播》2011年第19期摘要系统以Philips公司RC522的射频读卡芯片为核心,结合高速MCUSTC12LE5410AD微控制器,构成了符合IEC/ISO 14443A 空气接口协议的一卡通读写控制器。

论文介绍了RC522的结构和功能,并以水控机为研究对象,给出了MCU控制单元、基站模块、显示模块、报警单元等硬件设计,阐述RC522与MCU的通信方式以及对Mifare卡的读写过程,实现了按流量和按时间两种模式下的用水收费控制。

关键词 RC522;MCU;水控机;一卡通读写控制器;设计中图分类号TH7 文献标识码A 文章编号 1674-6708(2011)52-0128-020引言非接触式IC卡又称射频卡,是最近几年发展起来的一项新技术,它成功地将射频识别技术和IC卡技术结合起来,解决了无源(卡中无电源)和免接触这一难题,是电子器件领域的一大突破[1]。

目前,水表几乎都采用MCU控制具有14443A协议的芯片RC500,实现对Mifare卡的读写操作,但该方案存在指令复杂、成本高,控制方式单一等缺点。

本文以STC12LE5410AD为中央控制器,采用MCU控制具有14443A协议的芯片RC522,设计了符合IEC/ISO 14443A 空气接口协议的一卡通读写控制器。

当有效M1卡放在天线上,RC522将卡片中电子钱包里面的数据读出,通过SPI总线传给MCU,MCU解析数据后在LCD上显示余额,键盘发出开关信号通过MCU控制电磁阀的开关,当键盘设定为开状态,电磁阀打开,水通过流量计流出,流量计将水量转化为脉冲信号传送给MCU计数,MCU 根据设定的模式进行实时扣费显示。

该方案可简化指令、降低成本,且通信方式多样,如SPI 模式、UART模式、IIC模式,很容易实现对Mifare卡的读写操作,增加了性价比。

1 系统硬件设计硬件主要包括MCU电路模块、RC522的基站模块、天线模块电路、通信接口模块、LCD 显示模块、蜂鸣器报警模块、流量计模块、控制水开关的电磁阀模块。

基于RC522模块的水控机一卡通读写控制器设计

基于RC522模块的水控机一卡通读写控制器设计

基于RC522模块的水控机一卡通读写控制器设计摘要系统以Philips公司RC522的射频读卡芯片为核心,结合高速MCU STC12LE5410AD微控制器,构成了符合IEC/ISO 14443A 空气接口协议的一卡通读写控制器。

论文介绍了RC522的结构和功能,并以水控机为研究对象,给出了MCU控制单元、基站模块、显示模块、报警单元等硬件设计,阐述RC522与MCU的通信方式以及对Mifare卡的读写过程,实现了按流量和按时间两种模式下的用水收费控制。

关键词RC522;MCU;水控机;一卡通读写控制器;设计0引言非接触式IC卡又称射频卡,是最近几年发展起来的一项新技术,它成功地将射频识别技术和IC卡技术结合起来,解决了无源(卡中无电源)和免接触这一难题,是电子器件领域的一大突破[1]。

目前,水表几乎都采用MCU控制具有14443A协议的芯片RC500,实现对Mifare卡的读写操作,但该方案存在指令复杂、成本高,控制方式单一等缺点。

本文以STC12LE5410AD为中央控制器,采用MCU控制具有14443A协议的芯片RC522,设计了符合IEC/ISO 14443A 空气接口协议的一卡通读写控制器。

当有效M1卡放在天线上,RC522将卡片中电子钱包里面的数据读出,通过SPI 总线传给MCU,MCU解析数据后在LCD上显示余额,键盘发出开关信号通过MCU控制电磁阀的开关,当键盘设定为开状态,电磁阀打开,水通过流量计流出,流量计将水量转化为脉冲信号传送给MCU计数,MCU根据设定的模式进行实时扣费显示。

该方案可简化指令、降低成本,且通信方式多样,如SPI模式、UART模式、IIC模式,很容易实现对Mifare卡的读写操作,增加了性价比。

1 系统硬件设计硬件主要包括MCU电路模块、RC522的基站模块、天线模块电路、通信接口模块、LCD显示模块、蜂鸣器报警模块、流量计模块、控制水开关的电磁阀模块。

采用SPI通信方式控制RC522,实现按流量和按时间两种模式下的用水收费功能。

基于RC522的RFID读卡器电路设计实现

基于RC522的RFID读卡器电路设计实现

基于RC522的RFID读卡器电路设计实现
袁乐民
【期刊名称】《数字技术与应用》
【年(卷),期】2014(000)012
【摘要】设计一种基于MF RC522的射频读卡器,工作频率为13.56MHz。

电路控制的核心部分采用STM32单片机实现,射频信号发送与接收采用集成射频读写芯片MF RC522完成,RS232串口实现了读卡器与上位机的通信连接,测量了周围无金属物时的最大读卡距离为60mm,高于MF RC522数据手册中给定的最大典型操作距离50mm,达到设计要求。

【总页数】2页(P168-169)
【作者】袁乐民
【作者单位】西北师范大学物理与电子工程学院甘肃兰州 730070; 定西师范高等专科学校物电系甘肃定西 743000
【正文语种】中文
【中图分类】TP391.44
【相关文献】
1.RFID读卡器射频电路研制 [J], 赖树明;任斌;余成
2.基于 STM 32 的免驱动 RFID 读卡器设计 [J], 肖川
3.基于RC522的RFID读卡器电路设计实现 [J], 袁乐民
4.支持多协议的13.56 MHz RFID读卡器芯片解调电路设计与实现 [J], 薛涵;冯攀;
陈鹏飞;戴葵;邹雪城
5.基于13.56MRFID读卡器有效距离的研究 [J], 邵炳乾;张健;赵帅
因版权原因,仅展示原文概要,查看原文内容请购买。

rc522读卡工作原理

rc522读卡工作原理

rc522读卡工作原理RC522读卡器是一种基于射频识别(RFID)技术的设备,常用于无线智能卡和非接触式读卡。

RC522读卡器的核心部件是MFRC522芯片,它由射频模块、数字控制器和接口电路等组成。

射频模块用于发送和接收射频信号,数字控制器负责控制读卡器的整个工作流程,接口电路用于与外部设备进行通信。

RC522读卡器的工作原理如下:1. 射频信号传输:读卡器通过射频模块发送射频信号,一般工作在13.56MHz的频率范围内。

射频信号会被传输到读卡器附近的智能卡上。

2. 卡片回应:智能卡接收到射频信号后,会进行解调和回应。

卡片内部的天线会将射频信号转换为电能,然后供电给卡片的电路系统。

卡片的电路系统会对射频信号进行解调和处理,并返回相关的信息。

3. 信号接收:读卡器的射频模块接收到智能卡回应的射频信号后,将其经过解调和处理后传递给芯片的数字控制器。

4. 信息解码:芯片的数字控制器对接收到的射频信号进行解码和处理,将卡片回应的信息转换为可读取的格式。

5. 数据处理:读卡器将解码后的信息进行处理,并根据协议规定的方式提取出所需的数据,如卡片的唯一标识符等。

6. 数据传输:读卡器通过接口电路将提取出的数据传输给外部设备,如电脑或其他终端设备。

需要注意的是,RC522读卡器一般采用SPI接口与外部设备进行通信,SPI是一种同步的串行通信协议,通过时钟和数据传输线进行数据传输。

读卡器还可以通过修改寄存器的值,设置不同的参数和工作模式。

综上所述,RC522读卡器的工作原理是通过射频信号传输、卡片回应、信号接收、信息解码、数据处理和数据传输等过程,实现对智能卡的无线识别和数据读取。

这种技术在许多领域得到应用,如门禁系统、智能支付、物流追踪等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于MSP430和RC522 的读卡器系统设计[1]分类: rfid [2] 2011-10-17 18:39 525人阅读评论(0) 收藏[3]举报本文设计的读卡器系统以MSP430单片机作为主控芯片,选用MIFARE S50卡片,读卡器与卡片间以106kbps速率通信,同时实现读卡过程中的防冲突处理和对卡E2PROM块内容的读/写等功能。

读卡器内部设置了Flash存储器以存放卡数据,在Flash容量满的情况下可通过读卡器的以太网口读出全部数据到管理中心上位机,便于建立对卡数据的综合管理系统。

 1 硬件系统设计 读卡器硬件框图如图1所示。

 单片机MSP430通过SPI总线与RC522和Flash芯片AT45D011相连,同时用简化的ISA总线连接以太网接口芯片C58900,以提供连接到局域网的能力。

AT45D0ll 存储容量为lMb,可同时存储7400多组MIFARE的E2PROM块和UID号,提供了足够读卡器一天内读取的信息量的存放容量。

对于RC522天线部分的设计,Philips 公司有专门的手册详细介绍,本文不再赘述。

RC522的SPI总线接口有其自身的时序要求。

它只能工作于从模式,最高传输速率为10 Mbps,数据与时钟相位关系满足“空闲态时钟为低电平,在时钟上升沿同步接收和发送数据,在下降沿数据转换”的约束关系。

MSP430系列单片机的片上外设包括1个SSP模块。

该模块可配置为SPI接口使用,通过相应的寄存器可控制SPI接口的数据传输率、数据一时钟相位天系等通信参数。

本文中配置SSP模块工作于SPI主模式下,时钟为1/4单片机主频,接收和发送数据都在时钟上升沿发生。

需要注意的是,由于RC522支持的数字接口形式多种多样,因此芯片在每次复位时都会检测外部引脚连接关系。

对于SPI接口,RC522的相关引脚必须按照图2所示的连接关系配置。

除了通用的4条SPI信号线(时钟线SCK、输入数据线MOSI、输出数据线MISO 和选通线NSS)以外,RC522要求额外的2个引脚I2C和EA分别固定接低电平和高电平。

这2个引脚不参与SPI总线传输,只起设定RC522数字界面采用SPI接口的作用。

另外,片选信号必须保证在写入数据流期问为低电平,而在无数据流写入时则为高电平;用户不得为节省PIC单片机引脚资源而一直将NSS置为低电平。

2 软件系统设计相对于Philips公司生产的其他14443基站芯片(如RC500、RC530等),RC522简化了内部系统结构,去掉了片内E2PROM。

从而大大缩减了芯片命令集。

另外,对载波调制电路,发送电路和解调、解码电路的控制也相应简化,去掉了校准接收电路I时钟、Q时钟、校准发送与接收时钟相位等繁琐的操作。

一般而言,单片机与RC522的通信流程如图3所示。

根据RC522和MIFARE卡间传送的控制流数据的不同,通信过程中可能会出现不同的状态。

对各种状态须作不同处理,这正是软件系统开发的难度所在。

下面给出RC522命令集中2个最基本命令(Tranceive和MFAuthe-nt)执行过程中可能遇到的通信状态及处理。

这两个命令分别实现向MIFARE卡发送/接收数据和加密认证功能。

实际上,通过它们即可完成对MIFARE卡的所有操作,包括Request、Anticollision、Select、READ、WRITE等。

 2.1 RC522命令集的实现 RC522主要的状态指示寄存器包括ComIrqReg、Er-rorReg、Status2Reg和FIFOLevelReg等。

软件处理的思路:通过ComIrgReg得到RC522内部中断状态;由中断判断RC522与MIFARE卡的通信流程信息,从而决定是否进行下一流程处理;若中断指示有错误发生,则需进一步读取ErrorReg的内容,据此返回错误字。

2.1.1 Tranceive命令 Tranceive命令的具体执行过程;读取RC522 FIFO中的所有数据,经基带编码和数字载波调制后通过通信接口以射频形式发送到MIFARE卡;发送完毕后通过通信接口检测有无MIFARE卡发送的射频信号回应,并将收到的信号解调、解码后放入FIFO中。

分析以上Ttanceive命令执行过程,可以得到处理该命令的算法流程图,如图4所示。

为了处理MIIFARE卡在读卡器产生的电磁场中激励后,未完成处理就从激励场中拿开的情况,软件中启用了RC522芯片内部的定时器。

若超过设定的时间未得到卡片应答,则中止与卡的通信,返回“卡无反应”的错误信息。

从图4中可以看出Tranceive命令的核心处理方法:根据相关通信状态指示寄存器的内容返回各种错误状态字,若有位冲突错误,则进一步返回位冲突位置。

Tranceive命令不处理面向比特的帧,这种帧只可能在MIFARE卡防冲突循环中出现。

为了保持Tranceive命令对各种MI-FARE卡命令的普适性,该命令只完成帧的发送和接收,不对帧信息作处理,所有位冲突处理留在函数外进行。

 需要注意的是,Tranceive命令不能自动中止,在任何情况下从该命令返回时必须先执行IDLE指令使RC522转入空闲态。

 2.1.2 MFAuthent命令RC522简化了与MIFARE卡的加密认证操作,用一个MFAuthent命令代替了原来RC500需要的Authentl和Authent2两条命令。

MFAuthent命令执行的最终目的在于开启RC522的加密认证单元。

该指令执行成功后,RC522芯片与MIFARE卡间的通信信息将首先加密,然后再通过射频接口发送。

从本质上讲,MFAuthent是一条变相的Tranceive命令,其算法流程图与图4一致。

但RC522芯片内部已经对通信过程中的各种通信状态作了相应处理,且该命令执行完后自动中止,因此用户只须检测定时器状态和错误寄存器状态来判断执行情况。

实际上,MFAuthent只可能有一种错误状态(RC522与MI-FARE卡通信帧格式错误),此时该命令不能打开加密认证单元,用户必须重新执行认证操作。

 MFAuthent执行过程中RC522将依次从FIFO中读取1字节认证模式、l字节要认证的E2PROM块号、6字节密钥和4字节射频卡UID号等信息,在命令执行前必须保证这12字节数据完整地保存在FIFO中。

认证模式有A密钥认证和B密钥认证两种,一般选用A密钥认证。

一次MFAutllent认证只能保证对MIFARE卡的一个扇区中的4个数据块解密,若要操作其他扇区的数据用户还须另外启动对该扇区的认证操作。

 2.2 MIFARE卡操作指令 对MIFARE卡常用的操作指令包括查询、防冲突、选卡、读/写E2PROM块等。

其中,防冲突指令是14443A协议的精华部分,实现难度较大。

下面将重点介绍防冲突算法的软件实现方法。

 2.2.1 防冲突指令 14443A标准定义的防冲突算法本质上是一种基于信道时分复用的信道复用方法。

在某一时刻若多个射频卡占用射频信道与读卡器通信,则读卡器将会检测到比特流的冲突位置;然后重新启动另一次与射频卡的通信过程,在过程中将冲突位置上的比特值置为确定值(一般为1)后展开二进制搜索,直到投有冲突错误被检测到为止。

MIFARE卡内有4字节的全球惟一序列号UID,而RC522防冲突处理的目的就在于最终确定MIFARE卡的UID。

14443A标准的防冲突指令格式如下: 其中:命令代码“93”代表要处理的射频卡UID只有4字节;NVM表示此次防冲突命令的UID域中正确的比特数;BCC字节只有在NVM为70(即UID的4字节都正确)时才存在,它表示此时整个UID都被识别,防冲突流程结束。

 防冲突算法流程图如图5所示。

NVM初始值为20,表示该命令只含有2个字节,即“93+20”,不含UID数据,MIFARE卡须返回全部UID字节作为响应。

若返回的UID数据有位冲突的情况发生,则根据冲突位置更新NVM值。

可知在搜索循环中,随着UID已知比特数的加入,NVM不断增加,直到70为止。

它表示除了“93+70”两个命令字节外,还有UID0~UID3和BCC 5个UID数据字节。

此时命令字节共有7个,防冲突命令转变为卡片选择命令。

防冲突流程中若遇到须发送和接收面向比特的帧的情况,则必须预先设置通信控制寄存器BitFramingReg。

该寄存器可指明发送帧中最后一个字节和接收帧第一个字节中不完整的比特的位数。

2.2.2 读卡和写卡指令 14443A协议中并没有具体规定对射频卡的读写操作方式,故对每种卡的读写操作都必须考虑该卡的存储区域组织形式和应答形式。

MIFARE卡内部存储器是由E2PROM组成的,共划分为16个扇区,每个扇区4个块,每块16字节。

对E2PROM 的读写都以块为单位进行,即每次读/写16字节。

以写卡指令为例,MIFARE卡要求有两步握手,指令格式分别如下所述。

Setp A:查询块状态。

若块准备好,则MIFARE卡返回4比特应答。

若值为1010,则可进行下一步操作;若值非1010,则表示块未准备好,必须等待直至块准备好为止。

Step B:写数据。

若写入成功,则MIFARE卡返回4比特应答,值仍为1010;若非lOl0,则表示写入失败。

读卡指令格式如下:若执行成功,则MIFARE卡返回18字节应答比特。

需要注意的是,其中只有16字节是读取的块数据,另外2个字节为填充字节。

若字节数不为18,则可判断读卡操作错误。

MIFARE卡数据加密时以扇区为单位,一次加密认证仅能操作一个扇区的数据。

这为用户实现“一卡通”功能提供了便利,用户可在不同的扇区内采用不同加密方式互不干扰地存放各种目的应用数据。

实际生活中常见的一种应用是电子钱包,对卡的写操作须按照一定的格式进行。

一个块的数据组成如下: 注意:address值无意义,但value值写入时必须在4~7字节中存入取反值。

2.3 读卡器总体软件设计 读卡器的软件设计思路是利用RC522的Tranceive命令作为标准函数,通过调用此函数实现MIFARE卡操作指令。

MIFARE卡的操作流程如图6所示,其要点是将操作完成的卡转入休眠态,递减可能发生冲突的卡片数目直至所有卡片操作完毕,此时防冲突函数无卡片应答。

 RC522芯片在每次使用前都必须复位,除了在复位引脚NRSTPD输入从低电平至高电平的跳变沿外,还必须向RC522的命令寄存器CommandReg写人软复位命令代码0x0I?进行软复位。

在利用Rc522操作MIF’RAE卡之前,用户必须正确设置芯片模拟部分的工作状态。

依笔者经验,一般情况下RC522调制、解调方式采用默认设置即可;在106 kbps通信速率下可正常使用,但必须保证天线驱动接口打开,可以通过设置Tx—controlReg寄存器实现。

相关文档
最新文档