




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 隨著社會物質財富的日益增長,安全防盜已成為人們所關注的焦點。然而傳統機械彈子鎖安全性低,密碼量少且需時刻攜帶鑰匙使其無法滿足一些特定場合的應用要求,特別是在人員經常變動的公共場所,目前使用的電子密碼鎖主要有兩個方案:一是基于單片機用分立元件實現的,二是通過現代人體生物特征識別技術實現的,前者電路較復雜且靈活性差,無法滿足應用要求;后者有其先進性但需考慮成本和安全性等諸多因素。基于此,本文設計了一種新型電子密碼鎖,采用FPGA芯片,目前以硬件描述語言(Verilog 或 VHDL)所完成的電路設計,可以經過簡單的綜合與布局,快速的燒錄至 FPGA 上進行測試,是現代 IC 設計驗證的技術主流。
2、這些可編輯元件可以被用來實現一些基本的邏輯門電路(比如AND、OR、XOR、NOT)或者更復雜一些的組合功能比如解碼器或數學方程式。在大多數的FPGA里面,這些可編輯的元件里也包含記憶元件例如觸發器(Flipflop)或者其他更加完整的記憶塊。FPGA一般來說比ASIC(專用集成芯片)的速度要慢,無法完成復雜的設計,而且消耗更多的電能。但是他們也有很多的優點比如可以快速成品,可以被修改來改正程序中的錯誤和更便宜的造價。廠商也可能會提供便宜的但是編輯能力差的FPGA。因為這些芯片有比較差的可編輯能力,所以這些設計的開發是在普通的FPGA上完成的,然后將設計轉移到一個類似于ASIC的芯片上。另外一
3、種方法是用CPLD(復雜可編程邏輯器件備)。1 系統功能描述本設計主要實現以下六個功能:(1)初始密碼設置:系統上電后輸入4位數字并按“*”后密碼設置成功系統進入上鎖狀態。為了實際需要,系統另設置了一個4位數的優先級密碼,當用戶忘記密碼或被他人更改密碼后,可以用優先級密碼清除所設密碼。(2)密碼更改:為了密碼安全與避免誤操作,只能在開鎖狀態下先輸入舊密碼后才能更改系統密碼,然后輸入4位新密碼后按“*”。(3)解鎖:輸入密碼或優先級密碼后按“#”,系統即解鎖。(4)密碼保護:密碼輸入錯誤時,系統自動記錄一次錯誤輸入,當錯誤輸入次數等于3次時,系統報警并使鍵盤失效5分鐘,以免密碼被盜。(5)清除輸
4、入錯誤:當輸入數位小于4位時可以按“*”清除前面所有的輸入值,清除為“0000”。(6)系統復位:按“*”和“#”后系統即復位到初始狀態。考慮到實際情況,系統只在密碼更改狀態和系統初始狀態下才能復位。2 系統設計思路VHDL主要用于描述數字系統的結構,行為,功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式、描述風格以與語法是十分類似于一般的計算機高級語言。VHDL的程序結構特點是將一項工程設計,或稱設計實體(可以是一個元件,一個電路模塊或一個系統)分成外部(或稱可視部分,與端口)和部(或稱不可視部分),既涉與實體的部功能和算法完成部分。在對一個設計實體定義了外部界面后,一旦其部
5、開發完成后,其他的設計就可以直接調用這個實體。本文采用自頂向下的模塊化設計方法,先對系統級進行功能描述,再進行功能模塊的劃分,最后分別對各個子模塊進行VHDL建模。所設計的電子密碼鎖系統結構如圖1所示。鍵盤消抖鍵盤編碼輸入處理顯示系統控制 鍵盤矩陣 時鐘與掃描圖1 系統結構圖2.1 時鐘產生模塊此模塊主要功能是產生時鐘信號和鍵盤掃描信號。主要產生三個時鐘信號(16 Hz、64 Hz、100 kHz),分別為系統各個功能模塊提供時鐘驅動信號。其中鍵盤掃描模塊包括在時鐘產生模塊中,用來產生掃描信號。由于要產生多個時鐘信號。密碼輸入一般采用機械式和觸摸式兩種鍵盤。由于機械式鍵盤具有成本低、結構簡單、
6、可靠性高、應用廣泛等優點,其按鍵分布與鍵值編碼如圖2所示。其中*、#為多功能組合鍵。鍵盤掃描電路用來產生掃描信號KH,其按照1110-1101-1011-0111的規律循環變化,并通過KC來檢測是否有鍵按下。其他鍵也是類似原理。特別值得注意的是鍵盤掃描電路掃描時鐘的確立,如果掃描時鐘不合適,將產生鍵按下時反應太慢,或KC產生錯誤的輸出。2.2 按鍵消抖模塊本設計采用機械鍵盤,其缺點是易產生抖動,因此鍵盤輸出KC20必須經過消抖電路后才能加入到鍵盤編碼模塊,以避免多次識別。此模塊采用狀態機設計,其狀態轉換圖如圖3所示。只有當連續檢測到3次低電平輸入,模塊才輸出一次低電平。消抖電路的時鐘選擇很關鍵
7、,選擇不當則不能正常工作。因為鍵盤掃描電路的時鐘是16 Hz且掃描信號為4組循環輸出,所以消抖電路要能夠在4個鍵盤掃描時鐘檢測出是否有鍵按下就必須設置其時鐘信號至少為鍵盤掃描時鐘的4倍。2.3 鍵盤編碼模塊上述的鍵盤中可分為數字鍵和功能鍵,其中數字鍵用來輸入數字,但鍵盤所產生的信號KC20并不能直接用于鍵盤輸入處理模塊,因此必須由鍵盤編碼電路對數字按鍵的輸出形式進行規劃。同時多功能鍵*、#也分別被規劃為“1010”和“1011”。另外,在系統規劃時,也將系統復位電路規劃在此模塊,復位信號是由鍵盤編碼模塊和系統主控模塊輸出的系統復位輔助信號mm共同作用產生,從而實現只能在密碼更改狀態和系統初始狀
8、態下才能進行系統復位,確保系統安全可靠。2.4 按鍵輸入處理模塊按鍵輸入處理模塊用來儲存每次按鍵產生的值,以免覆蓋前面輸入的數據,此模塊使用串行移位寄存器對依次輸入的4位十進制數字進行存儲。按鍵輸入超過4位時,后面的輸入將被忽略。2.5 顯示模塊為了節省I/O管腳和芯片部資源,本設計采用動態掃描的方法進行顯示。模塊用100 kHz時鐘信號和人眼的視覺暫留效應使4位數碼管看起來像是同時點亮。圖4是根據VHDL代碼所繪制的顯示模塊框圖。其中多路數據選擇器是由按鍵次數(NC)控制選擇哪一個數碼管和哪一組輸入數據。2.6 系統主控模塊此模塊是系統的核心控制模塊,系統的所有控制行為都是由它完成的,采用狀
9、態機(FSM)來描述系統的控制行為。由于多進程編程狀態機的輸出是由組合電路發出的,如果這些輸出信號被用作時鐘信號,則極易產生錯誤的驅動,其優勢是由時序器件同步輸出,輸出信號不會出現毛刺現象,從而很好地避免了競爭冒險的發生。缺點是與多進程狀態機相比,輸出信號要晚一個時鐘周期。通過反復試驗在VHDL編程時將輸出信號與狀態轉換同步進行,從而很好地解決了輸出信號滯后的問題。圖5為主控模塊的狀態轉換圖。其中S0為系統上電初始化狀態,也是系統復位后所轉入的狀態。本設計設置S0狀態的另一主要原因是考慮到一個完備的狀態機應該具備初始化狀態和默認狀態。當芯片加電或者復位后,狀態機應該能夠自動將所有判斷條件復位,
10、并進入初始化狀態。但需要強調的是,大多數FPGA有GSR(Global Set/Reset)信號,當FPGA加電后,GSR信號拉高,對所有的寄存器,RAM等單元復位/置位,這時配置于FPGA的邏輯并未生效;不能保證正確地進入初始化狀態。所以使用GSR企圖進入FPGA的初始化狀態,常常會產生種種不必要的麻煩。S1為上鎖狀態,S2為解鎖狀態,S3為解鎖錯誤次數記錄狀態,S4為系統報警狀態,S5為開鎖狀態,S6為密碼更改狀態。3 重要程序模塊分析1,密碼設置模塊process(clk) -定義個存儲器將密碼存放在keyin中 begin if clk'event and clk='1
11、' then keyin<=key; end if;end process; prr<=pdan or rw1 or rin or ok;st: process(keyin,prr,ok1) -第一次修改密碼 begin if ok1='1' then start<='0' elsif (keyin/="000000" and prr='0') then start<='1' else start<='0' end if; end process;inkey
12、: process(key,start,clk) begin -輸入密碼時間進入記時狀態 if clk'event and clk='1' then ok1<='0'ok2<='0' if start='1' then sbuf1<=keyin; -將密碼放入rom1暫存器中 if ok='1' then ok2<='1' elsift="100" thent<="000" ;ok1<='1' -5秒
13、到將cnt值零將ok1值置高 elset<=cnt+'1' end if ; elset<="000"sbuf1<=sbuf1; -當start=1時cnt永遠保持0 end if; end if; end process;2,報警信號產生模塊:pandan : process(ok,ok1,ok2,clk,start) -輸入密碼用于判斷密碼是否正確 begin if ok2='1' or ok1='1' then pdan<='1' -開鎖信號 elsif clk'event
14、 and clk='1' then if pdan='1' then ift1="10011" then pdan<='0' -20秒后判斷結束,進入等待外部輸入狀態 else t1<=cnt1+'1' end if; else t1<="00000" -等待狀態時cnt1一直為0 end if; end if; end process;3顯示模塊Display: process(open,rw ,rin,clk1) -顯示程序 begin if open='1
15、39; then -開鎖信號密碼正確 red<='0'green<='1' speaker<='0' -紅燈滅,綠燈亮 else -密碼錯誤 red<='1'green<='0' speaker<=clk1; -紅燈亮,綠燈滅, end if; elsif rw='1' then -第一次修改密碼顯示狀態 red<='1'green<='0'speaker<='0' elsif rin='1' then red<='0'green<='0' speaker<='0' else red<='1'green<='0' speaker<='0' end if; end process;4 主要功能模塊的仿真圖6是鍵盤編碼模塊的時序仿真圖。其號mm是主控模塊,用來限制復位條件,即只在S0和S6狀態下產生復位信號RR;信號rst_key和unen_key共同控制鍵盤,也是來自主控模塊;sn是模塊輸出信
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 旅游餐飲完善管理制度
- 旅游職業衛生管理制度
- 噴涂機器人公司管理制度
- 智能家居市場管理制度
- 亞馬遜運營人員管理制度
- 貴陽市2027屆高一年級七校聯合考試(四)政治試題
- 部隊食堂考試題及答案
- 保潔理論考試題及答案
- bim技能考試題及答案
- 明光中學宿舍管理制度
- 江蘇開放大學本科行政管理專業060193國家公務員制度期末試卷
- 農村排灌用電安全管理
- 重慶開放大學《工具書與文獻檢索》形考測驗1-4答案
- 紡織非遺:讓世界讀懂中國之美智慧樹知到期末考試答案2024年
- 結節性紅斑的護理措施
- 應急處突知識培訓課件
- 江蘇省蘇州市四市2022-2023學年八年級下學期期末語文試題
- 幼兒園病媒生物防制培訓方案
- “影子教育”之全球擴張教育公平、質量、發展中的利弊談
- JB T 8925-2008滾動軸承汽車萬向節十字軸總成技術條件
- (word版)2024年成人高考語文試題及答案
評論
0/150
提交評論