当前位置:首页 >> 信息与通信 >>

于ARM的指纹识别门禁系统的设计与实现


湖南大学 硕士学位论文 基于ARM的指纹识别门禁系统的设计与实现 姓名:马文科 申请学位级别:硕士 专业:电子科学与技术 指导教师:王玲 20090420

雉于ARM的指纹识别门禁系统的设计与实现





随着数字化和网络化的发展,传统的门禁系统由于鉴别方式、速度和性能等 方面的限制,很难满

足安全可靠和网络化的控制需求。由于识别技术的不断成熟, 基于人体生理特征的身份识别系统逐渐被人们开始采用,目前,从实用的角度看, 指纹识别技术要比其它生物识别技术更安全和方便,这是因为人的指纹具有唯一 性、不变性以及贴身性的特点。传统的门禁控制器常采用单片机开发,利用串行 通信接口向远程上位机传送数据,多个门禁控制器一般组成RS485网络,通信线 路专用且不易于实现网络控制和远程控制,而基于TCP/IP网络通信的门禁系统 通过局域网传递数据,很容易实现远程控制和分布式管理。 文中设计了基于指纹识别和以太网的智能网络型门禁控制器。在ARM9和 Linux操作系统上采用FPS200指纹传感器采集指纹图像和USB摄像头采集视频 图像,以及采用以太网控制器芯片AX88796,实现了基于TCP/IP协议的网络门 禁系统。 论文首先分析了门禁系统的研究背景、意义及国内外的发展现状,然后介绍 了指纹识别网络门禁系统的总体结构,阐述了系统各个重要功能模块的硬件资源。 根据系统的硬件资源搭建了嵌入式Linux的软件平台,移植了相关模块的驱动程 序。论文研究了指纹识别算法,包括指纹图像预处理和指纹图像的特征提取和匹 配,重点分析了指纹图像分割法,利用灰度梯度和灰度方差的结合设置一个合适 的局部阈值对指纹进行分割。然后,阐述了门禁控制系统软件的总体设计,并重 点介绍Vide04Linux采集图像、指纹图像采集、GoAhead Web Server的应用以及 系统运用TCP/IP实现系统门禁控制器和上位机PC之间的网络通信。 系统测试部分介绍了测试环境、测试方法以及测试内容。测试结果表明,本 课题设计的指纹识别网络型门禁系统在稳定性、可靠性以及实时性方面达到了较 好的效果。文章最后提出了一些在工作中遇到的问题,并对近几年来的一些新的 研究趋势做了简单的总结与展望,指出了指纹识别网络型门禁系统未来的研究方
向。


关键词:嵌入式;门禁;指纹识别:Linux;TCP/IP

Il

硕Ij学位论文

Abstract

With

the

deVelopment of digitalization and network,the traditional

access

control system is

dimcult

to

meet the reliability and network control requirements

because of the identification methods,speed and characteristic’s
status

perf6mance.The
based
on

human physiology
progress of the

recognition

is

widely

used

the

recognition technology.At present,looking f.rom the practical angle,the fingerprint recognition technology must be safer than other physiology character recognition,this is because person。s fingerprint is unique,inVariable
as

well

as

the next to the skin.

The traditional entrance guard controller oflten used the Single?Chip

Microcomputer

and the serial port for transmitting data to the position machine.Some entrance guard controllers compose by the RS485 network generally,it makes it’s the network and the
no

easy to realize link’s

remote

control

because

of

the

communication
on

special—purpose,but networking entrance guard system based realize the remote control and the distributional management. Based intelligent and
on

the TCP/IP is easy to

Ethernet

technology

and

fingerprint

recognition,



new

kind

of

access

controller is designed in this paper.In the Linux opera.ting system
on

ARM9,the

paper realized nngerp“nt image acquisition based
access

FPS200 sensor,

and realized the network Ethernet chip AX88796.

controller based

on

the TCP,IP protocol with the

Firstly,the paper analyzed the development of the

access

control system and it’s

background and significance,and then inlroduced the oVerall structure of tlle system, listied the

important

f.unction

modules of the hardware

resources

and

driVers.

According to the system’s hardware resources,the paper builded the embedded Linux software platf.orm and transplanted the related module’s driVers.Thirdly,the paper

studied the fingerprint recognition algo“thm which mainly includes the fingerprint image pretreatment and the feature extraction and matches.In this paper,it’s focued
on

analysis of fingerprint image segmentation algorithm,using of the gray gradient


and the gray Variance combination,and then seting up segmentation. At last, the paper elaborated design which is focus GoAhead
on

suitable local threshold fbr control system’s soRware

the

access

collecting Vide04LinuX image,fingerprint image acquisition, the communication
on

Web

SerVer’s applications and

between the

access

control system controller,and the client PC based

TCP/IP protoc01.

The part of System testing includes the test environment,methods and contents.

III

基于ARM的指纹识则门禁系统的设计与实现

Test results show that the design of this issue fingerprint-based in the network is stable, reliable and

access

contr01 system reached


real-time application

which

satisfactory outcome.At the end of the paper,it proposed some meeted in the work,and made


questions which

simple summ是ry about some new research tendency’

which comes to nearly seVeral years,and also pointed out the nngerprint recognition network entrance guard system’s future direction.

Key

Words:Embedded
TCP/IP

System;Access Controller;Fingerprint Recognition;Linux;

IV

湖南大学

学位论文原创性声明
本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取 得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其 他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个 人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果 由本人承担。

作者签名.乡乏斜

日期叩年厂月加

学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学 校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查 阅和借阅。本人授权湖南大学可以将本学位论文的全部或部分内容编入有关 数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位

1、保密口,在——年解密后适用本授权书。
2、不保密硒。
(请在以上相应方框内打“√’’)

作者签名: 导师签名:

马艮每昝
≥彰罗。

日期:)渺炜f月心日

日期:沸J月鼍泪

硕i:学位论文

第1章绪论
1.1课题的研究背景及意义 1.1.1课题的研究背景
随着科学技术的不断进步,人们对现代化办公和生活场所提出了更高层次的 安全管理需求,普通的门锁系统和手工出入管理已经不符合现代人的实际需求。 由于安防业的智能化和网络化,为顺应智能楼宇、智能小区的发展,门禁系统也 必须实现更可靠、更安全和更方便的智能系统。现代门禁系统综合利用了传感技 术、数字信息处理、计算机技术、多媒体技术和网络技术,以实现门禁系统信息 的采集、传输和处理。 扫前智能门禁管理系统已广泛用于工厂、‘学校、写字楼宇、物业小区、商店、 金融系统、电信系统、军事系统、宾馆等多种场合,大大提高了整体的工作效率、 保障了系统安全,智能、安全和高效的现代化门禁系统已经成为社会发展的必然 趋势,同时它也是现代化建筑的一个重要组成部分IlqJ。 传统的机械钥匙、用户ID+密码以及智能卡等的保护措施存在着丢失、遗忘、 复制以及被盗用的隐患,在这种情况下,最新发展的生物识别技术为上述方法的 不足提供了一个很好的解决方案。由于指纹识别具有唯一性、不变性和贴身性的 特点【41,成为了众多生物识别技术中备受青睐的一个。且随着生物识别技术和计 算机技术的飞速发展,指纹识别算法已达到迅速、准确和可靠的水平,已越来越 多的应用在现代智能门禁系统的前端信息采集部分。 目前使用较多的是指纹单机门禁系统,其采集、处理和识别都在一个控制系 统中完成,只适用于小系统和安装位置集中的单位,且通信线路专用,安装好后 不易于更换管理中心的位置【5’6】。在大系统和安装位置分散的单位,单机门禁系统 必然耗费较大且效率不高。因此有必要采用TCP/IP的网络型门禁控制系统,实 现网络控制和远程控制。

1.1.2课题的意义
系统采用指纹采集作为门禁系统的前端部分,由于指纹识别具有唯一性、不 变性和贴身性的特点,使它成为一种安全有效的身份验证方法。另外,系统采用 基于TCP/IP协议的网络型门禁控制器是通过局域网传递数据的,管理中心随时 可以变更,不需要重新布线,很容易实现网络控制和远程控制,并且指纹的处理 和识别可以在运算速度更快的管理中心实现,这样控制器功能简单,而且多个控 制器可以连接到一个服务器,提高了门禁系统控制和管理的效率。

基于—LRM的指纹识别门禁系统的设计与实现

1.2以太网指纹识别门禁系统的研究现状和发展
据考古学家证实,公元前7000年.6000年,指纹作为身份鉴别的工具已经在 叙利亚和中国开始应用。但是由于缺乏专门性研究,未能将指纹识别技术上升为 一门科学。20世纪早期,指纹识别正式成为身份识别的方法并被法律部门用作身 份鉴定的依据,并开始在世界范围内建立指纹识别机构和罪犯指纹档案。指纹识 别的有关技术,包括指纹采集技术、指纹分类技术和指纹匹配技术都得到了较快 发展。例如美国联邦调查局(FBI)在1924年库存样本指纹就达到了8 1万枚。 20世纪80年代,个人电脑、光学扫描等技术革新使得他们作为指纹取像的工具 成为现实,从而使指纹识别可以在其他领域中得以应用。随着取像设备的引入及 其飞速发展,生物指纹识别技术的逐渐成熟,可靠的比对算法的发现都为指纹识 别技术提供了更广阔的舞台。目前,利用计算机进行指纹识别的技术在国外已很 成熟,并且已经开始大规模推广。许多大公司有专门的机构从事该项技术的研究、 开发与应用,包括美国Digitalperson、Identix、Vreridicom、韩国现代及台湾Aeter 公司等,识别算法上都达到世界先进水平。美国Veridicom公司的指纹识别算法 同样是国际上最优秀的算法之一,它不进行细化,直接对二值化后的指纹图进行 滤波,在其上提取特征点,利用拓朴图进行对比,其拒判率小于1%,误判率小
于O.01%【7~1们。


智能安防的日益流行对于楼宇管理自动化和安全监控提出了更高的安全性和 可靠性要求,基于指纹识别的智能门禁管理系统应用得越来越广泛,在一些发达 国家已得到普遍的应用。面对规模已经越来越大的门禁控制系统,普通的单机门 禁系统已经不适合,比如智能小区、景点门禁系统等。因此必须要开发进行远距 离传输的TCP/IP的网络型门禁控制系统,由于网络型门禁控制系统很容易实现 远程控制和分布式管理,还可以方便日后扩容和维护,日益变得重要。

1.3本文的研究内容
论文的研究内容分为指纹识别的算法研究和ARM门禁控制器硬件实现两个 部分。在以往算法的研究基础上,利用指纹图像灰度梯度和方差的结合对指纹分 割方法进行改进,仿真实验证明本文中的改进算法鲁棒性好。论文在以ARM S3C2410为核心和嵌入式操作系统Linux的基础上,设计开发了基于指纹识别的 以太网门禁控制系统。 本文具体内容主要有以下几个方面: (1)系统整体方案概述和设计:根据系统功能要求,设计指纹识别以太网门 禁系统,重点阐述了其中关键模块的硬件设计。 (2)系统工作平台搭建:交叉编译环境的建立、移植启动引导程序VIVI、 制作CRAMFS根文件系统和JFFS2文件系统、移植嵌入式操作系统Linux以及系


硕上学位论文

统所需相关设备驱动的移植(NAND FLASH、网卡、USB、USB摄像头、指纹采 集FPS200)。


(3)指纹识别算法的理论分析和仿真:研究了指纹识别算法,主要包括指纹 图像预处理以及指纹图像的特征提取和匹配两部分。 (4)系统软件总体设计:阐述了门禁控制系统软件的总体设计,然后对各模 块进行应用编程,主要包括视频采集、指纹采集以及TCP/IP网络应用编程。 (5)系统测试:结合实验测试环境和测试数据,分析了系统的工作情况。 (6)最后,对全文进行了总结,并对指纹识别以太网指纹门禁控制系统的未 来发展趋势做出展望。



基于ARM的指纹识别门禁系统的设计‘了实现

第2章系统硬件设计
2.1系统总体设计
2.1.1系统概述及设计原则
门禁管理系统是新型现代化的安全管理系统,主要用于管理重要部门出入口, 是实现安全防范管理的有效措施,适用于各种重要部门,如企业、政府、银行、 宾馆、金融贸易楼和综合办公楼等。 门禁系统一般分为独立型和联网型,联网型门禁系统通讯方式常见的有 RS一232、RS485、CAN和TCP/IP,采用TCP/IP通讯方式的联网型门禁系统简称 为TCP/IP网络门禁系统。相对其它通讯方式,基于TCP/IP网络通信的门禁系统 通过局域网传递数据,更容易实现远程控制和分布式管理f11】。 从门禁锁的控制方式来看,主要有钥匙、密码、磁卡、IC卡等。随着现代生 活对安防水平要求的提高,从目前已有的门禁锁具的控制方式来看,存在着一定 的安全隐患,钥匙、密码和磁卡容易复制、窃取;IC卡的安全性较高,但也容易
丢失【l 21。因此,现在人们心目中的门禁锁具必须具有方便、安全,美观等特点。

随着计算机技术的飞速发展,基于人体生理特征的身份识别系统逐渐被人们开始 采用,目前,从实用角度看,指纹识别技术要比其它生物识别技术更安全和方便。 基于指纹识别的TCP/IP网络门禁系统方案设计的前提是满足用户的各种需 求,利用系统强大的功能以及良好的性价比,让用户得到最好的服务和最大的利 益。方案设计的原则如下: (1)实用性 门禁系统的功能应符合实际需要,不能华而不实,片面追求系统的超前性, 势必造成投资过大。同时,门禁系统的前端新产品与软件的操作要简单易用,使 一般用户或操作人员通过简单的培训或提供说明书便能独立操作。 (2)稳定性 由于门禁系统的特殊性,必须是运行稳定、故障率低的可以长期不问断工作 的系统,所以稳定性显得尤为重要。 (3)安全性 在系统可靠运转的同时,系统还必须提供安全可靠的门锁控制,由于指纹的 不变性和唯一性决定了指纹是目前最廉价、最可靠的身份识别方式,所以指纹开 门更安全。此外,系统还必须提供实时的监控功能、备份功能、联动功能和报警
功能等。

(4)可扩展性



门禁系统的设计和实施就要考虑到将来可扩充的实际需要,例如,可以灵活 的增删或更新子系统,软件管理的更新等。 (5)易维护性 门禁系统运行过程中的维护应做到简单易行,方便用户的管理维护和使用。

2.1.2系统组成及功能
一般RS485门禁控制器只支持128台或者256台设备联网,而TCP/IP门禁 控制器理论上可以支持无限多台门禁设备。所以TCP/IP网络型门禁控制器是最 适合大型大面积的门禁系统联网的。例如供电部门的变电站门禁的联网管理、?银 行储蓄所的门禁管理等都适合这种模式。 互联网的门禁系统结构如图2.1所示。

互联网In钯met
ADSL/MODEM ADSL/MoDEM









图2.1互联网的门禁系统结构图

基于指纹识别的TCP/IP门禁系统方案基本组成【13】: (1)管理中心:一台连接到门禁控制器或网络的PC机,通过局域网或广域 网与其它门禁控制器或PC机连接,实现门禁控制器采集信息的处理和分析,并 发送控制指令,以及对相应的软件管理。 (2)门禁管理软件:管理工作站通过管理软件远程监控服务器和各门禁控制 器的工作状态,实现各种管理功能。 (3)门禁控制器:用于前端信息的采集、传输和处理,并控制门禁的电控锁 和门铃,执行处理器下达的开门、报警、启动门铃等指令以及提供通信多机连接 端口等。 (4)电子门锁:门禁系统的执行机构和关键设备,用于对物理通道的控制。 (5)电力设备:采用直流电源作为整个门禁系统的运行电源和门锁电源(一 般采用内部电源)。 (6)联动设备:可与门禁控制器所有输入、输出节点进行联动,实现防盗报 警、消防报警等大型系统的联动,一般在门禁管理软件中对联动设备进行相关的
编程设置。



基于ARM的指纹识别门禁系统的设计与实现

(7)通讯设备:包括交换机设备、路由器和MODEM等,实现设备的网络
连接。

指纹识别门禁系统的主要功能特点: (1)采用高效的指纹识别模块,可使指纹直接开锁,使用方便快捷,具有很 高的安全性。 (2)应用ARM处理器和Linux操作系统,可以很好的保证门禁系统独立连 续工作,稳定性好。 (3)系统采用指纹与密码的结合,可以根据实际需要设置多种认证模式,支 持多用户,多组别组合开门,具有良好的灵活性。 (4)系统配以科学化管理软件,可以实现门禁系统的科学化管理。 (5)应用TCP/IP以太网模块,可以方便实现网络控制和远程控制。 (6)系统采用分级管理,分为管理者和用户,采用逐级权限管理,将用户的 指纹采集并存储在中央管理主机上,根据用户的开门权限,将用户指纹下传至相 应的子门禁系统中。 (7)系统有视频监控和报警等一些相应的辅助功能,提高系统的安全性。
本文基于ARM9(S3C24l O)设计和实现了一种指纹识别的网络型门禁控制

器。采用指纹识别器为前端信息的采集,用以太网控制器实现门禁控制器与上位 PC机间的通信,并利用LCD来实时显示状态,并可以提供一些其它的辅助功能, 如语音提示、报警和摄像监控等。 指纹型网络门禁控制系统框架如图2.2所示。

dN




\..I洲女网1.. 以太网恻 竺:!Z I∞

、\





矧指纹采集
微处理器
S3C24lO

yl控帛。器J~P

l电源b


MD防

I电子门锁k爿继电器∽
图2.2门禁系统框图

矧报警系统 洲语音提示 矧摄像头 矧存储器 键盘 例

2.2嵌入式主控模块设计
2.2.1

ARM微处理器与地址空间映射

本系统选择了韩国三星公司的高性能ARM9微处理器芯片S3C241 O作为主处 理器,S3C2410芯片是基于ARM920T内核,五级流水线和哈佛结构,内核工作 电压为1.8V,输入输出电压为3.3V,具有180MHZ/200MIPS性能,是高性能和 低功耗的硬宏单元。ARM920T内核具有全性能的MMU、指令和数据Cache以及



硕士学位论文

高速AMBA总线接口114J。 S3C2410内部结构比较复杂,可提供很多可扩展的功能模块,主要有MMU‘ 虚拟内存管理单元,LCD控制器(支持上到4k色的STN和256k色的TFT),3 通道UAl汀,4通道DMA,4通道具备PWM功能的定时器,I,o口,具有日历功 能的l汀C(实时时钟),8通道10bit精度ADC和触摸屏控制器,IIC总线接口, IIS数字音频总线接口,两个USB2.0全速主设备及一个从设备,SD/MMC卡控制 器,2通道SPI及内置lQ/100M的网络接口等。
S3C24l

O空间映射如图2.3所示。S3C2410理论上可以寻址的空间为4GB,

但是其中有3GB的空间都预留给处理器内部的寄存器和其他设备了,因此留给外

部可寻址的空间只有lGB,也就是Ox00000000.Ox3脚,总共应该有30根地址
线。这lGB的空间,S3C2410处理器又根据所支持的设备的特点将它分成了8份, 立地给每个BANK区一个片选信号(nGCSO.nGCS7)。其中nGCS6对应的地址空

每份空间有128M,这每份空间又称为一个BANK区。为方便操作,S3C2410独

间和nGCS7二所对应的地址空间是专门用于动态存储空间的,也即为系统的内存。

囊辟种师—◆
戤∞∞90∞—◆

O●暇'相1-●1。'O
H醴u—皤

O-●l':OI-OO
H瞳u■一

SFR棚

S陬椭
N暖u喇

嗣瓤X脚R枷
0俺CS7,



SROM感D蝴
ln0CS8)

㈣1麒为Ij谳s.'
葛糖越M目黜l铺肥.
a糟舶曩嬲踟8一s^静
Reler协

.13裔艇瞒4¨即,2黼




g硼
ln9cs5)

'.1囊IB
’ J

翻硎
‘nGeS‘’

'麓‘_B
1 r l

Hl蝴籀=oj

1∞



懈S3’
孓跏
《n0CS2)

SROM

1勰为确蜘’
' J

Acoe誊sibk

'麓‘^B


鬟蝴
卵臼:S') 80。th妇m靠



'翟材B
' J

1盏^_§


甜弘M(4糟,

1.SR饼^m蝴RO¨簟翁U甜typem删 SFRm黼sl删Fw咖脚黼贸.
Na疆翳: 2

圈2.3 S3C24lO存储空间分布图



幕于ARM的指纹识别门禁系统的设计‘亍实现

2.2.2 NAND

FLASH单元



Flash是一种可在系统(In.System)进行电擦写、掉电后信息不丢失的存储 器。它的高集成度和低成本使它成为市场主流。Flash芯片具有低功耗、大容量、 擦写速度快、可整片或分扇区在系统编程(烧写)、擦除等特点,并且可由内部嵌 入的算法完成对芯片的操作,因而在各种嵌入式系统中得到了广泛的应用。作为 一种非易失性存储器,Flash在系统中通常用于存放程序代码、常量表以及一些在 系统掉电后需要保存的用户数据等。常用的Flash为8位或1 6位的数据宽度,编 程电压为单3.3V。 Flash技术根据不同的应用场合也分为不同的发展方向,有擅长存储代码的
NOR Flash和擅长存储数据的NAND Flash。同时,S3C2410内部集成了NAND

Flash控制器,为了支持系统从NAND Flash中启动,S3C24l O内部有一块被称为 垫脚石(Steppingstone)的SRAM缓存。如果选择从NAND Flash中启动,在启 动时S3C2410会自动的将NAND Flash存储器中最前面的4KB数据拷贝到 S3C24lO内部的SRAM中并自动执行。如果这4KB存放的是启动代码,那么启 动代码就可以从S3C241 O内部的SRAM中执行,启动代码初始化系统和外部
SDRAM后将存储在NAND Flash中的操作系统和应用程序拷贝到外部SDRAM

中,这时整个系统就可以启动了。 在本系统中,采用的是三星公司的K9F5608U芯片【15】,其电路原理图如图2.4
所示。

图2.4

NAND

FLASH原理图

直接控制,CPU分配给它的地址空间为Ox00000000—0xol脚。代码部分则放在
从Ox00000000开始的地址空间内。系统将CPU的引脚OM【1:O】设置成0x00b,这


K9F5608U为8位数据总线,32M字节容量,该芯片由S3C2410的相关引脚

硕1:学位论文

样当核心板S3C2410上电复位后,系统首先将NAND Flash开始的0—4K的程序 映射到SteppingStone区,然后从那里开始执行。NAND Flash可以存放数据和程 序,但需要特定的指令进行读写。
2.2.3

SDRAM单元

SDRAM具有容量大、存取速度快、成本低的特点,得到了广泛的应用。与 Flash存储器相比,SDRAM不具有掉电保持数据的特性,但存取速度高于Flash 存储器,且具有读/写属性,因此SDRAM在系统中主要用作程序的运行空间、数 据以及堆栈区,是系统启动之后进行存取操作的存储器。 S3C2410在片内具有独立的SDRAM刷新控制逻辑,可方便地与SDRAM连 接。同时,由于S3C24lO片内的存储空间不大,大量的数据都要通过SDRAM暂 时存放和交换,即动态存储区。系统启动时,CPU首先从起始地址读取启动代码 进行系统初始化,在完成系统初始化后,程序代码一般调入SDRAM中运行以提 高系统的运行速度。SDRAM存储单元犹如一个电容,总是倾向于放电,为避免 数据丢失,必须定时充电刷新。 系统选用两片由HyniX公司生产的32M字节的HY57V561620芯片作为系统 内存【16】,其原理图如图2.5所示。S3C24lO的片选信号nGCS6连接两片 HY57V561620单元作为片选信号,CPU分配给这两片HY57V561620单元的地址 空间为系统微处理器内存映射的BANK6区和BANK7区。

。图2.5 SDRAM原理图 2.2.4

RS232串口单元

串口是计算机一种常用的接口,具有连接线少、通讯简单的特点。S3C24lO 内部有3个独立的UART控制器,每个控制器都可工作在中断模式或DMA(直接



基于ARM的指纹识别门禁系统的设计’i实现

内存访问)模式。每个UAl玎均具有16字节的FIFO(先入先出寄存器),支持的 最高波特率可达到230.4Kbps。每个串口都可选红外模式、可编程波特率、具有 一或两位停止位、5.8位数据位可编程、可进行奇偶校验【l¨。 在嵌入式Linux操作系统的开发过程中,RS2232串口发挥着非常重要的作用。 这是因为Linux的开发采用的是宿主机和开发板协同工作的方式,在程序的调试 和Linux的操作指令都是通过终端并由宿主机的串口传输给开发板的。RS232串 口除了在程序的调试和指令的输入方面发挥作用外,还可以用来烧写制作好的镜 像文件。 为了让PC机与S3C2410的串口进行通讯,选用MAX3232电压转换芯片, 它采用收、发、地三线连接,无握手信号,通过S3C241 O内部的串口控制器进行
控制。系统串口与电压转换芯片MAX3232的原理图如图2.6所示。

,矿 —1
o o

:RS23麓0∞0


I Cll IO毒 j

Cl?、∞0

16







3RS23Z刁匹玲:盘= 8




4 争 —了

\0

尉l和 一
翌剽

ct产
l●


Cl?V÷

.i蝴
●●■■■一 l l ll。 一|Il
ll

C硌




3姗l婚232ZI∞0




C扣



C冬


TlZX

15角
Z铂翟 l:R)e搿 lO:XDj 9鬣XD:

—鎏



—鲤





划l i拨l

l夏:s笃墨00D1

黔二32:塑1

砚at汀 黜Ⅸ 雹CET
l囝N

鼬供万
了复X

毫X战嚣

删2

图2.6串口与MAX3232的原理图 2.2.5

USB及USB摄像头单元
Bus)即通用串行总线,是现在非常流行的一种快速、

USB(Universal Serial

双向、廉价、可以进行热插拔的接口。随着嵌入式技术的快速发展,USB的应用 已经逐渐从PC机扩展到了嵌入式技术中,并且发挥着重要的作用。 USB设备之所以会被大量应用,主要具有以下优点: (1)可以热插拔,使用方便。 (2)系统总线供电,并可提供5V/500mA电源,具有独立供电特点。 (3)支持设备众多,支持多种设备类,例如鼠标,键盘,摄像头等。 (4)连接灵活,可以连接多个设备,最多可扩127个,连接的方式也非常灵 活,既可以使用串行连接,也可以使用集线器Hub把多个设备连接在一起再与 PC的USB口相连。

lO

硕士学位论文

(5)速度快,支持高速数据传输,USBl.1是12Mb/s,USB2.0高达480Mb/S。 S3C2410带有两个USB主设备控制器和一个USB从设备控制器,这样可以 方便USB设备的使用。在设计开发一个USB外设的时候,主要需要编写三部分 的程序:固件程序、USB驱动程序和客户应用程序。USB的电路连接图如图2.7 所示。

图2.7 USB电路连接图

USB、接口的设备可以方便应用到嵌入式系统中,具有USB接口的优盘因为 存储容量大,价格低,在嵌入式系统中一般可以用来存储数据。在门禁控制器中, 可以用来存储初始化的资料数据也可以存储采集到的重要数据,方便用户的保存 和修改。另外,本系统中应用到的视频监控就用到了USB接口的摄像头。 摄像头在门禁系统的应用中越来越广泛,通常用作视频图像采集和实时的现 场监控。现在市场上一般为USB接口的摄像头,市场上的USB摄像头主要有两 类:一类是驱动芯片为OV5 11的USB摄像头,Linux自带了这种摄像头的驱动; 另一类是驱动芯片为中芯微ZC301的USB摄像头,这种摄像头目前的市场占有 率超过70%,它采用JPEG硬件压缩方式,截取到的图片直接就是JPEG格式, 这样可以大大缩小由于软件压缩耗费的时间,便于网络多媒体的应用。本系统选 择的是ZC301芯片的USB摄像头,通过其驱动的移植应用到门禁系统当中。

2.3界面显示接口模块设计
LCD(Liquid Crystal

Display)称为液晶。LCD显示器的基本工作原理是通过

给不同的液晶单元供电,控制其光线的通过与否,从而达到显示的目的。因此, LCD的驱动控制器是对每个液晶单元的通电的控制。液晶工作时使用的是外部的 光线,其光线照明方式有两种:传送式和反射式。由于液晶自己本身并不发光, 所以与CI汀相比,液晶显示器的耗电量较低。 本系统选用传送式背光(CCFL)彩色STN液晶屏,LCD的控制器使用S3C241


的内部集成的控制器。系统选用5.7寸、320×240像素、256色的彩色LCD屏。 其可提供4/8/12/16位颜色模式,电源操作范围宽(2.7v.5.5V),低功耗设计可满 足系统省电的要求。 其中,可调变位器Vl毪用于调节LCD彩色屏的对比度,产品出厂时,已设 定成室温下的较好的对比度,当因温度变化等因素显示不正常时,可适当调节VR2

基于ARM的指纹识别门禁系统的设计2j实现

到合适的色彩。

为了保证LCD正常工作,一定要保证硬件正确连接【1引,S3C2410与STN.LCD 屏的关键电路连接如2.8图所示。
VDl9 ̄VD23 VDll~VDl5 VD3~VD7 Ro ̄R4

G咖5
Bo ̄B4 ENAB CK VsyIlc Hsync STN.LCD

VM.VDEN
VCLK VF—VS VL—HS

图2.8 S3C2410与LCD连接图

(1)S3C2410上液晶数据线VD【19:23】、VD【10:15】、VD【3:7】分别对应 R、G、B的三色信息。一个R、G、B共16bits的组合代表了一个像素的信息。 (2)S3C24lO上液晶电压控制信号VM.VDEN与LCD的ENAB信号连接, 保证数据的有效指示。 (3)S3C2410液晶的位时钟信号VCLK与LCD的时钟信号CK连接。在 VM。VDEN信号有效的情况下,LCD控制器送出的数据在VCLK的上升沿送出, 在下降沿时被LCD驱动器采样。 (4)S3C2410的液晶帧时钟信号VF.VS与LCD的帧同步信号连接,LCD 控制器在一个完整帧显示完成后立即插入一个VFRAME信号,并开始新的一帧。 (5)S3C24lO的液晶线时钟信号VL.HS与LCD的行同步信号连接,LCD 控制器在整个水平线数据移入LCD驱动器后插入一个VLINE信号。

2.4网络通信接口模块设计
在ARM系统中,以太网接口是与远端机进行通信及调试的基础,是系统重 要的部分。目前常见的以太网接口芯片有RTL8019、CS8900、DM9008、Ax88796 及DWL650无线网卡等。 本系统选用的芯片为AX88796【”】,它是台湾Asix公司推出兼容NE2000的 快速以太网控制器。其内部集成有lO/100 Mb/s自适应物理层收发器和8K×16位 的SRAM,支持MCS.51系列、80186系列以及MC68K系列等多种CPU总线类 型。AX88796执行基于IEEE802.3/IEEE802.3u局域网标准的1 OMb/s和l 00Mb/s 以太网控制功能,并提供IEEE802.3u兼容的媒质无关接口MII(Media
Independent

Interface),用以支持在其它媒质上的应用。此外,AX88796还提供可选用的标准 打印接口,可用于连接打印设备或用作通用I/O端口。Ax88796的地址总线SA【9:0】 与数据总线SD【1 5:O】分别与CPu的地址/数据总线相连。CPU通过I/O读写NE2000

12

硕上学位论文

寄存器来控制Ax88796的工作状态,通过远程DMA FIFOs与AX88796的内部缓 存SRAM进行数据交换。SRAM与MAC核之间进行Local DMA将数据发送至 MAC层,再经由内部的PHY层发送至IU45接口,或者经过MII接口送至外部 的物理层芯片。 S3C2410的片选信号nGCS2接入网络单元AX88796,CPU分配给AX88796 单元的地址空间为0x10000000.Oxl8000000,也就是S3C2410的BANK2区,它 使用外部中断ExINT2来响应中断。由于AX88796是兼容NE2000的芯片,而Linux 已经能够很好的支持NE2000系列,因此这能够降低Linux网络驱动程序开发的 难度。AX88796的电路原理图如图2.9所示。

图2。9 AX88796电路连接图

该模块主要任务是完成与外界信息的交互,以实现门禁控制器的内部局部网 和Internet之间的通信,设计中采用TCP/IP技术,实现指纹数据的远距离采集与

传输处理。在接口电路中,以太网芯片AX88796的丽接S3C2410的写字节使能
LnwBE引脚,丽接写信号LnWE引脚,面接使能信号LnOE引脚,IRQ接外部中 断EINT引脚。CPU通过I/O读写NE2000寄存器来控制AX88796的工作状态, 通过远程DMA FIFOs与AX88796的内部缓存SRAM进行数据交换。信号的发送

綦于ARM的指纹识别门禁系统的设计oi实现

和接收端通过网络隔离变压器FC.518LS和RJ45接口接入到AX88796。

2.5指纹识别模块设计
指纹采集器采集到指纹图像后,才能被计算机进行识别、处理,指纹图像的 质量会直接影响到识别的精度以及指纹识别系统的处理速度,因此指纹采集技术 是指纹识别系统的关键技术之一。因为指纹的表面积相对较小,日常生活中手指 常常会受到磨损,所以获得优质的指纹细节图像是一项十分复杂的工作。目前主 要使用的指纹采集技术有光学指纹采集技术,半导体指纹采集技术和超声波指纹 采集技术。 光学指纹采集是历史久远、使用最广泛的技术,它是将手指放在光学镜片上, 手指在内置光源照射下,用棱镜将其投射在电荷耦合器件(CCD)上,进而形成 脊线(指纹图像中具有一定宽度和走向的纹线)呈黑色、谷线(纹线之间的凹陷 部分)呈白色的数字化的、可被指纹设备算法处理的多灰度指纹图像。优点是一 定程度上适应温度的变异,较为廉价,可达到500DPI的较高分辨率,但存在要 求足够大的尺寸,且过分干燥和过分油腻的手指也将使光学指纹产品的效果变坏 的缺点。美国DigitaIPersona公司推出的U.甜e.U系列光学指纹采集器是目前应用 比较广泛的光学指纹采集器。 半导体指纹采集技术又有硅电容指纹图像传感器、半导体压感应传感器和半 导体温度感应传感器三种类型。最常见的指纹传感器是半导体指纹传感器,它通 过电子度量来捕捉指纹,在半导体金属阵列上能结合大约100,Ooo个电容传感器, 其外面是绝缘的表面。传感器阵列的每一点是一个金属电极,充当电容器的一极, 按在传感面上的手指头的对应点则作为另一极,传感面形成两极之间的介电层。 由于指纹的脊和谷相对于另一极之间的距离不同(纹路深浅的存在),导致硅表面 电容阵列的各个电容值不同,测量并记录各点的电容值,就可以获得具有灰度级 的指纹图像。 半导体指纹采集设备可以获得相当精确的指纹图像,分辨率可高达600
DPI,

并且指纹采集时不需要光学采集设备要求的较大面积的采集头。由于半导体芯片 的体积小巧、功耗很低,可以集成到许多现有设备中,这是光学采集设备所无法 比拟的。随着各种工艺技术的不断发展,芯片的防静电性能和耐用度也得到了很 大的改善,现在许多指纹识别系统研发工作都采用半导体采集设备来进行。 本系统使用Veridicom公司的半导体指纹采集传感器FPS200,其核心技术是 基于高可靠性硅传感器芯片设计。FPs200是Veridicom公司在吸收了己广泛应用 的FPSll0系列传感器优点的基础上,推出的新一代指纹传感器。其表面运用 veridicom公司专利技术而制成,坚固耐用,可防止各种物质对芯片的划伤、腐蚀、 磨损等,FPS200能承受超过8KV的静电放电(ESD),因此FPS200可应用在苛

14

刻的环境下。FPS200采用cMoS技术,获取的图像为256×300像素,分辨率为 500DPI(点每英寸)并且内置8位高速A/D转换器,适合更复杂的手指,大大减
低了误识率(FAR)和拒识率(FRR)。

该传感器提供三种接口方式【14l:8位微机总线接口、集成USB全速接口和集 成高速同步串行接口(SPI)。配置FPS200的各个功能寄存器主要是正确设置DTR (放电时间寄存器)、DCR(放电电流寄存器),以保证采集图像质量的清晰度。
设置RAH、RAL、CAL、REH、REL、CEL确定采集图像的分辨率。其内部控制

逻辑如图2.10所示。

图2.10 FPS200内部逻辑图

S3C2410的SPI接口与FPS200硬件连接如图2.11所示【1 51。
≥PICLKl nLED2
. —

;PIMOSIl
;PIMI≤ ;ol


≯一匕:LU j“乏 ’Rl{缸占一}I【
.R8 10kQ
~ ̄ ̄
VVv

2;弊苗爱。u

n 一 ^一 o N 峪

髫;茄妄若
o N 心 o N 心 o N 田


N o — ●一

’一

一 型

I《
R9

“:≥6kQ 上I摹 照v^vjokQ 二jI_|” 心060 Q和”’
DM
DP Pl VDDA2
睁I■I ●

10kQ

,…… 杜燃堑 ∑:詈A三vDDl
,DD33


Rt≥60 Q务上I 呲
loQ

;R6



C6 O.1 ll F

———●——]

C删08

—-

∑曼莹全2专苦& TEsT
●6击
VSSl VSS3 XTALO XTALl

C4 0.1 p F

0.1 p F0.1 GND



j =-

?2M’;lI—L

(讣q【)

图2.11 FPS200硬件连接图

FPS200已内置了高速SPI接口,极大地减少对硬件的依赖,在SPI模式下可 支持10帧/秒的指纹图像传输速度。由于S3C24lO处理器自带SPI接口,可与

15

基于ARM的指纹识别门禁系统的设汁’j实现

FPS200的SPI接口直接相连,且嵌入式Linux操作系统提供了专门的串口访问模 块,本系统将指纹采集模块单独设计成SPI接口的电路模块,方便系统调试与安
装。
S3C241

0有4个与SPI传输相关的I/O端口信号引脚:SPICLK(SPI时钟输出)、

MISO(SPI数据输入)、MOSI(SPI数据输出)和nSS(SPI片选)。在SPI总线

模式下,CSO./SCS.通过下拉电阻接地,表示为SPI模式的Slave状态,CSI/SCLK 作为串行口时钟输入,MOSI引脚作为串行口数据输入,MISO引脚作为串行口数
据输出,INTR引脚作为中断输出。

16

硕士学位论文

第3章系统软件平台构建
3.1

LINUX实验环境的搭建

3.1.1建立交叉编译环境
由于嵌入式系统没有足够的内存和存储资源来编译可执行代码,这要求在建 立好的交叉开发环境中进行交叉编译和链接。交叉编译环境就是在一个平台上生 成另一个平台的可执行代码,在同一个体系结构下可以运行不同的操作系统嵋2‘。 交叉编译开发环境一般由宿主机、目标机和两者之间通信信道组成。在开发 过程一般使用Intel公司X86系列CPU作为宿主机,而ARM9微处理器作为目标

机。目标板和宿主机之间的通信连接方式通常可以使用串口、以太网接口、USB
接口以及JTAG接口等.在宿主机上,可以安装开发工具,编辑目标板的Linux 引导程序、内核和文件系统,然后在目标机上运行,如图3。l所示。
宿主机


.RS232/Em咖n
通信方式 下载内核映像



~ 一

目标机

内核映像 根文件系统

内核映像 挂接NFS文件系统

图3.1交叉编译开发环境模型

Linux内核必须使用GNU的C编译器gcc来编译,而不是任何一种C编译 器都可以使用。gcc编译器对标准C进行了必要的扩展,这使得它更适合开发操 作系统内核。Linux内核与编译器的关系非常紧密,甚至不同的内核版本需要依 赖于特定的gcc编译器。通常GNU工具以源代码的方式发行,针对不同的硬件 体系结构,GNU通过网络向用户提供相应的软件开发包,开发者只需从ARM Linux的免费站点下载。 在http://arm.1inuX.org.uk下载交叉编译包cross.3.4.1.tar.bz2,在相应目录下解 压,并设置系统环境变量PATH,编辑r00t目录下~/.bash pronle,在其中eXport PATH前加入交叉编译器路径,然后在终端中执行命令source/root/.bash
profile,

这样系统每次都能自己找到已经设置好的交叉编译器包的路径,用户就可以直接 使用arm.1inux.gcc命令了。

3.1.2建立NFS调试环境
网络文件系统NFS(Network
File

System)最早是SUN开发的一种文件系统,

它允许一个系统在网络上共享目录和文件。在系统有了网络以后,很多调试工作
17

兰三:!竺塑塑竺望型:至耋誓2尘兰::銮竺
就能方便许多,NFs的设计是为了在不同的系统问使用文件.所以其通信协议的 设计与主机及操作系统无关,当使用者想使用远程文件时,只要使用挂载命令 (mount)就可把远程文件系统挂载在自己的文件系统之下,这就使得系统对远 程文件的使用和本地文件没有区别。 Linux系统支持NFs,并且可以配置启动NFs网络服务。首先,在Linux主 机的终端上执行setup,弹出菜单界面,选中Firewall connguration,回车,进入 系统服务选项菜单,选择NO FIREwALL选项关闭防火墙,然后退出。之后再选 中system services,在其中选中[+]nfs,按F12或Tab键退出菜单。最后,利用vi 编辑器打开,ctc,expons文件,将这个默认的空文件添加:,(rw),保存并退出后, 进入目录文件/etc,rcd/lnit d下,运行命令/nfs stan,则终端下输iU如图3 2所示。
-口X

£¨岫蝙5I}(丘J
ooI州ocal

h。…on门I ∞IH…l ho…o口l】I ooIMocaI ho…“-I dll
曲阿s雌*

丘辑∞
v。

cd

篇~ 警一
,妒0吖 I∞16R


SIj¨lng恃S quoI a s: ¨曲卜Fs,j妒进n’:

f;m№s—ld-

【…“oc-Ih。…nIt.dl#lff。n r㈣Eb0 【…Mo∞I№…n_t d1#l

图3


曰¨¨¨川¨¨川口
n矗调试环境

使用NFs可使嵌入式应用程序的开发和调试变得更加方便,用户可以像访问 奉地文件一样访问远端系统卜的文件,极大地简化了信息的共享。在嵌入式目标 平台上,可以通过命令挂载NFs文件系统,用交叉网线把宿主机和目标系统连接,

然后配置主机以太网接口;ifcon鲰eth0192
mount呻nolock
192 168

168 O

l,在目标机终端上运行命令:

0.1:,home,nfs/mnt/n如,这样可从嵌入式平台的,mnt/n如
168 0

目录下访问宿主机(192
3.2

1)的,home,nfs目录下的文件。

Bootloader引导程序移植
在嵌入式系统中,BootIoader的作用与Pc机上的BIos类似,通过Bootloader

可以完成对系统板上的主要部件如cPu、sDRAM、Flash、串行门等进行初始化, 也可以下载文件到系统板上,对Flash进行擦除与编程口…。当运行操作系统时, 它会在操作系统内核运行之前运行,通过它,可以分配内存空间的映射,从而将 系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统准备好正确的 环境。通常,B00tloader是依赖于硬件而实现的,特别是在嵌入式系统中。因此, 在嵌入式系统里建立一个通用的Bootloader几乎是不可能的,但是,仍然可以对 Bootloadef归纳出一些通用的概念来。以指导用户特定的Bootloader设计与实现。

硕上学位论文

正确建立Linux移植的前提条件是具备一个与Linux内核配套的、易于使用的 Bootloader,它能够正确完成硬件系统的初始化和Linux系统引导。 在ARM处理器体系中,嵌入式Linux下常使用的Bootloader包括:BIob、
vivi、U

B00t、ARMb00t、RedBoot等。本系统采用的Bootloader是比较常见、

编程语言书写规范的vivi。vivi代码包括arch、init、lib、drivers和include等几 个主要目录,vivi程序架构如图3-3所示。

臼 豳
'lil



垂童竭c搭

D?嘲?酞…



-i坩-




i-d_“


ilit


ln


‘簟i,t‘


t?“


。c强烈‘





.t?tfi‘.1■柚一?rgL-v…

a撙脯




■●hfil●

一●hfil?…I蕾l●1.●山





,图3.3 vivi程序架构

vivi程序的工作流程: (1)初始化阶段一(在/盯ch/s3C2410/head.s内)
a、硬件初始化 b、配置串口

c、复制自身到SDlUM(跳转到C代码入口函数)
(2)初始化阶段二(在/init/main.c文件内) a、对硬件系统继续初始化 b、内存映射初始化,内存管理单元MMU初始化 c、初始化堆 d、初始化mtd设备 e、初始化私有数据 f、初始化内置命令
g、启动vivi

然后,编译Bootloader,在vivi目录下配置系统相关的设置,执行:make menuconng,再执行make,就可以在当前目录下生成vivi。在初次烧写vivi时, 系统利用sjflash软件和Jflash线来烧录vivi,整个过程需要5分钟左右。在以后 的烧写中,一般利用vivi本身来烧录vivi,在超级终端的命令行下输入:vivi>load
nash vivi

x,通过xmodem协议发送vivi文件。通过vivi本身向flash烧写vivi

可以提高烧写的速率。
3.3

LINUX内核的移植与配置 Linux2.6.14内核的移植

3.3.1

Linux内核的重要的特点是可移植性(Portability),支持大多数的硬件平台,
19

基于ARM的指纹识别门禁系统的设计‘j实现

在大多数体系结构上都可以运行。Linux2.6的内核吸收了一些新技术,在性能、 可量测性、支持和可用性方面不断提高【221。 本系统移植的内核为其中的一个版本Linux2.6.14。从网站上可以下载内核 linux2.6.14.1.tar.bz2的源码包,使用命令tar
xzvf

linux2.6.14.1.tar.gz将内核解压缩

到指定的目录下。Linux内核源代码是通过Makefile组织编译的,进入该目录,用 vi编辑器打开Makefile文件,修改其中内容:ARCH=arm和CROSS COMPILE=解 压目录/bi“arm.1inux.,ARCH是指定此内核的体系结构是arm类型,
CROSS

COMPILE是指定了交叉编译器的类型为arm.1inux.,这样生成的映像文件

就能在ARM上运行。在真正移植内核到ARM平台之前,还需要对内核进行配置和 移植相应的设备驱动程序。
3.3.2

Linux2.6.14内核的配置

基于Linux内核配置系统,可以对内核上千个选项进行配置。通常,配置内 核有两种办法,一是重新生成内核和文件系统,二是在原有的系统上删除一些不 必要的文件缩小“体积"。在资源相对受限制的嵌入式系统中,一般采用第一种方 法,将Linux内核根据目标平台的情况进行配置,编译配置好内核之后生成映像 文件。 配置内核可以选择图形界面或者光标界面,由于光标菜单运行时不依赖于 Xll图形软件环境,可以运行在字符终端上,所以光标界面比较通用。在系统终 端运行make menuconfig.弹出内核配置菜单,就可以进行配置。菜单括号里面可 以是空、“?"和“M",“?"表示编译进内核,“M”表示编译成模块。 根据系统的要求,文中作出了相关的配置。系统要求是构建一个基于ARM9 微处理器S3C24lO的硬件环境下的嵌入式“nux操作系统,该系统能够使用 CRAMFS和JFFS2两种文件系统,能够使用NFS服务来进行程序的调试和运行, 同时,在内核中增加相应的设备驱动程序(如:NAND FLASH、网卡、LCD、USB、 USB摄像头、指纹识别的SPI口),以实现Linux操作系统对外围设备的支持。 在完成这样一个精简的内核的基础之上,就可以通过内核的管理和调度来开发指 纹图像处理和USB摄像头视频处理的应用程序。下面列出一些与系统相关的重要 配置选项,其余大部分选项可以使用其缺省值。
(1)System

type,系统类型选择,包含CPU的类型。选择系统用到的处理
ARCH

器S3C2410相关的选项,CONFIG
CONFIG ARCH

SMDK2410、CONFIG

CPU S3C2410、

S3C2410,自从Linux2.6的内核发布以后,其对于S3C2410的支

持已经得到了很好得完善。
(2)File

systems,这个目录是关于Linux下所支持的文件系统,这部分涉及 主要选
CONFIG EXT2 FS、
FS、CONFIG PROC CONFIG FAT..FS、 FS、CONFIG SYSFS、

的内容非常多,
CONFlG

MSDOS

FS、CONFIG

VFAT

硕士学位论文

CONFIG DEVFS FS、

CONFIG

DEVFS

MOUNT、

CONFIG JFF

S2 FS、

CONFIG CRAMFS、CONFIG NFS FS、CONFIG PAIU’ITION
CONFIG

ADVANCED、

MSDoS PARTITION、CONFIG NLS这些项,这样使得内核能够支持

CRAMFS、JFFS2和NFS等几种系统相关类型的文件系统。
(3)General

setup,选上CONFIG SWAP和CoNFIG HoTPLUG,内核将支

持USB设备的热拔插,方便USB摄像头视频采集。
(4)USB

suppoIHt,这个目录下的内容都是关于所有Linux下USB设备的设
USB ARCH HAS HCD、CONFIG USB ARCH HAS OHCI、

置,选上CONFIG
CONFIG—.USB、
CONFIG USB

CoNFIG—.USB—-DEVICEFS、
USB

CoNFIG—_USB—OHCI—HCD、

SToRAGE和CONFIG

SPCA5XX这七项,这样使得内核

支持USBl.1和USB2.O两种USB设备接口,并且支持USB摄像头ZC30l。
(5)Networking
CONFIG UNlX、

options,选上选项CoNFIG

NET、CONFIG—PACKET、

CoNFIG PlACKET MMAP、

CoNFIG IP

MUIJICAST

以及

CONFIG

INET,这些是让内核支持一些基本韵网络设置。 support,这部分是关于对网络设备的设置,选上相关选
CoNFIG NET ETHERNET、 CONFIG ax88796、

(6)Network dcvice



CONFIG NETDEVICES、

CONFIG

MIl,内核将完成对外部添加的网络设备AX88796的支持。 drivers,这部分是关于存储设备的设置,选上主要的配置选项


(7)Device

CONFlG-MTD—pARTITIoNS
CONFIG—INFTL


CONFIG—MTD、


CONFIG—MTD—BLOCK、 CONFIG—MTD—RAM



CoNFIGLMTD—CONCAT


CONFIG—MTD—ARM—INTEGRATOR
CONFIG MTD RoM、CONFIG MTD

CoNFIG—MTD-】NAND—S3C241



NAND,这些让内核能够支持S3C2410

下的NAND FLASH设备。
(8)Serial

drivers,将这个目录下的选项全部选上,这样使得内核支持

S3C2410下的串口(UART)驱动,从而方便宿主机和开发平台间利用串口进行 调试程序,同时,也支持SPI接口驱动,支持与指纹采集模块fps200的数据传输。
(9)Multimedia devices,选上CONFIG
VIDEO

DEV,这样使内核可以支持

video设备,如系统中的LCD,同时,让内核支持V4L编程来采集摄像头的图像。
(10)Boot

options,进入CONFIG CMDLINE项,增加内核启动设置内容: 告诉内核完

Noinitrd root=/dev/mtdblock3,init=/linuxrc console=ttySAC0,11 5200,

成操作系统的引导以后,在挂载文件系统的时候,首先要执行的是根文件系统里 的linuxrc文件,串口设备名为ttySAC0,波特率设置为115200。 保存以上配置,使用命令make zImage,就可以得到定制好相应功能的内核, 大小约为1.3M。将生成的映像文件zImage通过vivi烧写:vivi>load
就能把内核下载到NAND FLASH中。
flash kemel
x,

2l

基于ARM的指纹识别门禁系统的没计‘j实现

3.4

LINUX文件系统
CRAMFS文件系统

3.4.1

CRAMFS是专门为小而简单的文件系统设计的,用于在ROM芯片或者CD

上存储的文件系统。它采用了zlib压缩算法,该算法同时兼顾了压缩率和解压缩 速度,一次压缩文件的一个页,并且允许随机访问。在嵌入式系统平台中,利用 它可以有效地节省Flash存储空间。因此,CRAMFS在嵌入式系统中得到了广泛
的应用。

因为Linux下对CRAMFS有很好的支持,本系统使用CRAMFS来做根文件 系统。配置内核时,选择File system.>Miscellaneous
file System

filesystems.>Compressed ROM

support(cramfs),系统内核就可以得到对CRAMFS文件系统的支持。 demo.cramfs,就可以生成一个

对于定制好的CRAMFS根文件系统包,将它和工具软件MKCRAMFS放在同一 个文件夹下,使用命令MKCRAMFS
filc directory

只读的压缩cramfs根文件系统的镜像文件demo.cramfS,通过vivi烧写:vivi>load
nash root
x。

因为CRAMFS是只读的文件系统,所以它的内容必须在创建的时候就确定

好,并且要使用MKCI认MFS工具制作磁盘映像。当应用程序和驱动模块调试成
功后,就可以把驱动模块添加到内核中去,应用程序的执行文件可以放到/usr/sbin 或/usr/bin的目录下,然后在/usr/etc/rc.Iocal文件中添加驱动程序的设备文件,之 后再利用MKCRAMFS工具把新的系统目录制作成cramfs文件系统。
3.4.2

JFFS2文件系统
Flash File

JFFS(Joumaling

System,日志Flash文件系统)是瑞典Axis通讯

公司专门为Flash设计的日志文件系统。JFFS2是由Red Hat公司基于JFFS文件 系统开发,专门面向Flash设备的日志文件系统。 JFFS2具有一种称为“损耗平衡”的特点,也就是说Flash的所有被擦写的 单元都保持相同的擦写次数,利用这些特有保护措施,Flash的使用周期得到相当 大的提升。同时,它使用压缩的文件格式,为Flash节省了大量的存储空间。JFFS2 还提供了比ExT2FS更好的崩溃/掉电安全保护。JFFS2文件系统是建立在MTD 存储技术设备驱动的基础上。MTD相当于在硬件和上层之间提供了一个抽象的接 口,它对硬件层Flash主要进行读、写和擦除等操作控制,对内核层JFFS2则提 供两个接口:MTD块设备(MTD BLOCK)和MTD字符设备(MTD
CHAR),

通过这两个接口就可以像读写普通文件一样对Flash设备进行操作了124J。JFFS2 的建立可利用软件工具mkfs.jffS2,生成映像文件jffs2.img,将生成的映像文件 jfrs2.img通过vivi来烧写:viv》load
nasn

iffS2

x。

本系统使用JFFS2来做应用文件系统。LinuX下对JFFS2有很好的支持。配

硕:{二学位论文

置内核时,选择File system.>Miscellaneous filesystems.>JFFS2 support子菜单中所

有关于JFFS2的设置,系统内核就可以得到JFFS2文件系统的支持。

3.5系统相关设备驱动程序移植
在嵌入式系统Linux的开发中,设备驱动程序占有重要的位置,设备驱动程 序是操作系统内核和机器硬件的接口,它直接和物理设备打交道。在Linux中设 备被抽象出来,所有设备都看成文件,对设备的读写和普通文件一样,用户进程 通过文件系统的接口访问设备驱动程序【251。Linux系统的设备驱动分成三种基本 类型:字符设备、块设备和网络设备。字符设备是个能够像字节流(类似文件)一 样被访问的设备,如系统中的串口设备,LCD等设备。块设备是通过块(字符) 特别设备文件存取的设备,如系统中的nash驱动,ram驱动。网络接口由内核中 的网络予系统驱动,负责发送和接收数据包,它不是面向流的设备,内核通过调 用一套和数据包传输相关的函数,而不是read/write等【261,如系统中AX88796网 卡的驱动.


3.5.1 NAND
NAND

FLASH驱动移植

FLASH驱动程序位于/Linux.2.6.14/drivers/mtd/nand/目录下,系统移

植FLASH驱动主要需要对该目录下的相关文件以及硬件平台体系结构相关的内

核代码/arcll/a彻/mach.s3c24lO/目录下相关文件作修改。
NAND

FLASH驱动移植主要分为以下三个步骤:

(1)在arch/am/mach.s3c2410/目录下的devs.c文件中添加如下头文件:
撑include<linux/mtd/partitions.h> 桴include<linux/mtd/nand.h> 群include<asm/arch/nand.h>

建立NAND FLASH分区表如下:
/?一个NAND FLASH总共32MB,按如下大小进行分区?/
struct

mtd—partition name: offset:
size:

partitiolLinf.o【】={
”ViViI-, 0x00000000, OxO0020000, /?mtdblock0?/



mask—nags:0x00000000,

>,{
name: of.fSet:
size:

”param¨,
0xO0020000, Ox000 1 O000,

/?mtdblockl?/

mask nags:0x00000000,



基于ARM的指纹识别门禁系统的设计与实现

),{
name: ofIfSet:
size:

¨kemel”,
Ox0003 0000, 0x00ld0000,

/?mtdblock2?/

mask-flags:Ox00000000,
},{
name: of.fset:
size:
¨r00t¨,

/?mtdblock3十/

Ox00200000, 0xOOaOOOOO,

mask_nags:0x00000000, },{
name: offset:
size:

¨j仃s2¨,
OxOl 000000, Ox0 1 OOOOOO, Ox00000008,

/?mtdblock4?/

mask—-nags:
) ’;

系统控制器将FLASH分为五个区,分别存放bootloader、param参数设置、内核、 CRAMFS根文件系统以及用户文件系统JFFS2。 然后加入N锄d Flash分区:
struct s3 c24 1 O—nand—set

nandset={ /}指明partition_inf0中分区数目?/

nUanitions:5,
};

partitions:partitioLinf0,/?分区信息表幸/
建立Nand Flash芯片支持,添加结构:
struct

s3c2410—platform—nand superlpplatform2{ tacls:O,

twrphO:30,
twrphl:O, sets:&nandset.

/?tacls、twrphO、twrphl关于FLASH的设置?/

/?支持的分区集?/ /?分区集的个数事/

砒辩ts:l。 >;

最后还要修改此文件中的s3c—device-nand结构体变量,添加对deV成员的赋值。
struct

platf-0m—device

s3 c’deVice—nand

2{ /?设备名称?,

.name=??s3c2410n鲫d”,

24

硕上学位论文

.id=l。

/?有效设备编号?/

.num-resources=ARR』¨LSIzE(s3C—nandjesource),/?寄存器区?/
.resource=s3c nand
rcsourcc,

/?寄存器区数组首地址?/

.deV={

.platfonILdata=&superlpplatfo珊
> };

/.支持的Flash设备?/

(2)修改完设备程序文件devs.c后,修改目录arch/arIIl/mach.s3c2410/下的 文件mach.smdk24lO.c,它将指定FLASH启动时初始化,修改smdk24lO-deVices【】:
static
Struct

platfo咖-deVice?smdk24 l 0』eVices口一initdata 2{

&s3 c—deVice—邯b,

&s3c—deVicejcd,
&s3c—deVice—wdt, &s3 cjeViccj2c,

&s3c_deVice-jis,
&s3c device nand。

,?加入对NAND FLASH初始化支持?,

};

(3)禁止内核ECC校验。修改目录drivers/mtd/nand/下的s3c24lO.c文件,在

s3c2410.c文件中找到函数s3c2410一nandjniohip(),在该函数体后加上一条语句:
eccmode=NANDL ECC—-NONE。

经过上面的修改,NAND FLASH驱动程序移植成功。
3.5.2

LCD驱动移植

LCD驱动程序位于/drivers/video目录下,包括驱动文件s3c24lO.c和头文件 s3c2410.h,系统只要针对LCD相关特性进行初始化配置就可以了。本系统主要 修改了/arch/arm/mach.s3c24lO目录下mach.smdk2410.c文件,增加两个头文件:
撑include<asm/arcll/fb.h> 撑include<asm/arch/regs-lcd.h>

然后针对本系统的LCD特性设置主要寄存器,如下:
static struct s3c24 1 0fb—.mach-info .pixclock


hfrk.1cdc龟一initdata

2{

l 74757,

.fix∞一syncs=O,
.regs={
.1cdconl=S3C24 l 0一LCDCON l—STN8BPP I\

S3C24 1 O—LCDCON l—STN8 I\
S3C24 1

0一LCDCON l—CLKVAL(6),

2S

基于ARM的指纹识别门禁系统的设计.0实现

.1CdCOnZ 2

U,

.1cdcon3=S3 C24 1 0一LCDCON3一WDLy(1

6)I\

S3C2410一LCDCON3一LINEBLANK(10),
.1cdcon4
= = = =

S3C24 1 S3C24 l Ox7,

0一LCDCON4一WLH(1 6),
0一LCDCoN5一BSWP'

.1cdcon5
.1pcsel .gpccon

},

Oxaaaaaaaa,

.gpccoILmask=
.gpcup

0x固腑}ff,

=0xfjfjf韵F眠 .gpcup—mask= 0xfj睡.f.f眠
.gpdcon


0xaaaaaaaa, 0xO,

.gpdcon~mask=

.gpdup=0xfj旺弱f跹

.gpdup—mask=Oxff!Ijf觚
.width


320,

.height=240,
.xres

= = =

<320,320,320>, {240,240,240), {8,8,8>,

.yres .bpp

);

最后,增加系统对LCD的初始化支持,添加如下函数:
static Void——init smdk24 l O—init(Void)

{ s3c24xx—n)-set—platdata(&hf.rk—lcdc龟); >

并在MACHINE—STAI玎(SMDK2410,¨SMDK2410’’)中添加响应LCD初始化的语 句.in“一machine=smdk24 lo-init,保存些文件。然后在DeVice DriVers->Graphics suppon配置选项下选择LCD的配置,编译内核,重新烧写到Flash,启动系统就 能在LCD上看到输出信息,至此,LCD驱动移植成功。
3.5.3

USB摄像头驱动移植

在系统移植USB摄像头驱动的时候,必须先移植好USB的驱动,只须参照 上面移植FLASH的过程,在mach—smdk24lO.c文件中添加相应USB数据结构和 usb-s3c24 1 o-init()函数。 在系统支持USB的基础上,就可以移植USB摄像头了。Linux本身自带了采
用ov5 11芯片的摄像头,而市场上应用最广泛的是采用中芯微公司生产的zc301芯

硕上学位论文

片的摄像头,这种摄像头采用硬件压缩方式,采集到的图片是JPEG格式,这样 可以大大缩小软件压缩耗费的时间,方便系统网络多媒体的应用【2"。本系统就用 zc30l的USB接口摄像头。 USB摄像头驱动移植主要是修改/drivers,uSb,以及,drivers,usb/media目录下的 配置文件,在初次移植时可以通过模块方式动态的加载,方便用户灵活调试。下 面介绍将摄像头驱动直接编译进内核的移植步骤: (1)修改drivcrs/usb/下的Makenle,在obj一¥(CONFI G—USB—W99 68CF) +=media/后添加一行obj.¥(CoNFIG
USB

SPCA5XX)+=medi“。
USB

(2)修改drivers/usb/media的Makefile文件,添加obj-¥(CoNFI(L
—SPCA5XX)+=spca5xx/。

(3)修改drivers/usb,media/下Kcon69,在最后加config USB—SPCA5XX。

(4)修改drivers/usb/media的Makeflle文件,添加obj-¥(CONFIG二USB SPCA5X文)+=_Spca5x)【/,并在该目录下建立spca5xx子目录。 (5)Linux内核不支持ZC30l,因此必须在系统内核中加入摄像头驱动补丁 usb.2.6.12LE06.patch.t缸gz。将该文件放入drivers/usb目录下,解压后用命令path

呻l<usb.2.6.12LE06.patch添加补丁。
经过上面的修改以后,在对内核进行make menuconfig配置的时候,就能选 择摄像头ZC30l驱动的支持,这个摄像头驱动在内核注册为/dev/v4l/VideoO。可 以在终端下测试撑cat/dev/v4l/videoO>/mnt/1.jpg,在PC下看到照片说明已经将摄 像头驱动程序编译进内核中。

3.5.4网卡驱动移植
AX88796网卡是NE2000的兼容芯片,在Linux kemel中只需主要修改 NE2000的驱动文件ne.c。但在本系统中自身编写了网络驱动程序,将编写的 aX88796.c拷贝到/drivers/net下,并修改相关的配置文件。 AX88796网卡驱动移植主要有以下几个步骤: (1)在地址映射头文件include/asm.arm/arch.s3c2410/map.h中添加对
网卡的支持,如下:
拌de疗ne 群define 群define
群define pAX88796一BASE 0x l 0000000//physical base address

VAX88796一BASE AX887916一BASE

Oxdl 000000/~irtual base address

(VAX88796一BASE+0x200)//bank2 IRQ—EINT2
//intenupt

base address

IRQ—AX8 8 796

(2)将之前定义的网卡物理I,o地址和虚拟I/o地址间的映射关系注册到平 台初始化文件中,在/arcll/arm/mach.s3c2410/下mach.smdk2410.c文件里面添加结 构体:
static
struct

map desc smdk24 1 O

iodesc口一initdata一
27

基于ARM的指纹识别门禁系统的设汁与实现



p{虚拟地址,物理地址,地址空间大小,设备类型}?/
{vAX88796一BASE, ); pAX88796一BASE,Ox00100000,O>,

(3)打开/drivers/net/Kcon69文件,在其中添加如下配置内容:
config ax88796 tristate¨Ax88796 Ethernet card support¨ select CRC32 select

MII
on

depends

NET—ETHERNET&&(ARM I|REDwoODL5 jI REDWOOD一6 II

M32R IlSUPERH)

在此增加网卡ax88796的配置选项,在配置ARCH—SMDK241 O时,可以在
Network device support中使用”Ax88796 Ethemet card

support”选项。

(4)修改文件/drivers/net/Make仃le,在其中添加如下内容:
obj-¥(CoNFIG—9x88796)+=ax88796.o
88796.o

(5)在/dfivers/net/目录下添加AX88796网卡驱动程序aX88796.c、88796.h 以及88796.c,实现网卡的底层硬件接口的设置以及数据收发。 在完成上面的移植过程后,根据内核裁剪进行网络设置,重新编译内核,在 终端下测试网卡:撑cat/proc/net/dev,列出当前系统的网络设备,并进行网卡设 置测试:群ifconfig
ethO 192.168.O.2

up,看到设置的网卡信息则说明网卡移植成功。

3.5.5指纹识别模块驱动移植
因为在Linux下没有FPS200相应的驱动程序,必须自己编写,本系统FPS200 是设计成SPI模块,是属于一个字符设备。系统的相关配置和前面的相似,本文 着重介绍FPS200驱动程序的实现。 基本的字符驱动程序主要操作是一个内核数据结构6le—operations,字符设备

可以通过文件系统节点来访问,比如/dev/fps200。fil叫perations结构就是用来建
立设备编号和驱动程序之间的连接,这个结构定义在<linux/fs.h>中,其中包含了
一组函数指针。6le ope豫tions结构中的每一个字段都必须指向驱动程序中实现特

定操作的函数,对于不支持的操作,对应的字段可设为NULL值。 依据分析,定义FPS200驱动程序的nle operations结构:
struct file_0perations

fps200一fops={ .open=fps200—open,

//打开/dev/fps200设备文件

.ioctl=fps200 ioctl,//控制fps200采集指纹 .release=fps200 };
release,

//关闭设备文件

硕Jj学位论文

open函数是打开设备文件,release函数用来释放文件结构,ioctl函数提供了 一种执行设备特定命令的方法,用来控制fps200的操作。该驱动程序重点就是ioctI 函数的编写,在ioctl函数里主要用到了fps—get_image采集指纹图像函数,实现 如下。
Void

fps—geLimage(Void)


int

i=j=O;
=FPS—CTRLA;

FPS—INDEX
FPS—DA-TA

=fPS—CTRLA—GETlMG;

f.0r(i=O;i<3 00;i++){
FPS—INDEX=FPS—CTRLB;

while(!(FPS—CTRLBj己D凇FPS—DAjI.A)){udelay(1););
for(j=O;j<256;j++){
FPS—INDEX=FPS—CTRLB;

while(!(FPS—CTRLB—里DY&FPS—DAT'A)){udelay(1);};
FPS—INDEX=FPS—CTRLA;

?((unsigned char?)(f.ps200_deVice->data+i?256+j))=FPS—DA-TA;




} 将编写好的驱动程序fps200.h、fps200.c复制到kernel/drivers/ch盯目录下, 修改该目录下Makefile,以支持我们定义的fps200设备,并需要在linux的根文件

系统cr锄fS中加上对应的设备文件,即在/dev目录下创建一个字符设备文件,如
mknod

fps200



250

0,对系统SPI和fps200进行内核配置并编译内核,便能启动

指纹采集模块。

芏王!!竺塑耋釜墨型!j薹耋兰2兰生::芝兰

第4章指纹识别算法研究及实现
4.1指纹识别的理论基础
由于识别技术的不断成熟,基于人体生理特征的身份识别系统逐渐被人们开 始采用。目前,从实用角度看,指纹识别技术要比其它生物识别技术更安全和更 方便,这是因为人的指纹具有唯一性、不变性阻及贴身性的特点。指纹图像是由 黑白相问的脊线和谷线紧密排列在一起而构成的特殊扶度图像。就其本质而占, 属于随机型纹理图像范畴,它不具有孤立的基本结构与明显的周期性。经研究表 明,指纹纹线具有连续性、渐变性的特点,在局部范围内呈现一致的方向特性和 频率特性,同对,指纹中心区、三角区纹线具有方向多变的特点。在数字化的应 用中,指纹识别算法最终归结为在指纹图像上找到并对比指纹图像的特征。 通常指纹图像的特征概括为总体特征和局部特征两类12”,以方便对指纹图像 进行验证。
总体特征

总体特征是指从宏观上那些用人眼直接就可以观察到的特征。如图4.1中给 出了几种全局特征的示意图。

纹数?

’:如

模式医o

图4 l几种全局特征的示意国

(1)基本纹路图案:基本纹路图案包括脊形(Loop)、弓形(Arch)和螺旋 形(whorl),其它的指纹图案都基于这3种基本图案。 (2)模式区:模式区是指指纹上包括了总体特征的区域.即从模式区就能分 辨出指纹是属于哪一种类型的。 (3)核心点:核心点位于指纹纹路的渐进中心,它常用作比对指纹时的参考
点。

(4)三角点:三角点位于从核心点开始的第个分叉点或者断点、或者两条 纹路会聚处、孤立点、折转处,或者指向这些奇异点。

硕士学位论文

(5)式样线:式样线是在包围模式区的纹路开始平行的地方所出现的交义纹 路,式样线通常很短就中断了,但它的外侧线开始连续延伸。 (6)纹数:纹数是模式区内指纹纹路的数量。在计算指纹纹数时,一般先连 接核心点和三角点,这条连线与指纹纹路相交的数量即可以认为是指纹的纹数。 2.局部特征 局部特征是指指纹上的局部细节信息。指纹纹路并不是连续的、平滑笔直的, 而是经常出现中断、分叉或打折。这些断点、分叉或打折称为细节点。正是这些 细节点提供了指纹唯一性的确认信息。指纹上的细节点有4种不同特性: (1)类型:节点有以下几种类型,最典型的是终结点和分叉点。表4.1列出 了这几种类型的示意图.
表4.1细节点类型

终结点:一条纹路在此终结。 分叉点:一条纹路在此分开成为两条或更多的纹路。 分歧点:两条平行的纹路在此分开。 孤立点:一条特别短的纹线,以至于成为一点。 环点:一条纹路分开成为两条之后,立即又合并成为一条,形成一个小环。 短纹:一端较短但还不至于成为一点的纹路。 (2)方向:每个节点都有一定的方向。 (3)曲率:描述纹路方向改变的速度。 (4)位置:节点的位置通过(x,y)’坐标来描述,可以使用绝对坐标,也可 以是相对于某个确定的参考点的相对坐标。 两枚指纹经常会具有相同的总体特征,但它们的局部特征却不可能完全相同。 指纹的全局特征和局部特征决定了指纹的独特性。 指纹识别技术的应用系统大致可以分为两类:即验证(verification)和辨识 (Identi6cation)。验证就是通过把一个现场采集到的指纹与己经登记的指纹进行 一对一的对比(1:1)来确认身份的过程。作为验证的前提条件,验证者的指纹必 须在指纹库中已经注册登记。指纹以一定的压缩格式存储,并与其姓名或其标识 联系起来,随后在对比现场,先验证其标识,然后再利用系统的指纹与现场采集 的指纹对比来证明其标识是否合法。辨识则是把现场采集到的指纹同指纹数据库 中的指纹逐一对比,从中找出与现场指纹相匹配的指纹,这也叫一对多匹配(1:N)。

31

基于ARM的指纹识别门禁系统的没汁与实现

验证和辨识在对比算法和系统设计上各具技术特点。例如验证系统一般只考虑对 完整的指纹进行对比,而辨识系统要考虑残纹的对比;验证系统对算法的速度要 求不如辨识系统高,但更强调易用性;验证系统主要目标是高的通过率和相对高 的准确率,辨识系统主要目标是高的比对速度和相对高的准确率;另外在辨识系 统中,一般要使用分类技术来加快查询速度。 指纹识别可采用两种方法:图像识别法和特征识别法。图像识别法是将得到 的指纹图像首先按照指纹类型给予分类,再根据图像中具体的纹线细节特征进行 比照分析,比较该图像与指纹图像库中存档的哪个指纹图像相符的方法。图像识 别法一般采用手工方式的指纹识别,主要应用在公安、司法部门,使用起来具有 局限性。特征识别法将指纹图像的细节特征加以提取,生成指纹特征数据与指纹 特征数据库中存档的指纹模板进行匹配。特征识别法能利用计算机进行高速指纹 特征数据处理,是目前指纹自动识别广泛采用的方法。 所有的生物识别系统都包括如下几个处理过程:采集、对比和匹配。指纹识 别处理也一样,它包括指纹图像采集、指纹图像预处理、特征提取及匹配等过程。 指纹识别系统的结构如图4.2所示。

图4.2指纹识别系统结构

4.2指纹图像的预处理
4.2.1背景分割
指纹图像分割通常位于预处理的前端,其目的就是要求尽可能地去除无效区 域,还要尽可能多地保留有效区域。分割处理不仅可以提高特征提取的精确度, 还可以大大减少指纹预处理的时间,是指纹图像处理中的重要组成部分。各种指
32

硕Hl:学位论文

纹采集器采集的指纹图像一般由前景区域(由指纹脊线和谷线组成)和背景区域 组成。在一般指纹采集图像中,其前景区域和背景区域的差异较明显,仅利用图 像的灰度的统计特性即可,一般不需要用到纹理特征就可有效分割。目前的算法 ~般利用指纹图像灰度均值特性或方差特性对指纹进行分割。 局部灰度方差法针对性比较强,要求图像的灰度级对比较为明显,而对于灰 度级较低的区域和噪声区域容易造成误分割,而且很显然不能够充分利用指纹图 像中的灰度变化信息,即梯度。另外,局部灰度方差法中阈值会因为一些图像的 对比度和和噪声不同而难予选择。因此,本文利用灰度梯度作为方差的一个补充, 结合灰度方差作为描述指纹的新特征,提出了一种基于方差和梯度的局部阈值分 割方法【29~321。 指纹图像中不同区域灰度会发生变化,特别是边缘区域变化明显,这种变化 可以通过灰度梯度表示。某一像素点上的梯度是指向梯度标量增长最快的方向, 梯度的长度是这个最大的变化率。二维图像厂(x,y)梯度为(式4.1):

馓=要:厂o+l,歹)一厂(i,D;@:娶=厂(i,歹+1)一/(j,力 ’仍 ’哕

(4.1)

局部灰度方差法基础上,根据上述的理论分析,设计了本文的算法。在对指 纹图像分割前可以对图像进行归一化处理,以消除指纹传感器本身噪声以及因为 手指压力不同而造成的灰度差异。分割具体算法步骤如下: 步骤l:将指纹图像分成不重叠的缈×国小块,计算每一小块图像的平均灰度 值和灰度方差。其中g(f,/)是每块中第f行第/列像素的灰度值。

№=熹∑∑g(f,歹) 彩×缈冒=。
矿2

(4.2)

i毛善荟【g(L力一施册(屯例2

(4。)

步骤2:计算每个像素块内像素的梯度,采用实际中最常用的运行速度较快

的Sobel算子‘3引,计算出垂直梯度酝O,歹)和水平梯度@(f,歹),并求出梯度的幅值
烈‘.,)。

缈(f,/)=√(Gx(f,/))2+(‘砂(f,/))2

(4.4)

步骤3:确定分割的局部阈值。在局部灰度方差法中,当y大于某一全局阈 值砀时,就设为前景。在引入了像素的梯度时,依据简单统计法中的加权算术平

均法:又=∑(们/∑厂,其中叉代表算术平均数,x代表各单位变量值,.厂代表
各组权数。因此,可以将每块图像中的灰度方差作为变量值,像素梯度的幅值 认f,/)作为局部阈值中的权数,适当扩大梯度对平均方差的影响作用。依据上面

33

基于^RM的指纹识别门禁系统的设计b实现

的分析,设置一个局部阈值砌,设置如式(4.5),其中r“』)为像素点处的方差,口

为调节阈值的一个权重因子㈣。

拍=口旦等i—一 ∑∑烈f,,) J=…
为背景。 步骤5:用3×3邻域对所得图像进行平滑,去除孤立图像块。

∑∑矾∥(f,,)

(4 5)

步骤4:对于每一块图像,当r大于局部阈值办时.将其设为前景,否则设

在Matlab6.5平台上,编程实现本文算法并对Fvc2004公布的指纹库进行实 验,本文选取一张对比度高噪声小的高质量指纹图像.另一张为对比度低噪声较 大的一般质量图像,运用块分割中的方差法和本文中的算法进行分割.得到结果 如图4.3所示。文中选用一幅质量较好的图像和一幅质量较差的图像进行处理, 以下的测试都是用到这两幅指纹图像。

瓷稳狳

攀餐薰






a)原始图像

b)方差法分割

c)文中方法

图4.3本盘算法与方差法分割图像

通过对Fvc2004指纹库的实验结果表明,该方法充分利用指纹幽像中灰度方 差和梯度的变化信息,可以高效快速的对指纹图像进行分割,在一定程度上改进 了灰度方差法的分割效果,从而提高了指纹分割的精确度和适应性。

4.2.2指纹图像增强
图像增强用于图像不清晰的部分,依据某些已知的条件。改善这些区域的质 量,以保证后继处理的可靠性。对于指纹图像增强,已有很多学者进行了研究. 他们主要依据沿脊线垂直方向的灰度变化呈正弦波形的假设,设计各种具有方向 选择性的滤波器。本文选择Gabor滤波器进行指纹翻像的增强q”,为特征提取做

颤J。学位论立

准备。

Gabor滤波器是一种带通滤波器.它具有良好的方向和频率选择特性,偶对 称的Gabor滤波器在空间域中具有下面的形式:

∞彤加=唧倦+铷x一,
其中:
J=x

∽s,

sm口+ycos一



y=xcos口一ysin口

,是从x轴沿着方向口的正弦平面波的频率;t和d,分别表示沿着x和v坐标轴
的高斯包络线的空『自】常数,决定了带通滤波器的带宽。Gabor滤波器的四个参数:

目,,.‘和6,分别决定了滤波器频域通带的中心方向、中心频率、频率通带大
小和方向通带大小。 由公式可以看出,在空间域中Gabor滤波器由二维高斯雨数和正弦函数的乘 积构成,Gabor滤波器的空蜘特征如图4 4(a)、(b)所示。其中滤波器尺寸为33x33,

正24 o,6。=4.o,(a)、(b)中目和,取值分别为o。,1,10、90。,l儿o。

l菱鬻_ 一参∥一漩『『蛩
(1)规格化


图4




a)00方向Gabor滤波器空问彬式

b)90。方向Gabor津波器空间形式 0abor滤波器空间形式

使用Gabor滤波器进行指纹图像增强的具体步骤p 6J:

规格化的目的是为了移除指纹传感器采集带来的噪声,以及用力不均导致的 灰度差异,使图像中纹线灰度均值和方差接近于给定的期望均值和方差。通常, 规格化作用在整幅图像上,由于指纹图像具有弹性特性,对整幅图像进行规格化 不能补偿图像不同部分的强度差异。因此.本文对有效区域的每个小扇区单独进 行处理,采用一致的均值和方差,从而有效地避免了这种问题。 令,(z,y)表示像素(x,n处的灰度值,M。和K分别表示小扇区s.的估计均值和

方差,M(x,y)表示像素慵,)出规格化后的灰度值。对于小扇区S中所有的像素,
规格化后的图像定义为式(4 7)所示。

基于ARM的指纹识别门禁系统的谨计』i实现

M(J,y)=

M。+产霉巫,

蜘J塑警型,

(4.7)

其它

其中,M。和K分别表示小扇区S的估计均值和方差。规格化处理是基于像素的 运算.并不改变整个脊线和谷线的构清晰度。本文实验中,选定盯。和K的值为
100。

(2)指纹分块 将规格化处后的指纹图像分成不重叠的掰x甜小块。 (3)Gabor滤波 使用Gabor滤波器对每块进行滤波,如式:
州z w2

同x力=∑∑Mx一地y一曲6札K,,印 *—w,2睁州2

(4 8)

滤波参数设置为,口为2中求得的该块对应的方向,,为2中求得的该块指纹的 频率,t=4,占。=4。将滤波后的每个小块重新组合得到增强后的指纹图像。运 用文中的算法进行指纹图像增强,得到结果如图4.5所示。

图辫鬯
如图4 5指纹图像增强结果

4.2.3图像二值化
指纹图像二值化的目的是把灰度指纹罔像变成O一1取值的黑白二值图像,以 简化其后的处理p”。实际中一般采用闽值法,阐值法又分为固定闽值和动态阐值, 由于不同图像的灰度差异变化很大,甚至同一幅图像中各部分的明暗也大不相同, 所以固定阈值并不可取。本文中我们采用动态闽值的二值化方法l”j: (1)求出图像的最小灰度值z一和最大灰度值z雕,设定初始闽值为

瓦=(z一+z岫)/2?
(2)根据阈值疋将图像分成目标和背景,求出两部分的平均扶度值己和z.。

(3)求出新的阈值正。=(z。+乙)/2。 (4)如果瓦=耳∥结束运算,否则令女=I+l,跳转到(2)继续计算,直
到求得动态阚值L,将指纹图像进行二值化。



硕l二学位论文

4.2.4细化及其后处理
细化是指删除指纹图像边缘的像素,使纹线只具有一个像素的宽度,这种从 指纹图像中提取“骨架"的方法就是细化。指纹图像二值化后,纹线仍具有一定 的宽度,平均宽度为6.8个像素,由于按捺的轻重不匀使指纹脊线的粗细不能恒 定,难于据此直接抽取指纹的特征集,由于人们关心的是指纹纹线的走向与结构, 而不是它的粗细,用宽度为单位像素的线表示指纹纹线,即进一步地压缩了数据, 又可以提高识别的准确性。所以,指纹图像二值化后要进行指纹细化。 本文利用改进的OPTA算法对图像进行细化【391。该算法采用统一的4×4模 板,左上角的3×3区域为消除模板区域,通过构建8个消除模板和6保留模板实 现图像的细化处理,如图4.6所示。



O l l O 1 1





O O O O




1 l I




l l O




l l




O O O









l O O








O 1 O





l l 0












O O

圈4.6 8个消除模板






O O O






O l l


O 0













l l

















l 0






















O l l O







O l 1 O






































图4.7 6个保留模板

从图像的左上角元素开始进行,对每个像素抽取出如图4.7所示的15个相邻 像素,把其中8个邻域像素与图4.6的8个消除模板比较,如果都不匹配,则该 像素保留,否则,抽取的元素邻域图与图4.7的6个保留模板比较,如果与其中 一个匹配,则保留尸5,否则将P5删除。重复上述过程,直到没有一个像素的值 被改变为止。


指纹图像细化后,由于脊线上有可能存在小的突起,就会产生毛刺或者短线, 应予以删除,毛刺删除的算法步骤如下。 (1)计算目标像素的8邻域值括材珑; (2)如果括材坍值为l,则标记该点,并沿着该点所在纹线跟踪。

37

兰三::竺竺主兰兰型[:薹至篓塑塞兰::::墨
(3)如果在一给去阈值内跟踪到一个三叉点,则删除所跟踪过的纹线上的点
否则处理下一个点。

(4)如果所有端点都处理完,则结束;否则,转步骤(”。 短线消除的算法如下:

(”计算目标像素的8邻域值船肼。
(2)如果枷Ⅲ值为l(即目标像素为端点),则在给定阈值范围内搜索与该
端点相连接的端点,如果存在,则消除谚短线,否则,标已该端点为搜索过。 (3)如果所有目标像素点都搜索完,则结束:否则,转步骤(1)。 运用文中的算法进行指纹图像细化,得到结果如图4 8所示。

图4 8指纹图像细化结果

4.3指纹图像的特征提取及匹配
4.3.1指纹图像的特征点提取
指纹识别系统的自动化水平,在很大程度上依赖十系统提取细节特征的准确 性。指纹细节特征有多种类型,从其概率分布图来看,以二分义点和端点最为常 见,它们出现的概率分别为68 2%和23 8%。端点和分叉点是指纹基本的细节特 征点,他们的集合构成特征集,用来雎一标识指纹。 指纹特征提取的方法可以简单分为直接从扶度指纹图像提取特征和从细化二 值指纹图像提取特征。目前大多数系统采用从细化二值图像提取特征的方法,该 方法比较简单,在得到可靠的细化二值图像后,根据细化后的二值图上每点的 交叉数,确定出端点和分叉点两种特征点,提取特征点相应的坐标位置、种类、 方向等有用信息,特征提取最常用的方法是计算交义数。 常规细节特征提取方法是邻域判定法【4¨4”,该方法用一个3×3的模板便可 将端点和分叉点提取出来。设P点为

相邻的8个点Pl,,2…P8称为P点的8邻点,如罔4


!!堕堕

目标象索点(待处理的|呈l像点),则其周围
9。

1型!l型
图4 9象素点8邻域图

硕J:学位论文

在细化后的二值图像中,用3×3模板来进行特征提取,设CJⅣ为像素P的交 叉数,Jj2是待检验的点,如果犬是端点,则它的8邻域点满足: 上

CⅣ=∑l天(七+1)一只(七)I-l,尺(9)=尺(1)
量II

(4.9)

如果R是分叉点,则它的8邻域点满足: 上

q=∑I R(七+1)一R(七)}3,尺(9)=R(1)
七Il

(4.10)

其中,式(4.9)必须在指纹纹线被严格地细化成单像素宽的条件才可以正确工作, 而式(4.10)即使对于未完全细化的指纹图像也可以正确地提取细节特征信息。 这样就可以找到指纹图像的特征点,并记录它们的类型和位置。这些特征点绝大 多数是真实的,但其中也包括一些伪特征点,因此还需对其进行伪特征删除,可 根据以下规则去除伪特征点。 (1)纹线断点删除:若具有同一个方向的两个端点之间的距离小于某阈值, 财认为是伪特征点。 (2)毛刺删除:若连接于分支点的端点且其到分支的距离小于某一阈值,则 认为是伪特征点。 (3)图像边界上的特征点应删除。 然后以特征点的坐标(z,J,),及特征点的方向d,结合其邻域情况,可以构成 该指纹细节特征点的特征向量。将所有的特征向量进行筛选后留下50.80个特征 向量,构成指纹特征模板。

4.3.2指纹图像的特征匹配
指纹特征的匹配是实现指纹识别的重要环节,也是一个重要的研究课题,人 们在这方面做了很多工作,有人提出了一种用图匹配来对两幅指纹图像进行匹配 的方法,也有人利用结构匹配来做指纹识别,但目前最常用的方法是用FBI提出 的细节点坐标模型来做细节匹配。此方法的核心就是利用前文提到的脊线端点与 脊线分叉点这两种关键点来鉴定指纹,通过将细节点表示为点模式,一个自动指 纹认证问题可以转化为一个点模式匹配(细节匹配)的问题【44 ̄4引。 指纹图像点模式匹配是对于两个含有不同数量的点集P:{p
和Q s{g
1,g l,p 2,...,p

m}

2….,口n’,如何找出它们之间的匹配关系。因此,一个好的点模式匹

配算法应该能够有效地解决两个点集间的几何不变量问题。人们对一般的点模式 匹配提出很多算法,比如松弛算法,其中有的文献只处理了点模式间因平移带来 的偏差,其中计算复杂度为D(聆4);也有文献处理了因平移和旋转带来的误差, 其计算复杂度为D加6);另外有文献不仅考虑到位移和旋转误差,还处理了因伸 缩尺度不同而带来的误差,但其计算复杂度达到了D(刀8)。对于50.50的点匹配,

39

基于ARM的指纹识别门禁系统的设汁与实现

很多算法要花去几分钟的时间。 点模式匹配中的两个点集P和Q,其中P从第一幅图像抽取,由搬个特征点 构成,Q从第二幅图像抽取,由n个特征点构成,即尸={p
l,p 2,...,p

m)和

Q={g l,92,...,gn}。它们之间的匹配就是找到一个校准函数G以,,y,s,口),使两个

点集有最大数量点对之间存在稳定的一一对应关系,即G(A)=g。。而在实际应用

中,点的相对位置存在误差,G(p,)不可能完全等于吼,所以一般用0G(e一吼9 s d
(d为允许的变形范围)为表示Q与P中点对点的对应关系。 校准函数G(,。,,"s,口)是一个含有4个参数的仿射变换,其中s是两幅图像间 的伸缩系数,p是偏转角度,氏和~分别是沿x方向和J,方向的位移。下面介绍如 何对两个从指纹图像中抽取的细节特征点集,找出它们间的校准函数G(f;,r,,s,秒)。 对于点集中的特征点,这里用x方向和y方向的坐标来描述,即 P={(而I,弦?)TI卢l,...,所),Q={(知-,弘t)TI口=1,...,玎>。显然,若P和Q中只有一个点 存在对应关系,即:

咖c归盼(:=]+(三髫=p刖
向量p劝和g ag。间的校准函数为G(0,0,s,秒)。

㈠…

如果存在两个点(p,,9。)和(p,,96),则存在唯一的校验函数G(f,,,y,s,秒)。并且 由于指纹图像一般都是由同一个采集器采集,所以基本无收缩,即s=1。 指纹图像每一特征点是一个五维向量(x,y,∥,r,c),其中x,y分别是该点的坐 标位置,∥是细节点的方向,r为细节点的类型(即是分叉点还是端点),c为细节 特征的置信度。 可以通过一些合适的算法,通过在一定范围搜索参数空间,计算其匹配支持 数,也就是在该参数空间里,有多少指纹对匹配。当匹配支持数最大时,也就得 到了所需要的结果。算法步骤: (1)分别读取两个细节点集合;

(2)分别计算他们的,.,P,f砌P触硼咖;
厂。■——i

,.=、/r+矿

(4.12)

P=量



(4.13)

k珥.1j J

i岫雒gle=咄半 x,y为细节点的x,y轴坐标,础为细节点的角度。 (3)依据f砌P细础的大小按升序排列两个细节点集合;


(4.…


q.14 J

(4)根据,.,e,f砌P泐璀如的值计算两细节点集合的匹配支持参数值 础f如t觚cdm】【玎】;

硕1:学位论文

(5)循环比较批t锄嘶聊】【刀】与阈值丁的大小(程序中令r=l
匹配度参数加l; 70%的细节点匹配,认为两细节点匹配。

0),大于r则

(6)匹配度等于匹配度参数乘100再除以细节点数,如果大于70,则超过

4.4本章小结
本章主要讲述了指纹识别算法的实现,包括指纹图像预处理以及指纹图像的 特征提取与匹配。目前用于指纹识别‘的算法有很多,本文选用点模式指纹识别算 法,在相关算法的基础上,文中主要对指纹图像分割作出了一些改进,提出了一 种结合指纹图像灰度方差和梯度的局部阈值分割方法,提高了指纹分割的精确度 和适应性。在Matlab6.5平台上,编程实现了本文算法并对FVC2004公布的指纹 库进行实验。实验结果表明,算法识别准确率高,处理速度快,可以很好的适应 不同类型的指纹图像同时处理,满足自动指纹识别系统的要求。

4l

基于ARM的指纹识别门禁系统的设计与实现

第5章门禁控制系统软件设计
5.1门禁控制系统总体软件设计
系统采用ARM和指纹识别模块实现基于Linux操作系统下TCP/IP的网络型 门禁系统。系统中将门禁控制器作为服务器,以太网终端的上位机PC作为客户 端。上位PC机可以对多个控制器通过局域网或互联网对其进行访问、查询和设 置,一个客户端可以登陆多个服务器,一个服务器也可以支持多个用户的并发访 问。系统在完成门禁系统的功能的同时,还可以提供视频监控和报警的联动管理。 本文主要描述了系统指纹识别模块和视频监控两个方面。门禁控制器的程序 流程如图5.1所示。

<函瓣丽丽>

d蛄

启动开门



图5.1门禁控制器程序流程图

开始初始化控制器,通过网卡Ax88796向客户端发送联络数据包,等待客户 端的回应,建立起控制器与客户端的联机工作。然后开启摄像头不断采集现场图 像,将采集到的图像发送到客户端,客户端通过浏览器可以对现场进行实时监控。 同时,系统等待键盘输入用户ID,并进行指纹采集,此时创建数据传输任务,将

42

硕上学位论文

采集到的指纹图像数据和用户ID在SRAM中进行打包,然后发送至客户端,由 客户端接收到的ID和指纹图像进行处理和对比,控制器创建数据接收任务,接 收客户端返回的认证结果,并由控制器进行相应的显示和控制。在实际中,用户 ID和指纹可以设置成多种认证模式进行控制,增加用户ID有利于提高服务器的 辨认对比的速度。

5.2视频图像采集
5.2.1Ⅵde04Linux应用程序介绍
目前在Linux核心中,视频部分的标准是Video for Linux(简称V4L)。V4L
是Linux Kernel里支持影像设备的一组APIs,这个标准定义了一套接口,内核、

驱动以及应用程序。目前的V4L涵盖了视、音频流捕捉以及处理内容,USB摄像 头也属于它支持的范畴【491。系统主要针对USB摄像头设备文件/dev,vide00,在嵌 入式Linux系统平台上采用Vide04Linux进行图像采集方面的程序设计。 V4L为2层架构,最上层为V4L驱动程序本身,最下层架构则是影像设备的 驱动程序.如系统中移植的摄像头驱动程序。在采集图像中,我们主要运用的是 最上层的驱动程序,即V4L本身提供给程序开发人员的APIs。
5.2.2

vide04Linux编程采集图像

V4L程序设计主要是基于V4L的基本数据结构和函数来进行,基本数据结构 一般为图像的相关信息,而V4L的基本函数主要是设备文件初始化程序和应用程 序。视频编程的流程一般有下面五个步骤: (1)打开视频设备/dev/videoO; (2)读取、设置设备信息; (3)进行视频图像采集,有内存映射和直接从设备读取两种方法; (4)对采集的视频进行处理; (5)关闭视频设备; 如下,用直接读取设备方法的进行图像采集程序,先定义头文件spcav41.h在 其中定义采集图像的数据结构vdIn,包含如文件节点、视频设置名称、采集方法 以及采集图像的高度、宽度、格式等图像相关变量,并定义初始化函数
init

videoIn、采集函数v4lGrab等初始化函数,如下简单的图像采集程序。

稃include”spcav41.h¨
struct vdIn VideoIn;

int

main(int argc,char?argV【】){
char char

VideodeVice【】=¨/deV/VideoO”;

jpegnle【】

=”/mnt/s3c24 l O/filename.jpg¨;

43

幕于ARM的指纹识别门禁系统的设计‘j实现

int

fomat

2 V IDEo—PALETTE—j PEG;

int width
int

=320;

hei曲t=240;

memset(&videoIn,O,sizeof(struct VdIn));

if(!init-videoIn(&VideoIn,VideodeVice,width,height,fomat,grabmethod))
V4lGrab(&VideoIn,jpegfile);
else

printf(”can’t

open your

camera!\n¨);

close—V4I(&VideoIn); >

采集程序实现过程为设置一个图像初始化数据结构videoIn,并设置一个存放 采集图像的缓冲区jpegfile【】.然后,设置图片格式为320×240、格式为JPEG等 等相关信息;调用init videoIn函数打开并初始化视频设备;并用v4lGrab函数直 接读取图像到缓冲区;最后关闭视频设备。将读取到的图像送入SoCKET传输部 分送至监控终端。

5.3指纹图像采集
系统的指纹采集模块为SPI串口模块,指纹的采集工作由检测到手指中断开 始的,系统检测到中断就会从串口发送一个字符控制FPS200开始采集。FPS200 指纹采集采用分行方法对指纹图像进行采集和传输,其指纹采集流程图如下。
打开/dI;v/币s200设备文件 初始化系统寄存器

FPSRegTest()寄存器测试 FPS200InitialO芯片初始化 FPsRow采集固定行指纹数据 通过串口采集的指纹数据 进入Socket编程传输垒客户端

图5.2指纹采集流程图

硕J二学位论文

系统首先打开FPS200指纹采集仪,初始化系统寄存器,然后查询等待,在 没有检测到手指时,FPS200处于睡眠状态,在检测到手指中断时,就可进行指纹 的采集。在指纹采集前要进行寄存器测试,并进行芯片初始化,初始化主要是放 电电流寄存器(DCR)、放电时间寄存器(DTR)和增益控制寄存器(PGC)等的 设置,初始化必须在寄存器测试之后,因为寄存器测试会改变寄存器的设置。准 确的设置FPS200的各个寄存器可保证系统采集到良好的指纹图像,如下是系统 中的初始化程序FPS200Initial()。
void FPS200Initial()

{ FPSjNDEX=FPS—CTRLB;
FPS DA.TA=FPS //control register B

CTRLB AUToINCEN I FPS CTRLB ENABLE; //wait for 30us //discharge time register

.Delay30us();
FPS—INDEX=FPSjDTR;

FPS—DfA:rA=FPS—pTRl-TIME;
FPS—INDEX=FPS—DCR; //discharge
current register

。FPS—DA:IA=FPS—DCR—CURRENT; FPS—INDEX=FPS—PGC; //programmable gain control regi ster //default Value //other initial

FPS—DATA=FPS—PGC—VALUE;
FPS INDEX=FPS RAH:

FPS DATA=O;

FPS—INDEX=FPS—RAL; FPS—INDEX=FPS—CAL;

FPS—DATA 2啦 FPS—DA:I’A=0;

FPS—INDEX=FPSjtEH; FPS—INDEX=FPSj己EL; FPS—INDEX=FPS—CEL;

FPS—DA舱=O;
FPS—DATA FPS二DATA
2 2

O; O;

FPS INDEX=FPS CTRLC:FPS DATA=O;
FPS INDEX=FPS CTRLA:FPS DAI’A=0://clear FPS CTRLA AINSEL FPS INDEX=FPS ICR; FPS DATA=FPS ICR ITO

//interrupt control register
LEVEL



FPS ICR IEO;

FPS INDEX=FPS THR;

//threshold register

FPS二DAjI’A=FPS—THR。THV

I‘FPS—THR—THC;



最后,在检测到手指后,系统从串口发送一个字符启动芯片采集和输出, FPSRow()每次采集指定行指纹数据,直至采集到完整的指纹图像,在采集指 纹的同时通过SOCKET编程将指纹数据传输至客户端。

45

基于ARM的指纹识别门禁系统的设计oj实现

5.4网络通信
5.4.1

TCP/IP协议

Linux支持多种不同的网络协议,TCP/IP是Linux系统中最健壮、速度最快 和最可靠的部分。TCP/IP协议包括了各个层次上的众多协议,如ARP、IP、ICMP、 TCP和UDP等。下面主要介绍网络编程中涉及到的传输层TCP和UDP协议,其 中TCP协议是一个面向连接的传输层协议,它为网络上的两台主机的应用程序提 供一个可靠的字节流传输通道。面向连接意味着两个使用TCP协议的应用程序在 彼此交换数据前必须先建立一个TCP连接。UDP协议是一个不可靠、面向无连 接的传输层协议,提供简单的端到端通信服务。UDP不能保证数据的可靠传输, 可能存在数据丢失和次序错误。因此,系统因为对数据要求高可靠性需选用提供 可靠连接的TCP协议【50j。 TCP对话通过三次握手来初始化的,三次握手的目的是使数据段的发送和接 收同步,告诉其它主机其一次可接收的数据量,并建立连接。TCP实体所用的基 本协议是滑动窗口协议,当发送方传送一个数据报时,它将启动计时器,当该数 据报到达目的地后,接收方的TCP实体返向发送一个数据报,其中包含一个确认 序号,意思是希望收到下一个数据报的顺序号。如果发送方定时器超时,那么发 送方会重发该数据报。TCP简单流程如图5.3所示。
SYV J
—————————————————————————————————●’

SYNK,ACK J+l
●●———————————————————————————一

工作站

———————————————————————————————’

ACKK+1

图5.3 TCP三次握手协议

通常应用程序通过打开一个SOCKET使用TCP服务,TCP管理到其它 SoCKET的数据传递。可以说,通过IP的源/目的可以唯一地区分网络中的两个 设备的关联,通过SOCKET的源/目的可以唯一地区分网络中两个应用程序的关 联。因此,系统中门禁控制器作为服务器与外部的监控客户端的通信均可由 SoCKET编程来完成。

5.4.2系统网络通信软件设计
系统是通过SOCKET套接口来进行网络编程,套接口地址的格式是一个IP 地址和一个端口号,套接口是进程间通信的端点,每个套接口的名字都是唯一的, 所以依靠套接口来确定整个以太网域中的一个网络进程。SOCKET接口是TCP/IP 网络中的API,SOCKET编程的基本模式是Client/Server【511。即由客户机向服务 器发出请求,服务器执行被请求的任务并将响应的结构返回给客户端程序。

硕士学位论文

SOCKET是TCP/IP协议传输层所提供的接口,供用户编程访问网络资源, 它是使用标准的Unix文件描述符(file descriptor)和其它程序通信的方式。 SoCKET描述符是一个指向内部数据结构的指针,可以将这个描述符看成普通的 文件描述符来读写操作实现网络之间的数据交流,这就是Linux设备的无关性。

按其应用,SOCKET套接口主要有流式套接字(Stre锄Socket)和数据报套接字
(Datagra肌Socket)两种,在系统中采用TCP协议传输数据,采用流式套接字。 系统中的将门禁控制器作为服务器,以太网终端的上位机作为客户端。系统 中TCP/IP协议SOCKET编程流程如图5.4所示。
控制器服务端 客户端
sodket

1r

bind

'r

C0nnet


Sen(1/sendt0’


Recv/recv劬m



close

图5.4 TCP协议SoCKET编程流程图

在门禁系统控制端上运行的RedHat Linux9.0操作系统已经提供了TCP/IP服 务,在其上通常有相应的应用程序进行管理,如Telnet、FTP、http等服务,在门 禁系统控制端通常移植服务器进行系统网络管理,系统中门禁控制器作为服务器 程序流程介绍如下:
(1)调用s=socket(AF INET,SoCK STREAM,O)函数来创建一个用于通信

的套接字,每个Socket都是一个数据通道,使用Socket描述符可以从套接口中读 取数据或向其它数据通道写入数据。 (2)设置套接字地址结构,可对sockaddr in进行初始化,以保存所建立的、
Socket信息。如下: bzero(&sin,sizeof(sin));
sin.sin family=AF INET;

//清除旧的服务器记录 //设置网络类型

sin.siIUort=htons(myport);//设置服务器监听端口
(3)调用bind(s,(struct sockaddr?)&sin,sizeof(sin))函数将其与本机地址以及

47

基于ARM的指纹识别门禁系统的设计‘j实现

一个本地端口号绑定,若绑定其它地址则不能成功。另外,它主要用于TCP的连 接,而在UDP的连接中则无必要。 (4)调用listen(s,5)函数在相应的Socket号上监听。 (5)调用ns=accept(s,NULL,NULL)函数,睡眠并等待客户的连接请求,当 accept函数接收到一个连接服务请求时,将生成一个新的Socket号,并通过新的 socket号来发送图像信息。
(6)调用recv()函数接收客户端的请求,调用send()函数向客户端发送数据。

(7)当所有的数据操作结束以后:调用close()函数来释放Socket。
5.4.3

GoAhead嵌入式Web服务器

随着Internet技术的兴起,在嵌入式设备的管理与交互中,基于Web方式的 应用成为目前的主流。嵌入式W|eb服务器是指将W曲服务器引入现场测试和控 制设备中,在相应的硬件平台和软件系统的支持下,使传统的测试和控制设备转 变为具备了以TCP/IP为底层通信协议和以W曲技术为核心的基于互联网的网络 测试和控制设备。目前用得较多的W-eb服务器主要有thttpd、shttpd、boa、appweb 以及goAhead等。 在嵌入式系统中,由于处理器的运行速度、存储容量和内存等的限制,使用 嵌入式W曲服务器可以节约系统资源,为用户远程访问、管理和控制提供支持, 并可以实现用户的分级访问。系统采用goAhead作为W曲服务器,用户可以通过 Form、CGI等应用程序实现交互。
GoAhead

W曲Server是GoAhead公司推出的一个功能强大源码免费,并可以

运行在多个平台上的嵌入式W曲服务器。GoAhead W曲server的主要功能特点有: 很小的内存消耗、支持安全的通信、支持动态Wreb页面,如ASP页面、可以使 用传统的C语言编程定制w曲页面里的HTML标签、支持CGI、嵌入式的 JavaScript脚本翻译器以及独特的URL分析器【52】。当前的最新版本是GoAhead W曲Server 2.1.8。GoAhead无须安装,只需要将GoAhead的源码软件包拷贝到 Linux文件系统中的任何目录中即可,修改Makenle的相关内容,通过交叉编译, 在源代码目录中的LINUX文件夹下已经存在了GoAhead的可执行文件webs,在 门禁控制器服务器端运行./、Ⅳebs就开户了系统的服务器。 系统在PC机客户端的Windows平台上基于TCP/IP协议用VC++开发了客户 端的程序,通过客户端程序可以通过以太网与门禁控制器的GoAhead W曲Server 通信并实现门禁系统的管理。

硕士学位论文

第6章系统测试及分析
6.1测试环境
整个门禁系统主要分为门禁控制器和远程监控上位机PC的管理软件两大部 分。本系统主要针对门禁控制器和上位机上的指纹识别算法进行系统测试,系统 的测试环境如下: 门禁控制器:ARM主控S3C2410,内核Linux2.6.14,指纹采集模块FPS200,
摄像头(ZC301)。

远程监控上位机:普通的PC机,Pcntium4 2.OG,内存512M,操作系统WindowS XP,算法仿真平台Matlab6.5。

6.2测试内容
依据系统的组成,测试内容主要有门禁控制器系统软硬件工作情况和指纹识 别算法的测试。

6.2.1门禁控制器系统测试
(1)测试系统各个硬件模块是否能稳定地运行。 (2)上电后,测试vivi引导操作系统在硬件上的运行情况,是否运行稳定, 以及内核和文件系统运行情况。 (3)测试USB摄像头的设备驱动以及在其基础之上开发的图像采集是否能 保持高速、稳定的图片截取效率。 (4)测试指纹识别模块驱动的运行情况以及其指纹采集是否稳定、精确和快
速。

(5)测试系统联网功能,远程计算机能否通过以太网登陆到门禁控制器实现 系统远程监控管理功能。 (6)远程登陆完成后,将通过IE浏览器的刷新来观看监控现场,通过指纹 门禁管理软件实时监控门状态、锁状态、出入操作、报警状态。由于管理操作与 PC机的性能有一定关系,故需要根据实际观测到的效果来调试。 系统中通过串口来输出调试信息,因此测试时将门禁控制器与室内PC宿主 机连在一起,通过Linux下的minicom或者Windows下的超级终端就可查看系统 的启动运行信息,图6.1就是系统启动后的打印信息,说明引导程序vivi和内核 能够良好的运行,在vivi下面运行part show就可以看到系统NAND FLASH的分 区情况,如图6.1中上方可以看到分区大小。然后在vivi下运行param show,从

49

持十ARM的指纹识别门禁系统的世计’o实现

图6.1系统内存分区厦参数

图6 l中下方可以看到系统的启动参数,如其中重要的参数Iinux cmd llne,由于

本系统采用linux2 6的内拨,其console应该为ttysAc0。培后在vivi下烧写根文 件系统load
nash root

x,如图6 1中上方的文本框,选择要烧写的映像文件,同

样的方法可以顺利的烧写制作好的j仃s2文件系统和内核映像文件。 然后冉测试是否可以挂起文件系统,启动系统在终端下运行cd/进入到根文 件目录下,ls—l就可看到根文件系统内容,如图6 2上方所示,然后挂载j圩s2文

件系统:mount—ti凰2/dev/mtdblock,4,mnt/s3c2410,ls查看文件系统中内容。
移植好摄像头以后,插入usB摄像头,如图6 2下方所示,可以看到Linux 内核能够对这种设备的识别,图6 2中打印出信息:usB
found,J了pevimicro
30lp

sPcA5xxx camera

0x301b。内核识别鹾设备驱动为zc30I,运行良好并能找

到驱动程序sDca corec.在应用程序中利用v41编程就可以采集到图像。指纹识 别模块采用sPI串口连接,内核配置就可以很好的支持指纹识别模块的运行,并 根据移植的FPs200驱动程序FPs200 c就编程就能采集到指纹图像。 门禁控制器的网络功能是系统中熏要的部分,通过移植Ax88796网卡的驱动 以及配置内核的TcP,IP网络功能,可以使系统支持网络功能,实现数据的远程 估输。在系统启动后,测试系统的网络功能如图6 3所示。先设置控制器IP地址:
ifconng ethO 210 43 58

250,测试网络连通性ping

2lO 43 58

232,如图,可知道系

统网络联通,然后运行,webs启动goahead服务器,用户可以在IE浏览器中输入:

顿f学位论立

圈6 2文件系统的挂载和usB摄像头测试

图6 3系统网络功能测试 http:Ⅳ210 43 58 250,llome

htm来观看视频监控图像,其中210

43 58

250为门禁控

制器的IP地址。在浏览器中可以看到流畅的现场监控图像,以方便门禁系统在需 要时对现场进行监控,如图6 4为实验中的截图。

基于ARM的指纹识别门禁系统的议计’j实耻

围6



v4L采集到的现场监控图

6.2.2指纹识别算法测试
因为本文主要对指纹图像分割算法作了一些改进,其它指纹图像的处理主要 参考其它相关算法完成,所以文中主要对指纹分割算法进行详细的测试分析。 在Matlab6 5平台上,编程实现本文算法并对Fvc2004公布的指纹库进行实 验,本文选取一张对比度高噪声小的高质量指纹图像,另一张为对比度低噪声较 大的一般质量图像。运用块分割中的方差法和方向法阻及本文中的算法进行分割, 得到结果如图6 5和图6 6所示。

德獠舔缀
a)原始图像 图6


b)方差法分割

c)方向法分割

d)文中方法

三种指纹分割方法对质量较好图像的分割效果

繁鏊鏊鳖
a)原始图像

b)方差法分割

c)方向法分割

d)文中方法

图6 6三种指纹分割方法对质量较差图像的分割效果

另外,在同一台计算机上,使用Fvc2004数据库DB2作为测试对象,将本 文方法与方差法、方向法在时问和效率方面进行了对比实验。这里采用误分割率 作为分割效率的相对比较。误分割率是指平均每幅指纹图像中漏割或误割的像素

硕十学位论文

数与图像总的像素数之比。统计结果见表6.1。
表6。l三种分割方法的性能比较

依据上面的实验数据,结果表明,本文算法对指纹库中各种质量的指纹图像 都能较好的分割,总体效果令人满意,特别是对一些含有噪声较严重或低对比度 韵指纹图像有更好的效果。与其它方法相比较,本文方法对背景条件比较复杂的 图像有较好的效果。针对于灰度方差的全局阈值分割,本文方法能恰当的调节阈 值,实现更准确的图像分割,而且该算法误分割率低、处理速度快,可以很好的

适应不同类型的指纹图像同时处理,能够满足自动指纹识别系统的后续处理要求。
之后通过文中整体算法对指纹图像的测试,算法在一般应用场合下,辨识速 度5000.10000枚/秒,并在FVC2004数据库DB2上进行测试,结果为FAR:1.8%, FRR:25.22%,实验证明本算法的有效性。

6.3测试结论
6.3.1测试结果
首先,系统各个硬件模块都能够安全稳定地工作,操作系统也能够稳定的运 行在门禁系统控制器上,这表明系统的基本设计是符合要求的。其次,系统的软 硬件配合良好,具有较好的稳定性。最后,运行在上位机PC端的指纹识别算法 也能有效的识别指纹图像。 经过反复的测试,本门禁控制系统可以在以太网上很好的与其它主机连接, 实现指纹识别的以太网门禁控制系统。

6.3.2出现的问题以及原因和解决办法
系统采用FPS200采集指纹图像以及利用USB摄像头对现场进行监控,截取 到的每一帧放至内存空间并立即发送至监控端,由于门禁系统的实时性,必须要 能及时有效并准确无误的传送数据给监控端。因此,会产生两个问题。 问题l:由实验测试可知,摄像头大约每秒采集25帧,图片大小为6K左右, 数据量非常大,所以为了采集清晰的图像以及流畅的传输,必须对采集到的图像 进行编码传输,减少传输的数据量,提高系统的实时性。 问题2:门禁系统一般具有较高的安全性,在以太网上传输的数据可能会受 到非法的人为的干扰或者受到不安全因素的影响,因此,必须利用网络加密等安 全技术提高系统的安全性能。
53

基于ARM的指纹识别门禁系统的设计‘j实现

总结与展望
1.论文主要工作与成果 随着数字化和网络化的发展,智能门禁系统是未来安防监控系统的发展趋势。 安全可靠、方便易用的门禁系统在企业银行、智能小区等门禁和考勤领域具有较 强的实用价值和推广性。本课题设计开发了一种基于ARM9处理器和指纹识别技 术的以太网门禁控制系统。在ARM.Linux的基础上,研究了指纹采集和视频采集 模块、网络传输模块以及自动指纹识别算法。总结起来,本文主要做了下面的一 些工作: (1)论述了门禁系统在国内外发展现状及其在未来的发展方向,指出了本课 题的研究背景和意义,介绍了一种基于ARM的指纹识别以太网门禁控制系统。 (2)给出了联网型指纹识别的门禁系统的总体设计原则、功能特点和总体硬 件框图。重点论述了系统使用的各个重要模块设计的硬件资源,主要包括USB摄 像头;LCD显示模块;网络通信模块;指纹识别模块等。 (3)研究了指纹识别算法,包括指纹图像预处理以及指纹图像的特征提取和 匹配两部分。文中主要对指纹图像分割做出了一些改进,结合指纹图像灰度方差 和梯度设置一个合适的局部阈值对指纹进行分割,提出了一种指纹图像的局部阈 值分割方法,该算法提高了指纹分割的精确度和适应性。然后参考其它的算法介 绍了一个整体的自动指纹识别算法。 (4)根据Linux的特点以及系统的需要,搭建了系统的嵌入式Linux的软件 平台,包括建立交叉编译环境以及NFS调试环境:然后,介绍了Bootloader引导 程序及移植、CRAMFS根文件系统和JFFS2文件系统以及Linux2.6.14内核的移 植和裁减。最后,介绍了NAND FLASH、LCD、USB摄像头、网卡、以及指纹 采集模块在S3C2410上的驱动移植。 (5)阐述了门禁控制系统软件的总体设计,然后分别阐述了系统中软件编程 中重要的几个方面:使用Vide04Linux编程采集图像、指纹图像的采集、GoAhead
web

ser、,er的应用以及系统运用TCP/IP实现系统门禁控制器和上位机PC之间的

网络通信。 (6)结合实验测试环境和测试数据,测试系统运行的稳定性和可靠性。分析 了系统的工作中出现的问题及其原因,并给出了相关的解决办法。 系统测试的结果表明,基于ARM和指纹识别技术的网络型门禁系统达到了 预期的设计目的,但是也存在一些局限性,比如传输图片数据量大,怎样才能保 持流畅性,还有在指纹识别算法优化的过程中遇到了很多难以预计到的困难。这 些问题需要进一步的研究,以达到更好的效果,在实际应用当中,还需要根据用

硕上学位论文

户的具体要求来完善应用程序的功能。 2.课题展望 在系统设计与开发的过程中,作者发现无论是硬件还是相关的其它技术都在 飞速的向前发展,因此,必须考虑门禁系统扩展升级的功能,可在原来方案基础 上进行新功能的软硬件开发,,解决实际中的应用需求,系统可以在以下方面做进 一步的研究。 (1)研究更好的指纹图像处理的算法,提高指纹识别的效率和准确性。 (2)下一步的软件研究将指纹识别系统与数据库技术结合,实现更加有效率 的大规模指纹数据处理。 (3)随着无线通信技术的快速进步,无线网络应用的越来越广泛,可扩展无

线通信模块实现无线门禁控制系统。
(4)随着个人终端设备的性能越来越强大,可以让门禁控制器做成支持多流 码的多媒体服务器,通过个人终端的客户端可以控制门禁系统,实现实时的可移
动的门禁系统控制.

55

基于ARM的指纹识别门禁系统的设计’j实现

参考文献
【1】王汝琳.智能门禁控制系统.北京:电子工业出版社,2004,5—10

【2】陈伟利,韩成浩.基于指纹识别技术的网络式门禁系统设计.吉林工程技术师范
学院学报,2008,24(3):78.80

【3】荣锋,厉彦峰.基于网络的门禁系统的设计.天津工业大学学 报,2008,27(1):56—59 【4】求是科技,苏彦华等.Visual C++数字图像识别技术典型案例.北京:人民邮电出 版社,2004,24.25 【5】卢雪贤.指纹识别技术门禁应用解决方案.中国防伪报道,2007,(8):27—30 【6】郑李明,徐鹤生.安全防范系统工程.北京:高等教育出版社,2004,5-15 【7】祝恩,殷建平,张国敏,胡春风.自动指纹识别技术.长沙:国防科技大学出版 社,2006,1.7 【8】李吴,傅曦.精通Visual C++指纹模式识别系统算法及实现.北京:人民邮电出版 社,2008,11.23 【9】刘少聪.新指纹学.合肥:安徽人民出版社,1984,l一13 [10】柴晓光,岑宝炽.民用指纹识别技术。北京:人民邮电出版社,2004,10-15 【11】肖俐平,孙岩,陈桂生.基于ARM的嵌入式系统组网设计与实现.测控技 术,2007,26(8):58-60 【12】郑冰,贾红云,赵立本.基于ARM的指纹识别门禁系统设计.微计算机信
息,2007,2(2):140.141

【13】杜明芳.ARM&Linux架构下智能门禁控制器以太网接口开发.计算机工 程,2007,33(16):234—235
【1 4】Samsung
2003,3-lO Electronics.S3C24 l OX 32一Bit RISC Microprocessor User’s

Manual,

【l 5】Samsung

Electronics.K9F5608UOA—YIBO Datasheet,2000,5-20 Datasheet,2002,1—20

【l 6】Hynix.HY57V56 1 62081’.H 【l 7】MaXim,MAX3 23 2E

Datasheet,2000,l一25

【18】南金瑞,程夕明,翟丽等.嵌入式车载信息系统开发与应用.北京:电子工业出版 社,2006,278.280
【1 9】Asix.AX88796
Datasheet,200 1,3-1 4

【20】赵孔新,王永莺.基于ARM9和FPS200的指纹数据采集.国外电子元器件,
2007,(1 2):20?22

【2l】罗苑棠,杨宗德.嵌入式Linux应用系统开发实例精讲.北京:电子工业出版

56

硕士学位论文

社,2007,240—250

【22】张纪坤,张小全.嵌入式LinuX系统开发技术详解.基于ARM.北京:入民邮电 出版社,2006,94.97 【23】田泽.嵌入式系统开发与应用教程.北京:北京航空航天大学出版社,2005,14-20 【24】曾剑.基于ARM和蓝牙的安防系统的设计和实现.【湖南大学硕士学位论文】.
长沙:湖南大学,2007,35.36

【25】李善平.LinuX内核2.4舨源代码分析大全。北京:机械工业出版社,2002,188-196
{26】JoNATHAN CoRBET,ALESSANDRO
RUBINI&GREG

KROAH—HAIU’MAN

著;魏永明,耿乐,钟书毅等译.LINUX设备驱动程序(第3版)。北京:中国电力出
版社。2006,14.16

f27】王滔,于洁,程小辉.Linux系统下USB摄像头驱动开发.电子技术应
用,2004,(11):8—10

?【28】丁飞.基于ARM的指纹识别系统的研究与实现.【华南理工大学硕士学位论文】. 广州:华南理工大学,2007,4.8
【29】Meht他BM,Murthy
using the directionaI N N,Kappor S,et a1.Segmentation of fingerprint—images

image.Pattem

Recognition,l 987,20(4):429?435 of nngerprint

【3 O】Mehtre

BM,Chatterj ee

B.Segmentation

images-a

composite

method.Pattem

Recognition,l

989,22(4):3 8 1—3 85

【31】范国娟,尹义龙.一种基于改进的Snake模型的指纹分割算法.计算机工程与应
用,2008,44(1):209.2lO 【32】WANGXin,XIEMei,LIQingrong.A
on

new fingerprint segmentation method based

the

directional

inf.ormation.Chinese

of

Journal

Electronics,2004,1 3(2):346—348

【33】商庆瑞,吴睛,郭晶莹.基于Matlab实现的指纹图像预处理算法.计算机仿 真,2007,24(3):2 1 5—2 l 8
【34】Jouni Malinen,Vesa Onia,Marius
Tico.Fingerprint classification based
on

multiple

discriminant

analysis.neural

inforIllation

processing,

2002,5(11):2469—2473 【3 5】LIN
and HONG,YlFEI

WAN,ANIL JAIN.Fingerprint image enhancement algorithm
Trans
on

perform锄ce

eValuation.IEEE

Pattem

Analysis

and

Machince

Intelligence,1 998,20(8):777-790

【36】丁裕锋,马利庄,聂栋栋,刘军波.Gabor滤波器在指纹图像分割中的应用.中国图 象图形学报,2004,9(9):1037一104l
【37】I.Emifoglu,M.B.Akhan.Pfe—processing
Conference
on

of

fingerprint

images.Europe锄

Security and Detection,1 997,4(1 O):1 47—1 5 1

57

基于ARM的指纹识别门禁系统的设计’j实现

【38】王崇文,李见为.一种基于点模式匹配的指纹识别算法.重庆大学自然科学 版,2002,(6):27—3 l
【39】J.P.Statlnk.Finding
point correspondences using

simulated

annealing.Pattern

Recognition,1 995,28(2):23 1—240

【40】Stoney

D.A,Thornton J.I.A.systemic study of

epidemal

ridge minuti∞.Joumal

offorensic

sciences,1987,5(12):1182一1203
thinning

【4 l】Ylla Shiaw—shian,Tsai Wen-hsiang.A new

algorithm

for

g豫y-leVel

images by the relaxation technique.Pattem Recognition,1990,23(10):1067—1076

【42】Datta A,Parui

S.K.A robust parallelthinning algorithm for binary

images.Pattem

Recognition,l 994,27(9):1l 8 l一1l 92

【43】Xiao Qing.han,R髓fat Hazem.Fingerp“nt Image
statistical and

post

processing:A

combined

stmctural approach.Pattem
J.Automated

Recognition,1 99 1,24(1 Recognition

O):985-992
Stlllctual

【44】Hrechak

A,Mchugh

Fingerprint

using

matching.Pattem

Recognition,1

990,23(8):893—904
algorithm for
scale point

【45】Chang.S.H,Cheng.S.H,Wu

G Z.Fast rotations

pattem

matching:

inVari锄t

to

translations

and

changes.Pattern

Recognition,

1997,10(2):3 11-320 f46】Lin.H,
Anil.K.J.Automatic
personal

identification

using

fingefprint。East

Lansing,Michig觚State University,1998,2(10):40-43
【47】IseNOR
D.K,Zaky

S.Q.Fingerint

identification

using

matching.Pattem

Recognition,1

986,(2):1l 3一122
J.A Automated
using structural

f48】Hrechak

A.K,Mchugh

matching.Panem

Recognition,1 990,23(8):893—904

【49】陈俊宏.Embedded Linux嵌入式系统原理与实务.北京:中国铁道出版

社,2004,1 84.192 【50】杨树青,王欢.Linux环境下C编程指南.北京:清华大学出版社,2007,314.320
【5 1】林宇,郭凌云编著.Linux网络编程.北京:人民邮电出版社,2000,112.1
14

【52】左明文,张剑英.基于GoAhead嵌入式WEB服务器应用软件设计.中国新通 信,2006,(1 7):37-40

硕.】:学位论文





在论文完成之际,借此机会向各位老师和同学表示感谢。 深深感谢我的导师王玲教授对我学术上的悉心指导和生活上的热情关怀,从 课题的论证,到日常研究工作的进行,再到硕士论文的撰写和修改,倾注了王老 师的大量心血。王老师渊博的学术修养,敏锐的学术洞察力,严谨认真、孜孜不 倦的治学态度以及对事业、对工作的高度热情,对我产生了潜移默化的影响,感 谢王老师,感谢王老师创建的良好的实验室学术氛围,这里是我们完成学业研究 的基地。 感谢师兄师姐给我的关怀与照顾,对我生活和学习上的帮助,特别感谢曾健 师兄和韩韬师兄对我课题上的亲切指导,让我的方向更加明确,收获颇多。 感谢本实验室同学共同创造的浓厚学术讨论气氛,每次讨论活动使我得到许 多启示。感谢实验室何浩、胡蓉、翟景瞳、葛勇、刘祥明等同学,这是一个团结 向上的集体,在实验室度过的这三年给我留下了终生难忘的回忆。很荣幸结识各 位同学,正是这种愉悦的氛围,让我的研究生生活充满快乐。 感谢.9栋527室全体室友,感谢他们营造了一个健康温馨、积极向上的休息 和交流环境,从他们身上我学到了很多,结识你们是我一生的财富。 我还要感谢我的家人对我的支持。在求知的道路上,我的每一步足迹都凝聚 着他们的关爱与鼓励,谢谢你们为我所做出的一切。 最后,衷心感谢在百忙中抽出宝贵时间阅读本文的各位评委。

马文科
2009年04月

59

基于删的指纹识别门禁系统的设计与实现
附录A攻读硕士学位期间所发表学术论文
【l】马文科,王玲,何浩.一种指纹图像的局部阈值分割算法.计算机工程与应用,
已录用

【2】马文科,王玲,何浩.基于以太网的指纹门禁控制器设计与实现.微计算机信
息,2009,25(8)

{3】何浩,王玲,马文科.一种新型视频监控系统的设计与实现.微计算机信息?
2008,24(30)

【4】何浩,王玲,马文科.基于H.264无线网络视频监控系统的设计.电视技术,
2008. 32(10)

硕士学位论文

附录B攻读学位论文期间参加的科研项目
【l】基于指纹识别的电子票务系统。校企合作项目,编号:2007944055l。 【2】基于网络的视频监控系统。校企合作项目,编号:20079440552。

61

附录C系统硬件实物图

基于ARM的指纹识别门禁系统的设计与实现
作者: 学位授予单位: 马文科 湖南大学

相似文献(10条) 1.学位论文 田晓明 嵌入式门禁系统硬件的设计与实现 2008
随着自动控制技术、计算机技术和通信技术的快速发展,人们要求门禁系统具有更多的功能,许多现有的门禁系统已不能满足人们的生活需求,因 此设计一种反应迅速、功能强大、易于扩展的智能门禁系统具有极大的经济效益和市场价值。本文详细地介绍了根据应用需求而设计的这种嵌入式门禁 系统,其中最大特点是它结合了嵌入式技术和RFID技术各自的优点。 本文在详细分析嵌入式门禁系统项目需求的基础上,给出嵌入式门禁系统的硬件总体设计方案,主要包括电源模块、嵌入式门禁控制器模块和 RFID模块。电源模块为满足嵌入式门禁系统不间断工作的要求,特别设计了一个充电电路对蓄电池进行充电,充电电路具有自动充电和自动切断功能。 嵌入式门禁控制器模块采用了基于.ARM920T内核的微处理器S3C2410,在选择合适芯片的基础上,详细地设计了微处理器、SDRAM、FLASH、Ethenet、 USB等电路原理图以及进行相关的讨论。S3C2410支持8/16/32位数据总线带宽,本设计中采用了32位,这样数据传输速率最大,门禁控制器的响应时间最 短。在RFID模块中详细地介绍了读卡器电路的设计。 在完成电路原理图设计的基础上,进行PCB布局布线,制板焊接,做出产品。最后搭建好ADSl.2调试平台,用传统的硬件调试方法和ADSl.2调试方 法一起调试嵌入式门禁系统的硬件,并给出调试报告。 经过调试和测试,该产品工作正常稳定,满足设计需求,已交付客户使用。

2.期刊论文 陈国金.王家校.CHEN Guo-jin.WANG Jia-xiao 基于ARM9的指纹识别门禁系统 -机电工程2009,26(9)
为实现基于嵌入式ARM的指纹识别门禁系统,采用了基于ARM9的指纹识别门禁系统的软硬件设计,提出了指纹获取、指纹识别处理、指纹匹配等方法和 相关算法.其中,硬件方面主要采用了三星公司的基于ARM920T内核的S3C2410A处理器和富士通公司的MBF200指纹传感器;软件设计包括了系统上电初始化 、指纹识别处理、电控锁控制等部分以及Linux操作系统的移植和驱动的编写等.试验结果表明,该系统具有准确性高、识别快的优点,而且易于二次开发 和功能扩展.

3.学位论文 佟英杉 嵌入式多功能门禁系统的设计与实现 2008
当今社会是科学技术日新月异、飞速发展的信息时代。人们感受着高科技带来的极大方便和益处,同时,对于高科技服务于生活的要求也越来越高 。如何运用科学技术的力量使人们的安全防范措施更加可靠,更有效的阻止盗窃、抢劫等犯罪行为的侵犯,成为了热门问题。传统的门禁系统多采用钥 匙,智能卡,用户ID+密码等方式,使用钥匙或者智能卡的系统存在钥匙或者智能卡遗失或被盗取等问题。随着计算机技术和模式识别等科技的飞速发展 ,使运用生物特征识别技术来研制安全监测系统成为可能。 文中介绍一种以人脸特征为控制信息的嵌入式多功能门禁系统的设计与实现。该系统采用Intel嵌入之星EC5-1719CLDNA嵌入式双核处理器硬件平台 ,通过对图像的采集和处理,实现系统的多功能控制。该门禁系统具有的功能有人脸自动检测识别、自动照明、无人状态,语音提示、来访申请等。系 统核心部分是对人脸进行自动检测识别,进行门禁控制,提高了家居的安全性。 本论文详细描述了嵌入式多功能门禁系统的结构框架,主要包括系统的各个功能模块的硬件设计和软件的设计以及开发实现过程。首先,介绍了嵌 入式门禁系统的研究背景及意义,人脸识别方法的科研究现状;其次,介绍了嵌入式多功能门禁系统的整体结构和功能的设计;第三,详细介绍了各个 模块的具体的硬件设计和应用软件设计,主要介绍了图像采集,走廊环境监测,自动照明、语音提示部分、来访申请、无人状态等功能模块的设计与实 现;第四,详细介绍了系统中人脸检测识别软件的设计与实现,主要有图像预处理,人脸检测定位,fisherface方法的人脸识别方法。第五,介绍系统 的硬件与软件测试。本系统最终实现了人脸自动检测识别、自动照明、自动监测、语音提示、来访申请等功能,为使用者的家居生活带来安全与方便。

4.期刊论文 姚建强 嵌入式门禁系统软件的总体设计 -中国新技术新产品2009,""(3)
与传统的单机控制型门禁系统相比,网络型嵌入式门禁系统具有良好的灵活性与稳定性,门禁控制器可单独完成时门禁管制区域的控制和管理,也可通 过局域网与门禁管理系统互联共同完成对门禁管制区域的监控,实现了网上监控和管理,极大地扩大了门禁系统的应用领域.

5.学位论文 闫壮军 嵌入式人脸识别门禁系统 2003
嵌入式人脸识别门禁系统是将嵌入式软件、硬件系统与人脸识别技术相结合的应用系统,是新型的安全监控系统,主要应用于对安全级别要求较高的 行业.该文对各种嵌入式软件以及硬件系统的特性、体系结构等做了大量的研究、比较,并在此基础上选择了能够最大限度满足该系统对高速度、低成本 、高实时性等要求的嵌入式硬件设备、嵌入式操作系统以及各种在开发过程中需要使用的工具.同时,在系统软件的核心算法(人脸识别技术)方面,借鉴了 以往的研究结果和实验数据,并且面向嵌入式人脸识别门禁系统做了更具有针对性的研究和比较,从中选择了那些能够最好地兼容系统软件、硬件平台的 算法,并通过软件实现.通过对嵌入式硬件设备的前期调试以及嵌入式软件平台的前期搭建,算法的中期实现以及后期整个系统的集成测试,系统基本能够 正常、稳定地运行,并且得到了比较满意的实验结果.

6.期刊论文 游德智 小区嵌入式控制门禁系统的设计 -科协论坛(下半月)2009,""(7)
嵌入式门禁系统为具有良好的可靠性和可扩展性.门禁系统可采用以ARH芯片为内核开发的S3C2440徼处理器作为控制中心,结合当前的RIFD射频技术 ,通过局域网实现对小区门禁的控制和管理及对小区门禁区域的监控.

7.学位论文 吕兆磊 基于ARM9的嵌入式小区门禁系统的研究与设计 2009
随着智能建筑的发展及智能化小区的出现,人们已接受了智能建筑及智能化小区所带来的高效、舒适的工作及生活环境,同时对智能化系统的可靠 、便利也提出了更高的要求。作为智能建筑的重要组成部分之一,门禁系统的功能早已超越了单纯的门道及钥匙管理,它已经逐渐发展成为一套完整的 出入管理系统,它在工作环境安全和人事考勤管理等管理工作中发挥着巨大的作用。 传统的门禁控制系统多采用8位单片机或者16位控制器实现门禁控制器,由于速度、接口和性能等方面的限制,很难满足多门、网络化的控制需求。 ARM公司的32位RISC处理器ARM9有着高速度、低功耗、低成本、功能强、特有16/32位双指令集等诸多优异的性能。同时Linux系统对于ARM技术的支持具 有内核可裁减,代码免费开放的特点,本文选择Linux系统和ARM9相结合的嵌入式系统平台,可以发挥更大的优势。 本文第一章综述本课题研究的基本情况。第二章介绍了门禁系统总体设计和基于ARM9的嵌入式开发平台的搭建。第三章阐述了基于ARM9的嵌入式 Linux开发环境的建立。第四、五、六章主要介绍门禁控制器与读卡器之间的串口通信模块、以太网驱动模块、嵌入式音频模块的研究与设计。

8.期刊论文 吕兆磊 基于ARM9的智能小区嵌入式门禁控制系统的分析和设计 -科技信息(学术版)2008,""(26)
基于ARM9和Linux分析并设计了应用于智能小区安保系统的嵌入式门禁控制系统,其中,门禁控制器采用ARM9处理器,容易满足多门、网络化的控制需 求,符合当今设备网络化、智能化的发展方向,重点介绍了门禁系统的类型、组成,并对本门禁系统的功能进行了分析和设计.

9.学位论文 施国君 基于以太网的嵌入式网络门禁系统的设计与实现 2007
随着计算机技术、网络技术和非接触射频卡技术的出现与快速发展,门禁系统不断朝着模块化、集成化、智能化、网络化与分布式的方向发展。目 前国内外以太网环境已经十分成熟并大量使用,基于以太网环境的门禁系统的研发将成为未来门禁系统建设与发展的重点和潮流,由于在规模、结构、 功能层次及设计实现等方面均与传统的门禁系统有较大的变化,因此,如何适应这种变化并提出一种切实可行的设计与实现方法则是当前门禁系统所面 临的主要问题。 本文中提出的基于以太网的嵌入式网络门禁系统的设计与实现方法,就是为了顺应这种发展趋势而提出的,它是一种现代化的网络型门禁系统,系 统结构采用嵌入式系统设计技术;通过单片机实现嵌入式网关技术,进而实现门禁控制器与远端服务器之间的网络数据传输;刷卡方式上采用新一代的

非接触式射频卡识别技术。该网络门禁系统能够利用现代办公场所或社区内部已普遍架设的局域网环境,把门禁系统融为局域网的一部份,方便管理者 统一管理,并且不需另外架设线路,既能节省管理方面的开销、又能提高数据传输的效能,这都是基于RS485协议的门禁系统所不及的。 论文中详细地阐述了基于以太网的嵌入式网络门禁系统的设计与实现方法,包括系统体系结构、设计原理、软硬件构成和具体的实现方法,其中又 以控制器和嵌入式网关作为研究的重点,并在系统的可靠性、安全性等方面采取了有效措施,使人机工效达到最佳状态。可以预见,论文中提出的设计 方案的实施,对门禁系统的数据传输距离、传输速度、可靠性、工程成本、技术先进性等方面均具有传统的门禁系统所不可替代的优越性,特别是技术 上赶超国外同类产品及参与国际竞争都具有深远的意义。

10.期刊论文 吕兆磊 基于ARM9的智能小区嵌入式门禁控制系统的分析和设计 -安防科技2009,""(1)
基于AKM9和Linux分析并设计了应用于智能小区安保系统的嵌入式门禁控制系统,其中,门禁控制器采用ARM9处理器,容易满足多门、网络化的控制需 求,符合当今设备网络化、智能化的发展方向,重点介绍了门禁系统的类型、组成,并对本门禁系统的功能进行了分析和设计.

本文链接:http://d.g.wanfangdata.com.cn/Thesis_Y1511341.aspx 下载时间:2010年5月25日


相关文章:
指纹识别门禁系统的设计与实现
指纹识别门禁系统的设计与实现_信息与通信_工程科技_专业资料。本文简要介绍了...于ARM的指纹识别门禁系统... 69页 5下载券 基于ARM的指纹识别门禁系... ...
基于ARM的指纹识别门禁系统设计
举报文档 caixukun贡献于2013-09-15 0.0分 (0人评价)暂无用户评价 我要评价...基于 ARM 的指纹识别门禁系统设计 已知技术参数和设计要求: 1、 硬件主要选择基于...
基于ARM的指纹识别门禁系统的设计
基于ARM的指纹识别门禁系统的设计_信息与通信_工程科技_专业资料。论文 基于ARM...多个门禁控制器一般组成RS485网络,通信线 路专用且不易于实现网络控制和远程...
基于ARM9的指纹识别门禁系统设计
基于ARM9的指纹识别门禁系统设计 指纹门禁系统是基于生物特征识别技术的一项高科技安全设施,近年来在国内外得到了广泛的应用,并已成为现代化建筑智能化的标志之一。指...
基于ARM9的指纹识别门禁系统
基于ARM9的指纹识别门禁系统_信息通信_工程科技_...1 系统硬 件设计 S3C2440AL 主频为 400 MHz, 最...文档贡献者 ganoac0425 贡献于2016-06-27 ...
20084051126_白晓烨_基于ARM的指纹识别门禁系统的设计与实现_教师提交选题表和任务书_1323335486390
软件教研室 基于 ARM 的指纹识别门禁系统的设计与实现 应用设计 课题来源 学生自拟课题 现代社会高速发展,很多场合需要身份确认,传统的身份识别技术已 经不能满足...
基于ARM的指纹识别系统设计
在一些机要部门, 如银行、宾馆、机房等一般都安装有门禁系统,门禁系统是为保障...而本文提出的基于 ARM9 的嵌入式 指纹识别系统则是把采集和处理集于一身的...
指纹识别在门禁系统中的应用
基于指纹识别 TCP/IP 网络门禁系统方案设计的前提是满足用 户的各种需求, ...于ARM的指纹识别门禁系统... 69页 5下载券 指纹识别门禁系统(软件)... 49...
基于ARM9的指纹识别门禁系统[1]算法
shangmingras贡献于2011-02-19 0.0分 (0人评价)暂无用户评价 我要评价 ...基于ARM9的指纹识别门禁系统[1]算法 指纹识别指纹识别隐藏>> ?ARM9I5Q ? h...
更多相关标签:
指纹识别门禁系统 | 指纹识别门禁系统设计 | 指纹识别门禁 | matlab实现指纹识别 | 用matlab实现指纹识别 | 手机指纹识别实现原理 | 安卓实现指纹识别 | 指纹门禁 军工二级 |