摘要:研究了一種可替代校園飯卡付費(fèi)系統(tǒng)的指紋識(shí)別系統(tǒng),該系統(tǒng)由服務(wù)器管理模塊和操作終端模塊構(gòu)成,二者經(jīng)由網(wǎng)線通信。設(shè)計(jì)了基于ARM7的操作終端硬件電路,編寫(xiě)了驅(qū)動(dòng)USB接口芯片和網(wǎng)卡芯片的C語(yǔ)言程序。主機(jī)服務(wù)器安裝指紋比對(duì)程序通過(guò)對(duì)終端傳輸來(lái)的指紋圖像信息進(jìn)行比對(duì)確認(rèn)學(xué)生身份,進(jìn)而進(jìn)行計(jì)費(fèi)操作。同時(shí)由于該系統(tǒng)在現(xiàn)有的網(wǎng)絡(luò)條件下通過(guò)拓展終端可以方便的擴(kuò)充系統(tǒng),因此具有較好的發(fā)展空間和應(yīng)用前景。
關(guān)鍵詞:ARM7; 指紋識(shí)別; 數(shù)據(jù)庫(kù); 服務(wù)器
目前進(jìn)行一卡通建設(shè)的學(xué)校為數(shù)不多,用指紋代替卡片來(lái)消費(fèi)和進(jìn)行身份識(shí)別的(即一指通)絕無(wú)僅有。其方便之處在于同學(xué)們不用攜帶各種卡出行,甚至不會(huì)因?yàn)闆](méi)帶錢(qián)或沒(méi)帶卡而誤事。本系統(tǒng)服務(wù)器存儲(chǔ)了學(xué)生的自然信息和充值信息,可以進(jìn)行自動(dòng)計(jì)費(fèi);通過(guò)網(wǎng)卡發(fā)送接收信息,避免沖突;利用網(wǎng)線傳輸,不用另外鋪設(shè)線路,管理方便。
1 系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)及工作原理
本網(wǎng)絡(luò)的結(jié)構(gòu)如圖1和圖2所示。主機(jī)服務(wù)器管理著其他分機(jī)服務(wù)器,師生的主要信息都存在分機(jī)里,如姓名,學(xué)生證號(hào),余額等,每個(gè)終端都會(huì)向分機(jī)發(fā)送數(shù)據(jù)(如學(xué)生信息和消費(fèi)金額等)并更新數(shù)據(jù)。主機(jī)服務(wù)器的負(fù)責(zé)管理分機(jī)服務(wù)器,在固定時(shí)間將信息互傳,以確保信息的完整性和實(shí)時(shí)性。各分機(jī)分工明確,有管理圖書(shū)館,有管理飯?zhí)孟M(fèi),有管理微機(jī)室,等等。再下面一層就是各終端,雖然它們的功能不盡相同,但它們都有兩點(diǎn)相同的地方:一是它們都會(huì)用指紋進(jìn)行身份識(shí)別;二是,它們負(fù)責(zé)計(jì)算任務(wù),把計(jì)費(fèi)結(jié)果發(fā)給主機(jī),主機(jī)只負(fù)責(zé)劃扣,不負(fù)責(zé)計(jì)算,如此一來(lái)就會(huì)大大減輕主機(jī)的壓力。
2硬件系統(tǒng)的組成
2.1 各終端與主機(jī)服務(wù)器的網(wǎng)線連接
終端操作系統(tǒng)采用基于ARM7的微控制單元,電腦與ARM7的實(shí)時(shí)交互通過(guò)以太網(wǎng)通信。以太網(wǎng)驅(qū)動(dòng)程序是針對(duì)以太網(wǎng)接口芯片CS8900A進(jìn)行編程,正確初始化芯片,并提供數(shù)據(jù)輸入輸出和控制接口給高層網(wǎng)路協(xié)議使用[1]。CS8900A是CIRUS LOGIC公司生產(chǎn)的16位以太網(wǎng)控制器,芯片內(nèi)嵌片內(nèi)RAM,10BASE-T收發(fā)濾波器,直接ISA總線接口。該芯片的突出特點(diǎn)是使用靈活,其物理層接口、數(shù)據(jù)傳輸模式和工作模式等都能根據(jù)需要而動(dòng)態(tài)調(diào)整,通過(guò)內(nèi)部寄存器的設(shè)置來(lái)適應(yīng)不同的應(yīng)用環(huán)境[3]。電路連接如圖3所示。
工作原理:收到由主機(jī)發(fā)來(lái)的數(shù)報(bào)報(bào)(從目的地址域到數(shù)據(jù)域)后,偵聽(tīng)網(wǎng)絡(luò)線路。如果線路忙,它就等到線路空閑為止,否則立即發(fā)送該數(shù)據(jù)幀。發(fā)送過(guò)程中,首先添加以太網(wǎng)幀頭(包括先導(dǎo)字段和幀開(kāi)始標(biāo)志),然后生成CRC校驗(yàn)碼,最后將此數(shù)據(jù)幀發(fā)送到以太網(wǎng)上,接收時(shí),它將從以太網(wǎng)收到的數(shù)據(jù)幀在經(jīng)過(guò)解碼、去掉幀頭和地址檢驗(yàn)等步驟后緩存在片內(nèi),通過(guò)CRC校驗(yàn)后,它會(huì)根據(jù)初始化配置情況,通知主機(jī)CS8900A收到了數(shù)據(jù)幀,最后傳到主機(jī)的存儲(chǔ)區(qū)中[3]。
cs8900a.c文件是CS8900A的驅(qū)動(dòng)程序,函數(shù)功能如下:
CS_Init():初始化函數(shù);
CS_Close ( ):關(guān)閉CS8900A芯片數(shù)據(jù)收發(fā)功能。及關(guān)閉中斷請(qǐng)求;
CS_Rest ( ):復(fù)位CS8900A芯片;
CS_Identification ( ):獲得CS8900A芯片ID和修訂版號(hào);
CS_TransmitPacket ( ):數(shù)據(jù)包輸出;
CS_ReceivePacket ( ):數(shù)據(jù)包接收[1];
2.2 指紋識(shí)別儀的選擇
所有的身份識(shí)別都仰仗指紋識(shí)別儀的識(shí)別準(zhǔn)確度,不然就會(huì)出現(xiàn)身份識(shí)別出錯(cuò)的現(xiàn)象。本系統(tǒng)采用長(zhǎng)春方圓公司出品的EFS310-HB型指紋識(shí)別儀。其分辨率700ⅹ500DPI;采集方式為平面滾動(dòng);畸變:< 1%。圖像采集精確清晰。連接方式為USB,可與ARM通過(guò)轉(zhuǎn)換芯片連接[4]。
2.3 USB與ARM接口
USB設(shè)備開(kāi)發(fā)包括硬件電路設(shè)計(jì)和軟件兩部分,其中軟件設(shè)計(jì)部分又包括USB芯片驅(qū)動(dòng)程序設(shè)計(jì)和應(yīng)用程序設(shè)計(jì)兩部分。USB設(shè)備在硬件上通過(guò)USB芯片實(shí)現(xiàn),USB芯片負(fù)責(zé):
管理和實(shí)現(xiàn)USB物理層差分信號(hào);通過(guò)配置和管理寄存器來(lái)初始化設(shè)備;提供接地端點(diǎn)管理電源,通過(guò)寄存器管理端點(diǎn)
⑴ 基于上述硬件資源,USB芯片驅(qū)動(dòng)程序可實(shí)現(xiàn)USB的各項(xiàng)功能[1],硬件連接如圖4所示。
⑵ 設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)
USB的讀寫(xiě):芯片用戶寄存器有兩個(gè),分別為只寫(xiě)內(nèi)部地址寄存器和可讀寫(xiě)數(shù)據(jù)寄存器。內(nèi)部地址寄存器地址為0x02000002,數(shù)據(jù)寄存器地址為0x02000000.對(duì)USB控制器進(jìn)行讀操作時(shí),第一步是設(shè)置USB6位內(nèi)部地址寄存器,指明要從USB某個(gè)內(nèi)部地址讀一個(gè)字節(jié),第二步 從數(shù)據(jù)寄存器讀數(shù)據(jù)。對(duì)USB寫(xiě)操作類似讀操作,第一步設(shè)置USB地址寄存器,第二步向數(shù)據(jù)寄存器寫(xiě)數(shù)據(jù)。
USB中斷:首先初始化中斷寄存器INTCON及中斷方式寄存器INTMOD,使EINT0使能。然后安裝USB中斷服務(wù)程序入口到中斷向量中。然后初始化I/O端口G組控制器PCONG,PUPG指明EXINT0作為中斷輸入引腳。最后設(shè)置外部中斷寄存器EXTINT,指明觸發(fā)中斷方式。
初始化USB:首先設(shè)置主控制器MCNTRL軟件復(fù)位位(SRST),復(fù)位USB控制器。然后設(shè)置主控制器MCNTRL的電壓調(diào)整位(VGE)及中斷輸出(INTOC)位,以禁止中斷輸出。然后寫(xiě)時(shí)鐘寄存器CCONF,設(shè)置USB控制器的工作頻率。然后初始化功能寄存器FAR及EPC0寄存器。端點(diǎn)號(hào)0為雙向端點(diǎn),用做控制使用。然后設(shè)置中斷屏蔽寄存器。最后允許USB控制器中信號(hào)輸出,事控制器附加到USB總線上。
USB中斷服務(wù)例程:首先從主事件寄存器MAEV中讀出產(chǎn)生中斷的事件,然后根據(jù)事件讀取相應(yīng)的時(shí)間寄存器、接收寄存器或者發(fā)送寄存器等等。然后進(jìn)一步判斷時(shí)間寄存器的狀態(tài),根據(jù)具體事件分別做出相應(yīng)的操作[1]。
3 軟件系統(tǒng)組成、數(shù)據(jù)庫(kù)系統(tǒng)的選擇
3.1 指紋識(shí)別軟件
自動(dòng)指紋識(shí)別系統(tǒng)的工作模式可以分為兩類:驗(yàn)證模式和辨識(shí)模式。驗(yàn)證模式又稱一對(duì)一比對(duì),比對(duì)原理為:指紋預(yù)先登記到樣本數(shù)據(jù)庫(kù)并設(shè)定一個(gè)標(biāo)識(shí)碼,比對(duì)時(shí),錄入指紋并輸人標(biāo)識(shí)碼,系統(tǒng)根據(jù)標(biāo)識(shí)碼從數(shù)據(jù)庫(kù)中提取指紋樣本與錄入指紋進(jìn)行比對(duì)。辨識(shí)模式又稱一對(duì)多比對(duì),是把錄入的指紋與樣本數(shù)據(jù)庫(kù)中的所有指紋逐一進(jìn)行對(duì)比,直至找到相匹配的指紋或搜索完整個(gè)樣本數(shù)據(jù)庫(kù)后給出無(wú)對(duì)應(yīng)指紋的結(jié)論。典型的指紋識(shí)別系統(tǒng)包括個(gè)體指紋采集,圖像增強(qiáng)、特征提取、與數(shù)據(jù)庫(kù)中模板匹配等步驟,圖5為指紋識(shí)別系統(tǒng)的一般結(jié)構(gòu)。
方圓公司自帶圖像增強(qiáng)軟件和圖像采集軟件,本課題主要實(shí)現(xiàn)基于點(diǎn)模式四叉樹(shù)匹配的指紋識(shí)別方案,下面主要介紹基于點(diǎn)模式的匹配。大多數(shù)指紋識(shí)別算法是基于細(xì)節(jié)點(diǎn)匹配的,因?yàn)槠毡檎J(rèn)為細(xì)節(jié)點(diǎn)是最獨(dú)特、最可信的特征,基于點(diǎn)模式的匹配算法假定輸入指紋及模板指紋間的存在平移、旋轉(zhuǎn)、尺寸縮放等相似變換,而且它們可適應(yīng)限定范圍內(nèi)的偽細(xì)節(jié)點(diǎn)出現(xiàn)和真細(xì)節(jié)點(diǎn)的丟失,其中一些改進(jìn)后的算法側(cè)可容忍細(xì)節(jié)點(diǎn)在一個(gè)較小距離內(nèi)的偏移。點(diǎn)模式匹配的問(wèn)題是模式識(shí)別中的一個(gè)有名的難題。它是指對(duì)于兩個(gè)含有不同數(shù)量的點(diǎn)集P{PO,Pl……Pm}和Q{Qo,Q1……Qn},如何找出它們之間的匹配關(guān)系。因此,一個(gè)好的點(diǎn)模式匹配算法應(yīng)該能夠有效地解決兩個(gè)點(diǎn)集間的幾何不變量問(wèn)題。人們對(duì)一般的點(diǎn)模式匹配提出過(guò)很多算法。Ranade等人的松弛算法,Skea的三角形匹配算法等,這些算法有的只是針對(duì)部分幾何不變量進(jìn)行處理。點(diǎn)模式匹配中的2個(gè)點(diǎn)集P和Q,其中P從第1幅圖象抽取,由m個(gè)點(diǎn)特征構(gòu)成,Q從第2幅圖象抽取,由n個(gè)點(diǎn)特征構(gòu)成,即P={Po,P,……Pm}和Q={Qo,Q1……Qn}。它們之間的匹配就是找到一個(gè)校準(zhǔn)函數(shù),以使兩個(gè)點(diǎn)集有最大數(shù)量點(diǎn)對(duì)之間存在穩(wěn)定的一一對(duì)應(yīng)關(guān)系。
為了把指紋識(shí)別系統(tǒng)各個(gè)部分的算法整合起來(lái),完成一個(gè)切實(shí)可用的指紋識(shí)別軟件,本軟件是在 windows xp sp2環(huán)境下開(kāi)發(fā),應(yīng)用的編譯軟件是MS VisualC++6.0。下面為程序的主要框架類:
CEFingerApp類:程序主線程類,負(fù)責(zé)程序的啟動(dòng)、關(guān)閉合消息泵的運(yùn)作。
CMalnFrame類:程序的主窗口類,負(fù)責(zé)創(chuàng)建主界面,包括菜單、工具條、以及其他視圖。
CEFingerDoc類:核心文檔類,主要負(fù)責(zé)文檔的管理。
CEFingerView類:輸入和控制視圖類,用來(lái)輸入各種指紋算法的參數(shù),控制指紋算法的運(yùn)行以及視圖的顯示。
CaddDlg,CfinDlg,CEditDlg:顯示視圖類,用來(lái)顯示指定的指紋圖像和數(shù)據(jù)信息[2]。
3.2 數(shù)據(jù)庫(kù)系統(tǒng)
(l)關(guān)系數(shù)據(jù)庫(kù)
數(shù)據(jù)倉(cāng)庫(kù)使用關(guān)系數(shù)據(jù)庫(kù)技術(shù)作為其設(shè)計(jì)、結(jié)構(gòu)和維護(hù)的基礎(chǔ)。SQL Server 2000的核心組件是強(qiáng)大的、全功能的關(guān)系數(shù)據(jù)庫(kù)引擎。SQL Server 2000是提供很多設(shè)計(jì)和操作關(guān)系數(shù)據(jù)庫(kù)的工具,與該數(shù)據(jù)庫(kù)所用于的應(yīng)用程序無(wú)關(guān)。
(2)數(shù)據(jù)轉(zhuǎn)換服務(wù)
數(shù)據(jù)倉(cāng)庫(kù)應(yīng)用程序需要將來(lái)自許多源的數(shù)據(jù)轉(zhuǎn)換為聚合在一起的、一致的數(shù)據(jù)集,這些數(shù)據(jù)集經(jīng)過(guò)了適當(dāng)配置可用于數(shù)據(jù)倉(cāng)庫(kù)操作。SQL Server 2000為這類任務(wù)提供了一個(gè)強(qiáng)大的工具,即數(shù)據(jù)轉(zhuǎn)換服務(wù)(DTS)。DTS可以訪問(wèn)來(lái)自各種不同源的數(shù)據(jù),并使用內(nèi)置的自定義轉(zhuǎn)換規(guī)范轉(zhuǎn)換這些數(shù)據(jù)。
(3)復(fù)制
數(shù)據(jù)庫(kù)復(fù)制是具有許多用途的強(qiáng)大工具。復(fù)制通常用于分發(fā)數(shù)據(jù)和協(xié)調(diào)聯(lián)機(jī)事務(wù)處理系統(tǒng)(OLTP)中分布式數(shù)據(jù)的更新,可用于數(shù)據(jù)倉(cāng)庫(kù)。一些潛在的數(shù)據(jù)倉(cāng)庫(kù)的復(fù)制應(yīng)用是將數(shù)據(jù)從中央數(shù)據(jù)倉(cāng)庫(kù)分發(fā)到數(shù)據(jù)集市,以及從數(shù)據(jù)準(zhǔn)備區(qū)更新數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)。
(4)Meta Data Serviees
SQL Server2000 Meta Data Services提供用于查看中央知識(shí)庫(kù)的元數(shù)據(jù)的瀏覽器,并提供用于開(kāi)發(fā)自定義元數(shù)據(jù)應(yīng)用程序的接口[5]。
4 結(jié)束語(yǔ)
本文提出了一種新型的大規(guī)模身份識(shí)別系統(tǒng)設(shè)計(jì),將指紋識(shí)別網(wǎng)絡(luò)系統(tǒng)從軍用轉(zhuǎn)為民用,并且將各種計(jì)費(fèi)項(xiàng)目統(tǒng)一歸如本系統(tǒng),對(duì)于用戶更加方便。本系統(tǒng)可隨意拓展終端,也可以為校園內(nèi)后續(xù)建設(shè)的新設(shè)施提供服務(wù)。
本文創(chuàng)新點(diǎn):研究了一種可替代校園飯卡付費(fèi)系統(tǒng)的指紋識(shí)別系統(tǒng),該系統(tǒng)在現(xiàn)有的網(wǎng)絡(luò)條件下通過(guò)拓展終端可以方便的擴(kuò)充系統(tǒng),具有較好的發(fā)展空間和應(yīng)用前景。
參考文獻(xiàn)
[1] 田澤. ARM7嵌入式開(kāi)發(fā)實(shí)驗(yàn)與實(shí)踐. 北京航空航天大學(xué)出版社 2006
[2] 杜寶雷. 自動(dòng)指紋識(shí)別系統(tǒng)軟件研究與開(kāi)發(fā)[J]. 中國(guó)學(xué)術(shù)文獻(xiàn)網(wǎng)絡(luò)出版總庫(kù), 2007-09-28. 廣東工業(yè)大學(xué)
[3] 孫天澤 袁文菊 張海峰編. 嵌入式設(shè)計(jì)及Linux驅(qū)動(dòng)開(kāi)發(fā)指南. 出版日期2005年02月
[4] EFS310-HB技術(shù)資料
[5] 孔海峰,李廣勇. SQL Server 2000的數(shù)據(jù)倉(cāng)庫(kù)解決方案[J]. 海軍航空工程學(xué)院學(xué)報(bào). 2006-06-28. 海軍航空工程學(xué)院研究生管理大隊(duì)
作者簡(jiǎn)介:方文釗(1986.1), 男, 漢族, 吉林大學(xué)電子科學(xué)與工程學(xué)院學(xué)生。
鄭傳濤(1982.11), 男, 漢族, 吉林大學(xué)電子科學(xué)與工程學(xué)院博士研究生。