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

下載本文檔

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

文檔簡介

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

2、同的汽車設(shè)計和測試應(yīng)用,而無需多個定制的測試設(shè)備。而在FPGA的車載電子系統(tǒng)中,車載電子密碼鎖成本更低、風(fēng)險更小、靈活性更高,而且在設(shè)計后期更易變更,甚至可對己經(jīng)投入應(yīng)用的產(chǎn)品進(jìn)行升級,因此將成為未來汽車電子設(shè)計中的理想配置。</p><p>  本設(shè)計在論文中,闡述了電子密碼鎖的發(fā)展與作用,國內(nèi)外發(fā)展現(xiàn)狀,同時也對電子密碼鎖系統(tǒng)進(jìn)行了分析。本文通過VHDL語言設(shè)計了車載電子密碼鎖系統(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 本課題研究的國內(nèi)外現(xiàn)狀及其發(fā)展1</p><p>  1.2 本課題研究的目的和意義2</p><

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

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

12、;/p><p>  3.3 系統(tǒng)設(shè)計要求8</p><p>  3.4 系統(tǒng)設(shè)計描述8</p><p>  3.5 各功能模塊描述9</p><p>  4 系統(tǒng)詳細(xì)設(shè)計11</p><p>  4.1 輸入模塊11</p><p>  4.1.1 時序產(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ìn)入一個全新的階段,從設(shè)計思想、設(shè)計工具一直到實(shí)現(xiàn)方式都發(fā)生了諸多變化。</p><p>  在FPGA技術(shù)中,以當(dāng)代電子技術(shù)為特點(diǎn)的邏輯設(shè)計仿真測試是最受人關(guān)注的技術(shù)。為了能準(zhǔn)確測試和仿真,這種技術(shù)只需要通過電腦就能對所設(shè)計的電子系統(tǒng)從許許多多方面上進(jìn)行;實(shí)際軟件的設(shè)計完成之后,就能完

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

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

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

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

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

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

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

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

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

27、用了FPGA的可編程的資源特點(diǎn),可很好的對該系統(tǒng)進(jìn)行更新和保護(hù)。因此,使用FPGA 開發(fā)的數(shù)字系統(tǒng),不但有很高的工作穩(wěn)定的可靠性,其升級與改進(jìn)也特別的方便,應(yīng)用前景十分良好。</p><p>  1.3 主要設(shè)計任務(wù)</p><p>  通過對FPGA技術(shù)的學(xué)習(xí)和了解,設(shè)計基于的車載電子系統(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ù)簡介</b></p><p>  2.1FPGA硬件設(shè)計描述</p><p>  2.1.1 FPGA的設(shè)計流程</p><p>  FPGA設(shè)計過程包括系

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

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

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

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

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

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

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

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

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

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

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

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

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

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

43、言入,還使用ModelSim-Altera 6.4a工具進(jìn)行編輯編譯和仿真,可以滿足我的設(shè)計的所有需要,是一款十分主流的軟件,對它我很滿意放心。</p><p> ?。?)EDA實(shí)驗(yàn)開發(fā)系統(tǒng)</p><p>  在實(shí)驗(yàn)設(shè)計中我使用VHDL語言來編寫,這是一種通用的硬件編程語言,各路大神都用它。它的特點(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è)計流程</p><p>  以下為使用QuartusⅡ來實(shí)現(xiàn)電子密碼鎖設(shè)計的流程</p><p>  (1)編寫VHDL的程序(使用VHDL File);</p><p> ?。?)編譯VHDL的程序(使用Compiler);</p><p> ?。?)仿真驗(yàn)證VHD

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

46、gt;  3 系統(tǒng)總體設(shè)計</b></p><p>  3.1 電子密碼鎖設(shè)計的原理</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ī)解鎖操作時間成功的密碼。如果每次解鎖時間T,隨機(jī)試驗(yàn)為新臺幣,將在1 / 2分成N段1 / n段預(yù)計解鎖成功。在這段時間P = 1 / 2解

48、鎖成功期望的隨機(jī)測試時間: </p><p>  TR = NT× T/2N (3.2)</p><p>  這是假設(shè)的設(shè)計沒有考慮輸入錯誤的保護(hù),在無保護(hù)的情況下密碼鎖,開鎖時間隨機(jī)測試任何運(yùn)營商是十,那么:</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è)計n =(10 ~ 1000)NLT更合理。</p><p><b>  2、編碼制式的選擇</b></p><p>  編碼制式應(yīng)該根據(jù)NT的大小選取,可分為以下三種:</p><p>  (1)密碼的各位都可以重碼:NT1=a

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

70、</p><p>  所以我們必須增加消除跳動來的電路,避免誤了動作上信的號。特別是,消除跳起來的信號用于來把脈的信號頻率的把脈的信號電路必須比其他電路使用次數(shù)要多一點(diǎn);通常的掃描次數(shù)的電路頻率設(shè)置在100kHz,并將消除吊起來的約200kHz的電的作業(yè)的頻率,作業(yè)的頻率是平時的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>  按鍵消抖部分是由兩個小的模塊集成為一個去抖電路的,所以在此分開介紹此兩個模塊。</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>  此段程序作用是判斷輸入信號是否有效, 如有效則輸出,無效清零。</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>  這段程序的作用就是通過對信號的分段來處理,從而將按鍵產(chǎn)生的不規(guī)率的信號轉(zhuǎn)換為有規(guī)律的使用的信號,達(dá)到消除抖動的目的。</p><p>  4.1.3鍵盤掃描電路</p><p>  掃描電路顧名思義就是來掃描輸入的東西的看看有沒有哪些不對的或者重復(fù)的。2在這個房間里,掃描一排按鈕;當(dāng)掃描

80、信號為1011,ky1掃描的一排按鈕;當(dāng)掃描信號是0111,通過掃描ky0關(guān)鍵行。在每個掃描檢查是否有按鍵按下一排按鈕,按下這個按鈕就行是不能忽視的,相反,如果按鍵立即通過行動的關(guān)鍵代碼,并將結(jié)果使用在一個注冊碼里面。</p><p>  --掃描信號發(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>  鍵盤掃描電路的作用是用來提供鍵盤掃描信號,掃描信號變化的順序?yàn)?110- -1101-1011-0111-1110……周而復(fù)始。掃描信號0111代表掃描的為*、0、#這一排按鍵, 當(dāng)*這個按鍵被按下時, 由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>  密碼的輸入要由鍵盤來控制,因此該模塊十分重要的,要是沒做好,輸入密碼時就可能出錯,得到的東西不是你想要的,這是萬萬不能有的,一定要別家的小心,能不能成功就要靠這個模塊了。</p><

86、p>  鍵盤譯碼電路主要將所對應(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>  生成符號圖如4.7:&

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

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

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

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

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

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

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

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>  模塊外部信號端口:</b></p><p&

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

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

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

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

105、.2 七段譯碼器真值表</p><p><b>  主要程序設(shè)計如下:</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>  模塊外部信號端口:</b></p><p>  data_bcd:密碼信號輸入端口,提供密碼信號輸入。</p><p>  dout7:密碼鎖狀態(tài)信號顯示燈,提供狀態(tài)顯示信號。</p><p><b>  5系統(tǒng)仿真</b></p><p>  之前的科技

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

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

113、需要建立一個工程,在工程中我們要把設(shè)計文件加入工程中;然后選擇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中可以看出,鍵盤掃描出的信號彈跳現(xiàn)象可以得到改善。</p><p>  5.1.2密碼鎖輸入電路的仿真</p><p>  密碼輸入電路如圖5.2:</p><p>  圖5.2 密碼輸入電路</p><p>  圖5.3為密碼鎖輸入電路的仿

115、真結(jié)果圖,圖中的輸出信號kscan,是為便于仿真時觀察中間結(jié)果而增加的觀測點(diǎn)的輸出。 </p><p>  圖5.3 密碼鎖輸入電路仿真結(jié)果圖</p><p>  輸入信號KEY_IN[2..0]依序依011-101-110-011-101的順序周期性循環(huán),對鍵盤進(jìn)行掃描。如有按鍵發(fā)生,鍵盤掃描輸出信號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)行時,LED數(shù)碼管顯示為“11”,表示2個LED燈都不亮,及密碼鎖當(dāng)前為上鎖狀態(tài),當(dāng)按鍵輸入密碼并按下確認(rèn)鍵后,LED數(shù)碼管顯示為“10”,表示1個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è)計,代碼編譯仿真等,實(shí)現(xiàn)了一個簡單的電子密碼鎖的數(shù)碼輸入功能,數(shù)碼清除功能,密碼更改功能,激活電鎖功能,解除電鎖功能,數(shù)字位退格功能。設(shè)計的重點(diǎn)在于控制模塊的設(shè)計,因?yàn)榇四K是整個系統(tǒng)的核心,在整體仿真中,能從仿真圖上看到功能的具體實(shí)現(xiàn),但是仿真圖不能完全仿真顯示完所有的仿真結(jié)果,這個問題一直是比較困惑的,可能還有一些問題沒考慮到吧,系統(tǒng)也存在一

120、定的不足,由于時間上的限制和環(huán)境的限制,比如在顯示模塊做的比較簡單,還有報警模塊等,都沒真正的考慮完全,這些都有待以后提高。</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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論