1.概述
随着科学技术的不断进步,人们对现代化办公和生活场所提出了更高层次的安全管理需求,普通的门锁系统和手工出入管理已经不符合现代人的实际需求。由于安防业的智能化和网络化,为顺应智能楼宇、智能小区的发展,门禁系统也必须实现更可靠、更安全和更方便的智能系统。现代门禁系统综合利用了传感技术、数字信息处理、计算机技术、多媒体技术和网络技术,以实现门禁系统信息的采集、传输和处理。
目前智能门禁管理系统已广泛用于工厂、学校、写字楼宇、物业小区、商店、金融系统、电信系统、军事系统、宾馆等多种场合,大大提高了整体的工作效率、保障了系统安全,智能、安全和高效的现代化门禁系统已经成为社会发展的必然趋势,同时它也是现代化建筑的一个重要组成部分。
传统的机械钥匙、用户ID+密码以及智能卡等的保护措施存在着丢失、遗忘、复制以及被盗用的隐患,在这种情况下,最新发展的生物识别技术为上述方法的不足提供了一个很好的解决方案。由于指纹识别具有唯一性、不变性和贴身性的特点,成为了众多生物识别技术中备受青睐的一个。且随着生物识别技术和计算机技术的飞速发展,指纹识别算法已达到迅速、准确和可靠的水平,已越来越多的应用在现代智能门禁系统的前端信息采集部分。
目前使用较多的是指纹单机门禁系统,其采集、处理和识别都在一个控制系统中完成,只适用于小系统和安装位臵集中的单位,且通信线路专用,安装好后不易于更换管理中心的位臵。在大系统和安装位臵分散的单位,单机门禁系统必然耗费较大且效率不高。因此有必要采用TCP/IP的网络型门禁控制系统,实现网络控制和远程控制。
系统采用指纹采集作为门禁系统的前端部分,由于指纹识别具有唯一性、不变性和贴身性的特点,使它成为一种安全有效的身份验证方法。另外,系统采用基于TCP/IP协议的网络型门禁控制器是通过局域网传递数据的,管理中心随时可以变更,不需要重新布线,很容易实现网络控制和远程控制,并且指纹的处理和识别可以在运算速度更快的管理中心实现,这样控制器功能简单,而且多个控制器可以连接到一个服务器,提高了门禁系统控制和管理的效率。
1.1国内外研究现状和发展
据考古学家证实,公元前7000年-6000年,指纹作为身份鉴别的工具已经在叙利亚和中国开始应用。但是由于缺乏专门性研究,未能将指纹识别技术上升为一门科学。20世纪早期,指纹识别正式成为身份识别的方法并被法律部门用作身份鉴定的依据,并开始在世界范围内建立指纹识别机构和罪犯指纹档案。指纹识别的有关技术,包括指纹采集技术、指纹分类技术和指纹匹配技术都得到了较快发展。例如美国联邦调查局在1924年库存样本指纹就达到了81万枚。20世纪80年代,个人电脑、光学扫描等技术革新使得他们作为指纹取像的工具成为现实,从而使指纹识别可以在其他领域中得以应用。随着取像设备的引入及其飞速发展,生物指纹识别技术的逐渐成熟,可靠的比对算法的发现都为指纹识别技术提供了更广阔的舞台。目前,利用计算机进行指纹识别的技术在国外已很成熟,并且已经开始大规模广。
智能安防的日益流行对于楼宇管理自动化和安全监控提出了更高的安全性和可靠性要求,基于指纹识别的智能门禁管理系统应用得越来越广泛,在一些发达国家已得到普遍的应用。面对规模已经越来越大的门禁控制系统,普通的单机门禁系统已经不适合,比如智能小区、景点门禁系统等。因此必须要开发进行远距离传输的TCP/IP的网络型门禁控制系统,由于网络型门禁控制系统很容易实现远程控制和分布式管理,还可以方便日后扩容和维护,日益变得重要。
1.2 本文的研究内容
论文的研究内容分为指纹识别的算法研究和ARM门禁控制器硬件实现两个部分。在以往算法的研究基础上,利用指纹图像灰度梯度和方差的结合对指纹分割方法进行改进,仿真实验证明本文中的改进算法鲁棒性好。论文在以ARMS3C2410为核心和嵌入式操作系统Linux的基础上,设计开发了基于指纹识别的以太网门禁控制系统。
本文具体内容主要有以下几个方面:
(1)系统整体方案概述和设计:根据系统功能要求,设计指纹识别以太网门禁系统,重点阐述了其中关键模块的硬件设计。
(2)指纹识别算法的理论分析和仿真:研究了指纹识别算法,主要包括指纹图像预处理以及指纹图像的特征提取和匹配两部分。
(3)系统软件总体设计:阐述了门禁控制系统软件的总体设计,然后对各模块进行应用编程,主要包括视频采集、指纹采集以及TCP/IP网络应用编程。
(4)最后,对全文进行了总结,并对指纹识别以太网指纹门禁控制系统的未来发展趋势做出展望。
2.1系统硬件设计
2.1.1系统概述及设计原则
门禁管理系统是新型现代化的安全管理系统,主要用于管理重要部门出入口,是实现安全防范管理的有效措施,适用于各种重要部门,如企业、政府、银行、宾馆、金融贸易楼和综合办公楼等。
门禁系统一般分为独立型和联网型,联网型门禁系统通讯方式常见的有RS232、RS485、CAN和TCP/IP,采用TCP/IP通讯方式的联网型门禁系统简称为TCP/IP网络门禁系统。相对其它通讯方式,基于TCP/IP网络通信的门禁系统通过局域网传递数据,更容易实现远程控制和分布式管理。
从门禁锁的控制方式来看,主要有钥匙、密码、磁卡、IC卡等。随着现代生活对安防水平要求的提高,从目前已有的门禁锁具的控制方式来看,存在着一定的安全隐患,钥匙、密码和磁卡容易复制、窃取;IC卡的安全性较高,但也容易丢失。因此,现在人们心目中的门禁锁具必须具有方便、安全,美观等特点。随着计算机技术的飞速发展,基于人体生理特征的身份识别系统逐渐被人们开始采用,目前,从实用角度看,指纹识别技术要比其它生物识别技术更安全和方便。
基于指纹识别的TCP/IP网络门禁系统方案设计的前提是满足用户的各种需求,利用系统强大的功能以及良好的性价比,让用户得到最好的服务和最大的利益。方案的设计原则:实用性、稳定性、安全性、可扩展性和易维护性。
2.1.2 系统组成及功能
一般RS485门禁控制器只支持128台或者256台设备联网,而TCP/IP门禁控制器理论上可以支持无限多台门禁设备。所以TCP/IP网络型门禁控制器是最适合大型大面积的门禁系统联网的。例如供电部门的变电站门禁的联网管理、银行储蓄所的门禁管理等都适合这种模式。互联网的门禁系统结构如图2-1所示。
图2-1互联网的门禁系统结构图
基于指纹识别的TCP/IP门禁系统方案基本组成:
(1)管理中心:一台连接到门禁控制器或网络的PC机,通过局域网或广域网与其它门禁控制器或PC机连接,实现门禁控制器采集信息的处理和分析,并发送控制指令,以及对相应的软件管理。
(2)门禁管理软件:管理工作站通过管理软件远程监控服务器和各门禁控制器的工作状态,实现各种管理功能。
(3)门禁控制器:用于前端信息的采集、传输和处理,并控制门禁的电控锁和门铃,执行处理器下达的开门、报警、启动门铃等指令以及提供通信多机连接端口等。
(4)电子门锁:门禁系统的执行机构和关键设备,用于对物理通道的控制。
(5)电力设备:采用直流电源作为整个门禁系统的运行电源和门锁电源(一般采用内部电源)。
(6)联动设备:可与门禁控制器所有输入、输出节点进行联动,实现防盗报警、消防报警等大型系统的联动,一般在门禁管理软件中对联动设备进行相关的编程设臵。
(7)通讯设备:包括交换机设备、路由器和MODEM等,实现设备的网络连接。
指纹识别门禁系统的主要功能特点:
(1)采用高效的指纹识别模块,可使指纹直接开锁,使用方便快捷,具有很高的安全性。
(2)应用ARM处理器和Linux操作系统,可以很好的保证门禁系统独立连续工图2-1互联网的门禁系统结构图
(3)系统采用指纹与密码的结合,可以根据实际需要设臵多种认证模式,支持多用户,多组别组合开门,具有良好的灵活性。
(4)系统配以科学化管理软件,可以实现门禁系统的科学化管理。
(5)应用TCP/IP以太网模块,可以方便实现网络控制和远程控制。
(6)系统采用分级管理,分为管理者和用户,采用逐级权限管理,将用户的指纹采集并存储在中央管理主机上,根据用户的开门权限,将用户指纹下传至相应的子门禁系统中。
(7)系统有视频监控和报警等一些相应的辅助功能,提高系统的安全性。
本文基于ARM9(S3C24lO)设计和实现了一种指纹识别的网络型门禁控制器。采用指纹识别器为前端信息的采集,用以太网控制器实现门禁控制器与上位PC机间的通信,并利用LCD来实时显示状态,并可以提供一些其它的辅助功能,如语音提示、报警和摄像监控等。 指纹型网络门禁控制系统框架如图2-2所示。
图2-2门禁系统框图
2.2 嵌入式主控模块设计
2.2.1 ARM微处理器与地址空间映射
本系统选择了韩国三星公司的高性能ARM9微处理器芯片S3C241O作为主处理器,S3C2410芯片是基于ARM920T内核,五级流水线和哈佛结构,内核工作电压为1.8V,输入输出电压为3.3V,具有180MHZ/200MIPS性能,是高性能和低功耗的硬宏单元。ARM920T内核具有全性能的MMU、指令和数据Cache以及高速AMBA总线接口。
S3C2410内部结构比较复杂,可提供很多可扩展的功能模块,主要有MMU虚拟内存管理单元,LCD控制器(支持上到4k色的STN和256k色的TFT),3通道UART,4通道DMA,4通道具备PWM功能的定时器,I/O口,具有日历功能的RTC(实时时钟),8通道10bit精度ADC和触摸屏控制器,IIC总线接口,IIS数字音频总线接口,两个USB2.0全速主设备及一个从设备,SD/MMC卡控制器,2通道SPI及内臵lQ/100M的网络接口等。
2.2.2 NAND FLASH单元
Flash是一种可在系统(In-System)进行电擦写、掉电后信息不丢失的存储器。它的高集成度和低成本使它成为市场主流。Flash芯片具有低功耗、大容量、擦写速度快、可整片或分扇区在系统编程(烧写)、擦除等特点,并且可由内部嵌入的算法完成对芯片的操作,因而在各种嵌入式系统中得到了广泛的应用。作为一种非易失性存储器,Flash在系统中通常用于存放程序代码、常量表以及一些在系统掉电后需要保存的用户数据等。常用的Flash为8位或16位的数据宽度,编程电压为单3.3V。
Flash技术根据不同的应用场合也分为不同的发展方向,有擅长存储代码的NOR Flash和擅长存储数据的NAND Flash。同时,S3C2410内部集成了NAND Flash控制器,为了支持系统从NAND Flash中启动,S3C24lO内部有一块被称为垫脚石(Steppingstone)的SRAM缓存。如果选择从NAND Flash中启动,在启动时S3C2410会自动的将NAND Flash存储器中最前面的4KB数据拷贝到S3C24lO内部的SRAM中并自动执行。如果这4KB存放的是启动代码,那么启动代码就可以从S3C241O内部的SRAM中执行,启动代码初始化系统和外部SDRAM后将存储在NAND Flash中的操作系统和应用程序拷贝到外部SDRAM中,这时整个系统就可以启动了。
在本系统中,采用的是三星公司的K9F5608U芯片,其电路原理图如图2-3所示。
图2-3 NAND FLASH原理图
2.2.3 SDRAM单元
SDRAM具有容量大、存取速度快、成本低的特点,得到了广泛的应用。与Flash存储器相比,SDRAM不具有掉电保持数据的特性,但存取速度高于Flash存储器,且具有读/写属性,因此SDRAM在系统中主要用作程序的运行空间、数据以及堆栈区,是系统启动之后进行存取操作的存储器。
S3C2410在片内具有独立的SDRAM刷新控制逻辑,可方便地与SDRAM连接。同时,由于S3C24lO片内的存储空间不大,大量的数据都要通过SDRAM暂时存放和交换,即动态存储区。系统启动时,CPU首先从起始地址读取启动代码进行系统初始化,在完成系统初始化后,程序代码一般调入SDRAM中运行以提高系统的运行速度。SDRAM存储单元犹如一个电容,总是倾向于放电,为避免数据丢失,必须定时充电刷新。
图2-4 SDRAM 外围接口
2.2.4 USB及USB摄像头单元
USB(Universal Serial Bus)即通用串行总线,是现在非常流行的一种快速、双向、廉价、可以进行热插拔的接口。随着嵌入式技术的快速发展,USB的应用已经逐渐从PC机扩展到了嵌入式技术中,并且发挥着重要的作用。USB设备之所以会被大量应用,主要具有以下优点:
(1)可以热插拔,使用方便。
(2)系统总线供电,并可提供5V/500mA电源,具有独立供电特点。
(3)支持设备众多,支持多种设备类,例如鼠标,键盘,摄像头等。
(4)连接灵活,可以连接多个设备,最多可扩127个,连接的方式也非常灵活,既可以使用串行连接,也可以使用集线器Hub把多个设备连接在一起再与PC的USB口相连。
(5)速度快,支持高速数据传输,USBl.1是12Mb/s,USB2.0高达480Mb/s S3C2410带有两个USB主设备控制器和一个USB从设备控制器,这样可以方便USB设备的使用。在设计开发一个USB外设的时候,主要需要编写三部分的程序:固件程序、USB驱动程序和客户应用程序。USB的电路连接图如图2-5 所示。
图2-5 USB电路连接图
USB接口的设备可以方便应用到嵌入式系统中,具有USB接口的优盘因为存储容量大,价格低,在嵌入式系统中一般可以用来存储数据。在门禁控制器中,可以用来存储初始化的资料数据也可以存储采集到的重要数据,方便用户的保存和修改。另外,本系统中应用到的视频监控就用到了USB接口的摄像头。
2.3 界面显示接口模块设计
LCD(Liquid Crystal Display)称为液晶。LCD显示器的基本工作原理是通过给不同的液晶单元供电,控制其光线的通过与否,从而达到显示的目的。因此,LCD的驱动控制器是对每个液晶单元的通电的控制。液晶工作时使用的是外部的光线,其光线照明方式有两种:传送式和反射式。由于液晶自己本身并不发光,所以与CRT相比,液晶显示器的耗电量较低。
本系统选用传送式背光(CCFL)彩色STN液晶屏,LCD的控制器使用S3C2410的内部集成的控制器。系统选用5.7寸、320×240像素、256色的彩色LCD屏。其可提供4/8/12/16位颜色模式,电源操作范围宽(2.7v-5.5V),低功耗设计可满足系统省电的要求。 为了保证LCD正常工作,一定要保证硬件正确连接,S3C2410与STN-LCD屏的关键电路连接如2-6图所示。
图2-6 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 指纹识别模块设计
指纹采集器采集到指纹图像后,才能被计算机进行识别、处理,指纹图像的质量会直接影响到识别的精度以及指纹识别系统的处理速度,因此指纹采集技术是指纹识别系统的关键技术之一。因为指纹的表面积相对较小,日常生活中手指常常会受到磨损,所以获得优质的指纹细节图像是一项十分复杂的工作。目前主要使用的指纹采集技术有光学指纹采集技术,半导体指纹采集技术和超声波指纹采集技术。
光学指纹采集是历史久远、使用最广泛的技术,它是将手指放在光学镜片上,手指在内臵光源照射下,用棱镜将其投射在电荷耦合器件(CCD)上,进而形成脊线(指纹图像中具有一定宽度和走向的纹线)呈黑色、谷线(纹线之间的凹陷部分)呈白色的数字化的、可被指纹设备算法处理的多灰度指纹图像。优点是一定程度上适应温度的变异,较为廉价,可达到500DPI的较高分辨率,但存在要求足够大的尺寸,且过分干燥和过分油腻的手指也将使光学指纹产品的效果变坏的缺点。 半导体指纹采集技术又有硅电容指纹图像传感器、半导体压感应传感器和半导体温度感应传感器三种类型。最常见的指纹传感器是半导体指纹传感器,它通过电子度量来捕捉指纹,在半导体金属阵列上能结合大约100,O00个电容传感器,其外面是绝缘的表面。传感器阵列的每一点是一个金属电极,充当电容器的一极,按在传感面上的手指头的对应点则作为另一极,传感面形成两极之间的介电层。由于指纹的脊和谷相对于另一极之间的距离不同(纹路深浅的存在),导致硅表面电容阵列的各个电容值不同,测量并记录各点的电容值,就可以获得具有灰度级的指纹图像。
半导体指纹采集设备可以获得相当精确的指纹图像,分辨率可高达600DPI,并且指纹采集时不需要光学采集设备要求的较大面积的采集头。由于半导体芯片的体积小巧、功耗很低,可以集成到许多现有设备中,这是光学采集设备所无法比拟的。随着各种工艺技术的不断发展,芯片的防静电性能和耐用度也得到了很大的改善,现在许多指纹识别系统研发工作都采用半导体采集设备来进行。
本系统使用Veridicom公司的半导体指纹采集传感器FPS200,其核心技术是基于高可靠性硅传感器芯片设计。FPS200是Veridicom公司在吸收了己广泛应用的FPSll0系列传感器优点的基础上,推出的新一代指纹传感器。其表面运用Veridicom公司专利技术而制成,坚固耐用,可防止各种物质对芯片的划伤、腐蚀、磨损等,FPS200能承受超过8KV的静电放电(ESD),因此FPS200可应用在苛刻的环境下。FPS200采用CMOS技术,获取的图像为256×300像素,分辨率为500DPI(点每英寸)并且内臵8位高速A/D转换器,适合更复杂的手指,大大减低了误识率(FAR)和拒识率(FRR)。其内部控制逻辑如图2-7所示。
图2-7 FPS200内部逻辑图
3.指纹识别算法研究及实现
指纹识别技术的应用系统大致可以分为两类:即验证(Verification)和辨识(Identification)。验证就是通过把一个现场采集到的指纹与己经登记的指纹进行一对一的对比(1:1)来确认身份的过程。辨识则是把现场采集到的指纹同指纹数据库中的指纹逐一对比,从中找出与现场指纹相匹配的指纹,这也叫一对多匹配(1:N)。验证和辨识在对比算法和系统设计上各具技术特点。 所有的生物识别系统都包括如下几个处理过程:采集、对比和匹配。指纹识别处理也一样,它包括指纹图像采集、指纹图像预处理、特征提取及匹配等过程。指纹识别系统的结构如图3-1所示。
图3-1指纹识别系统结构
4.门禁控制系统软件设计
4.1 门禁控制系统总体软件设计
系统采用ARM和指纹识别模块实现基于Linux操作系统下TCP/IP的网络型门禁系统。系统中将门禁控制器作为服务器,以太网终端的上位机PC作为客户端。上位PC机可以对多个控制器通过局域网或互联网对其进行访问、查询和设臵,一个客户端可以登陆多个服务器,一个服务器也可以支持多个用户的并发访问。系统在完成门禁系统的功能的同时,还可以提供视频监控和报警的联动管理。
本文主要描述了系统指纹识别模块和视频监控两个方面。门禁控制器的程序流程如图4-1所示。
图4-1 门禁控制器程序流程图
开始初始化控制器,通过网卡AX88796向客户端发送联络数据包,等待客户端的回应,建立起控制器与客户端的联机工作。然后开启摄像头不断采集现场图像,将采集到的图像发送到客户端,客户端通过浏览器可以对现场进行实时监控。同时,系统等待键盘输入用户ID,并进行指纹采集,此时创建数据传输任务,将采集到的指纹图像数据和用户ID在SRAM中进行打包,然后发送至客户端,由客户端接收到的ID和指纹图像进行处理和对比,控制器创建数据接收任务,接收客户端返回的认证结果,并由控制器进行相应的显示和控制。在实际中,用户ID和指纹可以设臵成多种认证模式进行控制,增加用户ID有利于提高服务器的辨认对比的速度。
4.2 指纹图像采集
系统的指纹采集模块为SPI串口模块,指纹的采集工作由检测到手指中断开始的,系统检测到中断就会从串口发送一个字符控制FPS200开始采集。FPS200指纹采集采用分行方法对指纹图像进行采集和传输,其指纹采集流程图如下。
图4-2 指纹采集流程图
系统首先打开FPS200指纹采集仪,初始化系统寄存器,然后查询等待,在没有检测到手指时,FPS200处于睡眠状态,在检测到手指中断时,就可进行指纹的采集。
4.3 网络通信
4.3.1 TCP/IP协议
Linux支持多种不同的网络协议,TCP/IP是Linux系统中最健壮、速度最快和最可靠的部分。TCP/IP协议包括了各个层次上的众多协议,如ARP、IP、ICMP、TCP和UDP等。下面主要介绍网络编程中涉及到的传输层TCP和UDP协议,其中TCP协议是一个面向连接的传输层协议,它为网络上的两台主机的应用程序提供一个可靠的字节流传输通道。面向连接意味着两个使用TCP协议的应用程序在彼此交换数据前必须先建立一个TCP连接。UDP协议是一个不可靠、面向无连接的传输层协议,提供简单的端到端通信服务。UDP不能保证数据的可靠传输, 可能存在数据丢失和次序错误。因此,系统因为对数据要求高可靠性需选用提供可靠连接的TCP协议。
TCP对话通过三次握手来初始化的,三次握手的目的是使数据段的发送和接收同步,告诉其它主机其一次可接收的数据量,并建立连接。TCP实体所用的基本协议是滑动窗口协议,当发送方传送一个数据报时,它将启动计时器,当该数据报到达目的地后,接收方的TCP实体返向发送一个数据报,其中包含一个确认序号,意思是希望收到下一个数据报的顺序号。如果发送方定时器超时,那么发送方会重发该数据报。
通常应用程序通过打开一个SOCKET使用TCP服务,TCP管理到其它 SOCKET的数据传递。可以说,通过IP的源/目的可以唯一地区分网络中的两个设备的关联,通过SOCKET的源/目的可以唯一地区分网络中两个应用程序的关联。因此,系统中门禁控制器作为服务器与外部的监控客户端的通信均可由SOCKET编程来完成。
4.3.2 系统网络通信软件设计
系统是通过SOCKET套接口来进行网络编程,套接口地址的格式是一个IP地址和一个端口号,套接口是进程间通信的端点,每个套接口的名字都是唯一的,所以依靠套接口来确定整个以太网域中的一个网络进程。SOCKET接口是TCP/IP网络中的API,SOCKET编程的基本模式是Client/Server。即由客户机向服务器发出请求,服务器执行被请求的任务并将响应的结构返回给客户端程序。
SOCKET是TCP/IP协议传输层所提供的接口,供用户编程访问网络资源,它是使用标准的Unix文件描述符(file descriptor)和其它程序通信的方式。SOCKET描述符是一个指向内部数据结构的指针,可以将这个描述符看成普通的文件描述符来读写操作实现网络之间的数据交流,这就是Linux设备的无关性。按其应用,SOCKET套接口主要有流式套接字(Stream Socket)和数据报套接字(Datagram Socket)两种,在系统中采用TCP协议传输数据,采用流式套接字。
系统中的将门禁控制器作为服务器,以太网终端的上位机作为客户端。系统中TCP/IP协议SOCKET编程流程如图4-3所示。
图4-3 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.sin_port=htons(myport);//设臵服务器监听端口
(3)调用bind(s,(struct sockaddr*)sin,sizeof(sin))函数将其与本机地址以及一个本地端口号绑定,若绑定其它地址则不能成功。另外,它主要用于TCP的连接,而在UDP的连接中则无必要。
(4)调用listen(s,5)函数在相应的Socket号上监听。
(5)调用ns=accept(s,NULL,NULL)函数,睡眠并等待客户的连接请求,当accept函数接收到一个连接服务请求时,将生成一个新的Socket号,并通过新的socket号来发送图像信息。
(6)调用recv()函数接收客户端的请求,调用send()函数向客户端发送数据。
(7)当所有的数据操作结束以后:调用close()函数来释放Socket。
4.3.3 GoAhead嵌入式Web服务器
随着Internet技术的兴起,在嵌入式设备的管理与交互中,基于Web方式的应用成为目前的主流。嵌入式Web服务器是指将Web服务器引入现场测试和控制设备中,在相应的硬件平台和软件系统的支持下,使传统的测试和控制设备转变为具备了以TCP/IP为底层通信协议和以Web技术为核心的基于互联网的网络测试和控制设备。目前用得较多的Web服务器主要有thttpd、shttpd、boa、appweb以及goAhead等。
在嵌入式系统中,由于处理器的运行速度、存储容量和内存等的限制,使用嵌入式Web服务器可以节约系统资源,为用户远程访问、管理和控制提供支持,并可以实现用户的分级访问。系统采用goAhead作为Web服务器,用户可以通过Form、CGI等应用程序实现交互。
GoAhead Web Server是GoAhead公司推出的一个功能强大源码免费,并可以运行在多个平台上的嵌入式W曲服务器。GoAhead Webserver的主要功能特点有:很小的内存消耗、支持安全的通信、支持动态Web页面,如ASP页面、可以使用传统的C语言编程定制Web页面里的HTML标签、支持CGI、嵌入式的JavaScript脚本翻译器以及独特的URL分析器。当前的最新版本是GoAhead WebServer 2.1.8。GoAhead无须安装,只需要将GoAhead的源码软件包拷贝到Linux文件系统中的任何目录中即可,修改Makenle的相关内容,通过交叉编译, 在源代码目录中的LINUX文件夹下已经存在了GoAhead的可执行文件webs,在门禁控制器服务器端运行。/webs就开户了系统的服务器。
系统在PC机客户端的Windows平台上基于TCP/IP协议用VC++开发了客户端的程序,通过客户端程序可以通过以太网与门禁控制器的GoAhead Web Server通信并实现门禁系统的管理。
5.结论
随着数字化和网络化的发展,智能门禁系统是未来安防监控系统的发展趋势。安全可靠、方便易用的门禁系统在企业银行、智能小区等门禁和考勤领域具有较强的实用价值和推广性。本课题设计开发了一种基于ARM9处理器和指纹识别技术的以太网门禁控制系统。在ARM-Linux的基础上,研究了指纹采集和视频采集模块、网络传输模块以及自动指纹识别算法。总结起来,本文主要做了下面的一些工作:
(1)论述了门禁系统在国内外发展现状及其在未来的发展方向,指出了本课题的研究背景和意义,介绍了一种基于ARM的指纹识别以太网门禁控制系统。
(2)给出了联网型指纹识别的门禁系统的总体设计原则、功能特点和总体硬件框图。重点论述了系统使用的各个重要模块设计的硬件资源,主要包括USB摄像头;LCD显示模块;网络通信模块;指纹识别模块等。
(3)研究了指纹识别算法,包括指纹图像预处理以及指纹图像的特征提取和匹配两部分。文中主要对指纹图像分割做出了一些改进,结合指纹图像灰度方差和梯度设臵一个合适的局部阈值对指纹进行分割,提出了一种指纹图像的局部阈值分割方法,该算法提高了指纹分割的精确度和适应性。然后参考其它的算法介绍了一个整体的自动指纹识别算法。
(4)阐述了门禁控制系统软件的总体设计,然后分别阐述了系统中软件编程中重要的几个方面:使用Video4Linux编程采集图像、指纹图像的采集、GoAhead web server的应用以及系统运用TCP/IP实现系统门禁控制器和上位机PC之间的网络通信。