基于ARM和滑动指纹传感器的c计
增加系统的可维护性,采用Linux系统,Linux内核可根据需要裁减。系统定制流程:
1、在ShopEx客服的帮助下,以书面形式整理需求;
2、ShopEx开发人员根据开发工作量进行报价:
3、签约,开发内容做为合同附件:
4、客户支付相应开发费用;
5、ShopEx进行系统开发、测试;
6、ShopEx客服协同客户共同就开发内容进行验收;
7、验收通过,客户开始使用定制系统: 会议的管理和控制
8、基于 Web 的会议管理和资源管理,使会议定制、资源管理、用户管理轻松实现。
9、 系统支持多种会议类型,分别对会议类型、用户角色等进行了不同级别的验证。
10、系统支持多种会议成员身份和认证,每个会议成员在系统中拥有不同角色权限。会议主持人可远程实时控制与会者的视音频参数,以达到完美的会议效果。
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接口导出,可用于指纹拼接算法有效性的测试和指纹识别算法的测试。
- Linux嵌入式系统开发平台选型探讨(11-09)
- 基于ARM体系的嵌入式系统BSP的程序设计方案(04-11)
- 在Ubuntu上建立Arm Linux 开发环境(04-23)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- SQLite嵌入式数据库系统的研究与实现(02-20)
- 革新2410D开发板试用手记(04-21)