0 引言 傳統機械鎖的防盜功能差,在現代高科技安防系統中無(wú)法起到作用,已逐步被更可靠、更智能的電子數字密碼鎖代替。目前市場(chǎng)上的大部分密碼鎖產(chǎn)品是以單片機為核心的,利用軟件進(jìn)行控制,實(shí)際應用中系統穩定性較差且成本高。本文研究的是電子密碼鎖的一種純硬件實(shí)現方案,為彌補傳統技術(shù)的不足,采用EDA技術(shù)在可編程芯片上實(shí)現密碼的存儲、運算等操作,使產(chǎn)品既具有硬件的安全性和高速性,又具有軟件開(kāi)發(fā)的靈活性和易維護性。 1 主要技術(shù)與開(kāi)發(fā)環(huán)境 1.1 EDA技術(shù)及特點(diǎn) EDA(Electronic Design Automation),即“電子設計自動(dòng)化”,是目前電子設計領(lǐng)域中的主流技術(shù)。EDA技術(shù)就是依靠功能強大的電子計算機,在EDA工具軟件平臺上,對以硬件描述語(yǔ)言為系統邏輯描述手段完成的設計文件,自動(dòng)地完成邏輯編譯、化簡(jiǎn)、分割、綜合、優(yōu)化和仿真,直至下載到可編程邏輯器件CPLD/FPGA或專(zhuān)用集成電路ASIC芯片中,實(shí)現特定的電子電路設計功能。與傳統電子設計方法相比,EDA技術(shù)具有以下主要優(yōu)勢: (1)可以在電子設計的各個(gè)階段、各個(gè)層次進(jìn)行計算機模擬驗證; (2)獨特的自頂向下的電子設計方案; (3)使設計者擁有完全的自主權。 1.2 硬件描述語(yǔ)言 VHDL(Very High Speed Integration Circuits Hard-ware Description Language),即“超高速集成電路硬件描述語(yǔ)言”,是當今電子設計領(lǐng)域的主流硬件描述語(yǔ)言。 它具有很好的電路行為描述能力和系統描述能力,且具有與具體硬件電路無(wú)關(guān)、與設計平臺無(wú)關(guān)的特性,使得設計者可以專(zhuān)心致力于系統功能的實(shí)現,而不需要對不影響功能的、與工藝有關(guān)的因素花費過(guò)多的時(shí)間和精力。 1.3 開(kāi)發(fā)環(huán)境 1.3.1 軟件平臺 QuartusⅡ是Altera公司推出的新一代開(kāi)發(fā)軟件,支持多種編輯輸入法,包括圖形輸入法,基于硬件描述語(yǔ)言的文本編輯輸入法和內存編輯輸入法。它支持Altera的IP核,包含了LPM/MegaFunction宏功能模塊庫,使用戶(hù)可以充分利用成熟的模塊,簡(jiǎn)化自己的設計、提高開(kāi)發(fā)效率。 Quartus Ⅱ作為一種可編程邏輯的設計環(huán)境,其強大的設計能力已經(jīng)成為廣大設計人員首選的開(kāi)發(fā)工具,本設計采用的是Quartus Ⅱ9.0版本作為開(kāi)發(fā)平臺。 1.3.2 硬件平臺 CPLD(Complex Programmable Logic Device),即復雜可編程器件,由于CPLD具有編程靈活、集成度高、設計開(kāi)發(fā)周期短、制造成本低、保密性強等特點(diǎn),本文的硬件測試是基于MAXⅡ系列的CPLD上完成的,芯片型號為EPM240T100C5。 【分頁(yè)導航】 第1頁(yè):主要技術(shù)與開(kāi)發(fā)環(huán)境 第2頁(yè):密碼鎖功能要求 第3頁(yè):硬件電路設計 第4頁(yè):仿真與下載 2 密碼鎖功能要求 目前市面上的電子密碼鎖,只允許用戶(hù)輸入固定位數的密碼。但在實(shí)際應用中,密碼位數太多,不便于老年用戶(hù)記憶,而位數太少,又不能滿(mǎn)足一些對安全性能要求高的青年用戶(hù)。本文中,基于CPLD的集成度高、成本低的特點(diǎn),克服了以上缺點(diǎn),讓用戶(hù)自行設定密碼位數,該功能在同行業(yè)產(chǎn)品競爭中有一定的優(yōu)勢。 設計的電子密碼鎖可以完成以下功能: (1)設置密碼鎖的密碼位數n; (2)n位密碼的輸入及顯示; (3)密碼的核對; (4)報警功能; (5)密碼的清除和修改。 主要由密碼輸入電路、核心控制電路和顯示輸出電路構成。其中,輸入電路包括矩陣式鍵盤(pán)、鍵盤(pán)掃描電路、消抖電路、譯碼電路等;控制電路主要完成密碼的輸入、核對、清除和修改等功能;輸出電路控制數碼顯示屏上密碼值的顯示。 【分頁(yè)導航】 第1頁(yè):主要技術(shù)與開(kāi)發(fā)環(huán)境 第2頁(yè):密碼鎖功能要求 第3頁(yè):硬件電路設計 第4頁(yè):仿真與下載 3 硬件電路設計 3.1 輸入電路 本設計采用的是4×3矩陣式鍵盤(pán),如圖1所示,它是由4根I/O線(xiàn)作為行線(xiàn),3根I/O線(xiàn)作為列線(xiàn),在行列線(xiàn)的每一個(gè)交叉點(diǎn)上都設置一個(gè)按鍵,一共有12個(gè)按鍵,分別代表數字0~9、確認鍵和設置鍵,如圖1所示。用戶(hù)如需設置密碼位數,可以長(cháng)按設置鍵達到3s,聽(tīng)到提示音后再輸入密碼位數(本設計暫時(shí)只支持4、6、8位);如需設置新密碼,可以短按設置鍵,提示音后再輸入新的密碼即可。輸入電路應具備矩陣鍵盤(pán)掃描功能、鍵盤(pán)消抖功能以及譯碼等功能。其中,鍵盤(pán)掃描采用是行掃描方式,4根I/O線(xiàn)KEYR3~KEYR0為行掃描信號,其中KEYR3對應第一行,KEYR2對應第二行,依此類(lèi)推。 很顯然,掃描信號的變化順序為:0111、1011、1101、1110,周而復始。在掃描的過(guò)程中,當某鍵被按下時(shí),從KEYC2~KEYC0中讀出的相應列信號為“0”,再將此時(shí)的4位行信號和3位列信號值送至鍵盤(pán)譯碼電路進(jìn)行譯碼,即可得出準確的按鍵值。相反,若從KEYC2~KEYC0讀出的值全為“1”,則表示沒(méi)有鍵被按下,即不做任何操作。如表1所示。 在鍵盤(pán)掃描過(guò)程中,掃描信號在不斷變化,以判斷按鍵的按下和抬起?焖僮兓膾呙栊盘柌粌H使增加了系統功耗,而且還會(huì )對其他敏感電路造成干擾。因此必須進(jìn)行以下改進(jìn):將掃描模式改為鍵按下觸發(fā)掃描方式,即當某鍵被按下后,才觸發(fā)鍵盤(pán)掃描電路產(chǎn)生掃描時(shí)序,鍵被放開(kāi)后,停止對鍵盤(pán)的掃描,使電路處于相對靜止狀態(tài),以減少干擾信號。 另外,在按鍵按下時(shí)刻與開(kāi)始掃描時(shí)刻之間加入一段較小的延時(shí),延時(shí)結束后才允許電路開(kāi)始掃描工作,可以最大限度地避免因鍵盤(pán)抖動(dòng)帶來(lái)的錯誤輸入。 主要VHDL代碼描述如下: 3.2 控制電路 控制電路是整個(gè)系統的核心電路,能根據用戶(hù)輸入的密碼位數進(jìn)行子電路的選擇。由于系統允許用戶(hù)輸入4位、6位或8位密碼,因此子電路有三個(gè),由三選一選擇器決定其中哪個(gè)電路為用戶(hù)服務(wù),見(jiàn)圖2。 圖2中,en是三選一選擇器的工作使能端,它由輸入電路的有效重置信號啟動(dòng)。當用戶(hù)按下矩陣鍵盤(pán)上的重置按鍵長(cháng)達3s后,輸入電路將產(chǎn)生en信號為“1”,從而使選擇器Mux31開(kāi)始工作。如用戶(hù)要設置為6位密碼,則在提示音后按下鍵盤(pán)上的“6”按鍵,其按鍵信號會(huì )傳遞給X6,由選擇器決定后續控制電路為kong6。 主要VHDL代碼描述如下: 對于后續控制電路kong4~kong8,都應具有密碼清除、存儲、核對及修改等功能。由于僅僅是操作數位數不同而已,這三個(gè)電路的VHDL語(yǔ)言描述過(guò)程對設計人員來(lái)說(shuō),幾乎是重復操作,因此大大縮短了設計周期。 控制電路中密碼的存儲是利用寄存器來(lái)實(shí)現的。 寄存器是一個(gè)典型的時(shí)序邏輯電路,在某一特定時(shí)鐘信號的控制下可以裝載一組二進(jìn)制數據并穩定存儲,撤銷(xiāo)該控制信號后信息仍然存放在寄存器中。充分利用VHDL中不完整的if語(yǔ)句能產(chǎn)生時(shí)序電路的特點(diǎn),進(jìn)行電路描述,而不涉及到內部觸發(fā)器,開(kāi)發(fā)效率高。 3.3 輸出電路 輸出電路要準確地將結果以十進(jìn)制形式直觀(guān)地顯示在輸出LED上,并且當用戶(hù)每輸入一位密碼,所有LED上的密碼值左移一位。該電路屬于純組合邏輯電路,可以利用VHDL語(yǔ)言中的case語(yǔ)句描述出其電路功能。 部分VHDL代碼如下: 其中:movesgl表示左移位移量;zin是輸入信號;當movesgl為“000”時(shí)表示不需要左移;當為“001”時(shí),表示需要移動(dòng)一次;“010”表示需要移動(dòng)兩次,以此類(lèi)推。當用戶(hù)通過(guò)矩陣鍵盤(pán)輸入6位密碼時(shí),就需要向左移動(dòng)6次,從而達到密碼在LED數碼管上動(dòng)態(tài)左移的現象。 【分頁(yè)導航】 第1頁(yè):主要技術(shù)與開(kāi)發(fā)環(huán)境 第2頁(yè):密碼鎖功能要求 第3頁(yè):硬件電路設計 第4頁(yè):仿真與下載 4 仿真與下載 4.1 仿真 在編程下載之前,必須利用EDA工具對設計結果進(jìn)行模擬測試,即仿真。仿真是EDA設計過(guò)程中的重要步驟。本文采用的時(shí)序仿真是最接近真實(shí)器件運行特征的仿真,仿真精度較高。以4位密碼電路為例,做出了系統仿真圖,如圖3所示。 從圖3中可以看出,通過(guò)輸入端zin,先后輸入了密碼值“5623”,s0、s1、s2、s3存儲的值在實(shí)時(shí)更新,分析波形,總結該系統基本達到了預期的功能需求,輸出波形正常。 4.2 下載 在QuartusⅡ9.0軟件中,利用集成EDA工具完成的下載步驟如下: (1)根據開(kāi)發(fā)板中可編程CPLD芯片EPM240T100C5的引腳特性,將本系統的頂層設計實(shí)體的端口進(jìn)行引腳分配。 (2)適配器完成適配后生成了POF格式的下載文件,再通過(guò)JTAG編程電纜向CPLD芯片進(jìn)行編程。 (3)單擊下載按鈕Start,即對目標器件進(jìn)行下載操作。當Process進(jìn)度顯示100%時(shí),表示下載成功。 (4)利用開(kāi)發(fā)板上的外圍接口電路,進(jìn)行了硬件的測試。并利用嵌入式邏輯分析儀SignalTap Ⅱ觀(guān)察密碼輸入、修改等運行情況。 5 結語(yǔ) 本文彌補了傳統密碼鎖技術(shù)上的不足,研究出了一種利用VHDL語(yǔ)言,結合EDA技術(shù),在可編程芯片CPLD上構造邏輯電路。由于所有密碼的存儲及運算都通過(guò)純硬件實(shí)現,其邏輯執行速度遠高于單片機。充分利用了CPLD的邏輯可編程性,開(kāi)發(fā)周期短、效率高,設計出來(lái)的產(chǎn)品具有較高的可靠性,且功耗低、體積小、易維護,勢必會(huì )在安防市場(chǎng)中取勝。 【分頁(yè)導航】 第1頁(yè):主要技術(shù)與開(kāi)發(fā)環(huán)境 第2頁(yè):密碼鎖功能要求 第3頁(yè):硬件電路設計 第4頁(yè):仿真與下載 |