指纹识别-传感器原理

article/2025/8/18 18:17:53



我们了解过了指纹识别的大致流程后,这篇文章用来介绍指纹识别硬件中最重要的部分,传感器。其实传感器、芯片也要符合物理学的基本原理,他们都是物理学的原理的一种实现,我们可以从光、电、声、热、力这几个基本的物理研究领域中展开,看看今天主流的指纹识别传感器的分类和实现。

一、光学传感器

光学传感器的发展历史可能是最久的了,已经有30年的历史了。实现的原理也是最简单的。
它主要是利用光的折摄和反射原理,将手指放在光学镜片上,手指在内置光源照射下,光从底部射向三棱镜,并经棱镜射出,射出的光线在手指表面指纹凹凸不平的线纹上折射的角度及反射回去的光线明暗就会不一样。用棱镜将其投射在电荷耦合器件上CMOS或者CCD上,进而形成脊线(指纹图像中具有一定宽度和走向的纹线)呈黑色、谷线(纹线之间的凹陷部分)呈白色的数字化的、可被指纹设备算法处理的多灰度指纹图像。
图1
图1

光学指纹传感器的优点主要表现为:
1. 抗静电能力强、系统稳定性较好、使用寿命长
2. 灵敏度特别的高
3. 能提供高分辨率的指纹图像(可以达到500 dpi)。

缺点也很明显:
1、潜在指印(多次按压),会降低指纹图像的质量
2、台板涂层及CCD阵列会随时间推移产生损耗,可能导致采集的指纹图像质量下降
3、体积比较大,功耗控制不好

用途:
鉴于光学传感器的体积都比较大,因此它的应用领域主要集中在指纹门锁,保险箱,汽车指纹防盗。

发展:
光学传感器在传统对体积、功耗要求不是苛刻的行业中还占有很大市场份额,但是在手机等移动终端这个大市场迷失了。
16年底Synaptics发布了FS9100这种新型的光学sensor,主要是看中了光学传感器的穿透性(可以穿透1mm左右的glass),目标是underglass。而且随着In Display屏内指纹识别的大趋势,光学传感器必然又会带着新技术卷土重来。

二、电容传感器

电容式传感器应该是目前手机及便携式终端设备最热门的了,当然,存在即合理。既然电容式传感器占有了这么大的市场,它有什么优势呢?
其原理是将电容感整合于一块芯片中,当指纹按压芯片表面时,内部电容感测器会根据指纹波峰与波谷而产生的电荷差,从而形成指纹影像。如下简图,可以把上面的凹凸认为是指纹的谷和脊,那么同传感器就会形成不同的电容差,这样传感器就可以根据这些不同的电容差画出指纹的纹理。

这里写图片描述

电容传感器又分为主动式和被动式,我们可以先参考下面两张图。

主动式:

原理主要是通过外加的驱动信号(如Ring)加载到手指上以增强手指表面的电荷,使底下的感应阵列接收电场信号并对信号进行放大,根据指纹凹凸不一致底下芯片感应到的电场也不一致从而重现指纹(如下图):
这里写图片描述

被动式

工作原理则不一样;其是利用手指按在芯片表面时,指纹的波峰波谷对芯片内部电容上下电极电荷分配的比例影响程度来对指纹进行重现指纹,无需额外增加驱动源,芯片结构非常单纯(如下图),也因为无额外驱动信号,所以模组也无需外置Ring,模组结构也非常简单。
这里写图片描述

主动式和被动式的原理也很好辨别,主动式就是额外加了激励电源。可以想象主动式的电容传感器穿透会比较强,但是无可厚非的会带来更多的噪声,所以究竟是主动式还是被动式的传感器好,不能一概而论,还是要看各家的技术。

优点:
1、芯片和模组可以做的很薄
2、功耗更容易控制

缺点:
1、穿透率比较低
2、价格相对较高
3、防水、防污性不强

发展:
电容式的传感器到目前来说,是使用最普遍的。但是,眼看着指纹识别要向屏内指纹识别的方向发展,而电容式的穿透率大概在200um左右,基本的玻璃盖板都很难穿透,而且需要透明显示的物理特性也无法满足。所以,电容式的传感器在将来肯定还是会占据了传感器的大片江山,但是高端市场收到的冲击,却无能为力。

三、射频/超声波传感器

如果把射频传感器划到光学传感器的范畴中未免有些牵强(光也是一种特殊的电磁波),射频指纹模块现阶段包含无线电波探测与超声波探测两种,

射频传感器原理

原理与探测海底物质的的声纳类似,是靠特定频率的信号反射来探知指纹的具体形态的。这一类指纹模块最大的优点便是手指无需与指纹模块相接触,因而不会对手机的外观造成太大影响。基于这一点,射频指纹模块也成为了未来指纹识别的主要发展方向之一。
射频

超声检测原理是相同的,就是依靠反射波的时间差探知脊和谷的距离差,根据这个距离差绘制出指纹图像。

超声波传感器原理

特制的晶片(称为换能器)在电脉冲的激励下,产生机械振动(类似于人摸一下电门浑身一抖),振动产生超声波脉冲(pulse),超声波脉冲在传播过程中,会被传播介质(如人体)一部分一部分地被反射或者散射回来(echo),尤其是介质中物理性质不连续的地方,(比如手机上方的一根手指),反射波尤为强烈。反射或散射回换能器的回波,又使换能器产生振动,这种振动被换能器转换为电信号,对于电信号进行不同的处理,可以得到不同的信息,比如传播介质的结构,有没有运动的物体在介质中,介质的弹性等等。

这里写图片描述

如果把超声波的声束想像成一条线,那么一次超声PULSE-ECHO得到的通常只有一条线的信息,指纹至少是一个面,用超声扫描的方式在不同的位置进行PULSE-ECHO就能够得到一系列线的信息,从而获取整个指纹信息。医院里用的超声成像设备也大多就是这样的工作原。    
  • 1

如下图就是排列成矩阵型的换能矩阵,每个换能矩阵可以代表了图像的一个pixel。

这里写图片描述

四、力学/热学传感器

虽然从物理学角度讲,可以通过力学(即按压)或者热学(即温差)来实现脊和谷的判别。但是在实际实现的sensor却没有很大的可行性。
力的传导需要一个比较硬的传导载体,但是如果载体比较硬,那么指纹这么微小的距离差异,形成的图像必然是模糊一片;热敏sensor也曾经被开发过,但是热敏传感器受外界温度、两次按压时间间隔影像太大,无法达到消费级电子的要求。因此这两种传感器都匿迹在时间的长河中。

其实不管是指纹传感器,还是其他各种传感器,运用第一性原理,都可以找到原理的根源。对于我们这些工科生深入了解一个技术、一个行业,都是有很大裨益。

图片来自互联网,侵删
By 一个不务正业的程序员。


http://chatgpt.dhexx.cn/article/kCH68hIV.shtml

相关文章

舵机控制的机械爪

■ 背景 先驱威锋白超发送过来机械爪购买样品连接 机械爪子汇总机器人机械手臂配件大扭力舵机控制驱动板diy夹持器 。利用其中一种完成 双轴机械臂前端抓持机械结构。 ▲ 由舵机控制的各种机械爪 手边有一个从白超订购过来的平行机械爪,其中舵机来自于 海灵智电 提供…

一、智能车舵机控制

前言: 本文章主要是近期有关舵机知识的总结,将分别从舵机的控制原理,控制流程和代码实现流程几个方面作简要介绍,由于时间紧急,难免有疏漏错误之处,欢迎留言指正 一、舵机的控制原理: 我们本次智…

单片机PWM舵机控制

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、PWM是什么?二、如何控制舵机? 一、PWM是什么? PWM,英文名Pulse Width Modulation,是脉冲宽度调制缩…

快速学习Stm32舵机控制板控制多个舵机运动以及调速

本次分享stm32对多个舵机的控制,之前讲解过单个舵机的控制。以及控制原理,定时器的使用和pwm的输出来控制一个舵机的角度转向。这次就和大家分享一下多个舵机的控制以及调速。利用单片机实现对 8 个舵机的同时控制,掌握多个舵机控制程序实现方…

51单片机舵机控制

51单片机舵机控制系统 概述硬件设计程序设计PWM波的产生矩阵按键功能与数码管显示参数传递完整程序 外加模块 概述 在这篇博客中,将介绍一个基于51单片机的舵机控制系统,其可以通过矩阵按键输入角度,舵机打到预定角度,并在数码管…

Arduino基础入门篇28—舵机控制

舵机是一种位置「角度」伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。目前在高档遥控玩具、航模、机器人中已经得到普遍使用。舵机是一种俗称,其实是一种伺服马达。本篇通过官方驱动库来实现舵机控制。 1. 舵机介绍 结构组成 舵机实…

OpenMV输出PWM,实现对舵机控制

OpenMV的定时器官方函数介绍:Timer类 – 控制内部定时器 目录 OpenMV的PWM资源介绍 为什么要用OpenMV输出PWM OpenMV的PWM资源分配 资源 注意 建议 PWM输出代码 代码讲解 Timer Timer.channel tim.channel与Timer.channel区别 Timer.channel解析 OpenM…

舵机控制原理及常见问题

舵机控制 工作电压:3.5V/4,2V/4.8V —— 6V/6.8V/7.2V/8.4V(看具体型号参数) 切记:舵机不要接在电脑USB上调试,舵机启动瞬间大电流(10-24倍工作电流)可能会导致电脑死机 注意事项:PWM波形正确时&#xf…

第9章 舵机控制

有一种电机可以在程序的控制下,在一定范围内连续改变输出轴角度并且可以保持住。这种电机最早被用在航模和船模等遥控模型中,控制各种舵面的转动,这就是舵机。现在舵机除了运用在 遥控模型中,也大量的运用在各种机器人、机械臂的关…

Arduino入门001 - 舵机控制

Arduio基础入门篇001 - 舵机控制 一、舵机介绍 1,结构组成 一般来讲舵机主要由以下几个部分组成,舵盘、减速齿轮组、位置反馈电位计、直流电机、控制电路等。舵机的输入线共有三条,如图1所示,红色中间,是电源线&…

舵机控制(STM32F103C8T6)

前言 本文是以STM32F103C8T6作为主控芯片,通过PB6端口输出PWM,实现控制180舵机。 一、舵机控制原理 (一)概述 舵机是一种位置伺服驱动器器,是一种带有输出轴的小装置。当我们向伺服器发送一个控制信号时,…

Java 源代码怎么执行的

许多 Java 虚拟机的执行引擎在执行 Java 代码的时候都是解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码执行)混合运行。 大体流程为: 编写 java 文件源码通过 javac 编译器将 java 源码编译为字节码流…

Java基础-java程序代码截取字符串及判断字符串是否包含某个字符(串)

文章目录 有一串字符串,是一串拼接码,如何截取获取想要的字段?判断字符串是否包含某个字符(串)indexOf方法 有一串字符串,是一串拼接码,如何截取获取想要的字段? public class Inte…

编写高质量JAVA程序代码的建议

--------------------------------------------------------------------------------------------------- 前言:原著《改善JAVA程序的151个建议》有151个建议,我在拜读的过程根据自己的理解合并了其中的几个,并将每个建议的核心要义进行了一…

java简单记事本代码_简单记事本的java程序代码

展开全部 天啊, 冖_Na0 为什么会有62616964757a686964616fe4b893e5b19e31333262343038我编的记事本代码呢???呵呵……你肯定是“请教”过我的吧?? 呵呵……我自己编了一个,不过呢,没…

IntelliJ IDEA 写java程序代码

快捷键 注释 单行:选中代码 ctrl/ 再来一次就是取消 多行:选中代码 ctrlshift/ 再来一次就是取消 格式化 CtrlAltL

Android studio如何运行java程序代码

先看Java程序类 public class GGG {public static void main(String[] args) {System.out.println("我是java程序");} }就是这么简单的一个java程序,在之前studio上可以直接运行,但是像现在升级studio后就发现运行报错: 首先java…

怎样使用lntelliJ IDEA 编写Java程序代码?

下面使用IDEA创建一个Java程序,实现在控制台上打印HelloWorld!的功能,具体步骤如下。 1.创建Java项目 进入New Project界面后,单击New Project选项按钮创建新项目,弹出New Project对话框,如下图所示。 New Projeet 对…

Java学习代码合集

其实我学习java最根本的原因是:我是一个挺关注外在的人,虽然是个程序员,所以我很喜欢写出那些带有漂亮的界面的程序,因为C总是控制台,我不是很喜欢,在这份java代码合集中,我会记录自己学习Java界…

Java开发常用代码

一.获取UUID UUID uuid UUID.randomUUID(); String str uuid.toString(); // 去掉“-” String s str.replaceAll("-", "");二.获取固定格式的时间字符串 第一种 //获取当前时间对象 Date d new Date(); //创建日期格式化类对象,”yyyy/MM/dd HH:mm…