📄 fps200.rar.txt
字号:
指纹特征匹配采用允许框来实现弹性,允许框是一个在特征点周围的框,如图26.5所示。
算法描述如下:
(1)将特征点坐标转换为极坐标;
(2)在模板指纹和输入指纹中找两个类型相同的点分别作为参考点;
(3)将模板和极坐标中输入点作为符号串,按极角递增的顺序连接每个点;
(4)如果对于模板特征点,输入的特征点在相应的允许框内,则匹配指数加1;
(5)重复(2)、(3)、(4)步,直到每个可能都被测试;
(6)对于一个指纹图,如果匹配指数大于定值T,则认为匹配成功,否则失败。
3硬件电路设计
3.1指纹硬件电路
指纹采集芯片采用美国Veridicom先进的电容式指纹传感器芯片FPS200,FPS200内部的控制电路如图26-6所示。
FPS200电容式指纹传感器在1.28cm×1.50cm的表面集成了256×300个电容器,外表而是绝缘层,当用户的手指放在上面时,由皮肤来组成电容阵列的另一面。电容器的电容由于导体间的距离而降低,即脊(近的)和谷(远的)相对于另一极之间的距离。通过读取充放电之后的电容差值来获取指纹图像。FPS200提供有与8位微处理器相连的接口,并且内置8位高速A/D转换器,可直接输出8位灰度图像。传感器采用标准CMOS技术,获取的图像大小为256×300,分辨率为500DPI。
FPS200传感器的每一列都有两个采样一保持电路,一个用来存储放电前电容两端的电压,另一个用来存储放电后电容两端的电压。两个采样一保持电路的差值可以度量电容的变化。首先指定行高阶地址寄存器(RAH)和行低阶地址寄存器(RAL)中的数据以指定待读取的行,再指定列地址寄存器(CAL)从而启动行捕获,等待一段时间(行捕获时间)后,连续读取控制寄存器(CTRLA),获得某一点的指纹采样值。读完会自动触发下一次A/D转换,读完一行后再写入RAH,RAL以读取下一行,直至最后一个像素。
在参数设置方面,其中PGC是放人倍数,通过它不能消除汗渍(模糊);DCR和DTR的组合大小和背景色及双指纹现象有关。
· DCR:越小DTR要越大,DTR可变范围越大(可变范围是指图像不太黑,同时没 有双指纹)。
· PGC:越大DTR可调范围变小,PGC:太小使整个图像将变成灰色,很难区分指纹 和背景。
· DCR:越大将有效抑制汗渍(模糊)。但是DCR达到最大时背景为灰色,虽然指纹没有模糊,但用减小PGC来看,此时整个图像为灰色。而PGC很大时调整范围小, 图像不是很好。
3.2电路原理图
设计指纹采集模块时由于考虑到指纹芯片价格昂贵,万一设计存在错误将会造成很大的浪费,同时也考虑到以后在制作产品时指纹采集模块安装方便,所以将指纹模块单独设计成一块电路板连接在扩展板上面。
FPS200接口电路如图26-7所示。
FPS200和ARM CPU接线(布线要求)建议如下:
(1)为了减少干扰,ARM输出到FPS、ARM的RD/WR输出到FPS,这些数据线段中间不能再接其他线,即其他器件的数据线和RD线不能和FPS共用。
(2)这些线周围0.5cm左右不能有敷铜或者其他导线。这样来减少数据线和地之间的电容。
(3)其中的数据线应并排走,长度相等。这些线应尽量短,导线较粗。
(4)驱动输入引脚和地之间接一个30pF的电容。尽量贴近管脚。
(5)FSET引脚和指纹自动探测有关。FSET引脚的干扰将触发指纹采集,所以“FSET引脚”和“接在FSET引脚上的电阻”之间的引线要尽量短,并且引线和周围引线之间有较大距离。
4 软件设计
4.1指纹识别驱动
FPS200芯片的功能是采集指纹,它的工作方式是,用户把手指放到采集板上之后,采集板产生一个硬件中断通知ARM,此时用户程序可以通过读取中断标准位的方式得到该响应,然后用户程序通过ioctl发出控制指令读取指纹数据,如图26-8所示。
硬件上的FPS200指纹采集芯片,这个设备在Linux下没有提供相应的驱动程序,所以需要自己编写。为了能够使用FPS200驱动,还需要在/dev目录下面创建一个设备文件。创建方法如下:
#cd/arm/armroot/dev
#mknod fps200 c 240 0
上面的命令表示,在dev目录下面创建了一个名字为FPS200的字符设备,该设备的主设备号是240,次设备号是0。
在编写驱动时,考虑到FPS200采集指纹时需要调整参数,所以在设计时将调整参数的接口也提供给用户的程序。为了比较出哪一组参数所采集的指纹图片最好,所以可以采用自动调整参数的方法,把每一个参数下的指纹图片自动保存,最后筛选出一个效果最好的参数作为最终参数。
4.2指纹处理程序设计
关于指纹处理过程:由一个光电检测信号来确认是否有手指按下,如果有手指按下,则此时直接读指纹芯片的缓冲区,将读到的指纹图像数据在SDRAM中进行打包;然后发送到服务器,由服务器将接收到的指纹图像进行处理和辨识;接着向终端返回认证结果,由终端进行相应的显示和控制。
系统的简单工作流程如图26-9所示。
FPS200详细程序如下:
5 实例总结
本章介绍了RM开发平台上的一个应用,即指纹识别系统。指纹识别算法需要大量的运算,从PC上运行的结果来看,放到ARM硬件平台上运行速度较慢,因此可以在系统硬件上增加一块DSP数字处理芯片作为专门的指纹处理模块。
在指纹识别系统的设计时应注意如下几个问题。
·在对指纹图像进行增强处理时,对提取指纹边框有效区域的提取范围太大,将不能 够把图像上的噪声完全去除。
·对图像计算方向图时,得到的方向不够准确,将使不太清楚的指纹得到的方向图出 现混乱。
·对图像进行二值化的函数执行时间比较长,在PC上需要大约10s的时间。
·比对特征点的算法如果存在逻辑错误,则特征点大于100的指纹将无法进行比较。
阅读全文(105) | 回复(0) | 引用通告(0) | 编辑
标签:ARM 嵌入式 指纹识别
上一篇:UART异步串行接口模块设计
下一篇:外国人心目中的十大中国名牌
发表评论:大名:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -