指纹识别模块
ATK-AS608 指纹识别模块是 ALIENTEK 推出的一款高性能的光学指纹识别模块。芯片内置 DSP 运算单元,集成了指纹识别算法,能高效快速采集图像并识别指纹特征。模块配备了串口、USB 通讯接口,用户无需研究复杂的图像处理及指纹识别算法,只需通过简单的串口、USB 按照通讯协议便可控制模块。本模块可应用于各种考勤机、保险箱柜、指纹门禁系统、指纹锁等场合。
模块引脚功能说明
序号 名称 说明
1 Vi 模块电源正输入端。
2 Tx 串行数据输出。 TTL 逻辑电平
3 Rx 串行数据输入。 TTL 逻辑电平
4 GND 信号地。内部与电源地连接
5 WAK 感应信号输出,默认高电平有效
6 Vt 触摸感应电源输入端,.3v 供电
7 U+ USB D+
8 U- USB D-
![ddcef0243cde3e62e0cd8c3c8be14957.png](https://i-blog.csdnimg.cn/blog_migrate/8235ac95e52f0238eb43eb2484669d23.jpeg)
在这里,我们只需要使用到其4个引脚,引脚1,2,3,4.
模块指令格式
模块指令格式分为三种:命令包格式、数据包格式、结束包格式。
命令包格式如图
![ae0bd2894f17e4b7bb6795bfd1ac400e.png](https://i-blog.csdnimg.cn/blog_migrate/2d82f3ec56b8b96952b31533567d0cb0.jpeg)
数据包格式如图
![a91e7b8d9d3c5d9c8e8abd65ec940996.png](https://i-blog.csdnimg.cn/blog_migrate/107204213070a6413901853f53d48bae.jpeg)
结束包格式如图
![0a5dbb3a25903b12de5a4efa3028c387.png](https://i-blog.csdnimg.cn/blog_migrate/ad888b925bfa6bbb57f346a6def66338.jpeg)
·发送给模块和接收模块的数据包格式完全相同
·数据包不是单独发送和接收,必须是发送指令包之后或接收了应答包的后面
·包长度=包长度至校验和(指令,参数或数据)的总字节数,包含校验和,但不包含包长度本身字节数
·校验和是从包标识至校验和之间所有字节之和
·模块地址在没有生成之前是缺省的0xFFFFFFFF,一旦上位机通过指令生成了模块地址,则所有的数据包必须按照生成的地址收发。模块将拒绝地址错误的数据包
常用指令集
录入图像 PS_GetImage
功能说明: 探测手指,探测到后录入指纹图像存于 ImageBuffer。返回确认码表示:录入成功、无手指等。
输入参数: none
返回参数: 确认字
指令代码: 01H
指令包格式:
![6669f50785aa0e1d25dd782a932c7cf8.png](https://i-blog.csdnimg.cn/blog_migrate/b4f47aa7d889abb627a2e081f15b4dc1.jpeg)
应答包格式:
![17951bd48281bcae9037aabd2fe85dea.png](https://i-blog.csdnimg.cn/blog_migrate/c4e613b6a7abdae65e3ef97569de71fe.jpeg)
注:确认码=00H 表示录入成功;
确认码=01H 表示收包有错;
确认码=02H 表示传感器上无手指;
确认码=03H 表示录入不成功;
sum 指校验和
生成特征PS_GetChar
功能说明: 将 ImageBuffer 中的原始图像生成指纹特
征文件存于 CharBuffer1 或 CharBuffer2
输入参数: BufferID(特征缓冲区号)
返回参数: 确认字
指令代码: 02H
指令包格式:
![09f9571b4849f20d172a1818858148f6.png](https://i-blog.csdnimg.cn/blog_migrate/d4bd73f6c15ea207ffb3ff11b71749fd.jpeg)
注:缓冲区 CharBuffer1、CharBuffer2 的 BufferID 分别为 1h 和 2h,如果指定
其他值,按照 CharBuffer2 处理
应答包格式:
![b701f3a58ee34dd1c98444700559b9cf.png](https://i-blog.csdnimg.cn/blog_migrate/e22625805e953fe9531ab411c752e768.jpeg)
注:确认码=00H 表示生成特征成功;
确认码=01H 表示收包有错;
确认码=06H 表示指纹图像太乱而生不成特征;
确认码=07H 表示指纹图像正常,但特征点太少而生不成特征;
确认码=15H 表示图像缓冲区内没有有效原始图而生不成图像;
sum 指校验和
注:剩下的需要用到的指令集限于篇幅未列出来,留下邮箱私发。
按键电路设计
按键接口设计有两种方法,独立式按键和矩阵式键盘。独立式按键各键相独立,每个按键各接入一根输入线,只要检测输入线的电平就可以识别按键状态。这种方法电路配置灵活,软件结构简单,但每个按键需占用一根输入口。由于该设计方案IO资源浪费大。故此方法只适用于按键少或其他控制功能很简单的场合。由于本设计中的按键较多,考虑系统可靠性和键盘设计的简单所以采用矩阵按键。为了节省设计所需要时间,本人直接采用了一个4*4矩阵按键模块如图3-9。按键按下是呈低电平,我们采用软件消抖来减少对的单片机影响。
![13a9e9167113ce9aca5d16a2545fe0e4.png](https://i-blog.csdnimg.cn/blog_migrate/d3c4827ae396b01573f114286650a820.jpeg)
矩阵键盘的检测方法有多种,常见的有:逐点扫描法、逐行扫描法、全局扫描法。
在本实例中我们采用逐行扫描法来实现按键检测,其中P1.4-P1.7作为列线,P1.0-P1.3作为行线。识别过程如下:
1、判断键盘中是否有键按下。设置所有行线为输出口,并输出低电平;设置列线为输入口,读取列线上的电平状态,只要有一列的电平为低,就表示有按键按下,并且被按下的键位于电平为低的列线与4跟行线相交叉的4个按键中,若所有列线都为高电平,表示没有按键按下;
2、判断被按下按键所在的位置。在确认有键按下后(进行按键消抖处理后),接下来就是确定具体哪个案件被按下,方法是:依次将每根行线设置为输出口,并输出低电平(同时剩余行线输出高电平),然后逐列检查每根列线的电平状态,若某列为低电平,则该列线与设置为输出低电平的行线交叉处的按键就是被按下的按键。
3、按键位置确定后,接下来就要给矩阵键盘中的每个按键进行编号,也就是进行按键编码,程序设计中常用计算法和查表法两种方式对按键进行编码,本实例采用计算法编码。
E2PROM AT24C02模块设计
24C02引脚说明
![f0f394b663f21f8945f2e2fa77217c5d.png](https://i-blog.csdnimg.cn/blog_migrate/9ec6cc4b5674d0b63c521095c6da6c16.jpeg)
24C02与单片机接口电路
![f49dd6b8f33ec2794a5a58f829c5f1ee.png](https://i-blog.csdnimg.cn/blog_migrate/7fd36a1c04cd33c57d9c2a50386ba8bd.jpeg)
以上包括前一篇文章是全部的硬件设计内容。附硬件原理图如下:
![0442d893458ec6b9cc8a47f6096b80d4.png](https://i-blog.csdnimg.cn/blog_migrate/5084d145bc104a988c6c7c59092a2fc1.jpeg)