指紋門禁系統(tǒng)的結(jié)構(gòu)與設(shè)計(jì)研究
史瑾
(山西運(yùn)城農(nóng)業(yè)職業(yè)技術(shù)學(xué)院,山西 運(yùn)城 044000)
摘要:指紋門禁系統(tǒng)可實(shí)現(xiàn)指紋開門、密碼開門、指紋錄入、指紋管理、密碼管理等功能,在實(shí)際應(yīng)用中與傳統(tǒng)設(shè)備相比具有很大優(yōu)越性,傳統(tǒng)的機(jī)械鎖如有較多用戶使用,就需要有很多鑰匙給每個(gè)用戶,這樣即對(duì)安全性造成威脅同時(shí)鑰匙的管理也難度很大,而指紋鎖完全沒用這種問題,指紋具有唯一性,當(dāng)取消某人進(jìn)入門禁資格時(shí)刪除指紋庫(kù)中該人信息即可。
關(guān)鍵詞:指紋門禁;單片機(jī);液晶顯示器
收稿日期:2014-12-20
作者簡(jiǎn)介:史瑾(1981-),男,山西運(yùn)城人,山西運(yùn)城農(nóng)業(yè)職業(yè)技術(shù)學(xué)院實(shí)驗(yàn)師.
中圖分類號(hào):TP391.4文獻(xiàn)標(biāo)識(shí)碼:B
指紋門禁系統(tǒng),主要作用是用人們的指紋開門,在用人們的指紋相關(guān)信息開門之前,指紋庫(kù)中應(yīng)有相關(guān)的指紋特征信息,所以要有錄入指紋信息這一功能。為了實(shí)現(xiàn)對(duì)指紋庫(kù)中的指紋進(jìn)行管理,因此要有刪除指紋這一項(xiàng)功能。除此之外,為了防止指紋識(shí)別模塊壞了后無法進(jìn)門的情況,本系統(tǒng)還增加了密碼開門模式,驗(yàn)證管理員密碼后可選擇密碼模式還是指紋模式,以此來應(yīng)對(duì)不同的情況。
1系統(tǒng)硬件結(jié)構(gòu)
系統(tǒng)的硬件部分主要包括指紋識(shí)別模塊、微控制器、液晶顯示器、鍵盤、日歷/時(shí)鐘芯片、電控鎖狀態(tài)指示。
①FPM10A指紋模塊由光學(xué)指紋傳感器、高速DSP處理器、高性能指紋比對(duì)算法、大容量FLASH芯片等軟硬件構(gòu)成,性能穩(wěn)定,結(jié)構(gòu)簡(jiǎn)單,具有指紋錄入、圖像處理、指紋比對(duì)、搜索和模板儲(chǔ)存等功能。并具有自主知識(shí)產(chǎn)權(quán);指紋適應(yīng)性強(qiáng);價(jià)格低廉;算法性能優(yōu)異;不同應(yīng)用環(huán)境轉(zhuǎn)換靈活;簡(jiǎn)單易用;低功耗;以及靈活設(shè)置安全等級(jí)等諸多優(yōu)點(diǎn)。
②微控制器選用單片機(jī)STC12C5A60S2,它是宏晶科技生產(chǎn)的單時(shí)鐘/機(jī)器周期的單片機(jī),是高速、低功耗、超強(qiáng)抗干擾的新一代8051單片機(jī),指令代碼完全兼容8051,但速度快8倍-12倍。STC12C5A60S2單片機(jī)中包含中央處理器(CPU)、程序存儲(chǔ)器(Flash)、數(shù)據(jù)存儲(chǔ)器(SRAM)、定時(shí)器/計(jì)數(shù)器、UART串口、串口2、I/O接口、高速A/D轉(zhuǎn)換、SPI接口、PCA、看門狗及片內(nèi)R/C振蕩器和外部晶體振蕩電路等模塊。STC12C5A60S2系列單片機(jī)幾乎包含了數(shù)據(jù)采集和控制中所需的所有單元模塊,可稱得上一個(gè)片上系統(tǒng)。
③液晶顯示器用FYD12864-0402B ,它是一款 4 位/8 位并行、2線或 3 線串行多種接口方式,內(nèi)部含有簡(jiǎn)體中文字庫(kù)的點(diǎn)陣圖形液晶顯示模塊; 顯示分辨率為128×64,內(nèi)置8192個(gè)16*16點(diǎn)漢字和128個(gè)16*8點(diǎn) ASCII 字符集。利用該模塊可靈活的構(gòu)成全中文人機(jī)交互界面。該模塊構(gòu)成的液晶顯示方案與同類型的圖形點(diǎn)陣液晶顯示模塊相比,不論是硬件電路結(jié)構(gòu)還是顯示程序都要簡(jiǎn)潔得多。
④鍵盤上的按鍵和液晶顯示器組成人機(jī)界面,按鍵包括“0”-“9”鍵以及“A”確認(rèn)鍵、“B”返回鍵、“C”刪除鍵、“*”上一頁鍵和“#”下一頁鍵。日常開門只指紋識(shí)別模塊,不需要鍵盤,而錄入指紋、刪除指紋、設(shè)置密碼、時(shí)間、應(yīng)急密碼開門等操作時(shí),要結(jié)合屏幕的提示來完成操作,但在執(zhí)行錄入指紋、刪除指紋、設(shè)置密碼、時(shí)間、應(yīng)急密碼開門操作時(shí),都得先按下“*”鍵后,再選擇各個(gè)功能然后進(jìn)行操作。
⑤日歷/時(shí)鐘芯片采用SD2400。是一種支持IIC串行接口的高精度實(shí)時(shí)時(shí)鐘芯片,CPU可使用該接口通過5位地址尋址來讀寫片內(nèi)32字節(jié)寄存器的數(shù)據(jù)。 SD2400系列內(nèi)置晶振,可保證時(shí)鐘精度為±5ppm(在25℃下),年誤差小于2.5min;該芯片內(nèi)置時(shí)鐘精度調(diào)整功能,可在很寬的范圍內(nèi)校正時(shí)鐘的偏差。通過內(nèi)置或外置的數(shù)字溫度傳感器可設(shè)定適應(yīng)溫度變化的調(diào)整值,實(shí)現(xiàn)在寬溫范圍內(nèi)高精度計(jì)時(shí)。 SD2400系列內(nèi)置的工業(yè)級(jí)電池可保證在外部掉電情況下時(shí)鐘使用壽命為5年—8年時(shí)間;該芯片的內(nèi)部具備電源切換電路,當(dāng)芯片檢測(cè)到主電源掉到電池電壓以下,該芯片會(huì)自動(dòng)轉(zhuǎn)為備電電池供電。
⑥電控鎖狀態(tài)采用LED指示燈顯示方式。
2系統(tǒng)軟件結(jié)構(gòu)
按操作流程或系統(tǒng)職能,軟件主要由以下幾部分構(gòu)成:
2.1 指紋開門。按入指紋信息,系統(tǒng)核對(duì)指紋庫(kù)是否存在匹配指紋,如果存在則執(zhí)行開鎖命令,否則輸出開鎖失敗信息。
2.1.1 指紋比對(duì)即對(duì)當(dāng)前輸入指紋進(jìn)行驗(yàn)證,系統(tǒng)首先執(zhí)行錄入圖像命令,對(duì)指紋區(qū)域的圖像驗(yàn)證是否為指紋,如果是指紋則進(jìn)入下一步,比對(duì)指紋系統(tǒng)通過發(fā)送比對(duì)指紋命令,比對(duì)通過則執(zhí)行開門命令,開門5秒鐘后,系統(tǒng)自動(dòng)執(zhí)行鎖門動(dòng)作。
驗(yàn)證口令VfyPwd
功能說明: 驗(yàn)證模塊握手口令。
表1 指令包格式:
表2 應(yīng)答包格式
注:確認(rèn)碼=00H表示口令驗(yàn)證正確;
確認(rèn)碼=01H表示收包有錯(cuò);
確認(rèn)碼=13H表示口令不正確;
2.1.2 錄指紋圖像 GenImg 。功能說明: 探測(cè)手指,探測(cè)到后錄入指紋圖像存于 ImageBuffer,并返回錄入成功確認(rèn)碼。若探測(cè)不到手指,直接返回?zé)o手指確認(rèn)碼。
表3 指令包格式
表4 應(yīng)答包格式
注:確認(rèn)碼=00H表示錄入成功;
確認(rèn)碼=01H表示收包有錯(cuò);
確認(rèn)碼=02H表示傳感器上無手指;
確認(rèn)碼=03H表示錄入不成功;
2.1.3 精確比對(duì)兩枚指紋特征 Match
功能說明:模塊精確比對(duì)(1∶1)CharBuffer1 與 CharBuffer2 中的特征文件,并給比對(duì)結(jié)果。
表5 指令包格式
表6 應(yīng)答包格式
注:①確認(rèn)碼=00H表示指紋匹配;
確認(rèn)碼=01H表示收包有錯(cuò);
確認(rèn)碼=08H表示指紋不匹配;
②該指令執(zhí)行后,兩特征緩沖區(qū)中的內(nèi)容不變。
2.2 采集新的指紋,首先管理者授權(quán)后才可以采集新的指紋信息,即是管理者指紋比對(duì)驗(yàn)證后,再采集新指紋的特征信息。
2.3 刪除指紋首先管理者授權(quán)后才可以刪除的指紋信息該項(xiàng)操作包括兩種操作方式:按指紋刪除或按ID號(hào)刪除。
2.4 修改管理員登陸密碼和開鎖密碼,管理員可根據(jù)需要修改登錄密碼和開鎖密碼,密碼修改成功后系統(tǒng)會(huì)自動(dòng)保存在單片機(jī)的內(nèi)部flash里,斷電不會(huì)丟失。
3其他模塊驅(qū)動(dòng)
3.1 LCD顯示驅(qū)動(dòng)
LCD12864 中文漢字圖形點(diǎn)陣液晶顯示模塊,自帶中文標(biāo)準(zhǔn)字庫(kù)(控制芯片ST7920)可顯示漢字及圖形,內(nèi)置 8192 個(gè)中文漢字(16X16 點(diǎn)陣)、128個(gè)字符(8X16點(diǎn)陣)及 64X256點(diǎn)陣顯示RAM(GDRAM)。它主要由行驅(qū)動(dòng)器/列驅(qū)動(dòng)器及128*64全點(diǎn)陣液晶顯示器組成,可完成圖形顯示,也可顯示8*4個(gè)(16*16點(diǎn)陣漢字,與外部CPU接口采用串行或并行方式控制)。
3.2 鍵盤輸入模塊軟件設(shè)計(jì)
①4*4矩陣鍵盤識(shí)別處理
4*4矩陣鍵盤,采用P2口的P2.7、P2.6、P2.5、P2.4提供行線,P2.3、P2.2、P2.1、P2.0提供列線。當(dāng)識(shí)別矩陣鍵盤時(shí),首先,識(shí)別有無按鍵按下,讓所有行線均置為低電平,檢查各列線電平的變化,如果有變化說明有鍵被按下,如果沒有,則無鍵被按下。其次,如果有鍵被按下,則識(shí)別具體的按鍵,記下有變化的列行后,立即將所有列線置為低電平,所有行線置為高電平,記下變?yōu)榈碗娖降男芯€,然后通過X、Y坐標(biāo)確定是哪個(gè)按鍵被按下。再編程過程中,要考慮按鍵抖動(dòng)的影響,可以采用軟件延時(shí)的方法消除抖動(dòng)。
②每個(gè)按鍵有它的行值和列值,行值和列值的組合就是識(shí)別這個(gè)按鍵的編碼。矩陣的行線和列線分別通過兩并行接口和CPU通信。每個(gè)按鍵的狀態(tài)同樣需要變成變量“0”和“1”。鍵盤處理程序的任務(wù)是:確定有無鍵按下,判斷哪一個(gè)鍵按下,鍵的功能是什么;還要消除按鍵在閉合或斷開時(shí)的抖動(dòng),兩個(gè)并行口中,一個(gè)輸出掃描碼,使按鍵逐行動(dòng)態(tài)接地,另一個(gè)并行口輸入按鍵狀態(tài),由行掃描值和回饋信號(hào)共同形成鍵編碼而識(shí)別按鍵,通過軟件查表,查出該鍵的功能。
3.3 EEPROM的讀/寫程序模塊軟件設(shè)計(jì)
3個(gè)基本命令——字節(jié)讀,字節(jié)編程,扇區(qū)擦除。
字節(jié)編程:將“1”寫成“1”或“0”,將“0”寫成“0”。如果某字節(jié)是FFH,才可對(duì)其進(jìn)行字節(jié)編程。如果該字節(jié)不是F F H,則須先將整個(gè)扇區(qū)擦除,因?yàn)橹挥小吧葏^(qū)擦除”才可以將“0”變?yōu)椤?”。
扇區(qū)擦除:只有“扇區(qū)擦除”才可能將“0”擦除為“1”。
程序如下:
void IAP_disable(void)
{
IAP_CONTR=0;//關(guān)閉IAP
IAP_CMD=IAP_cmd_idle ; //恢復(fù)待命狀態(tài)
IAP_TRIG=0;//開啟IAP后必須先向該寄存器寫入5A、A5才生效,現(xiàn)在關(guān)閉此項(xiàng)
IAP_ADDRH=0x80;//地址寄存器移至沒有EEPROM的地方
IAP_ADDRL=0x00;
參考文獻(xiàn):
[1]郭天祥.新概念51單片機(jī)C語言教程:入門、提高、開發(fā)、拓展全攻略[M].北京:電子工業(yè)出版社,2010.
[2]陳華,等.一種基于指紋識(shí)別的IC卡門禁系統(tǒng)[J]. 計(jì)算機(jī)工,2012(7).
[3]陳建校,石理.基于指紋識(shí)別系統(tǒng)的應(yīng)用開發(fā)技術(shù)[J].微型機(jī)與應(yīng)用,2001(12).
[4]吳國(guó)英.非接觸IC卡技術(shù)在門禁系統(tǒng)中的應(yīng)用[J].中國(guó)安防產(chǎn)品信息,2004.
[5]譚浩強(qiáng).C語言程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2010(2).
(責(zé)任編輯侯中巖)