??? 摘? 要: 采用EDA技術(shù),利用Max+plusⅡ工作平臺和VHDL語言,設(shè)計了一種新型的電子防盜器。該防盜器具有密碼預(yù)置、修改等功能,且能在3次輸入錯誤后讓系統(tǒng)進(jìn)入定時鎖定并報警。由于充分利用了FPGA的結(jié)構(gòu)特點,因而該防盜器體積小、功耗低、價格低、安全可靠、維護(hù)和升級方便,具有很高的使用價值,可以廣泛應(yīng)用于社會生活和生產(chǎn)的各個領(lǐng)域。?
??? 關(guān)鍵詞: 防盜器; 報警; 密碼; 模塊
?
??? 長期以來人們研制了出各種方式、不同結(jié)構(gòu)的防盜器,按其結(jié)構(gòu)可分四大類:機械式、機電式、電子式和網(wǎng)絡(luò)式[1-6]。雖然種類較多,但從市場發(fā)展情況看,機械式防盜器由于功能性較少、不美觀方便,已經(jīng)開始淡出市場;機電式防盜器耗電量大;網(wǎng)絡(luò)防盜器雖然功能先進(jìn),但一些功能不具普遍應(yīng)用性,且價格較高,在市場上還沒有被大量使用。因此起市場主導(dǎo)的還是電子式防盜器。?
??? 本文介紹的是一種基于FPGA器件的電子式防盜器。它利用Max+plusⅡ工作平臺和VHDL語言來進(jìn)行設(shè)計,具有密碼預(yù)置、修改等功能,且能在3次輸入錯誤后讓系統(tǒng)進(jìn)入定時鎖定并報警等功能。由于使用了FPGA芯片,防盜器的大部分電路都可以通過硬件描述語言實現(xiàn),簡化了芯片的外圍電路,降低了制作成本,提高了保密性和可靠性。?
1 防盜器的功能?
??? 防盜器的密碼為4位,初次使用時需預(yù)置密碼。它的主要功能:?
??? (1)密碼輸入:每按下一個密碼鍵,要求在顯示屏上顯示,并依次左移;?
??? (2)數(shù)字清除:清除數(shù)字輸入,并將輸入置為“0000”;?
??? (3)密碼修改:將當(dāng)前輸入設(shè)為新的密碼;?
??? (4)輸入密碼3次錯誤,防盜器定時鎖定并報警。?
??? 圖1所示為防盜器的鍵盤。鍵盤上各個按鍵的功能如表1所示。?
?
?
2 硬件系統(tǒng)設(shè)計?
??? 防盜器的硬件部分較簡單,其核心為1塊FPGA芯片。主要包括中央處理器FPGA 芯片EPF10K1LC843、輸入小鍵盤、輸出4位數(shù)碼管顯示屏和蜂鳴器,如圖2所示。FPGA芯片用來直接控制其他元件的工作,對小鍵盤的輸入,通過一定的算法實現(xiàn)電子防盜器的功能,蜂鳴器用于誤碼報警。?
?
?
3 軟件系統(tǒng)設(shè)計?
??? 防盜器的軟件部分用VHDL來實現(xiàn),它具有較好的語法嚴(yán)格性,一定程度上限制了錯誤的產(chǎn)生,調(diào)試較容易,在系統(tǒng)描述上占有一定的優(yōu)勢。防盜器的系統(tǒng)軟件設(shè)計主要有輸入模塊、控制模塊。每個模塊又由幾個基本電路組成,其具體結(jié)構(gòu)如圖3所示。?
?
?
3.1 輸入模塊?
??? 輸入模塊由消抖電路和鍵值處理電路組成。因為鍵盤的按鍵是機械式開關(guān),在開關(guān)切換的瞬間會在接觸點出現(xiàn)來回彈跳的現(xiàn)象,雖然只是按了1次鍵,實際產(chǎn)生的按鍵信號卻不只跳動1次,經(jīng)過取樣信號的檢查后,將會造成誤碼判斷,認(rèn)為是按了2次鍵,產(chǎn)生抖動現(xiàn)象。所以需要用消抖電路做消抖處理。?
??? 鍵值處理電路完成數(shù)字密碼清除和存儲的功能。防盜器接收到數(shù)字輸入時,第一個數(shù)字會從顯示屏的最右端開始顯示,此后每新按1個數(shù)字密碼時,顯示器上的數(shù)字就往左移動1位。若想要更改輸入的數(shù)字,可按退格鍵來清除前一個輸入的數(shù)字,或按清除鍵清除輸入的所有數(shù)字,再重新輸入4 位數(shù)字密碼。因設(shè)計的是4位電子防盜器,當(dāng)輸入的數(shù)字鍵超過4 位時,電路只處理前4個數(shù)字,對后面的多余數(shù)字不加理會。信號通過鍵值處理電路傳輸?shù)?a class="innerlink" href="http://ihrv.cn/tags/比較電路" title="比較電路" target="_blank">比較電路和譯碼電路。?
3.2 控制模塊?
??? 控制模塊是整個電路的控制中心,主要完成如下功能:?
??? (1)密碼核對:在密碼更改,開鎖之前必須先核對密碼。?
??? (2)密碼變更:按下此鍵將目前輸入的數(shù)字設(shè)定為新的密碼。 ?
??? (3)激活電鎖:上鎖,上鎖之前必須先設(shè)定密碼才能上鎖。?
??? (4)解除電鎖:檢查輸入的密碼是否正確,正確才開鎖。?
??? (5)報警:輸入的密碼連續(xù)3次錯誤,防盜器定時鎖定并報警。?
??? 控制模塊包括比較電路和狀態(tài)機電路。比較電路的功能是把輸入的密碼與密碼寄存器中存儲的密碼作比較,用高低電平信號表示輸入的對錯,并據(jù)此判斷電鎖的開關(guān)。?
??? 狀態(tài)機電路是控制電路的核心,完成定時鎖定和報警功能。其狀態(tài)轉(zhuǎn)換圖如圖4所示。?
?
?
??? 圖4中,S0:系統(tǒng)待機狀態(tài);S1:狀態(tài)系統(tǒng)輸入密碼第一次錯誤后的狀態(tài);S2:狀態(tài)系統(tǒng)輸入密碼第二次錯誤后的狀態(tài);lock:狀態(tài)系統(tǒng)輸入密碼第三次錯誤后的狀態(tài),系統(tǒng)進(jìn)入鎖定計時并報警的狀態(tài)。effect_out是比較電路產(chǎn)生的密碼對錯的判斷信號。effect_out為高電平時,密碼錯誤;effect_out為低電平時,密碼正確。當(dāng)狀態(tài)機接收到功能按鍵產(chǎn)生的跳變信號時,轉(zhuǎn)換到下一個狀態(tài)。?
??? 密碼3次錯誤后,防盜器進(jìn)入定時鎖定報警狀態(tài),開始計數(shù)信號start=‘1’,計數(shù)器開始計數(shù),并鎖定輸入。計數(shù)器溢出后,溢出信號Full=‘1’,當(dāng)防盜器接收到功能按鍵產(chǎn)生的跳變信號時,轉(zhuǎn)換到下一個狀態(tài)。解除鎖定和報警。?
4 仿真結(jié)果?
??? 仿真波形如圖5所示。圖中,ENLOCK:電鎖開關(guān)輸出;ACC:輸入寄存器;ALARM:報警信號輸出端;COUNT:定時鎖定計數(shù)器;STATE:密碼輸入錯誤計數(shù)器 。防盜器的密碼被預(yù)置為4393,密碼3次輸入錯誤STATE=3時,定時鎖定計數(shù)器COUNT開始計數(shù),并報警ALARM=‘1’。本設(shè)計結(jié)果不僅進(jìn)行了軟件仿真,而且經(jīng)過硬件驗證安全可靠。?
?
?
??? 本設(shè)計中采用了Altera公司的EPF10K10LC843芯片進(jìn)行設(shè)計,可以極大地減少其他分立元件或其他芯片的使用,它具有強大的處理功能和輸入輸出能力,使外圍電路大大簡化,使得設(shè)備設(shè)計成本低而且可靠性高。用軟件實現(xiàn)硬件電路,采用VHDL語言進(jìn)行設(shè)計,具有良好的可移植性,可隨時在線更改邏輯設(shè)計及有關(guān)參數(shù),充分體現(xiàn)了FPGA的優(yōu)越性。該防盜器具有一定的實用性。?
參考文獻(xiàn)?
[1] 李波勇,李姍.基于AT89C2051的多功能電子防盜器.電子世界,2007(4):12-13.?
[2] 基于FPGA的電子防盜器的設(shè)計.科技信息(學(xué)術(shù)版),2006(10):240-241.?
[3] 劉鈺,張有志.一種用VHDL語言設(shè)計的數(shù)字防盜器.信息技術(shù)與信息化, 2004(4) :37-40.?
[4] 謝海良,孔云龍. 基于EDA技術(shù)的電子防盜器電路設(shè)計.漯河職業(yè)技術(shù)學(xué)院學(xué)報,2007(4):196.?
[5] 周瑗,楊麗華. 用VHDL自頂向下設(shè)計數(shù)字防盜器.北京:化工大學(xué)學(xué)報,2000(2):97-99.?
[6] 嚴(yán)士農(nóng).新穎的數(shù)字電子防盜器.電子工程師, 2001(2):48-53.