一、相关概念

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指识别开发笔记的更多相关文章

  1. OpenCV开发笔记(五十五):红胖子8分钟带你深入了解Haar、LBP特征以及级联分类器识别过程(图文并茂+浅显易懂+程序源码)

    若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...

  2. OpenCV开发笔记(六十九):红胖子8分钟带你使用传统方法识别已知物体(图文并茂+浅显易懂+程序源码)

    若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...

  3. OpenCV开发笔记(七十二):红胖子8分钟带你使用opencv+dnn+tensorFlow识别物体

    前言   级联分类器的效果并不是很好,准确度相对深度学习较低,本章使用opencv通过tensorflow深度学习,检测已有模型的分类.   Demo       可以猜测,1其实是人,18序号类是狗 ...

  4. OpenCV开发笔记(七十三):红胖子8分钟带你使用opencv+dnn+yolov3识别物体

      前言   级联分类器的效果并不是很好,准确度相对深度学习较低,上一章节使用了dnn中的tensorflow,本章使用yolov3模型,识别出具体的分类.   Demo   320x320,置信度0 ...

  5. 痞子衡嵌入式:超级下载算法(RT-UFL)开发笔记(2) - 识别当前i.MXRT型号

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是超级下载算法开发笔记(2)之识别当前i.MXRT型号. 文接上篇 <超级下载算法(RT-UFL)开发笔记(1) - 执行在不同CM ...

  6. Java开发笔记(四十五)成员属性与成员方法

    前面介绍了许多数据类型,除了基本类型如整型int.双精度型double.布尔型boolean之外,还有高级一些的如包装整型Integer.字符串类型String.本地日期类型LocalDate等等,那 ...

  7. Java开发笔记(六十一)Lambda表达式

    前面介绍了匿名内部类的简单用法,通过在sort方法中运用匿名内部类,不但能够简化代码数量,还能保持业务代码的连续性.只是匿名内部类的结构仍显啰嗦,虽然它省去了内部类的名称,但是花括号里面的方法定义代码 ...

  8. Java开发笔记(七十五)异常的处理:扔出与捕捉

    前面介绍的几种异常(不包含错误),编码的时候没认真看还发现不了,直到程序运行到特定的代码跑不下去了,程序员才会恍然大悟:原来这里的代码逻辑有问题.像这些在运行的时候才暴露出来的异常,又被称作“运行时异 ...

  9. web前端开发笔记(1)

     一.HTML标签书写有哪些规范? 页面编码. 文档声明. 关键字与描述. 行内元素不能包含块级元素. a标签不能嵌套a标签. 标签名和属性必须用小写字母书写,属性必须加引号,标签必须闭合,单标签页必 ...

随机推荐

  1. 如何快速获取官网帮助信息 (附 11g pdf 文档)

    http://docs.oracle.com/en/ 11g Release 2 (11.2) 搜索时指定网站 site:docs.oracle.com create table site:docs. ...

  2. 设置手机iphone5s邮件

    由于更新系统后,手机自带的邮件服务器老是报错,后来查一下,需要设置qq邮箱独立密码,http://jingyan.baidu.com/article/c146541354cefb0bfdfc4c5d. ...

  3. Hdu1429 胜利大逃亡(续) 2017-01-20 18:33 53人阅读 评论(0) 收藏

    胜利大逃亡(续) Time Limit : 4000/2000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Subm ...

  4. 关于Office软件中Word输入时卡顿无反应的解决办法!

    最近在安装office2013时遇到了这样一个问题,就是在激活office之后,打开Word输入内容时十分卡顿.也是狂搜网上各种办法,有说改注册表的,也有说在office选项里设置什么输入法的,全试了 ...

  5. mvc和mvvm的区别?

    源自:https://segmentfault.com/q/1010000000534091?_ea=178721 Model:很简单,就是业务逻辑相关的数据对象,通常从数据库映射而来,我们可以说是与 ...

  6. asp.net mvc部分视图的action中获取父级视图信息

    RouteData.DataTokens["ParentActionViewContext"]中包含了父级视图的相关信息,如路由等 public ActionResult Chil ...

  7. 如何使用jQuery实现根据不同IP显示不同的内容

    一些SEM的投放页会针对不同地域做针对性的内容推广,下面我把实现方法分享出来. 一.引用新浪提供的IP查询的js库 <script src="http://int.dpool.sina ...

  8. 使用ubuntu搭建时间机器备份服务

    如何在ubuntu下搭建时间备份服务 折腾了很久,终于可以了. 请严格按照下面的方式来操作. 真正明白问题的,可以按照自己的思路来. 我用的是ubnutu 16.04 安装配置netatalk sud ...

  9. Windows7 64位下SDK Manager.exe无法运行问题解决方法

    我在Windows7 64位下运行SDK Manager.exe总是一闪而过,无法正常启动它,最后在网上找到一篇文章,修改系统“path”变量,把“path”变量中的第一项设置为我的JDK目录“C:\ ...

  10. codeforces 1093 题解

    12.18 update:补充了 $ F $ 题的题解 A 题: 题目保证一定有解,就可以考虑用 $ 2 $ 和 $ 3 $ 来凑出这个数 $ n $ 如果 $ n $ 是偶数,我们用 $ n / 2 ...