引言
随着社会经济的快速发展,人们对室内人身财产安全要求越来越高,门禁系统作为智能建筑安防自动化体系中必不可少的一部分[1],发挥着极其重要的作用。当前常见的门禁系统包括:密码锁门禁系统、感应式IC卡门禁系统、基于电话短信方式的门禁系统以及生物特征识别门禁系统等。
随着科技的不断进步和人们生活水平的不断提高,移动智能终端越来越普及,包括智能手机、平板电脑等。为此,本文研究设计了一种基于嵌入式ARMLinux平台,并将用户已有的移动智能终端设备作为用户身份凭证的无线WiFi门禁系统。
1门禁系统总体结构
移动智能终端门禁系统主要由移动智能终端、门禁装置、控制部件(电锁)和PC终端组成。系统总体拓扑示意图如图1所示。
根据门禁系统的实际需求,系统每个部分的构成和功能略——编者注。
2系统硬件设计
门禁系统的硬件主要由门禁装置构成。门禁装置硬件采用S3C6410核心板,外围搭建相应功能的模块电路,包括无线WiFi模块、以太网模块、继电器控制模块和门禁UPS电源模块,外部接口主要有UART异步串口、10/100M网络接口、USB接口。系统硬件组成框图如图2所示。
(1) S3C6410核心板
核心板采用三星公司S3C6410核心处理器,该处理器是一款基于ARM11内核的低功耗、高性价比的RSIC处理器。
(2)无线WiFi模块
本系统的无线WiFi模块采用了腾达公司的150M高速无线USB网卡,该网卡采用RT3070网卡芯片,其与核心板之间主要通过USB接口来实现协议和数据交换,无线WiFi模块的接口电路按照相关协议进行设计。
(3) UPS电源模块
电源模块是整个系统的能源动力机构,所以良好的电源供给是系统稳定运行的前提,本系统电源主要有12 V、5 V和3.3 V三种,为了使门禁装置在意外掉电后仍能正常工作,针对门禁系统的前级12 V电源模块采用UPS技术进行设计。其设计电路图如图3所示。
(4) 继电器控制模块
房门的控制信号是简单的开关量信号,所以本系统采用控制器输出I/O信号驱动继电器实现开门。为保障房门不受单一I/O口信号的误动作被打开,开门使能信号采用两个I/O输出不同电平(一高一低),经过同或门CD4077才能驱动硬件装置板上的光耦隔离开关,从而控制电锁开门。继电器控制模块电路如图4所示。
3系统软件设计
系统软件主要由门禁装置服务器软件和用户移动智能终端门禁APP两个部分组成。其中门禁装置服务器软件平台采用嵌入式Linux系统,内核版本为3.0.1,具有体积小、效率高、网络功能稳定的特性,同时Linux平台上很多开源软件支持移植和二次开发。门禁装置服务器软件包括:无线WiFi热点的开发、门禁数据库设计、后台服务器程序设计以及门禁WEB数据管理系统设计。而用户移动智能终端软件主要是基于Android系统的智能终端设备开发门禁应用程序。
3.1无线WiFi热点开发
门禁装置作为门禁系统的服务器,需要实现无线路由的基本功能,为客户机移动智能终端提供稳定的网络热点。本系统开发的WiFi热点不受外部网络的影响,采用无线USB网卡实现,让无线网卡工作在Master模式下,使门禁装置成为无线接入点AP,提供无线接入服务和路由功能。门禁装置无线WiFi热点的开发主要包括:网卡驱动移植、网络热点认证服务器软件HOSTAP的移植、动态分配IP协议服务器软件DHCP的移植,具体过程略——编者注。其中对应的驱动源码包都可利用网络资源获取。
3.2门禁数据库的设计
3.2.1移植嵌入式数据库SQLite3
要在门禁Linux系统下建立门禁数据库,需要嵌入式数据库的支持。数据库SQLite是一款基于嵌入式平台开发的轻型数据库,在很多嵌入式产品中都使用了SQLite数据库。它占用资源非常少,在嵌入式设备中可能只需要几百K的内存就够了[10],支持Windows/Linux/Unix等操作系统,并且能够和很多程序语言相结合,比如TCL、C#、PHP、Java等;且有ODBC接口,比起MySQL、PostgreSQL这两款数据库管理系统,它的处理速度更快[12]。本系统开发采用的是SQLite3数据库。
3.2.2设计门禁数据库
门禁数据库主要是用来存储门禁用户基本信息、移动智能终端设备信息和门禁日志的,根据实际需求,在门禁数据库中,对应的实体有:用户实体、移动智能终端设备实体、系统配置信息实体、日志实体。设计的门禁系统数据库的ER图如图5所示。
根据数据库的需求分析和ER图,利用SQLIT3建立数据库文件存储门禁系统的基本信息,使用SQL语句建立4个表:用户基本信息表、移动智能终端设备信息表、门禁系统功能信息表、门禁日志基本信息表。
3.3门禁后台服务器程序设计
门禁后台服务器程序主要完成以下方面的功能:接受
用户移动智能终端设备的连接请求、获取智能终端设备的MAC地址和MEID移动设备识别码、获取用户发送的字符串信息(“动作命令#房门标签#设备MAC+MEID地址#设备类型”)、提取和分割字符串信息、进行数据库查询用户权限信息、进行用户设备注册、写门禁日志记录和发送开门信号等。
本门禁系统后台服务器程序的开发主要采用基于Linux系统C++的Socket网络编程,服务器监听端口为5 000,由于门禁服务器在同一时刻需要接收多个客户机的服务请求,所以采用Linux多线程编程技术解决多用户、多任务的需求。门禁后台服务器程序流程图略——编者注。
3.4门禁WEB数据管理系统设计
为了节约成本和降低系统功耗,门禁装置没有开发相应的显示器,而是在其ARMLinux平台上搭建WEB服务器,并编写相应的后台网页程序,这样门禁管理员就可以通过PC浏览器接口对门禁数据库进行有效的管理。
3.4.1搭建WEB服务器
目前,在Linux系统中大多采用Apache服务器、PHP网页编程和MySQL的组合方式来搭建WEB服务器,但由于Apache和MySQL本身运行占用的系统内存和资源就很大[10],而嵌入式ARM的存储空间一般都是很有限的,所以这种组合方式不适用于本系统的WEB服务器搭建。因此选择对系统资源要求较低且功能相当的APPWEB和SQLite3来代替Apache与MySQL,最终利用APPWEB、PHP5和SQLite3三者的组合构建门禁装置的WEB服务器。
3.4.2开发门禁系统管理网站
为了方便门禁管理员管理门禁系统,采用PHP结合C++语言操作数据库的方式,编写相应的动态网页程序,其中包括门禁管理平台的登录网页、用户管理页面、移动智能终端管理页面、系统配置页面以及管理人员的个人信息页面、门禁日志页面等。
3.5Android移动智能终端门禁应用程序设计
在门禁系统工作过程中,用户的移动智能终端设备主要完成连接门禁装置网络热点和向门禁服务器发送相应的命令信息,实现注册和完成开门操作。本系统基于Android系统的移动智能终端设备开发了一个门禁APP应用程序,在整个门禁系统的通信中,用户的手机作为客户机,通过使用Java语言结合网络套接字编程来实现与门禁服务器之间的数据传递。程序设计流程图略——编者注。
4系统测试
按照系统的设计思想,完成了门禁系统的软硬件设计,门禁系统软硬件略——编者注。
(1) 门禁WiFi热点测试
实际测试中,将笔记本电脑连接到门禁装置WiFi热点,通过查看无线网络连接状态可以得到无线网络的信号质量、网卡速度,通过Windows内置的“Ping”命令可以测试无线网络的速度。
在笔记本Windows的DOS下键入命令“Ping 192.168.1.10(门禁装置服务器IP)”,通过“Ping”命令测试得到的无线网络参数略——编者注。从图中可以看出发送了4个数据包,接收到的也是4个数据包,所以数据丢失率为0%,数据包环绕航行(发送到接收再到确认)时间最多为6 ms,最少为1 ms,平均用时2 ms,说明网络质量很好。
(2) 系统稳定性测试
为测试本门禁系统的实用性和稳定性,将其在西南科技大学计算机科学与技术学院部分实验室投入使用,安装使用到如今,系统各部分软硬件运行稳定,而且门禁装置安装简便,用户也不用配备额外的开门设备,利用自己的移动智能终端设备(如手机)就可以安全开门,因此深得用户的好评。
结语
基于ARMLinux的移动智能终端门禁系统,采用ARMLinux嵌入式平台,利用无线WiFi通信方式,整合了用户移动智能终端设备,将门禁数据库中用户的基本信息(姓名、性别、ID等)同移动智能终端设备进行绑定,并基于Android的移动智能终端设备开发门禁应用程序实现开门,同时为方便门禁系统的管理,开发了相应的门禁数据WEB管理系统。