摘要:介绍了指纹识别技术和非接触IC卡技术,给出了以C8051单片机为核心的具有指纹识别功能的IC卡读写器的设计方法,具体阐述了读写器的电路设计和软件开发。
关键词:指纹识别 IC卡 读写器 单片机
随着IC卡技术的空前发展,非接触式IC卡技术具有快速便利、可靠性高、安全性好、抗干扰能力强、寿命长、防伪性好和一卡多用等优点,在门禁管理、身份认证、电子现金消费等方面得到了广泛的应用。生物识别技术是近几年来发展起来的一门新技术,利用人体的生物特征鉴别每个人的真实身份,主要包括虹膜、面孔、指纹、掌纹等,其中以指纹识别技术最为成熟稳定。IC卡技术和指纹识别技术的结合使用,具有优势互补的特点。以IC卡作为个人身份及指纹信息的存储载体,利用指纹的唯一性达到个人身份鉴别的目的,为IC卡技术和指纹识别技术的应用提供了更加广泛的发展空间。本文介绍了具有指纹识别功能的IC卡读写器的设计方法。
1 硬件电路设计
1.1 非接触式IC卡工作原理
非接触IC卡又称射频卡,是射频识别技术、无线通信技术和IC卡技术有机结合的产物。它解决了卡无源和免接触的难题,具有方便快捷、不易损坏的特点。本设计采用的IC卡是Philips公司的Mifare One智能卡。该卡片有容量为8K位的EEPROM,分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位,每个扇区都有独立的一组密码以及访问控制,具有联冲突机制,支持多卡操作,读写距离10cm以内。本读写器的读写模块采用自行设计的基于MF-RC531读写芯片的读写模块设计方案。读写模块天线和卡之间通过无线电感应交换数据。天线发出频率固定的电磁波(13.6MHz),射频卡接收到电磁波后,由卡中自带的LC串联谐振电路产生共振,从而使电容充电有了电荷,再接一个单向导电的电子泵,将电荷送到另一个电容内存储,经过滤波整流后产生2V的电压作为电源供卡片工作使用。卡片处理接收的命令和数据,并将结果返回给读写器。
1.2 指纹识别技术
指纹识别技术主要包括四方面的功能:采集指纹图像、提取指纹特征、对比。采集指纹的设备有三类:光学传感器、硅晶体传感器、超声波扫描设备。通过指纹采集设备得到人体指纹的灰度图像后首先进行图像预处理,主要步骤包括方向图计算、图像增强、二值化、细化等。经过预处理的指纹图像消除了原图像的噪声、断纹和纹线模糊等,极大地改善了图像质量。然后进行特征提取和后处理。特征提取是通过指纹上的“节点”获得的。“节点”包括指纹纹路的分叉、起始点或孤立点的坐标位置等。通常人的一个手指指纹有70个节点,用这种方法大约会产生490个数据,对这些数据进行后处理就生成指纹模板并存储起来,大小一般不越过250字节,通常为100多个字节。指纹模板数据大小因指纹不同略有波动。
1.3 硬件电路设计
本具有指纹识别功能的IC卡读写器的硬件包括单片机、键盘、显示模块、EEPROM存储器、IC卡读写模块、指纹识别模块、指示信号电路、上位机RS232通信接口、RS485网络接口等,如图1所示。
主板电路采用Cygnal公司的C8051F023单片机,它具有与MCS-51兼容、速度快、外围接口丰富等特点,可以满足本设计的需求,故选用它作为控制核心。主板简化电路图如图2所示。单片机P3口与读写模块MFRC531芯片D0~D7口相连,用做MCU和读写模块之间的数据线;P25用于读写模块的片选线,与模块NCS脚相连;P17用于模块的软复位信号线,与MFRC531的RSTPD脚相连;外部中断INT0(P10)与模块中断请求IRQ脚相连,对应模块的请求中断;MCU读写控制的/RD和WR分别与MFRC531的NRD和NWR相连;地址锁存控制ALE与MFRC531的ALE相连;P14和P15分别用来控制指示灯和蜂鸣器;另外P3口还通过驱动芯片74HC245驱动分辨率为128×64的液晶显示模块;P27作为驱动芯片的片选;MCU的硬串口UART0与指纹识别模块的串行通信口相连,用于对指纹识别模块的控制;MCU的硬串口UART1作为上位机RS232通信端口或者RS485网络通信端口使用;P04和P11作为软串口用于对键盘模块的控制,整个电路板的电源通过变压器以及直流电流转换芯片获得5V及3.3V电压。
图2
2 软件开发
读写器软件开发主要包括四部分:对读写器模块MFRC531应用程序的开发、对指纹识别模块应用程序的开发、液晶显示程序的开发以及其他相关辅助电路的开发。
2.1 读写IC卡工作流程
(1)读写模块初始化,对MFRC531模块初始化。初始化相应寄存器使模块工作在符合ISO14443A协议的工作状态下,并且具有ISO14443的帧和错误检测功能,支持快速的CRYPTO1加密算法。
(2)复位应答,复位应答操作通知模块在天线有效范围内寻找MIFARE ONE卡片,不断发出REQA的请求命令,天线范围内的卡片发出回应命令ATQA,返回卡片类型代码0004,代码返回给MCU进行卡片类型识别处理。
(3)反冲突环操作,如果在读写器天线范围内有多张卡片存在,需要经过反冲突环的操作,通过卡片的唯一序列号,选出其中的一张卡片。
(4)选择卡片操作,在成功进行反冲突环的操作后,根据已经得到的卡片序列号,必须进行选择卡片操作,建立与所选卡片的通信。
(5)三轮认证操作,对卡的某个固定存储位置访问时,为了保证对卡片操作的保密性和合法性,卡片和读写器之间需要三轮密钥确认过程,成功确认后所有存储器操作都是保密和合法的。
经过上述步骤后即可对卡片操作,可以执行读、写、增值、减值、重储和传送等命令。读写IC卡操作流程如图3所示。
2.2 指纹识别流程及主要指令
(1)模块初始化,MCU对指纹识别模块初始化,设置其工作模式为命令工作模式,串口通信波特率为57600bps。
(2)生成模板,通过指纹传感器录入指纹图像三次并生成指纹模板保存在模板缓冲区(Mb_Buffer)中。
(3)上传模块,将模板缓冲区中(Mb_Buffer)的内容上传到MCU。
(4)下载模块,从MCU下载一个指纹模板到模板缓冲区(Mb_Buffer)中。
(5)生成特征,通过指纹传感器录入一副指纹图像并生成指纹征值,存在模块的特征值缓冲区(Tz_Buffer)中。
(6)对比指纹,模板缓冲区(Mb_Buffer)与特征缓冲区(Tz_Buffer)中内容进行对比,并给出比对结果,返回给MCU。
指纹识别程序分指纹模板录入和指纹现场对比两种情况,图4、图5给出了流程图。
2.3 兼容指纹识别的IC卡读写器应用程序
读写器根据不同的用途,主要分为发卡读写器和身份认证读写器。发卡读写器一般由系统控制中心发卡处使用。而身份认证读写器一般用在卡的使用终端,实现对持卡人合法性的认证。
发卡读写器应用的主要流程是:首先刷卡录入用户的指纹图像,指纹采集过程需要对同一指纹录入三次,对三次指纹综合处理提取特征,生成指纹模板;然后将指纹模板上传到MCU,读写器对指纹模板进行加密处理后写入卡片;最后在卡中写入用户其他相关信息,完成发卡过程。
终端身份认证过程的主要流程是:持卡人刷卡后,读写器将卡中存储的指纹模板信息解密后下载到指纹识别模块的模板缓冲区中,然后通过传感器采集持卡人指纹,指纹识别模块生成指纹特征值,并将值存在该模块的特征值缓冲区中并与模板缓冲区模板信息进行比对;根据比对结果判定持卡人的合法性,通过后才可以进行其他相关操作。
兼容指纹识别的IC卡读写器可以应用在需要身份认证的门禁系统、考试身份认证以及其他安全性要求比较高的身份认证管理系统中。
本文讨论了一种具有指纹识别功能的IC卡读写器的设计方法。指纹识别技术和IC卡技术的结合使用,大大提高了系统的可靠性和安全性。衡量指纹识别性能的重要标志是识别率。识别率包括FRR(拒真率)和FAR(认假率)两部分。FRR和FAR是一个反比的关系,根据不同的用途,权衡易用性和安全性,调整这两个值的大小,以满足系统设计需要。本读写器已经在实验室研发成功,运行稳定,安全可靠,即将投入某门禁系统使用。