摘要:電子密碼鎖和普通機械鎖相比具有很多優(yōu)點,廣泛適用于商業(yè)、辦公、個人等應(yīng)用領(lǐng)域。本文討論了一種基于FPGA的電子密碼鎖的設(shè)計方案,軟件部分采用狀態(tài)機描述的方法實現(xiàn),采用狀態(tài)機的描述方法,可以使程序的編寫清晰簡化,具有一定的實用價值。
關(guān)鍵詞:電子密碼鎖;FPGA;狀態(tài)機
中圖分類號:TP311.52 文獻標識碼:A 文章編號:1007—9599 (2012) 14—0000—02
一、引言
電子密碼鎖是一種通過輸入密碼來控制開鎖、閉鎖的數(shù)字電子產(chǎn)品。和傳統(tǒng)機械鎖相比,電子密碼鎖具有許多優(yōu)點:無需配鑰匙,僅需憑密碼實現(xiàn)開閉鎖;保密性比機械鎖高;操作簡單,只需要用按鍵進行控制即可;密碼可以反復改變;當密碼輸入錯誤還可以進行聲光報警等。
電子密碼鎖的實現(xiàn)方法很多,以芯片為控制核心的密碼鎖是目前市場上的主流產(chǎn)品,這類產(chǎn)品主要以單片機的控制實現(xiàn)密碼鎖的主要功能。EDA技術(shù)是目前數(shù)字系統(tǒng)設(shè)計的核心和發(fā)展方向,本文討論了一種通過狀態(tài)機描述實現(xiàn)電子密碼鎖的設(shè)計方法,采用FPGA器件實現(xiàn)核心控制功能,由于FPGA器件具有在線可編程的特點,可以對系統(tǒng)實現(xiàn)升級和擴展。
二、電子密碼鎖的系統(tǒng)功能要求
該電子密碼鎖可以在FPGA芯片的控制下實現(xiàn)以下功能:
(1)系統(tǒng)上電復位后,可通過“設(shè)置密碼”鍵,設(shè)定6位數(shù)字密碼。
(2)每輸入一位密碼,都在LED數(shù)碼管上進行移位顯示。密碼設(shè)置好后,按“上鎖”鍵進行上鎖操作。
(3)在閉鎖狀態(tài)下,按“核對密碼”鍵,可以輸入密碼開鎖,且每輸入一位密碼,在數(shù)碼管上移位顯示“—”,提示已輸入密碼的位數(shù)。
(4)輸入四位核對密碼后,按“開鎖”鍵,若密碼正確則系統(tǒng)開鎖,若密碼錯誤三次以內(nèi),則系統(tǒng)仍然處于閉鎖狀態(tài)。
(5)密碼連續(xù)輸錯三次,蜂鳴器發(fā)出警告信號響10秒鐘。
三、系統(tǒng)的硬件實現(xiàn)
該系統(tǒng)以FPGA芯片作為核心控制部件,實現(xiàn)密碼鎖的主要功能。采用4×4矩陣鍵盤作為數(shù)據(jù)和控制信號輸入,由LED數(shù)碼管動態(tài)顯示、蜂鳴器等作為輸出部分。
(一)核心控制電路
由FPGA芯片作為核心控制部件,實現(xiàn)密碼的主要功能。本設(shè)計采用Altera公司的Cyclone系列芯片,該系列芯片片內(nèi)資源豐富,片外只需擴展時鐘、電源、配置電路、I/O擴展接口即可。
(二)鍵盤輸入電路
本方案采用4×4矩陣鍵盤產(chǎn)生輸入控制信號和數(shù)字密碼。矩陣鍵盤只需4條行線和4條列線進行控制,節(jié)省了FPGA芯片的I/O口資源。該電路配備消抖動電路、按鍵掃描信號、按鍵數(shù)據(jù)緩存等模塊即可工作。
數(shù)字鍵盤中共有“0—9”10個數(shù)字鍵,另外6個按鍵為功能鍵。功能鍵的設(shè)定如下:
1.設(shè)置密碼鍵:按下后可以輸入四位數(shù)字密碼,考慮到密碼鎖的實際使用,在鎖開狀態(tài)時該鍵有效,鎖閉時無效。
2.核對密碼鍵:按下后,可輸入四位密碼進行核對。該鍵在鎖開狀態(tài)下無效,鎖閉狀態(tài)下有效。
3.上鎖鍵:在設(shè)置密碼狀態(tài)下輸入設(shè)置的密碼后,按下該鍵,系統(tǒng)進行閉鎖操作。
4.開鎖鍵:在核對密碼狀態(tài)下,輸入4位密碼后,若密碼正確,系統(tǒng)發(fā)出開鎖控制信號進行開鎖操作,密碼有誤則不開鎖。
5.清除鍵:在設(shè)置密碼或核對密碼時,按下此鍵可以清除前面輸入的密碼,等待重新輸入。
6.復位鍵:按下該鍵,系統(tǒng)進入復位狀態(tài),考慮到實際應(yīng)用,該鍵只在鎖開的狀態(tài)下有效。
(三)顯示電路
本方案采用四位動態(tài)顯示的數(shù)碼管顯示密碼,在設(shè)置密碼時移位顯示密碼的值,在核對密碼的時候移位顯示“—”,確保密碼安全。
四、系統(tǒng)的軟件實現(xiàn)
在Quarters II軟件平臺下,編寫VHDL語言源文件,實現(xiàn)FPGA的邏輯功能。軟件的設(shè)計采用狀態(tài)機的描述法,將密碼鎖的控制過程分為準備、設(shè)置密碼、核對密碼、開鎖、閉鎖等狀態(tài),不同狀態(tài)之間的切換通過相應(yīng)的控制信號來完成。
S0:復位狀態(tài),系統(tǒng)上電復位后或“復位”信號有效即進入此狀態(tài),在該狀態(tài)下可進行密碼的設(shè)置。
S1:設(shè)置密碼狀態(tài),在該狀態(tài)可設(shè)置4位數(shù)字密碼,并允許進行“清除”操作。
S2:閉鎖狀態(tài),設(shè)置密碼成功后進入該狀態(tài),F(xiàn)PGA存儲密碼并控制機械鎖閉合。
S3:核對密碼狀態(tài):在該狀態(tài)下可進行密碼核對操作,允許進行“清除”操作。
S4:開鎖狀態(tài),4位密碼核對正確后,進入該狀態(tài),F(xiàn)PGA控制機械鎖打開并將存儲區(qū)內(nèi)保存的密碼清除。在該狀態(tài)下按“復位”鍵,可回到狀態(tài)S0。
S5:核對一次錯誤狀態(tài),核對密碼時,輸入一次錯誤進入此狀態(tài)。
S6:核對兩次錯誤狀態(tài), 核對密碼時,輸入兩次錯誤進入此狀態(tài)。
S7:核對三次錯誤狀態(tài),此時FPGA控制蜂鳴器發(fā)出10秒的報警音。
各個狀態(tài)之間轉(zhuǎn)換關(guān)系如圖1所示:
五、結(jié)束語
本設(shè)計采用狀態(tài)機的描述方法實現(xiàn)密碼鎖的邏輯功能,基于狀態(tài)機的編程方法使程序結(jié)構(gòu)清晰,在Quarters II軟件平臺下通過編譯、鎖定引腳、配置,系統(tǒng)的仿真結(jié)果和設(shè)計要求一致,能夠完成控制任務(wù)。由于FPGA的可重復編程性,可在此基礎(chǔ)上還通過修改源程序和相應(yīng)外圍電路對密碼鎖的功能進行升級和擴展,該密碼鎖的設(shè)計和開發(fā)方法靈活、高效,具有一定的實際應(yīng)用價值。
參考文獻:
[1]焦素敏.EDA應(yīng)用技術(shù)[M].北京:清華大學出版社,2005
[2]趙立民.可編程邏輯器件與數(shù)字系統(tǒng)設(shè)計[M].北京:機械工業(yè)出版社,2003
[3]陳麗華,何顏平.基于VHDL的數(shù)字密碼鎖設(shè)計[J].國外電子測量技術(shù),2008,(4)
[作者簡介]侯靜(1983—),女,陜西省西安市,助教,研究生,研究方向:電子信息技術(shù)。