周慶芳
【摘 要】電子密碼鎖是一種通過(guò)密碼輸入來(lái)控制電路或是芯片工作,從而控制機(jī)械開(kāi)關(guān)的閉合,完成開(kāi)鎖、閉鎖任務(wù)的電子產(chǎn)品。本文主要闡述了一種基于現(xiàn)場(chǎng)可編程門(mén)陣列FPGA器件的電子密碼鎖的設(shè)計(jì)方法,用FPGA器件構(gòu)造系統(tǒng),所有算法完全由硬件電路來(lái)實(shí)現(xiàn),使得系統(tǒng)的工作可靠性大為提高。
【關(guān)鍵詞】FPGA 電子密碼鎖 原理 設(shè)計(jì)
一、電子密碼鎖的產(chǎn)生
隨著科學(xué)技術(shù)的發(fā)展,在安全技術(shù)防范領(lǐng)域,具有防盜報(bào)警功能的電子密碼鎖逐漸興起,技術(shù)上正日趨成熟,功能也越來(lái)越大。電子密碼鎖是一種通過(guò)密碼輸入來(lái)控制電路或是芯片工作,從而控制機(jī)械開(kāi)關(guān)的閉合,完成開(kāi)鎖、閉鎖任務(wù)的電子產(chǎn)品[1]?,F(xiàn)在應(yīng)用較廣的電子密碼鎖是以芯片為核心,通過(guò)編程來(lái)實(shí)現(xiàn)的。其性能和安全性已大大超過(guò)了機(jī)械鎖[2][3],特點(diǎn)如下:①保密性好,編碼量多,遠(yuǎn)遠(yuǎn)大于彈子鎖,隨機(jī)開(kāi)鎖成功率幾乎為零;②密碼可變,用戶(hù)可以經(jīng)常更改密碼,防止密碼被盜,同時(shí)也可以避免因人員的更替而使鎖的密級(jí)下降;③誤碼輸入保護(hù)。
二、基于FPGA的電子密碼鎖的原理
(一)FPGA的工作原理
FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個(gè)新概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個(gè)部分。FPGA的基本特點(diǎn)主要有:①采用FPGA設(shè)計(jì)ASIC電路,用戶(hù)容易得到合用的芯片;②FPGA可做其他全定制或半定制ASIC電路的中試樣片;③FPGA內(nèi)部有豐富的觸發(fā)器和I/O引腳;④FPGA是ASIC電路中設(shè)計(jì)周期最短、開(kāi)發(fā)費(fèi)用最低、風(fēng)險(xiǎn)最小的器件之一。
(二)QuartusⅡ開(kāi)發(fā)設(shè)計(jì)平臺(tái)
本設(shè)計(jì)使用Altera公司的QuartusⅡ軟件開(kāi)發(fā)平臺(tái)。QuartusⅡ軟件平臺(tái)能滿(mǎn)足各種特定設(shè)計(jì)的需要,是FPGA/CPLD開(kāi)發(fā)集成環(huán)境,也是單芯片可編程系統(tǒng)(SOPC)設(shè)計(jì)的綜合性環(huán)境。
三、基于FPGA的電子密碼鎖的設(shè)計(jì)
(一)電子密碼鎖的設(shè)計(jì)要求
電子密碼鎖的設(shè)計(jì)要求:①需具有密碼鎖輸入功能;②設(shè)置復(fù)位按鍵,以便重新輸入新的密碼;③在密碼管上顯示輸入次數(shù);④拒絕接受超過(guò)規(guī)定次數(shù)的密碼輸入信號(hào);⑤當(dāng)輸入密碼正確時(shí),在數(shù)碼管上顯示字符H,當(dāng)輸入密碼不正確時(shí),在數(shù)碼管上顯示字符E。
(二)電子密碼鎖的方案設(shè)計(jì)
設(shè)計(jì)電子密碼鎖采用VDHL語(yǔ)言輸入的方式實(shí)現(xiàn)[4],通常,開(kāi)發(fā)實(shí)驗(yàn)板上有10個(gè)按鍵K1~K10,其中K1~K9作為密碼輸入按鍵,K10作為復(fù)位按鍵,以便重新開(kāi)始輸入新的密碼。
電子密碼鎖采用狀態(tài)機(jī)和對(duì)按鍵輸入次數(shù)計(jì)數(shù)相結(jié)合的方法,保證只有輸入正確的密碼,狀態(tài)機(jī)才能轉(zhuǎn)換到最后正確的狀態(tài),顯示開(kāi)鎖字符。程序由6個(gè)進(jìn)程組成:進(jìn)程P1和P2將8Hz標(biāo)準(zhǔn)信號(hào)分頻后,產(chǎn)生0.5s的脈沖信號(hào)(carry),與按鍵輸入信號(hào)配合,消除按鍵輸入的抖動(dòng),并作為狀態(tài)轉(zhuǎn)換進(jìn)程P4的時(shí)鐘輸入信號(hào);進(jìn)程P3瑣存按鍵輸入信號(hào),為狀態(tài)機(jī)提供一個(gè)穩(wěn)定的按鍵輸入信號(hào);進(jìn)程P4將下一個(gè)狀態(tài)(next_state)轉(zhuǎn)換為當(dāng)前狀態(tài)(state),進(jìn)程P5產(chǎn)生次態(tài)信號(hào)(next_state),只有當(dāng)有按鍵輸入和狀態(tài)轉(zhuǎn)移控制信號(hào)en為邏輯“1”時(shí)才能產(chǎn)生次態(tài)信號(hào),進(jìn)程P4和P5是電子密碼鎖的核心,密碼的設(shè)置也是編寫(xiě)狀態(tài)機(jī)時(shí)確定的;進(jìn)程P6對(duì)按鍵輸入次數(shù)計(jì)數(shù),并且為顯示按鍵輸入次數(shù)的七段譯碼器BCD碼數(shù)據(jù)。進(jìn)程判斷按鍵輸入次數(shù)是否已輸入了3次:如果輸入密碼的次數(shù)小于等于3,則狀態(tài)轉(zhuǎn)移控制信號(hào)en為邏輯“1”;如果輸入密碼的次數(shù)大于3,則狀態(tài)轉(zhuǎn)移控制信號(hào)en為邏輯“0”,當(dāng)仍有密碼輸入時(shí),禁止?fàn)顟B(tài)發(fā)生變化。
四、電子密碼鎖的時(shí)序仿真驗(yàn)證
電路設(shè)計(jì)完成后,需要進(jìn)行功能仿真和時(shí)序仿真,驗(yàn)證設(shè)計(jì)結(jié)果是否滿(mǎn)足設(shè)計(jì)要求。時(shí)序仿真在文件綜合后,由FPGA適配器映射于具體的芯片,得到文件進(jìn)行仿真,與器件具體特性有關(guān),包含了器件和布線的延時(shí)信息,按要求運(yùn)行仿真器并輸入相應(yīng)參數(shù)進(jìn)行驗(yàn)證。
五、總結(jié)
用FPGA器件構(gòu)造電子密碼鎖的設(shè)計(jì)方法,所有算法完全由硬件電路來(lái)實(shí)現(xiàn),并且由于FPGA具有現(xiàn)場(chǎng)可編程功能,當(dāng)設(shè)計(jì)需要更改時(shí),只需更改FPGA中的控制和接口電路,利用EDA工具將更新后的設(shè)計(jì)下載到FPGA中即可,無(wú)須更改外部電路的設(shè)計(jì),大大提高了設(shè)計(jì)的效率。
【參考文獻(xiàn)】
[1]王衛(wèi)兵,劉克剛,朱秋萍.用FPGA的電子密碼鎖[J].電子技術(shù),2005,32(01):26-28.
[2]許琦.基于FPGA的電子密碼鎖的設(shè)計(jì)[J].科技信息(學(xué)術(shù)版),2006(10):10-11.
[3]李連華.基于FPGA的電子密碼鎖設(shè)計(jì)[J].中國(guó)科技信息,2006(01):63.
[4]劉鈺,張有志.一種用VHDL語(yǔ)言設(shè)計(jì)的數(shù)字密碼鎖[J].信息技術(shù)與信息化,2004(04):37-40.