課程設(shè)計(jì)基于CPLD的數(shù)字鎖設(shè)計(jì)_第1頁
課程設(shè)計(jì)基于CPLD的數(shù)字鎖設(shè)計(jì)_第2頁
課程設(shè)計(jì)基于CPLD的數(shù)字鎖設(shè)計(jì)_第3頁
課程設(shè)計(jì)基于CPLD的數(shù)字鎖設(shè)計(jì)_第4頁
課程設(shè)計(jì)基于CPLD的數(shù)字鎖設(shè)計(jì)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、湖南工程學(xué)院課 程 設(shè) 計(jì) 任 務(wù) 書課程名稱: 嵌入式系統(tǒng) 題 目:基于cpld的數(shù)字鎖專業(yè)班級(jí):電子信息0781 學(xué)生姓名: 指導(dǎo)老師: 審 批: 任務(wù)書下達(dá)日期 2011 年01月02 日設(shè) 計(jì) 完成日期 2011 年 01月21日 設(shè)計(jì)內(nèi)容與設(shè)計(jì)要求cpld為復(fù)雜可編程邏輯器件,通過eda技術(shù)對其進(jìn)行編程,可將一個(gè)較復(fù)雜的數(shù)字系統(tǒng)集成于一個(gè)芯片中,制成專用集成電路芯片,并可隨時(shí)在系統(tǒng)修改其邏輯功能。有關(guān)知識(shí)可參見相關(guān)教材或參考書。一設(shè)計(jì)內(nèi)容設(shè)計(jì)一個(gè)二位十進(jìn)制數(shù)字鎖,并驗(yàn)證其操作。具體要求如下:(1) 開鎖代碼為二位十進(jìn)制數(shù),當(dāng)輸入代碼的位數(shù)和位值與鎖內(nèi)給定的密碼一致,且按規(guī)定程序開鎖時(shí)

2、,方可開鎖,并點(diǎn)亮開鎖指示燈lt。否則,系統(tǒng)進(jìn)入“錯(cuò)誤”狀態(tài),并發(fā)出報(bào)警信號(hào)。(2) 開鎖程序由設(shè)計(jì)者確定,并要求鎖內(nèi)給定的密碼是可調(diào)的,且預(yù)置方便,保密性好。(3) 并行數(shù)字鎖的報(bào)警方式是點(diǎn)亮指示燈lf,并使喇叭鳴叫來報(bào)警,直到按下復(fù)位開關(guān),報(bào)警才停止。此時(shí),數(shù)字鎖又自動(dòng)進(jìn)入等待下一次開鎖的狀態(tài)。二、設(shè)計(jì)要求:1、 設(shè)計(jì)思路清晰,給出整體設(shè)計(jì)框圖;2、 在max+plus中設(shè)計(jì)各單元電路,完成其功能仿真和編譯并生成低層模塊;3、 在max+plus中完成頂層設(shè)計(jì)并編譯通過;4、 在max+plus中完成設(shè)計(jì)下載并調(diào)試電路;5、 寫出設(shè)計(jì)報(bào)告;主要設(shè)計(jì)條件1. 提供eda實(shí)驗(yàn)室;2. 提供el

3、實(shí)驗(yàn)箱和cpld芯片;3. 提供altera公司的max+plus10.1設(shè)計(jì)軟件說明書格式1. 課程設(shè)計(jì)封面;2. 任務(wù)書;3. 說明書目錄;4. 設(shè)計(jì)總體思路,基本原理和框圖(頂層電路圖);5. 單元電路設(shè)計(jì)(各次級(jí)模塊電路圖);6. 設(shè)計(jì)仿真;7. 編程下載;8. 總結(jié)與體會(huì);9. 附錄;10. 參考文獻(xiàn)。進(jìn)度安排星期一、二:下達(dá)設(shè)計(jì)任務(wù)書,介紹課題內(nèi)容與要求;介紹max+plus軟件的使用;查找資料,確定總體設(shè)計(jì)方案和單元電路設(shè)計(jì);星期三第二周星期一:單元電路設(shè)計(jì)與仿真,硬件下載;第二周星期二、三:硬件下載;第二星期四、五:書寫設(shè)計(jì)報(bào)告,打印相關(guān)圖紙;答辯參考文獻(xiàn)1. 康華光主編.電子

4、技術(shù)基礎(chǔ)(數(shù)字部分),高等教育出版社。2. 閻石主編. 電子技術(shù)基礎(chǔ)(數(shù)字部分),清華大學(xué)出版社。3. 陳大欽主編,電子技術(shù)基礎(chǔ)實(shí)驗(yàn),高等教育出版社。4. 彭介華主編,電子技術(shù)課程設(shè)計(jì)指導(dǎo),高等教育出版社。5. 張 原編著,可編程邏輯器件設(shè)計(jì)及應(yīng)用,機(jī)械工業(yè)出版社。6.荀殿棟,徐志軍編著,數(shù)字電路設(shè)計(jì)實(shí)用手冊,電子工業(yè)出版社。7. max+plus入門8.劉洪喜,陸穎編著. vhdl電路設(shè)計(jì)實(shí)用教程 清華大學(xué)出版社 目 錄一.設(shè)計(jì)總體思路61.1基本原理61.2總設(shè)計(jì)框圖6二.單元電路設(shè)計(jì)及模塊仿真72.1消除抖動(dòng)模塊72.2鍵盤掃描模塊92.3七段數(shù)碼顯示電路模塊102.4譯碼電路模塊122

5、.5 密碼控制電路模塊.152.6 總電路17三.編程下載18四.總結(jié)與體會(huì)21五.參考文獻(xiàn)22一、總體設(shè)計(jì)思路1.1基本原理:本次設(shè)計(jì)我把邏輯功能劃分為兩個(gè)大的模塊:控制部分和處理部分??刂颇K是整個(gè)系統(tǒng)的控制核心 ,負(fù)責(zé)接收其模塊傳來的輸入信號(hào) ,再根據(jù)系統(tǒng)的功能產(chǎn)生相應(yīng)的控制信號(hào)送到相關(guān)的模塊。具體操作如下:密碼預(yù)先存入寄存器中,開鎖時(shí),輸入密碼存入另一寄存器中,當(dāng)按下“確定”鍵時(shí),啟動(dòng)比較器,比較兩個(gè)寄存器中的內(nèi)容,當(dāng)結(jié)果相同時(shí)m1,lt綠燈亮,并開鎖;當(dāng)結(jié)果不同時(shí)m0,lf紅燈亮,不開鎖。用戶需要修改密碼時(shí),先開鎖,再按“設(shè)定密碼”,清除預(yù)先存入的密碼,通過鍵盤輸入新的2位十進(jìn)制數(shù),

6、然后再按下確定鍵完成操作。1.2總設(shè)計(jì)框圖如下:鍵盤譯碼開鎖led顯示輸入密碼寄存器鍵盤消抖密碼預(yù)存寄存器綠燈亮鍵盤掃描紅燈亮報(bào)警m=1消除密碼輸入兩位十進(jìn)制數(shù)密碼修改yn二、單元模塊設(shè)計(jì)2.1 消除抖動(dòng)模塊我們使用的按鍵通常都是機(jī)械彈性開關(guān),當(dāng)機(jī)械觸點(diǎn)斷開、閉合時(shí),由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)按鍵開關(guān)在閉合時(shí)不會(huì)馬上穩(wěn)定地接通,在斷開時(shí)也不會(huì)一下子斷開。因而在閉合及斷開的瞬間均伴隨有一連串的抖動(dòng)(如下圖所示)。然而,抖動(dòng)時(shí)間的長短由按鍵的機(jī)械特性決定,一般為5ms10ms。這是一個(gè)很重要的時(shí)間參數(shù),在很多場合都要用到。在這里,我們用軟件去除抖動(dòng)。當(dāng)檢測到鍵閉合時(shí),執(zhí)行一個(gè)延時(shí)程序產(chǎn)生數(shù)毫秒的

7、延時(shí),讓前沿彈跳消失后再檢測閉合;當(dāng)發(fā)現(xiàn)鍵松開后,也給數(shù)毫秒的延時(shí),當(dāng)后沿彈跳消失后,再檢測下一個(gè)鍵的輸入。或者當(dāng)前沿彈跳消失后,將檢測到的信號(hào)所存,然后再輸出,這樣就不需要后沿延時(shí)了。消除抖動(dòng)的電路封裝圖如下:程序如下:library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; library altera; -抖動(dòng) use altera.maxplus2.all; entity lwdou is port ( clk,lwin : in s

8、td_logic; lwout : out std_logic ); end ; architecture a of lwdou is signal vcc, inv_b : std_logic ; signal a0, a1 : std_logic ; signal b0, b1 : std_logic ; begin vcc = 1 ; inv_b vcc , q = a0 , clk = clk, prn = vcc, clrn = inv_b ); dff2 : dff port map (d =vcc , q = a1 , clk = clk, prn = vcc, clrn = i

9、nv_b ); process (clk) begin if clkevent and clk=1 then b0 = not a1; b1 = b0; end if ; end process ; lwout = not (b1 and not b0); end ;消抖電路的仿真波形圖如下:2.2 鍵盤掃描模塊我們在鍵盤的四列輸入口中輸入一個(gè)低電平時(shí)鐘掃描,當(dāng)有按鍵被打下時(shí),對應(yīng)的行被鍵接通也呈現(xiàn)低電平狀態(tài),然后將此輸入輸出信號(hào)輸出到鍵盤編碼就可以進(jìn)行鍵盤按鍵識(shí)別了。鍵盤掃描封裝圖如下:該模塊程序如下:library ieee; -鍵盤掃描 use ieee.std_logic_1164.a

10、ll; use ieee.std_logic_arith.all ; use ieee.std_logic_unsigned.all ; entity lwsm is port ( clk : in std_logic ; sm : out std_logic_vector (4 downto 1) ); end ; architecture a of lwsm is signal m : std_logic_vector(2 downto 1); signal n: std_logic_vector(4 downto 1); begin process (clk) begin if clke

11、vent and clk=1 then n = n+1; m =n(4 downto 3); end if; end process; sm bt=01;ebt=10;e null; end case;end process;process(clk) begin if clkevent and clk=1then ne=0000;e1=e;lwc(6 downto 0)e=0001;e1=e;lwc(6 downto 0)e=0010;e1=e;lwc(6 downto 0)e=0011;e1=e;lwc(6 downto 0)e=0100;e1=e;lwc(6 downto 0)e=0101

12、;e1=e;lwc(6 downto 0)e=0110;e1=e;lwc(6 downto 0)e=0111;e1=e;lwc(6 downto 0)e=1000;e1=e;lwc(6 downto 0)e=1001;e1=e;lwc(6 downto 0)lwcolwcoe=0000;e1=e;lwc(6 downto 0)f=0000;f1=f;lwd(6 downto 0)f=0001;f1=f;lwd(6 downto 0)f=0010;f1=f;lwd(6 downto 0)f=0011;f1=f;lwd(6 downto 0)f=0100;f1=f;lwd(6 downto 0)f

13、=0101;f1=f;lwd(6 downto 0)f=0110;f1=f;lwd(6 downto 0)f=0111;f1=f;lwd(6 downto 0)f=1000;f1=f;lwd(6 downto 0)f=1001;f1=f;lwd(6 downto 0)e=0000;e1=e;lwd(6 downto 0)=0111111; end case; end if; end process;end;譯碼電路的仿真波形圖如下:2.5 密碼控制電路模塊密碼控制電路是本次課題設(shè)計(jì)的核心部分,我們通過密碼控制來斷定數(shù)字鎖的開或關(guān)。當(dāng)密碼輸入時(shí),按下確定鍵,輸入數(shù)字和所存的密碼進(jìn)行比較,若相同則

14、進(jìn)入開鎖狀態(tài)。若輸入密碼不正確則立刻進(jìn)入報(bào)警狀態(tài),然后按下清零鍵,重新輸入密碼。密碼控制封裝圖如下:密碼控制程序如下:library ieee;-控制模塊use ieee.std_logic_1164.all;entity lwcz is port(lw_in:in std_logic_vector(3 downto 0); ll_in:in std_logic_vector(3 downto 0); ww_in:in std_logic_vector(3 downto 0); a,b:out std_logic);end ;architecture luoji of lwcz is sign

15、al g,h:std_logic_vector(3 downto 0); signal s,en,en1: std_logic; signal count1,count2: std_logic:=0; signal co: std_logic_vector(3 downto 0); begin process(ww_in) begin if ww_in=1011then en1=1; elsif ww_in=1010then en=0;en1=0; end if;if(s=1)and(en=1)and(count1=0) then g(3 downto 0)=lw_in(3 downto 0)

16、; h(3 downto 0)=ll_in(3 downto 0); count1=not(count1); end if;if(en1=1)and(count2=0) then if(lw_in(3 downto 0)= g(3 downto 0) and ll_in(3 downto 0)=h(3 downto 0) then a=1;en=1;s=1; else a=0;b=1; end if; count2=not(count2);elsif(en=0)and(en1=0) then count1=0;count2=0;a=0;s=0;b=0; end if;end process ;

17、end;2.6總匡圖如下:3、 編程下載max+plus 支持altera公司的flex10k,flex10ka,flex8000,max9000,max7000,classic等系列可編程邏輯器件。 4.1選擇器件 應(yīng)參照設(shè)計(jì)電路的規(guī)模,所需工作速度等諸多因素對器件進(jìn)行選擇。這里以將上述電路下載到flex10k系列器件中的epf10k10lc84為例進(jìn)行說明。 (1)返回到編輯窗口 (2)在主菜單assign中選擇device項(xiàng),打開器件選擇對話框 (3)單擊device family 區(qū)的下拉列表,選擇flex10k系列(4)在devices的下拉列表中選擇epf10k10lc84 (5)

18、選擇ok 。對話框關(guān)閉即完成器件選擇 4.2管腳鎖定 管腳鎖定即是將所設(shè)計(jì)的原理圖的輸入、輸出信號(hào)定義到實(shí)際器件某個(gè)具體的管腳,此項(xiàng)工作可以由編譯器自動(dòng)分配,也可以由設(shè)計(jì)者根據(jù)設(shè)計(jì)要求進(jìn)行人工分配。若進(jìn)行人工分配,具體操作步驟如下: (1)在原理圖編輯窗中用鼠標(biāo)右鍵單擊輸入或輸出信號(hào) (2)在出現(xiàn)的下拉菜單中選擇assignpin/location/chip ,出現(xiàn)pin/location/chip對話框 (3)在node name項(xiàng)中顯示的應(yīng)是待鎖定管腳的輸入或輸出信號(hào),在pin項(xiàng)中鍵入想要鎖定的管腳號(hào)碼 (4)選擇ok,則管腳號(hào)即分配在所選的輸入輸出信號(hào)上 (5)重復(fù)上述步驟,將所有輸入輸

19、出信號(hào)的管腳鎖定好總電路匡圖如下:(6)在主菜單中,選filesave保存文件 (7)再次編譯項(xiàng)目,通過項(xiàng)目編譯后即可生成一個(gè).sof文件,此文件用于下載4.3器件編程/配置 此項(xiàng)工作即是完成將所設(shè)計(jì)的電路下載到實(shí)際器件中,使其具有所設(shè)計(jì)電路的功能。 在altera器件中,一類為max系列,另一類為flex系列。其中max系列為cpld結(jié)構(gòu),編程信息以eeprom方式保存,故對這類器件的下載稱為編程;flex系列有些類似于fpga,其邏輯塊le及內(nèi)部互連信息都是通過芯片內(nèi)部的存儲(chǔ)器單元陣列完成的,這些存儲(chǔ)器單元陣列可由配置程序裝入,存儲(chǔ)器單元陣列采用sram方式,對這類器件的下載稱為配置。因?yàn)?/p>

20、max系列編程信息以eeprom方式保存,flex系列的配置信息采用sram方式保存,所以系統(tǒng)掉電后,max系列編程信息不會(huì)丟失,而flex系列的配置信息會(huì)丟失,需每次系統(tǒng)上電后重新配置。 使用的器件是epf10k10lc84,為flex系列。下面對其進(jìn)行配置。 (1)將下載電纜一端插入lpt1(計(jì)算機(jī)的并行口,打印機(jī)口),另一端插入實(shí)驗(yàn)系統(tǒng)板,打 開實(shí)驗(yàn)系統(tǒng)的電源。 (2) 在主菜單max+plus 中選擇programmer,出現(xiàn)programmer對話框。(3)在出現(xiàn)的對話框中單擊 configure,即可完成配置。 注:若在軟件首次運(yùn)行時(shí),上述對話框可能皆為灰色,此時(shí)可從options

21、菜單下選擇“hardware setup”對話框,在“hardware type”下拉框中選擇“byte blaster”,單擊“ok”即可。四、總結(jié)與體會(huì)兩周緊張而忙碌的cpld數(shù)字鎖課程設(shè)計(jì)完成了,由于對嵌入式系統(tǒng)不熟悉與以前對eda的學(xué)習(xí)不夠好,任務(wù)完成的有些艱難,但在同學(xué)們和老師的幫助下,也算不負(fù)幸苦。 首先在學(xué)習(xí)中,我不僅在硬件上又加強(qiáng)了鍛煉,對eda的max+plus軟件構(gòu)成有了更好的掌握。從開始接到設(shè)計(jì)題目到系統(tǒng)的實(shí)現(xiàn),每走一步對我來說都是新的嘗試與挑戰(zhàn)。同時(shí)在這次的設(shè)計(jì)中,我學(xué)到了很多知識(shí)也有很多感受,從對設(shè)計(jì)軟件max+plus的一無所知,對eda、cpld等相關(guān)技術(shù)很不了解的狀態(tài),我開始了獨(dú)立的學(xué)習(xí)和實(shí)驗(yàn),查看相關(guān)的資料和書籍,讓自己的頭

溫馨提示

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

評(píng)論

0/150

提交評(píng)論