基于單片機(jī)的遠(yuǎn)程指紋采集終端的設(shè)計(jì)
1 引 言
指紋是指手指末端正面皮膚上凸凹不平產(chǎn)生的紋路。盡管指紋只是人體皮膚的一小部分,但是,它蘊(yùn)涵大量的信息,每個人指紋的紋路在圖案、斷點(diǎn)和交叉點(diǎn)上是各不相同的。指紋識別是利用人體指紋的惟一性與不變性生理特征,將指紋作為人的一種“活的身份證”或一個隨身攜帶的特殊印章來進(jìn)行身份識別的一種技術(shù),其通過比較輸入的指紋特征和預(yù)先保存的合法指紋特征,來驗(yàn)證用戶的真實(shí)身份。
指紋用來作為一個人的身份識別手段有著其他手段不可比擬的優(yōu)越性。目前許多需要確定用戶身份的場合都使用了嵌入式指紋識別設(shè)備,但這些設(shè)備受嵌入式系統(tǒng)限制,往往存儲量小、速率慢,對于大型企業(yè)尤其是分布式企業(yè)的考勤難以勝任。
針對這一情況,設(shè)計(jì)一套基于企業(yè)內(nèi)部局域網(wǎng)的指紋識別系統(tǒng),系統(tǒng)終端通過以太網(wǎng)與數(shù)據(jù)處理服務(wù)器連接,將指紋算法的運(yùn)行、指紋數(shù)據(jù)庫的存儲放在服務(wù)器端。整個系統(tǒng)具有存儲量大、運(yùn)算速度快、功能強(qiáng)等特點(diǎn)。
2 系統(tǒng)硬件設(shè)計(jì)
整個指紋識別系統(tǒng)的硬件結(jié)構(gòu)設(shè)計(jì)框圖如圖1所示,其中數(shù)據(jù)處理服務(wù)器用以存放指紋數(shù)據(jù)庫和進(jìn)行指紋識別算法的實(shí)現(xiàn),而指紋終端用于采集指紋和顯示驗(yàn)證結(jié)果。
系統(tǒng)終端硬件結(jié)構(gòu)如圖2所示,其中單片機(jī)采用SST89E544RC,指紋傳感器采用MBF200。
2.1 控制核心
系統(tǒng)采用SST89E544RC單片機(jī)作為控制核心。SST89系列是美國SST公司推出的高可靠、小扇區(qū)結(jié)構(gòu)的FLASH單片機(jī),內(nèi)部嵌入40 kB的SuperFLASH。單片機(jī)內(nèi)嵌IAP(在應(yīng)用可編程)和ISP(在系統(tǒng)可編程)功能,不占用用戶資源,通過串行口即可在系統(tǒng)仿真和編程,3~5 V工作電壓,工作頻率可達(dá)40 MHz。
2.2 指紋傳感器
指紋識別認(rèn)證系統(tǒng)的首要任務(wù)是如何采集到高質(zhì)量指紋圖像以保證后續(xù)任務(wù)的完成,而指紋圖像質(zhì)量不僅與指紋傳感器自身的性能有關(guān),也與數(shù)據(jù)傳輸通信接口的性能密切相關(guān)。以前的各種指紋識別系統(tǒng)屬于光學(xué)識別系統(tǒng),由于光不能穿透皮膚表層,所以只能夠掃描手指皮膚的表面,或者掃描到死性皮膚層,但不能深入真皮層。在這種情況下,手指表面的干凈程度,直接影響到識別的效果。
對于指紋的采集,系統(tǒng)采用了富士通公司的指紋傳感器MBF200,它屬于電容性傳感器。其電容性傳感器陣列由二維金屬電極組成,所有金屬電極充當(dāng)一個電容板,接觸的手指充當(dāng)?shù)诙€電容板,器件表面的鈍化層作為兩板的絕緣層。當(dāng)手指觸摸傳感器表面時,指紋的高低不平就會在傳感器陣列上產(chǎn)生變化的電容,從而引起二維陣列上電壓的變化,并形成指紋傳感圖像。從而克服了以前光學(xué)識別系統(tǒng)出錯率高、可能仿冒等問題,大大提高了該系統(tǒng)的安全性。
MBF200支持3種接口形式,即MCU接口模式、SPI接口模式和USB接口模式。系統(tǒng)采用微處理器接口模式,在此模式下可將MBF200與51系列單片機(jī)8位數(shù)據(jù)總線直接相連,其接口形式非常簡單,且微處理器接口模式在MBF200的3種接口模式下,數(shù)據(jù)傳送速率最高(30幀/s;USB模式13幀/s;SPI模式為10幀/s),可以滿足對連續(xù)指紋圖像采集和比對的需要。
2.3 數(shù)據(jù)存儲器
為了保存指紋圖像數(shù)據(jù),必須為系統(tǒng)擴(kuò)充外部存儲器。MBF200一幅指紋掃描圖像需要存儲空間75 kB(256×300×8位),因此系統(tǒng)采用SST公司的FLASH存儲器SST 39SF010A對數(shù)據(jù)存儲器進(jìn)行存儲擴(kuò)充,其容量為128 k×8位。由于51單片機(jī)地址線只有16位,系統(tǒng)采用P1口對存儲空間進(jìn)行分段訪問。其中,指紋圖像數(shù)據(jù)及識別數(shù)據(jù)采用固定地址進(jìn)行存儲,數(shù)據(jù)讀取易實(shí)現(xiàn)。
2.4 顯示模塊
LCD顯示器用于顯示中文界面信息。為了方便系統(tǒng)設(shè)計(jì),采用帶有中文字庫的LCD顯示模塊HTM12232Z。
3 軟件設(shè)計(jì)
3.1 系統(tǒng)程序流程
系統(tǒng)軟件功能包括主程序、指紋獲取功能模塊、通信模塊、定時模塊、顯示模塊。系統(tǒng)上電初始化后與服務(wù)器建立連接,取得服務(wù)器時間調(diào)用顯示模塊顯示中文界面及系統(tǒng)時間,然后等待指紋傳感器信號。系統(tǒng)主要工作流程如圖3所示。
3.2 TCP/IP協(xié)議的精簡設(shè)計(jì)
3.2.1 TCP/IP協(xié)議精簡
考慮嵌入式系統(tǒng)CPU處理能力和系統(tǒng)存儲能力限制,系統(tǒng)以高效、節(jié)省資源為目標(biāo),對TCP/IP協(xié)議進(jìn)行精簡(見表1),僅實(shí)現(xiàn)了通信必須的ARP,IP,ICMP和UDP協(xié)議。
在鏈路層上,系統(tǒng)必須實(shí)現(xiàn)IEEE802.3所規(guī)定的CDMA/CD協(xié)議,而此協(xié)議只要采用通用的以太網(wǎng)接口芯片就可支持。為了保證系統(tǒng)在以太網(wǎng)中的通信,系統(tǒng)實(shí)現(xiàn)了ARP應(yīng)答協(xié)議,該協(xié)議用于將IP地址映射成以太網(wǎng)MAC地址。
在網(wǎng)絡(luò)層,由于系統(tǒng)要求能夠在Intranet進(jìn)行通信,因此系統(tǒng)要實(shí)現(xiàn)IP協(xié)議。同時,為了能夠測試系統(tǒng)與網(wǎng)絡(luò)的連接,系統(tǒng)實(shí)現(xiàn)了ICMP協(xié)議中的Ping應(yīng)答協(xié)議。
在傳輸層,TCP為2臺主機(jī)提供面向連接的、可靠的、無重復(fù)的雙向數(shù)據(jù)流傳輸服務(wù),但其實(shí)現(xiàn)對系統(tǒng)資源的耗費(fèi)非常大。而UDP的實(shí)現(xiàn)比較簡單,它在嵌人式應(yīng)用場合可以很好的應(yīng)用。考慮到系統(tǒng)的簡化及速度的要求,采用UDP協(xié)議,為了確保UDP數(shù)據(jù)的到達(dá),在應(yīng)用程序中采用了重復(fù)發(fā)送、回復(fù)確認(rèn)的方式來保證數(shù)據(jù)的正確性。
在應(yīng)用層,由于本嵌入式系統(tǒng)無HTTP,F(xiàn)TP等應(yīng)用,所以其中的協(xié)議無需實(shí)現(xiàn)。
3.2.2 TCP/IP協(xié)議實(shí)現(xiàn)
首先對協(xié)議中使用的公共數(shù)據(jù)結(jié)構(gòu)進(jìn)行定義:如MAC地址格式、IP地址格式、系統(tǒng)的地址配置、緩沖區(qū)格式及大小。其中MAC,IP地址格式都是固定的,系統(tǒng)的配置用于確定系統(tǒng)的IP地址及端口以及MAC地址值。由于系統(tǒng)中傳送的數(shù)據(jù)較大,必須定義用于傳送數(shù)據(jù)的緩沖區(qū),長度為1 500 B,而接收的數(shù)據(jù)十分簡單,因此無需緩沖區(qū)。
其次,定義ARP數(shù)據(jù)幀頭結(jié)構(gòu)及ARP高速緩沖表,數(shù)據(jù)幀必須根據(jù)標(biāo)準(zhǔn)定義,高速緩沖表至少要含有IP地址及相對應(yīng)的MAC地址2項(xiàng)。由于本系統(tǒng)連接的對象只有數(shù)據(jù)服務(wù)器,因此,在系統(tǒng)初始化建立連接時填入ARP緩沖表信息,而不必實(shí)現(xiàn)定時更新。
接著,根據(jù)以太網(wǎng)標(biāo)準(zhǔn)定義IP及ICMP數(shù)據(jù)幀格式。網(wǎng)絡(luò)層的的主要工作有:對上一層傳下來的數(shù)據(jù)包,加上IP首部和IP校驗(yàn)和,發(fā)往下一層;以及對下一層傳上來的數(shù)據(jù)包,進(jìn)行校驗(yàn)和檢查,若正確去掉IP首部,送往上一層;對收到的ICMP的回顯請求包,按照格式組裝1個ICMP的回顯應(yīng)答包并發(fā)送,以便于響應(yīng)服務(wù)器的PING程序。
最后,根據(jù)標(biāo)準(zhǔn)定義UDP數(shù)據(jù)幀格式。這一層的主要工作有:對應(yīng)用層傳下來的數(shù)據(jù)包,加上UDP首部和UDP校驗(yàn)和,發(fā)往下一層。以及對下一層傳上來的數(shù)據(jù)包,進(jìn)行校驗(yàn)和檢查,若正確去掉UDP首部,提出數(shù)據(jù)送給應(yīng)用層。
3.3 數(shù)據(jù)通信的實(shí)現(xiàn)
根據(jù)系統(tǒng)上傳數(shù)據(jù)量大而接收數(shù)據(jù)量很小的特點(diǎn),加之單片機(jī)的處理速度有限,系統(tǒng)將數(shù)據(jù)傳送程序放人到主程序中進(jìn)行調(diào)用,而接收數(shù)據(jù)采用中斷方式。
當(dāng)本地系統(tǒng)有數(shù)據(jù)要發(fā)送時,首先在傳輸層將數(shù)據(jù)加上UDP首部,再調(diào)用網(wǎng)絡(luò)層函數(shù)給其加IP首部,然后到鏈路層從ARP表中查詢MAC地址,填入相應(yīng)位置,并發(fā)給網(wǎng)絡(luò)驅(qū)動程序傳到以太網(wǎng)上。
當(dāng)收到網(wǎng)絡(luò)中斷就讀取數(shù)據(jù),根據(jù)包的種類分別傳給ARP或IP協(xié)議,由每一層自行處理數(shù)據(jù),最后調(diào)用顯示程序顯示接收到的識別結(jié)果。
4 結(jié) 語
系統(tǒng)針對目前嵌人式指紋識別設(shè)備存儲量小、處理速率慢的現(xiàn)狀,采用高性能51系統(tǒng)單片機(jī)作為處理核心與MBF200連接并工作于MCU模式下,設(shè)計(jì)實(shí)現(xiàn)了一款高性的網(wǎng)絡(luò)指紋采集識別終端。系統(tǒng)利用數(shù)據(jù)處理服務(wù)器海量存儲及處理速度高,可實(shí)現(xiàn)快速復(fù)雜匹配算法的優(yōu)點(diǎn)。系統(tǒng)采集速率高,識別性能好。系統(tǒng)可廣泛應(yīng)用于各類企業(yè)考勤應(yīng)用。