基于FPGA的電子密碼鎖的設(shè)計+汪金濤.doc_第1頁
基于FPGA的電子密碼鎖的設(shè)計+汪金濤.doc_第2頁
基于FPGA的電子密碼鎖的設(shè)計+汪金濤.doc_第3頁
基于FPGA的電子密碼鎖的設(shè)計+汪金濤.doc_第4頁
基于FPGA的電子密碼鎖的設(shè)計+汪金濤.doc_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

淮南師范學院電氣信息工程學院2015屆電子信息工程專業(yè)課程設(shè)計報告 成績課程設(shè)計報告題 目: 基于FPGA的數(shù)字密碼鎖設(shè)計 學生姓名: 汪金濤 學生學號: 1114020232 系 別: 電氣信息工程學院 專 業(yè): 電子信息工程 屆 別: 2015屆 指導(dǎo)教師: 李 營 電氣信息工程學院制2014年5月第 1 頁 目 錄1 課程設(shè)計的任務(wù)與要求11.1 課程設(shè)計的任務(wù)11.2課程設(shè)計的要求12 電子密碼鎖簡介12.1 國內(nèi)外發(fā)展和現(xiàn)狀12.2 課題研究目的和意義23 設(shè)計方案的制定23.1設(shè)計思路23.2總體方案設(shè)計43.2.1 密碼鎖輸入電路設(shè)計43.2.2 矩陣式鍵盤工作原理43.2.3 密碼鎖輸入電路主要功能模塊設(shè)計53.2.4 密碼鎖控制電路設(shè)計73.2.5 密碼鎖顯示電路設(shè)計93.2.6 Quartus 軟件引腳配置94 系統(tǒng)時序仿真結(jié)果105 總結(jié)與體會115.1 總結(jié)115.2 體會126 參考文獻12附錄13基于FPGA的數(shù)字密碼鎖設(shè)計學生:汪金濤指導(dǎo)教師:李營電氣信息工程學院電子信息工程專業(yè)1 課程設(shè)計的任務(wù)與要求1.1 課程設(shè)計的任務(wù)通用的電子密碼鎖主要由三個部分組成:數(shù)字密碼輸入電路、密碼鎖控制電路和密碼鎖顯示電路。(1)密碼鎖輸入電路包括時序產(chǎn)生電路、鍵盤掃描電路、鍵盤彈跳消除電路、鍵盤譯碼電路等幾個小的功能電路。(2)密碼鎖控制電路包括按鍵數(shù)據(jù)的緩沖存儲電路,密碼的清除、變更、存儲、激活電鎖電路(寄存器清除信號發(fā)生電路),密碼核對(數(shù)值比較電路),解鎖電路(開/關(guān)門鎖電路)等幾個小的功能電路。(3)密碼顯示電路主要將顯示數(shù)據(jù)的BCD碼轉(zhuǎn)換成相對應(yīng)的編碼。如,若選用七段數(shù)碼管顯示電路,主要將待顯示數(shù)據(jù)的BCD碼轉(zhuǎn)換成數(shù)碼器的七段顯示驅(qū)動編碼。1.2課程設(shè)計的要求設(shè)計一個具有較高安全性和較低成本的通用電子密碼鎖,具體功能要求如下:(1)數(shù)碼輸入:每按下一個數(shù)字鍵,就輸入一個數(shù)值,并在顯示器上的顯示出該數(shù)值,同時將先前輸入的數(shù)據(jù)依序左移一個數(shù)字位置。(2)數(shù)碼清除:按下此鍵可清除前面所有的輸入值,清除為“0000”。(3)密碼更改:按下此鍵時會將目前的數(shù)字設(shè)定成新的密碼。(4)激活電鎖:按下此鍵可將密碼鎖上鎖。(5)解除電鎖:按下此鍵會檢查輸入的密碼是否正確,密碼正確即開鎖。2 電子密碼鎖簡介2.1 國內(nèi)外發(fā)展和現(xiàn)狀隨著人們生活水平的提高和安全意識的加強,對安全的要求也就越來越高。鎖自古以來就是把守護門的鐵將軍,人們對它要求甚高,既要安全可靠的防盜,又要使用方便,這也是制鎖者長期以來研制的主題。隨著電子技術(shù)的發(fā)展,各類電子產(chǎn)品應(yīng)運而生,電子密碼鎖就是其中之一。據(jù)有關(guān)資料介紹,電子密碼鎖的研究從20世紀30年代就開始了,在一些特殊場所早就有所應(yīng)用。這種鎖是通過鍵盤輸入一組密碼完成開鎖過程。研究這種鎖的初衷,就是為提高鎖的安全性。由于電子鎖的密鑰量(密碼量)極大,可以與機械鎖配合使用,并且可以避免因鑰匙被仿制而留下安全隱患。電子鎖只需記住一組密碼,無需攜帶金屬鑰匙,免除了人們攜帶金屬鑰匙的煩惱,而被越來越多的人所欣賞。電子鎖的種類繁多,例如數(shù)碼鎖,指紋鎖,磁卡鎖,IC卡鎖,生物鎖等。但較實用的還是按鍵式電子密碼鎖。目前,在西方發(fā)達國家,電子密碼鎖技術(shù)相對先進,種類齊全,電子密碼鎖已被廣泛應(yīng)用于智能門禁系統(tǒng)中,通過多種更加安全,更加可靠的技術(shù)實現(xiàn)大門的管理。在我國電子鎖整體水平尚處于國際上70年代左右,電子密碼鎖的成本還很高,市場上仍以按鍵電子鎖為主,按鍵式和卡片鑰匙式電子鎖已引進國際先進水平,現(xiàn)國內(nèi)有幾個廠生產(chǎn)供應(yīng)市場。但國內(nèi)自行研制開發(fā)的電子鎖,其市場結(jié)構(gòu)尚未形成,應(yīng)用還不廣泛。希望通過不斷的努力,使電子密碼鎖在我國也能得到廣泛應(yīng)用。目前使用的電子密碼鎖大部分是基于單片機技術(shù),以單片機為主要器件,其編碼器與解碼器的生成為軟件方式。在實際應(yīng)用中,由于程序容易跑飛,系統(tǒng)的可靠性能較差?;诂F(xiàn)場可編程邏輯門陣列FPGA器件的電子密碼鎖,用FPGA器件構(gòu)造系統(tǒng),所有算法完全由硬件電路來實現(xiàn),使得系統(tǒng)的工作可靠性大為提高。由于FPGA具有現(xiàn)場可編程功能,當設(shè)計需要更改時,只需更改FPGA中的控制和接口電路,利用EDA工具將更新后的設(shè)計下載到FPGA中即可,無需更改外部電路的設(shè)計,大大提高了設(shè)計的效率。2.2 課題研究目的和意義隨著人們生活水平的提高,對家庭防盜技術(shù)的要求也是越來越高,傳統(tǒng)的機械鎖由于其構(gòu)造的簡單,被撬的事件屢見不鮮,電子鎖由于其保密性高,使用靈活性好,安全系數(shù)高,受到了廣大用戶的歡迎。FPGA即現(xiàn)場可編程門陣列,它是在PAL、GAL、EPLD等可編程器件的基礎(chǔ)上進一步發(fā)展的產(chǎn)物,是一種超大規(guī)模集成電路,具有對電路可重配置能力。相對于基于單片機技術(shù)的電子密碼鎖,用FPGA器件來構(gòu)成系統(tǒng),可靠性提高,并且由于FPGA具有的現(xiàn)場可編程功能,使得電子密碼鎖的更改與升級更為方便簡單。通過本次設(shè)計掌握FPGA系統(tǒng)設(shè)計的方法,熟悉FPGA設(shè)計的相關(guān)軟件,以及硬件描述語言的使用,了解電子密碼鎖的系統(tǒng)構(gòu)成,利用FPGA實現(xiàn)電子密碼鎖的設(shè)計與實現(xiàn),可以加深自己對所學專業(yè)的認識,關(guān)聯(lián)知識,增強自己的動手能力,積累實踐經(jīng)驗,為以后的工作打好基礎(chǔ)。3 設(shè)計方案的制定3.1設(shè)計思路作為通用數(shù)字密碼鎖,主要有三部分組成:數(shù)字密碼輸入電路、密碼控制電路和密碼顯示電路??刂破髂K是整個系統(tǒng)的控制核心,負責接收其它模塊傳來的輸入信號,再根據(jù)系統(tǒng)的功能產(chǎn)生相應(yīng)的控制信號送到相關(guān)的模塊。消抖同步電路用來消去開關(guān)電平抖動現(xiàn)象并提供同步信號;編碼器接收消抖同步電路傳來的數(shù)字密碼信號后編碼輸出給比較器和RAM,并提供一個數(shù)字輸入信號。作為數(shù)字密碼鎖的輸入電路,可供選擇的方案有數(shù)字機械式鍵盤和鍵觸式數(shù)字鍵盤等多種。雖然機械式鍵盤存在一些諸如機械的彈跳消除問題和機械部分的接觸問題,但是和接觸式3x4鍵盤相比,機械式鍵盤具有低成本、可靠性高、構(gòu)成電路簡單、技術(shù)成熟和應(yīng)用廣泛等特點,因此是比較合適的。根據(jù)以上選定的輸入設(shè)備和顯示器件,并考慮到實現(xiàn)的具體要求,整個數(shù)字密碼鎖系統(tǒng)的總體框圖如圖1所示。密碼輸入電路包括時序產(chǎn)生電路、鍵盤掃描電路、鍵盤彈跳消除電路、鍵盤譯碼電路等幾個小的功能電路。鍵盤時序產(chǎn)生電路彈跳消除電路鍵盤譯碼電路寄存器清除信號發(fā)生電路開/關(guān)鎖電路數(shù)值比較電路按鍵數(shù)值緩沖器BCD至七段譯碼器電路鍵盤掃描電路 圖1 系統(tǒng)方框圖3.2總體方案設(shè)計3.2.1 密碼鎖輸入電路設(shè)計圖2是數(shù)字密碼鎖的輸入電路框圖,由鍵盤掃描電路、清抖電路、鍵盤譯碼電路、按鍵數(shù)據(jù)存儲,加上外接的一個3*4矩陣式鍵盤組成。 1234705689#*清抖電路鍵盤掃描鍵盤譯碼按鍵存儲圖2 密碼鎖輸入框圖3.2.2 矩陣式鍵盤工作原理矩陣式鍵盤是一種常見的輸入裝置,如圖3-3所示為一個3*4矩陣式鍵盤。鍵盤上的每一個按鍵盤其實是一個開關(guān)電路,當某鍵被按下時,該按鍵所對應(yīng)的位置就呈現(xiàn)邏輯0的狀態(tài),圖中鍵盤的掃描為行掃方式,其中的某一位為0即掃描其中的一行,具體掃描信號對應(yīng)如表1所示。表1 掃描信號對應(yīng)表KEYR3.0KEYC2.0對應(yīng)的按鍵01110111101211031011011410151106110101171018110911100110101*110#鍵盤掃描信號KEYR3與第一行相連,KEYR2與第二行相連,依此類推。很顯然,掃描信號的變化順序為:0111、1011、1101、1110,周而復(fù)始。在掃描的過程中,當有鍵按下時,對應(yīng)的鍵位就為邏輯0狀態(tài),從而從KEYC2.0 讀出的鍵值相應(yīng)列為0.具體情況如表1所示:若從KEYC2.0 讀出的值全為1 時,表示沒有鍵被按下,則不進行按鍵的處理。如果有鍵被按下,則將KEYC2.0 讀出的送至鍵盤譯碼電路進行譯碼。3.2.3 密碼鎖輸入電路主要功能模塊設(shè)計 時序產(chǎn)生電路:本時序產(chǎn)生電路中使用了三種不同的工作脈沖波形:系統(tǒng)時鐘脈沖、彈跳消除脈沖、鍵盤掃描信號。本設(shè)計選用信號Q建立一個9位自由計數(shù)器,對輸入主時鐘進行降頻處理。 首選信號Q建立一個9位自由計數(shù)器,對輸入主時鐘進行降頻處理。分頻仿真圖如下圖3所示。圖3 分頻模塊仿真圖使用CLK_A=Q(1)語句,取得一個脈沖波形,對主時鐘進行2分頻,其值為0、1、0、1;使用CLK_B=Q(4 DOWNTO 3)語句,取得一脈沖序列,依次為00、01、10、11、00; 鍵盤掃描電路:目標:提供鍵盤掃描信號,即表1中的KEYR30,變化順序依次為0111、1011、1101、1110,依次重復(fù)出現(xiàn)。 說明:在程序中,S信號是用來產(chǎn)生掃描信號的四個狀態(tài),Q是為了對輸入主時鐘進行降頻處理。 鍵盤消抖電路因為按鍵大多是機械式開關(guān),在開關(guān)切換的瞬間會在接解點出現(xiàn)來回彈跳的現(xiàn)象,其現(xiàn)象如圖4所知,雖然只是按了一次鍵,實際產(chǎn)生的按鍵信號卻不只跳動一次,經(jīng)過取樣信號的檢查后,將會造成誤碼判,認為是按了兩次鍵。如果調(diào)整取樣頻率,可以發(fā)現(xiàn)抖現(xiàn)象得到了改善。 調(diào)整取樣頻率后的情況如圖4所示。圖4 鍵盤消抖信號圖 鍵盤譯碼電路從前面所述的鍵盤掃描電路的輸出可以看出,掃描得到的信號規(guī)律性不強,例如數(shù)字鍵主要用來輸入數(shù)字,但鍵盤掃描輸出無法拿來直接使用,必須對其進行譯碼才能使用。如表2所示,只要使用begincase或ifelse語句,便可完成設(shè)計。鍵盤譯碼電路主要負責的工作是:首先判斷是否有鍵按下,若被按下的是數(shù)字按鍵,則解釋成相應(yīng)的BCD碼,若被按下的是功能鍵,則譯成四位的數(shù)字碼,由密碼控制電路做相應(yīng)的工作。表2 鍵盤參數(shù)表KEYR3.0KEYC2.0對應(yīng)的按鍵譯碼輸出功能011101110001數(shù)碼輸入10120010數(shù)碼輸入11030011數(shù)碼輸入101101140100數(shù)碼輸入10150101數(shù)碼輸入11060110數(shù)碼輸入110101170111數(shù)碼輸入10181000數(shù)碼輸入11091001數(shù)碼輸入111001100100擊活電鎖101*0000數(shù)碼輸入110#0001清除/解鎖電路 按鍵存儲電路因為每次按鍵都會產(chǎn)生新的數(shù)據(jù),可能會覆蓋前面的數(shù)據(jù),所以需要一個按鍵存儲電路,將鍵盤掃描譯碼后的結(jié)果記錄下來。這一功能可以用移位寄存器來實現(xiàn)。3.2.4 密碼鎖控制電路設(shè)計數(shù)字密碼鎖控制電路是整個電路的控制中心,主要完成如下功能: 數(shù)字按鍵輸入部分如果輸入數(shù)字鍵,第一個數(shù)字會從顯示器的最右端開始顯示,此后每新按一個數(shù)字時,顯示器上的數(shù)字必須往左移動一位。若想要更改輸入的數(shù)字,可按退格鍵來清除前一個輸入的數(shù)字,或按清除鍵清除輸入的所有數(shù)字,再重新輸入4位數(shù)字。既然設(shè)計的是四位電子密碼鎖,當輸入的數(shù)字鍵超過4位時,電路不應(yīng)理會。 功能鍵輸入部分退格鍵:只清除前一個輸入的數(shù)字。清除鍵:清除所有輸入。密碼核對:在密碼更改,開鎖之前必須先核對密碼。密碼變更:按下此鍵將目前輸入的數(shù)字設(shè)定為新的密碼。激活電鎖:上鎖之前必須先設(shè)定密碼才能上鎖。解除電鎖:檢查輸入的密碼是否正確,正確才開鎖。萬用密碼:電子密碼鎖維護者使用。 六種工作狀態(tài)控制器實際上是一個有限狀態(tài)機,它一共有六個狀態(tài):初始狀態(tài)S0、接收數(shù)碼狀態(tài)S1、準備開鎖狀態(tài)S2、S3狀態(tài)表示每正確接受一次數(shù)碼,計數(shù)器C加1、開鎖狀態(tài)S4和錯誤報警狀態(tài)S5。初始狀態(tài)S0:系統(tǒng)開鎖、報警或上電后進入準備狀態(tài),這時系統(tǒng)不接收除READY 信號外的任何輸入信號。接收數(shù)碼狀態(tài)S1:在該狀態(tài)下, 如果按下“READY” 則保持該狀態(tài)不變;如果按下“OK”和“OPEN”則轉(zhuǎn)到報警狀態(tài);如果有數(shù)據(jù)輸入,則控制器輸入一個DATA-IN信號,輸出RD和CNP1信號,從RAM中讀取密碼進行比較,同時使計數(shù)器加1;檢查計數(shù)是否計數(shù)到100 ,若CNTe1有效,表示已經(jīng)接收到4個正確的密碼,可以轉(zhuǎn)入下一個狀態(tài),否則返回本狀態(tài),繼續(xù)接收其它密碼。檢查Dep信號狀態(tài),Dep=1則密碼正確,進入確認狀態(tài),反之則輸出CNP2信號進入報警狀態(tài);如果仍然有數(shù)據(jù)輸入,則說明輸入密碼錯誤,則輸出CNP2信號進入報警狀態(tài)。準備開鎖狀態(tài)S2:在確認狀態(tài)下按“SET”鍵進入該狀態(tài),EN信號有效。該狀態(tài)首先由控制器發(fā)RESET-CNT信號;檢查是否有數(shù)據(jù)輸入,如果沒有則等待;若有數(shù)據(jù)輸入,控制器則輸出WR和CNP1信號,向RAM發(fā)出信號,并使計數(shù)器加1,檢查計數(shù)器是否計數(shù)到100,若CNTe1有效,表示已經(jīng)接收到4個正確的密碼,進入確認狀態(tài),否則返回本狀態(tài),繼續(xù)接收其它密碼。確認狀態(tài)S3:輸入密碼正確后進入該狀態(tài)。密碼輸入得到確認才可以進入開鎖狀態(tài),密碼設(shè)置完畢后,只有得到確認才可生效,并返回準備狀態(tài)。開鎖狀態(tài)S4:輸入密碼確認后進入該狀態(tài),此時按“OPEN”鍵,控制器便發(fā)出SLT信號開鎖并返回到準備狀態(tài)。錯誤報警狀態(tài)S5:每次進入該狀態(tài)首先檢查計數(shù)器2是否計數(shù)到11。若輸入錯誤密碼達到三次,則CNTe2有效,控制器輸出SLB信號,報警電路報警;若輸入錯誤次數(shù)不超過三次,則CNTe2無效,返回到輸入密碼狀態(tài)。3.2.5 密碼鎖顯示電路設(shè)計本文設(shè)計的密碼鎖采用7段LED數(shù)碼管來分別顯示其在不同工作狀態(tài)下的信息,并能對輸入的口令消隱顯示。以下為顯示模塊部分程序。always (posedge CLK or negedge nCLR)begin:counter if (nCLR)Q =3b000; else if (CNT=1b1)Q =Q+1b1; else Q =Q;end assign M=(Q =3b111);assign A2,A1,A0=Q;assign D=Password;always (A2 or A1 or A0 or D) begin :Muxltiplexer case (A2,A1,A0) 3d0:Mux_out=D0; 3d1:Mux_out=D1; 3d2:Mux_out=D2; 3d3:Mux_out=D3; 3d4:Mux_out=D4; 3d5:Mux_out=D5; 3d6:Mux_out=D6; 3d7:Mux_out=D7; endcase end 程序中cnt為編碼計數(shù)器,它的每一個值代表一種狀態(tài),在不同狀態(tài)下encode端口輸出不同的LED選擇編碼。此編碼作為譯碼器74LS138的地址輸入,用于選擇操作哪一位LED數(shù)碼管。3.2.6 Quartus 軟件引腳配置 引腳配置圖如圖5所示。圖5 引腳配置圖4 系統(tǒng)時序仿真結(jié)果該密碼鎖利用Quartus工作平臺進行編譯和綜合仿真,系統(tǒng)最后仿真結(jié)果如下,由圖7可以很明顯的看到,此數(shù)字密碼鎖能夠很好的完成對電子鎖上鎖和解鎖的過程,能夠?qū)崿F(xiàn)系統(tǒng)設(shè)計任務(wù)中的各項要求。說明我們對模塊的設(shè)計是正確的。(a)正確開鎖過程仿真(b)錯誤開鎖過程 圖6 系統(tǒng)仿真波形圖若系統(tǒng)內(nèi)設(shè)置的密碼為01011001。分析波形圖可知,nRESET信號使系統(tǒng)首先進入初始狀態(tài)。BIT開關(guān)用于產(chǎn)生一位數(shù)碼,READ開關(guān)將BIT產(chǎn)生的當前數(shù)碼讀入系統(tǒng),并與系統(tǒng)內(nèi)所設(shè)置的密碼的相應(yīng)位進行比較,比較的順序是從低位到高位。當讀入8位數(shù)碼與開鎖密碼一致時,按下開鎖的TRY信號,系統(tǒng)將產(chǎn)生高電平的開鎖信號OPEN,如圖6(a)所示。如果開鎖過程中任何一次送入的數(shù)碼與設(shè)置的密碼數(shù)值不一致,例如圖6(b)中輸入的第二位數(shù)碼為1,與設(shè)置的0不符,系統(tǒng)發(fā)出錯誤信號ERROR。或者TRY信號使用不當,也會產(chǎn)生ERROR信號。為了便于分析開鎖過程中,系統(tǒng)狀態(tài)之間的轉(zhuǎn)換,圖6中給出了中間變量的波形圖。5 總結(jié)與體會5.1 總結(jié)本設(shè)計中采用了Altera公司的FPGA芯片進行設(shè)計,可以極大地減少其他分立元件或其他芯片的使用,有效地縮小了印制電路板面積,提高了系統(tǒng)的可靠性,大大縮短了系統(tǒng)開發(fā)的周期。由于采用Verilog HDL進行設(shè)計,用軟件實現(xiàn)硬件電路,具有良好的可移植性,可隨時在線更改邏輯設(shè)計及有關(guān)參數(shù),充分體現(xiàn)FPGA的優(yōu)越性,具有一定的實用性。本文設(shè)計的密碼鎖克服了基于單片機的密碼鎖的可靠性較差的缺點,利用了FPGA 的ISP功能可高效的進行功能擴展和產(chǎn)品升級,具有使用靈活,性能可靠,安全保密性強等優(yōu)點, 將有十分良好的應(yīng)用前景。本設(shè)計參考和結(jié)合了很多有關(guān)電子密碼鎖問題的論文,經(jīng)過多次修改和整理,可以滿足人們的基本要求,防盜系數(shù)高,安全性能好。但因為水平有限,可能也存在一定的問題。5.2 體會通過本次課程設(shè)計,我得到了大量的鍛煉并受益匪淺,不但提高了自身對理論基礎(chǔ)知識的掌握,同時還鍛煉了自己的動手實踐能力。讓我更牢固地掌握了有關(guān)的理論知識,并簡單了解了系統(tǒng)仿真建模的基本步驟,同時還加深了我對quartus軟件的理解與應(yīng)用。在做設(shè)計的過程中,我深刻地體會到,對理論知識的掌握并不以意味著自己就能將理論知識轉(zhuǎn)化為實際的系統(tǒng)。但是,理論知識的認識深刻與否,對實踐活動有著重要的作用,只有對理論基礎(chǔ)知識有深入地了解,才能通過理論來指導(dǎo)實踐,如果沒有掌握理論知識,是不可能獲得實踐上的成功。同時,通過此次課程設(shè)計,充分調(diào)動了自身對知識的運用和對以前學過的知識的靈活調(diào)用。在設(shè)計過程中遇到過許多困難,但通過查閱相關(guān)資料以及前人的結(jié)果,從而解決了許多問題,同時也提高了自己分析問題解決問題的能力。最后,課程設(shè)計中與老師和同學的交流是很有必要的。畢竟每個人對課程設(shè)計的思路和自己遇到的問題都有不同的理解,所以遇到問題共同交流還是能夠解決各種問題的。6 參考文獻1 潘松,陳龍,黃繼業(yè).EDA技術(shù)與Verilog HDL(第二版)M.北京:清華大學出版社,2010, 4:44-702 周潤景,蘇良碧.基于Quartus 的數(shù)字系統(tǒng)Verilog HDL設(shè)計實例詳解 M.北京:電子工業(yè)出版社,2010,5:6-1543 王衛(wèi)兵,劉克剛,朱秋萍.用FPGA的電子密碼鎖M.北京:中國機械工業(yè)出版社,2011:26-284 趙益丹,徐曉林,周振峰.電子密碼鎖的系統(tǒng)原理、設(shè)計程序及流程圖N.嘉興學院學報, 2003, 15(S1):103-1055 李連華.基于FPGA的電子密碼鎖設(shè)計N.中國科技信息報,2010,5:646 許琦.基于FPGA的電子密碼鎖的設(shè)計M.北京:電子工業(yè)出版社,2009,10:240 -241 7 康華光,鄒壽彬.電子技術(shù)基礎(chǔ)數(shù)字部分(第五版)M.北京:高等教育出版社,2005,7:58-698 李士雄,丁康源.數(shù)字集成電子技術(shù)教程M.北京:高等教育出版社,2010,7:58-699 王金明,楊吉斌.數(shù)字系統(tǒng)設(shè)計與Verilog HDLM.北京:電子工業(yè)出版社,2010,10:34-6810 任愛鋒.基于FPGA的嵌入式系統(tǒng)設(shè)計M.西安:西安電子科技大學出版社,2010, 7:35-169附錄數(shù)字密碼鎖源程序module Lock_RTL (OPEN,ERROR,nRESET,TRY,READ,BIT,CLK,W,B,Q,M); /* 定義輸入/輸出 */input nRESET,TRY,READ,BIT,CLK;output OPEN,ERROR,B,M;output 3:0W;output 2:0 Q;assign W=0001;reg OPEN,ERROR;wire nRESET,TRY,READ,BIT,CLK; /對狀態(tài)進行編碼parameter S0=6b000001,S1=6b000010,S2=6b000100,S3=6b001000,S4=6b010000,S5=6b100000;parameter Password=8b01011001; /定義系統(tǒng)內(nèi)部信號變量及其類型reg 5:0 CurrentState,NextState; /控制寄存器reg nCLR,CNT; /CNT=1,計數(shù)器工作;CNT=0,暫停計數(shù)wire B,M; /數(shù)據(jù)處理器輸出reg 2:0Q; /計數(shù)器輸出wire A2,A1,A0; /數(shù)據(jù)選擇器控制信號wire 7:0D; /數(shù)據(jù)選擇器輸入信號reg Mux_out; /數(shù)據(jù)選擇器輸出信號/* 控制單元狀態(tài)轉(zhuǎn)換的描述 */always(posedge CLK or negedge nRESET) begin:ststereg if(nRESET) begin CurrentState =S0; nCLR =1b0;end else begin CurrentState =NextState; nCLR =1b1; end endalways(BIT or READ or TRY or B or M or CurrentState) begin:fsm OPEN=1b0; ERROR=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論