- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于ARM的指纹锁
基于ARM的指纹锁
摘要:指纹锁是一种智能锁具,指纹锁是通过电子部件及机械部件的精密组合而生产出的安全产品指纹锁最本质的无非是安全、便捷、时尚三个方面。
图1 系统总体框图
2、工作原理:
当按下注册按键K1时,如果你把手指放到指纹模块上,指纹背景灯会闪三次,分三次进行采集,如果采集成功灯LED1亮,否则,灯不亮。但是,在未按下注册按键K1时,如果把手指放到了指纹模块上,则指纹模块无响应。如果注册成功后,再次把手放到指纹模块上,指纹模块开始进行比对指纹,如果该指纹注册过,则灯LED2亮,门开,否则灯LED2不亮,门也不能够被打开。当再次按下注册按键K1时,可以注册第二个用户,即,多次按下注册按键K1可以注册多个用户。当按下删除按键K2时,可以清空所有的用户,同时,LED3灯亮,表明删除成功,如果此时再次将手指放到指纹模块上,则指纹模块无响应。如果按下删除按键K2后,灯LED3不亮,则说明删除用户没有成功。系统工作流程图如图2所示:
图2 系统流程图
指纹模块
本次设计我们采用指纹模块SX-T13,由于采用3.3VTTL串口与模块进行通信,因此接电脑时需要电平转换,该模块可以存储304个有效用户,其算法的比对速度可以达到250个用户每秒,波特率默认为115200bps,1个停止位,1个起始位,各引脚功能如下:
1橙色线:(V_TOUCH光学供电引脚3.3V)
2白色线:(TOUCH_OUT信号,活体检测)
3绿色线:(VCC系统供电接3.3V)
4灰色线:(TXD串行数据发送)
5黑色线:(RXD串行数据接收)
6红色线:(GND系统地线)
需要注意的是V_TOUCH需要一直供电,其中TOUCH_OUT为活体信号输出,高电平为活体检测真,低电平为活体检测假。该模块的数据格式如表1所示:
表1 SX-T13数据格式
Byte 1 2 3 4 5 6 7 8 CMD 0xF5 TYPE P1 P2 P3 0 CHK 0xF5 ACK 0xF5 TYPE Q1 Q2 Q3 0 CHK 0xF5
其中,CMD为主控端发送的数据,ACK为SX-T13从端返回的数据,Q3用来返回命令执行的结果,因此,我们只需对Q3进行判断,就可以实现用户的注册、比对及删除命令。
程序分析
本次设计主要用到了串口通信,按键中断,LED灯显示,DMA等,首先我们来分析一下各项配置,4个LED灯分别是GPIO_C的0,1,2,3脚,低电平灯亮,高电平灯灭,引脚模式为通用推挽输出,引脚速率为50MHz。串口配置主要是PA9和PA10,其中PA9我们采用复用输出,PA10我们采用浮空输入模式,这两个引脚分别用来发送和接收数据,由于指纹模块采用SX-T13,因此波特率我们设置为115200,数据长度为8b,停止位设置为1位,串口中断我们采用的组别为2,抢占优先级与副优先级均设置为0,由于DMA用来发送数据,且方向是从内存到外设,因此,内存地址自增,外设地址不增,DMA模式我们设置为不断循环模式,也就是将8b数据循环发送出去。配置中段时,我们先为两个按键的I/O口进行配置,由于开发板上的两个按键与PA1和PA4两口相连,因此我们为PA1和PA4配置为上拉输入和浮空输入模式,我们配置了三个中断线1,2,4,其中中断线1,2为下降沿中断,这是由于当按下按键瞬间,由高电平变为低电平,所以采用下降沿中断,中断线4采用上升沿中断是因为当指纹模块检测到有活体信号时由低电平变为高电平的缘故。 中断优先级的配置是中断线1的抢占优先级为1,副优先级为2;中断线2的抢占优先级为1副优先级为3;中断线4的抢占优先级为1,副优先级为0.接收数据时采用串口中断,通过判断RANE寄存器非空来每接收8b数据进行一次清空。程序的工作流程为:上电后LED4闪烁,当按下K1后,LED4处于亮或者灭的状态,不再闪烁,说明触发了中断,现在如果将手指放到指纹模块上,就可以进行注册操作了,注册完成后LED1闪烁一次,跳出中断,LED4继续闪烁,如果此时再次将手指放到指纹模块上,LED4又停在了亮或者灭的状态,说明又一次触发中断,现在是处于比对指纹状态,如果比对成功,LED2闪烁一次,之后跳出中断,LED4继续闪烁,当按下K2后,再次触发中断,LED4又一次停在了亮或者灭的状态,如果删除用户成功的话,LED3闪烁一次,之后跳出中断,程序的整个工作过程就是这样的,其主要原理就是通过按键来触发中断,以此来进行各项工作的。
调试过程分析
在本次课程设计的调试过程中我们主要用到了串口调试器,指纹模块和ARM开发板,由于指纹模块采用SX-T13,因此我们将串口调试器的
文档评论(0)