小米note2贴膜3购买的时候厂家有贴膜吗

基于STM32F072的高端指纹锁方案(参赛作品)
特别说明:这只是Demo方案,需要更加细致的方案,可以QQ联系:高端方案功能介绍:1. RB()主控MCU,具有低功耗和掉电模式,在调电模式下通过刷卡或指纹传感器的触摸感应输出信号唤醒(指纹传感器和刷卡模块待机超低功耗),超级节能。2. 指纹识别开门方式无本人授权无法破解,指纹传感器具有唯一ID,不能通过更直接换指纹传感器的方式开门,安全可靠性高。3. SPI_Flash成本低,功耗小,掉电数据不丢失,擦写10W次以上可用于存储字库,语音编码,历史记录,注册信息等多种数据及开门参数,设备其他参数等。4. OLED功耗低,显示效果优于同等价格的LCD,如Nokia51105. NY3P系列语音芯片一次性烧录,永久数据保存,工作电路简单,是超低成本的语音解决方案,使本方案人机交互体验更好。6. 使用超低压差(该芯片应具有低压差,低功耗,低成本特性)LDO或REF芯片作为ADC参考电压的来源在每次开门时智能检测电池电量。7. 注册及其他重要操作验证管理指纹,快捷,可靠。8. 支持蓝牙串口(配合按键或其他一个插入检测),直接RS232或USB(HID或其他全速低速USB设备)方式连接PC或移动终端读取开门历史记录及注册记录,以及其他按键能完成的所有操作,使锁具结构设计更简单,使用更捷。【由于没有引出USB接口,这里直接使用其带的USB转串功能与072MCU的UART2来与PC通信】9. 可设置的误触发超时等待时间,根据使用习惯可人性化地延长设备电池使用时间。10. 以上方案完成的前提下,主控MCU还剩余很多内部外设及外部接口资源,可预留进行扩展。11. 支持远程报警和现场报警输出功能,出门在外更加放心。12. 除指纹开门方式以外,其他所有开门方式支持屏蔽选项,根据使用场合不同,确定符合安全级别的开门方式,同时还能对功耗进行控制。以下是本次Demo演示板的框图(如下截图),上面罗列的内容部份没有实现,但主要部分基本都完成了,并且为了即节约成本又能达到演示的效果,这里用把输出部分(如电机驱动电路,电磁铁驱动电路,报警输出电路等)省略了,统一在LCD上进行显示。最新版实物图片展示:视频展示:附件内容包括:NUCLEO-072RB原理图;电路设计原理图,用AD软件打开(用洞洞板、跳线完成设计,所以没有绘制PCB);硬件对于的IO端口连接方式;最新版的固件工程(指纹模块驱动不包含在内,其他模块驱动都有哦,有IIC和SPI的液晶,RC522,触摸等模块的驱动还有定时器和串口代码);IIC接口带中断输出(可用于低功耗状态下通过按键唤醒单片机)的触摸检测芯片MPR121()驱动程序;高端指纹锁方案硬件设计分析;实物图片分享;
电路相关文件
请购买后下载
如对本电路存在疑问需与卖家交流,请讨论,卖家会第一时间给予答复;
如需对本电路进行投诉建议,请反馈给电路城,我们将在下一个工作日为您解决。
指纹应用方案设计及其他嵌入式方案设计
2015 年 03 月 06日
2015 年 03 月 10日
水榭藏锋购买了:
GeekWorld购买了:
水榭藏锋购买了:
GeekWorld购买了:
郝戈戈购买了:
郝戈戈购买了:
GeekWorld购买了:
GeekWorld购买了:
你尚未购买电路图,点击
进行购买!
苏州灵动帧格网络科技有限公司 版权所有.查看: 4673|回复: 25
主题帖子精华
新手上路, 积分 42, 距离下一级还需 8 积分
在线时间0 小时
原子哥你好,搞了几天指纹模块,通信无应答。。。能帮我看看么
问题用红字体标出了。。。
void uart_init(u32 bound){
&&& //GPIO端口设置
&&& GPIO_InitTypeDef GPIO_InitS
&&&&&USART_InitTypeDef USART_InitS
&& NVIC_InitTypeDef NVIC_InitS
&RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE);&//使能USART1,GPIOA时钟
&RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);&//使能USART1,GPIOA时钟
&&USART_DeInit(USART1);& //复位串口1
&USART_DeInit(USART2);& //复位串口2
& //USART1_TX&& PA.9
& //USART1_TX&& PA.2
&&& GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9|GPIO_Pin_2; //PA.2,PA.9
&&& GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
&&& GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;&//复用推挽输出
&&& GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化PA9PA2
&& //USART1_RX&& PA.10
&//USART2_RX& PA.3
&&& GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10|GPIO_Pin_3;
&&& GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入
&&& GPIO_Init(GPIOA, &GPIO_InitStructure);& //初始化PA10PA3
&& //USART 初始化设置
&USART_InitStructure.USART_BaudRate =//一般设置为9600;
&USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字长为8位数据格式
&USART_InitStructure.USART_StopBits = USART_StopBits_1;//一个停止位
&USART_InitStructure.USART_Parity = USART_Parity_No;//无奇偶校验位
&USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_N//无硬件数据流控制
&USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;&//收发模式
&&& USART_Init(USART1, &USART_InitStructure); //初始化串口1
&USART_InitStructure.USART_BaudRate = 57600;&//串口2波特率
&USART_Init(USART2, &USART_InitStructure); //初始化串口2
&& //Usart1 NVIC 配置
&&& NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
&NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//抢占优先级3
&NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;&&//子优先级3
&NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;&&&//IRQ通道使能
&NVIC_Init(&NVIC_InitStructure);&//根据指定的参数初始化VIC寄存器
&&& USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//开启中断
&&& USART_Cmd(USART1, ENABLE);&&&&&&&&&&&&&&&&&&& //使能串口
&USART_Cmd(USART2, ENABLE);&&&&
上面是在你的程序上改的,目的是初始化串口2,指纹同信要求是波特率57600,起始位低电平,8个数据位,1位停止位
接着是在主程序里面
&void main()
{&&&&u8 t=0;
&&&&&&&&delay_init();
&&&&&&&&Nvic_Configuration();
&&&&&&&&uart_init(9600);
&&&&&&&&delay_ms(1000);&//等待指纹模块稳定下来
&&&&&&&FINGERPRINT_Cmd_Get_Img();&//发送命令数据包
&&&&&&&FINGERPRINT_Recevice_Data(12);&&//接收指纹模块的应答数据,每次运行程序都会在这里死循环,出不来
&&&&&&&for(t=0;t&12;t++)&&&&&&&&//用串口1打印下来看。
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&printf("%ld",UART2_FINGERPRINT_RECEVICE_BUFFER[t]);&&&&
&&&&&&&&&&&&}
我在把那个发送和接收的子程序贴出来:
void FINGERPRINT_Cmd_Get_Img(void)//这个是发送命令的,录取指纹
&&& &&&&for(i=0;i&6;i++) //发送包头,循环6次
&&&&&&&&&&& {
&&&&&&&&&&&&&&& USART_SendData(USART2, FP_Pack_Head);//向串口2发送数据,usart_sendData这个调用的库里面现成的程序就不贴了
&&&&&&&&&&&&&&&&while(USART_GetFlagStatus(USART2,USART_FLAG_TC)!=SET);//等待发送结束
&&&&&& &&&&}&&
&&&&& for(i=0;i&9;i++) //发送命令 0x1d
&&&&&&&&&& {
&&&&&&&&&&&&&& USART_SendData(USART2, FP_Get_Img);//向串口2发送数据
&& &&&&&&&&&&&&while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
&&&&&&&&&&&&}&&&
这个是接收数据的:
void FINGERPRINT_Recevice_Data(unsigned char ucLength)
&&&&& unsigned char i=0;
&&&&&&&&& for (i=0;i&ucLi++)
&&&&&&&&&&&&&&{
& &&&&&&&&&&&&&&&&while( USART_GetFlagStatus(USART2, USART_FLAG_RXNE)!=SET);//接收缓存器非空,标志位一直都是0,咋办啊,纠结啊
&&&& &&&&&&&&&&&&UART2_FINGERPRINT_RECEVICE_BUFFER =USART_ReceiveData(USART2);
& &&&&&&&&&&&&}
&大家觉得问题可能出在哪里呢?小弟苦无头绪,打了半天字,哪怕给一个想法也是好的啊!!
主题帖子精华
新手上路, 积分 42, 距离下一级还需 8 积分
在线时间0 小时
自己太对自己失望了,弄了这么长时间不行,网上别人的程序一下,可以了
主题帖子精华
初级会员, 积分 100, 距离下一级还需 100 积分
在线时间0 小时
搞信号的麻药会用示波器啊
前方是绝路,希望在转角!
主题帖子精华
初级会员, 积分 121, 距离下一级还需 79 积分
在线时间5 小时
回复【2楼】通大Ahk1993:
---------------------------------
你好,我也在弄这个指纹模块,遇到了和你一样的问题,我也纠结很久了,请问这个问题怎样解决,谢谢了
主题帖子精华
新手上路, 积分 42, 距离下一级还需 8 积分
在线时间0 小时
回复【4楼】阿Q小狗:
---------------------------------
每发送一条命令出去指纹模块都会有应答,即使这个应答没有用,你也必须要接收它,不然你发送下一个命令时候,上一个命令的应答还在等着你去接收。。。
主题帖子精华
初级会员, 积分 121, 距离下一级还需 79 积分
在线时间5 小时
回复【5楼】通大Ahk1993:
---------------------------------
//&USART1&发送一个字节
void&USART1_SendByte(u8&temp)
{
USART_SendData(USART1,&temp);
&&& while(USART_GetFlagStatus(USART1,&USART_FLAG_TC)&!=&SET);
}
//&USART1&接收一个字节
u8&USART1_ReceivByte()
{
&&&&u8&
while(USART_GetFlagStatus(USART1,&USART_FLAG_RXNE)&==&RESET);
&&&&recev&=&USART_ReceiveData(USART1);
return&
}
void&FINGERPRINT_Cmd_Get_Img(void)&//FINGERPRINT_获得指纹图像命令
{
&&&&u8&i;
&&&&for(i=0;i&6;i++)&//发送包头
&&&&&& USART1_SendByte(FP_Pack_Head);
&&
&&&&for(i=0;i&6;i++)&//发送命令&0x1d
&&&&&& USART1_SendByte(FP_Get_Img);
for(i=0;i&12;i++)//读回应答信息
& dat=USART1_ReceivByte();
}
我用串口调试助手测试,总是dat【】没有接收到指纹模块返回的数据,我的USART1没有用中断方式接收,是直接接收的,请问是什么原因??
你能够把你所参考的程序的链接复制给我吗??我也去看看希望能够把程序改正确,真的非常感谢。
主题帖子精华
初级会员, 积分 121, 距离下一级还需 79 积分
在线时间5 小时
FP_Get_Img是数组&
u8&FP_Get_Img[6]&=&{0x01,0x00,0x03,0x01,0x0,0x05};&//获得指纹图像
主题帖子精华
新手上路, 积分 42, 距离下一级还需 8 积分
在线时间0 小时
回复【7楼】阿Q小狗:
---------------------------------
好久没登这个了,不知道你好搞不搞,需要加我qq
主题帖子精华
初级会员, 积分 150, 距离下一级还需 50 积分
在线时间23 小时
这个我未来要学....求哥们指教.....
主题帖子精华
新手上路, 积分 42, 距离下一级还需 8 积分
在线时间0 小时
回复【9楼】巴哈德:
---------------------------------
需要资料留下邮箱
主题帖子精华
初级会员, 积分 121, 距离下一级还需 79 积分
在线时间5 小时
回复【10楼】通大Ahk1993:
---------------------------------
,非常感谢哦
主题帖子精华
新手上路, 积分 42, 距离下一级还需 8 积分
在线时间0 小时
回复【11楼】阿Q小狗:
---------------------------
已发送
主题帖子精华
初级会员, 积分 121, 距离下一级还需 79 积分
在线时间5 小时
回复【12楼】通大Ahk1993:
---------------------------------
收到了,灰常感谢哦!!
主题帖子精华
初级会员, 积分 150, 距离下一级还需 50 积分
在线时间23 小时
回复【10楼】通大Ahk1993:
---------------------------------
&&谢谢大哥...
主题帖子精华
新手上路, 积分 22, 距离下一级还需 28 积分
在线时间0 小时
回复【2楼】通大Ahk1993:
---------------------------------
亲,我也遇到一样的问题,返回的应答包12个字节全一样,发你短信了,望速回
主题帖子精华
新手上路, 积分 42, 距离下一级还需 8 积分
在线时间0 小时
我这边有指纹识别模块,可支持解决各位遇到的问题
●指纹感应灵敏,识别速度快,适应性强
●提供简便实用通讯协议,方便二次开发应用
●开发方便,操作简单,并配有PC机演示、学习软件、相关工具
●提供单片机C语言、VC、C#、QT、WINCE、LINUX、android等多种系统,多种开发语言
●可定制韦根24,韦根26等通讯接口和功能
微型打印机,RFID读卡模块,指纹识别模块
http://ez-
主题帖子精华
新手上路, 积分 48, 距离下一级还需 2 积分
在线时间0 小时
@正点原子&&&一个指纹图像不可能就6个字节吧?!!
主题帖子精华
金钱107580
在线时间706 小时
回复【17楼】lebuhe:
---------------------------------
我没搞过。
我是开源电子网站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子
主题帖子精华
新手上路, 积分 21, 距离下一级还需 29 积分
在线时间0 小时
while(&USART_GetFlagStatus(USART2,&USART_FLAG_RXNE)!=SET);
你没开启串口2的接收中断啊,开启接收中断试试
主题帖子精华
新手上路, 积分 39, 距离下一级还需 11 积分
在线时间3 小时
回复【10楼】通大Ahk1993:
---------------------------------
&
大神指教
主题帖子精华
新手上路, 积分 21, 距离下一级还需 29 积分
在线时间0 小时
,求楼主给发个资料
主题帖子精华
新手上路, 积分 22, 距离下一级还需 28 积分
在线时间0 小时
回复【10楼】通大Ahk1993:
---------------------------------
我也很需要指纹的资料,也想认识您&有问题可以互相帮助下。谢谢!
主题帖子精华
新手上路, 积分 22, 距离下一级还需 28 积分
在线时间0 小时
回复【13楼】阿Q小狗:
---------------------------------
我也很需要指纹的资料,我弄了好多天,都没信心了,希望能认识您&有问题时可互相帮助。我的邮箱是&谢谢了!
主题帖子精华
新手上路, 积分 39, 距离下一级还需 11 积分
在线时间0 小时
楼主,你在网上找的指纹识别程序还有吗?
?能给我发一份吗,我的添加一个用户调不通,我想看看,调了好久了
?
主题帖子精华
新手上路, 积分 42, 距离下一级还需 8 积分
在线时间0 小时
毕业好久,指纹资料没了,邮箱里附件也早过期了,以前发过给这个人,,朝他要吧。
主题帖子精华
新手上路, 积分 7, 距离下一级还需 43 积分
在线时间0 小时
&&谢谢大侠有51的话随便发下51的我也卡住了,没有发stm31也感谢
Powered by分享给朋友:通用代码: <input id="link4" type="text" class="form_input form_input_s" value="" />复 制flash地址: 复 制html代码: <input type="text" class="form_input form_input_s" id="link3" value="" />复 制分享视频到站外获取收益&&手机扫码分享视频二维码2小时内有效利用STM32F103操作指纹识别模块下载至电脑扫码用手机看用或微信扫码在手机上继续观看二维码2小时内有效利用STM32F103操作指纹识别模块扫码用手机继续看用或微信扫码在手机上继续观看二维码2小时内有效,扫码后可分享给好友没有优酷APP?立即下载请根据您的设备选择下载版本
药品服务许可证(京)-经营- 节目制作经营许可证京字670号 请使用者仔细阅读优酷、、Copyright(C)2017 优酷
版权所有不良信息举报电话:STM32的条状指纹采集与拼接系统
查看: 369|
摘要: 针对移动嵌入式应用,设计并实现了一种基于STM32的条状指纹实时采集与拼接系统。选用STM32F103RD作
为主控器件,通过SPI接口以DMA方式获取AES1711传感器采集到的条状指纹,并采用快速算法拼接成完整的指纹图
像。实验结果表明,本系统具有速度快、鲁棒性好、功耗低、性价比高的特点,可方便地应用在移动嵌入式设备中。
& 敬请登录网站在线投稿 2012 年第11 期   53  
STM32的条状指纹采集与拼接系统*
* 基金项目:浙江省教育厅科研项目(项目编号:Y201121851)。
王燕1,戴剑峰2,王祥华1
(1.浙江机电职业技术学院电气电子工程学院,杭州310053;2.浙江金丽温高速公路有限公司)
摘要:针对移动嵌入式应用,设计并实现了一种基于STM32的条状指纹实时采集与拼接系统。选用STM32F103RD作
为主控器件,通过SPI接口以DMA方式获取AES1711传感器采集到的条状指纹,并采用快速算法拼接成完整的指纹图
像。实验结果表明,本系统具有速度快、鲁棒性好、功耗低、性价比高的特点,可方便地应用在移动嵌入式设备中。
关键词:STM32;指纹采集;指纹拼接;指纹传感器
中图分类号:TP391    文献标识码:A
Swipe Fingerprint Capture and Mosaicking System Based on STM32
Wang Yan1,Dai Jianfeng2,Wang Xianghua1
(1.College of Electrical &Electronics Engineering,Zhejiang Institute of Mechanical and Electrical Engineering,
Hangzhou 310053,China;2.Zhejiang Jin-Li-Wen Highway Co.,Ltd.)
Abstract:For mobile embedded system applications,a swipe fingerprint capture and mosaicking system based on STM32is designed and
realized.STM32F103RD is used as main controller,the swipe fingerprint is captured from AES1711by DMA through SPI interface,
and then the fast algorithm is used to realize fingerprint mosaicking.Experimental results show that the system has fast speed,good robustness,
low power consumption and high cost-effectiveness,so it can be used in mobile embedded devices.
Key words:STM32;fingerprint capture;fingerprint mosaicking;fingerprint sensor
指纹识别作为生物认证中可靠性较高、方便性较好、
性价比较高的一种技术,已经得到了全面的应用。指纹采
集是指纹识别的重要组成,其核心硬件就是指纹传感器。
随着移动嵌入式设备自身体积越来越小,以及对成本和功
耗的更高要求,指纹传感器也向着小型化方向发展。其中
条状指纹传感器(也称为刮擦式传感器)具有体积小、价格
低、无指纹残留等优点,在移动嵌入式领域得到越来越多
的应用。条状指纹传感器是一种窄条形半导体传感器,无
法一次性采集到完整的指纹图像,要求连续采集划过传感
器表面的手指指纹,并对采集到的窄条状指纹图像序列进
行拼接,从而形成完整的指纹图像。
本系统采用STM32F103RD处理器作为主控器件,采
用AES1711条状指纹传感器作为采集设备,实现对指纹
的实时采集和快速拼接,具有速度快、鲁棒性好、功耗低、
性价比高的特点,可方便地应用在移动嵌入式系统中。此
外,本系统兼顾考虑后续指纹识别的应用需求,无需增加
硬件设备即可实现对采集到的指纹进行特征提取和识别。
1 系统硬件设计
1.1 条状传感器
AES1711是AuthenTec公司推出的第4代低成本、
高性能条状指纹传感器,具有功耗低、鲁棒性高、耐用性
好、体积小的特点,非常适合对体积要求较高的移动嵌入
式应用。AuthenTec专有的TruePrint指纹成像技术可实
现活体手指检测,同时可很好地适应干、湿指纹,最大支持
50cm/s的手指移动速率。传感器采用42脚BGA封装,
具有大小为6.5mm×0.41mm、500ppi解析度的128×8
的像素阵列,传感器体积仅为12mm×5.2mm×1.76
mm。AES1711在进行图像采集时功耗仅为23mA,而在
以250ms进行指纹检测时的平均功耗更低至8μA。
AES1711与主控数据通信可采用并行或SPI串行方式,
方便灵活,可适应多种主控系统。
1.2 主控芯片
本系统采用ST公司STM32F103系列处理器作为主
控芯片。STM32F103采用ARM 32位Cortex-M3内核,
具有功耗低、体积小、性价比高的特点,最高工作频率为
72MHz,在存储器0等待周期访问时可达1.25DMIPS/
54  Microcontrollers &Embedded Systems  2012 年第11 期www.mesnet.com.cn 
MHz。STM32F103具备12通道DMA控制器,可支持定
时器、ADC、DAC、SDIO、I2S总线、SPI、I2 C总线和UART
的DMA操作。
考虑采用AES1711进行指纹采集得到的指纹图像为
128×8像素阵列,限定拼接后的指纹高度最大为288像
素,假设手指在采集过程中最大存在64像素的横向位移,
则指纹图像缓存一共为288×(128+64)B=54KB。采用
SPI DMA模式进行数据传输时,需要开辟双缓存共128×
8×2B=2KB,因此系统缓存一共为56KB。系统同时兼
顾考虑后续指纹识别的需求,以500枚指纹容量作为设计
目标,如模板文件为512B,则需要250KB的Flash ROM
空间。综合考虑以上需求,选择STM32F103RD作为本系
统的主控。STM32F103RD具有64KB RAM 和384KB
的Flash ROM 空间,在满足本系统开销的同时,可满足小
容量指纹识别系统的需求。系统工作在72MHz,可满足实
时采集和拼接的需求,同时也可满足后续指纹识别的需求。
1.3 系统连接
STM32F103RD和AES1711 的连接如图1 所示。
STM32F103RD通过GPIO口实现对AES1711RESET的
控制,AES1711采用SPI方式和STM32F103RD进行连
接通信,使用两组SPI。其中一组为AES1711 向
STM32F103RD传送数据使用,该组SPI数据量较大,采
用AES1711Master方式,利用主控SPI2接口,用DMA
方式进行。通过DMA 方式,主控和AES1711之间最高
可以实现12Mbps的传输速率,在进行DMA 数据传输
时,STM32F103RD同时可进行如拼接等其他进程的处
理,大幅度提高效率。另外一组SPI为STM32F103RD向
AES1711传送指令使用,因为数据量较小,这里采用普通
GPIO口进行模拟。
图1 STM32F103RD和AES1711连接图
2 系统软件设计
2.1 软件总体设计
系统上电后,进行初始化,并进入低功耗等待阶段。
在低功耗阶段,采用低速检测手指,即间隔一段较长时间
发送一次手指检测指令,如果检测到有手指,则提高指纹
采集的频率,进入指纹采集及拼接流程,否则继续等待一
段时间后再次检测。软件总体流程如图2所示。
图2 软件总体流程图
为提高指纹采集和拼接的效率,将指纹的帧采集和拼
接作为两个线程进行并行处理。由于指纹的采集采用
SPI的DMA方式进行,因此MCU 可以以较少的时间来
介入查询采集是否结束,大部分时间用在复杂度较高的拼
接部分。指纹采集的第一帧因为还没有得到可以拼接的
数据,而拼接的最后一帧不需要再进行指纹序列的采集,
因此这两个部分的操作是相对独立的。而其他时刻,指纹
的第N帧采集和第N-1帧的拼接是并行进行的。由于
采用DMA方式进行数据传送,采集和拼接并行处理,需
要两个指纹帧Buffer来存储采集到的指纹帧数据,其中一
个供采集使用,另外一个供拼接使用,在进行完一次采集
和拼接的并行操作后,对两个Buffer进行交换使用。
指纹采集的结束有两种条件,一种为手指离开传感器
(即不再检测到指纹),另一种为达到设定的最大指纹有效
高度(这里设为288像素,可包含较大指纹有效面积)。当
达到上述条件的任何一个时,可判断指纹采集结束。指纹
采集和拼接完成后,对拼接完成后的指纹图像进行有效性
判断,如果为有效指纹图像,则进行输出,否则放弃并给出
出错提醒。
2.2 指纹拼接
由于环境的差异,采集到的指纹序列可能引入一定的
噪声。为了消除噪声带来的差异,需要对指纹序列进行
2D高斯滤波,模板为:
1 2 1
2 4 2
1 2 1燅
  滤波后的指纹序列,根据灰度纹理信息进行匹配搜
索,由于采集环境的差异,需进行一定处理以适应灰度值
 敬请登录网站在线投稿 2012 年第11 期   55  
差异。这里采用MAD准则对第N帧和第N-1帧进行
匹配,具体如下:
Mad(u,v)= 1
j=0|pN(i,j)-pN-1(i+u,j+v)-
pmeanN+pmeanN-1|
式中H和W 分别为灰度匹配区的像素高度和宽度,
pN(i,j)为第N帧指纹在(i,j)处的灰度值,pN-1(i+u,j+v)
为第N-1帧指纹经过(u,v)位移后在(i,j)处的灰度值,
pmeanN
和pmeanN-1
为第N帧和第N-1帧的图像灰度平
均值。为了节约存储空间,第N-1帧指纹序列从目标指
纹图像缓存中提取。指纹拼接流程如图3所示。
图3 指纹拼接流程图
实际使用中,手指在划过传感器时,大部分情况下滑
动方向是单调一致的,且速度差异不大,因此指纹各帧之
间的运动趋势具有很强的相关性。为提高指纹拼接的速
度,可以采用运动估计来获取初始参考点的位置,从而达
到提高搜索效率的目的。具体实施时,如第N-1帧搜索
到最佳匹配位置后,将该位置相对原点的位移(Vx,Vy)记
为运动矢量,作为第N帧的搜索起点。匹配搜索时,利用
单调一致性,可以采用八邻域模板进行搜索,即搜索参考
点的8个邻域,取MAD最小的点作为匹配点再次进行搜
索。若本次搜索最佳匹配点为参考点,则搜索结束,若搜
索范围超过8,则也认为搜索结束。八邻域搜索模板如
图4所示。
2.3 指纹有效性和后处理
指纹采集和拼接结束后,需要对指纹图像进行有效性
判断,AES1711采集到的指纹图像宽度较窄(128像素),
如果指纹高度较小,则这枚采集到的指纹图像包含的特征
图4 八邻域搜索模板
信息量很少,后续的指纹特征提取和识别就不能很好地进
行,因此当采集到的指纹高度小于一定值时,则认为指纹
图像无效。这里定义指纹最小高度为192,即拼接后的指
纹高度低于192像素,则视为无效图像进行丢弃处理。
目标指纹图像的后处理根据需要进行,如应用为指纹
识别,因其自身带图像前处理,则采集和拼接过程中可不
进行后处理,如应用为指纹采集,则可加入指纹后处理。
后处理在完成整枚图像的采集和拼接后进行,主要包括去
噪、规定化、均衡化处理等。
3 实验结果
在搭建好的硬件平台上进行实验,实验结果表明,本
系统能完成实时采集和拼接,同时对干、湿指纹具有较好
的适应性。STM32F103RD工作在72MHz时,手指以45
~50cm/s的速率划过AES1711表面,系统能较好地完成
拼接。其中两枚指纹经拼接结果如图5所示。
图5 指纹拼接结果
由STM32F103RD和AES1711构成的指纹采集和拼
接系统,具有体积小、速度快、鲁棒性好、功耗低、性价比高
的特点,可以满足实时嵌入式系统的需求,特别是对成本
和体积要求比较严格的移动嵌入式系统。59
 敬请登录网站在线投稿 2012 年第11 期   59  
struct camera_buffer buffer;
struct camera_channel channel[8];
struct camera_picture picture;
struct camera_mmap mmap;
struct camera_mbuf mbuf;
unsigned char*map;
typedef struct_videocapture_struct camera_device;
camera_get_capability():通过调用ioctl()函数取得
设备文件的相关信息,并存放到camera_capability结
camera_get_picture():通过调用ioctl()函数取得图像
相关信息,并存放到camera_picture结构里。
camera_capture():用来抓取图像,采用mmap方式,
直接将设备文件/dev/video0映射到内存,加速文件I/O
操作,共享内存通信。
camera_timer:设定一个定时器,用于控制视频设备
采集图像的时隙。
picture_save():保存采集的图片。
picture_num():对保存的图片计数,设定一个最大
值,每当该计数器达到最大值时,调用删除图片函数picture
_del(),一次性将已发送的几张图片删除。
camera_close():用来关闭视频设备。
对于视频处理来说,采用QNX+OMAP处理器的解
决方案是个不错的选择。由于视频编解码算法实现需要
大流量的计算,使用OMAP3530 开发平台,利用
OMAP3530的DSP芯片来完成视频编解码,可以较好地
提高编解码的速率;同时,QNX实时操作系统的编程接口
符合POSIX标准,可移植性较强,可支持多种视频格式编
[1]Texas Instruments.Codec Engine Application Developer
Users Guide[EB/OL].[2007-11]http://www-s.ti.com/
sc/techlit/sprue67.
[2]Texas Instruments.Codec Engine Server Integrator Users
Guide[EB/OL].[2007-09]http://www-s.ti.com/sc/techlit/
sprued5.
[3]Texas Instruments.Codec Engine Algorithm Creator Users
Guide[EB/OL].[2007-09]http://www-s.ti.com/sc/techlit/
sprued6.
[4]QNX.Getting Started with QNX Neutrino:A Guide for Realtime
 Programmers[EB/OL][2011-05].http://www.qnx.
[5]毕厚杰.新一代视频压缩编码标准-H.264/AVC[M].北京:
人民邮电出版社,2005.
冯柯(硕士研究生)、杨斌(教授),主要研究方向为单片机与嵌入式
系统及其应用。
(责任编辑:梅栾芳 收稿日期:2012-06-08)
  《单片机与嵌入式系统应用》为中国科技核心期刊
(月刊),每月1日出版。邮发代号:2-765。每期定价12元,
全年144元(若经本刊邮购每期另加邮资2元)。
欢迎广大读者订阅。
地址:北京市海淀区学院路37号《单片机与嵌入式系统应用》杂志社
邮编:100191  电话:010-82338009  传真:010-82317043
开户银行:北京银行学院路支行
户名:《单片机与嵌入式系统应用》杂志社有限公司
账号:010903391001201110299-36
网址:www.mesnet.com.cn
Email:mesnet@mesnet.com.cn
55  参考文献
[1]张永良,张杰,吴鸿滔,等.基于扩展相位相关的滑动指纹序
列拼接[J].上海交通大学学报,2006,40(3):471-475.
[2]迟冬祥.条形指纹的实时拼接算法与DSP实现[J].计算机工
程与应用,2008,44(7):169-171.
[3]刘青霞,李见为.基于一种刮擦式传感器的指纹采集与图像
重组[J].电子技术应用,2007(11):23-25.
[4]Rafael C Gonzalez,Richard E Woods.数字图像处理[M].2
版.北京:电子工业出版社,2010.
[5]章毓晋.图像工程(上册):图像处理[M].2版.北京:清华大
学出版社,2006.
王燕(讲师),主要研究方向为智能图像处理。
(责任编辑:高珍 收稿日期:2012-07-20)】优领域
Copyright &

我要回帖

更多关于 小米note3自带贴膜吗 的文章

 

随机推荐