UART 指纹传感器 (C)
用户手册
超过VIEW
这是一个高度集成的圆形一体式电容指纹传感器模块,几乎和指甲板一样小。 该模块通过UART指令控制,使用方便。 它的优点tag包括360°全方位验证、快速验证、高稳定性、低功耗等。
UART指纹传感器(C)基于高性能Cortex处理器,结合高安全性商业指纹算法,具有指纹登记、图像采集、特征查找、模板生成和存储、指纹匹配等功能。 在不了解复杂的指纹算法的情况下,您只需发送一些UART命令,即可将其快速集成到需要小尺寸和高精度的指纹验证应用中。
特征
- 通过一些简单的命令即可轻松使用,您无需了解任何指纹技术或模块间结构
- 商用指纹算法,性能稳定,验证速度快,支持指纹录入、指纹比对、指纹图像采集、指纹上传等功能。
- 电容灵敏检测,只需轻触采集窗即可快速验证
- 硬件高度集成,处理器和传感器在一个小芯片中,适合小尺寸应用
- 不锈钢窄边框,大触控面积,支持360°全方位验证
- 嵌入式人体感应器,处理器自动进入休眠,触摸唤醒,功耗更低
- 板载UART接口,方便与STM32、树莓派等硬件平台连接
规格
- 传感器类型:电容式触摸
- 分辨率:508DPI
- 图像像素:192×192
- 图像灰度:8
- 传感器尺寸:R15.5mm
- 指纹容量:500
- 匹配时间:<500ms (1:N, and N<100)
- 误报率:<0.001%
- 误拒率:<0.1%
- 操作量tag电子:2.7–3V
- 工作电流:<50mA
- 睡眠电流:<16uA
- 抗静电:接触放电8KV/空气放电15KV
- 接口:UART
- 波特率:19200 bps
- 操作环境:
• 温度:-20°C~70°C
• 湿度:40%RH~85%RH(无冷凝) - 存储环境:
• 温度:-40°C~85°C
• 湿度:<85%RH(无冷凝) - 寿命:1万次
硬件
方面
界面
笔记: 实际电线的颜色可能与图片不同。 根据连接时的 PIN 码而不是颜色。
- 车辆识别号:3.3V
- GND:接地
- RX:串行数据输入(TTL)
- TX:串行数据输出(TTL)
- RST:电源启用/禁用引脚
• HIGH:电源启用
• LOW:电源禁用(睡眠模式) - WAKE:唤醒引脚。 当模块处于休眠模式时,当用手指触摸传感器时,WKAE 引脚为高电平。
命令
命令格式
该模块作为从设备工作,您应该控制主设备发送命令来控制它。 通讯接口为UART:19200 8N1。
格式命令和响应应该是:
1) =8 字节
字节 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
命令 | 0xF5 | 命令 | P1 | P2 | P3 | 0 | 核磁共振 | 0xF5 |
确认 | 0xF5 | 命令 | Q1 | Q2 | Q3 | 0 | 核磁共振 | 0xF5 |
笔记:
CMD:命令/响应的类型
P1、P2、P3:指令参数
Q1、Q2、Q3:响应参数
Q3:Q3一般是操作的有效/无效信息,应该是:
#define 确认成功 #定义ACK_FAIL #定义ACK_FULL #定义ACK_NOUSER #定义ACK_USER_OCCUPIED #定义ACK_FINGER_OCCUPIED #define 确认超时 |
0x00 0x01 0x04 0x05 0x06 0x07 0x08 |
//成功 //失败的 //数据库已满 //用户不存在 //用户存在 //指纹是存在的 //暂停 |
CHK:校验和,是字节 2 到字节 6 的异或结果
2) >8 字节。 该数据包含两部分:数据头和数据包数据头:
字节 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
命令 | 0xF5 | 命令 | 嗨(连) | 低(Len) | 0 | 0 | 核磁共振 | 0xF5 |
确认 | 0xF5 | 命令 | 嗨(连) | 低(Len) | Q3 | 0 | 核磁共振 | 0xF5 |
笔记:
CMD, Q3: 同 1)
Len:数据包中有效数据的长度,16bits(两个字节)
Hi(Len):Len 的高 8 位
Low(Len):Len 的低 8 位
CHK:校验和,是字节 1 到字节 6 数据包的字节异或结果:
字节 | 1 | 2…连+1 | 连+2 | 连+3 |
命令 | 0xF5 | 数据 | 核磁共振 | 0xF5 |
确认 | 0xF5 | 数据 | 核磁共振 | 0xF5 |
笔记:
Len:数据字节数
CHK:校验和,是字节 2 到字节 Len+1 的异或结果
数据包跟随数据头。
命令类型:
- 修改模块的SN号(CMD/ACK均为8字节)
字节 1 2 3 4 5 6 7 8 命令 0xF5 0x08 新 SN(位 23-16) 新 SN(位 15-8) 新 SN(位 7-0) 0 核磁共振 0xF5 确认 0xF5 0x08 旧 S(位 23-16) 旧 SN(位 15-8) 旧 SN(位 7-0) 0 核磁共振 0xF5 - 查询模型 SN(CMD/ACK 均为 8 字节)
字节 1 2 3 4 5 6 7 8 命令 0xF5 0x2A 0 0 0 0 核磁共振 0xF5 确认 0xF5 0x2A SN(位 23-16) SN(位 15-8) SN(位 7-0) 0 核磁共振 0xF5 - 睡眠模式(CMD/ACK 均为 8 字节)
字节 1 2 3 4 5 6 7 8 命令 0xF5 0x2C 0 0 0 0 核磁共振 0xF5 确认 0xF5 0x2C 0 0 0 0 核磁共振 0xF5 - 设置/读取指纹添加模式(CMD/ACK 均为 8 Byte)
有两种模式:启用复制模式和禁用复制模式。 模块禁用复制模式时:同一个指纹只能添加一个ID。 如果要添加另一个具有相同指纹的 ID,则 DSP 响应失败信息。 模块上电后处于禁用模式。字节 1 2 3 4 5 6 7 8 命令 0xF5 0x2D 0 字节 5=0:
0:启用
1:禁用
字节 5=1:00:新模式
1:读取当前模式0 核磁共振 0xF5 确认 0xF5 0x2D 0 当前模式 确认成功
确认失败0 核磁共振 0xF5 - 添加指纹(CMD/ACK 均为 8 字节)
主设备应向模块发送三次命令并三次添加指纹,确保添加的指纹有效。
a) 首先字节 1 2 3 4 5 6 7 8 命令 0xF
50x0
1用户ID(高8Bit) 用户 ID(低 8 位) 许可(1/2/3) 0 核磁共振 0xF5 确认 0xF
50x0
10 0 确认成功
确认失败0 核磁共振 0xF5 确认已满
确认用户已占用 确认手指已占用
确认超时笔记:
用户ID:1~0xFFF;
用户权限:1,2,3,(可以自己定义权限)
b) 第二字节 1 2 3 4 5 6 7 8 命令
0xF5
0x02
用户身份 (高8Bit)
用户身份 (低8位)
允许 (1/2/3)
0
核磁共振
0xF5
确认
0xF5
0x02
0
0
确认成功 确认失败 确认超时
0
核磁共振
0xF5
c) 第三个
字节 1 2 3 4 5 6 7 8 命令
0xF5
0x03
用户身份 (高8Bit)
用户身份 (低8位)
允许 (1/2/3)
0
核磁共振
0xF5
确认
0xF5
0x03
0
0
确认成功 确认失败 确认超时
0
核磁共振
0xF5
注意: 三个命令中的用户 ID 和权限。
- 添加用户并上传特征值(CMD =8Byte/ACK > 8 Byte)
这些命令类似于“5. 添加指纹”,您也应该添加三次。
a) 首先
同第一个“5.添加指纹”
b) 第二
与“第二个”相同5.添加指纹”
c) 第三
CMD 格式:字节 1 2 3 4 5 6 7 8 命令 0xF5 0x06 0 0 0 0 核磁共振 0xF5 确认格式:
1)数据头:字节 1 2 3 4 5 6 7 8 确认 0xF5 0x06 嗨(连) 低(Len) 确认成功
确认失败
确认超时0 核磁共振 0xF5 2)数据包:
字节 1 2 3 4 5—连+1 连+2 连+3 确认 0xF5 0 0 0 特征值 核磁共振 0xF5 笔记:
特征值长度(Len-)为 193Byte
当ACK数据的第XNUMX个字节为ACK_SUCCESS时发送数据包 - 删除用户(CMD/ACK 均为 8 字节)
字节 1 2 3 4 5 6 7 8 命令 0xF5 0x04 用户ID(高8Bit) 用户 ID(低 8 位) 0 0 核磁共振 0xF5 确认 0xF5 0x04 0 0 确认成功
确认失败0 核磁共振 0xF5 - 删除所有用户(CMD/ACK 均为 8 Byte)
字节 1 2 3 4 5 6 7 8 命令 0xF5 0x05 0 0 0:删除所有用户1/2/3:删除权限为1/2/3的用户 0 核磁共振 0xF5 确认 0xF5 0x05 0 0 确认成功
确认失败0 核磁共振 0xF5 - 查询用户数(CMD/ACK 均为 8 Byte)
字节 1 2 3 4 5 6 7 8 命令 0xF5 0x09 0 0 0:查询计数
0xFF:查询金额0 核磁共振 0xF5 确认 0xF5 0x09 计数/金额(高 8Bit) 数量/数量(低8位) 确认成功
确认失败
0xFF(指令=0xFF)0 核磁共振 0xF5 - 1:1(CMD/ACK均为8Byte)
字节 1 2 3 4 5 6 7 8 命令 0xF5 0x0B 用户 ID(高 8 位) 用户 ID(低 8 位) 0 0 核磁共振 0xF5 确认 0xF5 0x0B 0 0 确认成功
确认失败
确认超时0 核磁共振 0xF5 - 比较一:N(CMD/ACK 均为 1 Byte)
字节 1 2 3 4 5 6 7 8 命令 0xF5 0x0C 0 0 0 0 核磁共振 0xF5 确认 0xF5 0x0C 用户 ID(高 8 位) 用户 ID(低 8 位) 允许
(1年2月3日)
确认无用户
确认超时0 核磁共振 0xF5 - 查询权限(CMD/ACK 均为 8 Byte)
字节 1 2 3 4 5 6 7 8 命令 0xF5 0x0A 用户ID(高8Bit) 用户 ID(Low8Bit ) 0 0 核磁共振 0xF5 确认 0xF5 0x0A 0 0 允许
(1年2月3日)
确认无用户0 核磁共振 0xF5 - 设置/查询比较级别(CMD/ACK 均为 8 Byte)
字节 1 2 3 4 5 6 7 8 命令 0xF5 0x28 0 Byte5=0:新级别
字节 5=1:00:设定等级
1:查询级别0 核磁共振 0xF5 确认 0xF5 0x28 0 当前级别 确认成功
确认失败0 核磁共振 0xF5 备注: 比较 level 可以是0~9,数值越大,比较越严格。 默认 5
- 获取图片并上传(CMD=8 Byte/ACK >8 Byte)
CMD 格式:字节 1 2 3 4 5 6 7 8 命令 0xF5 0x24 0 0 0 0 核磁共振 0xF5 确认格式:
1)数据头:字节 1 2 3 4 5 6 7 8 确认 0xF5 0x24 嗨(连) 低(Len) 确认成功
确认失败
确认超时0 核磁共振 0xF5 2)数据包
字节 1 2—连+1 连+2 连+3 确认 0xF5 图像数据 核磁共振 0xF5 笔记:
在DSP模块中,指纹图像的像素为280*280,每个像素用8位表示。 上传时,DSP已经跳过像素samp在水平/垂直方向上调整以减小数据大小,使图像变为 140*140,并且只取像素的高 4 位。 每两个像素合成一个字节用于传输(前一个像素高 4 位,最后一个像素低 4 位)。
从第一行开始逐行传输,每行从第一个像素开始,共传输140*140/2字节数据。
图像的数据长度固定为 9800 字节。 - 获取图片并上传特征值(CMD=8 Byte/ACK > 8Byte)
CMD 格式:字节 1 2 3 4 5 6 7 8 命令 0xF5 0x23 0 0 0 0 核磁共振 0xF5 确认格式:
1)数据头:字节 1 2 3 4 5 6 7 8 确认 0xF5 0x23 嗨(连) 低(Len) 确认成功
确认失败
确认超时0 核磁共振 0xF5 2)数据包
字节 1 2 3 4 5—连+1 连+2 连+3 确认 0xF5 0 0 0 特征值 核磁共振 0xF5 笔记: 特征值 (Len -3) 的长度为 193 字节。
- 下载特征值并与获取的指纹进行比较(CMD >8 Byte/ACK=8 Byte)
CMD 格式:
1)数据头:字节 1 2 3 4 5 6 7 8 命令 0xF5 0x44 嗨(连) 低(Len) 0 0 核磁共振 0xF5 2)数据包
字节 1 2 3 4 5—连+1 连+2 连+3 确认 0xF5 0 0 0 特征值 核磁共振 0xF5 注: 特征值 (Len -3) 的长度为 193 字节。
确认格式:字节 1 2 3 4 5 6 7 8 确认 0xF5 0x44 0 0 确认成功
确认失败
确认超时0 核磁共振 0xF5 - 下载特征值和比较1:1(CMD >8 Byte/ACK=8 Byte)
CMD 格式:
1)数据头:字节 1 2 3 4 5 6 7 8 命令 0xF5 0x42 嗨(连) 低(Len) 0 0 核磁共振 0xF5 2)数据包
字节 1 2 3 4 5—连+1 连+2 连+2 确认 0xF5 用户 ID(高 8 位) 用户 ID(低 8 位) 0 特征值 核磁共振 0xF5 笔记: 特征值 (Len -3) 的长度为 193 字节。
确认格式:字节 1 2 3 4 5 6 7 8 确认 0xF5 0x43 0 0 确认成功
确认失败0 核磁共振 0xF5 - 下载特征值和比较 1:N(CMD >8 Byte/ACK=8 Byte)
CMD 格式:
1)数据头:字节 1 2 3 4 5 6 7 8 命令 0xF5 0x43 嗨(连) 低(Len) 0 0 核磁共振 0xF5 2)数据包
字节 1 2 3 4 5—连+1 连+2 连+2 确认 0xF5 0 0 0 特征值 核磁共振 0xF5 笔记: 特征值 (Len -3) 的长度为 193 字节。
确认格式:字节 1 2 3 4 5 6 7 8 确认 0xF5 0x43 用户 ID(高 8 位) 用户 ID(低 8 位) 允许
(1/2/3)
确认无用户0 核磁共振 0xF5 - 从 DSP 模型上传特征值 CMD=8 Byte/ACK >8 Byte)
CMD 格式:字节 1 2 3 4 5 6 7 8 命令 0xF5 0x31 用户 ID(高 8 位) 用户 ID(低 8 位) 0 0 核磁共振 0xF5 确认格式:
1)数据头:字节 1 2 3 4 5 6 7 8 确认 0xF5 0x31 嗨(连) 低(Len) 确认成功
确认失败
确认无用户0 核磁共振 0xF5 2)数据包
字节 1 2 3 4 5—连+1 连+2 连+3 确认 0xF5 用户 ID(高 8 位) 用户 ID(低 8 位) 许可(1/2/3) 特征值 核磁共振 0xF5 笔记: 特征值 (Len -3) 的长度为 193 字节。
- 下载特征值并作为用户ID保存到DSP(CMD>8 Byte/ACK =8 Byte)
CMD 格式:
1)数据头:字节 1 2 3 4 5 6 7 8 命令 0xF5 0x41 嗨(连) 低(Len) 0 0 核磁共振 0xF5 2) 数据包
字节 1 2 3 4 5—连+1 连+2 连+3 确认 0xF5 用户 ID(高 8 位) 用户 ID(低 8 位) 许可(1/2/3) 特征值 核磁共振 0xF5 笔记: 特征值 (Len -3) 的长度为 193 字节。
确认格式:字节 1 2 3 4 5 6 7 8 确认 0xF5 0x41 用户 ID(高 8 位) 用户 ID(低 8 位) 确认成功
确认失败0 核磁共振 0xF5 - 查询添加的所有用户的信息(ID和权限)(CMD=8 Byte/ACK >8Byte)
CMD 格式:字节 1 2 3 4 5 6 7 8 命令 0xF5 0x2B 0 0 0 0 核磁共振 0xF5 确认格式:
1)数据头:字节 1 2 3 4 5 6 7 8 确认 0xF5 0x2B 嗨(连) 低(Len) 确认成功
确认失败0 核磁共振 0xF5 2)数据包
字节 1 2 3 4—连+1 连+2 连+3 确认 0xF5 用户 ID(高 8 位) 用户 ID(低 8 位) 用户信息(用户ID和权限) 核磁共振 0xF5 笔记:
数据包的数据长度(Len)为“3*User ID+2”
用户信息格式:字节 4 5 6 7 8 9 … 数据 用户 ID1(高 8 位) 用户 ID1(低 8 位) 用户 1 权限 (1/2/3) 用户 ID2(高 8 位) 用户 ID2(低 8 位) 用户 2 权限 (1/2/3) …
- 设置/查询指纹采集超时时间(CMD/ACK 均为 8 Byte)
字节 1 2 3 4 5 6 7 8 命令 0xF5 0x2E 0 Byte5=0:超时
字节 5=1:00:设置超时
1:查询超时0 核磁共振 0xF5 确认 0xF5 0x2E 0 暂停 确认成功
确认失败0 核磁共振 0xF5 笔记:
指纹等待超时 (tout) 值的范围是 0-255。 如果值为0,如果没有指纹按下,指纹采集过程将继续进行; 如果该值不为0,则在tout * T0 时间内没有指纹按下,系统将因超时而存在。
笔记: T0 是采集/处理图像所需的时间,通常为 0.2-0.3 s。
沟通过程
添加指纹
删除用户
删除所有用户
获取图像并上传特征值
用户指南
如果要将指纹模块连接到PC,则需要购买一个UART到USB模块。 我们建议您使用 Waveshare FT232 USB UART 板(微型) 模块。
如果要将指纹模块连接到树莓派这样的开发板上,如果工作正常
你的板子的电平是3.3V,你可以直接把它连接到你板子的UART和GPIO引脚上。 如果是5V,请加电平转换模块/电路。
连接到电脑
硬件连接
你需要:
- UART指纹传感器(C)*1
- FT232 USB UART板*1
- 微型 USB 数据线 *1
将指纹模块和 FT232 USB UART Board 连接到 PC
UART 指纹传感器 (C) | FT232 USB UART 板 |
VCC | VCC |
地线 | 地线 |
RX | TX |
TX | RX |
恢复时间 | NC |
唤醒 | NC |
测试
- 从 wiki 下载 UART 指纹传感器测试软件
- 打开软件,选择正确的COM口。(本软件只支持COM1~COM8,如果您PC的COM口不在此范围,请修改)
- 测试
测试界面提供了几个功能
- 查询次数
选择 数数, 然后点击 发送。 用户数返回并显示在信息中 回复 界面 - 添加用户
选择 添加用户, 检查 获得两次 和 自动 ID+1, 输入 ID (P1 和 P2) 和许可 (P3),然后点击 发送。 最后,触摸传感器获取指纹。 - 删除用户
选择 删除用户, 输入 ID (P1 和 P2) 和许可 (P3),然后单击发送。 - 删除所有用户
选择 删除所有用户,然后单击发送 - 比较 1:1
选择 1:1 比较, 输入 ID (P1 和 P2) 和许可 (P3),然后点击 发送。 - 比较 1:N
选择 1:N比较,然后点击 发送。
…
更多功能请自行测试。 (本模块部分功能不可用)
连接到 XNUCLEO-F103RB
我们提供了 XNCULEO-F103RB 的演示代码,您可以从 wiki 下载
UART 指纹传感器 (C) | NUCLEO-F103RB |
VCC | 3.3伏 |
地线 | 地线 |
RX | PA9 |
TX | PA10 |
恢复时间 | PB5 |
唤醒 | PB3 |
笔记: 关于引脚,请参考 界面 多于
- 将UART指纹传感器(C)连接到XNUCLEO_F103RB,并连接编程器
- 用keil5软件打开项目(demo代码)
- 检查编程器和设备是否正常识别
- 编译下载
- 通过USB线将XNUCELO-F103RB连接到PC,打开串口辅助软件,设置COM口:115200、8N1
根据返回的信息键入命令测试模块。
连接到树莓派
我们提供了一个 python example 用于 Raspberry Pi,您可以从 wiki 下载它
在你使用前ample,你应该先启用树莓派的串口:
在终端上输入命令:Sudo raspi-config
选择:接口选项 -> 串行 -> 否 -> 是
然后重启。
UART 指纹传感器 (C) | 树莓派 |
VCC | 3.3伏 |
地线 | 地线 |
RX | 14 (BCM) – PIN 8 (板) |
TX | 15 (BCM) – PIN 10 (板) |
恢复时间 | 24 (BCM) – PIN 18 (板) |
唤醒 | 23 (BCM) – PIN 16 (板) |
- 将指纹模块连接到树莓派
- 下载演示代码到树莓派:wget https://www.waveshare.com/w/upload/9/9d/UART-Fignerprint-RaspberryPi.tar.gz
- 解压缩
tar zxvf UART-指纹-RaspberryPi.tar.gz - 运行前ample
cd UART-指纹-RaspberryPi/sudo python main.py - 以下指南测试
文件/资源
![]() |
WAVESHARE STM32F205 UART 指纹传感器 [pdf] 用户手册 STM32F205, UART指纹传感器, STM32F205 UART指纹传感器, 指纹传感器 |