手机指纹调试知识

1.指纹识别基本原理:

随着移动支付的兴起和生物识别技术的发展,指纹识别因其便捷性、实用性、可靠性以及相对成熟的技术,逐渐成为智能手机上的标配。


1)主流识别方式

光学式:光学识别是最老的指纹识别技术。常见的指纹打卡、指纹门禁都是光学式的,体积大、反应慢,对手指的干净要求很高,目前不适合移动智能终端。

电容式:电容式指纹传感器是目前在智能手机上应用最普遍的。以技术面来看,电容式指纹识别技术(算法)的供应商为AuthentecValidityFingerPrint Cards (FPC)、IDEX等。其中Authentec被苹果买下,Validity也被Synaptics收购,因此与国内芯片厂合作的主要是FPCIDEX,合作方式主要是FPCIDEX提供授权算法给到芯片厂商生产。只能到达手指表皮层,对手指的干净要求比较高。

射频式:射频是目前较新的技术方案,属于电容式的一种。通过射频传感器发射微量的射频信号,穿透手指的表皮层获取真皮层的纹路以获取信息。这种方法对手指的干净程度要求较低。射频式受限于apple的专利,其它芯片厂商不敢使用。


(2)采集方式

不管使用什么采集技术,从用户角度来看,主要就两种录入采集方式:按压式滑动式。目前市场上的机型大部分均采用按压式的方式,只有三星的Galaxy S5采用了Synaptics的滑动式模组。按压式指纹采集方式是后续的主流。


2.指纹识别过程

一个典型的指纹识别系统应该包括:指纹识别Sensor+特征提取/匹配模块+特征模板库+应用软件。而指纹的匹配可分为两步,首先是提取待验证的指纹的特征,然后将其和指纹模板库中的模板指纹进行相似度比较,从而判断两个指纹图像是否来自同一手指(一般解锁时相似度的阀指为0.15左右,支付时阀指会适当提高,所以我们平时用指纹支付时会发现没有解锁那么灵敏)。




3.指纹模组结构方案

(1). Coating方案:sensor上面增加颜料涂层

优点:工艺简单成熟,指纹识别率高,价格便宜,量产良率高,几乎所有的指纹芯片厂家都能支持这种方案。

缺点:硬度差,不耐刮,容易划伤,影响使用寿命,颜色很难调成跟TP面板一致,会有色差,影响美观,只适合放在背面。

前期量产的带指纹机型基本都是采用这种方案,代表公司为瑞典的FPC,占据了绝大部分市场,其中华为的mate7、oppo N3,均采用FPC公司的coating方案。


(2). 盖板方案:sensor上面增加一层盖板

盖板方案一般放在手机的正面,按盖板材料一般分为玻璃、蓝宝石、陶瓷三种。

玻璃盖板:优点:材质简单,同TP,性价比高,反盖油墨光泽好,无色差,硬度高,耐刮花,使用寿命长,成本较低。缺点:盖板玻璃需要减薄处理,会影响良率,减薄后玻璃比较脆弱,不抗跌落,对盖板的贴合平整度工艺要求较高。

蓝宝石盖板:优点:外观精美,无色差,硬度极高,抗刮花,抗跌落。缺点:价格昂贵,加工难度大,产能难满足。

陶瓷盖板:性能介于玻璃和蓝宝石之间,工艺不成熟,市场上目前没有量产机型。

 

盖板方案目前开始使用的越来越多,支持盖板方案的厂家有汇顶神盾FPC等。出货的手机厂家主要有苹果魅族。模组形状可以做成圆形或者方形,考虑到成本及供货因素,目前大部分手机厂家均都是采用玻璃盖板方案,蓝宝石方案除iphone、魅族(MX4 Pro)外基本没有其它公司使用。



(3). IFS方案:

         最早由汇顶提出来的,即在TP玻璃home键的位置挖盲孔,把模组埋在盲孔里面,隐藏在玻璃盖板之下,又叫under glass方案,这样设计可以维持android原有虚拟键的设计ID。但此方案目前不具备量产性,盲孔的深度及平整度公差很难控制,模组的贴合也很困难,良率太低。目前汇顶已经不再主推此方案了。

4.厂商情况

目前主流的指纹识别IC厂商,有美国的AuthenTec(隶属于苹果公司)、Synaptics(新思,通过收购生物ID识别公司Validity正式进军指纹识别领域)、瑞典的Fingerprint Cards AB(FPC)、挪威的IDEX(主要是算法)、韩国的CrucialTec、也有台湾地区的厂商,其中多说是触控IC厂商转型的,如FoaclTech(敦泰)、Elan(义隆),其它还有神盾、Metrics(茂丞科技)。此外,还有大陆有Goodix(汇顶)、Silead(思立微)、MicroArray(迈瑞微)等。

 

(1)     AuthenTec(美国)

全球最大的感应性指纹识别传感器最大供应商,产品仅应用在苹果产品中,不向同行业提供技术和产品。采用基于电容和无线射频的半导体传感器,与iPhone手机Home键结合,最上层为蓝宝石盖板,借助公司的TruePrint专利技术,能够读取皮肤表层下的活动层(人的指纹真正所在之处),实现极其精确可靠的指纹成像。芯片封装由台积电完成。

 

(2)     FingerprintCards(瑞典)

FPC总部在瑞典哥德堡,并在纳斯达克上市。致力于开发、生产和销售生物识别元件和技术,通过分析和比对个人独特的指纹确认用户的身份。

推出全球首个面向Android智能手机的电容式触摸指纹传感器 FPC1020。FPC指纹传感器采用了自己独特的HSPA(高灵敏度像素放大器)技术,传感器的每个像素单元能检测到非常微弱的信号)。目前已见方案最多的厂商,客户包括金立、vivo、华为等,特点是技术成熟,合作伙伴多。由中芯国际等提供封装技术支持。

目前量产的主要采用coating方案:1.与手机Home键结合,滑动式。代表机型:康佳凡高V981。2.置于手机后盖,滑动式。代表机型:vivo Xplay 3S 、金立T1。3.置于手机后盖,按压式。代表机型:华为Mate 7。

 

(3)     Goodix(中国)

目前大陆最成熟的指纹芯片方案公司,MTK唯一战略合作伙伴。采用电容式传感器采集技术。在算法、方案上面跟苹果具有很大的相似性,出口有风险。

主要量产的主要采用按压式盖板方案:1.与Home结合正面结合。2.背面按压。3.IFS技术方案,Home键完好,指纹识别模组置于下方。手机客户:魅族、金立、朵唯、vivo、华为等,代表产品:MX4 Pro、vivo X6。

5.功能参数

接口:SPI+INT+RST+AVDD+VDDIO+GND

AVDD2.8v~3.3V

VDDIO1.8v~AVDD

SPI通讯速率:10Mb左右

分辨率:508 PPI,每英寸508个像素点。

功耗:工作模式一般几十个mA,睡眠模式几十个uA。

FRR拒真率(False RejectionRate)<1/%。跟用户体验相关。

FAR认假率(Falseacception Rate)<1/50000。跟系统安全相关。

6.软件架构

1)软件整体架构:主要模块有指纹应用指纹客户端指纹服务端设备驱动。指纹应用包括指纹注册、删除、解锁等应用,指纹客户端主要为上层应用和指纹服务端提供访问通道,指纹服务端用来管理指纹注册、删除、匹配及数据加密,设备驱动部分为指纹服务端提供模组硬件操作接口获取指纹数据。

 

2trustonicT-base架构:

NormolWorld(REE):Rich Execution Environment

SecureWorld(TEE):Trusted Execution Environment

CA:ClientApplication

TA:Trusted Application,TA编译后生成 .tabin文件,放在 /system/app/mcRegistry/目录下

TLC:TrustedApplication Layer Connector

GP:GlobalPlatform,国际标准组织,为TEE的API和安全服务制定统一标准

NormalDriver:REE环境下的驱动代码

SecureDriver:TEE环境下的驱动代码

Trustonic的开发资料目录:alps/vendor/trustonic/platform/mt6735/trustzone/doc/t-base302A/


3)支付宝架构:

阿里最新发布的支付宝(alipay)2.0版本,提供了一套标准的指纹支付流程及API接口,指纹芯片厂商需要适配并实现支付宝上层的接口,才能只支持。


支付宝REE接口需求.doc  ,支付宝TEE适配pdf

7.项目调试过程

>REE下SPI驱动调试,确认模组基本功能ok。

>Trustonic代码集成,搭建指纹支付的安全环境,并通过MTK的t-base_sanity_test自动化测试工具验证ok。

>TEE环境下SPI驱动调试,确认REE驱动跟TEE驱动通讯正常。

>支付宝应用接口联调。

>通过支付宝验收认证。

驱动调试过程:

①kernel-3.10/drivers/misc/mediatek/下新增fingerprint文件夹,然后将驱动代码复制到此文件下面。

②修改kernel-3.10/drivers/misc/mediatek/目录下的Kconfig文件,新增条目source"drivers/misc/mediatek/fingerprint/Kconfig"。

修改Makefile.mt6735文件,新增条目“obj-y += fingerprint/”,把指纹代码编译进去。

③修改kernel-3.10/arch/arm/configs/目录下的默认配置文件,增加指纹配置项更改为CONFIG_FINGERPRINT_GOODIX_GF516M=y。

配置SPI、INT、RESET等GPIO功能端口,可在驱动代码里面配置或者通过dws配置。



④驱动流程:注册SPI字符设备—>注册SPI驱动—>初始化SPI、模组参数—>中断(uevent事件上报)—>ioctl()—>open—>write/read/reset(通过cmd方式与TEE侧驱动交互)—>close。

8.项目问题点

(1). SPI端口配置:MTK平台有两路SPI端口,默认打开gpio是gpio65-gpio68,若想使用gpio3-gpio6这组gpio作为spi口,需要按照下面的方法配置:

 

① 在dws文件中正确配置gpio3-gpio6的mode,dir等信息;

②在dws文件中将gpio65-gpio68配置成非 spi mode;

③修改alps\kernel-3.10\arch\arm64\boot\dts\mt6753.dtsi spi-padmacro = <1>;若贵司的project是32bit的文件路径为:alps\kernel-3.10\arch\arm\boot\dts\mt6753.dtsi 谢谢! bestregards!


(2). SPI工作模式设置。SPI有四种工作模式(SPI0~SPI3),由时钟线SCK的相位和空闲时电平极性组合决定。一般指纹模组都只支持SPI0模式,配错模式会导致模组通讯不上。


(3).中断引脚端口配置:高电平中断。汇顶的GF518M芯片要使能上拉,不然中断信号起不来,这点问了汇顶的研发,他们也不清楚。


(4). 指纹算法lib库的位数一定要跟系统位数保持一致。通过Log信息很容易看出来,同时lib库要用最新的。

 

(5). 通讯不正常时候,可以修改SPI的速率,不影响功能时适当降低,注意采集图片的模式下,SPI的通讯速率不能太低,因为一帧图片数据比较大,太慢会延长识别的时间,一般要求通讯速率要大于4Mb,其它模式1~2Mb足够了。

 

(6). 模组功耗偏大问题,指纹模组工作模式设置错误,灭屏状态没有设置睡眠模式,原因是指纹模组在灭屏时会产生一个假中断信号(中断引脚配成上拉引起),导致没睡下去。

 

(7). 固件升级失败。——升级流程问题,更改固件升级配置参数。

 

(8). 静电引起固件损坏。

 

(9). 指纹数据丢失,导致解锁有震动,不能解开。——系统上层跟指纹管理模块的指纹命名长度控制不一致,导致指纹模板数据篡改,指纹功能异常。

 

(10). 指纹解锁失效。——第三方动态锁屏与指纹解锁冲突。

 

(11). 指纹设备连接失败。——SPI通讯挂死,mtk bug;trustonicbug;ESD打坏模组Flash;TA文件拷贝损坏。

 

(12).指纹录入失效,无进度。——采集面积过小,质量较差,增加判稳机制,改善算法及固件;第一次开机采集basic帧失败,导致后续无法注册,更改为每次注册指纹时先检测basic帧是否ok,不ok时重新采集。

 

(13). 录入、解锁功能不稳定。——硬件连接器接口接触不良,模组镀膜异常导致。


备注, 支付所需的安全环境提供商有Trustonic, 东软,高通有自己的安全环境.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值