基于 CH587 的指纹库的应用
前言指纹识别是目前消费电子与嵌入式设备中应用最成熟、普及度最高的生物身份认证技术。相较于密码、刷卡等传统验证方式指纹识别具备无介质依赖、安全性高、响应速度快、交互体验自然的优势现已广泛应用于智能门锁、便携设备、智能家居、工业权限管控等嵌入式场景。随着低功耗 MCU 与硬件加速技术的迭代以 CH587 为代表的嵌入式主控芯片集成了专用指纹图像硬件加速单元与成熟本地化指纹算法库使开发者无需依赖商用成品指纹模组可直接适配裸指纹传感器完成图像采集、特征处理、模板管理与本地比对兼顾识别精度、运行功耗与设备自主性成为轻量化智能指纹设备的理想开发方案。一、 指纹识别基础介绍1.1 指纹识别原理每个人的指纹在胚胎期就已形成由遗传因素与环境因素共同决定具有唯一性与终身不变性。即使是同卵双胞胎指纹纹路也存在可辨识的差异。这种人人不同、终身不变的特性使指纹成为最理想的生物特征标识之一。指纹识别在嵌入式系统中的实现可概括为五大核心步骤采集 → 预处理 → 特征提取 → 模板生成 → 比对匹配。对于上面各个步骤分别说明一下采集此部分由指纹传感器处理由光学/电容裸指纹头子完成指尖纹路信号采集将物理指纹纹路转换为连续的二维灰度像素数据流输出原始指纹图像给 MCU 。预处理此部分由 MCU 处理之后步骤都是 MCU 完成针对传感器输出的原始图像存在噪点、纹路模糊、背景冗余、按压形变等问题芯片需要对原始数据进行图像降噪、纹路增强、二值化转换、有效指纹区域分割与图像矫正优化原始图像数据质量剔除无效干扰信息为特征提取提供标准化的输入。特征提取对预处理后的纯净指纹图像进行深度解析剥离像素冗余数据与伪特征干扰精准抓取指纹唯一的核心标识主要包括纹路端点、分叉点的坐标位置、纹线走向角度、特征类型等关键细节特征筛除无效、干扰特征保留可用于身份区分的有效特征集合。模板生成将提取到的有效指纹特征点信息进行标准化编码、压缩与结构化封装舍弃体积庞大的原始指纹图像生成固定字节大小、适配本地存储的轻量化指纹特征模板。模板仅保留指纹唯一性特征数据占用存储空间极小可稳定存入芯片 Flash 区域持久保存。比对匹配指纹识别阶段实时采集并生成新的临时指纹特征模板与本地 Flash 中存储的合法模板进行智能容错匹配。算法自动补偿按压带来的平移、角度旋转偏差比对两组特征点的重合度并量化输出匹配分数结合预设识别阈值判定指纹匹配结果最终完成本地身份认证。1.2 指纹模组分类市面上主流的指纹传感器可分为 光学式指纹识别与 电容式指纹识别两大类。光学指纹传感器依靠光学折射成像技术成熟、成本低廉、环境适应性强广泛应用于门禁、考勤等传统设备但成像精度有限、防伪造能力较弱。典型型号典型型号有 AS608 系列不过光学式领域较少以裸 sensor 形态流通多为传感器 算法芯片的集成模组电容指纹传感器利用人体皮肤导电特性通过电容阵列差值采集指纹纹路成像精度高、体积小、识别速度快是当前消费电子与轻量化智能设备的主流方案 。典型型号 FPC1020 。无论哪种传感器在裸传感器直连 MCU 的方案中其识别都需遵照上文介绍的步骤。目前市面存在大量集成式指纹模组比如上面提到的 AS608 系列其内部除了带有指纹传感器、还集成了算法芯片与固化程序可独立完成指纹全流程运算直接向主控MCU 输出识别成功或失败的最终结果。二、 CH587 指纹应用2.1 芯片基本资料CH587是集成BLE无线通讯和高速USB及NFC的RISC-V MCU/SoC。片上集成了2Mbps低功耗蓝牙BLE及4Mbps高速2.4G通讯模块、USB高速控制器及480Mbps收发器、USB全速控制器及收发器、Type-C/PD控制器及PHY、NFC近场通信无线接口、段式LCD驱动模块提供LED点阵屏接口、ARGB单线RGB驱动、2个SPI、4个串口、22路ADC、QSPI、触摸按键检测模块等丰富的外设资源。如下图更多详细的资料可去官网下载对应资料了解。2.2 CH587 指纹库特点针对指纹采集方案沁恒提供了一个指纹库。这个库只负责算法部分特征提取、模板匹配、存储管理与硬件分开设计。好处是换传感器不用改算法只需要修改传感器对应的板级驱动即可。对于做指纹产品的开发者来说接口设计既照顾了放手指就注册/识别的简单场景也支持更精细的控制分步注册、运行时调参、查重、1:1 验证、标准格式导入导出用起来很灵活。该库的几个典型特点如下三种匹配方式各服务不同场景接口匹配方式典型场景wchfp_identify1:N 全库识别门禁、考勤wchfp_verify1:1 指定 ID 验证身份确认、授权校验wchfp_compare模板 vs 模板直接比对离线比对、导出后外部验证运行时可调参数丰富参数作用说明matchThreshold匹配阈值调高更严格不容易认错人但可能把本人也拒掉调低更宽松enrollCount注册采集次数1 次快速注册或 2 次按压确认2 次更可靠minutia_filter特征点过滤开关过滤掉质量差的特征点提升匹配稳定性minutia_quality特征点质量门槛设定一个标准低于这个标准的特征点不参与匹配knn_k匹配算法参数调整匹配时的参照样本数量影响精度和速度存储层抽象Flash 接口开放模板管理内置库不直接操作 Flash而是要求使用者提供 4 个最基本的 Flash 操作函数读数据、写数据要保证写入成功、标记失效往数据头部写几个零让这条记录作废、擦除扇区。至于模板怎么存放、存到哪个位置、怎么校验数据对不对、新注册时自动分配哪个 ID、删除后的空位怎么让下一次注册复用、注册时怎么跟全库查重——这些管理逻辑全部在库内部完成使用者不用操心。2.3 示例说明官方提供一个基于电容指纹传感器 FPC1020 使用示例包含完整的指纹采集录入对比流程。示例应用连接方式如下注意示例除了传感器的连接引脚测试必要的引脚还有调试串口 UART0 RXPB4TXPB7115200还需要模式 / 删库按键示例为 PB22按下接地指纹控制|RSTPC11低电平复位常态高INTPC12高有效还有可选的屏幕非必要屏 SPI0重映射到 PB 口CSPB12SCKPB13MOSIPB14|屏控制 DCPC7RSTPC8电源/背光PB6低电平开测试实物图如下指纹示例工程烧录下载可参考官方 SDK 工程包也就是官方的 EVT 里面有一份 CH587 评估版说明书 里面包括了工程快速上手的说明 2.4 测试效果程序烧录以后通过串口查看 DEBUG 信息上电后的信息如下2.4.1 指纹注册上电之后我们通过手指按压指纹模块可以进行指纹录入/注册效果如下图不仅如此如果我们故意去按歪或者按一点点都会有提示在实际使用中我们可以使用提示音或者指示灯来表示是否注册成功。2.4.2 指纹识别我们通过短按 PB22 按键切换至指纹识别模式其中图中的 score 是阈值示例默认是 25我们可以进行配置修改: 范围是 0~100调高误识更少、但是相对的拒识更多。如果没有识别成功会有如下显示以上演示还是很直观有效的具体更多的使用说明可以自行参考例程说明文档 。三、应用展望上面我们介绍了 CH587 的指纹库以及应用示例与市面上常见的 AS608、R307 等集成式指纹模组相比该方案在成本、自主性与可扩展性上具有显著差异。集成式模组的优势在于开发简单、上手门槛低可以快速实现指纹识别功能。但该类方案也存在明显短板硬件整体成本偏高指纹算法属于厂商闭源固化开发者很难修改识别参数模板格式不对外开放整体可定制能力受限不利于做深度的功能迭代与业务适配。本文介绍的 CH587 主控方案系统无需外挂专用芯片即可完成从图像预处理、特征提取到模板比对的全流程运算在降低硬件成本的同时将图像优化策略、匹配阈值、注册逻辑与模板存储管理等关键环节完全开放给开发者。这种架构不仅赋予了设备更高的自主性与可定制性也使得固件迭代与功能扩展不再受限于第三方模组的接口定义与供货周期。随着低功耗 MCU 算力与硬件加速技术的持续演进主控即算法平台的轻量化指纹方案将在智能门锁、便携式身份认证终端、工业权限管控、物联网安全接入等对成本与自主性敏感的嵌入式场景中展现出更强的竞争力。而 CH587 本身兼具 BLE 蓝牙能力还可进一步拓展指纹本地加密、蓝牙同步、远程状态上报等附加功能对于希望在产品定义、算法调参与供应链掌控上获得更大自由度的开发者而言该方案无疑提供了一条值得深入探索的技术路径。