首页 生物特征识别技术完整论文(可编辑)

生物特征识别技术完整论文(可编辑)

举报
开通vip

生物特征识别技术完整论文(可编辑)生物特征识别技术完整论文(可编辑) 生物特征识别技术完整论文 11生物特征识别技术简介 com征识别的意义 生物识别技术Biometric Identification Technology是利用人体生物特征进行身份认证的一种技术[1]生物特征是唯一的与他人不同可以测量或可以自动识别和验证的生理特性或行为方式分为生理特征和行为特征生物识别系统对生物特性进行取样提取其唯一特征并进行身份认证典型的生物识别系统的系统结构如图11 图11 生物识别系统结构框图 现行的许多计算机系统中包括许多非常机密的系统都是使...

生物特征识别技术完整论文(可编辑)
生物特征识别技术完整论文(可编辑) 生物特征识别技术完整论文 11生物特征识别技术简介 com征识别的意义 生物识别技术Biometric Identification Technology是利用人体生物特征进行身份认证的一种技术[1]生物特征是唯一的与他人不同可以测量或可以自动识别和验证的生理特性或行为方式分为生理特征和行为特征生物识别系统对生物特性进行取样提取其唯一特征并进行身份认证典型的生物识别系统的系统结构如图11 图11 生物识别系统结构框图 现行的许多计算机系统中包括许多非常机密的系统都是使用"用户ID密码"的方法来进行用户的身份认证和访问控制的实际上这种 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 隐含着一些问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 例如密码容易被忘记也容易被别人窃取而且如果用户忘记了他的密码他就不能进入系统当然可以通过系统管理员重新设定密码来重新开始工作但是一旦系统管理员忘记了自己的密码整个系统也许只有重新安装后才能工作有关机构的调查表明因为忘记密码而产生的问题已经成为IT厂商售后服务的最常见问题之一除了计算机网络及其应用系统外一些传统的需要进行身份验证的场合也存在着类似的安全性问题例如证件的伪造和盗用不正当的转借等一些犯罪通过伪造证件进入机密场所以窃取机密信息有的犯罪伪造签证和护照非法入境或移民这是因为传统的证件使用了易于伪造 未经加密的纸制证件 视网膜是一些位于眼球后部十分细小的神经一英寸的 150它是人眼感受光线并将信息通过视神经传给大脑的重要器官它同胶片的功能有些类似用于生物识别的血管分布在神经视网膜周围即视网膜四层细胞的最远处 视网膜扫描设备要获得视网膜图像使用者的眼睛与录入设备的距离应在半英寸之内并且在录入设备读取图象时眼睛必须处于静止状态使用者的眼睛在注视一个旋转的绿灯时录入设备从视网膜上可以获得 400个特征点同指纹录入比较指纹只能提供30到40个特征点用来录入创建模板和完成确认同虹膜识别技术一样视网膜扫描可能是最可靠最值得信赖的生物识别技术但该技术未经过任何测试而且是否会损伤使用者的眼球还有待进一步研究 3 面部识别 面部识别技术通过对面部特征和它们之间的关系来进行识别识别技术基于这些唯一的特征时是非常复杂的这需要人工智能和机器知识学习系统用于捉面部图像的两项技术为 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 视频和热成像技术标准视频技术通过一个标准的摄像头摄取面部的图像或者一系列图像在面部被捕捉之后一些核心点被记录 a对面部外观特征进行 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 b对面部图像进行全局分析 c对面部热谱图像及面部的红外光谱图像中的特征进行分析 尽管已有一些有关面部识别技术的实用产品但目前面部识别系 统对采集到的面部图像仍有一定的限制如背景光线表情等其大范围的识别正确率最高只在99左右因此面部识别技术主要适合应用于一些使用者为配合型的应用场合在抗拒型人群以及完全无人工干预的场合其使用效果仍不尽人意 4 签名识别 签名作为身份认证的手段已年了而且我们都很熟悉在银行的格式表单中签名作为我们身份的标志将签名数字化是这样一个过程测量图像本身以及整个签名的动作在每个字母以及字母之间的不同的速度顺序和压力签名识别和语音识别一样是一种行为测定学 使用签名识别更容易被大众接受而且是一种公认的身份识别的技术随着经验的增长性情的变化与生活方式的改变签名也会随而改变为了处理签名的不可免的自然改变我们必须在安全方面以妥协用于签名的手写板结构复杂而且价格昂贵因为和笔记本电脑的触摸板的分辨率有着很大的差异我们在技术上很难将两者结合起来很难将它的尺寸小型化 识别音识别也是一种行为识别技术语音识别设备不断地测量录语音的波形和变化语音识别基于用户可以很自然地接受 和其他的行为识别技术一样语音因为变化的范围太大故而很难进行一些精确的匹配语音会随着音量速度和音质的变化 例如当你感冒时 而影响到采集与比对的结果基因识别 指纹识别指纹识别作为识别技术已经有的历史了指纹识别技术通过分析指纹的全局特征和指纹的局部特征特征点如嵴谷和终点分叉点或分歧点从指纹中抽 取的特征值可以非常的详尽以便可靠地通过指纹来确认一个人的身份平均每个指纹都有几个独一无二可测量的特征点每个特征点都有大约七个特征我们的十个手指产生最少4900个独立可测量的特征这足够来确认指纹识别是否是一个更加可靠的鉴别方式使得某些人或某些群体的指纹因为指纹特征很少故而很难成像指纹是人体独一无二的特征并且它们的复杂度足以提供用于鉴别的足够特征 如果想要增加可靠性只需登记更多的指纹鉴别更多的手指最多可以多达十个而每一个指纹都是独一无二的 扫描指纹的速度很快使用非常方便 读取指纹时用户必需将手指与指纹采集头相互接触与指纹采集头直接接触是读取人体生物特征最可靠的方法指纹采集头可以更加小型化并且价格会更加的低廉可以见到指纹识别技术是目前最方便可靠非侵害和价格便宜的生物识别技术解决方案对于广大市场的应用有着很大的潜力 鉴别可靠度 可否运用1对1比照 可否运用1对多比照 传感器价格 尺寸 虹膜 很好 是 是 高 较大 视网膜 很好 是 是 高 较大 面部 一般 是 否 低 中等 签名 一般 是 否 低 较小 语音 一般 是 否 极低 非常小 基因 最好 是 否 极高 很大 指纹 很好 是 是 较低 非常小 由上面分析可知指纹识别在各种生物特征识别领域中综合性能较好因此指纹识别技术在认证系统中被广泛应用 12嵌入式系统简介[7][8] 目前嵌入式系统技术已经成为了最热门的技术之一但是对于何 为嵌入式系统什么样的技术又可以称之为嵌入式技术仍在讨论之中 从广义上讲可以认为凡是带有微处理器的专用软硬件系统都可以称为嵌入式系统作为系统核心的微处理器又包括三类微控制器 MCU 嵌入式微处理器 MPU 数字信号处理器 DSP 32位以上的微处理器 著名学者海因德尔Heinai在其权威的《指纹鉴定》著作中周礼义疏《仪礼义疏》我国在广泛应用指掌纹的漫长历史中随着对外文化的交流应用指纹的传统习惯传播到了世界上许多国家中国也是世界公认的指纹发源地公元1788年梅耶J Mayer 首次著文指出了至今仍然被承认的指纹的两个重要特性一是没有人的指纹是完全相同的 唯一性 另外一个是指纹的式样终身不会改变稳定性 公元1823年珀金杰J Purkinie首次把指纹纹形分成了9类 公元1858年赫谢尔W Herschel规定与官方定契约必需捺指纹 公元1880年福尔茨Henry Fauld发表了指纹认证的论文第一次科学地提出了指纹的个体性和唯一性指纹唯一性的发现使得指纹作为一种更为有效的鉴别方法而得到采用 公元1889年亨利E R Henry在 总结 初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf 前人研究成果的基础上提出基于指纹细节特征识别Minutia-Based的理论并提出了用指纹识别来进行确定罪犯身份的设想从而奠定了现代指纹学的基础直到个世纪后的今天采用基于Minutia- Based的指纹识别算法仍是主流 公元1892年英国的弗朗西斯?盖尔顿Francis Galton爵士对指纹进行了广泛的研究写了《FingerPrint》一书向世人介绍了用于单个指纹分类的 细节特征首次系统地阐述了指纹学完善地确立了一整套指纹识别的方法并且用于刑事侦察中对犯罪嫌疑人的甄别和鉴定我国的指纹自动识别技术研究已经经历了时至近日自动指纹识别技术已经从单一系统的应用发展到网络化的全面应用20世纪90年代末期价格较低的指纹采集器快速匹配的算法发展为指纹技术用于个人身份识别提供了广阔的市场空间指纹识别技术被广泛应用意味着它能在影响亿万人的日常生活的各个地方使用通过取代个人识别码和口令指纹识别技术可以阻止非授权可以防止盗用ATM蜂窝电话智能卡桌面PC工作站及其计算机网络在通过电话网络进行的金融交易时可以进行身份认证在建筑物或工作场所可以取代钥匙证件图章等指纹识别技术的飞速发展及其广泛应用开创了个人身份鉴别的新时代 商用指纹识别技术在中国的应用虽然还只有10年左右的时间但已得到了很大的发展和进步国内从业公司不断增加理论研究不断得以增强国产商品质量和档次不断提高产品价格逐渐降低到合理水平指纹识别应用领域已从简单的门禁扩展到门禁考勤金融社会福利计算机信息安全及ID证卡等多个领域中国庞大的潜在市场吸引着越来越多的国内外投资者涉及这一领域这一切都显示了中国指纹市场极其广阔的前景minutiae的特征点这些数据 通常称为模板 保存为1K大小的记录最后通过计算机模糊比较的方法把两个指纹的模板进行比较计算出它们的相似程度最终得到两个指纹的匹配结果 com像的采集[16][17][18] 指纹采集模式主要分为离线式和在线式两种所谓离线式就是指 在指纹采集时利用某些中间介质如油墨和纸张来获取指纹图像在通过一定的技术手段将图像数字化输入计算机它属于非实时采集目前离线式采集方式在大多数场合已经消失所谓在线式是通过与计算机联机的先进指纹传感器的专用指纹采集设备将真实的人体指纹直接变成数字图像数据实时传输给计算机 基于指纹传感器的在线式实时采集设备以其操作简单实时性强采集效率高图像质量好等优点广泛应用于自动指纹识别领域 指纹传感器是采集指纹的装置是一切自动指纹识别系统的必备设备从原理上目前见到的指纹传感器分下面3类 1 光学录入 它是最早开发的指纹输入装置多采用红外主动光斜向照射指尖利用全反射的原理在反射方向接收指纹影像指纹影像由CCD摄像头接收输出的视频信号由图像采集卡数字化后输入计算机近年来也有用CMOS摄像头直接获取指纹图像的数字信号通过计算机并口或USB口输入计算机由于不需要附加卡这种带USB口的CMOS指纹传感器有成本低且安装方便的特点很受市场欢迎 2 硅晶体电容式传感器录入 硅晶体电容式传感器是最近在市场上才出现的这些含有微型晶体的平面通过多种技术来绘制指纹图像电容传感器通过电子度量设计来捕捉指纹电容设备能结合大约100000导体金属阵列的传感器其外面是绝缘的表面当用户的手指放在上面时皮肤组成了电容阵列的另一面电容器的电容值因两极间的距离而变化这里指的是脊近的和 谷远的之间的距离压感式表面的顶层是具有弹性的压感介质材料他们依照指纹的外表地形凹凸转化为相应的电子信号硅晶体电容式不需要光线参与小型化有优势并且不需要指尖移动而是一次成像如果能够克服目前一些产品容易受静电影响击穿 尤其在我国北方干燥季节 的缺陷它将是未来最受欢迎的指纹传感器 3 超声波录入 超声波录入是目前采样效果最好的指纹采样设备当超声波源发出超声波通过传感器表面达到手指表面时会被反射回去皮肤凹陷的部分与传感器表面间有较多的空气及杂质会吸收一部分超声波这样皮肤突起部分反射回的超声波比凹陷部分的更强从而依据超声波的强弱形成指纹纹理图像 最近几年指纹传感器的价格已经剧烈的下降至于体积光学传感器的体积从6×3×3英寸降到3×1×1英寸硅晶体电容式传感器的体积差不多是这样或者更小在晶片上集成电路的技术越来越高如数字化电路把指纹信号转化为数字信号强度系统体积将越来越小硅晶体电容式传感器的体积接近与手指大小所需要的体积其长宽大约是1×1英寸高不到1英寸在硅晶体电容式传感器之前一些没有用到的机能是局部调整软件控制自动获取控制 AGC 技术对于大多数光学设备只能通过人工调整来改变图像的质量然而硅晶体电容式传感器提供自动调节象素行以及局部范围的敏感程度从而提高图像的质量AGC在不同的环境下结合反馈的信息产生高质量的图像例如一个不清晰对比度差的图像如干燥的指纹能够被感觉并增强灵敏度在捕捉的瞬间 产生清晰的图像对比度好由于提供了局部调整的能力图像不清晰对比度差的区域也能够被检测到如手指压得较轻的地方并在捕捉的瞬间为这些像素提高灵敏度硅晶体电容式传感器技术最重要的弱点在于它们容易受到静电的影响这使得晶体传感器有时会取不到图像甚至会被损坏另外它们并不象玻璃一样耐磨损从而影响了使用寿命 总之各种技术都具有它们各自的优势也有各自的缺点我们在下面给出三种主要技术的比较 表21 几种取像设备的性能比较 比较项目 光学全反射技术 电容传感技术 超声波扫描 体积 大 小 中 耐用性 非常耐用 容易损坏 一般 成像能力 干手指差但汗多的和稍脏的手指成像模糊 干手指好但汗多的和稍脏的手指不能成像 非常好 耗电 较多 较少 较多 成本 低 低 很高 com像的参数 衡量一个指纹传感器的质量可以通过考察其输出数字化后的指纹图像的质量来确定指纹图像的主要参数有图像尺寸图像分辨率和图像的灰度 1 图像的尺寸 图像的尺寸通常用长度 mm ×宽度 mm 来表示如18mm×127mm或者用垂直方向上的像素点数×水平方向上的像素点数来表示如360×256点阵图像尺寸和点阵数越大则表示指纹传感器的采集区域越宽用于民用领域的指纹传感器大多采用平面采集方式因而不要求较大的采集区域一般不小于127mm×127mm或256156点阵 2 图像分辨率 图像分辨率体现了对图像细纹之处的描述精度通常用每英寸多少点像素 dpi 来表示为了保障提取指纹特征的精确度指纹图像应有较高的图像分辨率一般不低于256dpi要求较高的场合通常不低于500dpi 3 图像的灰度 采集设备与方法不同所采集到的指纹图像也不同绝大多数指纹图像是单色图像我们把没有色调变化的单色图像称为二值图或黑白图具有色调变化的单色图像称灰度图灰度图含有更加丰富的图像信息有利于指纹识别与对比依照对色调变化的表现力灰度图分为2bit4 bit6 bit8 bit几个不同等级一般较多采用的是8 bit 256级 灰度 23指纹的特征 指纹分类是基于指纹脊或谷的整体流向以及指纹的核心点指纹分类的主要目的是方便大容量指纹库的管理并减小搜索空间加速指纹匹配过程我们定义了指纹的两类特征来进行指纹的验证总体特征和局部特征 com 指纹的loop弓型arch螺旋型whorl其他的指纹图案都基于这三种基本图案 指纹的脊纹形式是适应之间的球状表面和半圆形顶端以及横行的指间屈基线生长的除少数弓形纹之外绝大多数箕斗型纹约占9纹型是指纹的基本分类是按中心花纹和三角的基本形态划分的纹形从属于型以中心线的形状定名按我国是指纹分析法指纹分三大类型种 形态可见型与形是类与种的关系 箕型 斗型 弓型 图21 指纹的纹形 1 箕形纹有一条以上完整的基线组成中心花纹箕形线的对侧有一个三角的上下之线包围着中心花纹按箕技的流向分桡侧箕形纹反箕和尺侧箕形纹正箕两种按中心花纹的结构形态又可分为普通箕闭口箕叶形箕横箕和类似斗的箕箕形纹中心和三角之间的距离和纹线数量多少不一有的只有1,2条线多数为十条线左右个别的可达30余条 斗型纹中心花纹呈环螺曲状由内向外扩展与上下包围线汇合形成两个以上的三角为斗型纹分为环形螺形囊形双箕形杂形五种斗型纹的中心花纹在一条环螺曲等纹线构成时与两侧三角相对的弧形线凸面必须是不折不断的并且不与来自从三角中的其它纹线相接 弓型纹 由弓形线和横直线层叠而成中心花纹与上下包围线无明显界限因此也没有真正的三角区分弧形和帐形纹两种 弧形纹是平缓的或略微突起的弧形线组成的一种结构简单的花纹形式帐形纹平行的和突起的弧形线组成花纹中部有直立的或倾斜的纹线将弧形线撑起帐蓬状指纹类型的三类九种是按我国现行的十指指纹分析法划分的这是一种基本分类也叫两极分类法实际上指纹种类远不只这些局部特征 局部特征是指指纹上的节点的特征这些具有某种特征的节点称为特征点两枚指纹经常会具有相同的总体特征但它们的局部特征特 征点却不可能完全相同 指纹纹路并不是连续的平滑笔直的而是经常出现中断分叉或打折这些断点分叉点和转折点就称为"特征点"就是这些特征点提供了指纹唯一性的确认信息特征点的分类有以下几种 最典型的是点和分叉点 图22 指纹特征示意图 很多研究者试图解决指纹分类问题但至今分类算法的误识率仍较高如何提高指纹分类的准确率在自动指纹识别研究中是一个较关键的问题 com指纹匹配的指纹特征 在指纹特征中由于中心点三角点端点叉点纹型相对纹密度纹曲率等元素的分布对于某一个特定人的指纹来说在他的一生中永远不会改变具有终生不变性和惟一性因而被称为永久性特征永久性特征在手指前端的典型区域 也被称为中心花纹区 中最为清晰和明显其分布也最均匀是指纹匹配的主要参数[23] 24指纹图像处理与识别 指纹图像处理与识别是自动指纹识别系统的核心技术其研究已有很长的历史了但是总体的思路变化不大可以把识别算法大致分为下述3个步骤 1 图像预处理 原始指纹图像需要进行滤波除噪脊线增强动态二值化方向信息计算初分类背景分割纹线间隔估计等处理图像预处理的效果好坏直接影响系统性能个别应用还需要指纹图像的压缩编 码 预处理的目的是改善输入指纹图像的质量以提高特征提取的准确性预处理常基于方向图方向图是指纹图像的近似描述方向图的每一元素代表指纹图像中某个给定区域的纹理方向原始指纹图像一般有很多噪声断纹或纹线模糊等需要进行图像增强使用滤波技术以改善质量由于指纹的特征仅包含在纹线的形状结构中所以通过二值化和细化把深浅不一宽度不同的纹线变成灰度相同的单像素宽的细纹线以便于特征提取 2 指纹特征提取 包括纹线细化特征点 交叉点断点中心点三角点等 检测与分类伪特征点消除特征点特性参数计算特征参数压缩编码全局特征 斗箕旋向等 检测等步骤特征提取算法应能适应噪声畸变位移旋转缺损变形等常见的实际情况 经预处理后的指纹图像通过相应的处理算法自动提取指纹的全局特征和细节特征自动指纹识别系统中一般把指纹的类型分为弓左箕右箕斗杂和不可分六类细节特征主要由其位置和方向确定因此细节特征一般只考虑纹线的端点和分叉点包括汇合点眼和桥等也用相应的分叉点表示不再特殊区分在有的系统中还将细节特征与中心之间或细节特征之间的纹线数提取并记录下来提取后的特征还需要进行后处理以去掉假特征 3 指纹特征比对 即比较现场提取的某一个指纹特征点集合和原先建立的数据库中的某一个指纹特征点集合的相似程度通常用代价函数 或匹配能量 来表示相似程度取合适的门限将给出该两组指 纹特征是否来自同一枚指头的判断特征比对的方法有点图松弛匹配方法最小距离图法和Delaunay三角形化变换等 25 指纹算法的具体性能评价指标[24] 就一个自动指纹识别系统来说其指纹识别算法的精确度是整个系统性能指标中最为关键的指标所谓指纹识别算法的精确度是指其识别与提取的特征数量与准确率及进行特征匹配时的准确率下面线介绍一下有关指纹识别的基本概念 匹配 Matching 匹配也称对比过程是指将两个指纹特征模板通过相应的算法求出它们之间的相似程度的处理过程若相似程度大于一个事先给定的门限阈值则该笔对结果被认为接受或者称匹配反之则被视为拒绝或不匹配 认证 Verification 认证是指将现场采集的待测指纹样本与标本指纹特征模板进行一对一比对 One to One Matching简记为11 得出是否是同一人的结论 识别 Identification 识别是指将现场采集到的待测指纹样本与指纹特征数据库中的标本指纹进行一对多的搜索比对 One to Many Matching简记为1N 得出有无此人以及此人是谁的结论 门限阈值 Threshold 门限阈值是用于判别两个指纹特征模板相似程度的分界值门限阈值定的越高表示对相似度的要求越严 1 拒识率和误识率 a拒识率 False Rejection RateFRR 拒识率又称拒真率指将相同的指纹误认为是不同的指纹而加以拒绝的出错概率 其定义为FRR 拒识的指纹数目考察的指纹总数目×100 b误识率 False Accept RateFAR 误识率又称认假率指将不同的指纹误认为是相同的指纹而加以接收的出错概率 其定义为FRR 错判的指纹数目考察的指纹总数目×100 2 拒登率 拒登率 Error Registration RateERR 是用来描述指纹设备的适应性 其定义为ERR 出现不能登录及处理的指纹数目考察的指纹总数目×100 ERR指的是指纹设备出现不能登录及处理的指纹的概率拒登率ERR过高将会严重影响设备的使用范围 3 速度 指纹识别系统的工作速度主要由采集时间图像处理时间比对时间和平均识别速度几项指标构成采集时间通常包含了采集的操作时间和图像的传输时间图像处理时间指的是从计算机处理指纹图像到提取出所有特征输出特征模板所耗费的时间比对时间指计算机对两组指纹特征模板进行比对并给出结果所耗费的时间平均识别速度指计算机从指纹特征模板库中搜索出特定指纹特征模板的速度通常是一个统计平均值其速度的快慢与指纹特征模板库的分类方法有很大关系 4 平衡点即调整指纹识别的门限使拒真率和认假率相同平衡点越低越好 5 建档时间即平均每一枚指纹进行指纹图像采集图像处理特征提取和特征建库的时间建档时间越短越好 6 比对效率即在建档后直接比对一对指纹特征 不进行图像处理和特征提取 所用的时间一般用每秒钟比对的次数来表示当然越多越好 7 特征文件字节数即平均每一枚建档指纹所用的特征文件长短用字节表示越短越好 8 算法通用性即指纹识别算法对指纹传感器的敏感性需要考虑当传感器图像尺寸噪声水平失真程度手指摁印角度等因素改变时识别算法的适应性或程序修改的工作量这一条暂时没有具体衡量指标 9 其他软件工程指标包括程序可靠性易用性界面友好统计资料齐全数据库管理方便等容易看出上述指标互相是有矛盾和抵触的单一指标衡量算法性能很可能是片面的不科学的所以从全面的角度衡量性能指标是有必要的 其中FAR和FRR是一对相互矛盾的技术指标在大多数一对一比对中如普通的指纹门禁指纹证件权限管理与文件保护等指纹应用场合考虑到指纹的多样性和不易仿冒性对FAR指标的要求可适当放宽而把设备的易用性和方便性放在第一位要求FRR值尽可能地低但是在一对多以及高安全度的应用场合则要求FAR尽可能低以避免误认他人事实上在多数指纹设备中可以通过改变系统识别的阈值设定来选择FAR和FRR的数值 高安全性的指纹设备通常具有对活体指纹生命特征的识别能力 能够在很大程度上防止假手指作弊但也正因为如此常常容易受各种因素变化干燥脱皮污染干扰和使用时压力或摆放不当的影响而把真手指当做假手指拒认从而使其易用性指标下降如何处理安全性与易用性这一对矛盾是指纹设备选购时另一个值得注意的问题一般除非是用于无人值守的高安全性场合指纹设备的易用性指标应摆在首位尽量做到方便好用使绝大多数人在各种环境下均能使用 第三章指纹识别算法的实现 3(1指纹图像的预处理[25] 精确的指纹识别高度依赖于对脊线纹理结构细节特点信息的辨识然而在指纹自动识别过程中由于手指本身的因素和采集条件等各种原因的影响从指纹传感器上采集到的原始指纹会不同程度地受到各种因素干扰图像中往往包含很多的噪声造成指纹图像质量严重下降 在实际应用中指纹图像质量不佳尤其是噪声高坏区多和对比度差的劣质指纹图像对指纹细节特征点提取过程的精确度影响很大具体表现有指纹模糊不清造成指纹纹线间的粘连模糊或断裂会导致产生虚假的指纹细节特征点遗漏或忽略了正确的细节特征点在有关描述细节特征点的位置和方向等属性时产生严重失真因此指纹图像质量的高低直接关系到细节特征点提取的有效性和可信性影响系统在匹配时的拒认率和误识率从而最终影响整个系统识别的结果 由此可知在进行指纹分类和细节特征匹配之前一定要先对采集到的指纹图像进行针对性的预处理预处理是指纹自动识别系统中的 最重要的一步它的好坏直接影响着指纹识别的效果预处理的目的就是去除图像中的噪声把它变成一幅清晰的点线图增强图像的可识别性便于提取正确的指纹特征图像的预处理大致可以划分为以下几步 平滑滤波归一化二值化主要流程如下图 图31 预处理主要流程 com平滑 指纹图像预处理的过程是从对原始指纹图像的灰度图进行平滑处理开始的平滑处理就是通过选择适当的滤波程序对原始指纹图像进行滤波处理滤掉图像中不必要的高频成分其主要作用是尽量保持图像中纹路边缘完好的前提下去除原始指纹图像中一些离散孤立的高对比度像素点在后续的指纹图像处理过程中可能造成的计算与分析误差同时也可以尽量消除指纹图像中由于图像噪声存在而导致的纹路中脊线上呈现的许多的微小疵点[26] comela使用二维FFT变换滤波法这些方法主要是针对离线采集的指纹图像比较合适对计算机的性能要求比较高而对于指纹图像质量比较差对比度小指纹重叠区域小而且处理的是活体实时采集的指纹图像这就需要一些更有效速度更快的指纹图像增强算法本文采取的直方图均衡化直方图均衡化处理的中心思想是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布对图像空间域点的增强过程是通过增强函数t EH s 来完成的ts分别为目标图像和原始图像上的像素点 xy 在进行均衡化处理时增强函数EH需要满足两个条件增强函数EH s 在0?s?L-1的范围内 是一个单调递增函数这个条件保证了在增强处理时没有打乱原始图像的灰度排列次序对于0?s?L-1应当有0?EH s ?L-1它保证了变换过程中灰度值的动态范围的一致性同样的对于反变换过程s EH-1 t 在0?t?1时也必须满足上述两个条件通过该函数可以完成s到t的均匀分布转换 在实际处理变换时一般先对原始图像的灰度情况进行统计分析并计算出原始直方图分布然后根据计算出的累计直方图分布tk按式tk [ N-1 tk05]对其取整并得出源灰度到tk的灰度映射关系其中N为灰度的级数重复上述步骤得到所有的源图像各灰度级到目标图像各灰度级的映射关系再按照新的映射关系对源图像各点像素进行灰度转换即可完成对源图的直方图均衡化 tk EH Sk ? nin ?Ps si k 012L-1tk int[ N-1 tk kN] 确定映射关系Sk-tk 统计新直方图各灰度级的像素数nk 计算新的直方图 Pl tk nkn 上述求和区间为到k根据该方程可以由原图像的各像素灰度值直接得到直方图均衡化后各像素的灰度值 图32直方图均衡化图像和直方图 从处理前后的图像可以看出许多在原始图像中看不清的细节在直方图均衡化处理后所得的图像中都变得十分清晰 com归一化[30] 对平滑后的指纹图像要对其进行更高强度的平滑处理求出其平均灰度的分布规律从频域分析的角度上描述则是求出该图像的低频分量的分布规律 首先以待处理指纹图像的分辨率和指纹的平均纹密度参数确定考察中的一个局部像素的邻近区域窗口值的有效范围大小然后逐个对原始灰度图中的所有像素及其邻近区域进行计算根据给定的平滑强度系数得出平滑后的指纹灰度图该部分具体处理仍可采用平均滤波器来完成所不同的是在该平均域滤波中当前处理像素点的模板即参考邻域窗口其域值取值范围较图像平滑时所选择的窗口值 window为一 的模板大其相应处理程序的数学模型可以有下列公式来描述 Gij 其中I为平滑处理后的指纹图像G为平滑处理后的灰度分布图Window的取值范围与指纹图像的纹密度有关不同年龄性别人种的指纹密度不同当指纹图像为亚裔人的指纹图像若指纹图像的分辨率为500像素英寸时window值取16平滑效果较为理想 利用高强度处理后的指纹平均灰度分布图可以进一步求出像素的灰度平均值与像素周围灰度变化的平均值从而得到归一化图像 该过程可由下列公式来描述 这里I为平滑后的指纹图像G为高强度后的灰度分布图V为指纹灰度变化的梯度分布图R为归一化后的指纹图像Window的取值范围可与前述的平滑处理公式取相同的值或相近值图33所示为用Matlab处理的高强度滤波后指纹图像的灰度分布图34所示为归一化 处理后的指纹图像 图33高强度滤波后灰度分布图 图34归一化后指纹图 归一化处理使图像有一致方差具有统一的背景与前景色调它不会改变指纹图像中的脊线纹理信息 com纹理方向[31] 指纹图像是一种带有纹理特性的图像图像中每一个局部图形以至于每一个像素都带有一定程度的方向性方向矢量分布图是指指纹图像的一种变换表示形式方向矢量的分布图对于指纹图像的处理十分重要其主要原因是他完整地描述了指纹图像的一个重要特性即纹理的方向性为了便于分析和处理在沿指定区域或指定像素为中心以window直为半径的参考邻域中3600方向上灰度变化梯度最小的方向定义为该指定区域或指定像素的方向 关于计算指纹方向图像的点方向图的方法come在1987年提出了方向图分解方法采用下列公式来表示 另一种方法是通过峰值点来识别纹线的存在性这一方法对清晰的纹线十分理想但对于三角点及灰度均匀区域峰值不明显 本文采用计算较为简单的八方向场法参见图35 图35像素八个方向示意图 具体步骤为先用下列公式来分别求出指纹图像中各个像素的灰度变化的梯度值在D[0]00 1800 D[1]450 2250 D[2]900 2700 D[3]1350 3150 八个方向上的分量 式中I为指纹图像window为参考邻与的窗口值 灰度变化的梯度值在00 1800 方向上的分量dh[0] d[0] 灰度变化的梯度值在450 2250 方向上的分量dh[1] d[1] 灰度变化的梯度值在900 2700 方向上的分量dh[2] d[2] 灰度变化的梯度值在1350 3150 方向上的分量dh[3] d[3] 然后通过矢量合成来求出各个方向灰度变化的梯度值取值最小的方向即灰度变化梯度最小的方向就是像素点的方向图36是通过快速二维傅利叶变换后的频域处理来得到的方向图 图36指纹图形块方向分布图 com二值化[32][33] 指纹图像的二值化就是从一个具有纹理灰度变化的指纹图像生成另一个只有两种色调的黑白分明的指纹图像二值化操作使得指纹灰度中相对色调较浅的谷纹线部分被转成了白色而相对较深的脊纹线部分被转成了黑色使具有灰度的图像变成只有黑白两种色调的二值化图像图像的灰度层次从原来的256级减少到2级相应地图像也从8bit格式转成1bit的格式 图像的预处理中二值化是最为重要的一部分一般二值化处理会在指纹图像的纹理增强 定向滤波 过程中多次反复调用通常二值化和定向滤波是交叉进行的二值化结果的质量直接影响到后续工作的质量良好的二值化图像应是使原图像纹路突出去噪声最主要的是保留指纹原图像的细节特征但是二值化的过程中若相关的参数和阈选取不当也会造成指纹信息的损失或产生错误特征因此二值化过程中 的相关参数和阈值必须通过大量的实验数据来进行分析谨慎选用长期以来有许多的人对指纹图像二值化方法和效果进行过研究提出了不同的方案其中ARosenfiecom出采用适当的阈值对指纹图像进行分析在指纹灰度直方图中效果较好Boukarouba提出了直方图和分布曲线曲率相结合的方法处理了具有多峰直方图的指纹图像DMarr等利用边沿窗口提取纹线轮廓进而实现图像分解对连续变化的灰度图效果较好 在原始指纹灰度图中指纹脊纹路的灰度值并不是一直不变的在图像的不同区域有着不同的分布规律不能简单的采用一个固定的阈值来进行二值化采用局部自适应的阈值 Locally Adaptive Thresholding 的方法对原始灰度图中的所有像素逐个进行考察并根据每个待判定像素邻近区域的其他像素的灰度分布情况来调整其二值化的阈值最终得出二值化指纹图像本文采取迭代值的方法对指纹图像进行值分割这种方法是以自适应的值对指纹图像进行二值化处理在图像处理中反复地用一种运算直至条件满足而得到输出图像的方法称为迭代迭代值方法如下 设定初始灰度值T 如令T,127 把指纹图像的灰度值分为两组R1和R2 计算两组的平均灰度值u1和u2 重新设定新的灰度值T新的T定义为T, u1u2 2 依据新的T对指纹图像进行值分割 图37二值化后指纹图像 com化[34][35][36] 指纹图像处理中物体的形状信息是十分重要的为了提取指纹图像特定区域的特征对指纹图像通常需要采用细化算法处理得到与原来指纹图像形状近似的由简单的弧或曲线组成的图形这些细线处于物体的中轴附近这就是所谓的指纹图像的细化 细化方法不同细化结果就有差异在指纹识别中要求在不改变原来指纹图像的拓朴连通性的同时细化的结果应为严格的八邻域图像骨架纹线中除去特征点以外每个像素均只与相邻两个像素为八邻域抹去任意一像素都将破坏纹线的连接性概括起来说就是纹线细化处理要满足收敛性连接性拓朴性保持性细化性中轴性快速性的要求目前为止关于细化方法的研究工作已有很多成果所采用的方法从使用的观点来看比较多的是采用模板匹配的方法 如迭代法OPTA单连通法等 这种方法是根据某个像素的局部邻域 如3×35×5等 的图像特征对其进行处理此外也有采用边缘搜索编码[37] 外轮廓计算[38]以及神经网络等细化方法从处理的过程来看主要可以分为串行和并行两类前者对图像中当前像素处理依据其邻域内像素的即时化结果且不同的细化阶段采用不同的处理方法后者对当前的像素处理该像素及其邻域内各像素的前一轮迭代处理的结果自始至终采用相同的细化准则 对于任意形状的区域细化实质上是腐蚀操作的变体细化过程中要根据每个像素点的八个相邻点的情况来判断该点是否可以剔除或 保留 图38 根据某点的八个相邻点的情况来判断该点是否能删除 图38给出了当前需要处理的像素点在不同的八邻域条件下的情况可以看出 1 不能删因为它是个内部点我们要求的是骨架如果连内部点也删了骨架也会被掏空的不能删和 是同样的道理 可以删这样的点不是骨架 不能删因为删掉后原来相连的部分断开了 可以删这样的点不是骨架 不能删因为它是直线的端点如果这样的点删了那么最后整个直线也被删了剩不下什么 不能删因为孤立点的骨架就是它自身内部点不能删除孤立点不能删除直线端点不能删除如果P是边界点去掉P后如果连通分量不增加则P可以删除我们可以根据上述的判据事先做出一张表从0到255共有256个元素每个元素要么是0要么是1我们根据某点的八个相邻点的情况查表若表中的元素是1则表示该点可删否则保留查表的方法是设白点为1黑点为0左上方点对应一个8位数的第一位最低位正上方点对应第二位右上方点对应的第三位左邻点对应第四位右邻点对应第五位左下方点对应第六位正下方点对应第七位右下方点对应的第八位按这样组成的8位数去查表即可考虑当前像素点的各种八邻域的情况我们可以得到一个细化操作查找表该表在下面的细化算法中详细介绍 3×3邻域内运算可以通过查表实现细化的操作算法的实现步骤如下 3×3模板和一个查找表模板和查找表分别如和所示模板 图39 细化对二值图像从上到下从左到右进行扫描该过程结束后 再对图像进行从左到右从上到下的扫描如果图像中当前像素点的灰度值为"0"且其左右第一次扫描过程考虑左右像素点或上下第二次扫描过程考虑上下两个像素点两个像素点中有任意一个为"255"则转至步骤否则回转到步骤 3×3区域内的各个像素值和定义的模板中的权值进行卷积求和得到查找索引值k k得到表里相应的数据如果为"1"那么该像素点的灰度值设为"255"如果为"0"则该像素点的灰度值为"0" 图310细化处理后的指纹图像 图310是一幅经过细化处理后的指纹图像和原图像比较可知细化后的指纹图像脊线的宽度由5到8个像素被压缩到一个像素以便于后续特征提取的处理过程能够对脊线的断点和分叉点进行精确定位 32指纹图像的特征提取和特征匹配[39][40] com取 指纹识别系统的自动化水平在很大程度上依赖于系统提取细节特征的准确性3×3的模板便可将端点和分叉点提取出来对于细化后的二值图像对每个点值计算其交叉数 Cn 一点R的交叉数Cn 定义在一个3×3的模板上模板如图311所示 图311特征提取模板 R是待检验的点如果R是端点则它的8邻域点满足 如果M是分叉点则它的8邻域点满足 这样就可以找到特征点并记录它们的类型和位置 求出特征点后再根据平均纹线距离等信息对所得特征点进行有效性检验去除伪特征点保留真特征点然后以特征点的坐标 xy 及特征点的方向d结合其邻域情况 邻域内的特征点数相对位置脊线上特征点所处位置的纹曲率特征点邻域内的脊线纹密度等等 可以构成该指纹细节特征点的特征向量将所有的特征向量进行筛选后留下50到80个特征向量构成指纹特征模板 com匹配 指纹匹配主要是细节特征的匹配依靠指纹本身决定的可靠参考坐标系可以提高指纹匹配的效率指纹中心处具有很高的不可定向性程度其附近的纹线方向多变据此我们利用方向图和不可定向性图设计和实现了指纹自动定位的快速算法该算法能够确定指纹中心点的位置和方向自动定位率在98以上对于用活体指纹采集仪输入的指纹自动定位率更高用同样的方法我们还可以准确提取指纹的下中心及左右三角点等形态特征与辅助定位信息P p1 p2 pm 和Q q1 q2 qn 如何找出它们之间的匹配关系因此一个好的点模式匹配算法应该能够有效地解决两个点集间的几何不变量问题人们对一般的点模式匹配提出很多算法比如松弛算法其中有的文献只处理了点模式间因平移带来的偏差其中计算复杂度为O n4 也有文献处理了因平移和旋转带来的误差其计算复杂度为O n6 另外有文献不仅考虑到位移和旋转误差还处理了因伸缩尺度不同而带来的误差但其计算复杂度达到了O n8 对于50-50的点匹配很多算法要花去几分钟的时间 点模式匹配中的两个点集P和Q其中P从第一幅图像抽取有m个特征点构成Q从第二幅图像抽取有n个特征点构成即P p1 p2 pm 和Q q1 q2 qn 它们之间的匹配就是找到一个校准函数G tx ty s θ 使两个点集有最大数量点对之间存在稳定的一一对应关系即G pi qb而在实际应用中点的相对位置存在误差G pi 不可能完全等于qb所以一般用 d d为允许的变形范围 为表示Q与P中点对点的对应关系 校准函数G tx ty s θ 是一个含有4个参数的仿射变换其中s是两幅图像间的伸缩系数θ是偏转角度tx和ty分别是沿x方向和y方向的位移下面介绍如何对两个从指纹图像中抽取的细节特征点集找出它们间的校准函数G tx ty s θ 对于点集中的特征点这里用x方向和y方向的坐标来描述即P Ti 1m Q Ta 1n 显然若P和Q中只有一个点存在对应关系即 如果存在两个点 piqa pjqb 则存在唯一的校验函数G tx ty s θ 并且向量和间的校准函数为G 0 0 s θ 由于指纹图像一般都是由同一个采集器采集所以基本无收缩即s 1 指纹图像每一特征点是一个五维向量 x yβ t c 其中x y分别是该点的坐标位置β是细节点的方向t为细节点的类型 即是分点还是端点 c 可以通过一些合适的算法通过在一定范围搜索参数空间计算其匹配支持数也就是在该参数空间里有多少指纹对匹配当匹配支持数 最大时也就得到了所需要的结果 算法步骤 1 分别读取两个细节点集合 2 分别计算他们的reithetaangle xy为细节点的xy轴坐标angle为细节点的角度 3 依据ithetaangle的大小按升序排列两个细节点集合 4 根据reithetaangle的值计算两细节点集合的匹配支持参数值editdistance[m][n] 5 循环比较editdistance[m][n]与阈值T的大小本程序T,10大于T则匹配度参数加1 6 匹配度,匹配度参数乘100再除以细节点数如果大于70则超过70,的细节点匹配认为两细节点匹配 特征匹配的流程如图312所示 图312 细节点匹配算法程序框图 33本章小结 本章主要讨论了一种具体的指纹识别算法的实现并对其实现效果进行了仿真 第四章 基于TMS320C5402的指纹识别硬件电路 数字信号处理DSP芯片组成的系统可以很好地满足指纹识别对系统的特殊要求对于指纹识别应用系统来说要求系统满足 速度快要求在1秒内完成从采样到对比 体积小能够安装在安全门或保险箱内 价格低应用于消费领域需要适应市场竞争的需要 在指纹识别算法程序中指纹图像的滤波增强和细化分别占用大约76和10的处理时间[41]滤波增强和细化过程中存在大量的加乘运算用普通的微处理器芯片在短时间内完成算法运行存在一定困难而DSP芯片所特有的硬件乘法器及其很高的数学计算能力使得处理指纹图像可以很好地满足系统实时性需求另外DSP芯片有灵活的外部接口由它组成的指纹自动识别系统可以集图像采集端口驱动等电路模块于一体因而体积小价也相对便宜因此本文选用TI公司的TMS320C5402 DSP为硬件系统的内核[42] 硬件系统 图41指纹识别系统整体结构 41数字信号处理器 DSP 简介[43][44][45] com DSP芯片发展简况 自1982年美国TI公司推出第一个DSP芯片TMS32010以来DSP芯片有了很大的发展DSP芯片不仅在运算速度上有了很大的提高而且在通用性和灵活性方面了极大地改进此外DSP芯片的成本体积重量和功耗也都有了很大程度的下降随着DSP芯片应用领域的不断扩大DSP芯片已形成低中高三个档次低端产品执行速度一般为20,50MIPS能维持适量存储和功耗提供了较好的性能价格比适用于仪器仪表和精密控制等中端产品执行速度一般为100,150MIPS结构较为复杂具有较高的处理速度和低的功耗适用于无线电信设备和高速解调器等高端产品执行速度一般为1000 MIPS以上处理速度很高产品结 构多样化适用于图像技术和智能通信基站等对于种类繁多的DSP芯片一般可按其工作的数据格式将其分为两大类定点DSP芯片和浮点DSP芯片定点DSP品种最多处理速度为20,2400 MIPS浮点DSP基本由TI公司和AD公司垄断处理速度为40M,1GFLOPS com TMS320C5402 DSP的体系结构及其主要特点 当前业界中应用得最广泛的是TI的TMS320系列DSPsTMS320C5402是TI于1999年10月推出的性价比极高的定点数字信号处理器其主要特点如下 1 144 PIN BGA操作速率达100MIPS 2 哈佛结构传统的冯诺伊曼 Von Neumann 结构 由于具有单一公用的数据和指令总线因此在高速运算时往往在传输通道上会出现瓶颈效应DSP芯片内部一般采用哈佛 Harvard 结构三条16位数据存储器总线和一条程序存储器总线这种分离的程序总线和数据总线可允许在一个机器周期内同时获取指令字 来自程序存储器 和操作数 来自数据存储器 从而提高了执行速度 3 流水线技术 DSP芯片的哈佛结构为流水线技术提供了方便由于采用流水线技术DSP芯片可以单周期完成乘法累加运算大大提高了运算速度而DSP芯片的指令基本上都是单周期指令因此单周期指令执行时间可以作为衡量DSP芯片性能的一个主要指标 3 硬件乘法器 数字信号处理中最重要的一个基本运算是乘法累加运算也是最 主要和最耗时的运算因此单周期的硬件乘法器是DSP芯片实现快速运算的保证TMS320C5402具有一个1717乘法器允许16位带,不带符号的乘法提高运算速度 4 多种外设和接口 为了加强DSP芯片的通用性DSP芯片上增加了许多外设可能包括的外设有多路DMA通道外部主机接口外部存储器接口芯片间高速链接口外部中断通信串口定时器可编程锁相环AD转换器JTAG接口等 5 JTAG接口 由于DSP芯片结构的复杂化工作速度的提高外部引脚的增多封装面积减小而导致的引脚排列密集等原因传统的并行仿真方式已不适合于DSP芯片的发展和应用开发1991年公布的JTAG接口标准满足了IC制造商和用户的要求1993年JTAG接口标准修订为5线接口在片JTAG接口为DSP芯片的测试和仿真提供了很大的便利 6 程序的加载引导 加载引导是指器件在上电复位后执行一段引导程序用于从端口 异步串口IO口主机接口 或外部EPROMFLASH存储器中加载程序至高速RAM中运行一般用EPROMFLASH存储器存储程序但是其访问速度较慢而一些已有的高速EPROMFLASH存储器价格昂贵且容量有限同时高速大容量静态RAM价格又在不断下降因此这种加载方式是一个有效的性价比解决方法 42存储器扩展 C5402系列DSP存储器分为三个独立选择的空间程序数据和IO 其中程序存储器存放待执行的指令和执行中所用的系数 常数 可使用片内或片外的RAMROM或FLASH等来构成数据存储器存放指令执行中产生的数据可使用片内或片外的RAM和ROM来构成IO存储器存放与映象外围接口相关的数据也可以作为附加的数据存储空间使用C5402通过包含在处理器工作方式的状态寄存器 PMST 中的3个状态位选择片内存储器作为程序空间或数据空间这3个状态位是 1 MPMC位MPMC 0则片内ROM安排到程序空间MPMC 1则片内ROM不安排到程序空间 2 OVLY位OVLY 1则片内RAM安排到程序和数据空间OVLY 0则片内RAM只安排到数据存储空间 3 DROM位当DROM 1则部分片内ROM安排到数据空间DROM 0则片内ROM不安排到数据空间 程序设计者可根据不同的需求相应的配置这3个位使系统的存储空间满足应用要求C5402总共提供了192K word的地址范围并可通过增强外设接口扩充芯片上有16K的DARAM和4K的PD ROM所有的存储空间又分为多个8K大小的块支持分页寻址处理这使得在对其中一个块操作时可同时对另一个块进行操作增加了处理速度而对本系统而言图像本身数据量大包含信息多仅仅依靠片上的资源是不够的因此需要外扩存储器 com存储器 C5402片内4K字ROM通过设置MPMC引脚可以设定是否将片内ROM映射到程序空间程序存储器空间主要用于存放要执行的指纹算法和 执行中所用的系数表其主要内容如表41 表41片内ROM程序存储器映射 地址范围 内 容 F800H-FFEFH 1 自举加载程序 2 256字u律扩展表 3 256字a律扩展表 4 256字正弦函数指查找表 FF00H-FF7FH 测试保留 FF80H-FFFFH 中断向量表 当自动指纹识别系统运行时即使优化后的算法程序和系数表至少需要16K字4K字的程序空间是远远不够的因此本系统外扩64K字外部程序存储器通过一片IS61L V6416进行外部程序空间扩展将外部扩展程序存储空间分为2页每页为32K字共64K字映射到内存空间的0X8000H-0XFFFFHDSP的程序空间选通信号 DSP_PS 作为外扩程序存储器的片选信号对存储器的读写由74LVC139D 2 产生的读写信号控制将存储器的的A15端和DSP的A19端相连用以实现程序空间的分页扩展电路如图42 图42外扩程序存储器 com据存储器 数据存储器存放执行指令所用的数据通过一片IS61LV12816进行外部数据空间扩展将扩展空间分为8页每页16K字共128K字映射到内存空间0X4000H -0X7FFFH 因为C5402片上有16K字的双访问RAM这样扩展不会因为内部RAM和外部RAM的地址重叠而造成外部RAM的浪费 74LVC139D 2 产生的控制信号作为外扩程序存储器的片选信号和对存储器的读写控制信号将存储器的的A14A15A16端分别和DSP的 A16A17A18端相连用以实现程序空间的分页扩展其电路如图43 图43外扩数据存储器 comLASH 在TMS320C54 DSP系统的开发中由于DSP片内只有ROM和RAM存储器如要将用户代码写入ROM中必须要由DSP芯片厂家来完成但这样做用户就不能再更改代码很不实用由于RAM在DSP掉电后不能再保存数据因此常常利用EPROMFlash等一些外部存储器来存放用户代码在DSP上电工作后利用DSP提供的boot机制再将程序下载到DSP RAM中运行如果使用EPROM外部存储器存放用户代码需要用代码转换工具将用户代码转换为二进制目标文件然后用编程器将其烧写进EPROM而如果使用Flash存储器存放用户代码则可直接使用DSP仿真器和CCSCode Composer Studio 仿真环境进行在线编程使用灵活方便不再需要其它编程设备我们就采用Flash存储器来实现多份用户代码的有选择加载在系统中 Flash进行FLASH扩展SST39VF400A Flash存储器其容量为K×16位 分为页每页32K 图44外扩FLASH ROM 系统上电后程序自举引导执行进行系统测试并将程序和指纹库搬移到RAM中自举引导的具体实现将在下一章介绍 com储器读写逻辑的实现 DSP对外扩存储器的片选和读写通过一片74LVC139D 2 实现其逻辑关com 74LVC139D 2 片选和读写逻辑关系 用C5402 DSP的A15端和DS端组合逻辑实现对FLASH和DATA RAM 的片选用PS的电平变化实现对PROG RAM的片选用C5402 DSP的MSTRB和RW的组合逻辑实现对外扩三个存储器的读写选择其电路如图45 图45外扩存储器读写逻辑实现电路 43指纹图像采集电路 图像采集模块的核心部分是指纹传感器自动指纹识别技术的进步和传感器技术发展密切相关本文选用MBF200指纹传感器进行指纹采集 com感器的性能特点[46][47] MBF200指纹传感器是Fujitsu公司的一种触摸式COMS传感器件传感区域为128×150cm256×300传感阵列500dpi分辨率内置8 位模数转换器可直接输出数字化图像信号用8位表征一个像素点且有微处理器总线SPI总线USB总线三种接口模式可以选择并可以方便定义所需传感器阵列的区域工作电压为33V5VMBF200基于电容充放电原理传感器的每一个点是一个金属电极相当于电容一个极与传感器接触的手指充当电容的另一个极而两者之间的传感面形成电容两极之间的介电层由于指纹的嵴和谷导致传感阵列各电容值不同传感器将电容指数字化后输出MBF200指纹传感器有以下特点 1 适合复杂指纹FPS200具有图象搜索功能ImageSeekTM可以通过改变电容阵列的参数值可在1秒种以内扫描多幅指纹图象并自动选择最好的一幅因此MBF200对人手指的适应面更广可以获得各种类型手指从干手指到湿手指的高质量指纹图象并能应用在各种气候条件下甚至在高温或高湿度的环境下由于成像质量的提高及稳定大大 减低了误识率FAR和拒识率FRR 2 抗高压FPS200表面运用Veridicom公司专利技术而制成坚固耐用可防止各种物质对芯片的划伤腐蚀磨损等MBF200能承受超过8KV的静电放电ESD 3 易于集成MBF200芯片内直接提供三种接口电路USB微处理器总线MCU串行外设接口SPI USB接口MBF200已内置了高速USB的核心电路不需要外部的USB控制器因此使MBF 200成为标准的USB设备 MBF 200在USB模式下可支持14帧秒的指纹图象采集传输速度 微处理器总线MCU通过增加自动递增列和地址寄存器的值以及模数转换的路径优化功能MBF 200内置的标准8位微处理器总线的性能大大加强图象传输速度达到30帧秒可以满足对连续指纹图象采集和比对的需要 串行外设接口SPIMBF 200内置的SPI接口可极大减小MBF200对硬件的依赖只需要6条线就可以连接到带SPI接口的微处理器在SPI模式下MBF 200的图象传输速度为10帧秒 4 低功耗FPS200在待命模式下的操作电流小于20uA这在移动设备的应用中可节约电池的消耗延长电池寿命MBF 200还有手指自动检测电路AFD但有手指按在传感器表面时向主机发送一个中断信号 AFD电路允许主机在没有指纹时也处在低共耗待命模式只有当有手指时才唤醒主机进行处理因此节省了整个系统的功耗这种特性尤其满足依赖电池供电的嵌入式系统需要 MBF 200的内部电路框图如图46所示主要包括256×300传感器阵列取样保持电路AD转换器及模拟电路石英晶体振荡器多谐振荡器功能寄存器数据寄存器指针寄存器总线接口电路 图46 MBF200的内部电路框图 com MBF200的SPI接口特点 SPI协议是一个同步串行数据传输协议协议假定微控制器的SPI移位寄存器在SCLK的下降沿动作对于MBF200而言在时钟上升沿锁存MOSI引脚的数据在下降沿将数据送至MISO引脚如图47所示MBF200的SPI通信协议的具体内容如下 1 MOSI线上的数据在SCK的上升沿被采样 2 MISO线上的数据在SCK的下降沿发生改变 3 SCK在空闲状态时可以为高电平也可以为低电平 4 串行传输过程中高位在前 最先被移出 图47SPI同步串行数据传输 com MBF200和C5402的SPI接口 本系统以TMS320C5402 简称5402 作为主控制器完成MBF200对指纹数据的采集5402的McBSP是与SPI兼容的这里把5402配置成SPI的主设备 master MBF200工作在SPI协议下的从模式 slave 多通道缓冲串行口McBSP的功能是提供器件内外数据的串行交换同以前的串口相比McBSP串口具有相当大的灵活性McBSP有以下功能与特点TMS320C5402系列DSP芯片都具有2个高速全双工多通道缓 冲串行接口McBSP其方便的数据流控制可使其与大多数同步串行外围设备接口McBSP是在标准串行接口的基础上对功能进行扩展的除具有标准串口的功能特点外其灵活性体现在如下几个方面双缓冲区发送三缓冲区接收 允许连续数据流传输 2 可与SPIIOM-2AC97等兼容设备直接接口可编程帧同步数据时钟极性支持外部移位时钟或内部频率可编程移位时钟拥有相互独立的数据发送和接收帧同步脉冲和时钟信号多通道发送和接收最多可达128个通道速度可为100Mbits 图48 C5402与SPI接口 DSP的CLKX用作SPI的串行位同步时钟BDX用作SPI的主控制器的输出BDR用作SPI的主控制器的输入BFSX用作SPI的串行帧同步信号当C5402的McBSP被用于时钟停止模式并且设置CLKSTP,10CLKXP,1时McBSP的SPI时序与MBF200的时序吻合如图49所示 图49 McBSP的SPI时序 要完成MBF200与C5402之间的SPI接口通信还必须在C5402上运行程序需要对McBSP进行初始化初始化程序将在第五章介绍 44外围电路 外围电路包括外围控制电路电源时钟电路复位电路接口电路 com复位电路设计[48][49][50][51] 系统中5V电压信号是由外部220V的交流电压通过变压器直接产生而C5402工作电压有两种和电压为18V输入输出电压为33V系统中采用TPS767D318产生33V18V输出直流电压 TPS767D318是一种低压差小静电流的双电压调节器该芯片最大输出电流达到750mA输出电流能在两个调节器之间理想分配该芯片的输入电压为5V两个调节器输出电压一个为33V固定值另com间可调使用该芯片产生工作电压原理图如图410 图410 工作电压原理图 当C5402的RS位引脚上出现2个外部时钟周期以上的低电平即可实现系统复位复位电路采用上电和按钮两种方式复位利用RC电路的延迟的特性给出复位电路的最低电平时间在上电瞬间由于电容C上电压不能突变所以通过电阻R进行充电充电时间由RC的乘积决定这里设置为5个时钟周期当按钮按下时将电容C上的电荷通过按钮串接的电阻释放掉使电容上的电压降为0当按钮松开时电容C充电过程与上电复位相同图411给出了复位电路图 图411复位电路 系统有可能出现程序飞跑的现象为了增加系统的可靠性使之能在异常情况下重新复位需采用看门狗看门狗分为硬件看门狗和软件看门狗在本系统中为了简化硬件电路采用了软件看门狗将在下一章予以介绍 C5402时钟发生器由一个内部振荡器和一个锁相环 PLL 组成输入的参考时钟可由晶振和内部振荡器产生也可以直接通过外部时钟源提供通过DSP的内部锁相环电路芯片可以被配置为PLL和DIV模式PLL模式可以产生025-15共31个乘系数DIV模式可以产生除以2或4两个系数 系统中DSP时钟源是通过外界在X2和X1管脚间的20MHz的石英晶振产生的通过设置时钟模式管脚CLKMD1CLKMD2CLKMD3为010选定PLL为5倍频模式从而系统时钟频率为100MHz电路如图412 图412时钟产生电路 comG仿真接口电路[52] JTAGJoint Test Action Group是1985年制定的检测PCB和IC芯片的一个标准1990年被修改后成为IEEE的一个标准即IEEE11491-1990通过这个标准可对具有JTAG口芯片的硬件电路进行边界扫描和故障检测 具有JTAG口有如下JTAG引脚定义 TCK测试时钟输入 TDI测试数据输入数据通过TDI输入JTAG口 TDO测试数据输出数据通过TDO从JTAG口输出 TMS测试模式选择TMS用来设置JTAG口处于某种特定的测试模式 可选引脚TRST测试复位输入引脚低电平有效 通过程序将对JTAG口的控制指令和目标代码从PC的并口写入JTAG的BSR中只要用JTAG指令将数据地址及控制信号送到其BSC中就可通过BSC对应的引脚将信号送给Flash实现对Flash的操作将程序在线烧写到外扩的FLASH中JTAG的设计和连线关系如图413所示 图413JTAG仿真接口 45本章小结 本章介绍了基于DSP的指纹识别系统硬件设计原则根据我们研究的目的和应用要求设计了基于C5402DSP和MBF200指纹传感器的指纹识别系统及其各单元组成功能和接口原理等相关电路图在附录一中有详细介绍 第五章 软件设计和调试 51软件设计环境CCS平台简介[53] 最新的用于TMS320C5402的Code Composer Studio20是一个高度集成的开发环境用以满足复杂的DSP应用的要求它综合了TI的代码产生工具CCS IDEDSPBIOS II实时内核和实时数据交换 RTDX 技术把平均译码时间减少了50或更多其组件包括 CCS集成开发环境包括调试器编辑器剖析器工程管理器和基于C的描述语言基于标准JTAG接口包含RTDX技术的DSPBIOS 高效C优化编译器汇编语言编译器和链接工具支持指令集结构的软件仿真器 包含于CCS中的TMS320DSP算法标准是一系列算法约定以尽可能免除一些与系统算法集成有关的重复而耗时的工作该标准提供了编程约定准则以及接口定义允许使用系统现成的软件算法 主要特点 1 将编辑调试项目管理分析和探测点集成在一个环境里 2 包含C编译器汇编优化器和连接器代码生成工具 3 实时的基础软件DSPBIOS 4 主机和目标机之间的实时数据交换RTDX 5 实时分析和数据可视化 6 允许同时插入主机和目标机使开发者扩展其开发环境 7 第三方厂商的插件可以使目标机硬件的配置更容易 8 数据可视化 下面就Code Composer Studio的使用作简单的介绍 1 项目的组成和建立 与一个project有关的文件有C语言的主调用流程文件c 汇编语言模块文件asm连接器命令文件cmd运行时支持库文件lib编译器目标文件obj头文件h项目文件mak可执行文件 out 等如果要烧入DSK上的Flash Rom还要生成存储器映射文件map等 建立一个项目时在新建的项目中加入C语言文件汇编语言文件还有用于存储器映射的连接器命令文件以及库文件用于提供运行时的支持等组成一个project如打开一个已有的项目只需要打开该项目文件即可 2 文件说明 a 或 c文件C语言源程序可以编译和链接 b a 或 s文件汇编源程序可以编译和链接 co 或 lib文件目标或库文件可以链接 dh文件包含文件不需要添加headerinclude文件因为这些文件是自动加入项目列表的 ecmd文件链接命令文件一个项目只需要一个cmd文件否则项目包含的文件就没有数量限制了所有的文件都是用直接路径表示的但它们是以相对路径存储的这样就很容易的可以将一个项目连接到另 一个路径下直接路径在每次打开一个项目时确定存储的路径名是相对于该项目的构造make文件的 3 项目的运行 项目建立好之后首先要对其进行build系统检查C和汇编源文件确认程序没有问题后就可以用file- load program命令使主机通过并口对DSK板load成功后即可用debug- run命令运行常见的问题主要在于存储器映射上此时用gel- c54x- c5402_dsk_init将DSK板重置选取option- memory map选中enable memory mapping对存储器映射加以设置可以解决问题 4 watch window watch window是用于察看变量值的可以用view- watch window 打开然后在watch window中通过右键添加需要观察的变量名也可以将光标置于要观察的变量名上用右键打开quick watch察看变量值 5 断点设置 断点可以使程序的执行中断当程序中断时你可以察看程序状态察看或更改变量检查访问堆栈等等但是要注意不要在实现延迟的语句上设置断点也不要在一个循环的最后一两句上设置断点设置断点后可以通过菜单选择断点有效或无效在CCS中也可以设置条件断点可以在GEL文件中设置断点需满足的条件当表达式结果为0处理器就会继续执行而不会刷新显示否则就会像遇到一般的断点一样中断程序的运行 硬件断点与软件断点不同它不会修改目标程序硬件断点可以在 ROM或存储器访问时设置断点而不是通过指令获得硬件断点可以计数可以在遇到同一位置若干次后生成断点硬件断点和条件断点的设置都是通过Debug- Breakpoints打开断点类型窗口 Breakpoint type 设置的 6 探测点 探测点可以使特殊的窗口更新或在算法的某一特定点从外部文件读写当探测点设置好后一样可以使之有效或无效一个窗口打开后一般默认为断点刷新但是也可以用连接的探测点 Connected Probe Point 使窗口刷新窗口刷新后程序继续执行 类似于CCS的文件输入输出功能你也可以在代码的某一点上用探测点读入或输出一串数据当程序运行到探测点时数据就从特殊存储区流向文件或者从文件流向存储器 默认的形式是无条件的探测点这就是说每次执行到探测点时它连接的文件或窗口都会更新然后继续执行与断点一样探测点也有条件探测点和硬件探测点条件探测点的设置可以利用一个表达式也可以与GEL文件连接硬件断点可以在只读存储器或存储器访问时设置探测点硬件断点和硬件探测点都会影响到实时性在仿真的DSP处理器上都不可行 7 存储器映射 CCS调试器从存储器映射中可以知道哪一部分存储器空间是不能访问的映射对应着连接命令文件cmd中的存储器定义当你使存储器映射有效时CCS调试器按照存储器映射检查每一个访问当你访问的 是没有定义或受保护的存储器空间时调试器就不访问目标而显示默认值当CCS调试器将访问与存储器映射对照时它将在软件中执行这一检查而不是在硬件中调试器不能阻止你对不存在的存储空间进行访问 存储器映射存储器映射告诉CCS哪一块内存可以访问 哪一块不可以访问这种映射与你在链接命令文件中的定义相匹配 访问存储器映射 当使用存储器映射CCS依靠存储器映射所提供的信息来检查每一次的存储器访问如果访问的是没有定义的或受保护的区域调试器会显示默认值而不是去访问目标 访问不存在的存储器当CCS对应着存储器映射来访问存储器时它进行软件的而不是硬件的检查调试器不能阻止你的程序去访问不存在的存储器 CCS的编译器支持C 符号和代数汇编但在存储器的分配上和以往有较大区别其更多依赖于cmd 文件或是Visual Link生成的rcp包而早先的sect绝对地址分配方法已经不为编译器所接受 52指纹图像读取[54][55][56] 要完成MBF200与5402之间的SPI接口通信还必须在5402上运行程序软件流程如图51所示当利用5402接收指纹数据时由于MBF200在某一行没有完成之前帧信号必须一直有效就是说这一帧的长度为256×8位所以只能用5402的DMA来接收DMA的接收帧长应该配置为128×16位 图51系统软件流程 com始化[57] 系统初始化程序包括影响DSP芯片的CPU运行的内部初始化和影响各个片内外设工作的外设初始化以及外围可编程器件的初始化的几个方面DSP系统上电后DSP芯片部分地进行了定义因为DSP芯片的两个状态寄存器 ST0ST1 的所有状态位都处于确定状态因此上电复位时DSP芯片即处于所谓的预定义状态但上电复位后用户可以通过编写初始化程序对两个状态寄存器的一些状态位进行修改以满足不同系统的系统配置和应用要求其中主要包括堆栈指针初始化 SP 存储器映射外围控制寄存器 SWWSR和BSCR 初始化状态寄存器初始化 ST0ST1 处理器方式状态寄存器初始化 PMST 其流程如图52 图52 DSP芯片系统初始化 comSP和DMA的初始化 当McBSP 作为SPI 通信的主设备由它为从设备提供时钟信号并控制数据的传输过程CLKX 引脚上的时钟信号必须在数据包传输期间使能当没有数据包传输时时钟信号根据所采用的极性保持高电平或者低电平通常通过McBSP 的采样率发生器产生10MHz 时钟信号由BCLKX 引脚输出作为MBF200 的时钟输入信号McBSP 利用BFSX 引脚为MBF200 提供片选信号因此必须正确设置帧脉冲发生器使之在每个数据包传输期间产生帧同步脉冲即在数据包传输的第一位转变为有效状态然后维持有效状态直到数据包发送完毕此外根据SPI 传输协议必须正确设置数据发送延迟时间XDATDLY 01b在本例中采用时钟停止模式3CLKSTP 10bCLKXP 1初始化流程如图53所示 图53 McBSP初始化流图 comcBSP1接收的16位字的指纹数据 McBSP初始化完成后系统等待处于等待状态当有指纹数据输入时系统响应外部中断开始将指纹传感器输出的数据通过McBSP1口和DMA传到数据空间这时DMA采用ABU模式使能循环缓冲操作不用记传输帧数 com量表设计 中断服务程序的地址中断向量要装载到存储器的合适区域一般这些向量都定位在0x0开始的程序存储器中但有些处理器要求或者可以在其他的存储区域安装中断向量 TMS320C5复位向量定位在0x0其他中断向量可以定位于任何2K字的程序存储器中中断向量表的定位是与PMST寄存器的IPTR位有关 系统启动时对软件看门狗初始化初始化包括开相关中断设置寄存器初值以及开始计数初始化程序如下 Dogreset rsbx cpl rsbx intm 开所有中断 st 9h imr 开定时器中断 stm 10h tcr stm 0c34fhprd 每 01 秒溢出 stm 61htcr 开始计数 ret 定时器中断服务程序用于系统复位系统复位包括将系统的状态 寄存器st0 st1恢复到复位的状态以及将模式状态寄存器恢复到脱机模式中断复位程序如下 timeisr stm 0ff80h pmst 恢复系统寄存器 stm 1800h st0 恢复系统寄存器 stm 2900h st1 恢复系统寄存器 b ff80h 软件复位 rete 主程序设计时应周期性地调用看门狗初始化程序调用的时间间隔应小于定时器的定时间隔以避免定时器的溢出 53程序自举加载 Boot Loader [58][59][60][61] 可编程的数字信号处理器芯片C5402从上电复位后到进入工作状态前的阶段叫自举加载阶段Boot Loader当上电复位后它的程序指针自动指到ROM中从F800H到FBFFH的一个称为Boot Loader的程序该程序是由生产商固化和升级管理的主要完成一些数据的搬移和程序的重新定位工作该程序根据环境选用相应的Boot Loader模式将外部FLASH中的程序搬到DSP内部的RAM程序区中并将程序指针移到执行程序的第一行处 按照Boot时程序由外部FLASH存储器进入DSP片上RAM通道不同可分为HPI串行口并行口等模式按照数据进入DSP时字长不同可分为8位和16位模式 C5402 Boot过程如图54上电复位后C5402首先判断位于IMR和 IFR寄存器的INT2标志位若INT2有效则采取HPI模式否则进一步判断INT3标志位若INT3有效则采用串行模式 Serial Mode 否则读取IO空间的FFFFh地址处当该地址为有效地址采用并行模式 Parallel Mode 若该地址也无效则读数据空间的FFFFh地址处若该地址有效则仍采用并行模式如果仍不满足条件时进一步判断其他Boot模式本文即采用了8位的并行加载方式 图54 C5402的Boot Loader 部分流程图 Boot Loader过程 1 生成Boot表 CCS系统编译生成的out格式的文件不能直接通过JTAG口加载到FLASH中而是要通过CCS自带的hecomcom式的文件也叫Boot表将已经编译好的名为fingerchipout的文件加载到FLASH中则需创建一个cmd文件取名为fingerchipcmd其内容如下 -fingerchipout 输入的out文件 -fingerchip 设置输出ASCII的十六进制格式文件 -map fingerchipmxp 生成名为fingerchipmxp的map表 -o fingerchiphex 定义输出文件名 -bootorg PARALLEL 选择并行模式 -e 0x100 定义入口地址 -boot 生成boot表 -swwsr 0x7fff 设定SWWSR寄存器 -bscr 0x8802 设定BSCR寄存器 -memwidth 16 设定存储器字长 romwidth 16 将hex500exe fingerchipcmd和 fingerchipout放在同一目录下执行窗口命令行 hex500 fingerchipcmd 即得到fingerchiphex 和fingerchipmxp从fingerchipmxp文件中可以容易的找到程序入口地址 2 数据转换编写一个数据转换程序把二进制数据文件hex中的数据取出并形成一个数组文件的形式转换为数组头文件h在CCS环境下FLASH的主程序包含此头文件编译链接后通过仿真器下载到DSP中运行DSP用户程序就被FLASH中在每次对Flash写入之前要对其原来的内容进行擦除Flash的擦除包括块擦除和擦除种块擦除是对一个模块进行擦除擦除是擦除整个Flash的内容因此对Flash的操作是以模块为基本单元的 对CPU初始化关键设置OVLY 1 DROM 0MPMC 0等 向FLASH编程使之处于可读写状态 并口BOOT只能将程序写入 0x8000-0Xffff FLASH的0Xffff必须存储BOOT表首地址 图55 Boot Loader 流程 54本章小结 本章重点介绍了系统软件程序的设计过程主要包括各部分的初始化和数据输入存储的程序设计相关程序见附录2 论文总结和今后工作展望 指纹具有唯一性稳定性以及便携性的特征因此指纹被广泛应用于身份鉴别等领域如指纹门紧系统指纹考勤系统指纹保险系统等自动指纹识别系统具有广阔的应用前景但在国内目前还处于应用的初期阶段 本文主要工作是基于DSP的自动指纹识别系统的设计本文的第四章和第五章详细的介绍了指纹识别系统的硬件实现方法和程序的加载运行方法加载程序通过了系统仿真本文的第三章分析了一种指纹识别算法的性能并在Matlab中对每一步的算法程序进行仿真获得的图像证明该算法在仿真阶段可以较好的实现指纹图像的处理和信息提取 下一步的工作 虽然硬件电路的制作工作基本完成但其人机接口及控制部分还未完成因此DSP与单片机的接口设计和键盘显示电路的设计尚待完善算法程序部分仍处于仿真阶段算法程序尚未在硬件电路中实际运行其效果的检测和改进成为下一步工作的重点 附 录2 系统初始化 c54init _c_int00 ld 0hDP stm 2000hSP ssbx INTM ssbx SXM STM 0x7208SWWSR STM 0SWCR STM 0xF800BSCR STM 0ST0 STM 0x2b00ST1 INTM 1 off interrupt STM 0xBfe4PMST Interrupt vector map Bf80 STM 0xFFFFIFR STM 0x0488IMR Timer0 enabel interrupt STM 0CLKMD clkcon LDM CLKMDA AND 0x01A BC clkconANEQ STM 0x43ffCLKMD PLL MUL 41 20 100MHz STM 0x0010TCR1 timer1 stop STM 0x0010TCR TSS 1 Timer stop STM 12800PRD STM 0x0020TCR McBSP初始化 global _SPI_DMA_Init mmregs DRR21 SET 40H DRR11 SET 41H DXR21 SET 42H DXR11 SET 43H SPSA1 SET 48H SPSD1 SET 49H McBSP SUB-REGISTERS USE SPSAx FOR INDEXING SPCR11 SET 00H SPCR21 SET 01H RCR11 SET 02H RCR21 SET 03H XCR11 SET 04H XCR21 SET 05H SRGR11 SET 06H SRGR21 SET 07H MCR11 SET 08H MCR21 SET 09H RCERA1 SET 0AH RCERB1 SET 0BH XCERA01 SET 0CH XCERB1 SET 0DH PCR1 SET 0EH DMA REGISTERS DMPREC SET 54H DMSA SET 55H DMSDI SET 56H DMSDN SET 57H DMA SUB-REGISTERS USE DMSAx FOR INDEXING DMSRC1 SET 05H DMDST1 SET 06H DMCTR1 SET 07H DMSFC1 SET 08H DMMCR1 SET 09H DMIDX0 SET 20H sect "SPI_DMA" void SPI_DMA_INIT void _SPI_DMA_Init PSHD ST0 push st0 PSHD ST1 push st1 RSBX CPL set CPL 0 to select DP BASE addressing NOP NOP NOP LD 0 DP stm SPCR11 SPSA1 write subaddress of McBSP1 stm 0000H SPSD1 reset Rrst stm SPCR20 SPSA1 write subaddress of McBSP1 stm 0000H SPSD1 reset XrstFrstGrst RPT 100 NOP stm SPCR11 SPSA1 stm 0001XXXXXXXXXX00b SPSD1 stm SPCR21 SPSA1 stm 0000001100110000b SPSD1 stm PCR1 SPSA1 write subaddress of McBSP1 stm 00001XXXXXXXXXX1bSPSD1 stm SRGR21SPSA1 stm 001XXXXXXXXXX001bSPSD1 stm SRGR11SPSA1 stm 0001XXXXXXXXXX00bSPSD0 stm XCR21SPSA1 stm 0000000001000000bSPSD1 接收16位字长 stm RCR21SPSA1 stm 0000000001000000bSPSD1 发送16位字长 stm RCR11SPSA1 stm 0000000001000000bSPSD1 stm XCR11SPSA1 stm 0000000001000000bSPSD1 nop nop stm 0000000010011110bDXR11 响应int0中断后通过McBSP1接收的16位字的指纹数据 INTISR0 stm DMSRC1DMSA stm DRR11DMSDN set source address to DRR11 stm DMDST1DMSA stm 4000HDMSDN set destination address to 4000 stm DMCTR1DMSA stm 100HDMSDN set buffer size to 100 stm DMSFC1DMSA stm 0001XXXXXXXXXX00bDMSDN stm DMMCR1DMSA stm 01XXXXXXXXXX1101bDMSDN stm DMIDX0DMSA stm 0001HDMSDN set element address index to 1 stm 0000001010000010bDMPREC stm SPCR21SPSA1 ldm SPSD1A or 0040hA FRST 1GRST 1 stl ASPSD1 nop nop ldm SPSD1A or 0001hA XRST 1enable stl ASPSD1 stm SPCR11SPSA1 ldm SPSD1A or 0001hA RRST 1enable stl ASPSD1 stm SPCR21SPSA1 ldm SPSD1A or 0080hA FRST 1 stl ASPSD1 nop nop POPD ST1 POPD ST0 ret end 中断向量表 include c54inc sect "vectors" ref _c_int00 main progrom align 0x80 must be aligned on page boundary RESET bd _c_int00 stm 2000hSP space 19416 nmi RETE enable interrupts and return from one NOP NOP NOP sint17 space 416 sint18 space 416 sint19 space 416 sint20 space 416 sint21 space 416 sint22 space 416 sint23 space 416 sint24 space 416 sint25 space 416 sint26 space 416 sint27 space 416 sint28 space 416 sint29 space 416 sint30 space 416 INT0 b INT0ISR NOP NOP int1 RETE NOP NOP NOP int2 RETE NOP NOP NOP tint0 b timeisr NOP NOP end 数据转换程序 include include include include void main char str FILE a FILE b a fopen "\\fingerchiphex""r" 打开名为fingerchiphex的 文件 b fopen "\\fingerchiph""w" 打开名为fingerchiph的文件 for int i 0i 9i for int j 1j 6j while feof a fgets str 2a 从a获取宽度为1的字符存入str指向 的数组 switch j6 case 1fputs "0x"b break case 2fputs "str"b break 将取出的字符存入b 文件 case 3fputs "str"b break case 4fputs "str"b break case 5fputs "str"b break case 0fputs ""b break fclose a fclose b getch Boot Loader过程程序 bootloader main void main init_board flash_ready flash_erase flash write 0x80000xffff for i-0i 0x8000i flash_write 0x8000i flash_data[i] flash_write 0xFFFF0x8000 init 5402 void init_baord void volatile u16 CLKMD 0x0000 while volatile u16 CLKMD0x0001 volatile u16 CLKMD 0x9870 volatile u16 PMST 0x00A0 volatile u16 SWWSR 0x7FFF volatile u16 BSCR 0x8820 porth ioport unsigned portaaaa ioport unsigned port555 ioport unsigned portfffe u16 u_temp u16 u_dq7 u16 u_dq61 u16 u_dq62 u16 i fhash ready state void flash_ready u_temp u16 0xfffe u16 0xd555 0xaa u_temp u16 0xfffe u16 0xaaaa 0x55 u_temp u16 0xfffe u16 0xd555 0xf0 u_temp u16 0xfffe flash erase void flash_erase u_temp portfffe port555 0xaa u_temp portfffe portaaaa 0x55 u_temp portfffe portd555 0x80 u_temp portfffe portd555 0xaa u_temp portfffe portaaaa 0x55 u_temp portfffe port555 0x10 u_temp portfffe do portfffe 0x11 u_dq7 port555 while u_dq70x0080 0x0000 判断dq7为1时擦除完成 flash write void flash_write u16 u_addru16_val u_temp u16 0xfffe u16 0xd555 0xaa u_temp u16 0xfffe u16 0xaaaa 0x55 u_temp u16 0xfffe u16 0xd555 0xa0 u_temp u16 0xfffe u16 u_addr u_val u_temp u16 0xfffe do u16 0xfffe 0x11 u_dq61 u16 0x8000 u16 0xfffe 0x11 u_dq62 u16 0x8000 u16 0xfffe 0x11 whlie u_dq610x0040 u_dq620x0040 判断DQ6值若稳定完成则退出 参考文献 [1] 杨强 谭礼俊 生物识别技术对比浅析 大众科技 2005年02期 [2] 生物识别有望成为IT产业最重要技术革命 安防科技 2005年02期 [3]许峰 都思丹 高敦堂 生物特征识别技术中的活体确认 数据采集与处理 2005年01期 [4]郭一博 生物特征识别技术最新动向 中国安防产品信息 2004年04期 [5]李徐周 生物特征识别技术的发展与应用 山东省青年管理干部学院学报 2004年01期 [6]杨俊 景疆 浅谈生物认证技术指纹识别 计算机时代 2004年03期 [7] 赵丙辰 嵌入式系统的核心嵌入式处理器的分类与选型 新乡师范高等专科学校学报 200
本文档为【生物特征识别技术完整论文(可编辑)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_105949
暂无简介~
格式:doc
大小:99KB
软件:Word
页数:54
分类:
上传时间:2017-10-13
浏览量:29