未来智讯 > 人脸语音识别论文 > 滑动式指纹识别模块TCS3C-TCD42A的单片机抑制

滑动式指纹识别模块TCS3C-TCD42A的单片机抑制

发布时间:2018-11-23 01:06:05 文章来源:未来智讯    
    滑动式指纹识别模块TCS3C-TCD42A的单片机抑制作者:未知   摘要:介绍了利用单片机Atmega48与指纹识别模块TCS3C-TCD42A构建小型指纹识别系统的全过程,简要介绍了TCS3C-TCD42A模块的功能和特点,给出了指纹识别系统结构框图。论述了单片机时指纹识别模块的抑制。包括单片机与模块的接口方法、通讯协议、主程序、接收停止处理模块和通讯处理模块的编程思绪及注意事项。该系统在实际使用过程中,运行稳定,通讯本能良好,已经成功应用于指纹保管箱产品中。
  关键词:指纹识别模块;串口通讯协议;单片机;AUnega48
  
  0 引言
  
  随着现代经济和社会的不时发展,越来越多的局面需要身份确认,而传统的身份识别技能已经远远不能满足要求。指纹识别作为一种新兴的辨别个人身份的方法,已经广泛地在平安部门得到应用。由于指纹具有不可复制性、惟―性、稳定性的特点,所以得到了越来越多的应用。目前生界上许多公司和科研机构都在进行指纹识别技能的研讨,并取得了一定的成果,推出了许多指纹产品。这些产品已经起初在局部民用领域得到应用,如用于指纹门禁,指纹考勤,指纹保管箱等。信息社会的到来,使指纹识别系统在身份认证方面有着辽阔的应用前景。
  目前国内大多选取光学按压式和晶体电容按压式两种指纹传感器,两者共同的缺点是体积较大,无法应用在体积较小的电子产品中。本文要介绍的是一款滑动式指纹识别模块:TCS3C-TCD2A,它不要求用户在验证时按压指纹,而只要将手指轻轻刷过传感器表面,传感器便能自动对手指进行连续的“快照”,然后这些快照被组合在一同,变成清晰的指纹影像。这种采集指纹的效果与按压式指纹传感器非常,但它无需用力按压,使用更加方便。
  
  1 TCS3C―TCD42A简介
  
  TCS3C-TCD42A是美国UPEK公司的产品(TouchStrip芯片组),其中TCS3C是―个长条状的滑动式指纹传感器。用于提取指纹图像数据。TCD42A为高本能32位RISC芯片。为指纹处理和通讯芯片,其内部有4K的非易失性(NVM)内存可供用户存储指纹信息。TCD42A集成了PeffectPrint算法捕获手指滑过传感器时的指纹数据后变成指纹图像。该算法补偿速度、平移、旋转方面的变化,将其规格化为最优质的指纹图像,配合其集成的PerfectMatch指纹模板提取和匹配算法,使用户可以获得可靠的指纹识别效果。TCD42A还具有和上位机通讯的功能,用户按照通讯协议,可开发出功能强大的指纹识别应用系统。TCS3C和TCIM2A的实物图如图l所示。
  TCS3C的特点如下:
  (1)CMOS有源电容像点传感技能;
  (2)最大手指滑动速度:20cm/S;
  (3)图像灰度:8位;
  (4)图像分别率:508dpi;
  (5)体积:17,65x 5xl 87ram;
  TCD2D42A的特点如下:
  (1)32位RISC结构;
  (2)处理速度可达96 MIPS;
  (3)4KB的非易失性内存可供存储指纹特征数据;
  (4)体积:lOxloxl 26 mnl;
  (5)接口方式:UART和USB。
  
  2 指纹识别系统构成
  
  电路选取Atmega48单片机作为抑制核心。Atmega48是一款8位微抑制器,具有高本能、低功耗的显著特点。由于选取RISC精简指令集结构,其指令集大多为单周期指令,具有高速运行的特点。3V供电时。未使用内部看门狗的情况下,Atmega48的典型掉电电流小于luA,而且该单片机在1.8V一5.5V的电压范围内均能正常事务,片内自带4K字节的flash、256字节的E2PROM,以及512字节SRAM并内置AD转换器、看门狗、3个16位的定时/计数器。
  Atmega48作为上位机负责和TCD42A的通讯。由它下达指纹登录、比对、删除等下令给TCD42A。TCD42A返回结果给Atmega48,以便上位机准时给用户提示,如LED闪烁、蜂鸣器蜂鸣、电机转动等。指纹识别系统结构框图如图2所示:
  
  
  
  TCS3C与TCD42A通过一条12Pin,0.Snlnl间隔的软排线连接,TCD42A通过一条7Pin,0.Smm间隔的软排线和单片机连接。TCD42A的U_TXl和U_RXl分辨和Atmega48的RXD和TXD连接进行串口通信。
  由于TCD42A需要一个至少持续20ms的BREAK信号(持续的低电平)重启,所以将Atmega48的PD4作为TCD42A的Wakeup信号。TCD42A被唤醒后,发送复位应答帧,表示已经能够通讯了。TCD42A与单片机之间按照下面的通讯协议进行通讯。在实际应用中建议BREAK信号保持50ms以上。
  
  3 通讯协议
  
  参照通信网络互联的标准7层模式,TCS3C-TCD42A指纹识别模块与上位机交互时,使用4层通讯模型(参见表1)。
  该模块支持串u和USB口两种通讯方式。协议的字节顺序为little_endian,即低地址存放最低有效字节(LSB)。TCD42A的UART是一个标准的通用异步收,发接口,此接口让用户进行指令发送和通信。接口默认的通讯速率为9600bps,根据需要,还能够设置为19200bps、38400bps、57600bps、115200bps、230400bps。
  
  3.1 字节填充与字节替换
  在此通讯协议中,一些字符被保留为特殊用途,如XON/XOFF,DLE。STX除帧头(Ox02)不需要特殊处理外,不论上位机还是模块在发送数据前,均需对字符XON、XOFF、DLE、STX作字节填充。填充准则如表2所示。
  和字节填充相反,上位机或模块在收到数据后,除第一个字节(0x02)不需要处理外,对于特殊的2个字符要作字节替换。字节替换准则为字节填充的反变换。
  
  3.2 链路层
  链路层的帧格式如下所示:
  STX+Header+Data+CRC
  STX是―个字节(Ox02),是帧的起初标志。
  Header的长度为3个字节,其中:
  Header:
  Bits 0-3:帧类型,共有12中数据类型,如数据帧、请求等待时间扩展帧等;
  Bits 4-7:保留,必须置为O;
  Header:
  Bits 0-2:数据长度高位(参见Header[2]);
  Bit 3:保留,必须置为0;
  Bits 4-7:为数据帧的模16计数,系统复位后初始值为0,其他类型帧时将其置为0。
  Header:数据长度低位,和Header[1]里的3位组成ll位的域。
  Data:传输层和应用层数据,在字节填充前最大长度为2047个字节。
  CRC的长度为2个字节,其值是对Header和Data的字节在进行字节填充前作CRC校验得到的。CRC类型为依照CCI'VI"V,41标准的CRCl6。特别要说 明的是,若CRC的2个字节中出现了上述的特殊字符,在发送数据时也要进行字节填充。
  
  3.3 传输层
  传输层的第一包数据格式如下所示:
  Header+Packet+Length+Data
  Header占1个字节,它的大家功能如表3所示。
  Bit 4为1时表示此帧为传输层服务帧;
  Bit 4为0时表示此帧不是传输层服务帧。
  Packet Length:此为可选择的2个字节,它和来自Header的2位合起来表示应用层的长度;
  Data:应用层的数据。
  
  3.4 应用层
  应用层的帧格式如下所示:
  Tag+Data
  Tag的长度为4个字节,在此描述为32位的整型值,其中:
  Bits 28-31:
  (CL_COMMAND)0000:表示此为上位机要求模块执行下令;
  (CL RESPONSE)0001:表示模块对上位机下令的响应;
  (CL_GUI_CALLBACK)0010:表示此为模块的GUI回调包;
  (CL_GUI_RESPONSE)0011:表示上位机对GUI回调包的响应。
  Tag的剩余28位根据高4位的不同而具有不同的意义:
  若高4位是CL COMMAND,则Bits 16-27为下令码,其余位为0;
  若高4位是CL_RESPONSE,则Bits 16-27为下令码,Bits0-15为错误,状态码,状态码为0表示成功。
  高4位是0010或0011时,Tag的其他位均为0。
  
  3.5 具体数据包分析示例
  若上位机发送列举所有指纹下令给指纹识别模块,实际发送的数据如下:
  02 00 00 07 28 04 00 00 00 0D 10 03 FC 6A
  具体数据意义分析如表4所示:
  
  4 软件设计
  
  
  
  
  
  
  上位机的软件开发选取IAR公司的IAR EmbeddedWorkbench V4,21 for Atmel AVR.它集成了开发嵌入式系统所需要的文件编译、项目管理、链接和调试工具。IAR EmbeddedWorkbench系列适用于开发基于8位、16位、32位微处理器的嵌入式系统,其集成开发环境具有统一的界面,为用户提供了一个易学、易用的开发平台。IAR公司提出了“不同架构,惟一解决方案”的理念,用户能够针对多种不同的耳标处理器,在相同的集成开发环境中进行基于不同CPU的嵌入式系统程序开发,有效地提高了事务效率,节省了事务时间。IAR一贯使用精简的优化技能,其生成的可执行代码的数量远远少于其他同类编译器生成代码的数量,能够运行于更小尺寸、更低成本的处理器上,从而降低产品的开发成本。
  
  4.1 主程序
  软件程序包括主程序和停止服务程序。选取模块化设计方法,各模块之间相对独立,这样能够使得程序结构清晰,便于今后进一步扩展系统的功能。主程序流程图如图3所示。其中初始化完成开停止、设置定时器和串口、初始化驱动集成电路、指纹识别模块复位等事务。电量检测及处理模块进行电池电量检测,若电池电量不足发出报警声音以提示用户更换电池。程序根据用户按下的登录、验证或删除键由通讯处理模块进行不同的处理。若用户在按下登录或者验证键后不作任何操作,程序在达到最大等待时间(10S)后将自动关机。蜂鸣器提示模块、LED指示模块将根据通讯处理模块的结果提示用户操作结果。电机驱动模块用于驱动电机,在等待2s后自动关机。
  为了能让单片机准时响应和抑制指纹识别模块,尽量削减通讯所占用的CPU时间,笔者在设计单片机通讯程序时。将通讯程序分为接收停止处理模块和通讯处理模块2局部,并将这2个模块巧妙地进行组合,从而构成整个单片机的通讯程序。
  
  4.2 接收停止处理模块
  接收停止处理模块主要负责接收指纹识别模块发送到单片机接收缓冲区的数据,字节替换在此模块内进行。单片机接收到规定的字符数后,置接收完毕标志,以证明接收缓冲区中有待处理的数据并请求通讯处理模块对其进行处理。接收停止处理模块流程图如图4所示。
  
  4.3 通讯处理模块
  通讯处理模块放在主程序中调用,根据用户的按键不同,向指纹识别模块发送不同的下令。发送的下令主要有列举指纹用户、登录指纹、验证指纹、删除指纹等。特别要说明的是由于程序规定最大用户数为10,所以在登录指纹用户前要先向指纹识别模块发送列举指纹用户下令,惟有在指纹用户数小于最大用户数时才能够登录。由于此系统用于指纹保管箱,所以在验证用户也需要列举用户。如果指纹识别模块内没有指纹用户的话,任何人都能够开箱(指纹保管箱在初始状态下是没有指纹用户的,所以任何人都能够开箱)。
  通讯处理模块负责向指纹识别模块发送下令和响应来自模块的数据包。串口发送选取查询方式。笔者认为此处没有必要选取停止,因为程序的开销是差不多的。在发送数据之前,要先对数据进行CRC校验和字节填充。通讯处理模块在接收到指纹识别模块送来的一串完整数据后,进行CRC校验,在通过CRC校验后根据不同的数据作出不同的响应。若超时没有收到数据或者CRC校验错误,则通讯处理模块重发下令或者响应帧。
  指纹登录时用户至少需要在指纹传感器上划三次指纹,上位机抑制LED提示用户。指纹识别模块对三次录入的指纹综合处理提取特征,生成指纹模板存于TC42A。如果用户的指纹质量不好。则手指划动次数会超过3次。为了提高登录的成功率,程序没有限制手指划动的次数,只要模块端不上传登录失败数据包,用户可一直登录,直到超过最大等待时间。
  
  5 结束语
  
  本文给出了单片机与指纹识别模块之间进行异步串行通讯的解决方案。此方案在实际使用过程中,运行稳定,通讯本能良好。从整个系统的设计能够看出:基于TCS3C-TCD42A的指纹识别模块选取Atmega48作为上位机,具有体积小巧、价格低廉的特点。目前该系统已经成功应用于指纹保管箱产品中。本文提出的基于TCS3C-TCD42A的指纹识别系统是把采集、处理、抑制于一身的系统,能够做得很小,也符合用于防盗门、高档的汽车门、汽车遥控器、手机、PDA等产品中。
转载请注明来源。原文地址:https://www.7428.cn/page/2018/1123/45823/
 与本篇相关的热门内容: