頡洪睿, 孫丹丹, 魏學(xué)軍
(北京郵電大學(xué) a. 信息與通信工程學(xué)院; b. 電子工程學(xué)院, 北京 100876)
?
基于CPLD的智能密碼鎖設(shè)計(jì)與實(shí)現(xiàn)
頡洪睿a, 孫丹丹b, 魏學(xué)軍b
(北京郵電大學(xué) a. 信息與通信工程學(xué)院; b. 電子工程學(xué)院, 北京 100876)
隨著可編程邏輯器件的發(fā)展,EDA技術(shù)已成為硬件系統(tǒng)電路設(shè)計(jì)的重要手段。本文提出了一種基于EDA技術(shù),采用自頂向下的設(shè)計(jì)方法,能夠快速設(shè)計(jì)、開發(fā)智能密碼鎖的方案,并闡述了其工作原理和軟硬結(jié)合的設(shè)計(jì)理念。本方案以復(fù)雜可編程邏輯器件(CPLD)為核心,配合外圍電路,在Quartus II環(huán)境下,利用VHDL語言編程實(shí)現(xiàn)。本文詳細(xì)介紹了頂層文件和子模塊的設(shè)計(jì)過程,其中包含了點(diǎn)陣動態(tài)掃描、按鍵防抖、抗干擾等工程技術(shù),并涉及系統(tǒng)仿真分析與優(yōu)化。硬件測試結(jié)果表明:本方案所設(shè)計(jì)的智能密碼鎖功能豐富、操作便捷、安全性高;電路結(jié)構(gòu)簡單、系統(tǒng)可靠性高、體積小、易于維護(hù)升級、實(shí)用性強(qiáng)。
密碼鎖; CPLD; EDA; VHDL
近年來,傳統(tǒng)機(jī)械鎖的安全性能已經(jīng)不能滿足用戶需求,電子密碼鎖由于保密性好,安全系數(shù)高,受到了廣大用戶的青睞?;诖耍疚奶岢隽艘环N高性能智能密碼鎖的實(shí)現(xiàn)方案。利用復(fù)雜可編程邏輯芯片(CPLD),結(jié)合電子設(shè)計(jì)自動化(EDA)技術(shù)和VHDL語言,采用自頂向下的設(shè)計(jì)方法,設(shè)計(jì)了一款智能密碼鎖[1-5]。該密碼鎖擁有更改密碼、清除密碼、聲光報警等功能,具有安全性高、功耗低、價格便宜,維護(hù)升級方便的特點(diǎn),具有較好的應(yīng)用前景。
1.1 總體設(shè)計(jì)
本設(shè)計(jì)基于QuartusII軟件開發(fā)平臺,使用VHDL語言,運(yùn)用自頂向下的設(shè)計(jì)方法,根據(jù)整個系統(tǒng)性能的描述和要求,進(jìn)行系統(tǒng)的分解,將整體劃分為6個子模塊,分別是分頻器、控制器、按鍵防抖、鍵盤模塊、數(shù)碼管顯示模塊、點(diǎn)陣顯示模塊[6]。密碼鎖的總體設(shè)計(jì)框圖如圖1所示。
1.2 模塊設(shè)計(jì)
根據(jù)總體規(guī)劃,依次設(shè)計(jì)各個模塊的具體功能[7-8]。
(1) 分頻器。采用串行分頻的方式,以最大限度的節(jié)省資源。將50 MHz的系統(tǒng)頻率分為1 kHz的高頻信號,和250 Hz的低頻信號供其它模塊使用。
(2) 鍵盤模塊。根據(jù)鍵盤的原理圖,采取列掃描的方法。即每個時鐘周期, 列掃描信號按照0111、1011、1101、1110的順序循環(huán),同時讀出行信號的有效值。行列譯碼后,就可得到準(zhǔn)確的按鍵值。利用這種方法,可極大地節(jié)省I/O資源[9]。
在鍵盤掃描過程中,需要考慮按鍵抖動帶來的一系列問題。按鍵時產(chǎn)生的抖動會導(dǎo)致譯碼電路得到錯誤的譯碼值,若直接輸出譯碼結(jié)果,會使整個系統(tǒng)的穩(wěn)定性下降。因此,消抖處理是必不可少的。本設(shè)計(jì)采用如下的消抖方案。首先進(jìn)行譯碼,再對譯碼結(jié)果進(jìn)行消抖處理,采用計(jì)數(shù)器消抖的辦法。該方案可以最大限度地提高系統(tǒng)的抗干擾能力[10]。
(3) 控制器。該部分是密碼鎖的核心,應(yīng)具有密碼存儲、比對、修改,并控制其它模塊工作等核心功能。而有限狀態(tài)機(jī)及其設(shè)計(jì)技術(shù)是數(shù)字系統(tǒng)設(shè)計(jì)中的重要組成部分,是實(shí)現(xiàn)高效率高可靠邏輯控制的重要途徑[11-12]。綜上,控制器采用Mealy型狀態(tài)機(jī)來實(shí)現(xiàn)??刂破鞲鶕?jù)現(xiàn)狀態(tài)和輸入信號,控制狀態(tài)轉(zhuǎn)移,并輸出指令控制其它模塊的工作。在VHLD實(shí)現(xiàn)過程中,通過三進(jìn)程的描述方式來實(shí)現(xiàn),分別描述狀態(tài)機(jī)的次態(tài)邏輯,狀態(tài)寄存器和輸出邏輯。
具體來說,就是在第一個進(jìn)程中,以當(dāng)前狀態(tài)和轉(zhuǎn)移條件信號為敏感量,描述狀態(tài)機(jī)的次態(tài)邏輯。在第二個進(jìn)程中,以時鐘和輸入信號為敏感量,通過時序電路先完成狀態(tài)轉(zhuǎn)移,即將次態(tài)轉(zhuǎn)為現(xiàn)態(tài),再對輸入信號進(jìn)行處理、判斷,根據(jù)判斷結(jié)果給相應(yīng)的轉(zhuǎn)移條件信號賦值。在最后一個進(jìn)程內(nèi),以當(dāng)前狀態(tài),輸入信號為敏感量,通過組合邏輯決定狀態(tài)機(jī)的輸出,并用這些輸出信號去控制其它模塊的工作。這樣描述有利于對狀態(tài)機(jī)的組合邏輯部分和時序邏輯部分分別測試,降低系統(tǒng)的開發(fā)難度[13]。控制器的流程圖如圖2所示。
(4) 顯示模塊。采用6 b共陰極數(shù)碼管進(jìn)行顯示。因?yàn)閿?shù)字電路處理的都是二進(jìn)制信息,不便于用戶操作。數(shù)碼管的功能是將控制器傳遞的信息直觀的顯示出來,并能夠根據(jù)指令,將顯示的數(shù)據(jù)移位,方便用戶使用。
(5) 點(diǎn)陣顯示模塊。使用動態(tài)掃描的方法,利用人眼視覺暫留的原理顯示穩(wěn)定的圖像。其中,在點(diǎn)陣模塊內(nèi)置了一個小的分頻器,產(chǎn)生低頻信號(5 Hz左右)。點(diǎn)陣用高頻信號顯示靜態(tài)圖像,低頻信號切換要顯示圖像,從而完成動畫的顯示。
(6) 按鍵防抖??紤]到用戶每次按壓鍵盤時間的不同、按鍵時信號抖動等問題。為了密碼鎖的流暢運(yùn)行,首先對按鍵的信號進(jìn)行處理。消除抖動后送至控制器。
1.3 頂層文件設(shè)計(jì)
按照設(shè)計(jì)方案,編寫各模塊代碼,首先分析仿真波形,調(diào)試后再進(jìn)行實(shí)際測試。然后尋找問題,再逐步修改并完善代碼。當(dāng)各模塊滿足設(shè)計(jì)要求后,利用原件例化功能將模塊封裝為原理圖,供頂層文件調(diào)用。在頂層用QuartusII原理圖連接各個模塊。如圖3所示。分頻器輸出兩路信號,高頻時鐘供控制器,點(diǎn)陣和顯示模塊使用,低頻時鐘供防抖模塊和鍵盤使用。按鍵和鍵盤將模塊將輸入信息送至控制器,控制器處理后控制點(diǎn)陣和顯示模塊正常工作,提示用戶進(jìn)行操作。
圖3 VHDL頂層文件
2.1 仿真波形
EDA仿真軟件的使用可有效地驗(yàn)證系統(tǒng)功能,發(fā)現(xiàn)并糾正存在的錯誤,識別數(shù)據(jù)沖突等設(shè)計(jì)缺陷。從而幫助設(shè)計(jì)者完善設(shè)計(jì)方案,消除組合邏輯電路中的競爭和冒險,并優(yōu)化系統(tǒng)速度[14-15]。
2.1.1 鍵盤模塊仿真結(jié)果
KB_IN為鍵盤輸入信號,KB_OUT為鍵盤模塊的輸出結(jié)果,沒有按鍵按下時,KB_OUT輸出為“10000”。對比圖4中1,2,3部分可以看出。只有當(dāng)鍵盤按下足夠長的時間后,才會產(chǎn)生穩(wěn)定的輸出,持續(xù)一段時間后自動停止輸出。而當(dāng)按鍵時間過短,或是有抖動時,都沒有輸出。這樣便于控制器準(zhǔn)確獲得按鍵信息,為整個密碼鎖的正常工作奠定了基礎(chǔ)。
圖4 鍵盤模塊仿真結(jié)果
2.1.2 控制器仿真結(jié)果
圖5中KB_OUT表示鍵盤輸入,smg_num為數(shù)碼管顯示輸出,receive_count表示輸入數(shù)字的位數(shù)。圖中:(1)表示有按鍵按下,(2)表示輸入密碼的個數(shù),(3)表示確認(rèn)密碼鍵,(4)位狀態(tài)機(jī)的狀態(tài)。從(2)中可以看到,每次輸入一個數(shù)字,記錄輸入數(shù)字位數(shù)的信號值加1。對比圖中(1)~(4)可以看出,只用當(dāng)輸入密碼位數(shù)大于3時,才能確認(rèn)密碼,隨后狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)移,進(jìn)入下一狀態(tài)。
圖中(5)表示解鎖的過程,輸入正確的密碼后,狀態(tài)轉(zhuǎn)移。從圖中可以看出,密碼鎖完成了設(shè)置密碼和解鎖的操作。此外,對比圖中圓圈內(nèi)部分可以發(fā)現(xiàn),設(shè)置密碼時,數(shù)碼管上顯示輸入的數(shù)字,而在閉鎖狀態(tài)時,數(shù)碼管只顯示“—”,提示用戶輸入密碼的位數(shù)。在提高密碼鎖保密性的同時,也使得操作更為人性化。
2.2 結(jié)果分析
通過仿真后,進(jìn)行硬件測試。在閉鎖時,若輸入密碼正確,密碼鎖打開,此時可以重置或修改密碼,且密碼位數(shù)4~6位可調(diào);若輸入錯誤,蜂鳴器、LED報警,點(diǎn)陣也動態(tài)顯示密碼錯誤的警示信息,此時可以通過鍵盤按鍵來關(guān)閉警報,系統(tǒng)運(yùn)行正常。
硬件測試結(jié)果表明,密碼鎖達(dá)到了設(shè)計(jì)要求,且為進(jìn)一步的升級維護(hù)留下了空間。
圖5 控制器仿真結(jié)果
本文介紹了一種基于CPLD的密碼鎖設(shè)計(jì)方案和實(shí)現(xiàn)方法,詳細(xì)介紹了主要功能模塊和仿真波形。密碼鎖性能指標(biāo)可以滿足日常生活的需求,且系統(tǒng)體積小,結(jié)構(gòu)簡單,安全性高,保密性強(qiáng),成本低,便于維護(hù)和升級,有良好的應(yīng)用前景。
[1] 劉培植,胡春靜.數(shù)字電路與邏輯設(shè)計(jì)[M].北京:北京郵電大學(xué)出版社, 2011.
[2] 劉愛榮. EDA技術(shù)與CPLD/FPGA開發(fā)應(yīng)用簡明教程[M].2版.北京:清華大學(xué)出版社,2013.
[3] 馬金明,呂鐵軍.數(shù)字系統(tǒng)與邏輯設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2007.
[4] 潘 松,黃繼業(yè).EDA技術(shù)實(shí)用教程[M].4版.北京:科學(xué)出版社,2013.
[5] 黃正謹(jǐn),徐 堅(jiān),章小麗,等.CPLD系統(tǒng)設(shè)計(jì)技術(shù)入門與應(yīng)用[M].北京:電子工業(yè)出版社,2002.
[6] 李 欣,張海燕.VHDL數(shù)字系統(tǒng)設(shè)計(jì)[M].北京:科學(xué)出版社, 2009.
[7] 蔣 青,呂 翊.基于EDA技術(shù)的數(shù)字系統(tǒng)設(shè)計(jì)[J].重慶郵電大學(xué)學(xué)報(自然科學(xué)版),2003,15(3):92-94.
[8] 任曉東,文 博.CPLD/FPGA高級應(yīng)用開發(fā)指南[M].北京:電子工業(yè)出版社,2003.
[9] 施幫利,楊 奕.基于FPGA的4*4鍵盤掃描電路的改進(jìn)設(shè)計(jì)[J].西南師范大學(xué)學(xué)報(自然科學(xué)版),2013,38(3):67-70.
[10] 許德成.基于FPGA的按鍵消抖設(shè)計(jì)[J].吉林師范大學(xué)學(xué)報(自然科學(xué)版),2009,30(4):154-156.
[11] 袁東明,史曉東.現(xiàn)代數(shù)字電路與邏輯設(shè)計(jì)實(shí)驗(yàn)教程[M].北京:北京郵電大學(xué)出版社,2011.
[12] 宋澤明,陳文楷.基于VHDL的有限狀態(tài)機(jī)設(shè)計(jì)[J].北京工業(yè)大學(xué)學(xué)報,2005,31(1): 21-24.
[13] 單長虹.用VHDL設(shè)計(jì)有限狀態(tài)機(jī)的方法[J].電子技術(shù)應(yīng)用,2001,27(7):11-13.
[14] 秦磊華,王小蘭.EDA仿真在組成原理設(shè)計(jì)性實(shí)驗(yàn)中的應(yīng)用[J],實(shí)驗(yàn)室研究與探索,2009,28(4):79-82.
[15] 董秀潔,楊 艷,周 游.FPGA/CPLD選型與設(shè)計(jì)優(yōu)化[J].化工自動化及儀表,2009,36(3): 60-63.
Design of Intelligent Combination Clock Based on CPLD
XIEHongr-ruia,SUNDan-danb,WEIXue-junb
(a. School of information and Communication Engineering; b. School of Electronic Engineering;Beijing University of Posts and Telecommunications, Beijing 100876, China)
With the development of programmable logic devices, the EDA technology has become an important means of the hardware circuit design of systems. This paper presents a design scheme which is able to quickly design and develop electron password lock based on the EDA technology and the top-down design method, and elaborates its working principles and the design method of hardware and software combination. This scheme takes the CPLD as the core. With the help of external circuit and under the Quartus II environment, the scheme is realized by using the VHDL language. The paper introduces the design process of top-level files and sub-module, which contains engineering technology, such as lattice dynamic scanning, anti-shake of button, anti-jamming and so on. It also relates to simulation and optimization. Hardware test shows that this electron password lock has the advantages of feature-rich, easy to operate, high security, simple circuit structure, high system reliability, small volume, easy to maintain and upgrade, and strong practicability.
electron password lock; CPLD; EDA; VHDL
2015-03-25
北京郵電大學(xué)教改項(xiàng)目(00005782)
頡洪睿(1994-),男,甘肅蘭州人,本科生,主攻信息工程。E-mail:x316639495@126.com
孫丹丹(1978-),女,黑龍江哈爾濱人,博士,講師,主要從事無線移動Ad Hoc網(wǎng)絡(luò),寬帶通信網(wǎng)的研究和教學(xué)。
Tel:010-62282134,E-mail:sdd661@bupt.edu.cn.
TP 312
A
1006-7167(2015)11-0099-04