非接触式IC卡射频识读器的设计与实现

2019-07-08 03:32王慧陈德金黄浩恩严谨
无线互联科技 2019年8期
关键词:射频识别单片机

王慧 陈德金 黄浩恩 严谨

摘   要:针对接触式IC卡技术的接触问题以及有源工作,采取射频识别技术与IC卡技术相结合的方法,解决了IC卡技术接触性的问题,实现IC卡的非接触使用与无源工作的功能,并在此基础上附加语音播报功能。文章主要研究的带语音功能的识读器是以射频识别技术为基础,MIFARE卡作为识读器识别的对象、根据ISO14443A协议、采用非接触式IC卡常用的读写芯片MFRC522作为读写模块核心芯片,以WT588作为语音播报芯片,STC89C52单片机作为主控芯片来达到设计要求的。

关键词:非接触式IC卡;射频识别;单片机;语音播报

20世纪90年代中期以来,基于现代微电子技术和射频识别(Radio Frequency Identification,RFID)技术之上的各种非接触式集成电路卡(Contactless Integrated Circuit Card,CICC)应运而生,双称IC卡。与接触式IC卡相比较,非接触式IC卡继承接触式IC卡容量大、安全性高等优点,又克服了因触点外露导致的污染、磨损、静电以及插卡才能访问的缺点[1]。而且非接触IC卡还具有一些其他优越的性能,如操作快捷、抗干扰性强、高可靠性、寿命长、多种工作距离等。正是由于这些优点,非接触式IC卡在公共汽车自动售票系统、学校一卡通系统、门禁考勤系统、仓库管理系统、实验室设备管理系统中都有广泛的应用。

非接触式IC卡读卡器是非接触式IC卡系统的重要组成部分,它是非接触式IC卡得以被广泛应用于各个领域的关键。本文介绍了一种带语音提示功能、抗干扰能力强、低功耗、结构简单、性能稳定的识读器设计方案,能可靠实现识读器与卡之间的数据传输。

1    非接触式IC卡的内部结构和工作原理

MIFARE卡电气部分只由一个天线和专用集成电路(Application Specific Intergrated Circuits,ASIC)组成[2]。IC卡内芯片工作需要的所有能量都由读卡器提供。识读器通过天线向IC卡发送一组频率为13.56 MHZ电磁波,IC卡片内有一个LC谐振电路,其频率与识读器发射的频率相同,在电磁波的激励下,LC谐振电路产生共振,使电容内有了电荷,然后通过一个单向导通的电子泵把电荷存储起来,当积累的电荷达到2 V时,这个电容就可以作为电源提供工作电压,就可以正常工作,将卡内数据发射出去或接收识读器的数据[3]。

STC89C52单片机对于MFRC522的控制主要是通过对MFRC522的内部寄存器的读写实现的[4]。MFRC是單片机和IC卡通信的桥梁,所有读取IC卡或写进IC卡片上的数据均要通过MFRC522来传递,单片机只要写入不同的指令给MFRC522,就可以实现对MFRC522的控制操作[5]。

2    系统硬件结构及电路设计

系统硬件主要由MCU,MFRC522,液晶显示器(Liquid Crystal Display,LCD)显示屏,语音芯片,Flash,电源,LED灯提示电路等模块组成,系统的原理框如图1所示。

微控制单元(Microcontroller Unit,MCU)外围电路的设计主要包括以下几个部分:单片机最小系统、LCD液晶显示接口电路、电源电路、复位电路、上电发光电路等。其中,控制器的核心采用的是STC89C52芯片,是一款具有强抗干扰、功耗低、功能强、价格低等优点的单片机。MCU控制读卡芯片MFRC522驱动天线对MIFARE卡,也就是应答器(Proximity Card,PICC)进行读写操作及控制语音芯片进行写操作。LCD液晶显示模块采用LCD1602,具有良好的人机交互功能,可以实时显示读写芯片读到的数据,合法性验证失败后显示错误信息。语音芯片采用WT588,是一种可编辑语音芯片,用于语音的播放。FLASH芯片采用SPI-FLASH 25P16系列,用于存储语音数据。电源电路采用ASM1117-5.0和ASM1117-3.3V集成三端稳压芯片分别为系统提供5 V和3.3 V电压。

2.1  单片机与读写模块的接口及原理

由于MFRC522兼容串行外设接口(Serial Peripheral Interface,SPI)接口,所以MFRC522与微控制器之间采用SPI串行通信。微控制器STC89C52与MFRC522模块的数据通行是通过SPI四线串行总线实现的,4线分别为MOSI,MISO,SCK,RST,其中,MOSI和MISO为数据线,SCK为时钟线,RST为复位线,表1为对此4线的描述,图2是单片机与读写模块的硬件接口电路。

硬件接口分析。在单片机与读写模块的通信中,读写模块的芯片用作从机。SPI通信中,4条线都是单向的,SCK为时钟线,由主控制器产生,该信号必须严格按照时序产生,否则单片机与读写模块将出现通信错误。MOSI及MISO为数据线,数据通过MOSI线从单片机到MFRC522。数据通过MISO线从MFRC522发回到单片机。RST为复位线,当单片机发送数据或者接收数据时,RST线要拉低,当数据发送或者接收结束后RST线拉高。

2.2  单片机与语音芯片的接口及原理

WT588是一款功能强大的可重复擦除与写入的语音单片机芯片。支持插入静音模式,插入静音不占用SPI-FLASH内存的容量,单个地址单元可插入10 ms~25 min的静音。WT588拥有6种控制模式,分别为MP3控制模式,3X8按键组合控制模式、并口控制模式、一线串口控制模式、三线串口控制模式和三线串口控制I/O口扩展输出模式[6]。三线串口控制模式下,能控制语音播放、停止、循环播放和音量大小,或者直接发出0~219地址位的任意语音,发码速度40~4 000 us 可调。

采用三线串口控制模式,使单片机与语音模块通信通过仿SPI三条线串行总线实现的,其中,三线分别为数据线WT_DATA,时钟线WT_SCK,片选线WT_CS,单片机STC89C52与语音模块中的芯片就是通过这3条线连接的。表2为三线的描述,图3为单片机与语音模块的硬件接口。

WT_CS,WT_DATA,WT_SCK都是单向线,WT_SCK上的时钟只能由STC89C52产生,该信号必须严格按照WT588的三线串口控制模式的时序规范产生,否则单片机发送给语音模块的指令和数据将出现错误。因为语音模块只需要接收主控制模块发送来的指令,所以单片机对语音模块只需要进行写操作,WT_DATA为数据线,由单片机控制。WT_CS为数据发送使能线,若主机要发送数据给从机,则该线为低电平。

2.3  单片机与语音模块通信时序

三线控制模式的时序如图4所示。

三线串口控制模式由片选WT_CS(时序图中的SS)、时钟WT_SCK(时序图中SCK)、数据WT_DATA(时序图中SDI)脚组成,时序仿照标准的SPI通信方式,复位信号在发码前先拉低1~5 ms,然后拉高等待5 ms。工作时RESET需要一直保持高电平。片选信号WT_CS拉低2~10 ms以唤醒语音芯片WT588D,接收数据低位在先,在时钟的上升沿接收数据。时钟周期介于40 us~2 ms。数据成功接收后,语音播放忙信号BUSY输出在1 ms之后做出相应反馈。单片机需要严格按照以上的时序工作,以确保数据传输无误。

3    系统软件设计

识读器的软件设计是在KEIL C51 Vision4版本中开发的,源程序的编写、编译、生成HEX文件都在KEIL C51 Vision4完成。整个软件设计包括主程序、单片机初始化程序、MFRC522读写模块初始化程序、语音模块初始化程序、LCD1602显示子程序、合法性验证读写子程序、语音播报子程序、延时子程序等。系统软件主流程和合法性验证程序如图5—6所示。

根据图5所示流程,将上述流程的每一步骤设计成一个个相应的子程序。程序采用C语言编程,在KEIL C51 Vision4环境中编写,以下是语音模块的驱动子程序。

#include

#include<1602.h>

#include

#define H 1

#define L 0

void delay ( unsigned int z)    //延时子函数

{

unsigned int i , j;

for(j=0; j

for(i=0; i<10; i++);

}

void WT_3line(unsigned char dat)   //三线控制模式

{

unsigned int i;

WT_DATA=1;

WT_SCK=1;

WT_RST=0;

delay(1);

WT_RST=1;

delay(17);

WT_CS=0;

delay(1);

for(i=0;i<8;i++)

{

if(dat&0x01)

{

WT_SCK=0;

delay(1);

WT_DATA=1;

delay(1);

WT_SCK=1;

}

else

{

WT_SCK=0;

delay(1);

WT_DATA=0;

delay(1);

WT_SCK=1;

}

dat>>1;

}

WT_CS=1;

WT_DATA=1;

WT_SCK=1;

}

void WT_sendaddr(unsigned char addr)  //地址发送函数

{

WT_3line(addr);

addr++;

if(addr=210)

addr=0;

}

void WT_INT()

{

WT_DATA=1;

WT_SCK=1;

WT_CS=1;

}

4    应用

本文研发的非接触式IC卡射频识读器,可适用于以下应用领域。

4.1  物体厚度检测

利用非接触式IC卡射频技术,可以检测体积较小的物体厚度。例如应用在珍珠分拣器上,能够获取每个珍珠的厚度,并且通过模数转换,将厚度参数通过串口通讯方式传给上位机PC端,并能实时语音播报。

4.2  标码参数识别

利用非接触式IC卡射频技术,可以识别每个IC卡上的内容参数,可以在实验设备上贴放IC卡,通过非接触式IC卡射频识读器,能够准确读取每个IC卡上记录的实验仪器参數,方便实验室仪器的管理与使用。

5    结语

非接触式IC卡无线射频识读器的电路设计合理,以MIFARE卡作为识读器识别的对象、根据ISO14443A协议,采用非接触式IC卡常用的读写芯片MFRC522作为读写模块核心芯片[7],WT588作为语音播报芯片、STC89C52单片机作为主控芯片,具有性能稳定,抗干扰性能强、读卡数据准确,结构简单、低功耗、非接触等特点,能够广泛应用在各检测领域。

[参考文献]

[1]葛瑞雪.非接触式IC卡读写器的设计与实现[J].数字技术与应用,2016(5):171.

[2]周世晶,田涛.基RFID与非接触式Mifare1复合通行卡设计[J].电子科技,2016(1):91-93.

[3]曾志辉,郅富标.基于RFID技术的电子铅封管理系统研究[J].电子器件,2017(1):183-187.

[4]韩进,马双.基于STM32的Mifare IC卡读写卡器设计[J].电子产品世界,2016(4):31-34.

[5]高云岭,郭元兴.一种接触式IC卡加载设备的设计与实现[J].通信技术,2017(6):1328-1332.

[6]曾维鋆,徐志华,夏铭泽.基于LPC54102的射频卡读写器设计[J].电子制作,2016(19):5-7,15.

[7]广州周立功单片机发展有限公司.非接触式读卡器IC[Z].MFRC522,2007.

猜你喜欢
射频识别单片机
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的便捷式LCF测量仪
小议PLC与单片机之间的串行通信及应用
基于单片机的平衡控制系统设计
卷烟包装用UHF RFID抗金属标签天线的设计
基于网络与数据智能化的数码印花产品设计定制模式研究
Microchip推出两个全新PIC单片机系列