基于fpga的車載電子系統(tǒng)設(shè)計(jì)畢業(yè)論文_第1頁(yè)
已閱讀1頁(yè),還剩35頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  本 科 畢 業(yè) 設(shè) 計(jì)</p><p>  2015年 05 月 20 日</p><p>  基于FPGA的車載電子系統(tǒng)設(shè)計(jì)</p><p><b>  摘 要</b></p><p>  隨著科技的不斷發(fā)展,F(xiàn)PGA技術(shù)帶來了汽車電子測(cè)試技術(shù)的創(chuàng)新,憑借開發(fā)基于FPGA硬件的單個(gè)系統(tǒng)可以解決不

2、同的汽車設(shè)計(jì)和測(cè)試應(yīng)用,而無需多個(gè)定制的測(cè)試設(shè)備。而在FPGA的車載電子系統(tǒng)中,車載電子密碼鎖成本更低、風(fēng)險(xiǎn)更小、靈活性更高,而且在設(shè)計(jì)后期更易變更,甚至可對(duì)己經(jīng)投入應(yīng)用的產(chǎn)品進(jìn)行升級(jí),因此將成為未來汽車電子設(shè)計(jì)中的理想配置。</p><p>  本設(shè)計(jì)在論文中,闡述了電子密碼鎖的發(fā)展與作用,國(guó)內(nèi)外發(fā)展現(xiàn)狀,同時(shí)也對(duì)電子密碼鎖系統(tǒng)進(jìn)行了分析。本文通過VHDL語(yǔ)言設(shè)計(jì)了車載電子密碼鎖系統(tǒng),實(shí)現(xiàn)了它的數(shù)碼輸入功能,數(shù)

3、碼清除功能,密碼更改功能,激活電鎖功能,解除電鎖功能,數(shù)字位退格功能。并在Quartus II9.0軟件和ModelSim-Altera 6.4a聯(lián)合使用下實(shí)現(xiàn)了系統(tǒng)的編譯仿真與調(diào)試。</p><p>  關(guān)鍵字:FPGA; 電子密碼鎖; 車載電子系統(tǒng); QuartusⅡ</p><p><b>  Abstract</b></p><p> 

4、 With the continuous development of science and technology, FPGA technology has brought the innovation of automobile electronic test technology, with the development of a single system based on FPGA hardware can solve di

5、fferent vehicle design and test application, and test equipment required multiple custom. In vehicle electronic system FPGA, vehicle electronic password lock with lower cost, lower risk, higher flexibility, and late in t

6、he design of more difficult to change, even to upgrade has be</p><p>  The design in this paper, describes the development status of the electronic password lock function, and the development of domestic and

7、 foreign. At the same time, also has carried on the analysis to the electronic password lock system, this paper designed a vehicle electronic password lock system through the VHDL language, it introduces digital input fu

8、nction, digital clear function, change the password lock function, activation function, releaselock 5, digit backspace function. And in the comp</p><p>  Keywords: FPGA; electronic password lock; vehicle ele

9、ctronic system; Quartus II</p><p><b>  目 錄</b></p><p><b>  1 緒論1</b></p><p>  1.1 本課題研究的國(guó)內(nèi)外現(xiàn)狀及其發(fā)展1</p><p>  1.2 本課題研究的目的和意義2</p><

10、p>  1.3 主要設(shè)計(jì)任務(wù)2</p><p><b>  2關(guān)鍵技術(shù)簡(jiǎn)介3</b></p><p>  2.1FPGA硬件設(shè)計(jì)描述3</p><p>  2.1.1 FPGA的設(shè)計(jì)流程3</p><p>  2.1.2 VHDL語(yǔ)言的基本結(jié)構(gòu)4</p><p>  2.1.3 自

11、上而下(TOP DOWN)的設(shè)計(jì)方法5</p><p>  2.2 設(shè)計(jì)語(yǔ)言、仿真平臺(tái)與開發(fā)系統(tǒng)5</p><p>  2.3 用QuartusⅡ進(jìn)行系統(tǒng)開發(fā)的設(shè)計(jì)流程6</p><p>  3 系統(tǒng)總體設(shè)計(jì)6</p><p>  3.1 電子密碼鎖設(shè)計(jì)的原理6</p><p>  3.2方案的提出7<

12、;/p><p>  3.3 系統(tǒng)設(shè)計(jì)要求8</p><p>  3.4 系統(tǒng)設(shè)計(jì)描述8</p><p>  3.5 各功能模塊描述9</p><p>  4 系統(tǒng)詳細(xì)設(shè)計(jì)11</p><p>  4.1 輸入模塊11</p><p>  4.1.1 時(shí)序產(chǎn)生電路11</p>

13、<p>  4.1.2按鍵消抖電路11</p><p>  4.1.3鍵盤掃描電路13</p><p>  4.1.4 鍵盤譯碼電路和鍵盤輸入模塊的實(shí)現(xiàn)14</p><p>  4.2電子密碼鎖控制模塊15</p><p>  4.2.1控制模塊的描述15</p><p>  4.2.2控制模塊的

14、實(shí)現(xiàn)16</p><p>  4.3電子密碼鎖顯示模塊17</p><p>  4.3.1數(shù)碼管顯示原理17</p><p>  4.3.2譯碼顯示的實(shí)現(xiàn)18</p><p><b>  5系統(tǒng)仿真19</b></p><p>  5.1系統(tǒng)各模塊的仿真19</p>&l

15、t;p>  5.1.1去抖模塊的仿真19</p><p>  5.1.2密碼鎖輸入電路的仿真19</p><p>  5.1.3密碼鎖控制電路的仿真20</p><p>  5.1.4數(shù)碼管譯碼器仿真21</p><p>  5.2 系統(tǒng)仿真與分析21</p><p><b>  6結(jié)論23

16、</b></p><p><b>  參考文獻(xiàn)24</b></p><p><b>  致 謝25</b></p><p>  附錄1 電路圖27</p><p>  附錄2 源程序28</p><p><b>  1 緒論</b>

17、;</p><p>  隨著大規(guī)模和超大規(guī)??删幊唐骷贔PGA技術(shù)支持下的廣泛應(yīng)用,使現(xiàn)代化設(shè)計(jì)計(jì)算已進(jìn)入一個(gè)全新的階段,從設(shè)計(jì)思想、設(shè)計(jì)工具一直到實(shí)現(xiàn)方式都發(fā)生了諸多變化。</p><p>  在FPGA技術(shù)中,以當(dāng)代電子技術(shù)為特點(diǎn)的邏輯設(shè)計(jì)仿真測(cè)試是最受人關(guān)注的技術(shù)。為了能準(zhǔn)確測(cè)試和仿真,這種技術(shù)只需要通過電腦就能對(duì)所設(shè)計(jì)的電子系統(tǒng)從許許多多方面上進(jìn)行;實(shí)際軟件的設(shè)計(jì)完成之后,就能完

18、成對(duì)系統(tǒng)上的加載程序的掃描檢查??茖W(xué)技術(shù)的發(fā)展,使電子密碼鎖種類越來越多,更新?lián)Q代的更是越來越快。電子密碼鎖要由以下兩個(gè)部分電子鎖體、電子密匙組成,一把鎖里能存放許多密碼,我們?cè)谑褂眠^程中可隨便修改它。下面就是現(xiàn)在主流電子密碼鎖。</p><p>  遙控式電子防盜鎖目前常見的遙控式電子防盜鎖主要有光遙控和無線電遙控兩類。鍵盤式電子密碼鎖從目前的技術(shù)水平和市場(chǎng)認(rèn)可程度看,使用最為廣泛的是鍵盤式電子密碼鎖,該產(chǎn)品主

19、要應(yīng)用于保險(xiǎn)箱、保險(xiǎn)柜和金庫(kù),還有一部分應(yīng)用于保管箱和運(yùn)鈔車。卡式電子防盜鎖使用各種“卡”作為鑰匙的電子防盜鎖是當(dāng)前最為活躍的產(chǎn)品,無論卡的種類如何多種多樣,按照輸入卡的操作方式,都可分為接觸式卡和非接觸式卡兩大類。生物特征防盜鎖人的某些與生俱來的個(gè)性特征(如手、眼睛、聲音的特征)幾乎不可重復(fù),作為“鑰匙”就是唯一的(除非被逼迫或傷害),因此,利用生物特征做密碼的電子防盜鎖,也特別適合金融業(yè)注重“驗(yàn)明正身”的行業(yè)特點(diǎn)。</p>

20、;<p>  我的基于FPGA的電子密碼鎖設(shè)計(jì)電路有顯示功能,可以顯示數(shù)字也可以不用顯示。當(dāng)你要更改密碼時(shí),由于有特殊功能的FPGA,他的許多地方都要改,用Quartus II9.0軟件把更新后的設(shè)計(jì)下載到軟件中,設(shè)計(jì)效率馬上提高了。而且同單片機(jī)的電子密碼鎖相比用FPGA的設(shè)計(jì)結(jié)構(gòu)簡(jiǎn)單、系統(tǒng)保密性和可靠性更高??梢詮V泛的應(yīng)用在公共場(chǎng)所如食堂、倉(cāng)庫(kù)、飯店等。 </p><p>  可以根據(jù)設(shè)計(jì)師的愿望

21、更改設(shè)計(jì)的FPGA在我們的領(lǐng)域中是一門新技術(shù)。設(shè)計(jì)師只用對(duì)系統(tǒng)的功能進(jìn)行相應(yīng)描述,鍵盤式電子密碼鎖從目前的技術(shù)水平和市場(chǎng)認(rèn)可程度看,使用最為廣泛的是鍵盤式電子密碼鎖,該產(chǎn)品主要應(yīng)用于保險(xiǎn)箱、保險(xiǎn)柜和金庫(kù),還有一部分應(yīng)用于保管箱和運(yùn)鈔車。卡式電子防盜鎖使用各種“卡”作為鑰匙的電子防盜鎖是當(dāng)前最為活躍的產(chǎn)品,就能在FPGA工具的協(xié)助下完成系統(tǒng)設(shè)計(jì),為電子產(chǎn)品的設(shè)計(jì)和研發(fā)縮短了實(shí)踐,降低了其成本,提高了系統(tǒng)的穩(wěn)定性。</p>&

22、lt;p>  1.1 本課題研究的國(guó)內(nèi)外現(xiàn)狀及其發(fā)展</p><p>  大眾對(duì)安全的要求隨著安全意識(shí)的增加和生活質(zhì)量的提高而高。如何研制出安全方便又有可靠的防盜功能的鎖是設(shè)計(jì)師的不變理想。電子技術(shù)快速的發(fā)展,帶來各種各樣的電子產(chǎn)品,電子密碼鎖就是是其中的產(chǎn)物。資料顯示出來,上世紀(jì)30年的電子密碼鎖,已經(jīng)在一些特別的地方有了用處。更具數(shù)學(xué)的概率理論電子鎖的密碼可以有許多種組合,而采用機(jī)械鎖輸入密碼的設(shè)計(jì),還

23、可避免鑰匙被偷偷復(fù)印的可性。越來越受到人們的重視。我們看的電影中經(jīng)常出現(xiàn)許多類型的電子鎖,如數(shù)字鎖,指紋鎖,磁卡鎖,IC卡鎖和其他生物功能的鎖。但按鍵的電子密碼鎖還是更加經(jīng)濟(jì)的選擇,可以大規(guī)模的推廣使用。</p><p>  高科技的集成電路的發(fā)展,使電子鎖在八零年代后的個(gè)頭越來越小,可靠性和成本也變高,在安全性要求較高的情況下使用,和供電需求,使用的是局限在一定范圍內(nèi),很難普及,所以對(duì)它的研究沒有重大進(jìn)展。&l

24、t;/p><p>  發(fā)達(dá)國(guó)家如今技術(shù)相對(duì)先進(jìn),有品種豐富的電子密碼鎖,已廣泛的在各種大型公共應(yīng)用。在中國(guó),電子鎖的整體水平仍在70年,電子密碼鎖的成本也很高,市場(chǎng)仍對(duì)電子鎖的鑰匙,鑰匙和鑰匙卡型電子鎖已引進(jìn)了國(guó)際先進(jìn)水平,目前市場(chǎng)的幾個(gè)工廠的生產(chǎn)與供應(yīng)。但我們自主研制的電子鎖,還沒有市場(chǎng),使用率也不廣。值得一提的是世界許多先進(jìn)的技術(shù)國(guó)內(nèi)很多企業(yè)已經(jīng)引進(jìn)了,因此在我國(guó)發(fā)展前景也必將樂觀。希望通過不斷的努力,中國(guó)的電子

25、密碼鎖可廣泛用。</p><p>  可是目前使用的電子密碼鎖大部分還是用的單片機(jī),在實(shí)際應(yīng)用中,因?yàn)槿菀壮鰡栴},不咋滴可靠啊。車載電子系統(tǒng)之中電子密碼鎖是一個(gè)重要的組成部分,而電子密碼鎖以前都是硬件電路設(shè)計(jì)或者單片機(jī)來實(shí)現(xiàn)的,隨著時(shí)代的發(fā)展,這些設(shè)計(jì)的缺點(diǎn)越來越突出,F(xiàn)PGA作為當(dāng)代科技的產(chǎn)物越來越應(yīng)用到各行各業(yè)中,電子密碼鎖也要趕這個(gè)潮流,我的論文就這么來的。</p><p>  1.

26、2 本課題研究的目的和意義</p><p>  在現(xiàn)代的車載電子系統(tǒng)中,為了更能智能化的控制電子密碼鎖,讓我能更方便的使用,讓它有更好的穩(wěn)定性和使用性,針對(duì)單片機(jī)的設(shè)計(jì)的缺點(diǎn),我采用FPGA技術(shù),通過QuartusⅡ這個(gè)高大上的軟件實(shí)現(xiàn),設(shè)計(jì)了一個(gè)電子密碼鎖,并通過上面那個(gè)高大上軟件來實(shí)現(xiàn)。使用V HDL這種普遍的硬件編程語(yǔ)言對(duì)系統(tǒng)用自上而下的方法進(jìn)行了描述,并在FPGA芯片QuartusⅡ上實(shí)現(xiàn)。我的設(shè)計(jì)充分利

27、用了FPGA的可編程的資源特點(diǎn),可很好的對(duì)該系統(tǒng)進(jìn)行更新和保護(hù)。因此,使用FPGA 開發(fā)的數(shù)字系統(tǒng),不但有很高的工作穩(wěn)定的可靠性,其升級(jí)與改進(jìn)也特別的方便,應(yīng)用前景十分良好。</p><p>  1.3 主要設(shè)計(jì)任務(wù)</p><p>  通過對(duì)FPGA技術(shù)的學(xué)習(xí)和了解,設(shè)計(jì)基于的車載電子系統(tǒng)的電子密碼鎖程序。要求有數(shù)碼輸入功能,數(shù)碼清除功能,密碼更改功能,激活電鎖功能,解除電鎖功能,數(shù)字位

28、退格功能。并在Quartus II9.0軟件和ModelSim-Altera 6.4a的聯(lián)合使用下實(shí)現(xiàn)了系統(tǒng)的編譯仿真與調(diào)試。</p><p><b>  2關(guān)鍵技術(shù)簡(jiǎn)介</b></p><p>  2.1FPGA硬件設(shè)計(jì)描述</p><p>  2.1.1 FPGA的設(shè)計(jì)流程</p><p>  FPGA設(shè)計(jì)過程包括系

29、統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)的設(shè)計(jì),本系統(tǒng)的設(shè)計(jì)實(shí)施階段的工作完成后,他將作為系統(tǒng)輸入,系統(tǒng)輸入時(shí)一個(gè)比較厲害的型號(hào)被輸入進(jìn)來了,這個(gè)型號(hào)十分的高大上很是穩(wěn)定,時(shí)間序列分析,對(duì)器件編程和系統(tǒng)驗(yàn)證的設(shè)計(jì)就是,如果模擬錯(cuò)了或走錯(cuò)了一步,要找出問題并更改才行。但是如果系統(tǒng)模擬成功了,那就可以實(shí)現(xiàn)各種各樣你想要的功能了,一般來說,RTL意思是用來描述是示意或VHDL改變?cè)O(shè)計(jì)代碼的最有用的方法了。為了實(shí)現(xiàn)最的終設(shè)計(jì)有時(shí)要反復(fù)修改,經(jīng)過多次的修改才行。</p

30、><p>  在理論上,VSLI(Ultra Scale Large Integration,超大規(guī)模的集成電路)的設(shè)計(jì)描述層次可以為6個(gè)方面,即系統(tǒng)方面的(系統(tǒng)的功能、參數(shù))、算法方面的(描述系統(tǒng)的功能行為)、RLT級(jí)、門方面的(邏輯門)、電路方面的(晶管體)、版圖方面的(物體工藝)。每一方面的又可分3個(gè)側(cè)面來進(jìn)行描述:行為舉止方面的描述、結(jié)構(gòu)方面的描述和物質(zhì)方面的描述。但是在實(shí)際的情況中往往都把算法級(jí)行為方面的的

31、描述或者RLT級(jí)行為方面的的描述全部稱為行為方面的級(jí)別的描寫,下圖2.1為FPGA的設(shè)計(jì)流程。</p><p>  圖2.1 系統(tǒng)設(shè)計(jì)流程</p><p>  在理論上FPGA設(shè)計(jì)起來特別的簡(jiǎn)單明了,不用關(guān)心別的那些沒用的,只要考慮方面的描述和方面的名系統(tǒng)級(jí),算法級(jí)的行為,RLT級(jí),門級(jí)4級(jí)可以描述。在FPGA系統(tǒng)設(shè)計(jì)實(shí)際上指的是系統(tǒng)級(jí)和算法級(jí),和“RLT”主要指的是方面的的RLT描述的行

32、為。在門的網(wǎng)表描述,通過綜合工具產(chǎn)生。FPGA的設(shè)計(jì)流程和相關(guān)的概念說明如下:</p><p>  庫(kù):指原器件廠家提供的技術(shù)支持和Quartus II9.0軟件提供的圖書館。有各種各樣的基本功來實(shí)現(xiàn)各種用戶的要求也是十分的滿意。</p><p>  需要指出的是,我的系統(tǒng)設(shè)計(jì)起來十分的復(fù)雜,RTL級(jí)實(shí)現(xiàn)起來很難實(shí)現(xiàn),必須經(jīng)過長(zhǎng)期的細(xì)心地觀察和刻苦的長(zhǎng)期努力,Quartus II9.0軟件

33、給我提供了很大的幫助,這不愧是一款當(dāng)今社會(huì)主流的硬件編程軟件,編譯和仿真都很有效的實(shí)現(xiàn)了。當(dāng)然庫(kù)作為一個(gè)重要的組成部分也是十分有用的,費(fèi)了我好大的幫助,還好最后實(shí)現(xiàn)了仿真,我也是很激動(dòng)的,太不容易了。</p><p>  測(cè)試激勵(lì):指的是測(cè)試的系統(tǒng)程序是否產(chǎn)生的信號(hào)的反應(yīng),產(chǎn)生的反應(yīng)就叫做測(cè)試激勵(lì)??梢杂^察FPGA是不是正確的。所有的仿真可用于測(cè)試看不看的刺激。</p><p>  約束:

34、是指綜合方面的邏輯上的和布局布線時(shí)候上的約束。這對(duì)編程的時(shí)候要求很好,也很重要,是十分重要的一個(gè)步驟。確實(shí)需要很好的約束一下,要不然調(diào)試的結(jié)果很容易出錯(cuò)。</p><p>  2.1.2 VHDL語(yǔ)言的基本結(jié)構(gòu)</p><p>  VHDL(Very high speed integrated circuit Hardware Description Language)硬件描述語(yǔ)言從高于邏

35、輯級(jí)的抽象層次上描述硬件的功能、信號(hào)連接關(guān)系及定時(shí)關(guān)系。VHDL的設(shè)計(jì)流程如2.2圖。</p><p>  圖2.2 VHDL的設(shè)計(jì)流程</p><p>  通常一個(gè)完整的VHDL語(yǔ)言程序包含實(shí)在體(Entity)、結(jié)構(gòu)體(Architecture)、配置(Configuration)、包集合(Package)和庫(kù)(Library)這五個(gè)部分。</p><p>&

36、lt;b>  1、實(shí)在體</b></p><p>  實(shí)在體描述部分是對(duì)設(shè)備外觀圖片的描述,這是從外部裝置的外觀看,包括設(shè)備的端點(diǎn)的口,還可以定義參數(shù),以及參數(shù)在模塊外面的重點(diǎn),主要用于系統(tǒng)的外部接口的設(shè)計(jì)描述。</p><p><b>  2、結(jié)構(gòu)體</b></p><p>  結(jié)構(gòu)體是設(shè)備內(nèi)部圖像上的描述,是個(gè)一次設(shè)計(jì)的單

37、位。相應(yīng)的實(shí)體上的單位,編制并納入數(shù)據(jù)圖書館設(shè)計(jì)初步設(shè)計(jì)后,它只能被納入圖書館的設(shè)計(jì)。結(jié)構(gòu)描述了一種設(shè)計(jì)方法構(gòu)和行為,一個(gè)輸入和輸出的設(shè)法設(shè)計(jì)的關(guān)系。表示設(shè)備的不同設(shè)計(jì)可以有多種結(jié)構(gòu),方案。一個(gè)從抽象到具體的設(shè)計(jì)的過程中,結(jié)構(gòu)的描述分為行為方面的描述,寄存裝置上傳輸?shù)拿枋龊蜆?gòu)造的描述這三個(gè)層次。</p><p><b>  3、庫(kù)</b></p><p>  庫(kù)是一個(gè)

38、實(shí)在體,編譯器結(jié)構(gòu),數(shù)據(jù)采集和配置??傄f在前面的設(shè)計(jì)單位使用庫(kù)。有一次,在設(shè)計(jì)單元庫(kù)的數(shù)據(jù)是可見的,因此共享設(shè)計(jì)成果已編譯。VHDL語(yǔ)言庫(kù)大約可以分成IEE庫(kù),標(biāo)準(zhǔn)庫(kù),ACSI庫(kù),廠家提供的用戶定義的庫(kù)和庫(kù)工作。</p><p><b>  4、包館合</b></p><p>  這個(gè)名詞我都沒聽過,查過百度后我恍然大悟,它就相當(dāng)于大大的圖書館,可以在里面存放許多資

39、料信息,用的時(shí)候再去里面找就行。</p><p><b>  5、配置</b></p><p>  配置語(yǔ)從庫(kù)作為一個(gè)實(shí)體,選擇一個(gè)特定的結(jié)構(gòu),是在圖書館的一個(gè)地方是一個(gè)編譯個(gè)體,并有相應(yīng)的配置名稱。通過配置手段,可以選擇各種不同的結(jié)構(gòu),性能測(cè)試設(shè)計(jì)任務(wù)使用仿真工具對(duì)的各種配置。此外,配置方法和法規(guī)的特點(diǎn)可以在多層的描述。</p><p>  

40、2.1.3 自上而下(TOP DOWN)的設(shè)計(jì)方法</p><p>  自上而下的設(shè)計(jì)方法就是一種新的現(xiàn)代的電子系統(tǒng)的設(shè)計(jì)的慣用套路了,從而從整體設(shè)計(jì)上來要求,自上而下逐漸實(shí)現(xiàn)設(shè)計(jì)算數(shù)模型的設(shè)計(jì)仿真與調(diào)試,以及數(shù)據(jù)流級(jí)的仿真設(shè)計(jì),系統(tǒng)設(shè)計(jì)選型,最后完成系統(tǒng)硬件的整體設(shè)計(jì)。半導(dǎo)體制造廠的制造過程中產(chǎn)生的基于FPGA的網(wǎng)絡(luò)芯片,是基于FPGA芯片的配置比特流文件的網(wǎng)表生成。經(jīng)過我長(zhǎng)期的實(shí)驗(yàn)和觀察我發(fā)現(xiàn)了許多的問題都出

41、現(xiàn)在Quartus II9.0軟件編譯的時(shí)候,但是人家軟件都給我提示出來了。這是用VHDL語(yǔ)言設(shè)計(jì)硬件系統(tǒng)最突出的優(yōu)勢(shì)。</p><p>  2.2 設(shè)計(jì)語(yǔ)言、仿真平臺(tái)與開發(fā)系統(tǒng)</p><p><b> ?。?)硬件描述語(yǔ)言</b></p><p>  我用的VHDL這種很普遍的硬件設(shè)計(jì)語(yǔ)言設(shè)計(jì)電子密碼鎖,可以支持各種各樣的設(shè)計(jì)方法,獨(dú)立的硬

42、件描述和具體的技術(shù)和硬件構(gòu)造,可以方便地調(diào)整大小和結(jié)構(gòu)設(shè)計(jì),標(biāo)準(zhǔn)規(guī)范,易于共享和復(fù)用,易于移植的ACSI。這可是硬件編程語(yǔ)言界的最好用的方法之一了,太厲害了。</p><p> ?。?)QuartusⅡ軟件開發(fā)工具</p><p>  軟件實(shí)現(xiàn)仿真的工具我用的是美國(guó)公司推出的Quartus II9.0軟件,它就是生產(chǎn)大名鼎鼎的驍龍?zhí)幚砥鞯墓荆苡肰HDL,Verilog HDL硬件描述語(yǔ)

43、言入,還使用ModelSim-Altera 6.4a工具進(jìn)行編輯編譯和仿真,可以滿足我的設(shè)計(jì)的所有需要,是一款十分主流的軟件,對(duì)它我很滿意放心。</p><p> ?。?)EDA實(shí)驗(yàn)開發(fā)系統(tǒng)</p><p>  在實(shí)驗(yàn)設(shè)計(jì)中我使用VHDL語(yǔ)言來編寫,這是一種通用的硬件編程語(yǔ)言,各路大神都用它。它的特點(diǎn)是可以實(shí)現(xiàn)從寫程序到實(shí)現(xiàn)它的運(yùn)行調(diào)試的一條龍服務(wù),真是編程工作中人們的福音啊。</p

44、><p>  2.3 用QuartusⅡ進(jìn)行系統(tǒng)開發(fā)的設(shè)計(jì)流程</p><p>  以下為使用QuartusⅡ來實(shí)現(xiàn)電子密碼鎖設(shè)計(jì)的流程</p><p> ?。?)編寫VHDL的程序(使用VHDL File);</p><p> ?。?)編譯VHDL的程序(使用Compiler);</p><p> ?。?)仿真驗(yàn)證VHD

45、L的程序(使用 Waveform,Simulator);</p><p>  (4)進(jìn)行芯片時(shí)間順序上的解讀(使用Timing Analyzer);</p><p>  (5)安排芯片引腳的位置(使用Floorplan Editor);</p><p>  (6)下載程序至要用的芯片(使用Programmer)。</p><p><b&

46、gt;  3 系統(tǒng)總體設(shè)計(jì)</b></p><p>  3.1 電子密碼鎖設(shè)計(jì)的原理</p><p><b>  1、編碼總量的確定</b></p><p>  電子密碼鎖的隨機(jī)開鎖成功概率的定義為:</p><p>  P = 1 / NT (3.

47、1)</p><p>  其中p是隨機(jī)開鎖成功的概率,NT代碼總。顯然鎖安全性高,NT應(yīng)該盡可能大,所以P趨于零,但更大的進(jìn)步,相應(yīng)的電路太復(fù)雜了,更多的內(nèi)存和麻煩的密碼。所以NT應(yīng)該合理的上限和下限。</p><p>  NTL的下限值的選擇應(yīng)使隨機(jī)解鎖操作時(shí)間成功的密碼。如果每次解鎖時(shí)間T,隨機(jī)試驗(yàn)為新臺(tái)幣,將在1 / 2分成N段1 / n段預(yù)計(jì)解鎖成功。在這段時(shí)間P = 1 / 2解

48、鎖成功期望的隨機(jī)測(cè)試時(shí)間: </p><p>  TR = NT× T/2N (3.2)</p><p>  這是假設(shè)的設(shè)計(jì)沒有考慮輸入錯(cuò)誤的保護(hù),在無保護(hù)的情況下密碼鎖,開鎖時(shí)間隨機(jī)測(cè)試任何運(yùn)營(yíng)商是十,那么:</p><p>  NTL=(2n×TEN t)×x

49、 (3.3)</p><p>  其中x是最小安全系數(shù)。即:</p><p>  TEN=(NTL×t/2n)/x (3.4)</p><p>  顯然如果NT > = NTL,然后TR >TEN,分段隨機(jī)試驗(yàn)是不容易成功。</p><p>  因此,

50、數(shù)字密碼鎖設(shè)置總的編碼是系統(tǒng)安全的主要技術(shù)指標(biāo),保密。一般來說,當(dāng)NT選中,N NT的原則的上限是更安全的,但總體設(shè)計(jì)n =(10 ~ 1000)NLT更合理。</p><p><b>  2、編碼制式的選擇</b></p><p>  編碼制式應(yīng)該根據(jù)NT的大小選取,可分為以下三種:</p><p> ?。?)密碼的各位都可以重碼:NT1=a

51、i;</p><p>  (2)密碼的非相鄰位可以重碼:NT2=a(a-1)i;</p><p>  (3)密碼的任何一位都不能重碼:NT3=a(a-1)……(a-i+1)。</p><p>  其中a為基數(shù),i為位數(shù),a和i的選取應(yīng)該滿足NT≥NTL , a=2,3,4,10,12,14,16。</p><p>  現(xiàn)在以最常用的a=10,

52、i=6為例,可以計(jì)算出NT2=0159NT 1,NT 3=0.15N T1,所以編碼制式是否考慮重碼對(duì)NT有很大的影響。</p><p>  此外,同一襯底的不同風(fēng)格會(huì)影響NT代碼量,和基片的選擇會(huì)影響電路的硬件設(shè)計(jì)。</p><p>  采用十進(jìn)制編碼設(shè)計(jì)的密碼鎖,密碼允許您留個(gè)心眼,重新寫密碼,簡(jiǎn)化了電路設(shè)計(jì),對(duì)穿來穿去的計(jì)數(shù)方式的密碼鎖的密碼輸入。</p><p&

53、gt;  3、錯(cuò)誤密碼輸入的保護(hù)措施</p><p>  前面介紹過了,自身的安全是電子密碼鎖的設(shè)計(jì)考慮的重點(diǎn),因?yàn)榇a和密碼捕獲都是是隨機(jī)的,如果P = 1捕獲的接近0,必須采取保護(hù)措施的輸入錯(cuò)誤。簡(jiǎn)單地說,就是要設(shè)個(gè)防盜號(hào)心眼,人家一般都是輸錯(cuò)三回密碼就死機(jī)了,這點(diǎn)設(shè)計(jì)的相當(dāng)有必要,防止有人瞎碰密碼當(dāng)然只要關(guān)機(jī)重啟之后就能恢復(fù)正常狀態(tài)了,咱不是什么人才也就跟著人家改了。</p><p>

54、;<b>  3.2方案的提出</b></p><p>  方案一:采用數(shù)字電路控制。雖這個(gè)設(shè)計(jì)雖說是設(shè)計(jì)簡(jiǎn)單,但它是純電路實(shí)現(xiàn),不帶編程語(yǔ)言,不符合畢業(yè)設(shè)計(jì)的要求,也不好用。</p><p>  方案二:通過單片機(jī)實(shí)現(xiàn),前面說過的。單片機(jī)雖然設(shè)計(jì)方便點(diǎn)而且端口也挺多,但是單片機(jī)設(shè)計(jì)的缺點(diǎn)就是太不穩(wěn)定了。</p><p>  通過以上比較雖然方

55、案二比方案一強(qiáng)點(diǎn),但是它不符合時(shí)代的潮流,不能滿足本科設(shè)計(jì)的要求,在運(yùn)行時(shí)程序有時(shí)會(huì)產(chǎn)生各種錯(cuò)誤,因此基于我現(xiàn)在所學(xué)新知識(shí)的理解應(yīng)用,我想出了第三種方案。</p><p>  方案三:利用FPGA設(shè)計(jì)的車載電子密碼鎖,它的設(shè)計(jì)成本特別低,設(shè)計(jì)方便還有很實(shí)惠的開發(fā)板,還可以仿真出結(jié)果,實(shí)現(xiàn)起來相對(duì)容易,更利于系統(tǒng)的改進(jìn)和提高,穩(wěn)定性更好,更好用。</p><p>  通過以上比較描述我決定使

56、用用基于FPGA的電子密碼鎖設(shè)計(jì)這個(gè)靠譜的方案。</p><p>  3.3 系統(tǒng)設(shè)計(jì)要求</p><p>  設(shè)計(jì)一個(gè)好用又實(shí)惠的車載電子密碼鎖,具體要求能夠輸入密碼,當(dāng)然還要能顯示密碼,還得能改密碼,要不然不就難了,還得有輸入的按鈕啊,確定的按鈕啊,還要能把鎖鎖上,防止被壞人盜走咱的密碼,這點(diǎn)是很有必要的。要求如下:</p><p> ?。?)數(shù)碼輸入:每按下一

57、個(gè)數(shù)字鍵,就輸入一個(gè)數(shù)值,并在顯示器上面顯示出</p><p>  該數(shù)值,同時(shí)將之前輸入的數(shù)據(jù)按序左移一個(gè)數(shù)字位置。</p><p>  (2)數(shù)碼清除:按下此鍵可清除前面輸入的所有的值,清除為“0000”。</p><p> ?。?)密碼更改:按下此鍵時(shí)可將目前輸入的數(shù)字設(shè)定成新的密碼。</p><p> ?。?)激活電鎖:按下此鍵時(shí)可將

58、密碼鎖上鎖。</p><p> ?。?)解除電鎖:按下此鍵時(shí)會(huì)檢查輸入的密碼正確與否,密碼正確即開鎖。</p><p> ?。?)數(shù)字位退格:按下此鍵時(shí)可清除最低的數(shù)字,并使各位向右移動(dòng)。</p><p>  3.4 系統(tǒng)設(shè)計(jì)描述</p><p>  我設(shè)計(jì)的密碼鎖是一個(gè)使用簡(jiǎn)單的電子密碼鎖,它以開發(fā)板為主體,采用4*4的鍵盤,前10個(gè)鍵是數(shù)

59、字鍵,8個(gè)數(shù)碼管來顯示輸入的密碼,后面的按鍵實(shí)現(xiàn)電子密碼鎖的各個(gè)功能,總體外觀如圖3.1所示。</p><p>  圖3.1 電子密碼外觀圖</p><p>  上圖3.1為在實(shí)驗(yàn)開發(fā)板上實(shí)現(xiàn)的我的密碼鎖,使用開發(fā)板有十六個(gè)按鈕,分別對(duì)應(yīng)數(shù)字0到9和各個(gè)功能鍵,LED顯示為開發(fā)板上數(shù)碼管顯示。</p><p>  3.5 各功能模塊描述</p><

60、;p>  電子密碼鎖主要由三個(gè)部分組成:數(shù)字密碼輸入電路、密碼鎖控制電路、密碼鎖顯示電路。也就是說,設(shè)計(jì)分為三個(gè)大的功能模塊。圖3.2為數(shù)字電子密碼鎖系統(tǒng)總體框圖。</p><p>  圖3.2 數(shù)字電子密碼功能模塊圖</p><p> ?。?) 我設(shè)計(jì)的密碼鎖輸入電路包括包括許多的小功能的模塊,模塊的功能太高端了,說了也不懂,還是不說了吧。</p><p>

61、;  模塊的功能:一般模塊的功能我就不在介紹了為值得一提的是了加強(qiáng)按鍵按的準(zhǔn)確性我決定加了去抖模塊。</p><p>  作為一個(gè)大學(xué)本科的畢業(yè)論文,我當(dāng)然不打算做什么高大上的東西,就在在Quartus II9.0軟件和ModelSim-Altera 6.4a上湊合著演示一把得了,這兩個(gè)軟件便宜又好用,當(dāng)然也學(xué)了好長(zhǎng)時(shí)間,用當(dāng)然不會(huì)用,能湊合著畢業(yè)就行。</p><p> ?。?) 我的密

62、碼鎖控制電路也有好多的部分組成,同上原因我也不打算說了,大家自己去百度看看吧。</p><p>  模塊功能:這個(gè)功能顯而易見,改密碼以及對(duì)密碼的各種保護(hù)。</p><p> ?。?)顯示這塊比較好理解就是將數(shù)字的代碼,什么二進(jìn)制十六進(jìn)制的轉(zhuǎn)換成一般人能看懂的文字,就叫顯示,很關(guān)鍵的一步。</p><p>  通過上面所描述的系統(tǒng)結(jié)構(gòu)可知,一般正常點(diǎn)的的車載電子系統(tǒng)

63、都要有輸入和控制和顯示三個(gè)部分組成,這點(diǎn)我相信大家都能理解。</p><p>  從圖3.2顯示:我的系統(tǒng)運(yùn)行的相當(dāng)完美,該有的功能都有了,輸錯(cuò)三回密碼就死機(jī)了,這點(diǎn)設(shè)計(jì)的相當(dāng)有必要,防止有人瞎碰密碼當(dāng)然只要關(guān)機(jī)重啟之后就能恢復(fù)正常狀態(tài)了。系統(tǒng)沒輸入密碼之前,LED燈是滅著的,當(dāng)密碼輸入并且正確時(shí),LED燈便亮了。</p><p><b>  4 系統(tǒng)詳細(xì)設(shè)計(jì)</b>

64、</p><p><b>  4.1 輸入模塊</b></p><p>  4.1.1 時(shí)序產(chǎn)生電路</p><p>  本時(shí)序產(chǎn)生電路中分別使用了幾種不同種類工作的跳動(dòng)波形:系統(tǒng)時(shí)鐘跳動(dòng)它是系統(tǒng)內(nèi)部的所有時(shí)鐘跳動(dòng)的源頭,且有最高的頻率、彈跳消除取樣信號(hào)以及鍵盤掃描信號(hào)。</p><p>  當(dāng)一個(gè)系統(tǒng)中需使用多種操作頻

65、率的脈沖波形時(shí),最方便的方法之一就是利用一計(jì)算器來產(chǎn)生各種需要的東西。也就是先建立一個(gè)N位計(jì)數(shù)器,N的大小根據(jù)電路的需求決定,N的值越大,電路可以變動(dòng)的次數(shù)就越多,這樣就可以獲得更大的種類的變化,以便提供多種不同的信號(hào)。若輸入時(shí)鐘為CLK,N位計(jì)數(shù)器的輸出為Q[N-1..0],則Q(0)為CLK的2分頻脈沖信號(hào),Q(1)為CLK的4分頻脈沖信號(hào),Q(2)為CLK的8分頻脈沖信號(hào)……Q(N-1)為CLK的2N分頻脈沖信號(hào);Q(5 DOWN

66、TO 4)取得的是一個(gè)脈沖波形序列,其值依00-01-10-11-00-01周期性變化,其變化頻率為CLK的32分頻。我們利用以上規(guī)律即可得到各種我們所需要的各種想要的結(jié)果。</p><p>  CLK_1K:時(shí)鐘信號(hào)</p><p>  SIGNAL K_SRCLK: STD_LOGIC ; --鍵盤輸入采樣時(shí)鐘</p><p>  SIGNAL K_POS: S

67、TD_LOGIC_VECTOR(1 DOWNTO 0); </p><p><b>  --按鍵位置信號(hào)</b></p><p>  SIGNAL KSCAN:STD_LOGIC_VECTOR(3 DOWNTO 0); --鍵盤掃描信號(hào)</p><p>  KEY IN:STD_LOGIC_VECTOR(2 DOWNTO 0);--按鍵輸入信號(hào)

68、</p><p>  KSRCLK:STD_LOGIC;--鍵盤輸入采樣時(shí)鐘</p><p>  4.1.2按鍵消抖電路</p><p>  鍵盤的設(shè)計(jì)采用的是物理開關(guān)結(jié)構(gòu),所以信號(hào)可能會(huì)不太穩(wěn)定而產(chǎn)生反彈的可能,反應(yīng)激烈的反彈可能導(dǎo)致輸入密碼時(shí)輸錯(cuò)了,由此可見按鍵消除抖動(dòng)電路的重要性。</p><p>  原因是反彈現(xiàn)象,雖然每只按一次按鈕

69、,然后放手,但關(guān)鍵信號(hào)真的產(chǎn)生但不打一次,采樣后信號(hào)的檢測(cè),會(huì)造成錯(cuò)誤的判斷,認(rèn)為鍵盤按了兩次。</p><p>  抽樣結(jié)果如下圖4.1和4.2所示。</p><p>  圖4.1 彈跳現(xiàn)象產(chǎn)生錯(cuò)誤的抽樣結(jié)果 </p><p>  如果調(diào)整系統(tǒng)抽樣頻率,彈跳現(xiàn)象就可以獲得改善。</p><p>  圖4.2 調(diào)整系統(tǒng)抽樣頻率后得到的抽樣結(jié)果

70、</p><p>  所以我們必須增加消除跳動(dòng)來的電路,避免誤了動(dòng)作上信的號(hào)。特別是,消除跳起來的信號(hào)用于來把脈的信號(hào)頻率的把脈的信號(hào)電路必須比其他電路使用次數(shù)要多一點(diǎn);通常的掃描次數(shù)的電路頻率設(shè)置在100kHz,并將消除吊起來的約200kHz的電的作業(yè)的頻率,作業(yè)的頻率是平時(shí)的2倍,或者更高。</p><p>  debounce: block is</p><p&g

71、t;<b>  begin</b></p><p>  u1:debouncing port map (d_in=>key_in(0),d_out=>c(0),</p><p>  clk=>c_debounce);</p><p>  u2:debouncing port map (d_in=>key_in(1),d_

72、out=>c(1),</p><p>  clk=>c_debounce);</p><p>  u3:debouncing port map (d_in=>key_in(2),d_out=>c(2),</p><p>  clk=>c_debounce);</p><p>  end block debounc

73、e;</p><p>  按鍵消抖部分是由兩個(gè)小的模塊集成為一個(gè)去抖電路的,所以在此分開介紹此兩個(gè)模塊。</p><p>  Dcfq模塊:dcfq 模塊的主要程序</p><p>  if clrn='0' and prn='1' then </p><p><b>  q<='0&#

74、39;;</b></p><p>  elsif clrn='1' and prn='0' then</p><p><b>  q<='1';</b></p><p>  elsif clk'event and clk='1' then</p>

75、;<p><b>  q<=d;</b></p><p><b>  end if;</b></p><p>  此段程序作用是判斷輸入信號(hào)是否有效, 如有效則輸出,無效清零。</p><p>  debouncing 模塊主要程序如下:</p><p>  u1:dcfq po

76、rt map (clk=>clk,clrn=>inv_d,prn=>vcc,d=>vcc,q=>q0);</p><p>  u2:dcfq port map (clk=>clk,clrn=>q0,prn=>vcc,d=>vcc,q=>q0);</p><p>  process(clk)</p><p>

77、<b>  begin</b></p><p>  if clk'event and clk='1' then</p><p>  d0<=not q1;</p><p><b>  d1<=d0;</b></p><p><b>  end if;&l

78、t;/b></p><p>  end process;</p><p>  dd0<=d0;dd1<=d1;qq1<=q1; qq0<=q0;</p><p>  d_out<=not (d1 and not d0);</p><p>  d_out1<=not q1;</p><

79、;p>  end architecture art;</p><p>  這段程序的作用就是通過對(duì)信號(hào)的分段來處理,從而將按鍵產(chǎn)生的不規(guī)率的信號(hào)轉(zhuǎn)換為有規(guī)律的使用的信號(hào),達(dá)到消除抖動(dòng)的目的。</p><p>  4.1.3鍵盤掃描電路</p><p>  掃描電路顧名思義就是來掃描輸入的東西的看看有沒有哪些不對(duì)的或者重復(fù)的。2在這個(gè)房間里,掃描一排按鈕;當(dāng)掃描

80、信號(hào)為1011,ky1掃描的一排按鈕;當(dāng)掃描信號(hào)是0111,通過掃描ky0關(guān)鍵行。在每個(gè)掃描檢查是否有按鍵按下一排按鈕,按下這個(gè)按鈕就行是不能忽視的,相反,如果按鍵立即通過行動(dòng)的關(guān)鍵代碼,并將結(jié)果使用在一個(gè)注冊(cè)碼里面。</p><p>  --掃描信號(hào)發(fā)生器 </p><p>  counter: block is</p><p><b>  begin&

81、lt;/b></p><p>  process (clk_1k) is</p><p><b>  begin </b></p><p>  if (clk_1k'event and clk_1k='1') then</p><p><b>  q<=q+1;</b&

82、gt;</p><p><b>  end if ;</b></p><p>  k_srclk<=q(7);</p><p>  k_pos<=q(9 downto 8);</p><p>  end process ;</p><p>  scan <="1110&

83、quot; when k_pos=0 else</p><p>  "1101" when k_pos=1 else</p><p>  "1011" when k_pos=2 else</p><p>  "0111" when k_pos=3 else</p><p><b

84、>  "1111";</b></p><p>  end block counter;</p><p>  鍵盤掃描電路的作用是用來提供鍵盤掃描信號(hào),掃描信號(hào)變化的順序?yàn)?110- -1101-1011-0111-1110……周而復(fù)始。掃描信號(hào)0111代表掃描的為*、0、#這一排按鍵, 當(dāng)*這個(gè)按鍵被按下時(shí), 由CSR[1..0]讀出的值為11,按鍵位

85、置的數(shù)碼關(guān)系如表4.1所列。</p><p>  表4.1 按鍵位置的數(shù)碼關(guān)系</p><p>  4.1.4 鍵盤譯碼電路和鍵盤輸入模塊的實(shí)現(xiàn)</p><p>  密碼的輸入要由鍵盤來控制,因此該模塊十分重要的,要是沒做好,輸入密碼時(shí)就可能出錯(cuò),得到的東西不是你想要的,這是萬萬不能有的,一定要?jiǎng)e家的小心,能不能成功就要靠這個(gè)模塊了。</p><

86、p>  鍵盤譯碼電路主要將所對(duì)應(yīng)的鍵盤值設(shè)定成所要用的功能鍵,其主要程序如下:</p><p>  z<=k_pos & c;</p><p>  if (k_srclk'event and k_srclk = '1') then </p><p>  case z is </p><p>  wh

87、en "11101"=>n<="0000";</p><p>  when "00011"=>n<="0001";</p><p>  when "00101"=>n<="0010";</p><p>  whe

88、n "00110"=>n<="0011";</p><p>  when "01011"=>n<="0100";</p><p>  when "01101"=>n<="0101";</p><p>  when

89、 "01110"=>n<="0110";</p><p>  when "10011"=>n<="0111";</p><p>  when "10101"=>n<="1000";</p><p>  when

90、"10110"=>n<="1001";</p><p>  when others =>n<="1111";</p><p><b>  end case;</b></p><p><b>  end if;</b></p>

91、<p>  if k_srclk 'event and k_srclk='1' then</p><p>  case z is </p><p>  when "11011" =>f<="0100";</p><p>  when "11110" =>f

92、<="0001";</p><p>  when others =>f<="1000";</p><p><b>  end case;</b></p><p><b>  end if;</b></p><p>  生成符號(hào)圖如4.7:&

93、lt;/p><p>  圖4.7 鍵盤輸入電路</p><p><b>  模塊外部信號(hào)端口:</b></p><p>  clk_1k:時(shí)鐘脈沖輸入端口,為系統(tǒng)提供工作的時(shí)鐘脈沖。</p><p>  key_in:按鍵輸入端口,為按鍵輸入提供輸入信號(hào)。</p><p>  kscan:鍵盤掃描序列

94、(仿真時(shí)用),為按鍵掃描提供信號(hào)。</p><p>  data_n:數(shù)字輸出端口,為數(shù)字的輸出提供信號(hào)。</p><p>  data_f:功能輸出端口,為功能的輸出提供信號(hào)。</p><p>  flag_n::數(shù)字輸出標(biāo)志,用于識(shí)別數(shù)字是否輸出。</p><p>  flag_f:功能輸出標(biāo)志,用于識(shí)別功能是否輸出。</p>

95、<p>  ksrclk:鍵盤輸入采樣時(shí)鐘。</p><p>  kpos:按鍵位置,用于識(shí)別按鍵所在位置提供信號(hào)。</p><p><b>  模塊內(nèi)部信號(hào):</b></p><p>  scan:鍵掃信號(hào)“00-01-10-11”寄存器</p><p>  k_ksrclk:去抖時(shí)鐘信號(hào),為去抖提供信號(hào)

96、。</p><p>  c:鍵盤輸入去抖后的寄存器,用于鍵盤去抖后存儲(chǔ)鍵盤輸入的寄存器。</p><p>  n,f:數(shù)字、功能按鍵譯碼值的寄存器,用于存儲(chǔ)數(shù)字、功能按鍵譯碼后的值。</p><p>  fn,ff:數(shù)字、功能按鍵標(biāo)志值數(shù)字、功能按鍵。</p><p>  q:模塊內(nèi)部信號(hào),用于識(shí)別各個(gè)信號(hào)所用。</p><

97、;p>  k_pos:按鍵位置信號(hào),用于提供按鍵位置所在信號(hào)。</p><p>  4.2電子密碼鎖控制模塊</p><p>  4.2.1控制模塊的描述</p><p>  控制鎖的控制模塊是整個(gè)系統(tǒng)的控制終端,主要用途是控制數(shù)字信號(hào)輸入與功能信號(hào)的輸入。</p><p>  1、數(shù)字按鍵輸入的響應(yīng)控制</p><

98、p> ?。?)按下一個(gè)數(shù)字鍵,從節(jié)目的右端第一個(gè)數(shù)開始出現(xiàn),然后每按一個(gè)數(shù)字,左邊的數(shù)字必須出現(xiàn),使新的數(shù)字出現(xiàn)。</p><p>  (2)如果想改變輸入的數(shù)字,可以按后退按鈕來擺脫一個(gè)數(shù)的輸入,或按清除鍵清除所有的接入號(hào)碼,再輸入四位數(shù)。</p><p> ?。?)由于這里的設(shè)計(jì)是一四位電子密碼鎖,所以當(dāng)輸入超過預(yù)設(shè)數(shù)量,電路的忽視,不再后數(shù)碼管顯示。</p>&l

99、t;p>  使用電子密碼鎖的時(shí)候,只會(huì)使用三種工作模式,其中輸入數(shù)字只要數(shù)字鍵,鎖和解鎖這兩個(gè)功能需要按鈕。但在實(shí)際操作中會(huì)不可避免地發(fā)生,按錯(cuò)了鍵,使“輸入”功能的概率很高,所以兩個(gè)功能鍵置于中的設(shè)計(jì),“清除鎖”和“接觸鎖定“分享功能按鈕,一個(gè)功能按鈕“激活鎖”。</p><p>  剛開始時(shí)顯示讓你輸密碼,那你就輸唄,但要注意的是密碼千萬不能忘記了,要是連續(xù)輸入三次都錯(cuò)了系統(tǒng)就鎖定了。密碼輸對(duì),就能解鎖

100、正確即進(jìn)人開鎖狀態(tài)。由狀態(tài)轉(zhuǎn)換圖得到的控制模塊。 </p><p>  4.2.2控制模塊的實(shí)現(xiàn)</p><p><b>  生成電路圖4.10</b></p><p>  圖4.10 控制模塊電路</p><p><b>  模塊外部信號(hào)端口:</b></p><p&

101、gt;  data_n:數(shù)字輸入端口,用于提供數(shù)字輸入信號(hào)。</p><p>  data_f:功能輸入端口,用于提供功能輸入信號(hào)。</p><p>  flag_n:數(shù)字輸入標(biāo)志,用于識(shí)別數(shù)字是否輸入。</p><p>  flag_f:功能輸入標(biāo)志,用于識(shí)別功能是否輸入。</p><p>  ksrclk:鍵盤輸入采樣時(shí)鐘,用于提供鍵盤輸

102、入的采樣時(shí)鐘。</p><p>  enlock:密碼鎖控制信號(hào)輸出端口,提供密碼鎖控制信號(hào)輸出。</p><p>  data_bcd:按鍵顯示輸出端口,用于提供按鍵顯示輸出信號(hào)。</p><p>  mimain:密碼輸入標(biāo)志,用于提供密碼輸入信號(hào)。</p><p>  setin:密碼設(shè)定標(biāo)志,提供密碼設(shè)置信號(hào)。</p>

103、<p>  old:舊密碼設(shè)置標(biāo)志,提供舊密碼設(shè)置標(biāo)志。</p><p><b>  模塊內(nèi)部信號(hào):</b></p><p>  acc:暫存鍵盤輸入信息</p><p>  reg:密碼存儲(chǔ)位置</p><p>  4.3電子密碼鎖顯示模塊</p><p>  4.3.1數(shù)碼管顯示原理

104、</p><p>  顯示是按照LED的原理實(shí)現(xiàn)的,百度上都有,就不在過多解釋了。BCD碼的顯示原理我們?cè)跀?shù)電和模電里學(xué)過的,就是靠控制輸入和輸出的端口來在LED數(shù)碼管上顯示出我們想要的圖形,也就是0到9的七段碼顯示,通過控制輸入的0和1的切換就能夠改變顯示的結(jié)果。</p><p>  可以列出8421BCD七段譯碼器的真值表,見表4.2。</p><p>  表4

105、.2 七段譯碼器真值表</p><p><b>  主要程序設(shè)計(jì)如下:</b></p><p>  CASE DATA_BCD IS</p><p>  WHEN "0000" =>DOUT7<= "0111111";</p><p>  WHEN "00

106、01" =>DOUT7<= "0000110";</p><p>  WHEN "0010" =>DOUT7<= "1011011";</p><p>  WHEN "0011" =>DOUT7<= "1001111";</p>

107、<p>  WHEN "0100" =>DOUT7<= "1100110";</p><p>  WHEN "0101" =>DOUT7<= "1101101";</p><p>  WHEN "0110" =>DOUT7<= "

108、;1111101";</p><p>  WHEN "0111" =>DOUT7<= "0000111";</p><p>  WHEN "1000" =>DOUT7<= "1111111";</p><p>  WHEN "1001&q

109、uot; =>DOUT7<= "1101111";</p><p>  WHEN OTHERS =>DOUT7<= "0000000";</p><p>  4.3.2譯碼顯示的實(shí)現(xiàn)</p><p>  生成電路圖4.13:</p><p>  圖4.13譯碼顯示電路</

110、p><p><b>  模塊外部信號(hào)端口:</b></p><p>  data_bcd:密碼信號(hào)輸入端口,提供密碼信號(hào)輸入。</p><p>  dout7:密碼鎖狀態(tài)信號(hào)顯示燈,提供狀態(tài)顯示信號(hào)。</p><p><b>  5系統(tǒng)仿真</b></p><p>  之前的科技

111、不發(fā)達(dá),人們?cè)O(shè)計(jì)都是靠畫畫圖紙來實(shí)現(xiàn)功能的,那會(huì)的設(shè)計(jì)雖說可靠可是設(shè)計(jì)麻煩,而且像我們這樣的大學(xué)生其實(shí)就是為了畢業(yè)才整這玩意,根本沒想做實(shí)物設(shè)計(jì),仿真軟件的出現(xiàn)真是一大福利啊。</p><p>  隨著電子技術(shù)和計(jì)算機(jī)的飛速發(fā)展,一種新的硬件電路的設(shè)計(jì)方法,描述語(yǔ)言是硬件的崛起。電子設(shè)計(jì)自動(dòng)化技術(shù)是目前主流的技術(shù),能讓設(shè)計(jì)師完成電路的設(shè)計(jì),分析和模擬,還能在電腦上測(cè)試,印刷電路板都能自動(dòng)設(shè)計(jì),是硬件設(shè)計(jì)師們的福音

112、啊。利用該技術(shù)進(jìn)行設(shè)計(jì),可以既有軟件設(shè)計(jì)方法還有硬件設(shè)計(jì),相當(dāng)?shù)娜妫疫@軟件還可以仿真,指出錯(cuò)誤,還能加載到開發(fā)板上,很是智能,方便又好用。因此,這當(dāng)然是未來的行業(yè)主流啊,前途無限啊。</p><p>  本節(jié)主要是闡述設(shè)計(jì)在Quartus II9.0軟件和ModelSim-Altera 6.4a聯(lián)合實(shí)現(xiàn)編譯與仿真。</p><p>  在Quartus II9.0在輸入源程序后,我們

113、需要建立一個(gè)工程,在工程中我們要把設(shè)計(jì)文件加入工程中;然后選擇ModelSim-Altera 6.4a 進(jìn)行聯(lián)合仿真。</p><p>  5.1系統(tǒng)各模塊的仿真</p><p>  5.1.1防抖電路的仿真</p><p>  圖5.1為鍵盤輸入防抖電路的仿真結(jié)果圖,由圖上可以看出,原來的彈跳現(xiàn)象經(jīng)過防抖電路處理后已經(jīng)清除了。</p><p&g

114、t;  圖5.1 鍵盤輸入防抖電路的仿真結(jié)果圖</p><p>  由圖5.1中可以看出,鍵盤掃描出的信號(hào)彈跳現(xiàn)象可以得到改善。</p><p>  5.1.2密碼鎖輸入電路的仿真</p><p>  密碼輸入電路如圖5.2:</p><p>  圖5.2 密碼輸入電路</p><p>  圖5.3為密碼鎖輸入電路的仿

115、真結(jié)果圖,圖中的輸出信號(hào)kscan,是為便于仿真時(shí)觀察中間結(jié)果而增加的觀測(cè)點(diǎn)的輸出。 </p><p>  圖5.3 密碼鎖輸入電路仿真結(jié)果圖</p><p>  輸入信號(hào)KEY_IN[2..0]依序依011-101-110-011-101的順序周期性循環(huán),對(duì)鍵盤進(jìn)行掃描。如有按鍵發(fā)生,鍵盤掃描輸出信號(hào)CLK_SCAN做出反應(yīng)。</p><p>  5.1.3密碼鎖

116、控制電路的仿真</p><p>  密碼鎖控制電路如圖5.4:</p><p>  圖5.4密碼鎖控制電路</p><p>  圖5.5 密碼鎖控制電路仿真結(jié)果圖</p><p>  5.1.4數(shù)碼管譯碼器仿真</p><p>  密碼鎖顯示電路如圖5.6:</p><p>  圖5.6 密碼鎖

117、顯示電路</p><p>  A為4位輸入,為BCD碼格式,通過譯碼電路,輸出7位譯碼,在LED數(shù)碼管上顯示相應(yīng)的數(shù)字信息。仿真圖如5.7:</p><p>  圖5.7 密碼鎖顯示電路仿真結(jié)果圖</p><p>  5.2系統(tǒng)仿真與分析</p><p>  圖5.8 密碼鎖系統(tǒng)整體電路仿真結(jié)果圖</p><p>  

118、如圖5.8所示,系統(tǒng)開始運(yùn)行時(shí),LED數(shù)碼管顯示為“11”,表示2個(gè)LED燈都不亮,及密碼鎖當(dāng)前為上鎖狀態(tài),當(dāng)按鍵輸入密碼并按下確認(rèn)鍵后,LED數(shù)碼管顯示為“10”,表示1個(gè)LED燈亮,代表電子密碼鎖輸入成功,密碼鎖解鎖,密碼鎖整體仿真結(jié)束。</p><p><b>  6結(jié) 論</b></p><p>  本系統(tǒng)是基于FPGA來完成的,通過 Quartus II

119、9.0開發(fā)系統(tǒng)和ModelSim-Altera 6.4a 軟件進(jìn)行聯(lián)合仿真并調(diào)試。經(jīng)過詳細(xì)設(shè)計(jì),代碼編譯仿真等,實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的電子密碼鎖的數(shù)碼輸入功能,數(shù)碼清除功能,密碼更改功能,激活電鎖功能,解除電鎖功能,數(shù)字位退格功能。設(shè)計(jì)的重點(diǎn)在于控制模塊的設(shè)計(jì),因?yàn)榇四K是整個(gè)系統(tǒng)的核心,在整體仿真中,能從仿真圖上看到功能的具體實(shí)現(xiàn),但是仿真圖不能完全仿真顯示完所有的仿真結(jié)果,這個(gè)問題一直是比較困惑的,可能還有一些問題沒考慮到吧,系統(tǒng)也存在一

120、定的不足,由于時(shí)間上的限制和環(huán)境的限制,比如在顯示模塊做的比較簡(jiǎn)單,還有報(bào)警模塊等,都沒真正的考慮完全,這些都有待以后提高。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1]周立功.SOPC嵌入式系統(tǒng)基礎(chǔ)教程[J].北京航空航天大學(xué)出版社,2011.</p><p>  [2]吳厚航.深入淺出玩轉(zhuǎn)FPGA[J].北京航

溫馨提示

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

評(píng)論

0/150

提交評(píng)論