基于ARM和滑动指纹传感器的c计

发布者:MysticMoon最新更新时间:2012-04-13 来源: 微计算机信息关键字:ARM  滑动指纹传感器 手机看文章 扫描二维码
随时随地手机看文章

1、前言

指纹因其唯一性,终身不变性等特点,在安全性要求较高的行业,如海关、金融和刑侦领域得到广泛应用。随着人们安全意识和隐私觉悟的提高,手机、笔记本、PDA等日常电子消费品中也逐渐开始使用指纹识别技术。此类电子消费品因为便携、手持等特点,在体积、重量、功耗方面都有很高的要求,而传统的指纹传感器面积较大,不适合此类产品的使用。

随之产生的滑动指纹传感器(sweep fingerprint sensor),因为它更小的体积、更低的价格和极低功耗,已经逐渐开始应用于电子消费领域和其他安全系统中。以ATMEL公司的AT77C104A FingerChip为例[1],与传统的指纹传感器相比,它具有以下优点:(1)体积小,仅为1.5×15mm;(2)强鲁棒性,采集到的相邻的指纹帧没有旋转形变等;(3)低功耗,图像采集时为4.5mA,导航时为1.5mA,睡眠模式小于10uA。然而手指滑过滑动指纹传感器时,采集到的一个指纹帧序列而并非完整的指纹图像。

为了解决这个难题,本文实现了基于ARM9芯片AT91RM9200[4]和滑动指纹传感器AT77104A FingerChip的指纹采集系统,并在该系统中完成指纹有效拼接。

简单点讲,指纹传感器目前主要分为两类,光学指纹传感器和半导体指纹传感器;

光学指纹传感器:主是利用光的折摄和反射原理,光从底部射向三棱镜,并经棱镜射出,射出的光线在手指表面指纹凹凸不平的线纹上折射的角度及反射回去的光线明暗就会不一样。CMOS或者CCD的光学器件就会收集到不同明暗程度的图片信息,就完成指纹的采集。

半导体指纹传感器:这类传感器,无论是电容式或是电感式,其原理类似,在一块集成有成千上万半导体器件的“平板”上,手指贴在其上与其构成了电容(电感)的另一面,由于手指平面凸凹不平,凸点处和凹点处接触平板的实际距离大小就不一样,形成的电容/电感数值也就不一样,设备根据这个原理将采集到的不同的数值汇总,也就完成了指纹的采集。

2、指纹采集和拼接系统的硬件设计

AT91RM9200是ATMEL推出的ARM9 32位处理器,具有一下优点:运算速度快(在工作频率为180MHz的情况下它的运算速度为200MIPS)、低功耗、可提供片上或片外存储器以及一系列外围控制、通信和数据存储的灵活配置。这些特征使得这款芯片适合嵌入式指纹采集系统的开发。

在本系统中,包括的通信过程为:

(1)主机和ARM板之间的通信包括:首先PC主机在超级终端中使用Xmodem协议发送文件RomBoot.bin到AT91RM9200内置的ROM中,下载完毕后,自动运行;其次分别将RomBoot.bin和U-Boot.bin程序下载存储到DataFlash,复位后自动启动U-Boot;最后通过以太网口将Linux镜像文件和应用程序下载到DataFlash中。再次复位后,开发板进入Linux系统。

(2)AT77C104A和控制芯片之间的通信:通过SPI接口完成。控制芯片通过写寄存器,设置AT77C104A的工作模式;AT77C104A将采集到的数据传递到SDRAM中。

图1 指纹采集和拼接系统框图[page]

3、AT91RM9200与AT77C104B FingerChip连接及通信过程

指纹采集芯片采用ATMEL公司的热敏传感芯片AT77C104A FingerChip,通过滑过传感阵列的指纹脊和谷的温度变化来获取指纹数据。与传统的指纹传感器相比,AT77C104A在体积、功耗、工作频率以及对工作环境的鲁棒性等方面均有优势。该芯片提供了SPI接口,有两种通信总线:

(1)SLOW总线:对应SLOW模式,起控制作用,控制和读写内部寄存器;

(2)FAST总线:对应FAST模式,用于获取象素,使主机获得所有的指纹象素。

在本指纹采集系统中,利用AT91RM9200的SSC接口与AT77C104B FingerChip相连。SSC 包含独立的接收器、发送器及一个时钟分频器。每个发送器及接收器有三个接口:针对数据的TD/RD 信号、针对时钟的TK/RK 信号及针对帧同步的TF/RF信号。AT91RM9200与AT77C104B FingerChip 通信时,前者处于主机方式,后者处于从机方式,连接如图2所示。

图2 AT91RM9200与AT77C104B FingerChip连接

在该通信过程中,SSC的接收器时钟RK由TK驱动,同时接收端与发送端同步,所以TF与RF相连。SSC的可编程高电平及两个32位专用PDC 通道,可在没有处理器干涉的情况下进行连续的高速率数据传输,适用于快速获取指纹数据。

滑动时指纹传感器获得的每一个像素,由一个16进制数表示,对应着4个时钟周期。当传感器通过SPI端口传输获取到一帧数据时,先传输一个帧同步信号F0F00200,然后再传输232×8像素指纹数据。获取到的指纹数据存储在SDRAM中,通过指纹拼接程序将纹帧序列拼接成完整的指纹图像,然后通过USB传输回PC主机中显示。

4、系统定制和驱动程序加载

4.1 系统定制

为了增加系统的可维护性,采用Linux系统,Linux内核可根据需要裁减。系统定制流程:

1、在ShopEx客服的帮助下,以书面形式整理需求;

2、ShopEx开发人员根据开发工作量进行报价:

3、签约,开发内容做为合同附件:

4、客户支付相应开发费用;

5、ShopEx进行系统开发、测试;

6、ShopEx客服协同客户共同就开发内容进行验收;

7、验收通过,客户开始使用定制系统: 会议的管理和控制

8、基于 Web 的会议管理和资源管理,使会议定制、资源管理、用户管理轻松实现。

9、 系统支持多种会议类型,分别对会议类型、用户角色等进行了不同级别的验证。

10、系统支持多种会议成员身份和认证,每个会议成员在系统中拥有不同角色权限。会议主持人可远程实时控制与会者的视音频参数,以达到完美的会议效果。[page]

4.2 加载驱动程序

设备驱动程序在Linux内核中,使某个特定的硬件响应一个定义良好的内部编程接口,同时完全隐藏了设备的工作细节。用户通过一组标准化的调用完成对硬件的操作,而这些调用是和特定的驱动程序无关的。将这些调用映射到作用了实际硬件的设备特定的操作上,就是设备驱动程序的任务。也即Linux中的模块化实现,这也是Linux中设备驱动程序的一大特点。

将FingerChip驱动程序加载到Linux文件系统中,当系统运行时,使用insmod命令,即可实现指纹传感器设备的装载。通过标准化的调用,实现对传感器的控制。

5、基于滑动式指纹传感器的指纹拼接算法

当手指滑过时,滑动指纹传感器采集到是一系列指纹帧序列,因此在嵌入式系统中,需要对获取的指纹帧序列进行拼接。与PC机中的CPU相比,ARM芯片速度较低。为了减少刮取指纹后的等待时间,对指纹拼接速度的要求很高。

本文运用基于块匹配指纹拼接算法[5],能够快速有效的寻找到相邻指纹帧之间的偏移量。块匹配算法是:(1)在图像A中选取M×N大小的X区域;(2)在图像B中选取所有可能的M×N大小的Y区域;(3)计算X区域和Y区域对应象素差值的平均值MAE;MAE越小,两区域相似度越高;计算公式为:

  (1)

其中0≤i≤M-1,0≤j≤N-1,p(i,j)为X区域的点p的象素值,q(i,j)为Y区域对应点q的象素值。MAE越小,两区域相似度越高。理想情况下,MAE最小值为0。

具体实现步骤:(1)FingerChip AT77104A获取到的指纹帧数据大小为232×8,设x方向为232,y方向为8。为了有效的拼接相邻两帧指纹,设置获取每一帧数据的频率,使得y方向的偏移量dy不大于8,即保证相邻两帧一定有重叠。(2)理想情况下,手指在y方向滑动,在x方向上偏移量为0。因此,只考虑dx不大于dy的情况。当dx超过dy时,滑动无效。(3)由(1)(2)可得,|dx|<8。同时可得,最后一行,中间的(232-8×2)个象素与下一帧必有重叠。(4)取前一帧最后一行(232-8×2)个象素,即(232-8×2)×1的模板,与新获取的一帧指纹匹配。(5)匹配方法:在新的指纹帧里面寻找所有可能的(232-8×2)×1的模板,计算求得MAE。选取MAE的最小值对应的模板,此模板与上一帧的最后一行的(232-8×2)×1的模板相匹配。即得dx,dy。(6)重复执行以上步骤,直到得到一幅完整的指纹图像。图3-a为拼接前的指纹帧,图3-b为拼接后的指纹图像。

图3 a.拼接前的指纹帧 b.拼接后的指纹图像

6、总结

本文实现了基于ARM9芯片AT91RM9200和滑动指纹传感器AT77C104B FingerChip的指纹采集系统,具有低功耗,采集便捷,通信系统简单等优点,具有很大的实用价值。开发的指纹拼接算法通过了AT77C104B FingerChip获取的100幅指纹帧序列的测试,均能达到较好的效果。该系统获取到的指纹帧序列和拼接后的指纹图像,均可通过USB接口导出,可用于指纹拼接算法有效性的测试和指纹识别算法的测试。

关键字:ARM  滑动指纹传感器 引用地址:基于ARM和滑动指纹传感器的c计

上一篇:基于ARM7的远程机器人控制系统设计
下一篇:多核异构ARM架构实现智能触控用户界面

推荐阅读最新更新时间:2024-03-16 12:57

IAR Embedded Workbench帮助嵌入式从32位迁移到64位
IARSystems是面向未来的嵌入式开发软件工具和服务的供应商,日前宣布其C/C++开发工具链IAR Embedded Workbench for Arm支持64位芯片,包括ArmCortex-A35,Cortex-A53和Cortex-A55。通过IAR Embedded Workbench,IAR Systems为客户提供了市场上最多样化的微控制器支持,以及适应不同组织需求的许可选项。 在嵌入式行业中,越来越多的应用程序基于64位内核,特别是在低功耗应用程序,深度嵌入式和手持设备中。在这些应用领域中,IAR Embedded Workbench拥有强大的立足点,是许多公司实现最高性能和能源效率的首选工具链。通过支持需要6
[嵌入式]
恩智浦与ARM签署重量级授权协议
  恩智浦半导体与ARM共同宣布双方已签署一份新的授权协议,内容涉及ARM® Cortex™-M3处理器及其他ARM技术。恩智浦将从2008年开始推出基于ARM Cortex-M3处理器的全新微控制器系列。   作为此项协议的一部分,恩智浦有权在未来开发超低功耗解决方案的过程中,使用所有ARM Cortex系列处理器(包括新近推出的Cortex-A9 MPCore™多核处理器)、ARM Mali™系列图形处理器 (GPU)、CoreSight™片上调试及跟踪技术以及全套ARM物理 IP。   恩智浦半导体高级副总裁兼首席技术官René Penning de Vries表示:“恩智浦与ARM之间的战略协议彰显了双方对32位处理器
[单片机]
怎样将STM32F4xx标准外围设备库与MikroC Pro for ARM集成
STM32F4xx系列微处理器比市场上同类产品先进得多。除了是快速的32位MCU,STM32F4还具有丰富的硬件外设支持以及DSP引擎优势。就功能和价格而言,STM32F4是全胜者。最近,STM32用户社区激增。 STM32 Discovery开发板正在以前所未有的速度增长。最近,我几次收到读者关于STM32F4xx标准外设库(SPL)与MikroC Pro for ARM集成的切实询问,因此,尽管这不是我关于STM32 ARM的主流文章之一,但我还是觉得我应该解决这个话题。之前,我展示了如何通过MikroC移植STM32F1xx系列设备的STM32F1xx SPL。这篇文章与以前的文章没有什么不同-只是微小的变化。我建议读者在阅
[单片机]
怎样将STM32F4xx标准外围设备库与MikroC Pro for <font color='red'>ARM</font>集成
TI推出ARM® Cortex™-A8微处理器解决方案
近日,德州仪器 (TI) 宣布推出业界首款具有多种集成型工业通信协议的 ARM® Cortex™-A8 系统解决方案,为希望简化并加速工业自动化设计的开发人员带来极大优势。上月发布的 Sitara™ AM335x ARM Cortex-A8 微处理器不但支持不足 7mW 的低功耗,而且还提供 2 款工业自动化硬件开发工具、完整的软件以及模拟信号链,从而可提供一款总体工业自动化系统解决方案。开发人员可使用该解决方案加速工业自动化设计的上市进程,其中包括输入/输出 (I/O) 器件、人机界面 (HMI) 以及可编程逻辑控制器 (PLC) 等。 片上工业外设与通信协议可将 BOM 成本锐降 30% AM335x ARM Cortex-A8
[单片机]
Ubuntu安装ARM架构GCC工具链最简单办法
一、安装ARM-Linux-GCC工具链   只需要一句命令:   sudo apt-get install gcc-arm-linux-gnueabi   前提是你的Ubuntu系统版本是官网支持的最新的版本,若不是,请升级。执行以上命令即可。 二、使用工具链   注意!这里不能使用 gcc 命令来召唤它。它的名字是 arm-linux-gnueabi-gcc 。如果出现 Command Not Found,请关闭Terminal,再重新打开。再不行,就变成超级用户,把它添加到 PATH 中。   Tips:查看安装位置。   首先你要取得超级用户权限(临时取得权限可用命令:sudo -i) root@q
[单片机]
Arm 发布全新图像信号处理器 助推物联网及嵌入式市场视觉系统发展
Arm 发布全新图像信号处理器 助推物联网及嵌入式市场视觉系统发展 • Arm Mali-C55 是 Arm 目前面积最小、可配置性最高的图像信号处理器,并已获瑞萨电子 (Renesas) 等授权许可客户采用。 • 在芯片面积仅为前几代产品一半的基础上,Mali-C55 可为先进的嵌入式及物联网视觉系统优化图像质量并提升性能。 • Mali-C55 支持多摄像头高分辨率和与设备端机器学习无缝集成,从而为芯片合作伙伴和 OEM 厂商提供新的功能。 Arm 今日宣布推出全新 Arm® Mali™-C55 图像信号处理器 (ISP),这是 Arm 迄今为止面积最小且可配置性最高的 ISP 产品,并已获得
[嵌入式]
<font color='red'>Arm</font> 发布全新图像信号处理器 助推物联网及嵌入式市场视觉系统发展
嵌入式arm学习总结(四)--LCD
1.常用显示类型 1)数码管:0.7—1元 成本低,只能显示数字和字母 2)字符型液晶屏:LCD1602 15—25,显示数字和字母 3)点阵型黑白屏:LCD12864 50—90之间 可以显示汉字和图片 4)STN-LCD 彩屏 成本低 响应速度慢(刷新频率低),播放视频有拖尾现象 5)TFT—LCD 彩屏,主流 6)0LED 功耗低,无需背光 日本技术 今后主流 7)LED广告屏(一个一个LED组成)--成本高,耐用 2.点像素: 1个点有多少种状态,多少种颜色 1bpp 1位 黑白屏 1bpp,1位每像 素 2bpp 2位 4种状态 4bpp 4位 16种状态 8bpp 8位 256种状态 16bp
[单片机]
IAR Systems发布IAR PowerPac TCP/IP for ARM
IAR Systems发布TCP/IP协议栈,配套使用于IAR PowerPac RTOS,为使用IAR Embedded Workbench for ARM集成开发环境的开发者提供了一个简便易用的TCP/IP协议。它特别适用于需要与电脑网络(比如Internet)方便连接的便携式产品开发。 有了TCP/IP协议模块,IAR PowerPac就包括了把全套的TCP/IP协议移植到ARM芯片上的所有必要组件。IAR PowerPac TCP/IP协议在运行时可配置,适用于带以太网控制器的ARM嵌入式系统。比如,在ARM7处理器上使用IAR PowerPac TCP/IP协议栈,传输速度可以达到2.5MB/S。 这个通讯协议栈提供了支持
[新品]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved