当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]基于ARM和滑动指纹传感器的采集系统

1、 前言

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

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

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

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

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

  在硬件核心电路中,使用两片16位的SDRAM来配置成32位宽度的高性能存储器,读取数据时候以四个字节为一个单位,从而加快了数据的读取速度。同时外扩一个8M的DataFlash,用于存放Uboot、Linux文件系统和应用程序。

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

  (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中。

  (3)在该嵌入式系统中,拼接采集到的指纹帧序列,通过USB接口导出拼接后的指纹图像。

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

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所示。

  在该通信过程中,SSC的接收器时钟RK由TK驱动,同时接收端与发送端同步,所以TF与RF相连。AT91RM9200通过I/O口(PIO_PA5)提供片选信号,选择指纹传感器的工作模式。SSC的可编程高电平及两个32位专用PDC 通道,可在没有处理器干涉的情况下进行连续的高速率数据传输,适用于快速获取指纹数据。

  AT77C104A FingerChip内部有13个寄存器。AT91RM9200通过写AT77C104A FingerChip内部的模式寄存器,将FingerChip设置成获取象素模式。此时,AT91RM9200通过PIO_PA5将FingerChip的FSS(Fast SPI Slave Slect,低电平有效)信号置为低电平。设置完成后,AT91RM9200为主机,FingerChip为从机。FingerChip的MISO信号将采集到的数据输入到AT91RM9200的SSC端口对应的RD端,存储到SDRAM中。

图2 AT91RM9200与AT77C104B FingerChip连接[!--empirenews.page--]

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

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

  4.1系统定制

  为了增加系统的可维护性,采用Linux系统,Linux内核可根据需要裁减。系统定制过程为:(1) 首先将RomBoot.bin下载到AT91RM9200的SDRAM里;当超级终端显示RomBoot程序界面之后,分别将RomBoot.bin和U-Boot.bin程序下载存储到DataFlash的0xc0000000和0xc0008000地址。复位开发板,进入U-Boot命令行。(2)在超级终端中,通过tftp将裁减过的Linux内核镜像文件和文件系统下载到Dataflash中运行。

  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越小,两区域相似度越高;(4)MAE最小值对应的Y区域即为与X区域匹配。计算公式为:

(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接口导出,可用于指纹拼接算法有效性的测试和指纹识别算法的测试。因为AT91RM9200支持以太网的接入,因此可以联网集控。下一步的工作是,在此指纹采集和指纹拼接算法的基础上,开发指纹识别系统。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭