1、指纹识别门禁系统开发实例,基于嵌入式的指纹识别门禁系统,数据存储,CPU 处理器,控制器,I/O,外部 设备,指纹 传感器,应用环境与硬件设计概要,本指纹识别门禁系统采用电容式压感指纹传感器(FPS200 芯片)并且基于网络的指纹门禁考勤系统 1.系统功能概述 (1)指纹门禁/考勤 指纹门禁:在终端上录入指纹,当指纹合法时,可以开门 指纹考勤:在终端上录入指纹,做上班或者下班的考勤记录,用这个记录可以计算用户的工资,出勤情况,(2)分布式和非分布式 分布式:终端将采集的指纹原始数据发送到服务器,有服务器进行指纹识别算法,计算完毕以后,服务器决定是否想终端发送开门指令。 非分布式:非分布式指一个
2、终端系统可以进行指纹算法等复杂功能,基本不需要服务器帮助处理。 (3)终端和服务器 终端有指纹采集、屏幕输出、键盘输入、 声音报警、LED灯指示功能。 服务器中的服务程序能够和终端机进行 数据交换、指纹对比算法、查询数据库 等复杂动能。指纹合法,发送开门指令; 非法,则报警。,2.系统的主要功能描述 (1)门禁功能 如果门禁功能被激活,当按下手指以后,服务器将判断是否发送开门指令。 (2)考勤功能 如果考勤功能被激活,则当按下手指以后,服务器首先判断ID和指纹是否相符,然后再看这个终端机是否在这个时间允许这个用户考勤,如果是就做一次考勤记录,并且查询数据库,显示是否 迟到、个人留言等信息。,3
3、.系统的硬件结构 这里的硬件只针对终端的硬件,3部分:指纹传感器、核心处理板以及外部控制板。,指纹识别门禁系统的终端结构示意图,电源 CPU GAL器件 网卡芯片SRAM I2C接口 Flash芯片,调式接口,液晶屏接口,RJ-45,键盘接口,控制输出,指纹芯片接口,门锁及LED指示,Internet/Intranet,RS232,指纹识别原理框图,指纹图像预处理,获 取 指 纹 图 像,提 取 指 纹 特 征 点,对 比 特 征 点,计 算 方 向 图,图 像 二 值 化,图 像 细 化,图 像 滤 波,设备驱动编写框架 在嵌入式Linux操作系统内核中提供了驱动程序的框架,在嵌入式指纹驱动
4、程序是,根据FPS200芯片实现的功能,编写FPS200的驱动。然后把FPS200硬件驱动程序嵌入Linux中。 设备驱动的框架如下: #define MODULE #include #include #include #include #include #include #include #include int init_module( viod ) clps_writel(0x01,PDDR); return 0; void cleanup_module( void ) clps_writel(0x01,PDDR); ,指序芯片驱动 FPS200芯片的功能采集,它的工作方式是用户把手指放
5、在采集板上之后,采集板产生一个硬件中断通知ARM,此时用户程式可以通过读取中断标准位的方纹得到该响应。为了能够使用FPS200驱动,还需要在/dev目录下创建一个设备文件,创建方法如下: #cd /arm/armroot/dev #mknod fps200 c 240 0,用户程序 1.打开/dev/fps200 设备文件 2.读取中断标志 3.发送ioctl控制字 得到指纹图片 4.保存指纹图片 为bmp位图,驱动程序 1.初始化FPS200 2.申请内存空间 3.申请中断 4.定义Open、 ioctl、release 操作,/dev/fps200,对FPS操作的基本函数 fps200_o
6、pen fps200_ioctl Fps200_release,FPS200驱动框图,FPS200硬件驱动程序正确结果: 1.运行程序以后串口输出ID:2022(对veridicom公司的芯片),其他公司20XX。 2.输出reg ok表示指纹芯片测试无误。 3.从串口发送一个字符,程序将以Hex形式 从串口输出一次采集指纹数据,再从串口 发送一个字符采集继续进行。将所有 接受到得数据存在I2C.txt中,并放 到CtoHex.exe所在的目录,运行 CtoHex.exe程序,产生finger.dat 文件,用PFProcess.exe程序查看 finger.dat所存储的指纹图像。,基于AR
7、M Linux的指纹识别门禁系统,1.FPS200D的内部结构FPS200传感器的每一列都有两个采样保持电路,一个用来存储放电前电容两端的电压。另一个用来存储放电后电容两端的电压。两个采保持电路的差值可以度量电容的变化。先指定行高阶地址寄存器(RAH)和行低阶地址寄存器(RAL)中的数据以指定待读取的行,再指定列地址寄存器(CAL)从而启动行捕获,等待一段时间(行捕获时间)后,连续读取控制寄存器(CTRLA)、获得某一点的指纹采样值,读完会自动触发下一次A/D转换,读完一行后再写入RAH、RAL以读取下一行,直至最后一个像素。,FPS200内部控制逻辑,256x300 传感器阵列,采样控制,A
8、/D转换模拟,多振荡,晶振,功 能 寄 存 器,控制,数 据 寄 存 器,索 引 寄 存 器,SPIUSB,D7:0,A0 RD WR,CS0 CS1,EXTINTTEST,Mode1 Mode2,AIN,FSETXTAL,2.系统硬件电路结构图,D7 D6 D5 D4 D3 D2 D1 D0 A0 nSDCAS nSDWE nCS3 nEINT2,20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1,+ C4633uF,VCC3,系统简单工作流程,终端系统初始化,通过网卡像服务器发送联 络数据包,然后等待回应,是否收到服务器回应?,联机工作,等待按键 或者指纹输入,是否有键按下?,是否有手指按下?,获取指纹数据并发送到服务 器进行比对,根据返回的 结果进行相应显示和控制,各部件复位, 重新连接,根据按键进行相 应的处理和显示,否,是,否,是,是,否,结束,