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之间的网络通信。
评论