基于Max+PlUsⅡ和VHDL的電子密碼鎖設(shè)計(jì)
來(lái)源:現(xiàn)代電子技術(shù) 作者:高倩,謝海良 漯河職業(yè)技術(shù)學(xué)院
近年來(lái),隨著生活水平的不斷改善,個(gè)人財(cái)富日益增長(zhǎng),人們對(duì)安全防盜的要求也逐漸提高。安全可靠、使用方便的電子密碼鎖成了人們防盜的首選。以Max+PlusⅡ(Multiple Array Matrix and ProgrammingLogic User SystemⅡ,多陣列矩陣及可編程邏輯用戶(hù)系統(tǒng)Ⅱ)為工作平臺(tái),使用PLD可編程器件和VHDL語(yǔ)言設(shè)計(jì)的帶音樂(lè)的電子密碼鎖具有密碼預(yù)置,誤碼鎖死及*音樂(lè)提示等功能。這種設(shè)計(jì)不僅簡(jiǎn)化了系統(tǒng)結(jié)構(gòu),降低了成本,更提高了系統(tǒng)的可靠和保密性。采用PLD可編程邏輯器件開(kāi)發(fā)的數(shù)字系統(tǒng),可以方便地升級(jí)和改進(jìn)。
1設(shè)計(jì)思路
密碼鎖電路由鍵盤(pán)控制、密碼設(shè)置和音樂(lè)演奏三大功能模塊組成,原理如圖1所示。Count,Keyvalue,Contrl,Smdisplay構(gòu)成鍵盤(pán)控制模塊,Songer是音樂(lè)演奏模塊,Set是密碼設(shè)置模塊。
1.1鍵盤(pán)控制
鍵盤(pán)主要完成向系統(tǒng)輸入數(shù)據(jù),傳送命令等功能。它是一個(gè)機(jī)械彈性按鍵開(kāi)關(guān)的集合,利用機(jī)械觸點(diǎn)的合、斷作用產(chǎn)生高、低電平。通過(guò)對(duì)電平高低狀態(tài)的檢測(cè),以確認(rèn)按鍵按下與否。一個(gè)電壓信號(hào)通過(guò)機(jī)械觸點(diǎn)的斷開(kāi)、閉合過(guò)程的波形如圖2所示。
在該鍵盤(pán)電路中,Count模塊提供鍵盤(pán)的行掃描信號(hào)Q[3..0]。在沒(méi)有按鍵按下時(shí),信號(hào)EN為高電平,行掃描輸出信號(hào)Q[3..0]的循環(huán)變化順序?yàn)?001 00100100 1000 0001(依次掃描4行按鍵);當(dāng)有按鍵按下時(shí),信號(hào)EN為低電平,行掃描輸出信號(hào)Q[3..0]停止掃描,并鎖存當(dāng)前的行掃描值。例如按下第一行的按鍵,那么Q[3..0]=0001。
Keyvalue模塊的主要功能是對(duì)輸入按鍵的行信號(hào)Q[3..0]和列信號(hào)14[3..0]的當(dāng)前組合值進(jìn)行判斷來(lái)確定輸入按鍵的鍵值。
Contrl模塊的主要功能是實(shí)現(xiàn)按鍵的消抖,判斷是否有按鍵按下。確保對(duì)按鍵的提取處于圖2所示的閉合穩(wěn)定時(shí)間范圍內(nèi),這就對(duì)本模塊的輸入時(shí)鐘信號(hào)有一定的要求,在本設(shè)計(jì)中該模塊輸入的時(shí)鐘信號(hào)頻率為64 Hz。
Smdisplay模塊主要是完成數(shù)碼管動(dòng)態(tài)掃描和七段譯碼顯示的功能。
1.2音樂(lè)演奏電路Songer
根據(jù)聲樂(lè)學(xué)知識(shí),組成樂(lè)曲的每個(gè)音符的發(fā)音頻率值及其持續(xù)的時(shí)間是樂(lè)曲能連續(xù)演奏所需的兩個(gè)基本要素。獲得這兩個(gè)要素所對(duì)應(yīng)的數(shù)值以及通過(guò)純硬件的手段來(lái)利用這些數(shù)值實(shí)現(xiàn)所希望樂(lè)曲的演奏效果是關(guān)鍵。如圖3所示,該電路需要由NOTETABS(音調(diào)發(fā)生器)、TONETABA、SPEAKER(數(shù)控分頻器)三個(gè)模塊組成,分別實(shí)現(xiàn)了聲音產(chǎn)生、節(jié)拍控制、音調(diào)控制的功能。
1.3密碼設(shè)置
Set模塊是實(shí)現(xiàn)密碼鎖功能的核心模塊。其主要作用是設(shè)置密碼,Set為設(shè)置密碼的有效信號(hào),可以實(shí)現(xiàn)修改密碼的功能。En為輸入密碼確認(rèn)信號(hào),當(dāng)輸入完六位密碼后確認(rèn)輸入,一旦輸入的密碼跟所設(shè)置的密碼一致時(shí),則輸出信號(hào)OP有效(高電平);OP控制演奏音樂(lè),此時(shí)音樂(lè)響起。若密碼不正確,則指示輸入錯(cuò)誤及輸入次數(shù),輸完三次無(wú)效后密碼鎖鎖死,必須由RESET信號(hào)(啟動(dòng)信號(hào),給一個(gè)低電平)重新打開(kāi)密碼鎖功能。
2電路的VHDL描述
鍵盤(pán)控制電路,音樂(lè)演奏電路以及密碼設(shè)置模塊均使用硬件描述語(yǔ)言VHSIC Hardware Description Language(VHDL)設(shè)計(jì)而成。例如:TONETABA的VHDL模型如下:
VHDL語(yǔ)言具有很強(qiáng)的電路描述和建模能力,能從多個(gè)層次對(duì)數(shù)字系統(tǒng)進(jìn)行建模和描述,支持各種模式的設(shè)計(jì)方法:自頂向下與自底向上或混合方法,從而大大簡(jiǎn)化了硬件的設(shè)計(jì)任務(wù),提高了設(shè)計(jì)效率和可靠性。它同時(shí)具有與具體硬件電路無(wú)關(guān)和與設(shè)計(jì)平臺(tái)無(wú)關(guān)的特性,所以用VHDL進(jìn)行電子系統(tǒng)設(shè)計(jì),設(shè)計(jì)者可以專(zhuān)心致力于其功能的實(shí)現(xiàn),而不需要對(duì)其他相關(guān)因素花費(fèi)過(guò)多的時(shí)間和精力。
3設(shè)計(jì)步驟
3.1設(shè)計(jì)輸入
首先在合適的路徑下建立本設(shè)計(jì)的文件夾,然后用VHDL語(yǔ)言編輯Count,Keyvalue,Contrl,Smdisplay等電路,并在Max+PlusⅡ軟件中使用文本編輯器輸入上述各電路模塊的VHDL程序,編譯生成各模塊;最后在Max+PlusⅡ軟件中使用圖形編輯器以自底向上的方法編輯原理圖。先編輯圖3電路,以Singer.gdf命名,其次使用“Create default Symbol”生成Songer模塊,然后再編輯如圖1所示原理電路圖。
3.2仿真測(cè)試及編程下載配置
將設(shè)計(jì)好的項(xiàng)目存盤(pán),并將其設(shè)置成Project。選擇目標(biāo)器件為ACEX系列中的EPlK30QC208-2,啟動(dòng)編譯,如果發(fā)現(xiàn)編譯出現(xiàn)錯(cuò)誤,修正后再次編譯。編譯后即可對(duì)波形文件進(jìn)行仿真,并進(jìn)行測(cè)試和波形分析。分析完成后進(jìn)行編程下載配置。
3.3硬件測(cè)試
在高電平時(shí),通過(guò)鍵盤(pán)的0~F號(hào)鍵進(jìn)行6位密碼輸入,密碼輸入完畢后通過(guò)單擊確認(rèn)鍵進(jìn)行密碼設(shè)置確認(rèn)。當(dāng)輸入的密碼與設(shè)置的密碼一致時(shí),揚(yáng)聲器開(kāi)始循環(huán)演奏樂(lè)曲,且數(shù)碼管SM8顯示輸入密碼的次數(shù),數(shù)碼管SM7顯示密碼輸入是否正確。如果密碼正確,則SM7顯示‘O’;如果密碼錯(cuò)誤,則SM7顯示‘E’。數(shù)碼管SM6~SM1顯示輸入的6位密碼。在密碼輸入正確開(kāi)始演奏樂(lè)曲時(shí),如果將撥位開(kāi)關(guān)KD4撥向上,則數(shù)碼管SM8顯示樂(lè)曲的音符,而此時(shí)若將撥位開(kāi)關(guān)KD3撥向上則停止演奏樂(lè)曲。
發(fā)光二極管LED1~LED4顯示輸入按鍵的鍵值,LED16監(jiān)控是否有按鍵按下。
4結(jié)語(yǔ)
使用Max+PlusⅡ軟件和VHDL語(yǔ)言設(shè)計(jì)電路,思路簡(jiǎn)單,功能明了;不僅可以進(jìn)行邏輯仿真,還可以進(jìn)行時(shí)序仿真;使用PLD器件不僅省去了電路制作的麻煩,還可以反復(fù)多次進(jìn)行硬件實(shí)驗(yàn),非常方便地修改設(shè)計(jì),且設(shè)計(jì)的電路保密性很強(qiáng)??傊捎肕ax+PlusⅡ軟件和VHDL語(yǔ)言使得復(fù)雜的電子系統(tǒng)的設(shè)計(jì)變得簡(jiǎn)單容易,大大提高了設(shè)計(jì)效率。
參考文獻(xiàn):
[1].SM8datasheethttp://www.dzsc.com/datasheet/SM8_2443078.html.
來(lái)源:yofen1次