于明軍,郭躍,郝甜甜,何瑞強
(赤峰學院物理與電子信息工程學院,內蒙古赤峰 024000)
基于VHDL的汽車尾燈控制電路設計
于明軍,郭躍,郝甜甜,何瑞強
(赤峰學院物理與電子信息工程學院,內蒙古赤峰 024000)
本設計利用硬件描述語言(VHDL)對汽車尾燈控制電路進行描述并通過Altera公司Quartus II軟件對源程序進行編譯、仿真,調試后的程序下載到FPGA開發板FA280上,通過實驗板上的發光二極管模擬汽車尾燈的工作狀態.可以完成汽車行駛狀態、左轉狀態、右轉狀態、剎車狀態時的尾燈動態顯示功能.
EDA;VHDL;汽車尾燈控制電路
本設計用到的實驗板是FPGA開發板FA280,FA280板載有SDRAM,FLASH以及USBBlaster下載線電路,這里主要介紹關于HDL的程序開發.利用QuartusⅡ集成開發環境來完成前期設計,以FPGA實驗開發板為運行載體,來完成VHDL、VerilogHDL等一些硬件語言的運行顯示.
本文應用FPGA開發板FA280,其核心器件為AlteraCycloneⅡ系列的EP2C8Q208,是包含192個引腳,其中I/O口有183個的,最新采用邏輯單元為單位來衡量內部資源的芯片.EP2C8的工作電壓為1.2V,是運用Verilog硬件描述語言來實現對EEPROM進行讀寫操作.EPCS4為EP2C8的配置芯片,其成本低、外形封裝小、靈活性高.
接口包括:PS2接口、VGA接口、RS232串口、USB下載接口.開發板具有USBBlaster下載線電路,插上USB線即可進行下載,通過撥動USB接口開關選擇JTAG或AS下載方式.
顯示設備包括6位7段紅光數碼管,8位綠色LED發光二極管,LCD1602和LCD12864顯示屏接口插座.
復位電路由一個復位按鍵和一個復位芯片組成的,可以將電路恢復到起始狀態(相當于清零按鈕).復位芯片為MAX811R,可將輸出脈沖寬度為140ms、門限為2.63V的低電平有效復位脈沖信號提供給FA280.
電源部分包括1117-3.3和1117-1.2各一片,從功能板分別引入3.3V和1.2V的直流電源作為EP2C8的核心電源電壓,并在核心板上加入濾波電容,以確保芯片和電源系統的穩定性.
其他還包括一個蜂鳴器、4位獨立按鍵、電源插座和開關、SD卡座、擴展總線(GPIO)和有源晶振.其外觀如圖1所示.

圖1 實驗開發板FA280
VHDL高級硬件描述語言已成為IEEE標準,VHDL的描述能力最強,因此運用此結構進行復雜電路設計時,常采用“自頂向下”的結構化設計方法.適用于行為級和RTL級的描述,最適于描述電路行為,并在設計時可以不了解電路的結構細節. VHDL主要用于描述數字系統的結構、行為、功能和接口,其設計的基本點是將設計實體分成內、外部分.適用于電路高級建模,綜合的效率和效果較好.而且采用的模塊化、逐步細化的設計方法能夠及早的發現各子系統及模塊中的錯誤,而且有利于系統的分工合作,這就提高了系統設計的效率,特別適用于可編程邏輯器件的應用設計.完整的VHDL程序要包含庫、程序包、實體、構造體和配置等部分,它的描述語句和常用語句都有其固定的格式,并且有自己的語法,不允許不同類型的數據在表達式中自由組合.
QuartusⅡ作為一個綜合性的開發平臺,可以完成多種功能的實現.QuartusⅡ的設計流程:首先輸入HDL等形式的設計文本,接著根據設計要求進行編譯,然后進行設計校驗(仿真和定時分析),最后進行編程與驗證(將編程文件配置到PLD中).設計過程中,如果出現錯誤,則回到設計輸入階段改錯,然后重復以上步驟.
設計輸入:設計輸入可以用HDL方式或原理圖錄入方式.一般可以使用原理圖來設計最頂層,將整個設計的結構描述清楚,對于HDL方式的設計輸入,可以采用Verilog和VHDL,我們這里采用VHDL語言來實現.
綜合:綜合工具將設計轉換成包含邏輯單元和邏輯單元間連接的網絡表.
功能仿真:對已經綜合的電路的功能進行驗證,功能仿真不涉及任何時序方面的內容.
配置:將綜合產生的網絡表中的邏輯單元映射到CPLD/FPGA器件中的LE,這里還包含器件中LE間連接和路由的選擇.
時序分析和時序仿真:通過分析配置后的電路各個路徑上的傳輸延時,獲得電路的性能情況.這里的時序仿真將結合器件時間參數,與前面的功能仿真不同,功能仿真只關注源程序的邏輯是否正確.
編程:在CPLD/FPGA器件內實現設計,包括邏輯單元和邏輯單元間的連接.
對該汽車尾燈控制器的具體要求:(一)汽車左右兩側各有3只LED指示燈;(二)當汽車正常向前行駛時,6只LED指示燈為全部熄滅;(三)當汽車向左轉彎時,左側的LED指示燈循序從右到左閃亮,右側的LED指示燈全部熄滅;(四)當汽車向右轉彎時,右側的LED指示燈循序從左到右閃亮,左側的LED指示燈全部熄滅;(五)剎車時,6只LED指示燈全部點亮.FA280開發板硬件具有8位LED,為低電平驅動方式,即低電平點亮高電平熄滅.本設計中實現以提供低電平方式點亮8個LED中的某一個或多個,兩次點亮的時間間隔為1s.
通過設置系統的輸入信號:系統時鐘信號CLK,汽車左轉彎控制信號bleft,控制汽車左側3盞指示燈LeftLight0、LeftLight1、LeftLight2,汽車右轉彎控制信號bright,汽車右側3盞指示燈Right-Light0、RightLight1、RightLight2實現以上功能.
根據以上功能分析、汽車尾燈控制邏輯功能表可以編寫汽車尾燈控制電路的VHDL程序.
3.1 程序編譯
(1)建立工作庫目錄,以便設計工程項目的存儲,打開Quartus II 9.0軟件.
(2)在工具欄中選擇“新建”按鈕,選擇“Text Editor”以進行文本輸入.
(3)在文本輸入界面內進行程序輸入.
(4)輸入完畢后,需要對程序進行保存.文件名和實體定義的符號必須保持一致,即文件名為carlight.因為是使用VHDL語言,所以文件文件類型為.vhd.
(5)在菜單欄下拉按鈕里選擇“Start Processing”,對程序進行編譯,此時,Quartus II 9.0sp2軟件會對程序進行糾錯等處理.
(6)在編譯完成以后,打開程序,選擇“File”→“EditSymbol”生成設計模塊圖. 3.2程序仿真及下載
(1)編譯完全通過后,新建波形編輯器進行設計仿真.通過“新建”按鈕,選擇“WaveformEditor”.
(2)新建波形編輯器后,對文件進行保存.同樣是使用文件名carlight,后綴改為scf.
(3)在編輯器的Name欄點擊鼠標右鍵,選擇“InsertNode or bus…”,點擊“Node finder”選中所有觀察的節點信號.
(4)通過編輯器左側的快捷鍵對所加節點中的輸入信號進行相關的賦值,然后對程序進行仿真,觀察輸出信號.對編輯器(Edit)里面的賦值(Value)中的Clock進行設置.
(5)在進行仿真前,還需對仿真截止時間和最小單位時間進行一下調整.在“Edit”欄對截止時間“EndTime”設置為“10.0us”.
(6)得初始仿真圖,如圖2所示:

圖2 初始仿真界面
(7)當汽車正常行駛時,左轉信號bleft和右轉信號bright都為0,所有的燈都熄滅,都為1,仿真圖如圖3,將程序寫入開發板,顯示如圖4:

圖3 正常行駛尾燈仿真圖

圖4
(8)當汽車向左轉時,左轉信號bleft為1,右轉信號bright為0,此時右側燈rightlight2、rightlight1、rightlight0全滅為111,而左側燈leftright0、leftright1、leftlight2依次亮滅,狀態為為110、101、011.仿真圖如圖5,將程序寫入開發板,顯示如圖6:

圖5 向左轉尾燈仿真圖

圖6
(9)當汽車向右轉時,左轉信號bleft為0,右轉信號bright為1,此時左側燈leftright0、leftright1、leftlight2全滅為111,而右側燈rightlight2、rightlight1、rightlight0依次亮滅,狀態為110、101、011.仿真圖如圖7,將程序寫入開發板,顯示如圖8:

圖7 向右轉尾燈仿真圖
(10)當汽車剎車時,左轉信號bleft為1,右轉信號bright也為1,此時左邊燈leftright0、leftright1、leftlight2全亮為000,右邊燈rightlight0、rightlight1、 rightlight2全亮為000.仿真圖如圖9,將程序寫入開發板,顯示如圖10:

圖8

圖9 剎車尾燈仿真圖

圖10
本設計依靠EDA教學開發板,QuartusⅡ軟件環境,運用原理圖和硬件描述語言進行輸入并進行編譯、仿真驗證設計的正確性.對開發板的學習有一定的指導作用.
〔1〕廖超平.EDA技術與VHDL實用教程[M].北京:高等教育出版社,2007.
〔2〕閆石.數字電子技術基礎[M].北京:高等教育出版社,2006.
〔3〕華成英.模擬電子技術基礎[M].北京:高等教育出版社,2006.
〔4〕侯伯亨.VHDL硬件描述語言與數字邏輯電路設計[M].西安:西安電子科技大學出版社,2009.
〔5〕潘松,黃繼業.EDA技術與VHDL[M].北京:清華大學出版社,2006.
TN79
A
1673-260X(2015)04-0058-03