R503S指纹识别模块的通信协议

1 物理层

物理层采用串口通讯,波特率 57600,8 位数据位,1 位停止位,无奇偶校验位。

2 数据包格式

模块采用 UART 与上位机通讯,对命令、数据、结果的接收和发送,都采用数据包的形式。对于多字节的,高字节在前低字节在后(如 2 bytes 的 00 06 表示 0006,不是 0600)。数据包格式及其定义见表 4.1 和表 4.2 所示。

表 4.1 数据包格式

包头 地址 包标识 包长度 包内容(指令/数据/参数/确认码) 校验和
2 Bytes 4 Bytes 1 Byte 2 Bytes 2 Bytes

表 4.2 数据包详细定义表

名称 符号 长度(Bytes) 说明
包头 Start 2 Checksum
地址 Addr 4 默认值为 0xFFFFFFFF,用户可通过指令修改地址,模块会拒绝地址错误的指令。传送时高字节在前。
包标识 Pid 1

0x01:表示指令包,可以跟数据包。

0x02:表示数据包,且有后续包。数据包必须跟在指令包或应答包后面。

0x07:表示应答包,可以跟数据包。

0x08:表示最后一个数据包,即结束包。

包长度 Length 2 包长度=包内容长度+校验和长度。传送时高字节在前。
包内容 Data - 包括指令、数据、参数、确认码等。
校验和 Checksum 2 “包标识+包长度+包内容”所有字节的累加和。传送时高字节在前。

3 指令集汇总表

代码 指令名 功能说明
0x01 GetImage 从传感器上读入图像存于图像缓冲区
0x02 GenChar 根据原始图像生成指纹特征存于 CharBuffer 中
0x03 Match 比对几个 CharBuffer 中的特征文件
0x04 Search 以 CharBuffer 中的特征文件搜索整个或部分指纹库
0x05 RegModel 将 CharBuffer 中的特征文件合并生成模板存在特征缓冲区内
0x06 StoreChar 将特征缓冲区内的模板储存到 flash 指纹库中
0x07 LoadChar 从 flash 指纹库中读取一个模板到特征缓冲区
0x08 UpChar 将特征缓冲区中的文件上传
0x09 DownChar 下载一个特征文件到特征缓冲区
0x0a UpImage 上传图像缓冲区内的图像数据
0x0b DownImage 下载图像数据到图像缓冲区
0x0c  DeleteChar 删除 flash 指纹库中的一个模板文件
0x0d Empty 清空 flash 指纹库
0x0e SetSysPara 设置系统参数
0x0f ReadSysPara  读系统参数
0x12 SetPwd 设置口令
0x13 VfyPwd 效验口令
0x14 GetRandomCode 获取随机数
0x15 SetAddr 设置模块地址
0x16 ReadInfPage  读取信息页
0x18 WriteNotepad 写记事本
0x19 ReadNotepad 读记事本
0x1d ValidTemplateNum 读有效模板个数
0x1f ReadIndexTable 读指纹模板索引表
0x28 GetImageEx 采集指纹图像扩展指令
0x30 Cancel 取消指令
0x40 HandShake 握手
0x36 CheckSensor 检测传感器
0x39 GetAlgVer 获取算法库版本
0x3a GetFwVer 获取固件版本
0x3c ReadProdInfo  读取产品信息
0x3d SoftRst  软复位
0x35 AuraLedConfig 光环控制

4 数据包的接收与应答

指令只能由上位机下发给模块,模块向上位机应答。

模块收到指令后,会通过应答包,将有关命令执行情况与结果上报给上位机。应答包含有参数,并可跟后续数据包。

指令后如果需要跟数据包,则上位机在发送指令包,并收到应答包后才能确认是否可以继续发数据包。

上位机只有在收到模块的应答包后才能确认模块的收包情况与指令执行情况。应答包的内容包括一个字节的确认码(必须有)和可能有的返回参数。确认码见表4.3。

表 4.3 确认码定义表

序号 确认码 定义说明
1 0x00 指令执行完毕或 OK;
2 0x01 数据包接收错误;
3 0x02 传感器上没有手指;
4 0x03 录入指纹图像失败;
5 0x06 指纹图像太乱而生不成特征;
6 0x07 指纹图像正常,但特征点太少(或面积太小)而生不成特征;
7 0x08 指纹不匹配;
8 0x09 没搜索到指纹;
9 0x0a 特征合并失败;
10 0x0b 访问指纹库时地址序号超出指纹库范围;
11 0x0c 从指纹库读模板出错或无效;
12 0x0d 上传特征失败;
13 0x0e 模块不能接受后续数据包;
14 0x0f 上传图像失败;
15 0x10  删除模板失败;
16 0x11 清空指纹库失败
17 0x13 口令不正确;
18 0x15 缓冲区内没有有效原始图像;
19 0x18 读写 FLASH 出错;
20 0x1a 无效寄存器号;
21 0x1b 无效数据或数据非法(包括指纹特征或指纹模板数据非法)
22 0x20 地址码错误
23 0xFC 不支持的命令
24 0xFD 硬件错误
25 0xFE 命令执行失败
26 0x21 必须验证口令
27 0x22 指纹模板为空
28 0x24 指纹库为空
29 0x26 超时
30 0x27 指纹已存在
31 0x29 传感器硬件错误
32 0x1f 指纹库已满
33 other 系统保留

你可能感兴趣的:(网络)