4.門禁控制系統軟件設計
4.1 門禁控制系統總體軟件設計
系統采用ARM和指紋識別模塊實現基于Linux操作系統下TCP/IP的網絡型門禁系統。系統中將門禁控制器作為服務器,以太網終端的上位機PC作為客戶端。上位PC機可以對多個控制器通過局域網或互聯網對其進行訪問、查詢和設臵,一個客戶端可以登陸多個服務器,一個服務器也可以支持多個用戶的并發訪問。系統在完成門禁系統的功能的同時,還可以提供視頻監控和報警的聯動管理。
本文主要描述了系統指紋識別模塊和視頻監控兩個方面。門禁控制器的程序流程如圖4-1所示。
圖4-1 門禁控制器程序流程圖
開始初始化控制器,通過網卡AX88796向客戶端發送聯絡數據包,等待客戶端的回應,建立起控制器與客戶端的聯機工作。然后開啟攝像頭不斷采集現場圖像,將采集到的圖像發送到客戶端,客戶端通過瀏覽器可以對現場進行實時監控。同時,系統等待鍵盤輸入用戶ID,并進行指紋采集,此時創建數據傳輸任務,將采集到的指紋圖像數據和用戶ID在SRAM中進行打包,然后發送至客戶端,由客戶端接收到的ID和指紋圖像進行處理和對比,控制器創建數據接收任務,接收客戶端返回的認證結果,并由控制器進行相應的顯示和控制。在實際中,用戶ID和指紋可以設臵成多種認證模式進行控制,增加用戶ID有利于提高服務器的辨認對比的速度。
4.2 指紋圖像采集
系統的指紋采集模塊為SPI串口模塊,指紋的采集工作由檢測到手指中斷開始的,系統檢測到中斷就會從串口發送一個字符控制FPS200開始采集。FPS200指紋采集采用分行方法對指紋圖像進行采集和傳輸,其指紋采集流程圖如下。
圖4-2 指紋采集流程圖
系統首先打開FPS200指紋采集儀,初始化系統寄存器,然后查詢等待,在沒有檢測到手指時,FPS200處于睡眠狀態,在檢測到手指中斷時,就可進行指紋的采集。
4.3 網絡通信
4.3.1 TCP/IP協議
Linux支持多種不同的網絡協議,TCP/IP是Linux系統中最健壯、速度最快和最可靠的部分。TCP/IP協議包括了各個層次上的眾多協議,如ARP、IP、ICMP、TCP和UDP等。下面主要介紹網絡編程中涉及到的傳輸層TCP和UDP協議,其中TCP協議是一個面向連接的傳輸層協議,它為網絡上的兩臺主機的應用程序提供一個可靠的字節流傳輸通道。面向連接意味著兩個使用TCP協議的應用程序在彼此交換數據前必須先建立一個TCP連接。UDP協議是一個不可靠、面向無連接的傳輸層協議,提供簡單的端到端通信服務。UDP不能保證數據的可靠傳輸, 可能存在數據丟失和次序錯誤。因此,系統因為對數據要求高可靠性需選用提供可靠連接的TCP協議。
TCP對話通過三次握手來初始化的,三次握手的目的是使數據段的發送和接收同步,告訴其它主機其一次可接收的數據量,并建立連接。TCP實體所用的基本協議是滑動窗口協議,當發送方傳送一個數據報時,它將啟動計時器,當該數據報到達目的地后,接收方的TCP實體返向發送一個數據報,其中包含一個確認序號,意思是希望收到下一個數據報的順序號。如果發送方定時器超時,那么發送方會重發該數據報。
通常應用程序通過打開一個SOCKET使用TCP服務,TCP管理到其它 SOCKET的數據傳遞。可以說,通過IP的源/目的可以唯一地區分網絡中的兩個設備的關聯,通過SOCKET的源/目的可以唯一地區分網絡中兩個應用程序的關聯。因此,系統中門禁控制器作為服務器與外部的監控客戶端的通信均可由SOCKET編程來完成。
4.3.2 系統網絡通信軟件設計
系統是通過SOCKET套接口來進行網絡編程,套接口地址的格式是一個IP地址和一個端口號,套接口是進程間通信的端點,每個套接口的名字都是唯一的,所以依靠套接口來確定整個以太網域中的一個網絡進程。SOCKET接口是TCP/IP網絡中的API,SOCKET編程的基本模式是Client/Server。即由客戶機向服務器發出請求,服務器執行被請求的任務并將響應的結構返回給客戶端程序。
SOCKET是TCP/IP協議傳輸層所提供的接口,供用戶編程訪問網絡資源,它是使用標準的Unix文件描述符(file descriptor)和其它程序通信的方式。SOCKET描述符是一個指向內部數據結構的指針,可以將這個描述符看成普通的文件描述符來讀寫操作實現網絡之間的數據交流,這就是Linux設備的無關性。按其應用,SOCKET套接口主要有流式套接字(Stream Socket)和數據報套接字(Datagram Socket)兩種,在系統中采用TCP協議傳輸數據,采用流式套接字。
系統中的將門禁控制器作為服務器,以太網終端的上位機作為客戶端。系統中TCP/IP協議SOCKET編程流程如圖4-3所示。
圖4-3 TCP協議SOCKET編程流程圖
在門禁系統控制端上運行的RedHat Linux9.0操作系統已經提供了TCP/IP服務,在其上通常有相應的應用程序進行管理,如Telnet、FTP、http等服務,在門禁系統控制端通常移植服務器進行系統網絡管理,系統中門禁控制器作為服務器程序流程介紹如下:
(1)調用s=socket(AF_INET,SOCK_STREAM,O)函數來創建一個用于通信的套接字,每個Socket都是一個數據通道,使用Socket描述符可以從套接口中讀取數據或向其它數據通道寫入數據。
(2)設臵套接字地址結構,可對sockaddr_in進行初始化,以保存所建立的Socket信息。如下: bzero(&sin,sizeof(sin)); //清除舊的服務器記錄sin.sin_family=AF_INET; //設臵網絡類型sin.sin_port=htons(myport);//設臵服務器監聽端口
(3)調用bind(s,(struct sockaddr*)&sin,sizeof(sin))函數將其與本機地址以及一個本地端口號綁定,若綁定其它地址則不能成功。另外,它主要用于TCP的連接,而在UDP的連接中則無必要。
(4)調用listen(s,5)函數在相應的Socket號上監聽。
(5)調用ns=accept(s,NULL,NULL)函數,睡眠并等待客戶的連接請求,當accept函數接收到一個連接服務請求時,將生成一個新的Socket號,并通過新的socket號來發送圖像信息。
(6)調用recv()函數接收客戶端的請求,調用send()函數向客戶端發送數據。
(7)當所有的數據操作結束以后:調用close()函數來釋放Socket。
4.3.3 GoAhead嵌入式Web服務器
隨著Internet技術的興起,在嵌入式設備的管理與交互中,基于Web方式的應用成為目前的主流。嵌入式Web服務器是指將Web服務器引入現場測試和控制設備中,在相應的硬件平臺和軟件系統的支持下,使傳統的測試和控制設備轉變為具備了以TCP/IP為底層通信協議和以Web技術為核心的基于互聯網的網絡測試和控制設備。目前用得較多的Web服務器主要有thttpd、shttpd、boa、appweb以及goAhead等。
在嵌入式系統中,由于處理器的運行速度、存儲容量和內存等的限制,使用嵌入式Web服務器可以節約系統資源,為用戶遠程訪問、管理和控制提供支持,并可以實現用戶的分級訪問。系統采用goAhead作為Web服務器,用戶可以通過Form、CGI等應用程序實現交互。
GoAhead Web Server是GoAhead公司推出的一個功能強大源碼免費,并可以運行在多個平臺上的嵌入式W曲服務器。GoAhead Webserver的主要功能特點有:很小的內存消耗、支持安全的通信、支持動態Web頁面,如ASP頁面、可以使用傳統的C語言編程定制Web頁面里的HTML標簽、支持CGI、嵌入式的JavaScript腳本翻譯器以及獨特的URL分析器。當前的最新版本是GoAhead WebServer 2.1.8。GoAhead無須安裝,只需要將GoAhead的源碼軟件包拷貝到Linux文件系統中的任何目錄中即可,修改Makenle的相關內容,通過交叉編譯, 在源代碼目錄中的LINUX文件夾下已經存在了GoAhead的可執行文件webs,在門禁控制器服務器端運行。/webs就開戶了系統的服務器。
系統在PC機客戶端的Windows平臺上基于TCP/IP協議用VC++開發了客戶端的程序,通過客戶端程序可以通過以太網與門禁控制器的GoAhead Web Server通信并實現門禁系統的管理。
5.結論
隨著數字化和網絡化的發展,智能門禁系統是未來安防監控系統的發展趨勢。安全可靠、方便易用的門禁系統在企業銀行、智能小區等門禁和考勤領域具有較強的實用價值和推廣性。本課題設計開發了一種基于ARM9處理器和指紋識別技術的以太網門禁控制系統。在ARM-Linux的基礎上,研究了指紋采集和視頻采集模塊、網絡傳輸模塊以及自動指紋識別算法。總結起來,本文主要做了下面的一些工作:
(1)論述了門禁系統在國內外發展現狀及其在未來的發展方向,指出了本課題的研究背景和意義,介紹了一種基于ARM的指紋識別以太網門禁控制系統。
(2)給出了聯網型指紋識別的門禁系統的總體設計原則、功能特點和總體硬件框圖。重點論述了系統使用的各個重要模塊設計的硬件資源,主要包括USB攝像頭;LCD顯示模塊;網絡通信模塊;指紋識別模塊等。
(3)研究了指紋識別算法,包括指紋圖像預處理以及指紋圖像的特征提取和匹配兩部分。文中主要對指紋圖像分割做出了一些改進,結合指紋圖像灰度方差和梯度設臵一個合適的局部閾值對指紋進行分割,提出了一種指紋圖像的局部閾值分割方法,該算法提高了指紋分割的精確度和適應性。然后參考其它的算法介紹了一個整體的自動指紋識別算法。
(4)闡述了門禁控制系統軟件的總體設計,然后分別闡述了系統中軟件編程中重要的幾個方面:使用Video4Linux編程采集圖像、指紋圖像的采集、GoAhead web server的應用以及系統運用TCP/IP實現系統門禁控制器和上位機PC之間的網絡通信。
評論
查看更多