R302指识别开发笔记
一、相关概念
1.存储容量:500枚指纹,地址范围0-499。
2.用户记事本:模块内部为用户开辟了512Bytes的FLASH空间用于存放用户数据该存储空间称为用户记事本,该记事本逻辑上被分成16个页,每页32字节,写记事本命令用于写入用户的32字节数据到指定的记事本页。
3通信包:命令包、数据包、结束包。
4.缓冲区:模块内有1个72字节的指纹图像缓冲区ImageBuffer,与3个各810字节的指纹特征文件缓冲区CharBuffer1、CharBuffer2。都是可读可写的。CharBuffer1和CharBuffer2可存放普通指纹特征数据(单次指纹图像生成的特征),也可以存放指纹特征模板(由两个普通指纹特征数据合成)。通过上位机从ImageBuffer获取的指纹图像不是完全从ImageBuffer中读取的,只读取了每字节的高四位,图像无关紧要,上传速度才是关键。810字节就是一个指纹最大的有效数据,没有更多了,只能更少。
5.接口类型:串口、USB
6.安全等级:1-5级,影响到拒真率和认假率。
7.拒真率:也叫拒识率。指将相同的指纹误认为是不同的指纹,而加以拒绝的出错概率。其定义为:FRR=拒识的指纹数目/考察的指纹总数目×100%。
8.认假率:也叫误判率。指将不同的指纹误认为是相同的指纹,而加以接收的出错概率。其定义为:FAR=错判的指纹数目/考察的指纹总数目×100%。
二、R302模块操作要点
1.上电后模块初始化时间约500ms。
2.默认波特率为57600bps,可通过命令设置为9600-115200bps。传送的帧格式为 10位,1位0电平起始位,8位数据(低位在前)和1位停止位,无校验位。
3. 模块地址(FFh×4)默认。
三、问题解决
问1.记事本有什么鬼用?
答1.这个记事本和指纹库从应用上来说是没有什么太大关系的,这个记事本只是用来记录一些用户数据,你要拿来记录和指纹不相关的数据也完完全全可以的,就把它当做普通的内存就好了,只有16页,省着点用,偶尔还是有什么卵用的^_^。
问2.通过上位机上传的指纹库的数据大小是怎么计算的?哪些是有效数据?
答2.数据包格式的大小有64/128/256字节格式,这个值就是有效的数据大小,实际传输的数据包的大小不止这些,还要包括包头、命令字、校验码等内容。
问3.安全等级反映什么特性?为什么数据包的大小是可以设置的?它和安全等级有没有半毛钱的关系?
答3.安全等级越高,指纹模块的认假率和拒真率越小,即意味着“认为是自己人”“认为不是自己人”的出错概率越小。通常安全等级选择等级3。安全等级主要体现在匹配指纹库的过程中,并不影响指纹库数据的录入。继续问题的回答。首先清楚数据包和指纹库中存放的指纹特征数据不是一回事。经过试验测试,每次录入指纹模块特征数据的大小都是不一样的,我想这个是和手指与电容模板的接触面积有关。当我们想把指纹库中的数据上传到主机时,先发GR_UpChar指令,然后先收到该指令的应答包,接着开始接收数据包,数据包的格式如下:
数据包的大小和包长度是同一个概念,其实按照语文上的理解应该是不一样的,我想这是写R302模块的技术人员的怎样理解问题。通过设置数据包的大小可以改变读指纹数据到上位机的次数,本质上并没有什么区别。
问4.通信包里的校验和是指那部分的数据的和?
答4.模块地址和校验和之间的数据之和,不包括模块地址和校验和字节数据。
问5.在Flash指纹库中一个指纹特征模板有多少字节?
答5.从上位机读出来的数据来看是0x370字节即810字节。
实际程序测试证明:录入一个指纹到指纹库地址0,然后通过GR_UpChar指令将指纹库中地址0处的指纹打印出来。数据包的大小默认是128字节的,因此加上包头等部分,一次通讯包大小就有128+11=139字节,注意判断数据包的结束包,即每读一次数据包就判断其第7字节值是不是0x08,如果是,代表该个包是结束包而不是数据包。从打印的结果来看,一共打印了7次,虽然最后一次是结束包,但是他的数据部分也还是指纹特征数据。也就是说一个指纹特征数据大小是7*128=896字节。实验测试方法是:把这7次读出来的指纹特征数据制成数据包之后发送回指纹模块中保存到指定flash位置,然后再去搜索指纹库,看能不能匹配到对应自己的那个指纹。
R302指识别开发笔记的更多相关文章
- OpenCV开发笔记(五十五):红胖子8分钟带你深入了解Haar、LBP特征以及级联分类器识别过程(图文并茂+浅显易懂+程序源码)
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...
- OpenCV开发笔记(六十九):红胖子8分钟带你使用传统方法识别已知物体(图文并茂+浅显易懂+程序源码)
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...
- OpenCV开发笔记(七十二):红胖子8分钟带你使用opencv+dnn+tensorFlow识别物体
前言 级联分类器的效果并不是很好,准确度相对深度学习较低,本章使用opencv通过tensorflow深度学习,检测已有模型的分类. Demo 可以猜测,1其实是人,18序号类是狗 ...
- OpenCV开发笔记(七十三):红胖子8分钟带你使用opencv+dnn+yolov3识别物体
前言 级联分类器的效果并不是很好,准确度相对深度学习较低,上一章节使用了dnn中的tensorflow,本章使用yolov3模型,识别出具体的分类. Demo 320x320,置信度0 ...
- 痞子衡嵌入式:超级下载算法(RT-UFL)开发笔记(2) - 识别当前i.MXRT型号
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是超级下载算法开发笔记(2)之识别当前i.MXRT型号. 文接上篇 <超级下载算法(RT-UFL)开发笔记(1) - 执行在不同CM ...
- Java开发笔记(四十五)成员属性与成员方法
前面介绍了许多数据类型,除了基本类型如整型int.双精度型double.布尔型boolean之外,还有高级一些的如包装整型Integer.字符串类型String.本地日期类型LocalDate等等,那 ...
- Java开发笔记(六十一)Lambda表达式
前面介绍了匿名内部类的简单用法,通过在sort方法中运用匿名内部类,不但能够简化代码数量,还能保持业务代码的连续性.只是匿名内部类的结构仍显啰嗦,虽然它省去了内部类的名称,但是花括号里面的方法定义代码 ...
- Java开发笔记(七十五)异常的处理:扔出与捕捉
前面介绍的几种异常(不包含错误),编码的时候没认真看还发现不了,直到程序运行到特定的代码跑不下去了,程序员才会恍然大悟:原来这里的代码逻辑有问题.像这些在运行的时候才暴露出来的异常,又被称作“运行时异 ...
- web前端开发笔记(1)
一.HTML标签书写有哪些规范? 页面编码. 文档声明. 关键字与描述. 行内元素不能包含块级元素. a标签不能嵌套a标签. 标签名和属性必须用小写字母书写,属性必须加引号,标签必须闭合,单标签页必 ...
随机推荐
- Gym 101201I Postman (贪心)
题意:有个邮递员,要送信,每次最多带 m 封信,有 n 个地方要去送,每个地方有x 封要送,每次都到信全送完了,再回去,对于每个地方,可以送多次直到送够 x 封为止. 析:一个很简单的贪心,就是先送最 ...
- Linux的磁盘分区(二)
LVM逻辑卷机制 PV(Physical Volume 物理卷) - 物理分区或整个物理磁盘 - 由PE(Physical Extent,基本单元)租场 VG(Volume Group 卷组) - 一 ...
- mongodb-win32-i386-3.0.6 使用
一.下载地址 https://fastdl.mongodb.org/win32/mongodb-win32-i386-3.0.6.zip 二.安装 1. systeminfo OS 名称: Micro ...
- 快速排序(Quicksort)的Javascript实现(转载)
日本程序员norahiko,写了一个排序算法的动画演示,非常有趣. 这个周末,我就用它当做教材,好好学习了一下各种排序算法. 排序算法(Sorting algorithm)是计算机科学最古老.最基本的 ...
- handsontable-mobiles
适配移动端:文档不完整,现在只能适配ipad4
- Unity3d中使用Lua
对于手机游戏,如果可以在线更新以实现bug修复.新功能添加等等,其好处自不必多说. 通过C#的反射机制,也可以实现某种程度上的脚本级更新,具体可以参考 http://docs.unity3d.com/ ...
- 如何修改TFS 2013中工作项附件大小限制
默认情况下,TFS工作项的附件大小限制为4MB.我们可以通过调用TFS提供的Web Service将这个限制调整最高到2GB. 调整这个设置的必备条件是你需要拥有TFS应用层管理员的权限.下面来看看如 ...
- java项目 远程debug
AVA项目无法像PHP那样可以随时修改文件内容进行调试,调试可以借助eclipse,本地代码的话很容易在本地debug,但如果代码已经打包部署在linux上呢?可以进行远程debug 很简单,只需 ...
- ceph 运维常用指令
集群 启动一个ceph 进程 启动mon进程 service ceph start mon.node1 启动msd进程 service ceph start mds.node1 启动osd进程 ser ...
- Gogland配置- 修改Go源代码tab值
Gogland对Go源代码默认值为8个,我很不习惯,第一次遇到tab数量这么大的,于是我决定修改这个tab值! 1,点击顶部菜单“File”->"Settings". 2,在 ...