RFID读卡器的设计

RFID读卡器的设计
RFID读卡器的设计

RFID读卡器的设计

内容摘要:现在的电子行业发展的非常的快速,电子信息行业已经给人们的日常生活带来了很大的方便和丰厚的利益,特别是在IC卡技术早已经深入人们的日常

生活中了。在IC卡管理应用系统中,作为IC卡数据读写的终端IC卡读写器是必

不可少的。IC卡读写器除了完成基本的IC卡数据读写功能外,还要完成数据收集

传送、控制命令输入和显示输出、提供上位机控制管理接口和数据加密处理等等功能。本文主要介绍了一种IC卡读写终端的设计,IC卡读写终端是一个单片机嵌入

式应用系统。论文介绍了实现IC卡数据存储的控制方法,并以西门子公司的

SLE4442型逻辑加密卡为基础,详细介绍了单片机控制IC卡数据读写的软、硬件

实现方法。

关键字:ZLG500B读卡模块 STC89C58 读卡器 s50、s70IC卡

ZLG500B is simply a serial reading modules. It can be read in the card, MIFARE wireless devices include a PCB antenna, provides a UART interface (CMOS level)and it can be controlled by the host of microprocessors.

Based on the module is read card ZLG500B 13.56 MHz frequency card series, which conform to the standards of modules, support ISO14443 mifare1 S50 / S70 mifare0 ultralight mifare, and Pro desfire, it adopts mifare, ting, vlsi encapsulation, easy and reliable, variety and characteristics of small volume, convenient, quick to help you to today's most popular contactless IC card into the system, the four layers, double-sided PCB design process, EMC table posted excellent performance, Adopt high integration PHILIPS card chip MFRC500, With control and controllable buzzer signal outputs. Literacy MFRC500 EEPROM within, Provide C51 function library for secondary development, According to the requirements of users can customize their own module.

Keywords:ZLG500B card read module STC89C58 ,card reader s50、s70 IC card

绪论:

RFID是Radio Frequency Identification的缩写,即射频识别。常称为感应

式电子晶片或近接卡、感应卡、非接触卡、电子标签、电子条码,等等。

ZLG500B是一个简单的串行读写模块。它可以读写MIFARE无线智能卡,在这

个器件中包括了一个PCB天线,提供了一个UART接口(CMOS电平),可受控于主

机的微处理器

射频卡又叫非接触式IC卡,诞生于90年代初,是世界上最近几年发展起来的一项新技术,它成功地将射频识技术和IC卡技术结合起来,解决了无源(卡中无电源)和免接触这一难题,是电子器件领域的一大突破。由于存在着磁卡和接触式IC卡不可比拟的优点,使之一经问世,便立即引起广泛的关注,并以惊人的速度得到推广应用。

非接触式IC卡由IC芯片,感应天线组成,并完全密封在一个标准PVC 卡片中,无外露部分。非接触式IC卡的读写过程,通常由非接触型IC卡与读写器之间通过无线电波来完成读写操作。

非接触型IC卡本身是无源体,当读写器对卡进行读写操作时,读写器发出的信号由两部分叠加组成:一部分是电源信号,该信号由卡接收后,与其本身的L/C产生谐振,产生一个瞬间能量来供给芯片工作。另一部分则是结合数据信号,指挥芯片完成数据、修改、存储等,并返回给读写器。由非接触式IC卡所形成的读写系统,无论是硬件结构,还是操作过程都得到了很大的简化,同时借助于先进的管理软件,可脱机的操作方式,都使数据读写过程更为简单。

一、RFID的工作原理:

射频识别系统的基本模型如图8—1所示。其中,电子标签又称为射频标签、应答器、数据载体;阅读器又称为读出装置,扫描器、通讯器、读写器(取决于电子标签是否可以无线改写数据)。电子标签与阅读器之间通过耦合元件实现射频信号的空间(无接触)耦合、在耦合通道内,根据时序关系,实现能量的传递、数据的交换。

发生在阅读器和电子标签之间的射频信号的耦合类型有两种。

(1)电感耦合。变压器模型,通过空间高频交变磁场实现耦合,依据的是电磁感应定律,如右图所示。

(2)电磁反向散射耦合:雷达原理模型,发射出去的电磁波,碰到目标后反射,同时携带回目标信息,依据的是电磁波的空间传播规律

电感耦合方式一般适合于中、低频工作的近距离射频识别系统。典型的工作频率有:125kHz、225kHz和13.56MHz。识别作用距离小于1m,典型作用距离为10~20cra。

电磁反向散射耦合方式一般适合于高频、微波工作的远距离射频识别系统。典型的工作频率有:433MHz,915MHz,2.45GHz,5.8GHz。识别作用距离大于

1m,典型作用距离为3—l0m。

RFID读写器技术原理图:

电感耦合模型的读写器

电磁反向散射耦合型的RFID读写器

二、RFID读写器防冲撞(防碰撞)实理机理

RFID分类的第二个重要的看点在于是否需要同时读取复数个标签。为了实现这个功能在通信上所采取的技术是(防冲撞)"防碰撞".同时读取复数个标签是常被人们谈及的RFID比图形码远为优越的地方,但是如果没有防碰撞(防冲撞)的功能时,RFID系统只能读写一个标签。在这种情况下如果有两个以上的标签同时处于可读取的范围内就会导致读取的错误。

其次,我们来简单地说明防碰撞(防冲撞)功能的工作原理。即使是具有防碰撞(防冲撞)功能的RFID系统,实际上并非同时读取所有标签的内容。在同时查出有复数个标签存在的情况下,检索信号并防止冲突的功能开始动作。为了进行检索,首先要确定检索条件。例如,13.56MHz频带的RFID系统里应用的ALOHA方式的防碰撞功能的工作步骤如下。

1)、首先,阅读器指定电子标签内存的特定位数(1~4位左右)为次数批量。

2)、电子标签根据次数批量,将响应的时机离散化。例如在两位数的次数批量“00、01、10、11”时,读写器将以不同的时机对这四种可能性逐一进行响应。

3)、若在各个时机里同时响应的电子标签只有一个的场合下才能得到这个电子标签的正常数据。信息读取之后阅读器对于这个电子标签发送在一定的时间内不再响应的睡眠的指令(Sleep/Mute)使之在休眠,避免再次向应。

4)、若在各个时机内同时由几个电子标签响应,判别为“冲突”。在这种情况下,内存内的另外两位数所记录的次数批量,重复以上从2)开始的处理。

5)、所有的电子标签都完成响应之后,阅读器向他们发送唤醒的指令(Wake Up),从而完成对所有电子标签的信息读取。

在这种搭载有防碰撞(防冲撞)功能的RFID系统中,为了只读一个标签,几经调整次数批量反复读取进行检索。所以,一次性读取具有一定数量的标签的情况下,所有的标签都被读到为止其速度是不同的,一次性读取的标签数目越多,完成读取所需时间要比单纯计算所需的时间越长。

实现防止抗碰撞(防冲撞)的功能是RFID在物流领域中取代图形码所必不可少的条件。例如,在超市中,商品是装在购物车里面进行计价的。为了实现这种计价方式,抗碰撞(防冲撞)功能必须完备。另一方面,在电子货币和个人认证方

面利用RFID系统时,同时识别几个标签是发生差错的主要原因。

具有抗碰撞(防冲撞)功能的RFID系统的价格比不具有这种功能的系统的要昂贵。当个人用户在制作RFID系统的时候,如果没有必要进行复数个ID同时认识时就没有必要选择抗碰撞机能的读写器。

三、硬件部分设计

3.1 ZLG500b

ZLG500B是一个简单的串行读写模块。它可以读写MIFARE无线智能卡,在这个器件中包括了一个PCB天线,提供了一个UART接口(CMOS电平),可受控于主机的微处理器

ZLG500B读卡模块是基于13.56MHz频率的系列读卡模块,它符合ISO14443标准,可支持mifare1 S50/S70、mifare0 ultralight、mifare Pro、mifare desfire,它采用超小型、超大规模集成电路封装,具有易用、可靠、多样和体积小等特点,可帮助您方便、快捷地将当今最流行的非接触式IC卡技术融入系统中,四层电路板设计,双面表贴工艺,EMC性能优良;采用PHILIPS高集成度读卡芯片MFRC500;具有控制线和可控蜂鸣器信号输出;能读写MFRC500内EEPROM;可提供C51函数库供二次开发;可根据用户要求定制个性化模块

3.1.2 ZLG500b 天线一体化模块实物图

J2J1

3.1.2电气特性

符号参数最小典型最大单位

T

STR

环境或储存温度范围-40 +150 ℃

T

OP

工作温度范围-25 +25 +85 ℃

V

CC

工作电压范围 4.5 5 5.5 V

I

CC1电流消耗,config成

功后

75 MA

I

CC2电流消耗,close成

功后

7 MA

3.1.3引脚描述

如图所示,J1为与天线的接口,J2为与MCU 的接口,如下二表显示:天线接口表

管脚符号描述

J1-1 GND 地

J1-2 TX1 天线发送1

J1-3 GND 地

J1-4 TX2 天线发送2

J1-5 GND 地

J1-6 RX 天线接收

CMOS/TTL串行接口表

管脚类型符号描述

J2-1 CTRL 输出控制线输出

J2-2 BZ 输出蜂鸣器信号输出,平时为高,输出方波或低电平有效

J2-3 CON485 输出RS485控制,平时为低,TXD发送为高J2-4 VCC PWR 电源正端

J2-5 RST 复位模块复位端

若模块名后缀不带G,高电平有效

若模块名后缀带G,低电平有效或该脚悬空

J2-6 GND PWR 电源负段

J2-7 RXD 输入UART接收端

J2-8 TXD 输出UART发送端

串行接口

ZLG500B 模块可方便地与MCU进行接口,如下图所示与MCS51单片机的典型接口。

RS232电平串行接口表

管脚符号描述

J4-1 VCC 加+5V电压

J4-2 RXD 232接口接送端

J4-3 TXD 232接口发送端

J4-4 GND 地

HD61202及其兼容控制驱动器的引脚功能如下;

引脚符号状态引脚名称功能

CS1,CS2,CS3 输入芯片片选端CS1和CS2低电平选通,CS3高电

平选通

E 输入读写使能信号在E下降沿,数据被锁存(写)

入HD61202及其兼容控制驱动

器;在E高电平期间,数据被读

D/I 输入数据、指令选

择信号D/I=1为数据操作,

D/I=0为写指令或读状态

R/W 输入读写选择信号R/W=1为读选通

R/W=0为写选通

DB0~DB7 三态数据总线

RST 输入复位信号复位信号有效时,关闭液晶显

示,使显示起始行为0。RST可跟

MPU相连,由MPU控制;也可直接

接Vcc,使之不起作用。

HD61202 端口信号波形:

HD61202及其兼容控制驱动器的指令:

1、显示开/关指令

当DB0=1时,LCD显示RAM中内容:DB0=0时,关闭显示。

2、显示起始行ROW设置指令

该指令设置了对液晶屏嘴上一行的显示RAM的行号,有规律地改变显示起始行,可以使LCD实现显示滚屏的效果。

3、读状态指令

该指令用来查询HD61202及其兼容控制驱动器的状态,各参量含义:

BUSY: 1—内部在工作 0—正常状态

ON/OFF: 1—显示关闭 0—显示打开

REST: 1—复位状态 0—正常状态

在BUSY和REST状态时,除读状态指令外,其它指令均不对HD61202及其兼容控制驱动器产生作用。

在对HD61202及其兼容控制驱动器操作之前要查询BUSY状态,以确定是否可以对HD61202及其兼容控制驱动器进行操作。

4、写数据指令

1、读数据指令

读、写数据指令没执行完一次读、写操作,列地址就自动增一。进行读操作之前,必须有一次空读操作,紧接着再读才会读出所要读的单元的数据。

四、软件部分设计

4.1 ZLG500b 读卡模块数据传输协议

ZLG500b 是一个简单的串行读写模块,它可以读写MIFARE 无线智能卡。在这个器件中包括了一个PCB 天线,提供了一个UART 接口,可受控于主机微处理器。 4.1.1自动波特率探测

UART 接口一帧的数据格式为1个起始位,8个数据位、无奇偶校验位、一个停止位,自动波特率探测,ZLG500B 上电后,将RC500内EEPROM 中地址为0x7F 单元的内容输出,取其低3位来初始化自己的波特率。在接收主机发出的STX 的同时,测量波特率,若一致,则继续通信;若不一致,则修改自己的波特率与主机一致,存入0x7F 单元,准备接收下一个STX 。

ZLG500B 支持的波特率有:2400、4800、9600、19200、28800和57600,波特率与RC500内的EEPROM 中0x7F 单元3位值的对应关系为:

波特率(BPS )

0x7F 2400 0x00 4800 0x01 9600 0x02 19200 0x03 28800 0x04 57600

0x05

4.1.2控制字符定义

描述 定义 值 开始符 STX 0x20 终止符 ETX 0x03 应答 ACK 0x06 无应答

NAK

0x15

4.1.3协议描述

通信必须先由主机发送命令和数据给ZLG500B ,ZLG500B 执行命令完毕后,将命令执行的状态和响应数据发回主机。

开始通信前,收发双方必须处于就绪状态,首先主机发出STX ,然后等待

ZLG500B 的响应ACK ,若在10MS 内为检测到此响应,或收到NAK ,则再次发送STX ,如此反复3次,若3次均为收到正确应答ACK ,则退出本次传输,将错误代码返回给主程序,由主程序进行错误处理,若主机收到ZLG500B 正确响应ACK ,则可将数据快发送出去,最后发送一个终止符ETX 结束本次发送。 主机发送格式:

主机 数据传送方向

ZLG500B

说明

STX → 主机在10ms 内未收到ACK 或收到NAK ,应至少再重发STX 一次:主机收到ACK 后,必须再50ms 内发送数据,且发送两个字节的时间间隔

必须少于10ms 。

ACK

DATA+ETX

然后主机等待ZLG500B 发回的状态和响应数据。若在300ms 内未检测到响应,则退出本次传输,且向主程序报告错误代码,ZLG500B 发送格式:

ZLG500B 数据传送方向

主机 说明

STX → ZLG500B 在50ms 内未收到ACK ,不重发

STX

← ACK DATA+ETX

4.2数据块模式

4.2.1主机→ZLG500B (命令模式)

SeqNr: 1 Byte 数据交换包的序号 Command: 1 Byte 命令字符 Len: 1 Byte 数据的长度 Data[…]: Len Byte 数据字节 BCC: 1 Byte 的BCC 校验

4.2.2ZLG500B →主机(响应模式)

SeqNr: 1 Byte 数据交换包的序号 status: 1 Byte 状态字符 Len: 1 Byte 数据的长度 Data[…]: Len Byte 数据字节 BCC: 1 Byte 的BCC 校验

4.2.3数据块格式描述

● 数据交换包的序号由主机发送数据块时产生,取值范围未0-255.在经过一次正确的数据交换后,主机在发送下一个命令时,将数据包的序号加上1。MSR 返回最近接收的包序号。通常主机应用程序最好检查命令/响应包交换时的数据包的序号。

● 不管在执行命令时出现任何错误,响应包中的数据长度为0(Len=0).

● BCC 校验码计算数据块中所有的INF0字节。然后将结果传送到数据块的最后一个字节,如下式所示:

INFO[n]=BCC= ~{INFO[0]⊕INFO[1]⊕... ⊕INFO[n-1]} {⊕...XOR 、~…NOT}

原理图:

PCB图

作品图:

结束语:

时间过的很快,还有一些原来向做的扩展功能没能实现,但目前,在设计的过程中我么走了不少的弯路,也遇到了很多问题,还好得到了何老师的耐心指导,才能够被我们一一解决,终于完成了这次设计。这使我们从中学到了很多知识,实际动手去做课题,遇到了实际操作的难题还真是光学理论知识所无法想象得到的。经过本次设计我们对读写系统技术和电子产品设计有了一点深刻的认识,做的不好的地方希望何老师见谅。

通过本次课程设计,让我对电子产品设计与调试,特别是软件部分的设计有了跟深入的理解。在设计过程的开始,由于没有对其做深入的思考认为设计相当的简单,但在后来的调试和思考过程中发现了好多问题。于是重新对设计进行思考。

另外,在设计结束后,我也对程序进行了认真的思考。我认为我们所修改的程序还有许多地方需要改进,但由于时间和能力上原因,未能让这次做的RFID读卡器的设计,为此我也感到很遗憾。不过有了这次设计也让我自己有了很身的体会,使我对电子产品不再感觉那么难以琢磨、深不可测。也让我对电子产品产生了浓厚的兴趣。我有信心在以后的同类设计中做的更好!

我认为我参与设计的基于ZLG500B读卡模块的非接触式智能IC系统是一个比较成功的作品。老师交给我们的是思考的方法。这样我们才能到社会上跟好的接受新的相关知识。学电子专业这么长时间了,发现许多器件的资料都是英文的,这使我认识到学好英语的重要性。英文在很多领域都是非常重要的交流工具。

参考文献:

(1)《智能卡技术》西安电子科技大学出版社,2004,毛丰江、刘守义、苏全(2)《单片机C语言变成与实例》人民邮电出版社,2003,赵亮、侯国锐

(3)《单片机应用实训教程》西安电子科技大学出版社,2005,王静霞、

毛丰江

(4)ZLG500模块应用指南

相关主题
相关文档
最新文档