基于ARM核AT75C220在指纹识别系统中应用

纹识别技术近年来逐渐成熟,在门禁、安防和金融等方面得到了越来越广泛的应用。典型的是以指纹传感器和DSP处理器为核心构成。指纹传感器采集指纹图像,DSP处理器实时实现指纹识别算法。同时,通常的还具有较强的通信能力,除了具有RS485通信外,高档的还要求具有以太网接口和Internet连接能力。Atmel公司新推出的智能互联网芯片集成了ARM内核、DSP协处理器以及以太网MAC接口,用和指纹传感器结合可构成高性能的指纹识别系统。

1 主要特点

AT75C220是定位于智能互联网应用的高性能ARM处理器,采用ARM7TDMI微处理器核,具有OadDSP核,强大的外设(如中断控制器和外设数据控制器),其DMA通道增强了微控制器的实时性能。主要特点有:

    • 集成ARM7TDMI ARM Thumb处理器核

       

    • 一个16b定点DSP核
    • 双以太网10/100Mb/s MAC接口
    • 88kB的完整快速RAM(支持DMA方式)
    • 多媒体数字信号编解码器(CODEC接口)
    • 集成SDRAM控制器

      这样,AT75C220就很适合于需要图像处理功能并具有互联网通信能力的设备,比如高性能的指纹识别设备和VoIP应用等。单芯片集成多种功能可以降低成本,提高系统可靠性。同时,该芯片完备的开发软件支持(包括LINUX操作系统和DSP算法程序支持等)也有利于减少产品上市时间。

      2 芯片结构

      AT75C220主要由运行速度达40 MI/s的基于ARM7TDMI的RISC处理器、运行速度为60MI/s的DSP处理器和双以太网10/100Mb/s的MAC接口组成。其内部机构如图1所示。

      AT75C220包含2种不同的总线ASB和APB,ASB用于连接、DSP核等核心模块,而APB总线则连接串行通信接口、通用I/O口等,两总线之间用AMBA总线桥连接。

      ARMTTDMI微处理器是一个高性能的嵌入式CPU,他功耗低,运算速度快,内含Thumb指令解码器,可支持16b指令,同时支持调试和快速乘法等功能,并可通过模块互交总线与其他功能模块进行数据交换。
      ARMTTDMI(Thumb)是公司授权用户最多的一项产品,将ARM7指令集同Thumb扩展组合在一起,以减少内存容量和系统成本。同时,他还利用嵌入式ICE调试技术来简化系统设计,并用一个DSP增强扩展来改进性能。选择基于的产品的另一个理由是,ARM公司的处理器核心得到了大量厂家的支持,便于产品的开发和升级换代。

      同其他集成DSP核的芯片相比,AT75C220的DSP子系统资源是相当丰富的,如图2所示,除包含一个60MI/s,16b定点DSP内核外,还具有不同用途的RAM:2kB×l6X-RAM,2kB×l6Y-RAM,16kBXl6通用数据RAM,24 kB×l6可下载程序RAM,一个256×16双端口的RAM邮箱用于MCU-DSP通信。完整的CODEC接口允许大量的工业声音、多媒体或数据的连接。 


    • 芯片集成的以太网接口包括了2个独立的10/100Mb/s以太网MAC接口和一个32kB的数据包缓冲区。双端口MAC的设计使设备嵌入到现有的以太网中而不需要另外的电缆,由于2个MAC接口之间用局部总线连接,大量的数据包可以不受延迟地从一个MAC传送到另一个MAC,其间无需软件的参与。数据包缓冲区由MAC接口通过DMA的方式操作,用于临时保存接收和发送的数据包,在大多数情况下可以满足较大的通信量。 

      3 指纹识别算法

      指纹自动识别作为一个有较大难度的模式识别研究分支,其研究难点主要集中在如何对采集进来的各种有噪声图像进行滤波和增强、如何抽取指纹的全局和局部特征以及如何进行在图像不能完全定位和图像可能发生扭曲变形情况下的特征匹配上。一般可以分为以下几个步骤,如图3所示,指纹识别算法流程主要包括灰度滤波、二值化、二值滤波、细化、细化后的去噪等步骤,最后进行特征提取和匹配。


      本系统的指纹识别算法的灰度滤波采用基于块方图的方向滤波,接着进行二值化并细化指纹图像,在二值化和细化的过程中进一步去噪声,消除导致错误的特征点的可能性。用模板匹配的方法分别获取指纹的特征点,如端点、叉点等。指纹匹配采用基于中心点的匹配算法。通过在PC机上验证,该算法可以达到较好的效果。

      4 

      一般由指纹传感器、DSP处理器和外围电路组成,为增加系统的处理能力,系统中往往还包括另外的处理器管理诸如通信、人机接口、指纹数据库等。本系统结构如图4所示,电容式的指纹传感器FPSll0采集指纹图像并交由内部的DSP协处理器进行指纹识别,完成图像的预处理、提取指纹特征码,并同指纹库中的指纹特征进行匹配,给出判别结果。运行于LINUX操作系统之上,实现了TCP/IP协议栈,由于指纹识别器的网络系统对实时性和吞吐率要求并不高,但是要求可靠性和保密性比较高,所以传输层协议选择TCP协议,并且传输的数据经过了加密。ARM处理器上还包括了人机接口和控制输出,控制输出用于对电子门锁进行控制。另外,ARM软件还包括门禁系统、考勤系统中的一些专有控制模块,比如门禁权限管理、考勤数据库管理等。


      5 算法的移植

      指纹识别算法开始时在PC机上实现,需要移植到的DSP子系统中。如果直接用C语言移植,难以发挥DSP的实际处理能力,执行效率相当低。关键的算法模块用汇编语言实现后,指纹的采集、图像预处理和匹配可以在1s中完成,算法效率和识别率与PC机上计算相当,达到了实际应用要求。

      6 结 语

      由于硬件采用集成多功能的构成系统,系统硬件设计简单,使整个系统达到了小型化、网络化、智能化的要求。实践证明,采用这种结构的设备处理能力得到了提高,代表了未来门禁系统发展的方向。

      硬件功能的集成使主要的设计工作集中在软件设计上,如何进一步提高识别率,分布式数据库系统的完善,数据的保密性传输是今后设计的要点。

转载于:https://www.cnblogs.com/smart123/p/6209720.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/255727.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据库学习笔记】——创建数据库文件

目录 1、数据库基础知识 2、创建数据库文件 1、数据库基础知识 什么是数据库?——数据库是存放多个数据表的仓库,数据表可以理解为是二维数组 如上表所示,每个表由行列组成: 字段:每一列称之为一个字段,每…

浅谈工业机器人的运动停止

德系的工业机器人系统中,对于机器人停止运动,定义了3种模式,比如 KUKA 的工业机器人分别定义了 Stop 0 ,Stop 1,Stop 2 (*注1)。这种定义模式是与机器人的机械结构和电气结构相关联的。 对于此,读者应该先了…

【数据库学习】——数据库可视化--Navicat下载安装连接教程

目录 进入网站 下载可视化软件 安装 双击桌面图标,选择试用 连接数据库 查看数据库中的表,如下所示 常用数据库有: MySQL、sqlite等 进入网站 Navicat | 产品https://www.navicat.com.cn/products 下载可视化软件 这里以数据库sql…

C# 格式化字符串

原文地址:http://www.cnblogs.com/zyh-nhy/archive/2007/10/11/921240.html 1 前言如果你熟悉Microsoft Foundation Classes(MFC)的CString,Windows Template Library(WTL)的CString或者Standard Template …

【数据库学习笔记】——操作sqlite(增删改查)以及cursor的方法介绍

目录 1、sqlite数据库介绍 1)常见的数据库操作 2)数据操作常见步骤 2、向数据表中增加数据(insert into) 1)向数据表中添加一条记录 2)向数据表中一次性添加多条记录 ​ 3、修改数据表中已有的数据 1)…

【sqlite常用操作SQL语句】

目录 1、创建一个新的数据表 2、在已有的数据表中增加一个新的字段(列) 3、 在已有的数据表中增加一条新的记录(行) 1、创建一个新的数据表 "create table user(id int(11) primary key, name varchar(20))" 含义&…

centos6虚拟机复制后修改网卡

方法1: 使用vmware创建centos6.4虚拟机, 创建完成后复制该虚拟机, 打开复制的虚拟机发现网卡名字是eth1,而网卡配置文件为eth0,mac地址变了 这时修改网卡配置文件, 删除uuid,修改deivce为eth1&a…

【pyinstaller打包pyqt5编写的项目为exe(脱离环境可运行)】

目录 下载pyinstaller库 0、pyinstaller语句介绍 1、单个py文件打包成exe 1)只有py文件 假设只有一个py文件:pyinstaller -F xxx.py 加上图标:pyinstaller -F xxx.py -i xxx.ico 取消命令行窗口:pyinstaller -F -w xxx.py -i xxx.ico 2) 不但有py…

python 中cPickle学习二

写入: import cPickle as p shoplistfile data.data shoplist [meili,[current_account,[100000,1222],basis_account,[5555555,888]],qinshan,[current_account,[1089000,12292],basis_account,[55555955,888]],jiayou,[current_account,[10000,12292],basis_acc…

4.0 多线程基础篇

本文并非最终版本,如有更新或更正会第一时间置顶,联系方式详见文末如果觉得本文内容过长,请前往本人 “简书”4.0-1.1 进程 概念 : 进程是指在系统中正在运行的一个应用程序 (操作系统中每一个 APP 就是一个进程)  性质 : 每个进程之间是独…

【python pandas excel操作】

目录 1、打开Excel,获取不同sheet的名称 2、获取不同sheet的内容 3、 获取行数以及表头 4、对某一列的信息进行筛选 5、根据列号和索引号提取一行或者一列的数据 6、其他panda对Excel的操作 摘自:python对excel操作获取某一列,某一行的值…

线性期望(BUPT2015校赛.F)

将整体期望分成部分期望来做。 F. network 时间限制 3000 ms 内存限制 65536 KB题目描述 A social network is a social structure made up of a set of social actors (such as individuals or organizations) and a set of the relationships between these actors. In simp…

【pyqt5学习】——进度条progressBar

# 进度条 self.progressBar.setValue(0) # 设置进度条的最小值 self.progressBar.setMaximum(100) # 设置进度条的最大值 # 设置进度条当前值 self.progressBar.setValue((int(curindex/excelNum)*100)) 常用方法 方法值说明setRangeQProgressBar.setRange(min, Max)通过 setR…

弧焊 不同气体对焊缝的影响 100二氧化碳 15%氩气CO2混合

Ar含量提高后,相比原来的100%CO2成本会提高很多。 Ar的密度比CO2小,焊接的焊枪必须压的很低,如果焊接结构中有一些狭小区域,焊枪则无法到达。纯CO2气体保护焊,焊丝可伸出较长。 Ar属于惰性气体,焊接时…

Windows和Linux如何使用Java代码实现关闭进程

在用selenium做自动化测试时,由于各种不明原因,有时Chrome浏览器会出现假死的情况,也就是整个浏览器响应超时,本人脚本主要部署在Windows机器上,所以主要以Windows为主,浏览器为Chrome,即如下图所示 或者由…

【pyqt5学习】——下拉框comboBox

# 向下拉框中添加选型,具体为在下拉框第index1个选型设置为内容name self.comboBox.addItem(name,index1) # 将下拉框中所有的选项删除 self.comboBox.clear() # 根据索引获取当前的下拉框内容 index self.comboBox.currentIndex() text self.comboBox.itemText(i…

【文件处理】——Python pandas 写入数据到excel中

目录 1、创建一个新的excel表格 2、 获取写入excel的数据data 3、将data类型转换为pandas接受的类型 4、写入到excel中 5、保存excel 最终结果 #!/usr/bin/env python # -*- coding: utf-8 -*- # Time : 2021/11/9 23:18 # Author : linlianqin # Site : # File …

微软Visual Studio 2012软件功能介绍

对于从事.net程序开发的我们,都要用到C#依附的Visual Studio平台!Visual Studio是目前最流行的Windows平台应用程序开发环境。最新版本为 Visual Studio 2012 版本,基于 NET Framework4.5 。. Visual Studio 2012内置的测试工具可以帮助开发者打造高质量…

Spring Boot轻松理解动态注入,删除bean

2019独角兽企业重金招聘Python工程师标准>>> 我们通过getBean来获得对象,但这些对象都是事先定义好的,我们有时候要在程序中动态的加入对象.因为如果采用配置文件或者注解,我们要加入对象的话,还要重启服务,如果我们想要避免这一情况就得采用动态处理bea…