于明軍,郭躍,郝甜甜,何瑞強(qiáng)
(赤峰學(xué)院物理與電子信息工程學(xué)院,內(nèi)蒙古赤峰 024000)
基于VHDL的汽車尾燈控制電路設(shè)計
于明軍,郭躍,郝甜甜,何瑞強(qiáng)
(赤峰學(xué)院物理與電子信息工程學(xué)院,內(nèi)蒙古赤峰 024000)
本設(shè)計利用硬件描述語言(VHDL)對汽車尾燈控制電路進(jìn)行描述并通過Altera公司Quartus II軟件對源程序進(jìn)行編譯、仿真,調(diào)試后的程序下載到FPGA開發(fā)板FA280上,通過實驗板上的發(fā)光二極管模擬汽車尾燈的工作狀態(tài).可以完成汽車行駛狀態(tài)、左轉(zhuǎn)狀態(tài)、右轉(zhuǎn)狀態(tài)、剎車狀態(tài)時的尾燈動態(tài)顯示功能.
EDA;VHDL;汽車尾燈控制電路
本設(shè)計用到的實驗板是FPGA開發(fā)板FA280,F(xiàn)A280板載有SDRAM,F(xiàn)LASH以及USBBlaster下載線電路,這里主要介紹關(guān)于HDL的程序開發(fā).利用QuartusⅡ集成開發(fā)環(huán)境來完成前期設(shè)計,以FPGA實驗開發(fā)板為運(yùn)行載體,來完成VHDL、VerilogHDL等一些硬件語言的運(yùn)行顯示.
本文應(yīng)用FPGA開發(fā)板FA280,其核心器件為AlteraCycloneⅡ系列的EP2C8Q208,是包含192個引腳,其中I/O口有183個的,最新采用邏輯單元為單位來衡量內(nèi)部資源的芯片.EP2C8的工作電壓為1.2V,是運(yùn)用Verilog硬件描述語言來實現(xiàn)對EEPROM進(jìn)行讀寫操作.EPCS4為EP2C8的配置芯片,其成本低、外形封裝小、靈活性高.
接口包括:PS2接口、VGA接口、RS232串口、USB下載接口.開發(fā)板具有USBBlaster下載線電路,插上USB線即可進(jìn)行下載,通過撥動USB接口開關(guān)選擇JTAG或AS下載方式.
顯示設(shè)備包括6位7段紅光數(shù)碼管,8位綠色LED發(fā)光二極管,LCD1602和LCD12864顯示屏接口插座.
復(fù)位電路由一個復(fù)位按鍵和一個復(fù)位芯片組成的,可以將電路恢復(fù)到起始狀態(tài)(相當(dāng)于清零按鈕).復(fù)位芯片為MAX811R,可將輸出脈沖寬度為140ms、門限為2.63V的低電平有效復(fù)位脈沖信號提供給FA280.
電源部分包括1117-3.3和1117-1.2各一片,從功能板分別引入3.3V和1.2V的直流電源作為EP2C8的核心電源電壓,并在核心板上加入濾波電容,以確保芯片和電源系統(tǒng)的穩(wěn)定性.
其他還包括一個蜂鳴器、4位獨(dú)立按鍵、電源插座和開關(guān)、SD卡座、擴(kuò)展總線(GPIO)和有源晶振.其外觀如圖1所示.
圖1 實驗開發(fā)板FA280
VHDL高級硬件描述語言已成為IEEE標(biāo)準(zhǔn),VHDL的描述能力最強(qiáng),因此運(yùn)用此結(jié)構(gòu)進(jìn)行復(fù)雜電路設(shè)計時,常采用“自頂向下”的結(jié)構(gòu)化設(shè)計方法.適用于行為級和RTL級的描述,最適于描述電路行為,并在設(shè)計時可以不了解電路的結(jié)構(gòu)細(xì)節(jié). VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口,其設(shè)計的基本點(diǎn)是將設(shè)計實體分成內(nèi)、外部分.適用于電路高級建模,綜合的效率和效果較好.而且采用的模塊化、逐步細(xì)化的設(shè)計方法能夠及早的發(fā)現(xiàn)各子系統(tǒng)及模塊中的錯誤,而且有利于系統(tǒng)的分工合作,這就提高了系統(tǒng)設(shè)計的效率,特別適用于可編程邏輯器件的應(yīng)用設(shè)計.完整的VHDL程序要包含庫、程序包、實體、構(gòu)造體和配置等部分,它的描述語句和常用語句都有其固定的格式,并且有自己的語法,不允許不同類型的數(shù)據(jù)在表達(dá)式中自由組合.
QuartusⅡ作為一個綜合性的開發(fā)平臺,可以完成多種功能的實現(xiàn).QuartusⅡ的設(shè)計流程:首先輸入HDL等形式的設(shè)計文本,接著根據(jù)設(shè)計要求進(jìn)行編譯,然后進(jìn)行設(shè)計校驗(仿真和定時分析),最后進(jìn)行編程與驗證(將編程文件配置到PLD中).設(shè)計過程中,如果出現(xiàn)錯誤,則回到設(shè)計輸入階段改錯,然后重復(fù)以上步驟.
設(shè)計輸入:設(shè)計輸入可以用HDL方式或原理圖錄入方式.一般可以使用原理圖來設(shè)計最頂層,將整個設(shè)計的結(jié)構(gòu)描述清楚,對于HDL方式的設(shè)計輸入,可以采用Verilog和VHDL,我們這里采用VHDL語言來實現(xiàn).
綜合:綜合工具將設(shè)計轉(zhuǎn)換成包含邏輯單元和邏輯單元間連接的網(wǎng)絡(luò)表.
功能仿真:對已經(jīng)綜合的電路的功能進(jìn)行驗證,功能仿真不涉及任何時序方面的內(nèi)容.
配置:將綜合產(chǎn)生的網(wǎng)絡(luò)表中的邏輯單元映射到CPLD/FPGA器件中的LE,這里還包含器件中LE間連接和路由的選擇.
時序分析和時序仿真:通過分析配置后的電路各個路徑上的傳輸延時,獲得電路的性能情況.這里的時序仿真將結(jié)合器件時間參數(shù),與前面的功能仿真不同,功能仿真只關(guān)注源程序的邏輯是否正確.
編程:在CPLD/FPGA器件內(nèi)實現(xiàn)設(shè)計,包括邏輯單元和邏輯單元間的連接.
對該汽車尾燈控制器的具體要求:(一)汽車左右兩側(cè)各有3只LED指示燈;(二)當(dāng)汽車正常向前行駛時,6只LED指示燈為全部熄滅;(三)當(dāng)汽車向左轉(zhuǎn)彎時,左側(cè)的LED指示燈循序從右到左閃亮,右側(cè)的LED指示燈全部熄滅;(四)當(dāng)汽車向右轉(zhuǎn)彎時,右側(cè)的LED指示燈循序從左到右閃亮,左側(cè)的LED指示燈全部熄滅;(五)剎車時,6只LED指示燈全部點(diǎn)亮.FA280開發(fā)板硬件具有8位LED,為低電平驅(qū)動方式,即低電平點(diǎn)亮高電平熄滅.本設(shè)計中實現(xiàn)以提供低電平方式點(diǎn)亮8個LED中的某一個或多個,兩次點(diǎn)亮的時間間隔為1s.
通過設(shè)置系統(tǒng)的輸入信號:系統(tǒng)時鐘信號CLK,汽車左轉(zhuǎn)彎控制信號bleft,控制汽車左側(cè)3盞指示燈LeftLight0、LeftLight1、LeftLight2,汽車右轉(zhuǎn)彎控制信號bright,汽車右側(cè)3盞指示燈Right-Light0、RightLight1、RightLight2實現(xiàn)以上功能.
根據(jù)以上功能分析、汽車尾燈控制邏輯功能表可以編寫汽車尾燈控制電路的VHDL程序.
3.1 程序編譯
(1)建立工作庫目錄,以便設(shè)計工程項目的存儲,打開Quartus II 9.0軟件.
(2)在工具欄中選擇“新建”按鈕,選擇“Text Editor”以進(jìn)行文本輸入.
(3)在文本輸入界面內(nèi)進(jìn)行程序輸入.
(4)輸入完畢后,需要對程序進(jìn)行保存.文件名和實體定義的符號必須保持一致,即文件名為carlight.因為是使用VHDL語言,所以文件文件類型為.vhd.
(5)在菜單欄下拉按鈕里選擇“Start Processing”,對程序進(jìn)行編譯,此時,Quartus II 9.0sp2軟件會對程序進(jìn)行糾錯等處理.
(6)在編譯完成以后,打開程序,選擇“File”→“EditSymbol”生成設(shè)計模塊圖. 3.2程序仿真及下載
(1)編譯完全通過后,新建波形編輯器進(jìn)行設(shè)計仿真.通過“新建”按鈕,選擇“WaveformEditor”.
(2)新建波形編輯器后,對文件進(jìn)行保存.同樣是使用文件名carlight,后綴改為scf.
(3)在編輯器的Name欄點(diǎn)擊鼠標(biāo)右鍵,選擇“InsertNode or bus…”,點(diǎn)擊“Node finder”選中所有觀察的節(jié)點(diǎn)信號.
(4)通過編輯器左側(cè)的快捷鍵對所加節(jié)點(diǎn)中的輸入信號進(jìn)行相關(guān)的賦值,然后對程序進(jìn)行仿真,觀察輸出信號.對編輯器(Edit)里面的賦值(Value)中的Clock進(jìn)行設(shè)置.
(5)在進(jìn)行仿真前,還需對仿真截止時間和最小單位時間進(jìn)行一下調(diào)整.在“Edit”欄對截止時間“EndTime”設(shè)置為“10.0us”.
(6)得初始仿真圖,如圖2所示:
圖2 初始仿真界面
(7)當(dāng)汽車正常行駛時,左轉(zhuǎn)信號bleft和右轉(zhuǎn)信號bright都為0,所有的燈都熄滅,都為1,仿真圖如圖3,將程序?qū)懭腴_發(fā)板,顯示如圖4:
圖3 正常行駛尾燈仿真圖
圖4
(8)當(dāng)汽車向左轉(zhuǎn)時,左轉(zhuǎn)信號bleft為1,右轉(zhuǎn)信號bright為0,此時右側(cè)燈rightlight2、rightlight1、rightlight0全滅為111,而左側(cè)燈leftright0、leftright1、leftlight2依次亮滅,狀態(tài)為為110、101、011.仿真圖如圖5,將程序?qū)懭腴_發(fā)板,顯示如圖6:
圖5 向左轉(zhuǎn)尾燈仿真圖
圖6
(9)當(dāng)汽車向右轉(zhuǎn)時,左轉(zhuǎn)信號bleft為0,右轉(zhuǎn)信號bright為1,此時左側(cè)燈leftright0、leftright1、leftlight2全滅為111,而右側(cè)燈rightlight2、rightlight1、rightlight0依次亮滅,狀態(tài)為110、101、011.仿真圖如圖7,將程序?qū)懭腴_發(fā)板,顯示如圖8:
圖7 向右轉(zhuǎn)尾燈仿真圖
(10)當(dāng)汽車剎車時,左轉(zhuǎn)信號bleft為1,右轉(zhuǎn)信號bright也為1,此時左邊燈leftright0、leftright1、leftlight2全亮為000,右邊燈rightlight0、rightlight1、 rightlight2全亮為000.仿真圖如圖9,將程序?qū)懭腴_發(fā)板,顯示如圖10:
圖8
圖9 剎車尾燈仿真圖
圖10
本設(shè)計依靠EDA教學(xué)開發(fā)板,QuartusⅡ軟件環(huán)境,運(yùn)用原理圖和硬件描述語言進(jìn)行輸入并進(jìn)行編譯、仿真驗證設(shè)計的正確性.對開發(fā)板的學(xué)習(xí)有一定的指導(dǎo)作用.
〔1〕廖超平.EDA技術(shù)與VHDL實用教程[M].北京:高等教育出版社,2007.
〔2〕閆石.數(shù)字電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2006.
〔3〕華成英.模擬電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2006.
〔4〕侯伯亨.VHDL硬件描述語言與數(shù)字邏輯電路設(shè)計[M].西安:西安電子科技大學(xué)出版社,2009.
〔5〕潘松,黃繼業(yè).EDA技術(shù)與VHDL[M].北京:清華大學(xué)出版社,2006.
TN79
A
1673-260X(2015)04-0058-03
赤峰學(xué)院學(xué)報·自然科學(xué)版2015年8期