陈 冲,赵 升,谢文彬,高 猛
(1.温州大学物理与电子信息工程学院;2.浙江省低压电器智能技术重点实验室,浙江温州 325035)
基于无线通信的非接触式IC卡读卡器设计
陈 冲1,赵 升1,谢文彬2,高 猛2
(1.温州大学物理与电子信息工程学院;2.浙江省低压电器智能技术重点实验室,浙江温州 325035)
给出一种用于考勤系统的非接触式IC卡读卡器的设计及实现方法.采用射频识别技术及无线通信技术,以STM8S103F3P单片机为控制核心,设计了MFRC531读卡模块和Si4432无线收发模块,并详细论述了硬件外围电路相关参数的计算方法及软件实现方法.所设计的读卡器具有可移动性强、安装简单和扩展性好等优点.
非接触式IC卡读卡器;设计;考勤系统
读卡器常用于考勤管理系统中,是获取考勤信息的重要工具.目前,有线通信式非接触 IC卡读卡器被广泛使用,该类型读卡器具有信息传输快速及时、无机械磨损、防伪性能强、使用寿命长等优点[1],但其布线繁琐,移动性和扩展性都差.本文采用射频识别技术和无线通信技术,设计的无线通信式非接触 IC卡读卡器克服了上述缺点,能够实现对考勤现场数据的实时录入、多点采集,并可通过无线网络实现主控机PC和终端读卡器之间的数据传递,便于远程考勤数据的统计和查询.
本文设计的无线通信式非接触IC卡读卡器的原理结构如图1所示.
图1 系统原理结构图
读卡芯片MFRC531通过发射天线发送13.56 MHz无线电磁波信号,当射频卡进入发射天线工作区域时,卡片内LC谐振电路产生共振并感应出电流,射频卡获得能量被激活,并将自身编码等信息通过卡内置天线发送出去.读卡器接收从射频卡发送来的载波信号,经天线调节器传送到MFRC531,MFRC531对接收的信号进行解调和解码,然后送到微控制器STM8S103F3P进行相关处理[2].微控制器根据预先设置的逻辑运算判断该卡的合法性,针对不同的设定作出相应处理和控制,通过蜂鸣器给出不同的提示音,同时将合法卡片的相关数据信息通过Si4432无线通信模块发送给基站.
MFRC531读卡模块和Si4432无线通信模块是非接触IC卡读卡器的主要硬件组成部分,其控制芯片选用意法半导体公司生产的高性价比微控制器STM8S103F3P,该芯片采用3级哈佛结构,内核速度高达20 MIPS,8K字节FLASH程序存储器,内部集成30万次可擦写的EEPROM数据存储器,外设资源丰富,包括1个CAN2.0B接口、2个通用异步接收/发送(UART)接口、1个I2C接口和1个串行外设(SPI)接口.
MFRC531是Philips公司开发的13.56 MHz非接触式IC卡读卡器芯片,它支持ISO14443中TYPEA和TYPEB通信方式的所有层,支持使用MIFARE高波特率的非接触式通信.MFRC531芯片的外围电路主要由EMC低通滤波电路、阻抗匹配电路、天线及信号接收电路等组成,硬件电路如图2所示.
图2 MFRC531模块电路图
EMC低通滤波电路由L1、L2、C5、C6等元件组成,其作用是去除13.56 MHz方波中的高次谐波,形成正弦波.根据实际需要,该低通滤波器的上限截止频率定为 15.8 MHz,取滤波电感L1和L2的初值均为2.2 uH,则C5、C6电容值可按照下列的公式(1)进行确定:
式中,fg为低通滤波器上限截止频率,L为滤波电感值.
C7a、C7b、C8a、C8b、Rextern/2元件组成阻抗匹配电路,其参数值的确定与天线自身特性相关.天线是利用PCB板上导线做成的矩形状线圈,两端分别接TX1和TX2,中间点接TVSS天线的电感值可以利用公式估算[2-3]或采用网络分析仪确定.天线的阻抗匹配电路的各参数初值可由下列公式确定.
外部匹配电阻:
在本设计中,线圈总电感La,b为2.6 uH,直流电阻Rdc为0.66 Ω,k为1.32,Rp为9.516 kΩ,代入上述各式可确定Rextern为11.56 Ω,C8a为31 pF,C7a为22 pF.因为理论上计算出的元件初值在实际应用中会有0% – 20%的误差,因此可以使用网络分析仪来调节Rextern、C8a、C7a的值,让天线的性能达到最佳[4].
MFRC531芯片无需外接滤波电路就可对IC卡片传回的副载波信号进行解调,因此外围信号接收电路相对简单,主要由R1、C4、R2、C3等元件组成.VMID脚内部可提供直流参考电压3.2 V左右,C3为耦合电容,起到稳定VMID脚直流电压的作用.电阻R2连接在VMID脚与RX脚之间,为RX输入端提供直流偏置电平.R1、C4与R2分压连接组成RX脚的交流信号输入电路,将交流输入信号限定在1.5 V – 3.0 V范围内.
Si4432无线通信模块硬件电路如图3所示.Si4432的13 – 16脚是标准的SPI接口,17脚(nIRQ)是中断状态输出引脚.当FIFO寄存器溢出、有效数据包的发送或接收、CRC错误、检测到前导位和同步字、上电复位等情况发生,且相应的中断被使能时,17脚都会产生一个低电平通知STM8S103F3P有中断产生,并维持低电平状态直到单片机读取中断寄存器(03H – 04H)数据.20脚(SDN)决定了Si4432芯片的工作状态.当SDN接地(SDN = 0)时,芯片处于常规工作模式;接高电平(SDN = 1)时,芯片处于掉电模式,掉电模式下寄存器中的内容会丢失,且不允许SPI访问,但芯片的电流损耗只有10 nA,功耗很低,因此适合要求极低功耗的应用[4-5].
Si4432芯片的外围电路主要包括发射功率放大电路、接收低噪声放大电路以及收发切换开关.发射功率放大电路由LC滤波网络组成,实现带通滤波及阻抗变换的功能,得到在433 MHz频率下的最大功率传输;接收低噪声放大电路由C8、L6和C9组成,其工作在433 MHz频率下的最佳噪声性能所要求的匹配值分别为:10 pF、33 nH和5.6 pF.收发切换电路由电平转换芯片74LVC2G04和高频交叉开关HWS416构成,完成分集式无线发送和接收通道的自动切换功能.
图3 Si4432无线通信模块电路
系统软件采用C语言编写.读卡器的任务包括读取IC卡信息并加以处理,获取时钟信号,通过无线网络传递给基站,监测信道通讯状态,跟踪基站控制信号,与基站保持通讯,并接受基站控制.由于篇幅所限,本文只给出了读卡过程流程图,如图4所示.具体流程为:当射频场一旦检测有 IC卡进入射频天线的有效范围,读卡程序按顺序启动防冲突程序和认证程序,验证成功后最后操作卡片读写程序,具体操作步骤包括MFRC531初始化、寻卡、防冲突、选择卡片、读卡和挂起等部分[6-7].
1)MFRC531初始化.微控制器MCU配置MFRC531芯片相关寄存器的初始值,使MFRC531每次上电复位时可按照设计的需要初始化所有寄存器.例如对TYPE A卡进行读取操作,可设置TxControl、ModConductance、CoderControl、TypeBFraming、DecoderControl、RxThreshold、 BPSKDemControl等相关寄存器初始值分别为:0x5b、0x3F、0x19、0x00、0x08、0xAA、0x00.
2)发送寻卡指令.程序设计用PcdRequest()函数不断循环发请求信号,判断感应区是否有卡,一旦有卡进入并选中,程序退出寻卡过程进入下一步防冲突操作.考虑到至少有两张卡同时响应时的情况,设计采用Rqeuest all机制,多张卡同时进入感应区,选中其中一张,读卡后将该卡挂起,转向处理其它的卡[7].
3)防冲突.防冲突就是从多张卡中选出一张卡来操作.系统调用防碰撞PcdAnticoll()函数,与感应区内每一张卡进行通信,取得每一张卡片的序列号SN,根据SN来选定其中一张卡片与读卡器进行通信.SN存储在卡片的Block 0中,共有5个字节,实际有意义的只有前4个字节,最后一个字节是SN的异或校验的校验码.
4)选择卡片.若要对卡片进行读写操作,必须对卡片进行选择操作,使卡片真正被选中.选择卡片过程是通过PcdSelect()函数实现的,选出己知序列号的卡,并返回存储在Block 0中一个字节的卡容量编码 Size(88H).当读卡器收到这一字节后,便对卡片进行进一步操作.
5)认证密钥.密钥认证首先要调用Change CodeKey()函数将IC卡密钥转换为MFRC531接收格式,然后调用PcdAuthKey()函数将已转换格式后的密钥送到MFRC531的FIFO(First Input First Out)寄存器中,最后调用 PcdAuthState()函数将存放MFRC531的FIFO寄存器中的密钥和卡上的密钥进行验证.如果匹配,则允许进一步的读写操作.
6)读取卡片和卡片挂起.使用PcdRead()函数把要发送的数据放到 MFRC531内部的FIFO寄存器,然后将命令代码写到Command寄存器.MFRC531便会执行命令,按照特定格式把数据发送出去,然后等待卡片返回的数据(也放在FIFO中),微处理器从FIFO中读走数据,完成读操作[8],然后 PcdHalt()函数使该卡处于 HALT(挂起)状态,即使该卡仍处在射频区,读卡器也不再响应该卡.
本文设计的读卡系统已通过调试,终端读卡器载频13.56 MHz,有效读卡距离大于10 cm,且通信数据已加密.相对于传统考勤用读卡器,本系统实现了考勤信息的无线网络传输,具有可移动性强、安装简单和扩展性好等优点.该读卡器除了应用于考勤系统.同样也可用于智能家居、信用消费、安防等场合,应用前景十分广阔.
图4 读卡过程子程序流程图
[1] 刘少君, 殷惠莉. 基于非接触式IC卡的中文考勤机的设计[J]. 中原工学院学报, 2005, 16(4): 63-66.
[2] 程伟, 何俊华. 基于MFRC530的非接触式IC读卡系统设计[J]. 微计算机信息, 2009, 25(5-2): 276-277.
[3] 张丽. 基于非接触式IC卡的智能门禁系统的研究与开发[D]. 武汉: 武汉理工大学信息工程学院, 2006: 13-30.
[4] 于兴晗, 李君. 基于 MFRC632射频识别读卡器芯片的专用读卡器设计及实现[J]. 电子技术应用, 2007, (3): 125-128.
[5] 郭亮. 基于Si4432的无线射频收发系统的设计[J]. 单片机与嵌入式系统应用, 2009, (11): 38-41.
[6] 李君. 基于MFRC632的射频卡读写器设计[D]. 天津: 天津大学电子信息工程学院, 2007: 1-36.
[7] 朱灿. 基于非接触式IC卡的读卡器的设计与开发[D]. 武汉: 武汉理工大学信息工程学院, 2006: 40-53.
[8] 张俊杰, 乔宜正. 非接触式IC卡读写模块的应用开发[J]. 世界电子元器件, 2004, (2): 44-46.
Design for Non-contact IC Card Reader Based on Wireless Communication
CHEN Chong1, ZHAO Sheng1, XIE Wenbin2, GAO Meng2
(1. School of Physics and Electronic Information Engineering, Wenzhou University; 2. Zhejiang Key Laboratory for Intelligent Electrical Apparatus, Wenzhou, China 325035)
Design and manufacturing method of a Non-contact IC Card used in an attendance check system were proposed. In the design, MFRC531 reader module and Si4432 transceiver module could be obtained by adopting Radio-frequency Identification technique and wireless communication technology, and choosing STM8S103F3P microcontroller as the core of controlling. Besides, the relevant parameters’ calculating method of hardware’s peripheral circuit and programming method of software were introduced in detail. The card reader has great features like great mobility, simplified installation procedure, better expansibility, etc.
Non-contact IC Card Reader; Design; Attendance Check System
(编辑:王一芳)
TP274
A
1674-3563(2011)06-0018-06
10.3875/j.issn.1674-3563.2011.06.004 本文的PDF文件可以从xuebao.wzu.edu.cn获得
2010-11-03
陈冲(1971- ),男,浙江温州人,学士,工程师,研究方向:智能仪器