基于ARM 的指紋識別門禁系統的設計
1.概述
本文引用地址:http://m.butianyuan.cn/article/201710/366978.htm隨著科學技術的不斷進步,人們對現代化辦公和生活場所提出了更高層次的安全管理需求,普通的門鎖系統和手工出入管理已經不符合現代人的實際需求。由于安防業(yè)的智能化和網絡化,為順應智能樓宇、智能小區(qū)的發(fā)展,門禁系統也必須實現更可靠、更安全和更方便的智能系統。現代門禁系統綜合利用了傳感技術、數字信息處理、計算機技術、多媒體技術和網絡技術,以實現門禁系統信息的采集、傳輸和處理。
目前智能門禁管理系統已廣泛用于工廠、學校、寫字樓宇、物業(yè)小區(qū)、商店、金融系統、電信系統、軍事系統、賓館等多種場合,大大提高了整體的工作效率、保障了系統安全,智能、安全和高效的現代化門禁系統已經成為社會發(fā)展的必然趨勢,同時它也是現代化建筑的一個重要組成部分。
傳統的機械鑰匙、用戶ID+密碼以及智能卡等的保護措施存在著丟失、遺忘、復制以及被盜用的隱患,在這種情況下,最新發(fā)展的生物識別技術為上述方法的不足提供了一個很好的解決方案。由于指紋識別具有唯一性、不變性和貼身性的特點,成為了眾多生物識別技術中備受青睞的一個。且隨著生物識別技術和計算機技術的飛速發(fā)展,指紋識別算法已達到迅速、準確和可靠的水平,已越來越多的應用在現代智能門禁系統的前端信息采集部分。
目前使用較多的是指紋單機門禁系統,其采集、處理和識別都在一個控制系統中完成,只適用于小系統和安裝位臵集中的單位,且通信線路專用,安裝好后不易于更換管理中心的位臵。在大系統和安裝位臵分散的單位,單機門禁系統必然耗費較大且效率不高。因此有必要采用TCP/IP的網絡型門禁控制系統,實現網絡控制和遠程控制。
系統采用指紋采集作為門禁系統的前端部分,由于指紋識別具有唯一性、不變性和貼身性的特點,使它成為一種安全有效的身份驗證方法。另外,系統采用基于TCP/IP協議的網絡型門禁控制器是通過局域網傳遞數據的,管理中心隨時可以變更,不需要重新布線,很容易實現網絡控制和遠程控制,并且指紋的處理和識別可以在運算速度更快的管理中心實現,這樣控制器功能簡單,而且多個控制器可以連接到一個服務器,提高了門禁系統控制和管理的效率。
1.1國內外研究現狀和發(fā)展
據考古學家證實,公元前7000年-6000年,指紋作為身份鑒別的工具已經在敘利亞和中國開始應用。但是由于缺乏專門性研究,未能將指紋識別技術上升為一門科學。20世紀早期,指紋識別正式成為身份識別的方法并被法律部門用作身份鑒定的依據,并開始在世界范圍內建立指紋識別機構和罪犯指紋檔案。指紋識別的有關技術,包括指紋采集技術、指紋分類技術和指紋匹配技術都得到了較快發(fā)展。例如美國聯邦調查局在1924年庫存樣本指紋就達到了81萬枚。20世紀80年代,個人電腦、光學掃描等技術革新使得他們作為指紋取像的工具成為現實,從而使指紋識別可以在其他領域中得以應用。隨著取像設備的引入及其飛速發(fā)展,生物指紋識別技術的逐漸成熟,可靠的比對算法的發(fā)現都為指紋識別技術提供了更廣闊的舞臺。目前,利用計算機進行指紋識別的技術在國外已很成熟,并且已經開始大規(guī)模廣。
智能安防的日益流行對于樓宇管理自動化和安全監(jiān)控提出了更高的安全性和可靠性要求,基于指紋識別的智能門禁管理系統應用得越來越廣泛,在一些發(fā)達國家已得到普遍的應用。面對規(guī)模已經越來越大的門禁控制系統,普通的單機門禁系統已經不適合,比如智能小區(qū)、景點門禁系統等。因此必須要開發(fā)進行遠距離傳輸的TCP/IP的網絡型門禁控制系統,由于網絡型門禁控制系統很容易實現遠程控制和分布式管理,還可以方便日后擴容和維護,日益變得重要。
1.2 本文的研究內容
論文的研究內容分為指紋識別的算法研究和ARM門禁控制器硬件實現兩個部分。在以往算法的研究基礎上,利用指紋圖像灰度梯度和方差的結合對指紋分割方法進行改進,仿真實驗證明本文中的改進算法魯棒性好。論文在以ARMS3C2410為核心和嵌入式操作系統Linux的基礎上,設計開發(fā)了基于指紋識別的以太網門禁控制系統。
本文具體內容主要有以下幾個方面:
(1)系統整體方案概述和設計:根據系統功能要求,設計指紋識別以太網門禁系統,重點闡述了其中關鍵模塊的硬件設計。
?。?)指紋識別算法的理論分析和仿真:研究了指紋識別算法,主要包括指紋圖像預處理以及指紋圖像的特征提取和匹配兩部分。
?。?)系統軟件總體設計:闡述了門禁控制系統軟件的總體設計,然后對各模塊進行應用編程,主要包括視頻采集、指紋采集以及TCP/IP網絡應用編程。
(4)最后,對全文進行了總結,并對指紋識別以太網指紋門禁控制系統的未來發(fā)展趨勢做出展望。
2.1系統硬件設計
2.1.1系統概述及設計原則
門禁管理系統是新型現代化的安全管理系統,主要用于管理重要部門出入口,是實現安全防范管理的有效措施,適用于各種重要部門,如企業(yè)、政府、銀行、賓館、金融貿易樓和綜合辦公樓等。
門禁系統一般分為獨立型和聯網型,聯網型門禁系統通訊方式常見的有RS232、RS485、CAN和TCP/IP,采用TCP/IP通訊方式的聯網型門禁系統簡稱為TCP/IP網絡門禁系統。相對其它通訊方式,基于TCP/IP網絡通信的門禁系統通過局域網傳遞數據,更容易實現遠程控制和分布式管理。
從門禁鎖的控制方式來看,主要有鑰匙、密碼、磁卡、IC卡等。隨著現代生活對安防水平要求的提高,從目前已有的門禁鎖具的控制方式來看,存在著一定的安全隱患,鑰匙、密碼和磁卡容易復制、竊取;IC卡的安全性較高,但也容易丟失。因此,現在人們心目中的門禁鎖具必須具有方便、安全,美觀等特點。隨著計算機技術的飛速發(fā)展,基于人體生理特征的身份識別系統逐漸被人們開始采用,目前,從實用角度看,指紋識別技術要比其它生物識別技術更安全和方便。
基于指紋識別的TCP/IP網絡門禁系統方案設計的前提是滿足用戶的各種需求,利用系統強大的功能以及良好的性價比,讓用戶得到最好的服務和最大的利益。方案的設計原則:實用性、穩(wěn)定性、安全性、可擴展性和易維護性。
2.1.2 系統組成及功能
一般RS485門禁控制器只支持128臺或者256臺設備聯網,而TCP/IP門禁控制器理論上可以支持無限多臺門禁設備。所以TCP/IP網絡型門禁控制器是最適合大型大面積的門禁系統聯網的。例如供電部門的變電站門禁的聯網管理、銀行儲蓄所的門禁管理等都適合這種模式。互聯網的門禁系統結構如圖2-1所示。
圖2-1互聯網的門禁系統結構圖
基于指紋識別的TCP/IP門禁系統方案基本組成:
?。?)管理中心:一臺連接到門禁控制器或網絡的PC機,通過局域網或廣域網與其它門禁控制器或PC機連接,實現門禁控制器采集信息的處理和分析,并發(fā)送控制指令,以及對相應的軟件管理。
?。?)門禁管理軟件:管理工作站通過管理軟件遠程監(jiān)控服務器和各門禁控制器的工作狀態(tài),實現各種管理功能。
?。?)門禁控制器:用于前端信息的采集、傳輸和處理,并控制門禁的電控鎖和門鈴,執(zhí)行處理器下達的開門、報警、啟動門鈴等指令以及提供通信多機連接端口等。
?。?)電子門鎖:門禁系統的執(zhí)行機構和關鍵設備,用于對物理通道的控制。
(5)電力設備:采用直流電源作為整個門禁系統的運行電源和門鎖電源(一般采用內部電源)。
(6)聯動設備:可與門禁控制器所有輸入、輸出節(jié)點進行聯動,實現防盜報警、消防報警等大型系統的聯動,一般在門禁管理軟件中對聯動設備進行相關的編程設臵。
?。?)通訊設備:包括交換機設備、路由器和MODEM等,實現設備的網絡連接。
指紋識別門禁系統的主要功能特點:
?。?)采用高效的指紋識別模塊,可使指紋直接開鎖,使用方便快捷,具有很高的安全性。
(2)應用ARM處理器和Linux操作系統,可以很好的保證門禁系統獨立連續(xù)工圖2-1互聯網的門禁系統結構圖
?。?)系統采用指紋與密碼的結合,可以根據實際需要設臵多種認證模式,支持多用戶,多組別組合開門,具有良好的靈活性。
?。?)系統配以科學化管理軟件,可以實現門禁系統的科學化管理。
?。?)應用TCP/IP以太網模塊,可以方便實現網絡控制和遠程控制。
?。?)系統采用分級管理,分為管理者和用戶,采用逐級權限管理,將用戶的指紋采集并存儲在中央管理主機上,根據用戶的開門權限,將用戶指紋下傳至相應的子門禁系統中。
?。?)系統有視頻監(jiān)控和報警等一些相應的輔助功能,提高系統的安全性。
本文基于ARM9(S3C24lO)設計和實現了一種指紋識別的網絡型門禁控制器。采用指紋識別器為前端信息的采集,用以太網控制器實現門禁控制器與上位PC機間的通信,并利用LCD來實時顯示狀態(tài),并可以提供一些其它的輔助功能,如語音提示、報警和攝像監(jiān)控等。 指紋型網絡門禁控制系統框架如圖2-2所示。
圖2-2門禁系統框圖
2.2 嵌入式主控模塊設計
2.2.1 ARM微處理器與地址空間映射
本系統選擇了韓國三星公司的高性能ARM9微處理器芯片S3C241O作為主處理器,S3C2410芯片是基于ARM920T內核,五級流水線和哈佛結構,內核工作電壓為1.8V,輸入輸出電壓為3.3V,具有180MHZ/200MIPS性能,是高性能和低功耗的硬宏單元。ARM920T內核具有全性能的MMU、指令和數據Cache以及高速AMBA總線接口。
S3C2410內部結構比較復雜,可提供很多可擴展的功能模塊,主要有MMU虛擬內存管理單元,LCD控制器(支持上到4k色的STN和256k色的TFT),3通道UART,4通道DMA,4通道具備PWM功能的定時器,I/O口,具有日歷功能的RTC(實時時鐘),8通道10bit精度ADC和觸摸屏控制器,IIC總線接口,IIS數字音頻總線接口,兩個USB2.0全速主設備及一個從設備,SD/MMC卡控制器,2通道SPI及內臵lQ/100M的網絡接口等。
2.2.2 NAND FLASH單元
Flash是一種可在系統(In-System)進行電擦寫、掉電后信息不丟失的存儲器。它的高集成度和低成本使它成為市場主流。Flash芯片具有低功耗、大容量、擦寫速度快、可整片或分扇區(qū)在系統編程(燒寫)、擦除等特點,并且可由內部嵌入的算法完成對芯片的操作,因而在各種嵌入式系統中得到了廣泛的應用。作為一種非易失性存儲器,Flash在系統中通常用于存放程序代碼、常量表以及一些在系統掉電后需要保存的用戶數據等。常用的Flash為8位或16位的數據寬度,編程電壓為單3.3V。
Flash技術根據不同的應用場合也分為不同的發(fā)展方向,有擅長存儲代碼的NOR Flash和擅長存儲數據的NAND Flash。同時,S3C2410內部集成了NAND Flash控制器,為了支持系統從NAND Flash中啟動,S3C24lO內部有一塊被稱為墊腳石(Steppingstone)的SRAM緩存。如果選擇從NAND Flash中啟動,在啟動時S3C2410會自動的將NAND Flash存儲器中最前面的4KB數據拷貝到S3C24lO內部的SRAM中并自動執(zhí)行。如果這4KB存放的是啟動代碼,那么啟動代碼就可以從S3C241O內部的SRAM中執(zhí)行,啟動代碼初始化系統和外部SDRAM后將存儲在NAND Flash中的操作系統和應用程序拷貝到外部SDRAM中,這時整個系統就可以啟動了。
在本系統中,采用的是三星公司的K9F5608U芯片,其電路原理圖如圖2-3所示。
圖2-3 NAND FLASH原理圖
2.2.3 SDRAM單元
SDRAM具有容量大、存取速度快、成本低的特點,得到了廣泛的應用。與Flash存儲器相比,SDRAM不具有掉電保持數據的特性,但存取速度高于Flash存儲器,且具有讀/寫屬性,因此SDRAM在系統中主要用作程序的運行空間、數據以及堆棧區(qū),是系統啟動之后進行存取操作的存儲器。
S3C2410在片內具有獨立的SDRAM刷新控制邏輯,可方便地與SDRAM連接。同時,由于S3C24lO片內的存儲空間不大,大量的數據都要通過SDRAM暫時存放和交換,即動態(tài)存儲區(qū)。系統啟動時,CPU首先從起始地址讀取啟動代碼進行系統初始化,在完成系統初始化后,程序代碼一般調入SDRAM中運行以提高系統的運行速度。SDRAM存儲單元猶如一個電容,總是傾向于放電,為避免數據丟失,必須定時充電刷新。
圖2-4 SDRAM 外圍接口
2.2.4 USB及USB攝像頭單元
USB(Universal Serial Bus)即通用串行總線,是現在非常流行的一種快速、雙向、廉價、可以進行熱插拔的接口。隨著嵌入式技術的快速發(fā)展,USB的應用已經逐漸從PC機擴展到了嵌入式技術中,并且發(fā)揮著重要的作用。USB設備之所以會被大量應用,主要具有以下優(yōu)點:
?。?)可以熱插拔,使用方便。
(2)系統總線供電,并可提供5V/500mA電源,具有獨立供電特點。
(3)支持設備眾多,支持多種設備類,例如鼠標,鍵盤,攝像頭等。
?。?)連接靈活,可以連接多個設備,最多可擴127個,連接的方式也非常靈活,既可以使用串行連接,也可以使用集線器Hub把多個設備連接在一起再與PC的USB口相連。
?。?)速度快,支持高速數據傳輸,USBl.1是12Mb/s,USB2.0高達480Mb/s S3C2410帶有兩個USB主設備控制器和一個USB從設備控制器,這樣可以方便USB設備的使用。在設計開發(fā)一個USB外設的時候,主要需要編寫三部分的程序:固件程序、USB驅動程序和客戶應用程序。USB的電路連接圖如圖2-5 所示。
圖2-5 USB電路連接圖
USB接口的設備可以方便應用到嵌入式系統中,具有USB接口的優(yōu)盤因為存儲容量大,價格低,在嵌入式系統中一般可以用來存儲數據。在門禁控制器中,可以用來存儲初始化的資料數據也可以存儲采集到的重要數據,方便用戶的保存和修改。另外,本系統中應用到的視頻監(jiān)控就用到了USB接口的攝像頭。
2.3 界面顯示接口模塊設計
LCD(Liquid Crystal Display)稱為液晶。LCD顯示器的基本工作原理是通過給不同的液晶單元供電,控制其光線的通過與否,從而達到顯示的目的。因此,LCD的驅動控制器是對每個液晶單元的通電的控制。液晶工作時使用的是外部的光線,其光線照明方式有兩種:傳送式和反射式。由于液晶自己本身并不發(fā)光,所以與CRT相比,液晶顯示器的耗電量較低。
本系統選用傳送式背光(CCFL)彩色STN液晶屏,LCD的控制器使用S3C2410的內部集成的控制器。系統選用5.7寸、320×240像素、256色的彩色LCD屏。其可提供4/8/12/16位顏色模式,電源操作范圍寬(2.7v-5.5V),低功耗設計可滿足系統省電的要求。 為了保證LCD正常工作,一定要保證硬件正確連接,S3C2410與STN-LCD屏的關鍵電路連接如2-6圖所示。
圖2-6 S3C2410與LCD連接圖
?。?)S3C2410上液晶數據線VD[19:23]、VD[10:15]、VD[3:7]分別對應R、G、B的三色信息。一個R、G、B共16bits的組合代表了一個像素的信息。
(2)S3C24lO上液晶電壓控制信號VM.VDEN與LCD的ENAB信號連接,保證數據的有效指示。
?。?)S3C2410液晶的位時鐘信號VCLK與LCD的時鐘信號CK連接。在VM-VDEN信號有效的情況下,LCD控制器送出的數據在VCLK的上升沿送出,在下降沿時被LCD驅動器采樣。
(4)S3C2410的液晶幀時鐘信號VF-VS與LCD的幀同步信號連接,LCD控制器在一個完整幀顯示完成后立即插入一個VFRAME信號,并開始新的一幀。
?。?)S3C24lO的液晶線時鐘信號VL.HS與LCD的行同步信號連接,LCD控制器在整個水平線數據移入LCD驅動器后插入一個VLINE信號。
2.4 指紋識別模塊設計
指紋采集器采集到指紋圖像后,才能被計算機進行識別、處理,指紋圖像的質量會直接影響到識別的精度以及指紋識別系統的處理速度,因此指紋采集技術是指紋識別系統的關鍵技術之一。因為指紋的表面積相對較小,日常生活中手指常常會受到磨損,所以獲得優(yōu)質的指紋細節(jié)圖像是一項十分復雜的工作。目前主要使用的指紋采集技術有光學指紋采集技術,半導體指紋采集技術和超聲波指紋采集技術。
光學指紋采集是歷史久遠、使用最廣泛的技術,它是將手指放在光學鏡片上,手指在內臵光源照射下,用棱鏡將其投射在電荷耦合器件(CCD)上,進而形成脊線(指紋圖像中具有一定寬度和走向的紋線)呈黑色、谷線(紋線之間的凹陷部分)呈白色的數字化的、可被指紋設備算法處理的多灰度指紋圖像。優(yōu)點是一定程度上適應溫度的變異,較為廉價,可達到500DPI的較高分辨率,但存在要求足夠大的尺寸,且過分干燥和過分油膩的手指也將使光學指紋產品的效果變壞的缺點。 半導體指紋采集技術又有硅電容指紋圖像傳感器、半導體壓感應傳感器和半導體溫度感應傳感器三種類型。最常見的指紋傳感器是半導體指紋傳感器,它通過電子度量來捕捉指紋,在半導體金屬陣列上能結合大約100,O00個電容傳感器,其外面是絕緣的表面。傳感器陣列的每一點是一個金屬電極,充當電容器的一極,按在傳感面上的手指頭的對應點則作為另一極,傳感面形成兩極之間的介電層。由于指紋的脊和谷相對于另一極之間的距離不同(紋路深淺的存在),導致硅表面電容陣列的各個電容值不同,測量并記錄各點的電容值,就可以獲得具有灰度級的指紋圖像。
半導體指紋采集設備可以獲得相當精確的指紋圖像,分辨率可高達600DPI,并且指紋采集時不需要光學采集設備要求的較大面積的采集頭。由于半導體芯片的體積小巧、功耗很低,可以集成到許多現有設備中,這是光學采集設備所無法比擬的。隨著各種工藝技術的不斷發(fā)展,芯片的防靜電性能和耐用度也得到了很大的改善,現在許多指紋識別系統研發(fā)工作都采用半導體采集設備來進行。
本系統使用Veridicom公司的半導體指紋采集傳感器FPS200,其核心技術是基于高可靠性硅傳感器芯片設計。FPS200是Veridicom公司在吸收了己廣泛應用的FPSll0系列傳感器優(yōu)點的基礎上,推出的新一代指紋傳感器。其表面運用Veridicom公司專利技術而制成,堅固耐用,可防止各種物質對芯片的劃傷、腐蝕、磨損等,FPS200能承受超過8KV的靜電放電(ESD),因此FPS200可應用在苛刻的環(huán)境下。FPS200采用CMOS技術,獲取的圖像為256×300像素,分辨率為500DPI(點每英寸)并且內臵8位高速A/D轉換器,適合更復雜的手指,大大減低了誤識率(FAR)和拒識率(FRR)。其內部控制邏輯如圖2-7所示。
圖2-7 FPS200內部邏輯圖
3.指紋識別算法研究及實現
指紋識別技術的應用系統大致可以分為兩類:即驗證(Verification)和辨識(Identification)。驗證就是通過把一個現場采集到的指紋與己經登記的指紋進行一對一的對比(1:1)來確認身份的過程。辨識則是把現場采集到的指紋同指紋數據庫中的指紋逐一對比,從中找出與現場指紋相匹配的指紋,這也叫一對多匹配(1:N)。驗證和辨識在對比算法和系統設計上各具技術特點。 所有的生物識別系統都包括如下幾個處理過程:采集、對比和匹配。指紋識別處理也一樣,它包括指紋圖像采集、指紋圖像預處理、特征提取及匹配等過程。指紋識別系統的結構如圖3-1所示。
圖3-1指紋識別系統結構
4.門禁控制系統軟件設計
4.1 門禁控制系統總體軟件設計
系統采用ARM和指紋識別模塊實現基于Linux操作系統下TCP/IP的網絡型門禁系統。系統中將門禁控制器作為服務器,以太網終端的上位機PC作為客戶端。上位PC機可以對多個控制器通過局域網或互聯網對其進行訪問、查詢和設臵,一個客戶端可以登陸多個服務器,一個服務器也可以支持多個用戶的并發(fā)訪問。系統在完成門禁系統的功能的同時,還可以提供視頻監(jiān)控和報警的聯動管理。
本文主要描述了系統指紋識別模塊和視頻監(jiān)控兩個方面。門禁控制器的程序流程如圖4-1所示。
圖4-1 門禁控制器程序流程圖
開始初始化控制器,通過網卡AX88796向客戶端發(fā)送聯絡數據包,等待客戶端的回應,建立起控制器與客戶端的聯機工作。然后開啟攝像頭不斷采集現場圖像,將采集到的圖像發(fā)送到客戶端,客戶端通過瀏覽器可以對現場進行實時監(jiān)控。同時,系統等待鍵盤輸入用戶ID,并進行指紋采集,此時創(chuàng)建數據傳輸任務,將采集到的指紋圖像數據和用戶ID在SRAM中進行打包,然后發(fā)送至客戶端,由客戶端接收到的ID和指紋圖像進行處理和對比,控制器創(chuàng)建數據接收任務,接收客戶端返回的認證結果,并由控制器進行相應的顯示和控制。在實際中,用戶ID和指紋可以設臵成多種認證模式進行控制,增加用戶ID有利于提高服務器的辨認對比的速度。
4.2 指紋圖像采集
系統的指紋采集模塊為SPI串口模塊,指紋的采集工作由檢測到手指中斷開始的,系統檢測到中斷就會從串口發(fā)送一個字符控制FPS200開始采集。FPS200指紋采集采用分行方法對指紋圖像進行采集和傳輸,其指紋采集流程圖如下。
圖4-2 指紋采集流程圖
系統首先打開FPS200指紋采集儀,初始化系統寄存器,然后查詢等待,在沒有檢測到手指時,FPS200處于睡眠狀態(tài),在檢測到手指中斷時,就可進行指紋的采集。
4.3 網絡通信
4.3.1 TCP/IP協議
Linux支持多種不同的網絡協議,TCP/IP是Linux系統中最健壯、速度最快和最可靠的部分。TCP/IP協議包括了各個層次上的眾多協議,如ARP、IP、ICMP、TCP和UDP等。下面主要介紹網絡編程中涉及到的傳輸層TCP和UDP協議,其中TCP協議是一個面向連接的傳輸層協議,它為網絡上的兩臺主機的應用程序提供一個可靠的字節(jié)流傳輸通道。面向連接意味著兩個使用TCP協議的應用程序在彼此交換數據前必須先建立一個TCP連接。UDP協議是一個不可靠、面向無連接的傳輸層協議,提供簡單的端到端通信服務。UDP不能保證數據的可靠傳輸, 可能存在數據丟失和次序錯誤。因此,系統因為對數據要求高可靠性需選用提供可靠連接的TCP協議。
TCP對話通過三次握手來初始化的,三次握手的目的是使數據段的發(fā)送和接收同步,告訴其它主機其一次可接收的數據量,并建立連接。TCP實體所用的基本協議是滑動窗口協議,當發(fā)送方傳送一個數據報時,它將啟動計時器,當該數據報到達目的地后,接收方的TCP實體返向發(fā)送一個數據報,其中包含一個確認序號,意思是希望收到下一個數據報的順序號。如果發(fā)送方定時器超時,那么發(fā)送方會重發(fā)該數據報。
通常應用程序通過打開一個SOCKET使用TCP服務,TCP管理到其它 SOCKET的數據傳遞。可以說,通過IP的源/目的可以唯一地區(qū)分網絡中的兩個設備的關聯,通過SOCKET的源/目的可以唯一地區(qū)分網絡中兩個應用程序的關聯。因此,系統中門禁控制器作為服務器與外部的監(jiān)控客戶端的通信均可由SOCKET編程來完成。
4.3.2 系統網絡通信軟件設計
系統是通過SOCKET套接口來進行網絡編程,套接口地址的格式是一個IP地址和一個端口號,套接口是進程間通信的端點,每個套接口的名字都是唯一的,所以依靠套接口來確定整個以太網域中的一個網絡進程。SOCKET接口是TCP/IP網絡中的API,SOCKET編程的基本模式是Client/Server。即由客戶機向服務器發(fā)出請求,服務器執(zhí)行被請求的任務并將響應的結構返回給客戶端程序。
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等服務,在門禁系統控制端通常移植服務器進行系統網絡管理,系統中門禁控制器作為服務器程序流程介紹如下:
?。?)調用s=socket(AF_INET,SOCK_STREAM,O)函數來創(chuàng)建一個用于通信的套接字,每個Socket都是一個數據通道,使用Socket描述符可以從套接口中讀取數據或向其它數據通道寫入數據。
?。?)設臵套接字地址結構,可對sockaddr_in進行初始化,以保存所建立的Socket信息。如下: bzero(sin,sizeof(sin)); //清除舊的服務器記錄sin.sin_family=AF_INET; //設臵網絡類型sin.sin_port=htons(myport);//設臵服務器監(jiān)聽端口
?。?)調用bind(s,(struct sockaddr*)sin,sizeof(sin))函數將其與本機地址以及一個本地端口號綁定,若綁定其它地址則不能成功。另外,它主要用于TCP的連接,而在UDP的連接中則無必要。
?。?)調用listen(s,5)函數在相應的Socket號上監(jiān)聽。
?。?)調用ns=accept(s,NULL,NULL)函數,睡眠并等待客戶的連接請求,當accept函數接收到一個連接服務請求時,將生成一個新的Socket號,并通過新的socket號來發(fā)送圖像信息。
(6)調用recv()函數接收客戶端的請求,調用send()函數向客戶端發(fā)送數據。
(7)當所有的數據操作結束以后:調用close()函數來釋放Socket。
4.3.3 GoAhead嵌入式Web服務器
隨著Internet技術的興起,在嵌入式設備的管理與交互中,基于Web方式的應用成為目前的主流。嵌入式Web服務器是指將Web服務器引入現場測試和控制設備中,在相應的硬件平臺和軟件系統的支持下,使傳統的測試和控制設備轉變?yōu)榫邆淞艘訲CP/IP為底層通信協議和以Web技術為核心的基于互聯網的網絡測試和控制設備。目前用得較多的Web服務器主要有thttpd、shttpd、boa、appweb以及goAhead等。
在嵌入式系統中,由于處理器的運行速度、存儲容量和內存等的限制,使用嵌入式Web服務器可以節(jié)約系統資源,為用戶遠程訪問、管理和控制提供支持,并可以實現用戶的分級訪問。系統采用goAhead作為Web服務器,用戶可以通過Form、CGI等應用程序實現交互。
GoAhead Web Server是GoAhead公司推出的一個功能強大源碼免費,并可以運行在多個平臺上的嵌入式W曲服務器。GoAhead Webserver的主要功能特點有:很小的內存消耗、支持安全的通信、支持動態(tài)Web頁面,如ASP頁面、可以使用傳統的C語言編程定制Web頁面里的HTML標簽、支持CGI、嵌入式的JavaScript腳本翻譯器以及獨特的URL分析器。當前的最新版本是GoAhead WebServer 2.1.8。GoAhead無須安裝,只需要將GoAhead的源碼軟件包拷貝到Linux文件系統中的任何目錄中即可,修改Makenle的相關內容,通過交叉編譯, 在源代碼目錄中的LINUX文件夾下已經存在了GoAhead的可執(zhí)行文件webs,在門禁控制器服務器端運行。/webs就開戶了系統的服務器。
系統在PC機客戶端的Windows平臺上基于TCP/IP協議用VC++開發(fā)了客戶端的程序,通過客戶端程序可以通過以太網與門禁控制器的GoAhead Web Server通信并實現門禁系統的管理。
5.結論
隨著數字化和網絡化的發(fā)展,智能門禁系統是未來安防監(jiān)控系統的發(fā)展趨勢。安全可靠、方便易用的門禁系統在企業(yè)銀行、智能小區(qū)等門禁和考勤領域具有較強的實用價值和推廣性。本課題設計開發(fā)了一種基于ARM9處理器和指紋識別技術的以太網門禁控制系統。在ARM-Linux的基礎上,研究了指紋采集和視頻采集模塊、網絡傳輸模塊以及自動指紋識別算法??偨Y起來,本文主要做了下面的一些工作:
?。?)論述了門禁系統在國內外發(fā)展現狀及其在未來的發(fā)展方向,指出了本課題的研究背景和意義,介紹了一種基于ARM的指紋識別以太網門禁控制系統。
?。?)給出了聯網型指紋識別的門禁系統的總體設計原則、功能特點和總體硬件框圖。重點論述了系統使用的各個重要模塊設計的硬件資源,主要包括USB攝像頭;LCD顯示模塊;網絡通信模塊;指紋識別模塊等。
?。?)研究了指紋識別算法,包括指紋圖像預處理以及指紋圖像的特征提取和匹配兩部分。文中主要對指紋圖像分割做出了一些改進,結合指紋圖像灰度方差和梯度設臵一個合適的局部閾值對指紋進行分割,提出了一種指紋圖像的局部閾值分割方法,該算法提高了指紋分割的精確度和適應性。然后參考其它的算法介紹了一個整體的自動指紋識別算法。
(4)闡述了門禁控制系統軟件的總體設計,然后分別闡述了系統中軟件編程中重要的幾個方面:使用Video4Linux編程采集圖像、指紋圖像的采集、GoAhead web server的應用以及系統運用TCP/IP實現系統門禁控制器和上位機PC之間的網絡通信。
評論