R306指纹识别模块指令系统
一:指令集
1. GR_GetImage
指令代码:01H
功能:从传感器上读入图像存于图像缓冲区
2. GR_GenChar
指令代码:02H
功能:根据原始图像生成指纹特征存于 CharBuffer1 或 CharBuffer2
3. GR_Match
指令代码:03H
功能:精确比对 CharBuffer1 与 CharBuffer2 中的特征文件
4. GR_Search
指令代码:04H
功能:以 CharBuffer1 或 CharBuffer2 中的特征文件搜索整个或部分指纹库
5. GR_RegModel
指令代码:05H
功 能 : 将 CharBuffer1 与 CharBuffer2 中 的 特 征 文 件合并生成模板存于CharBuffer1 与 CharBuffer2
6. GR_StoreChar
指令代码:06H
功能:将特征缓冲区中的文件储存到 flash 指纹库中
7. GR_LoadChar
指令代码:07H
功能:从 flash 指纹库中读取一个模板到特征缓冲区
8. GR_UpChar
指令代码:08H
功能:将特征缓冲区中的文件上传给上位机
9. GR_DownChar
指令代码:09H
功能:从上位机下载一个特征文件到特征缓冲区
10. GR_UpImage
指令代码:0AH
功能:上传原始图像
11. GR_DownImage
指令代码:0BH
功能:下载原始图像
12. GR_DeletChar
指令代码:0CH
功能:删除 flash 指纹库中的一个特征文件
13. GR_Empty
指令代码:0DH
功能:清空 flash 指纹库
14. GR_WriteReg
指令代码:0EH
功能:设置系统参数
15. GR_ReadSysPara
指令代码:0FH
功能:读系统基本参数
16. GR_Enroll
指令代码:10H
功能:注册模板
17. GR_ Identify
指令代码:11H
功能:验证指纹
18. GR_SetPwd
指令代码:12H
功能:设置设备握手口令
19. GR_VfyPwd
指令代码:13H
功能:验证设备握手口令
20. GR_GetRandomCode
指令代码:14H
功能:采样随机数
21. GR_SetAddr
指令代码:15H
功能:设置模块地址
22. GR_Port_Control
指令代码:17H
功能:通讯端口(UART/USB)开关控制
23. GR_WriteNotepad
指令代码:18H
功能:写记事本
24. GR_ReadNotepad
指令代码:19H
功能:读记事本
25. GR_HighSpeedSearch
指令代码:1BH
功能:高速搜索 FLASH
26. GR_GenBinImage
指令代码:1CH
功能:生成二值化指纹图像
27. GR_ValidTempleteNum
指令代码:1dH
功能:读有效模板个数
二:指令详解
⑴ 录入图像 GR_GetImage
功能说明: 探测手指,探测到后录入指纹图像存于ImageBuffer。
输入参数: none
返回参数: 确认字
指令代码: 01H

注:确认码=00H表示录入成功;
确认码=01H表示收包有错;
确认码=02H表示传感器上无手指;
确认码=03H表示录入不成功;
sum指校验和
⑵ 生成特征 GR_GenChar
功能说明: 将ImageBuffer中的原始图像生成指纹特征文件存于CharBuffer1或CharBuffer2
输入参数 :BufferID(特征缓冲区号)
返回参数 :确认字
指令代码 :02H
注:确认码=00H表示生成特征成功;
确认码=01H表示收包有错;
确认码=06H表示指纹图像太乱而生不成特征;
确认码=07H表示指纹图像正常,但特征点太少而生不成特征;
确认码=15H表示图像缓冲区内没有有效原始图而生不成图像;
sum指校验和
⑶ 精确比对两枚指纹特征 GR_Match
功能说明 :精确比对CharBuffer1 与CharBuffer2 中的 特征文件
输入参数 :none
返回参数 :确认字,比对得分
指令代码 :03H

注:确认码=00H表示指纹匹配;
确认码=01H表示收包有错;
确认码=08H表示指纹不匹配;
sum指校验和
⑷ 搜索指纹 GR_Search
功能说明 :以 CharBuffer1或CharBuffer2中的特征文件搜索整个或部分指纹库。
若搜索到,则返回页码。
输入参数 :BufferID, StartPage(起始页),PageNum(页数)
返回参数 :确认字,页码(相配指纹模板)
指令代码:04H


注:确认码=00H表示搜索到;
确认码=01H表示收包有错;
确认码=09H表示没搜索到;此时页码与得分为0
sum指校验和
⑸ 合并特征(生成模板)GR_RegModel
功能说明 :将 CharBuffer1与CharBuffer2中的特征文件合并生成模板,
结果存于CharBuffer1与CharBuffer2。
输入参数 :none
返回参数 :确认字
指令代码:05H

注: 确认码=00H表示合并成功;
确认码=01H表示收包有错;
确认码=0aH表示合并失败(两枚指纹不属于同一手指))
sum指校验和
(6) 储存模板 GR_StoreChar
功能说明 :将 CharBuffer1 或 CharBuffer2 中的模板文件存到PageID号flash数据库位置。
输入参数 :BufferID(缓冲区号),PageID(指纹库位置号)
返回参数 :确认字
指令代码 :06H

注:确认码=00H表示储存成功;
确认码=01H表示收包有错;
确认码=0bH表示PageID超出指纹库范围;
确认码=18H表示写 FLASH出错;
sum指校验和
⑺ 读出模板 GR_LoadChar
功能说明 :将 flash数据库中指定ID号的指纹模板读入到模板缓冲区CharBuffer1或CharBuffer2
输入参数 :BufferID(缓冲区号),PageID(指纹库模板号)
返回参数 :确认字
指令代码 :07H

注:确认码=00H表示读出成功;
确认码=01H表示收包有错;
确认码=0cH表示读出有错或模板无效;
确认码=0BH表示PageID超出指纹库范围;
sum指校验和
⑻ 上传特征或模板 GR_UpChar
功能说明 :将特征缓冲区中的特征文件上传给上位机
输入参数 :BufferID(缓冲区号)
返回参数 :确认字
指令代码 :08H

注:确认码=00H表示随后发数据包;
确认码=01H表示收包有错;
确认码=0dH表示指令执行失败;
sum指校验和
应答之后发送后续数据包
⑼ 下载特征或模板 GR_DownChar
功能说明 :上位机下载特征文件到模块的一个特征缓冲区
输入参数 :BufferID(缓冲区号)
返回参数 :确认字
指令代码 :09H

注:确认码=00H表示可以接收后续数据包;
确认码=01H表示收包有错;
确认码=0eH表示不能接收后续数据包;
sum指校验和
应答之后接收后续数据包
⑽ 上传原始图像 GR_UpImage
功能说明 :将图像缓冲区中的数据上传给上位机
输入参数 :none
返回参数:确认字
指令代码 :0aH


注:确认码=00H表示接着发送后续数据包;
确认码=01H表示收包有错;
确认码=0fH表示不能发送后续数据包;
sum指校验和
应答之后发送后续数据包
一个字节含两个像素,每个像素占4bits
⑾ 下载图像 GR_DownImage
功能说明 :上位机下载图像数据给模块
输入参数 :none
返回参数 :确认字
指令代码 :0bH

注:确认码=00H表示可以接收后续数据包;
确认码=01H表示收包有错;
确认码=0eH表示不能接收后续数据包;
sum指校验和
应答之后接收后续数据包,数据包长度须是64,128或256
一个字节含两个像素,每个像素占4bits
⑿ 删除模板 GR_DeletChar
功能说明 :删除flash数据库中指定ID号开始的N个指纹模板
输入参数 :PageID(指纹库模板号),N删除的模板个数。
返回参数 :确认字
指令代码 :0cH

注:确认码=00H表示删除模板成功;
确认码=01H表示收包有错;
确认码=10H表示删除模板失败;
sum指校验和
⒀ 清空指纹库 GR_Empty
功能说明 :删除flash数据库中所有指纹模板
输入参数 :none
返回参数 :确认字
指令代码 :0dH

注:确认码=00H表示清空成功;
确认码=01H表示收包有错;
确认码=11H表示清空失败;
sum指校验和
⒁ 写系统寄存器 GR_WriteReg
功能说明 :写模块寄存器
输入参数 :寄存器序号
返回参数:确认字
指令代码 :0eH


注1:确认码=00H表示OK;
确认码=01H表示收包有错;
确认码=1aH表示寄存器序号有误;
sum指校验和
注2:写系统寄存器(GR_WriteReg)指令执行时,先按照原配置进行应答,应答之后修改系统设置,并将配置记录于 FLASH,系统下次上电后,将按照新的配置工作。
⒂ 读系统基本参数 GR_ReadSysPara
功能说明 :读取模块的基本参数(波特率,包大小等)。)
输入参数 :none
返回参数 :确认字 + 基本参数(16bytes)
指令代码 :0fH

注:确认码=00H表示OK;
确认码=01H表示收包有错;
sum指校验和


⒅ 设置口令 GR_SetPwd
功能说明 :设置模块握手口令
输入参数 :PassWord
返回参数 :确认字
指令代码 :12H

注:确认码=00H表示OK;
确认码=01H表示收包有错;
sum指校验和
⒆ 验证口令 GR_VfyPwd
功能说明 :验证模块握手口令
输入参数 :PassWord
返回参数 :确认字
指令代码 :13H

注:确认码=00H表示口令验证正确;
确认码=01H表示收包有错;
确认码=13H表示口令不正确;
sum指校验和
⒇ 采样随机数 GR_GetRandomCode
功能说明 :令芯片生成一个随机数并返回给上位机
输入参数 :none
返回参数 :确认字
指令代码 :14H

注:确认码=00H表示生成成功;
确认码=01H表示收包有错;
sum指校验和
(21) 设置模块地址 GR_SetAddr
功能说明 :设置模块地址
输入参数 :none
返回参数 :确认字
指令代码 :15H

注:确认码=00H表示生成地址成功;
确认码=01H表示收包有错;
sum指校验和
上位机下传指令包时模块地址采用缺省地址:0xffffffff,应答包的地址域即采用新生成的地址本指令执行后,模块地址随即固定下来,保持不变。只有清空FLASH才能改变模块地址。本指令执行后,所有数据包都得用该生成的地址。
(22) 端口控制 GR_Port_Control
功能说明 :对于UART协议,该命令对USB通讯端口进行开关控制。
对于USB协议,该命令对UART端口进行开关控制。
输入参数 :控制码
控制码0代表关闭端口
控制码1代表开启端口
返回参数 :确认字
指令代码 :17H

注:确认码=00H表示端口操作成功;
确认码=01H表示收包有错;
确认码=1dH表示端口操作失败;
sum指校验和
(23) 写记事本 GR_WriteNotepad
功能说明 :模块内部为用户开辟了256bytes的FLASH 空间用于存放用户数据,该存储空间称为用户记事本,该记事本逻辑上被分成 16 个页,写记事本命令用于写入用户的32bytes数据到指定的记事本页 。
输入参数 :NotePageNum,user content
返回参数 :确认字
指令代码 :18H

注:确认码=00H表示OK;
确认码=01H表示收包有错;
sum指校验和
(24) 读记事GR_ReadNotepad
功能说明 :读取FLASH用户区的128bytes数据
输入参数 :none
返回参数 :确认字 + 用户信息
指令代码 :19H
指令包格式:

注:确认码=00H表示OK;
确认码=01H表示收包有错;
sum指校验和
(25) 高速搜索GR_HighSpeedSearch
功能说明 :以CharBuffer1或CharBuffer2中的特征文件高速搜索整个或部分指纹库。
若搜索到,则返回页码。 该指令对于的确存在于指纹库中,且登录时质量
很好的指纹,会很快给 出搜索结果。
输入参数:BufferID, StartPage(起始页),PageNum(页数)
返回参数 :确认字,页码(相配指纹模板)
指令代码 :1bH


注:确认码=00H表示搜索到;
确认码=01H 表示收包有错;
确认码=09H表示没搜索到;此时页码与得分为0
sum指校验和
(26) 生成细化指纹图像 GR_GenBinImage
功能说明 :对图像缓冲区中的指纹图像进行处理并生成细化指纹图像
输入参数 :BinImgTpye
0:二值化图像
1:不含特征点标识的细化图像
2或其他:带有特征点标识的细化图像
返回参数 :确认字
指令代码 :1cH

注:确认码=01H表示收包有错;
确认码=15H 表示无效指纹图像
确认码= 07 H表示没有足够特征信息
确认码=06 H表示图像质量太差 sum指校验和
(27) 读有效模板个数 GR_ValidTempleteNum
功能说明 :读有效模板个数
输入参数 :none
返回参数 :确认字,有效模板个数ValidN
指令代码 :1dH

注:确认码=00H表示读取成功;
确认码=01H表示收包有错;
sum指校验和
相关文章:
R306指纹识别模块指令系统
一:指令集 1. GR_GetImage 指令代码:01H 功能:从传感器上读入图像存于图像缓冲区 2. GR_GenChar 指令代码:02H 功能:根据原始图像生成指纹特征存于 CharBuffer1 或 CharBuffer2 3. GR_Match 指令代码ÿ…...
redis的搭建及应用(三)-Redis主从配置
Redis主从配置 为提升Redis的高可用性,需要搭建多个Redis集群以保证高可用性。常见搭建方式有:主从,哨兵集群等,本节我们搭建一主二从的多Redis架构。 redis主从安装1主2从的方式配置,以端口号为redis的主从文件夹。 主…...
Java学习,一文掌握Java之SpringBoot框架学习文集(1)
🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…...
javaWeb学生信息管理系统2
一、学生信息管理系统SIMS 一款基于纯Servlet技术开发的学生信息管理系统(SIMS),在设计中没有采用SpringMVC和Spring Boot等框架。系统完全依赖于Servlet来处理HTTP请求和管理学生信息,实现了信息的有效存储、检索和更新…...
Linux Shell 019-文本行处理工具sed
Linux Shell 019-文本行处理工具sed 本节关键字:Linux、Bash Shell、文本行处理工具 相关指令:sed、 sed介绍 sed是Stream Editor(流编辑器)的缩写,简称流编辑器;用来处理文件的。sed是一行一行读取文件…...
Ubuntu中fdisk磁盘分区并挂载、扩容逻辑卷
Ubuntu中fdisk磁盘分区并挂载、扩容逻辑卷 一:fdisk磁盘分区并挂载1.查看磁盘分区信息2.分区3.强制系统重新读取分区(避免重启系统)4.格式化分区5.创建挂载目录6.设置开机自动挂载:7.验证并自动挂载(执行了该命令不需要重启系统)8.查看挂载007.异常情况处…...
【leetcode】栈与队列总结
本文内容来自于代码随想录 栈 用栈实现队列 两个栈实现队列。思路:两个栈分别表示入栈和出栈。 入队:直接入栈出队: a. 出栈为空,先把入栈中的元素全部放到出栈中(相当于反过来,这样在出栈的时候先进的元…...
[EFI]HP Spectre 13 v102nl电脑 Hackintosh 黑苹果efi引导文件
硬件型号驱动情况主板 HP Spectre 13 v102nl 处理器Intel Core i7-7500U (7th gen - Kaby Lake)已驱动内存8 GB LPDDR3-1866 SDRAM已驱动硬盘512 GB Toshiba NVMe™ M.2 SSD已驱动显卡Intel HD Graphics 620已驱动声卡Conexant CX8200 (0x2008)已驱动网卡I1211 Gigabit Etherne…...
【Pytorch】学习记录分享8——PyTorch自然语言处理基础-词向量模型Word2Vec
【Pytorch】学习记录分享7——PyTorch自然语言处理基础-词向量模型Word2Vec 1. 词向量模型Word2Vec)1. 如何度量这个单词的?2.词向量是什么样子?3.词向量对应的热力图:4.词向量模型的输入与输出,其实…...
用Xshell连接虚拟机的Ubuntu20.04系统记录。虚拟机Ubuntu无法上网。本机能ping通虚拟机,反之不能。互ping不通
先别急着操作,看完再试。 如果是:本机能ping通虚拟机,反之不能。慢慢看到第8条。 如果是:虚拟机不能上网(互ping不通),往下一直看。 系统是刚装的,安装步骤:VMware虚拟机…...
人机对话--关于意识机器
人机对话–关于意识机器 这段内容是我和《通义千问》的对话。这本身展示的是人工智能的效果,同时这里面的内容也有人工智能相关,与各位分享。 我:阿尼尔赛斯 《意识机器》这本书写的是什么? 通义千问: 阿尼尔赛斯教…...
八股文打卡day16——计算机网络(16)
面试题:TCP连接是如何确保可靠性的? 我的回答: 1.数据分块控制。应用数据被分成被认为最适合传输的数据块大小,再发送到传输层,数据块被称为数据报文段或数据段。 2.序列号和确认应答。TCP为每一个数据包分配了一个序…...
Java Object浅克隆深克隆
对象克隆 把A对象的属性值完全拷贝给B对象,也叫对象拷贝,对象复制。 实现Cloneable接口,表示当前类的对象就可以被克隆,反之,表示当前类的对象就不能克隆。 如果一个接口里面没有抽象方法,表示当前的接口…...
概率的 50 个具有挑战性的问题 [8/50]:完美的桥牌
一、说明 我最近对与概率有关的问题产生了兴趣。我偶然读到了弗雷德里克莫斯特勒(Frederick Mosteller)的《概率论中的五十个具有挑战性的问题与解决方案》)一书。我认为创建一个系列来讨论这些可能作为面试问题出现的迷人问题会很有趣。每篇…...
自动驾驶学习笔记(二十四)——车辆控制开发
#Apollo开发者# 学习课程的传送门如下,当您也准备学习自动驾驶时,可以和我一同前往: 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo开放平台9.0专项技术公开课》免费报名—>传送门 文章目录 前言 控制算法 控制标定 控制协议…...
【起草】【第十二章】定制ChatGPT数字亲人
身为普普通通的我们,不知道亲人们在哪一天就要离开这个世界 ? 作为普普通通的程序员,我们可以为我们的亲人做点什么 ? 让他们以数字资产形式留在人世间 ? 对话|6岁女孩病逝捐器官,妈妈:她去…...
MySQL数据库索引
索引的定义 索引是一个排序的列表,包含索引字段的值和其对应的行记录的数据所在的物理地址 索引的作用 加快表的查询速度,还可以对字段排序 索引的副作用 会额外占用磁盘空间;更新包含索引的表会花费更多的时间,效率会更慢 …...
【LLM 】7个基本的NLP模型,为ML应用程序赋能
在上一篇文章中,我们已经解释了什么是NLP及其在现实世界中的应用。在这篇文章中,我们将继续介绍NLP应用程序中使用的一些主要深度学习模型。 BERT 来自变压器的双向编码器表示(BERT)由Jacob Devlin在2018年的论文《BERT:用于语言…...
数字人私人定制
数字人是什么? 在回答这个问题之前,我们先回答另一个问题,人如何与人工智能交流?目前可以通过文字、语音、电脑屏幕、手机屏幕、平板、虚拟现实设备等和人工智能交流,为了得到更好的交流体验,人工智能必然…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
排序算法总结(C++)
目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...
