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