基于FPGA的多功能電子密碼鎖設計
3.2 控制電路
本文引用地址:http://butianyuan.cn/article/235292.htm控制電路是整個系統(tǒng)的核心電路,能根據(jù)用戶輸入的密碼位數(shù)進行子電路的選擇。由于系統(tǒng)允許用戶輸入4 位、6 位或8 位密碼,因此子電路有三個,由三選一選擇器決定其中哪個電路為用戶服務,見圖2.
?
?
圖2中,en是三選一選擇器的工作使能端,它由輸入電路的有效重置信號啟動。當用戶按下矩陣鍵盤上的重置按鍵長達3 s后,輸入電路將產(chǎn)生en信號為‘1',從而使選擇器Mux31 開始工作。如用戶要設置為6 位密碼,則在提示音后按下鍵盤上的“6”按鍵,其按鍵信號會傳遞給X6,由選擇器決定后續(xù)控制電路為kong6.
主要VHDL代碼描述如下:
?
?
對于后續(xù)控制電路kong4~kong8,都應具有密碼清除、存儲、核對及修改等功能。由于僅僅是操作數(shù)位數(shù)不同而已,這三個電路的VHDL語言描述過程對設計人員來說,幾乎是重復操作,因此大大縮短了設計周期。
控制電路中密碼的存儲是利用寄存器來實現(xiàn)的。
寄存器是一個典型的時序邏輯電路,在某一特定時鐘信號的控制下可以裝載一組二進制數(shù)據(jù)并穩(wěn)定存儲,撤銷該控制信號后信息仍然存放在寄存器中。充分利用VHDL中不完整的if語句能產(chǎn)生時序電路的特點,進行電路描述,而不涉及到內(nèi)部觸發(fā)器,開發(fā)效率高。
3.3 輸出電路
輸出電路要準確地將結果以十進制形式直觀地顯示在輸出LED 上,并且當用戶每輸入一位密碼,所有LED上的密碼值左移一位。該電路屬于純組合邏輯電路,可以利用VHDL語言中的case語句描述出其電路功能。
部分VHDL代碼如下:
?
?
其中:movesgl 表示左移位移量;zin 是輸入信號;當movesgl為“000”時表示不需要左移;當為“001”時,表示需要移動一次;“010”表示需要移動兩次,以此類推。當用戶通過矩陣鍵盤輸入6 位密碼時,就需要向左移動6 次,從而達到密碼在LED數(shù)碼管上動態(tài)左移的現(xiàn)象。
4 仿真與下載
4.1 仿真
在編程下載之前,必須利用EDA 工具對設計結果進行模擬測試,即仿真。仿真是EDA 設計過程中的重要步驟。本文采用的時序仿真是最接近真實器件運行特征的仿真,仿真精度較高。以4位密碼電路為例,做出了系統(tǒng)仿真圖,如圖3所示。
?
?
從圖3中可以看出,通過輸入端zin,先后輸入了密碼值“5623”,s0,s1,s2,s3存儲的值在實時更新,分析波形,總結該系統(tǒng)基本達到了預期的功能需求,輸出波形正常。
4.2 下載
在QuartusⅡ9.0軟件中,利用集成EDA工具完成的下載步驟如下:
(1)根據(jù)開發(fā)板中可編程CPLD芯片EPM240T100C5的引腳特性,將本系統(tǒng)的頂層設計實體的端口進行引腳分配。
(2)適配器完成適配后生成了POF 格式的下載文件,再通過JTAG編程電纜向CPLD芯片進行編程。
(3)單擊下載按鈕Start,即對目標器件進行下載操作。當Process進度顯示100%時,表示下載成功。
(4)利用開發(fā)板上的外圍接口電路,進行了硬件的測試。并利用嵌入式邏輯分析儀SignalTap Ⅱ觀察密碼輸入、修改等運行情況。
5 結語
本文彌補了傳統(tǒng)密碼鎖技術上的不足,研究出了一種利用VHDL語言,結合EDA技術,在可編程芯片CPLD 上構造邏輯電路。由于所有密碼的存儲及運算都通過純硬件實現(xiàn),其邏輯執(zhí)行速度遠高于單片機。充分利用了CPLD的邏輯可編程性,開發(fā)周期短、效率高,設計出來的產(chǎn)品具有較高的可靠性,且功耗低、體積小、易維護,勢必會在安防市場中取勝。
數(shù)字濾波器相關文章:數(shù)字濾波器原理
評論