引言
目前指纹识别技术已趋向民用市场普及,指纹考勤机就是其主要的应用之一。笔者采用功能强大的S33C44B0X处理器设计了一款指纹考勤机,在功能、接口、价格等方面都有着极大的优势。
所设计的考勤机具有指纹采集和刷卡采集两大基本功能。指纹采集部分采用CMOS光学传感器。刷卡采集相应的射频模块,它可以通过串口的方式与CPU通信。考勤机和上位机的通讯则采用通用的模拟USB接口,有效地达到了即保证低成本又方便用户使用的目的。另外还加入了USB充电,实时时钟显示,语音提示等众多人性化功能。系统的框图如图1所示。
基于ARM7的指纹考勤系统硬件设计
本系统主CPU采用的是三星公司的S3C44B0X处理器,该处理器具有功能多、功耗低、运算速度快、价格低廉等优点。
硬件设计主要包括指纹采集、刷卡采集、和电源管理三个部分。
存储器采用外接的方式,分别接了64M的HY57V641620HG的SDRAM和16M的39VF1601的flash。语音提示模块采用的是总长为
21S录音时间的AP8921A芯片。
上位机通讯通过CH341芯片进行异步串口转USB1.1接口,用户对外可以按照正常的USB接口使用,省去了麻烦的串口。系统采用了MAX1508芯片通过USB接口给锂电充电,平时采用电池供电,插上USB接口后即可通过USB接口给系统供电,并给锂电充电。
按键总共有三个,一个是系统的开关机按键,另外两个分别是实时时钟设的置按键和方向键。
指纹采集
指纹采集传感器采用OV7620,并以I2C总线及DMA的数据传输方式实现与CPU的信息交互。图2为指纹采集接口。
J1为采集头的接口,主要有15个引脚,其中引脚8至引脚15为数据输出接口,连接至锁存器,最终接到数据总线上;引脚6、7为I2C总线,用于对传感器寄存器进行初始化设置;引脚3到引脚5分别为传感器的时钟信号、行同步信号和帧同步信号。帧同步信号直接连接至CPU的通用I/O端口GPF3上,行同步信号和时钟信号通过与非门接至CPU的外部DMA请求输入nXDREQ1。
当nXDREQ1输出由高电平变得低电平时,传感器便有数据输出,并且数据能够维持至下一个同样的过程的到来。这正好符合44B0的外部DMA请求的单步模式的要求。于是自然就可以采用DMA的方式来读取数据。最终的数据读取是通过片选锁存器来实现的。由于DMA的方式不干预CPU,因此也大大提高了读取的速度。
刷卡采集选用的是MTP-125K4模块,并选择ASCII方式以及固定的9600bps输出RS232数据,感应距离为30cm,其输出数据端口直接连接CPU的串口1接收端即可。输出的数据格式为头码(02)+10ASCII数据+Checksum校验码+结束码(03),事实上我们只需存储10位数据信息中的4位卡号。具体电路如图3所示。
电源管理
电源管理部分采用了1150mAh的LI电,通过DC-DC升压至5V,再通过LDO给系统所需要的3.3V和2.5V电压。其中DC-DC是LT1308A芯片,LDO采用AMS1117-3.3V和AMS1117-2.5V,可以为系统提供稳定的电压供给。
图4是电源开关控制部分电路,功能为实现USB和电池供电的切换。当未插入USB时采用电池供电,而连接时系统采用USB供电。S9为总电源开关。具体的实现过程为:电池供电时,开关S9按下,TEST1点由高变低,Q0导通,NAND网络为高,系统开始供电,此时程序运转并给与SHDN引脚高电平信号,促使Q6导通,此时即使按键抬起TEST1点仍为低电平,维持Q0的导通。当插上USB后,按键的按下使得Q4导通,Q0此时截至,系统由电池供电切换为USB供电,其它道理相同。关机时按键按下,Power_DET网络检测电平由高变低,给予SHDN低电平,Q6截至,按键抬起后无论是Q0还是Q4均截至,系统断电。
系统软件设计
软件部分除了CPU的底层初始化部分采用ARM汇编,其余全部用C语言编写。
程序初始化后进入低功耗模式,等待各种具体操作。当有指纹采集时,就进入指纹数据采集和处理模块,处理结束后,又重新退回低功耗等待模式,等待其他操作。同理,当有读卡数据或者时钟设置响应时,便进入相应的操作模块进行处理。值得注意的是,系统有两种关机方式。一种是通过手动关机,另一种则通过系统定时器定时到后自动关机。
图像数据读取
根据前面的分析,图像数据的采集采用的是DMA方式的单步模式。初始化时,除了设置单步模式外,还需要将DMA读取的源地址设为锁存器上的片选地址,目的地址则是存储数据的缓存地址;数据的大小设置为一帧数据的大小,这里为480×640字节。
在读取数据过程中,系统首先检测帧同步信号,以确定一帧的开始,然后等待传感器发出的DMA请求(与非门输出低电平)。当接收到请求后,便按DMA的方式传输数据,每接收一个字节,相应的用于指示剩余字节数的寄存器的值便会减一,直至减到零,表示数据接收完毕。
读卡
考虑到刷卡的随机性,决定采用中断的方式来读取数据。即通常情况下,系统是在低功耗下等待;当有刷卡时,跳出低功耗并读取数据。
整个读取过程就是对串口通信的操作过程。当有数据进来时,串口模块会产生一个中断。因此在相应的中断响应便可以读取这一数据,直至数据完整读取;所读取的数据中有一个校验和,可以帮助验证数据的正确性。
结语
本本产品目前已经研制出样机,经调试检测各项指标合格,实现了上述各项功能,满足了产品的设计指标。