基于ARM9与Linux的门禁监控系统软件设计
门禁,又称出入管理控制系统,是一种管理人员进出的数字化管理系统。目前,随着工业自动化的发展和人们对应用需求的不断提高,门禁监控系统得到了越来越多的应用,但传统的门禁监控系统一般采用门禁控制和视频图片摄录相分离的实现办法,这给现场布线带来了很多的不便,同时其成本也会大大提高。
在该方案中提到的基于ARM9与Linux的嵌入式门禁监控系统集门禁控制和图片摄录功能于一体,并详细描述了其系统的软件设计。
本门禁系统使用B/S软件架构,采用嵌入式服务器boaserver,结合CGI技术,嵌入式数据库以及嵌入式图形库来实现门禁系统的需求。
1 系统工作原理及组成
1.1 系统工作原理
本门禁监控系统采用B/S架构(Browser/Server,浏览器/服务器模式),基于B/S架构工作的门禁监控系统首先是一个具有以太网接口的门禁控制器;其次,这个门禁控制器内置了以太网TCP/IP协议和WEB服务程序;用户在系统连接时可以把门禁控制器看作是一台带有宽带网络接口的计算机,将其直接接入到网络交换机上。用户进行门禁管理时不需要安装任何附加的软件,直接通过浏览器就可以实现对门禁系统的管理,操作方便简洁。
1.2 系统组成
如图1所示,系统服务器端由基于ARM9的门禁控制器、读卡器、电锁、前端摄像头等组成,当有人员进出大门刷卡时,读卡器就能感应到有卡并将卡中的信息发送到门禁控制器,门禁控制器进行卡合法性检查,通过读取用户数据库,查看此卡号是否有对应的持卡人信息,如果存在的话,则检查此卡对应的权限信息,一切匹配成功后,决定是否进行开门动作。从而保证了系统的安全性。此时门禁控制器进行的操作还有图像摄录操作,即在开门动作的同时通过前端的摄像头摄录图片,传送到相应的存储设备,供用户访问。
客户端可以通过浏览器远程对门禁控制器即服务器端进行访问及相应的权限操作,可实现用户信息录入及授权管理,硬件设置,出入图像监控,房门开启,数据浏览等功能。图1为系统结构模型。
2 门禁控制器硬件设计
本系统采用ATMEL公司的AT91RM9200(以下简称9200)作为MCU,该处理器基于ARM920T内核,工作主频为180MHz,性能可达到200 MI/S,系统采用开源的LINUX OS。内核版本为2.6.25,系统采用1片Nor-Flash,容量为64 MB,2片SDRAM,容量分别为32 MB。如图2所示,本门禁控制器以ARM9200为核心,同时连接的还有LCD控制器,可连接显示屏,方便用户调试。另外,本门禁系统最多可连接256台读卡器及对应摄像头。系统硬件组成示意图如图2所示。
3 系统软件架构设计
整个系统分为前后台两部分,后台监控程序会时刻监控读卡器是否有刷卡信息,并对刷卡信息作出响应,前台则通过boa服务器调用CGI服务程序响应客户端访问请求。系统功能模型如图3所示。
3.1 前台设计
系统前台主要由运行在门禁控制器上的boa Server服务器和CGI服务程序构成,boa server会时刻监视是否有远程用户的访问,当有客户端访问请求到达后,会通过boa server配置文件到相应目录下去调用对应的CGI服务程序,在处理完成后,boa server将处理结果返回给客户端。
3.1.1 CGI简介及工作原理
CGI全称是"通用网关接口"(Colnnlon Gateway Interface),是一种基于浏览器的输入并在Web服务器上运行的程序方法。
CGI的工作原理,首先浏览器通过HTML表单或超链接请求指上一个CGI应用程序的URL。服务器接收收到请求后,执行所指定的CGI应用程序。CGI应用程序执行所需要的操作(通常是基于浏览者输入的内容),并把结果格式化为网络服务器和浏览器能够理解的文档(通常是HTML网页)。最后,网络服务器把结果返回到浏览器中。
3.1.2 嵌入式服务器boa server
boa Server是一种小型单任务嵌入式服务器,支持CGI,可执行代码只有60 kB左右,体积小,速度快,安全性好,能够满足本项目的开发。boa服务器需要交叉编译为可在ARM平台下运行的程序。在pc环境下,运用交叉编译器arm-linux-gcc对boa server进行交叉编译后,需要修改其配置文件boa.conf,关键配置有创建日志文件所在目录,创建HTML文档的主目录,将静态网页存入该目录下,创建CGI脚本所在目录,将cgi的脚本存放在该目录下。
3.2 后台设计
当系统运行后,门禁控制器会一直运行主监控程序,主监控程序存在两种工作方式,分别为调试模式和监控模式。
3.2.1 调试模式
在调试模式下,可以对门禁控制器进行一些基本的设置:包括有门禁控制器的IP设置,系统管理员用户名及密码设置,卡权限设置等操作,在此部分,需要配合图形环境方便调试,本系统采用minigui嵌入式图形库。
MiniGUI下的通讯是一种类似于Win32的消息机制,是由某公司开发的自由软件,遵循LGPL协议,可以为嵌入式linux系统建立的一个快速,稳定和轻量级的图形用户界面支持系统。
3.2.2 监控模式
在工作模式下,后台驻留程序会时刻监视是否有刷卡信息,在检测到刷卡信息后,后台驻留程序通过访问数据库进行卡信息的比对,只有当比对通过后,方可进行门打开动作。
由于在开门的同时,需要保存图片至数据库,而此时,可能会存在客户端对系统存储图片的访问,这会造成对相同数据库的访问冲突,所以系统在接收到客户端访问系统存储图片请求的时候,前端CGI服务程序通过命名管道的进程间通信方式和后台监控程序通信,以获得数据库访问句柄,在客户端访问结束后,前端CGI服务程序会释放数据库句柄。
本系统中由于涉及到频繁的数据库存取操作,基于ARM9的硬件平台,选用数据库为Berkeley DB数据库,Berkeley DB是历史悠久的嵌入式数据库系统,主要应用在UNIX/LINUX操作系统上,其设计思想是简单、小巧、可靠、高性能,满足本系统的需求。
- 基于ARM9+Linux的门禁监控系统设计(01-04)
- 革新2410D开发板试用手记(04-21)
- 嵌入式Win CE中CAN总线控制器的驱动设计与实现(05-01)
- 嵌入式Web服务器移植与测试(03-03)
- 嵌入式Linux下基于ARM9的媒体播放的设计(03-27)
- SamsungS3C2440平台上的VxworksBSP移植(10-28)