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