RFID技术的电子市民卡系统设计与实现
基于RFID 技术的市民卡是一张集身份证、社保卡、医疗卡、公交卡、银行卡等于一身的综合卡. 小到坐公交、交水电费,大到办理社会保险、卫生医疗、公积金等,市民带上一张卡就都可以刷卡办理日常事务. 自2001 年北京市率先提出“市民卡”概念后,这种“一卡多用”的城市IC 卡带来的方便快捷立刻得到了全国多个城市的响应和关注. 2008 年6 月起,烟台、宁波和扬州三城市市民卡正式发行. 此外,上海、无锡、哈尔滨、福州、武汉等各城市也纷纷开始尝试. 对市民而言,市民卡能够方便快捷地办理个人相关事务,享受各类公共服务和便民服务;对政府而言,通过市民卡项目,可以实现政府部门信息资源共享和协同服务,能为政府制定公共政策提供数字依据,为执行政府公共政策提供业务、技术支持,并推动电子政务建设,以提高政府效能;对社会而言,市民卡作为数字城市的基础,可以为社会各机构提供支付清算、客户关系管理以及信用评价等服务,推动电子商务建设,提高了社会的整体效率. 随着物联网的兴起将加速城市数字化的进程,基于RFID 的电子市民卡就是城市数字化的重要组成部分.
1 RFID 电子市民卡系统设计理论
RFID 的应用系统主要由读写器和RFID 卡2 部分组成,如图1 所示.
读写器一般作为计算机终端,用来实对RFID卡的数据读写和存储,它是由控制单元、高频通讯模块和天线组成;而RFID 卡则是一种无源的应答器,主要是由一块集成电路芯片及其外接天线组成.RFID应用系统的基本工作原理是RFID卡进入读写器的射频场后,由其天线获得的感应电流经升压电路作为芯片的电源,同时将带信息的感应电流通过射频前端电路检测,获得数字信号送入逻辑控制电路进行信息处理;所需回复的信息则从存储器中获取经由逻辑控制电路送回射频前端电路,最后通过天线发回给读写器.
2 电子市民卡系统硬件设计与实现
2.1 电子市民卡系统总体方案
本系统组成包括总控PC 上位机、RS232 通信传输、身份识别终端、模拟公交收费终端、模拟电子病历终端、模拟物业终端等. 整个系统由PC 上位机通过RS232 串行通信与各终端模块控制器完成监控、数据的设置和处理等操作. 其中身份识别终端包括控制器、打卡器、射频卡、电源、显示五部分,控制器控制打卡器对射频卡进行读写,然后与PC 串行通信,把数据传给上位机,完成读写卡的操作,并实时显示读写卡的相关信息. 电子市民卡总体方案如图2 所示.
图2 电子市民卡总体方案
2.2 电子市民卡系统设计与实现
2.2.1 RFID 单元电路
射频单元由调制解调电路、EMC 低通滤波电路、发射接收电路以及天线4 部分组成. 其中调制解调电路以MFRC500 为核心,根据MFRC500 管脚功能,结合时钟的稳定性是实现正确操作的重要因素.要获得最佳的性能,时钟的抖动尽可能小. 因此,使用13.56 MHz 的晶振,其电路连接如图3 所示.系统在13.56 MHz 频率下操作,不仅会产生13.56 MHz的发射功率而且会发射更高的谐波. 为了克服这个问题,在MFRC500 使用内部产生的VMID 电势作为RX脚的输入电势. 为了提供一个稳定的参考电压,必须在VMID脚接一个对地的电容C9. 读卡器的接收部分需要在RX 和VMID 脚之间连接一个分压器. 此外,在天线线圈和分压器之间使用一个串接的电容.
2.2.2 射频发射天线
系统采用直接匹配的PCB环形天线,如图4所示,最大工作距离可到100 mm. 根据磁场强度有“(1)式”中:μ0为磁场常数,即真空的磁导率;N 为天线线圈匝数,I 为线圈中的电流强度;磁通量密度与X3 成反比,当X 增大时迅速减小. 为了获得最大功率传输,天线后的芯片输入阻抗必须与天线输出阻抗匹配,其天线电感量为“(2)式”中:L 为一圈导线的长度,cm;D1 导线的直径,cm;K 为天线的形状系数(圆环状时,K =1.07 ,矩形时,K =1.47 ); ln 为自然对数.线线圈匝数。
(1)式 (2)式
2.2.3 单片机控制系统电路
本系统采用STC89C 系列的STC89C52 作为主控芯片. STC 单片机完全兼容传统51 内核,因此使用的编译器和指令代码都和传统51单片机相同. 根据本系统的实际运用要求,参考STC 单片机官方数据手册上的应用指南,设计单片机系统电路如图5 所示.
在图5 中,有源晶振为单片机提供22.118 4 MHz,0~5 V 幅度的高精度时钟,时钟的频率精度可以到达10-7 级别,频率的稳定性可以到达10×10-6/℃. 根据STC 单片机数据手册约定,外部有源时钟应从XTAL1脚输入,XTAL2 必须保持浮空. 10 μF 的电解电容和10 kΩ 的电阻构成微分电路,在系统上电的瞬间,为单片机RESET 脚提供约2 ms 的高电平脉冲,使单片机上电后立即可靠复位.
3 系统软件设计与实现
3.1 下位机系统软件
根据市民卡的应用要求,当有射频卡进入距离射频天线100 mm 内时,读卡器就可以读到卡中的数据.读卡器读到射频卡中的数据后,系统单片机要将所读数据进行分析处理,如果符合条件,则读卡成功指示灯闪一下,蜂鸣器鸣叫一声. 并将卡片数据与当前时间一起存入单片机内的EEPROM,并显示卡数据. 没有卡进入读卡器工作范围时,显示当前时间. 若读卡出错,显示出错标志. 在与上位机通讯时,将单片机内部EE2PROM 存入的信息发往上位机,软件流程如图6 所示. 除了复位以外,对MFRC500 的绝大多数控制是通过读MFRC500 的寄存器来实现的.MFRC500 共有64 个寄存器,分为8 个寄存器页,每页8 个,每个寄存器都是8 位.
单片机将这些寄存器通过总线的方式进行操作,要实现某个操作,只需将该操作对应的代码写入对应的地址位即可. MFRC500 对卡的操作主要是通过写通讯命令、参数和数据到FIFODATA,在通过写命令到COMMAND,实现与RFID 卡的通讯.
3.2 上位机主程序设计
上位机系统采用面向对象的Delphi 软件进行开发. Delphi 软件是一个以面向对象程序设计为中心的应用程序开发工具[9]. 本软件可对PC机串行口进行方便、灵活的操作,实现射频卡信息的读取、写入、加密、控制等操作. 本系统在上位机与终端控制器之间、读卡器与射频卡之间传输数据时采用AES 加密算法,从而保障了持卡人个人信息数据的安全. 整个系统上位机界面包括参数设置界面、身份识别界面、电子支付管理界面、电子病历界面、密码管理界面,其中部分界面如图7、8 所示.
4 结束语
在简介非接触IC 卡(RFID)技术的发展与现状基础上,以STC89C52 单片机为控制核心,应用RS232串口通信原理,提出了采用MFRC500 为调制解调核心的电子市民卡系统的设计. 对身份识别终端,对公交支付终端、电子病历终端、物业支付终端进行了终端模拟实现. 由于设计研制了上位机控制系统,从而使本系统操作更简便\直观,更具有实用性。