門禁,又稱出入管理控制系統(tǒng),是一種管理人員進(jìn)出的數(shù)字化管理系統(tǒng)。目前,隨著工業(yè)自動(dòng)化的發(fā)展和人們對(duì)應(yīng)用需求的不斷提高,門禁監(jiān)控系統(tǒng)得到了越來越多的應(yīng)用,但傳統(tǒng)的門禁監(jiān)控系統(tǒng)一般采用門禁控制和視頻圖片攝錄相分離的實(shí)現(xiàn)辦法,這給現(xiàn)場(chǎng)布線帶來了很多的不便,同時(shí)其成本也會(huì)大大提高。
在該方案中提到的基于ARM9與Linux的嵌入式門禁監(jiān)控系統(tǒng)集門禁控制和圖片攝錄功能于一體,并詳細(xì)描述了其系統(tǒng)的軟件設(shè)計(jì)。
本門禁系統(tǒng)使用B/S軟件架構(gòu),采用嵌入式服務(wù)器boaserver,結(jié)合CGI技術(shù),嵌入式數(shù)據(jù)庫(kù)以及嵌入式圖形庫(kù)來實(shí)現(xiàn)門禁系統(tǒng)的需求。
1 系統(tǒng)工作原理及組成
1.1 系統(tǒng)工作原理
本門禁監(jiān)控系統(tǒng)采用B/S架構(gòu)(Browser/Server,瀏覽器/服務(wù)器模式),基于B/S架構(gòu)工作的門禁監(jiān)控系統(tǒng)首先是一個(gè)具有以太網(wǎng)接口的門禁控制器;其次,這個(gè)門禁控制器內(nèi)置了以太網(wǎng)TCP/IP協(xié)議和WEB服務(wù)程序;用戶在系統(tǒng)連接時(shí)可以把門禁控制器看作是一臺(tái)帶有寬帶網(wǎng)絡(luò)接口的計(jì)算機(jī),將其直接接入到網(wǎng)絡(luò)交換機(jī)上。用戶進(jìn)行門禁管理時(shí)不需要安裝任何附加的軟件,直接通過瀏覽器就可以實(shí)現(xiàn)對(duì)門禁系統(tǒng)的管理,操作方便簡(jiǎn)潔。
1.2 系統(tǒng)組成
如圖1所示,系統(tǒng)服務(wù)器端由基于ARM9的門禁控制器、讀卡器、電鎖、前端攝像頭等組成,當(dāng)有人員進(jìn)出大門刷卡時(shí),讀卡器就能感應(yīng)到有卡并將卡中的信息發(fā)送到門禁控制器,門禁控制器進(jìn)行卡合法性檢查,通過讀取用戶數(shù)據(jù)庫(kù),查看此卡號(hào)是否有對(duì)應(yīng)的持卡人信息,如果存在的話,則檢查此卡對(duì)應(yīng)的權(quán)限信息,一切匹配成功后,決定是否進(jìn)行開門動(dòng)作。從而保證了系統(tǒng)的安全性。此時(shí)門禁控制器進(jìn)行的操作還有圖像攝錄操作,即在開門動(dòng)作的同時(shí)通過前端的攝像頭攝錄圖片,傳送到相應(yīng)的存儲(chǔ)設(shè)備,供用戶訪問。
圖1 系統(tǒng)結(jié)構(gòu)模型
客戶端可以通過瀏覽器遠(yuǎn)程對(duì)門禁控制器即服務(wù)器端進(jìn)行訪問及相應(yīng)的權(quán)限操作,可實(shí)現(xiàn)用戶信息錄入及授權(quán)管理,硬件設(shè)置,出入圖像監(jiān)控,房門開啟,數(shù)據(jù)瀏覽等功能。圖1為系統(tǒng)結(jié)構(gòu)模型。
2 門禁控制器硬件設(shè)計(jì)
本系統(tǒng)采用ATMEL公司的AT91RM9200(以下簡(jiǎn)稱9200)作為MCU,該處理器基于ARM920T內(nèi)核,工作主頻為180MHz,性能可達(dá)到200 MI/S,系統(tǒng)采用開源的LINUX OS。內(nèi)核版本為2.6.25,系統(tǒng)采用1片Nor-Flash,容量為64 MB,2片SDRAM,容量分別為32 MB。如圖2所示,本門禁控制器以ARM9200為核心,同時(shí)連接的還有LCD控制器,可連接顯示屏,方便用戶調(diào)試。另外,本門禁系統(tǒng)最多可連接256臺(tái)讀卡器及對(duì)應(yīng)攝像頭。系統(tǒng)硬件組成示意圖如圖2所示。
圖2 系統(tǒng)硬件組成示意圖
3 系統(tǒng)軟件架構(gòu)設(shè)計(jì)
整個(gè)系統(tǒng)分為前后臺(tái)兩部分,后臺(tái)監(jiān)控程序會(huì)時(shí)刻監(jiān)控讀卡器是否有刷卡信息,并對(duì)刷卡信息作出響應(yīng),前臺(tái)則通過boa服務(wù)器調(diào)用CGI服務(wù)程序響應(yīng)客戶端訪問請(qǐng)求。系統(tǒng)功能模型如圖3所示。
圖3 系統(tǒng)功能模型
3.1 前臺(tái)設(shè)計(jì)
系統(tǒng)前臺(tái)主要由運(yùn)行在門禁控制器上的boa Server服務(wù)器和CGI服務(wù)程序構(gòu)成,boa server會(huì)時(shí)刻監(jiān)視是否有遠(yuǎn)程用戶的訪問,當(dāng)有客戶端訪問請(qǐng)求到達(dá)后,會(huì)通過boa server配置文件到相應(yīng)目錄下去調(diào)用對(duì)應(yīng)的CGI服務(wù)程序,在處理完成后,boa server將處理結(jié)果返回給客戶端。
3.1.1 CGI簡(jiǎn)介及工作原理
CGI全稱是“通用網(wǎng)關(guān)接口”(Colnnlon Gateway Interface),是一種基于瀏覽器的輸入并在Web服務(wù)器上運(yùn)行的程序方法。
CGI的工作原理,首先瀏覽器通過HTML表單或超鏈接請(qǐng)求指上一個(gè)CGI應(yīng)用程序的URL。服務(wù)器接收收到請(qǐng)求后,執(zhí)行所指定的CGI應(yīng)用程序。CGI應(yīng)用程序執(zhí)行所需要的操作(通常是基于瀏覽者輸入的內(nèi)容),并把結(jié)果格式化為網(wǎng)絡(luò)服務(wù)器和瀏覽器能夠理解的文檔(通常是HTML網(wǎng)頁)。最后,網(wǎng)絡(luò)服務(wù)器把結(jié)果返回到瀏覽器中。
3.1.2 嵌入式服務(wù)器boa server
boa Server是一種小型單任務(wù)嵌入式服務(wù)器,支持CGI,可執(zhí)行代碼只有60 kB左右,體積小,速度快,安全性好,能夠滿足本項(xiàng)目的開發(fā)。boa服務(wù)器需要交叉編譯為可在ARM平臺(tái)下運(yùn)行的程序。在pc環(huán)境下,運(yùn)用交叉編譯器arm-linux-gcc對(duì)boa server進(jìn)行交叉編譯后,需要修改其配置文件boa.conf,關(guān)鍵配置有創(chuàng)建日志文件所在目錄,創(chuàng)建HTML文檔的主目錄,將靜態(tài)網(wǎng)頁存入該目錄下,創(chuàng)建CGI腳本所在目錄,將cgi的腳本存放在該目錄下。
3.2 后臺(tái)設(shè)計(jì)
當(dāng)系統(tǒng)運(yùn)行后,門禁控制器會(huì)一直運(yùn)行主監(jiān)控程序,主監(jiān)控程序存在兩種工作方式,分別為調(diào)試模式和監(jiān)控模式。
3.2.1 調(diào)試模式
在調(diào)試模式下,可以對(duì)門禁控制器進(jìn)行一些基本的設(shè)置:包括有門禁控制器的IP設(shè)置,系統(tǒng)管理員用戶名及密碼設(shè)置,卡權(quán)限設(shè)置等操作,在此部分,需要配合圖形環(huán)境方便調(diào)試,本系統(tǒng)采用minigui嵌入式圖形庫(kù)。
MiniGUI下的通訊是一種類似于Win32的消息機(jī)制,是由某公司開發(fā)的自由軟件,遵循LGPL協(xié)議,可以為嵌入式linux系統(tǒng)建立的一個(gè)快速,穩(wěn)定和輕量級(jí)的圖形用戶界面支持系統(tǒng)。
3.2.2 監(jiān)控模式
在工作模式下,后臺(tái)駐留程序會(huì)時(shí)刻監(jiān)視是否有刷卡信息,在檢測(cè)到刷卡信息后,后臺(tái)駐留程序通過訪問數(shù)據(jù)庫(kù)進(jìn)行卡信息的比對(duì),只有當(dāng)比對(duì)通過后,方可進(jìn)行門打開動(dòng)作。
由于在開門的同時(shí),需要保存圖片至數(shù)據(jù)庫(kù),而此時(shí),可能會(huì)存在客戶端對(duì)系統(tǒng)存儲(chǔ)圖片的訪問,這會(huì)造成對(duì)相同數(shù)據(jù)庫(kù)的訪問沖突,所以系統(tǒng)在接收到客戶端訪問系統(tǒng)存儲(chǔ)圖片請(qǐng)求的時(shí)候,前端CGI服務(wù)程序通過命名管道的進(jìn)程間通信方式和后臺(tái)監(jiān)控程序通信,以獲得數(shù)據(jù)庫(kù)訪問句柄,在客戶端訪問結(jié)束后,前端CGI服務(wù)程序會(huì)釋放數(shù)據(jù)庫(kù)句柄。
本系統(tǒng)中由于涉及到頻繁的數(shù)據(jù)庫(kù)存取操作,基于ARM9的硬件平臺(tái),選用數(shù)據(jù)庫(kù)為Berkeley DB數(shù)據(jù)庫(kù),Berkeley DB是歷史悠久的嵌入式數(shù)據(jù)庫(kù)系統(tǒng),主要應(yīng)用在UNIX/LINUX操作系統(tǒng)上,其設(shè)計(jì)思想是簡(jiǎn)單、小巧、可靠、高性能,滿足本系統(tǒng)的需求。
4 系統(tǒng)軟件功能模塊設(shè)計(jì)
4.1 用戶信息錄入及授權(quán)管理
用戶信息錄入及授權(quán)管理由具有管理員權(quán)限的用戶設(shè)置,在客戶端,具有管理員權(quán)限的用戶通過瀏覽器輸入管理員用戶名及密碼,發(fā)送至門禁控制器,門禁控制器在接受到請(qǐng)求后,通過調(diào)用相應(yīng)的CGI服務(wù)程序,檢驗(yàn)權(quán)限是否合法,確定合法后,進(jìn)入下一級(jí)頁面,在此頁面可以完成用戶信息錄入及授權(quán)管理。
主要完成的功能有錄入用戶個(gè)人信息,及與特定卡綁定,同時(shí)授予其卡的權(quán)限,在用戶刷卡開門的時(shí)候,首先檢查卡是否有對(duì)應(yīng)的持卡人信息以及持卡人信息是否與系統(tǒng)定義的格式吻合,這樣可以防止非法卡的使用。如果這一步匹配成功的話,接下來檢查的是卡所對(duì)應(yīng)的權(quán)限信息,包括有此卡可以控制哪些大門的開啟及在哪些時(shí)間段可以控制。
4.2 數(shù)據(jù)瀏覽
系統(tǒng)注冊(cè)用戶可以在客戶端瀏覽系統(tǒng)授權(quán)信息,同時(shí)只有管理員權(quán)限的用戶才可以對(duì)系統(tǒng)注冊(cè)用戶進(jìn)行刪除。
4.3 硬件設(shè)置
管理員用戶可以在客戶端對(duì)門禁控制器系統(tǒng)進(jìn)行遠(yuǎn)程測(cè)試和設(shè)置。分別為根據(jù)門禁控制器地址檢測(cè)控制器狀態(tài),對(duì)門禁控制器設(shè)置當(dāng)前時(shí)間和星期,讀取當(dāng)前控制器時(shí)間,開門延時(shí),手動(dòng)開門,編輯和讀取設(shè)備名稱,清空授權(quán)文件,清空刷卡記錄等功能。
4.4 圈像監(jiān)控
當(dāng)持卡人在進(jìn)行大門開啟的時(shí)候,門禁控制器會(huì)將合法的刷卡信息記錄如數(shù)據(jù)庫(kù),并將刷卡瞬間的圖像保存為jpg圖片存入門禁控制器的存儲(chǔ)設(shè)備中,系統(tǒng)注冊(cè)用戶可以在客戶端通過瀏覽器,對(duì)門禁控制器所保存的圖片進(jìn)行瀏覽。系統(tǒng)日志界面如圖4所示。
圖4 系統(tǒng)日志界面
4.5 后臺(tái)服務(wù)
門禁控制器啟動(dòng)后,通過持續(xù)檢測(cè)讀卡器是否有信號(hào)以驗(yàn)證是否需要進(jìn)行大門的開啟,當(dāng)檢測(cè)到讀卡器有刷卡消息時(shí),通過讀取卡內(nèi)信息,調(diào)用相應(yīng)數(shù)據(jù)庫(kù)進(jìn)行匹配,若匹配成功,則一方面攝錄此刻圖像,保存到數(shù)據(jù)庫(kù)相應(yīng)目錄,房門打開;若不成功,則發(fā)出報(bào)警信號(hào),操作者無法打開房門。
5 結(jié)束語
門禁監(jiān)控系統(tǒng)有效保障了企事業(yè)單位的安全。基于ARM9與linux的嵌入式門禁監(jiān)控系統(tǒng)具有穩(wěn)定、可配置的特性,支持基于Internet的數(shù)據(jù)傳輸,系統(tǒng)采用B/S架構(gòu)體系,用戶通過瀏覽器訪問系統(tǒng)的工作方式。該方案詳細(xì)敘述了實(shí)現(xiàn)此門禁監(jiān)控系統(tǒng)的軟件思想,并對(duì)實(shí)現(xiàn)過程進(jìn)行了詳細(xì)的描述。目前,該方案在生產(chǎn)和科研中已經(jīng)投入使用。隨著嵌入式技術(shù)的發(fā)展,門禁監(jiān)控系統(tǒng)的性能會(huì)得到更進(jìn)一步地提高。