新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于ARM9+Linux的門禁監(jiān)控系統(tǒng)設計

基于ARM9+Linux的門禁監(jiān)控系統(tǒng)設計

作者: 時間:2013-01-04 來源:網絡 收藏

系統(tǒng)硬件組成示意圖

圖2 系統(tǒng)硬件組成示意圖

  3 系統(tǒng)軟件架構設計

  整個系統(tǒng)分為前后臺兩部分,后臺監(jiān)控程序會時刻監(jiān)控讀卡器是否有刷卡信息,并對刷卡信息作出響應,前臺則通過boa服務器調用CGI服務程序響應客戶端訪問請求。系統(tǒng)功能模型如圖3所示。

基于ARM9+Linux的門禁監(jiān)控系統(tǒng)設計

圖3 系統(tǒng)功能模型

  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協(xié)議,可以為嵌入式linux系統(tǒng)建立的一個快速,穩(wěn)定和輕量級的圖形用戶界面支持系統(tǒng)。

  3.2.2 監(jiān)控模式

  在工作模式下,后臺駐留程序會時刻監(jiān)視是否有刷卡信息,在檢測到刷卡信息后,后臺駐留程序通過訪問數據庫進行卡信息的比對,只有當比對通過后,方可進行門打開動作。

  由于在開門的同時,需要保存圖片至數據庫,而此時,可能會存在客戶端對系統(tǒng)存儲圖片的訪問,這會造成對相同數據庫的訪問沖突,所以系統(tǒng)在接收到客戶端訪問系統(tǒng)存儲圖片請求的時候,前端CGI服務程序通過命名管道的進程間通信方式和后臺監(jiān)控程序通信,以獲得數據庫訪問句柄,在客戶端訪問結束后,前端CGI服務程序會釋放數據庫句柄。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


評論


相關推薦

技術專區(qū)

關閉