AS608光学指纹模块

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第8天,点击查看活动详情

AS608指纹模块简介

AS608是我们在日常的嵌入式开发中经常使用的一款指纹识别模块。AS608指纹识别模块配备了串口、USB 通讯接口,使用者无需研究复杂的图像处理及指纹识别算法,只需通过简单的串口、USB 按照通讯协议便可控制模块。AS608模块可应用于各种考勤机、保险箱柜、指纹门禁系统、指纹锁等场合。

AS608指纹模块实物图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

AS608指纹模块原理图


可以看到AS608引出的管脚主要为:

管脚 描述
Vi 模块电源正输入端。
Tx 串行数据输出。 TTL 逻辑电平
Rx 串行数据输入。 TTL 逻辑电平
GND 信号地。内部与电源地连接
WAK 感应信号输出,默认高电平有效(用户可读取状态引脚(WAK)判断有无手指按下)
Vt 触摸感应电源输入端,.3v 供电
U+ USB D+
U- USB D-

系统资源

  • 缓冲区与指纹库
    系统内设有一个 72K 字节的图像缓冲区与二个 512bytes 大小的特征文件缓冲区,名字分别称为:ImageBuffer,CharBuffer1 和 CharBuffer2。用户可以通过指令读写任意一个缓冲区。
    CharBuffer1 或 CharBuffer2 既可以用于存放普通特征文件也可以用于存放模板特征文件。通过 UART 口上传或下载图像时为了加快速度,只用到像素字节的高 4 位,即将两个像素合
    成一个字节传送。通过 USB 口则是整 8 位像素。
    指纹库容量根据挂接的 FLASH 容量不同而改变,系统会自动判别。指纹模板按照序号存放,序号定义为:0—(N-1)(N 为指纹库容量)。用户只能根据序号访问指纹库内容。
  • 用户记事本
    系统在 FLASH 中开辟了一个 512 字节的存储区域作为用户记事本,该记事本逻辑上被分成 16 页,每页 32 字节。上位机可以通过 PS_WriteNotepad 指令和 PS_ReadNotepad 指令
    访问任意一页。注意写记事本某一页的时候,该页 32 字节的内容被整体写入,原来的内容被覆盖。
  • 随机数产生器
    系统内部集成了硬件 32 位随机数生成器(不需要随机数种子),用户可以通过指令让模块产生一个随机数并上传给上位机。

特性参数

软件开发指南

  • 模块地址(大小:4bytes,属性:读写)
    模块的默认地址为0xFFFFFFFF,可通过指令修改,数据包的地址域必须与该地址相配,命令包/数据包才被系统接收。注:与上位机通讯必须是默认地址 0xFFFFFFFF!
  • 模块口令(大小:4bytes,属性:写)
    系统默认口令为 0,可通过指令修改。若默认口令未被修改,则系统不要求验证口令,上位机和 MCU 与芯片通讯;若口令被修改,则上位机与芯片通讯的第一个指令必须是验证口令,只有口令验证通过后,芯片才接收其它指令。注:不建议修改口令!
  • 数据包大小设置(大小:1bytes,属性:读写)
    发送数据包和接收数据包的长度根据该值设定。
  • 波特率系数 N 设置(大小:1bytes,属性:读写)
    USART 波特率=N×9600,N=112。 4.安全等级 level 设置(大小:1bytes,属性:读写)
    系统根据安全等级设定比对阀值,level=1
    5。安全等级为 1 时认假率最高,拒认率最低。安全等级为 5 时认假率最低,拒认率最高。

模块指令格式

模块指令格式分为三种:命令包格式、数据包格式、结束包格式。

  • 发送给模块和接收模块的数据包格式相同。
  • 数据包不是单独发送和接收,必须是发送指令包之后或接收了应答包的后面。
  • 包长度=包长度至校验和(指令、参数或数据)的总字节数,包含校验和,但不包含包长度本身的字节数。
  • 校验和是从包标识至校验和之间所有字节之和。
  • 模块地址在没有生成之前为缺省的 0xFFFFFFFF,一旦上位机通过指令生成了模块地址,则所有的数据包都必须按照生成的地址收发。模块将拒绝地址错误的数据包。
  1. 数据包格式
  2. 数据包格式
  3. 结束包格式

模块应答格式

应答是将有关命令执行情况与结果上报给上位机,应答包含有参数,并可跟后续数据包。上位机只有在收到模块的应答包后才能确认模块收包情况与指令执行情况。模块应答包中包含一个参数:确认码。确认码表示执行指令完毕的情况。
模块应答格式如图所示:
模块应答格式
确认码定义:
00H:表示指令执行完毕或 OK;
01H:表示数据包接收错误;
02H:表示传感器上没有手指;
03H:表示录入指纹图像失败;
04H:表示指纹图像太干、太淡而生不成特征;
05H:表示指纹图像太湿、太糊而生不成特征;
06H:表示指纹图像太乱而生不成特征;
07H:表示指纹图像正常,但特征点太少(或面积太小)而生不成特征;
08H:表示指纹不匹配;
09H:表示没搜索到指纹;
0aH:表示特征合并失败;
0bH:表示访问指纹库时地址序号超出指纹库范围;
0cH:表示从指纹库读模板出错或无效;
0dH:表示上传特征失败;
0eH:表示模块不能接受后续数据包;
0fH:表示上传图像失败;
10H:表示删除模板失败;
11H:表示清空指纹库失败;
13H:表示口令不正确;
15H:表示缓冲区内没有有效原始图而生不成图像;
18H:表示读写 FLASH 出错;
19H:未定义错误;
1aH:无效寄存器号;
1bH:寄存器设定内容错误号;
1cH:记事本页码指定错误;
1dH:端口操作失败;
1eH:自动注册(enroll)失败;
1fH :指纹库满

常用指令集

指令码 函数名 功能描述
01H PS_GetImage 从传感器上读入图像存于图像缓冲区
02H PS_GenChar 根据原始图像生成指纹特征存于 CharBuffer1 或CharBuffer2
03H PS_Match 精确比对 CharBuffer1 与 CharBuffer2 中的特征文件
04H PS_Search 以 CharBuffer1 或 CharBuffer2 中的特征文件搜索整个或部分指纹库
05H PS_RegModel 将 CharBuffer1 与 CharBuffer2 中的特征文件合并生成模板存于 CharBuffer1 与 CharBuffer2
06H PS_StoreChar 将特征缓冲区中的文件储存到 flash 指纹库中
0CH PS_DeletChar 删除 flash 指纹库中的一个特征文件
0DH PS_Empty 清空 flash 指纹库
0EH PS_WriteReg 设置系统参数
0FH PS_ReadSysPara 读系统基本参数
1BH PS_HighSpeedSearch 高速搜索 FLASH
1DH PS_ValidTempleteNum 读有效模板个数

猜你喜欢

转载自juejin.im/post/7104272339960856590