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