EDA課程設(shè)計(jì)基于CPLD的汽車尾燈控制系統(tǒng)_第1頁
EDA課程設(shè)計(jì)基于CPLD的汽車尾燈控制系統(tǒng)_第2頁
EDA課程設(shè)計(jì)基于CPLD的汽車尾燈控制系統(tǒng)_第3頁
EDA課程設(shè)計(jì)基于CPLD的汽車尾燈控制系統(tǒng)_第4頁
EDA課程設(shè)計(jì)基于CPLD的汽車尾燈控制系統(tǒng)_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、成績(jī) 課 程 設(shè) 計(jì) 說 明 書課程設(shè)計(jì)名稱: eda技術(shù)課程設(shè)計(jì) 題 目: 設(shè)計(jì)汽車尾燈控制電路 學(xué) 生 姓 名: 專 業(yè): 學(xué) 號(hào): 指 導(dǎo) 教 師: 日期:2012年 6月 11 日 目錄1前言31.1設(shè)計(jì)的目的31.2 設(shè)計(jì)要求31.3 功能分析31.4 eda的介紹41.4.1 eda技術(shù)的概念41.4.2 eda技術(shù)的特點(diǎn)41.4.3 eda設(shè)計(jì)流程41.5硬件描述語言(vhdl)51.5.1 vhdl的介紹51.5.2 vhdl語言的特點(diǎn)52.總體方案設(shè)計(jì)63.protel各電路模塊及分析73.1時(shí)鐘產(chǎn)生電路部分73.2電源供應(yīng)電路部分73.3現(xiàn)場(chǎng)可編程門陣列fpga電路部分83

2、.4jtag下載電路部分93.5發(fā)光顯示部分104.各單元模塊的設(shè)計(jì)124.1汽車狀態(tài)模塊124.1.1設(shè)計(jì)的汽車狀態(tài)模塊124.1.2汽車狀態(tài)控制的程序代碼124.2 左尾燈控制模塊與右尾燈控制模塊134.2.1左尾燈控制模塊134.2.2 汽車左燈hdl語言如下144.2.3 設(shè)計(jì)的右尾燈控制模塊154.2.4汽車右燈hdl語言如下164.3 時(shí)鐘模塊174.3.1時(shí)鐘控制模塊174.3.2周期為2s的時(shí)鐘源程序184.3.3周期為500ms的時(shí)鐘源程序184.4各模塊流程圖195 系統(tǒng)的仿真與調(diào)試205.1汽車狀態(tài)模塊的仿真與分析205.2汽車尾燈左燈模塊仿真及分析205.3汽車尾燈右燈

3、模塊仿真及分析215.4時(shí)鐘模塊仿真及分析215.5整個(gè)系統(tǒng)的仿真及分析225.6整個(gè)頂層設(shè)計(jì)電路圖23總結(jié)23參考文獻(xiàn)24附圖251前言隨著科學(xué)技術(shù)的全面發(fā)展,汽車制造工藝得到了不斷的進(jìn)步,使得汽車已經(jīng)成為現(xiàn)代人們主要的交通工具。人們了解到它們快捷、快速之于,也同時(shí)意識(shí)到汽車潛在的安全隱患,所以對(duì)具有汽車行駛狀況提示作用的汽車尾燈進(jìn)行研究是非常必要的。1.1設(shè)計(jì)的目的通過該課程設(shè)計(jì),讓學(xué)生掌握eda的基本方法,熟悉vhdl語言和一種eda軟件(quartus ii),并能利用eda軟件設(shè)計(jì)一個(gè)電子技術(shù)綜合問題,進(jìn)一步培養(yǎng)學(xué)生分析解決工程實(shí)際問題的能力,為以后的畢業(yè)設(shè)計(jì)和進(jìn)行工程實(shí)際問題的研究

4、打下設(shè)計(jì)基礎(chǔ)。1.2 設(shè)計(jì)要求汽車尾燈左、右各有3個(gè),從中間開始編號(hào),分別用l1、l2、l3,r1、r2、r3表示。當(dāng)汽車轉(zhuǎn)向時(shí),按l1l1l2l1l2l3全亮l1(或r1r1r2r1r2r3全亮r1)次序循環(huán)亮,亮持續(xù)為2秒;當(dāng)汽車剎車時(shí),所有尾燈同時(shí)以2hz的頻率閃爍;正常行駛時(shí),所有尾燈滅。輸入信號(hào)有左、右轉(zhuǎn)向和剎車。1.3 功能分析從以上設(shè)計(jì)要求,將本系統(tǒng)分成四個(gè)功能設(shè)計(jì)模塊:(1)汽車狀態(tài)模塊:該模塊接收左轉(zhuǎn)、右轉(zhuǎn)、剎車和正常行駛的控制信號(hào),根據(jù)所接受的信號(hào)控制左尾燈控制模塊和右尾燈控制模塊。(2)左尾燈控制模塊:接受汽車狀態(tài)模塊的控制信號(hào)對(duì)左邊三個(gè)尾燈的亮與滅進(jìn)行控制。(3)右尾燈

5、控制模塊:接受汽車狀態(tài)模塊的控制信號(hào)對(duì)右邊三個(gè)尾燈的亮與滅進(jìn)行控制。(4)時(shí)鐘模塊:由于當(dāng)汽車轉(zhuǎn)彎時(shí)尾燈按照一定順序循環(huán)亮滅,亮持續(xù)時(shí)間為2s,而剎車時(shí)尾燈又以2hz的頻率閃爍,故該模塊提供周期為2s和500ms的時(shí)鐘信號(hào)供左尾燈控制模塊和右尾燈控制模塊控制尾燈的亮滅。1.4 eda的介紹 1.4.1 eda技術(shù)的概念eda是電子設(shè)計(jì)自動(dòng)化(electronic design automation)的縮寫,在20世紀(jì)90年代初從計(jì)算機(jī)輔助設(shè)計(jì)(cad)、計(jì)算機(jī)輔助制造(cam)、計(jì)算機(jī)輔助測(cè)試(cat)和計(jì)算機(jī)輔助工程(cae)的概念發(fā)展而來的。eda技術(shù)就是以計(jì)算機(jī)為工具,設(shè)計(jì)者在eda軟件

6、平臺(tái)上,用硬件描述語言hdl完成設(shè)計(jì)文件,然后由計(jì)算機(jī)自動(dòng)地完成邏輯編譯、化簡(jiǎn)、分割、綜合、優(yōu)化、布局、布線和仿真,直至對(duì)于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。1.4.2 eda技術(shù)的特點(diǎn)利用eda技術(shù)進(jìn)行電子系統(tǒng)的設(shè)計(jì),具有以下幾個(gè)特點(diǎn): 用軟件的方式設(shè)計(jì)硬件; 用軟件方式設(shè)計(jì)的系統(tǒng)到硬件系統(tǒng)的轉(zhuǎn)換是由有關(guān)的開發(fā)軟件自動(dòng)完成的; 設(shè)計(jì)過程中可用有關(guān)軟件進(jìn)行各種仿真; 系統(tǒng)可現(xiàn)場(chǎng)編程,在線升級(jí); 整個(gè)系統(tǒng)可集成在一個(gè)芯片上,體積小、功耗低、可靠性高。因此,eda技術(shù)是現(xiàn)代電子設(shè)計(jì)的發(fā)展趨勢(shì)。1.4.3 eda設(shè)計(jì)流程典型的eda設(shè)計(jì)流程如下:1、文本/原理圖編輯與修改。首先利用e

7、da工具的文本或圖形編輯器將設(shè)計(jì)者的設(shè)計(jì)意圖用文本或圖形方式表達(dá)出來。 2、編譯。完成設(shè)計(jì)描述后即可通過編譯器進(jìn)行排錯(cuò)編譯,變成特定的文本格式,為下一步的綜合做準(zhǔn)備。 3、 綜合。將軟件設(shè)計(jì)與硬件的可實(shí)現(xiàn)性掛鉤,是將軟件轉(zhuǎn)化為硬件電路的關(guān)鍵步驟。4、 行為仿真和功能仿真。利用產(chǎn)生的網(wǎng)表文件進(jìn)行功能仿真,以便了解設(shè)計(jì)描述與設(shè)計(jì)意圖的一致性。5、適配。利用fpga/cpld布局布線適配器將綜合后的網(wǎng)表文件針對(duì)某一具體的目標(biāo)器件進(jìn)行邏輯映射操作,其中包括底層器件配置、邏輯分割、邏輯優(yōu)化、布局布線。適配報(bào)告指明了芯片內(nèi)資源的分配與利用、引腳鎖定、設(shè)計(jì)的布爾方程描述情況。 6、 功能仿真和時(shí)序仿真。7、

8、 下載。如果以上的所有過程都沒有發(fā)現(xiàn)問題,就可以將適配器產(chǎn)生的下載文件通過fpga/cpld下載電纜載入目標(biāo)芯片中。1.5硬件描述語言(vhdl)1.5.1 vhdl的介紹vhdl(very-high-speed integrated circuit hardware description language)主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件特征的語句外,vhdl的語言形式和描述風(fēng)格與句法是十分類似于一般的計(jì)算機(jī)高級(jí)語言。vhdl的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱設(shè)計(jì)實(shí)體(可以是一個(gè)元件,一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部(或稱可是部分,及端口)和內(nèi)部(或稱不

9、可視部分),既涉及實(shí)體的內(nèi)部功能和算法完成部分。在對(duì)一個(gè)設(shè)計(jì)實(shí)體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體。這種將設(shè)計(jì)實(shí)體分成內(nèi)外部分的概念是vhdl系統(tǒng)設(shè)計(jì)的基本1.5.2 vhdl語言的特點(diǎn)1.用vhdl代碼而不是用原理圖進(jìn)行設(shè)計(jì),意味著整個(gè)電路板的模型及性能可用計(jì)算機(jī)模擬進(jìn)行驗(yàn)證。2.vhdl元件的設(shè)計(jì)與工藝無關(guān),與工藝獨(dú)立,方便工藝轉(zhuǎn)換。3.vhdl支持各種設(shè)計(jì)方法,自頂向下、自底向上或者混合的都可以。4.可以進(jìn)行從系統(tǒng)級(jí)到邏輯級(jí)的描述,即混合描述。5.vhdl區(qū)別于其他的hdl,已形成標(biāo)準(zhǔn),其代碼在不同的系統(tǒng)中可交換建模。2.總體方案設(shè)計(jì)第一種方案:通過

10、把脈沖電路,開關(guān)控制電路,三進(jìn)制電路,譯碼與顯示驅(qū)動(dòng)電路等模塊組合來實(shí)現(xiàn)。首先,通過555定時(shí)器構(gòu)成多諧振蕩器產(chǎn)生頻率為1hz的脈沖信號(hào),該脈沖信號(hào)用于供給雙j-k觸發(fā)器構(gòu)成的三進(jìn)制計(jì)數(shù)器和開關(guān)控制電路中的三輸入與非門的輸入信號(hào)。其次,雙j-k觸發(fā)器構(gòu)成的三進(jìn)制計(jì)數(shù)器產(chǎn)生00,01,10的循環(huán)信號(hào),此信號(hào)提供左轉(zhuǎn),右轉(zhuǎn),停止的原始信號(hào)。最后,左轉(zhuǎn),右轉(zhuǎn),停止的原始信號(hào)通過6個(gè)與非門以及7410提供的高低電位信號(hào),將原始信號(hào)分別輸入到左,右的3個(gè)汽車尾燈上,得到的信號(hào)即可輸入到發(fā)光二極管上,實(shí)現(xiàn)所需功能。這種方案的實(shí)現(xiàn)復(fù)雜,成本高,調(diào)試起來不容易成功,太過繁瑣。 第二種方案:用復(fù)雜可編程器件cp

11、ld,用vhdl對(duì)汽車尾燈控制電路進(jìn)行設(shè)計(jì),并用quartus軟件進(jìn)行cpld芯片的編譯和下載,生成是集成化的數(shù)字電路。這種方案沒有傳統(tǒng)設(shè)計(jì)中的接線問題,硬件功能的改變可以通過編程來修改,所以故障率低,可靠性高,而且體積小,體現(xiàn)了eda技術(shù)在數(shù)字電路設(shè)計(jì)中的優(yōu)越性。3.protel各電路模塊及分析3.1時(shí)鐘產(chǎn)生電路部分時(shí)鐘產(chǎn)生電路是由有源晶振實(shí)現(xiàn)的圖5.1.1時(shí)鐘電路3.2電源供應(yīng)電路部分此電源供應(yīng)電路由四個(gè)三極管和一個(gè)齊納二極管和電容加上lm2576構(gòu)成,為總電路提供電源如下圖5.2.1。圖5.2.1電源供應(yīng)電路lm2576是降壓型開關(guān)穩(wěn)壓器,lm2576具有非常小的電壓調(diào)整率和電流調(diào)整率,

12、lm2576具有3a 的負(fù)載驅(qū)動(dòng)能力,lm2576能夠輸出3.3v、5v、12v、15v 的固定電壓和電壓可調(diào)節(jié)的可調(diào)電壓輸出方式。lm2576 應(yīng)用時(shí)比較簡(jiǎn)單且外圍元件較少,lm2576內(nèi)置頻率補(bǔ)償電路和固定頻率振蕩器。 lm2576 系列產(chǎn)品的開關(guān)頻率為52khz,所以應(yīng)用時(shí)可以使用小尺寸的濾波元件。 lm2576 可以高效的取代一般的三端線性穩(wěn)壓器,lm2576能夠充分的減小散熱片的面積, lm2576在一些應(yīng)用條件下甚至可以不使用散熱片。在規(guī)定的輸入電壓和輸出負(fù)載的條件下,lm2576 輸出電壓的誤差范圍為4;振蕩器的振蕩頻率誤差范圍為10;典型的待機(jī)電流為50a,芯片內(nèi)置過流保護(hù)電路

13、和過熱保護(hù)電路。 開關(guān)電壓調(diào)節(jié)器lm2576的詳細(xì)介紹 特點(diǎn) 1,3.3v、5v、12v、15v 的固定電壓輸出和可調(diào)節(jié)電壓輸出 2,可調(diào)節(jié)電壓輸出的范圍為1.23v 到30v,其線性調(diào)整率和負(fù)載調(diào)整率最大可以有4的誤差。 3,負(fù)載電流達(dá)到3a 4,輸入電壓達(dá)到36v 5,只需四個(gè)外圍元件 6,內(nèi)置固定頻率為52khz 的振蕩器 7,高效率 8,內(nèi)置過熱保護(hù)電路和過流保護(hù)電路3.3現(xiàn)場(chǎng)可編程門陣列fpga電路部分 本電路選用的是現(xiàn)場(chǎng)可編程門陣列fpga,采用的是epf10k10lc84型號(hào),epf10k10lc84屬于fpga中flex10k系列,如下圖5.3.1。圖5.3.15現(xiàn)場(chǎng)可編程門陣

14、列fpga電路它是altera公司生產(chǎn)的很成功的fpga系列之一。flex10k系列采用重復(fù)可構(gòu)造的cmos sram工藝,把連續(xù)的快速通道互連與獨(dú)特的嵌入式陣列結(jié)構(gòu)相結(jié)合,同時(shí)也結(jié)合了眾多可編程器件的優(yōu)點(diǎn)來完成普通門陣列的宏功能。每個(gè)flex10k器件還包括一個(gè)嵌入式陣列和一個(gè)邏輯陣列,它能讓設(shè)計(jì)人員輕松地開發(fā)出集儲(chǔ)存器、數(shù)字信號(hào)處理器及特殊邏輯等強(qiáng)大功能于一身的芯片。此外,flex10k所具有的多電壓功能可以全面支持以不同電壓工作的產(chǎn)品,同時(shí)它還備有多款封裝供設(shè)計(jì)者選擇。3.4jtag下載電路部分圖5.4.1 jtag下載電路jtag也是一種國際標(biāo)準(zhǔn)測(cè)試協(xié)議(ieee 1149.1兼容),

15、主要用于芯片內(nèi)部測(cè)試?,F(xiàn)在多數(shù)的高級(jí)器件都支持jtag協(xié)議,如dsp、fpga器件等。標(biāo)準(zhǔn)的jtag接口是4線:tms、tck、tdi、tdo,分別為模式選擇、時(shí)鐘、數(shù)據(jù)輸入和數(shù)據(jù)輸出線。 相關(guān)jtag引腳的定義為:tck為測(cè)試時(shí)鐘輸入;tdi為測(cè)試數(shù)據(jù)輸入,數(shù)據(jù)通過tdi引腳輸入jtag接口;tdo為測(cè)試數(shù)據(jù)輸出,數(shù)據(jù)通過tdo引腳從jtag接口輸出;tms為測(cè)試模式選擇,tms用來設(shè)置jtag接口處于某種特定的測(cè)試模式;trst為測(cè)試復(fù)位,輸入引腳,低電平有效。gnd ti還定義了一種叫sbw-jtag的接口,用來在引腳較少的芯片上通過最少的利用引腳實(shí)現(xiàn)jtag接口,它只有兩條線,sbwt

16、ck,sbwtdio。實(shí)際使用時(shí)一般通過四條線連接,vcc,sbwtck,sbtdio,gnd,這樣就可以很方便的實(shí)現(xiàn)連接,又不會(huì)占用大量引腳。 jtag最初是用來對(duì)芯片進(jìn)行測(cè)試的,基本原理是在器件內(nèi)部定義一個(gè)tap(test access port測(cè)試訪問口)通過專用的jtag測(cè)試工具對(duì)進(jìn)行內(nèi)部節(jié)點(diǎn)進(jìn)行測(cè)試。jtag測(cè)試允許多個(gè)器件通過jtag接口串聯(lián)在一起,形成一個(gè)jtag鏈,能實(shí)現(xiàn)對(duì)各個(gè)器件分別測(cè)試?,F(xiàn)在,jtag接口還常用于實(shí)現(xiàn)isp(in-system programmable;在線編程),對(duì)flash等器件進(jìn)行編程。 jtag編程方式是在線編程,傳統(tǒng)生產(chǎn)流程中先對(duì)芯片進(jìn)行預(yù)編程現(xiàn)再

17、裝到板上因此而改變,簡(jiǎn)化的流程為先固定器件到電路板上,再用jtag編程,從而大大加快工程進(jìn)度。jtag接口可對(duì)psd芯片內(nèi)部的所有部件進(jìn)行編程。 在硬件結(jié)構(gòu)上,jtag 接口包括兩部分:jtag 端口和控制器。與jtag 接口兼容的器件可以是微處理器(mpu)、微控制器(mcu)、pld、cpl、fpga、asic 或其它符合ieee1149.1 規(guī)范的芯片。ieee1149.1 標(biāo)準(zhǔn)中規(guī)定對(duì)應(yīng)于數(shù)字集成電路芯片的每個(gè)引腳都設(shè)有一個(gè)移位寄存單元,稱為邊界掃描單元bsc。它將jtag 電路與內(nèi)核邏輯電路聯(lián)系起來,同時(shí)隔離內(nèi)核邏輯電路和芯片引腳。由集成電路的所有邊界掃描單元構(gòu)成邊界掃描寄存器bsr

18、。邊界掃描寄存器電路僅在進(jìn)行jtag 測(cè)試時(shí)有效,在集成電路正常工作時(shí)無效,不影響集成電路的功能。3.5發(fā)光顯示部分發(fā)光顯示部分由六個(gè)發(fā)光二極管組成圖5.5.1發(fā)光顯示部分 led(light emitting diode),發(fā)光二極管,是一種固態(tài)的半導(dǎo)體器件,它可以直接把電轉(zhuǎn)化為光。led的心臟是一個(gè)半導(dǎo)體的晶片,晶片的一端附在一個(gè)支架上,一端是負(fù)極,另一端連接電源的正極,使整個(gè)晶片被環(huán)氧樹脂封裝起來。半導(dǎo)體晶片由兩部分組成,一部分是p型半導(dǎo)體,在它里面空穴占主導(dǎo)地位,另一端是n型半導(dǎo)體,在這邊主要是電子。但這兩種半導(dǎo)體連接起來的時(shí)候,它們之間就形成一個(gè)p-n結(jié)。當(dāng)電流通過導(dǎo)線作用于這個(gè)晶片

19、的時(shí)候,電子就會(huì)被推向p區(qū),在p區(qū)里電子跟空穴復(fù)合,然后就會(huì)以光子的形式發(fā)出能量,這就是led發(fā)光的原理。而光的波長(zhǎng)也就是光的顏色,是由形成p-n結(jié)的材料決定的。4.各單元模塊的設(shè)計(jì)4.1汽車狀態(tài)模塊4.1.1設(shè)計(jì)的汽車狀態(tài)模塊汽車狀態(tài)模塊如圖3.1.1所示,源程序如下,汽車狀態(tài)模塊precontrol。圖3.1.1 汽車狀態(tài)模塊precontrol其中l(wèi)eft、right、stop分別表示左轉(zhuǎn)、右轉(zhuǎn)和剎車信號(hào),對(duì)應(yīng)的輸出引腳lft、rit、lr分別表示左有效、右有效和剎車有效。真值表如表2.1.1所示:信號(hào)leftrightstoplftritlr意義邏輯狀態(tài)000000正常行駛100100

20、左轉(zhuǎn)彎010010右轉(zhuǎn)彎001001剎車表3.1.1 汽車狀態(tài)控制信號(hào)與輸出信號(hào)真值表4.1.2汽車狀態(tài)控制的程序代碼汽車狀態(tài)控制的程序如下library ieee;use ieee.std_logic_1164.all;entity precontrol isport(left:in std_logic;right:in std_logic;stop:in std_logic;lft:out std_logic;rit:out std_logic;lr:out std_logic);end precontrol;architecture one of precontrol isbeginpr

21、ocess(left,right,stop)variable condition:std_logic_vector(2 downto 0);begincondition:=left&right&stop;case condition iswhen 000=lft=0;rit=0;lrlft=1;rit=0;lrlft=0;rit=1;lrlft=0;rit=0;lrnull;end case;end process;end one;4.2 左尾燈控制模塊與右尾燈控制模塊4.2.1左尾燈控制模塊設(shè)計(jì)的左尾燈控制模塊如圖3.2.1所示,源程序見下圖3.2.1 左尾燈控制模塊leftcontrol對(duì)

22、各輸入與輸出引腳的說明如下:clk:接受時(shí)鐘信號(hào),用于尾燈的順序循環(huán)亮滅。clk將接收兩種不同頻率的時(shí)鐘信號(hào)即周期為2s和500ms中的一種,具體接收哪一種由該模塊的時(shí)鐘使能輸出信號(hào)clk2sen和clk500msen決定。en:與汽車狀態(tài)模塊precontrol的lft引腳連接,用于使能該左尾燈控制模塊。lr:汽車剎車輸入信號(hào),與汽車狀態(tài)控制模塊precontrol的lr引腳相連。由于當(dāng)汽車左轉(zhuǎn)彎、正常行駛和剎車時(shí),該模塊en引腳都將接收到低電平,故而需要通過判斷l(xiāng)r和en的引腳電平才能判斷汽車當(dāng)前是處于剎車狀態(tài)還是右轉(zhuǎn)彎或正常行駛狀態(tài)。l2、l1、l0:汽車左邊的三個(gè)尾燈控制信號(hào)。clk2

23、sen、clk500msen:時(shí)鐘的選擇信號(hào)。這兩個(gè)引腳將根據(jù)汽車當(dāng)前所處的狀態(tài)使能相應(yīng)的時(shí)鐘。當(dāng)汽車出處于左轉(zhuǎn)彎時(shí),clk2sen輸出高電平,clk500msen輸出低電平,此時(shí)clk將接收到周期為2s的時(shí)鐘信號(hào)以滿足按l1l1l2l1l2l3全亮l1依次序循環(huán)滅,再依次亮滅,亮持續(xù)為2s對(duì)時(shí)鐘的需要;當(dāng)汽車處于剎車狀態(tài)時(shí),clk2sen輸出低電平,clk500msen輸出高電平,此時(shí)clk將接收到周期為500ms的時(shí)鐘信號(hào)以滿足汽車剎車是所有尾燈以2hz的頻率閃爍的設(shè)計(jì)要求。4.2.2 汽車左燈hdl語言如下 library ieee;use ieee.std_logic_1164.all

24、;use ieee.std_logic_unsigned.all;entity leftcontrol isport(clk:in std_logic;en:in std_logic;-汽車左轉(zhuǎn)彎模塊使能信號(hào)輸入lr:in std_logic;-汽車剎車信號(hào)輸入,高有效l2,l1,l0:out std_logic;-三個(gè)左尾燈控制信號(hào)輸出clk2sen,clk500msen:out std_logic);-2s和500ms時(shí)鐘使能信號(hào)輸出end entity leftcontrol;architecture one of leftcontrol issignal clkop:std_logic

25、;beginclkop=clk;com1:process(en,clk,lr)variable tmp:std_logic_vector(2 downto 0);variable clken:std_logic_vector(1 downto 0);beginif lr=1 then tmp:=clkop&clkop&clkop;clken:=01;-汽車剎車,周期為500ms的時(shí)鐘使能elsif clkevent and clk=1 then if en=1 then -汽車左轉(zhuǎn)彎if tmp=111 then tmp:=110;clken:=10;-周期為2s的時(shí)鐘使能elsif tmp=

26、000 then tmp:=111;-在左轉(zhuǎn)彎時(shí)燈全滅后再全息亮else tmp:=tmp(1 downto 0)&1;-end if; end if; end if;r2=tmp(2);l1=tmp(1);l0=tmp(0);clk2sen=clken(1);clk500msen=clken(0);end process;end one;4.2.3 設(shè)計(jì)的右尾燈控制模塊右尾燈控制模塊如圖3.2.4所示,源程序見下 圖3.2.4右尾燈控制模塊rightcontrol右尾燈控制模塊rightcontrol各引腳功能與左尾燈控制模塊leftcontrol各引腳功能相似,這里不再詳述。4.2.4汽車

27、右燈hdl語言如下library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity rightcontrol isport(clk:in std_logic;en:in std_logic; -汽車右轉(zhuǎn)彎模塊使能信號(hào)輸入lr:in std_logic; -汽車剎車信號(hào)輸入,高有效r2,r1,r0:out std_logic; -三個(gè)右尾燈控制信號(hào)輸出clk2sen,clk500msen:out std_logic); -2s和500ms時(shí)鐘使能信號(hào)輸出end entity rightcontrol;a

28、rchitecture one of rightcontrol issignal clkop:std_logic;beginclkop=clk;com1:process(en,clk,lr)variable tmp:std_logic_vector(2 downto 0);variable clken:std_logic_vector(1 downto 0);beginif lr=1 then tmp:=clkop&clkop&clkop;clken:=01;-汽車剎車,周期為500ms的時(shí)鐘使能elsif clkevent and clk=1 then if en=1 then -汽車右轉(zhuǎn)彎

29、if tmp=111 then tmp:=110;clken:=10;-周期為2s的時(shí)鐘使能elsif tmp=000 then tmp:= 111;-在右轉(zhuǎn)彎時(shí)燈全滅后再全息亮else tmp:=tmp(1 downto 0)&1; -燈每隔2s亮一個(gè)end if; end if; end if;r2=tmp(2);r1=tmp(1);r0=tmp(0);clk2sen=clken(1);clk500msen=clken(0);end process;end one;4.3 時(shí)鐘模塊4.3.1時(shí)鐘控制模塊2s時(shí)鐘模塊和500ms時(shí)鐘模塊分別如圖3.3.1和圖3.3.2所示: 圖3.3.1 2

30、s時(shí)鐘模timer2s 圖3.3.2 500ms時(shí)鐘模塊timer500ms左尾燈控制模塊left通過clk2sen和clk500msen來控制該模塊clk接收到的時(shí)鐘信號(hào)的實(shí)現(xiàn)原理如下圖3.3.3所示:圖3.3.3 時(shí)鐘選擇實(shí)現(xiàn)原理圖當(dāng)汽車左轉(zhuǎn)彎時(shí),左尾燈控制模塊leftcontrol使能,此時(shí)該模塊clk2sen輸出高電平,clk500msen輸出低電平,并分別與timer2s和timer500ms相與,則timer500ms相當(dāng)于被禁止,后經(jīng)或門連接至該leftcontrol模塊的clk引腳,故而clk將接收到timer2s發(fā)出的周期為2s的時(shí)鐘信號(hào)。當(dāng)汽車剎車時(shí),左尾燈控制模塊left

31、control也使能,此時(shí)該模塊clk2sen輸出低電平,clk500msen輸出高電平,并分別與timer2s和timer500ms相與,則timer2s相當(dāng)于被禁止,后經(jīng)或門連接至該leftcontrol模塊的clk引腳,故而clk將接收到timer500ms發(fā)出的周期為500ms的時(shí)鐘信號(hào)。當(dāng)汽車正常行駛時(shí)尾燈均滅,此時(shí)不需要時(shí)鐘參與,左尾燈控制模塊leftcontrol的clk2sen和clk500msen處于任意狀態(tài)。4.3.2周期為2s的時(shí)鐘源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned

32、.all;entity timer2s isport(clk:in std_logic;clkout:out std_logic);end entity timer2s;architecture one of timer2s isbeginprocess(clk)variable counter:std_logic_vector(7 downto 0);variable qclkout:std_logic;begin if clkevent and clk=1 then -以128hz為基本時(shí)鐘源,對(duì)其上升沿計(jì)數(shù)if counter=11111111 then -計(jì)數(shù)個(gè)數(shù)為256個(gè)即25612

33、8hz2sqclkout:=not qclkout;clkout=qclkout;counter:=00000000;-計(jì)數(shù)器滿則輸出反相計(jì)數(shù)器清零else counter:=counter+1;-每捕捉到一個(gè)基本時(shí)鐘源上升沿計(jì)數(shù)器加一end if; end if; end process;end architecture one;同樣,右尾燈控制模塊rightcontrol的clk時(shí)鐘信號(hào)的接收與左尾燈控制模塊leftcontrol的實(shí)現(xiàn)原理一樣,它們共用timer2s和timer500ms這兩個(gè)時(shí)鐘模塊,這里不再詳述其實(shí)現(xiàn)原理。4.3.3周期為500ms的時(shí)鐘源程序library ieee

34、;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity timer500ms isport(clk:in std_logic;clkout:out std_logic); architecture one of timer500ms isbeginprocess(clk)variable counter:std_logic_vector(7 downto 0);variable qclkout:std_logic;begin if clkevent and clk=1 then -以128hz為基本時(shí)鐘源,對(duì)其上升

35、沿計(jì)數(shù)if counter=01000000 then-計(jì)數(shù)個(gè)數(shù)為64個(gè)即64128hz0.5sqclkout:=not qclkout;clkout=qclkout;counter:=00000000;-計(jì)數(shù)器滿則輸出反相計(jì)數(shù)器清零else counter:=counter+1; -每捕捉到一個(gè)基本時(shí)鐘源上升沿計(jì)數(shù)器加一 end if; end if; end process;end architecture on4.4各模塊流程圖5 系統(tǒng)的仿真與調(diào)試5.1汽車狀態(tài)模塊的仿真與分析當(dāng)輸入的信號(hào)為左轉(zhuǎn),右轉(zhuǎn)或停止的其中一個(gè)信號(hào)時(shí)又vhdl程序?qū)崿F(xiàn)后,波形如下圖4.1.1汽車狀態(tài)仿真波形如圖當(dāng)輸

36、入端有一個(gè)為高電平時(shí),輸出端相應(yīng)的輸出高電平,表明在狀態(tài)中高電平試有效5.2汽車尾燈左燈模塊仿真及分析 汽車尾燈左燈模版由vhdl仿真實(shí)現(xiàn)后波形如下圖4.2.1汽車尾燈左燈模塊仿真波形對(duì)時(shí)序仿真圖進(jìn)行分析:clk為時(shí)鐘信號(hào) en和ir 分別為使能信號(hào)en2s和en500ms分別為周期時(shí)鐘信號(hào)。當(dāng)en和en500ms輸入為高電平時(shí)l0,l1,l2同時(shí)開始亮,又依次熄滅,再依次亮滅。 5.3汽車尾燈右燈模塊仿真及分析汽車尾燈右燈模塊由vhdl仿真實(shí)現(xiàn)后波形如下圖4.3.1汽車尾燈右燈模塊仿真波形對(duì)時(shí)序仿真圖進(jìn)行分析:clk為時(shí)鐘信號(hào) en和ir 分別為使能信號(hào)en2s和en500ms分別為周期時(shí)鐘信號(hào)。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論