R306指纹识别模块功能实现示例
1 基本通信流程
1.1 UART 命令包的处理过程
1.2 UART 数据包的发送过程
UART 传输数据包前,首先要接收到传输数据包的指令包,做好传输准备后发送成功应答包,最后才开始传输数据包。数据包主要包括:包头、设备地址、包标识、包长度、数据和校验和。
数据包的包标识主要分为两种:02H 和 08H。02H:数据包,且有后续包。08H:最后一个数据包,即结束包。数据长度是预先设置好的,主要分为:32、64、128、和256 四种。
例如,要传输的数据长度为 1K bytes,数据包中预先设置的数据长度为128 bytes,那么就要把 1K bytes 的数据分为 8 个数据包传输。每个数据包包括:2 bytes 包头、4 bytes 设备地址、1 bytes 包标识、2 bytes 包长度、128 bytes 数据和 2 bytes 校验和,每个数据包长度为 139 bytes。另外,8 个数据包中, 前 7 个数据包的报标识是02H,最后一个结束数据包报标识是 08H。最后需要注意的是,结束包如果长 度没有达到139 bytes 时,以实际长度传输,不会以其他方式扩充到 139 bytes。
1.3 UART 数据包的接收过程
UART 传输数据包前,首先要接收到传输数据包的指令包,做好传输准备后发送成功应答包,最后才开始传输数据包。数据包主要包括:包头、设备地址、包标识、包长度、数据和校验和。
数据包的包标识主要分为两种:02H 和 08H。02H:数据包,且有后续包。08H:最后一个数据包,即结束包。数据长度是预先设置好的,主要分为:32、64、128、和256 四种,。
例如,要传输的数据长度为 1K bytes,数据包中预先设置的数据长度为128 bytes,那么就要把 1K bytes 的数据分为 8 个数据包传输。每个数据包包括:2 bytes 包头、4 bytes 设备地址、1 bytes 包标识、2 bytes 包长度、128 bytes 数据和 2 bytes 校验和,每个数据包长度为 139 bytes。另外,8 个数据包中, 前 7 个数据包的报标识是02H,最后一个结束数据包报标识是 08H。最后需要注意的是,结束包如果长度没有达到139 bytes 时,以实际长度传输,不会以其他方式扩充到 139 bytes。
2 通用指令通信流程
2.1 通用指令注册指纹流程
通用指令注册指纹流程主要包含:注册用获取图像、生成特征、合并特征和存储模板。通常 N = 2 次
注册逻辑设置为 1 时注册指纹,如果当前收录的指纹与之前已经收录的指纹相似,则生成特征指令的应答包中的确认码不会显示成功,而是返回 28H,表示当前指纹特征与之前特征之 间有关联。需要注意的是,相互比较关联性只局限在本次注册过程中收录的指纹,不会与指纹库中的指 纹进行比较。
注册逻辑设置为 2 时注册指纹,如果当前收录的指纹与之前已经收录的指纹不相似,则生成特征指令的应答包中的确认码不会显示成功,而是返回 08H,表示当前指纹特征与之前特征之间 无关联。需要注意的是,相互比较关联性只局限在本次注册过程中收录的指纹,不会与指纹库中的指纹 进行比较。
无论返回 28H 或者 08H,当前指纹特征已经提取成功,可以不改变BufferID重新采图并生成特征,也可以跳过本轮 BufferID,收录下一轮指纹。
2.2 通用指令验证指纹流程
通用指令验证指纹流程主要包含:验证用获取图像、生成特征和搜索指纹。其中发送生成特征和搜 索指纹时,BufferID 设为默认值为 1。
2.3 从传感器获取指纹并生成特征后上传给主控
整个流程主要包含:验证用获取图像、生成特征和上传特征。其中发送生成特征和上传特征时, BufferID 设为默认值为 1。加密等级设置为 0 情况下支持此功能。
2.4 从 flash 指纹库中读取一个指定的模板上传
整个流程主要包含:读出模板和上传特征。其中发送读出模板和上传特征时,BufferID设为默认值为 2。加密等级设置为 0 情况下支持此功能。
2.5 主控下载一个指纹特征并以该特征搜索指纹库
整个流程主要包含:下载模板和搜索指纹。其中下载模板和搜索指纹时,BufferID设为默认值为 1。加密等级设置为 0 情况下支持此功能。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!