郭 聳 武俊鵬 付小晶
文章編號:1672-5913(2009)08-0099-02
摘要:本文針對計(jì)算機(jī)硬件課程抽象、難于理解以及學(xué)生對其興趣不高等現(xiàn)狀,給出了基于FPGA的交通燈控制器實(shí)驗(yàn)設(shè)計(jì),將生活中的實(shí)際應(yīng)用與學(xué)生所學(xué)的硬件理論知識聯(lián)系起來,極大程度地激發(fā)了學(xué)生對計(jì)算機(jī)硬件知識學(xué)習(xí)的興趣,促進(jìn)了硬件課程教學(xué)的順利進(jìn)行。
關(guān)鍵詞:交通燈控制器;FPGA;VHDL;實(shí)驗(yàn)項(xiàng)目研究
中圖分類號:G642
文獻(xiàn)標(biāo)識碼:B
1引言
計(jì)算機(jī)硬件課程是高等院校計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的必修課,這些課程比較抽象,難于理解,因此實(shí)驗(yàn)教學(xué)起著至關(guān)重要的作用。學(xué)生通過實(shí)驗(yàn)可以對比較抽象的元器件及硬件電路加深理解。同時(shí)一些學(xué)生對計(jì)算機(jī)硬件的學(xué)習(xí)不感興趣,認(rèn)為硬件課程用途不大。針對這些,本文給出了基于FPGA的交通燈控制器實(shí)驗(yàn)項(xiàng)目設(shè)計(jì),將生活中的實(shí)際應(yīng)用與學(xué)生所學(xué)的硬件理論知識聯(lián)系起來,讓學(xué)生感到學(xué)有所用,極大程度地激發(fā)了學(xué)生對計(jì)算機(jī)硬件知識學(xué)習(xí)的興趣,從而促進(jìn)了硬件課程教學(xué)的順利進(jìn)行。
可編程器件的廣泛應(yīng)用,為數(shù)字系統(tǒng)的設(shè)計(jì)帶來了極大的靈活性。由于可編程器件可以通過軟件編程對硬件的結(jié)構(gòu)和工作方式進(jìn)行重構(gòu),使得硬件的設(shè)計(jì)如同軟件設(shè)計(jì)那樣快捷方便。通常使用硬件描述語言,進(jìn)行數(shù)字電子系統(tǒng)設(shè)計(jì)。用軟件設(shè)計(jì)方法來完成硬件電路的設(shè)計(jì),非常容易上手,消除了學(xué)生對硬件實(shí)驗(yàn)的畏懼感。
本實(shí)驗(yàn)使用VHDL語言進(jìn)行設(shè)計(jì),采用自頂向下的設(shè)計(jì)方法,容易讓學(xué)生理解和掌握。
2實(shí)驗(yàn)相關(guān)技術(shù)與開發(fā)環(huán)境
2.1FPGA技術(shù)
FPGA(Field Programmable Gate Array)即現(xiàn)場可編程門陣列,它是在PAL、GAL、EPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。FPGA的使用非常靈活,同一片F(xiàn)PGA通過不同的編程數(shù)據(jù)可以產(chǎn)生不同的電路功能。FPGA在通信、數(shù)據(jù)處理、網(wǎng)絡(luò)、儀器、工業(yè)控制、軍事和航空航天等眾多領(lǐng)域得到了廣泛應(yīng)用。隨著功耗和成本的進(jìn)一步降低,F(xiàn)PGA還將進(jìn)入更多的應(yīng)用領(lǐng)域。
2.2QuartusII開發(fā)環(huán)境
Altera的QuartusII設(shè)計(jì)軟件提供一個(gè)非常容易適應(yīng)特定設(shè)計(jì)所需要的完整的多平臺設(shè)計(jì)環(huán)境。它是一個(gè)可編程片上系統(tǒng)(SOPC)設(shè)計(jì)的綜合性環(huán)境。QuartusII軟件包括FPGA設(shè)計(jì)所有階段的解決方案。其設(shè)計(jì)流程包括設(shè)計(jì)、綜合與適配、仿真測試、優(yōu)化設(shè)計(jì)和編程下載等。
2.3VHDL語言
VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)超高速集成電路硬件描述語言是IEEE的工業(yè)標(biāo)準(zhǔn)硬件描述語言。VHDL具有極強(qiáng)的描述能力,是最具推廣前景的硬件描述語言(HDL)。
VHDL具有如下優(yōu)點(diǎn):
(1) VHDL是一門標(biāo)準(zhǔn)化語言,它是一種通用優(yōu)化設(shè)計(jì)程序語言,已被電子設(shè)計(jì)界公認(rèn)為標(biāo)準(zhǔn)的設(shè)計(jì)語言。
(2) VHDL是一門設(shè)計(jì)輸入語言,它可將復(fù)雜的硬件電路運(yùn)行過程以源程序的形式輸入到數(shù)字電路設(shè)計(jì)系統(tǒng)中,進(jìn)行系統(tǒng)仿真、自動綜合。
(3) VHDL是一門網(wǎng)表語言,它的語言結(jié)構(gòu)使它可在計(jì)算機(jī)的設(shè)計(jì)環(huán)境中,是不同設(shè)計(jì)工具間相互通訊的一種低級格式,即生成的門級網(wǎng)表文件,可相互替換、兼容。
(4) VHDL是一門測試語言,VHDL 在進(jìn)行數(shù)字電路設(shè)計(jì)描述的同時(shí),建立測試基準(zhǔn),對所設(shè)計(jì)的數(shù)字電路進(jìn)行功能模擬和仿真,以驗(yàn)證所設(shè)計(jì)電路是否滿足功能與時(shí)序需求。
(5) VHDL是一門可讀性語言,既可被計(jì)算機(jī)接受,也易被人所理解,它具有良好的可讀性,易于修改和發(fā)現(xiàn)錯(cuò)誤。
3實(shí)驗(yàn)設(shè)計(jì)
3.1實(shí)驗(yàn)預(yù)期目標(biāo)
在兩條干道的匯合點(diǎn)形成十字交叉路口,假設(shè)東西方向?yàn)橹鞲傻?,南北方向?yàn)橹Ц傻?。為確保車輛安全,迅速地通行,在交叉道口的每個(gè)入口處設(shè)置了紅,綠,黃色信號燈。
實(shí)驗(yàn)具體要求如下:
(1) 主干道綠燈亮?xí)r,支干道紅燈亮,反之亦然。兩者交替通行,主干道每次放行T1s,支干道每次放行T2s。每次由綠燈變?yōu)榧t燈的過程中,黃燈亮T3s作為過渡。這里要求主干道放行時(shí)間要大于支干道的放行時(shí)間,即T1s>T2s。
(2) 能實(shí)現(xiàn)正常的倒計(jì)時(shí)顯示功能。
3.2實(shí)驗(yàn)設(shè)計(jì)方案
交通燈控制器原理框圖如圖1所示,包括主控制器模塊、置數(shù)模塊、定時(shí)計(jì)數(shù)模塊和譯碼器模塊。主控制器模塊是交通燈控制器的核心部分。置數(shù)模塊將交通燈的點(diǎn)亮?xí)r間預(yù)置到置數(shù)電路中,定時(shí)計(jì)數(shù)模塊以秒為單位倒計(jì)時(shí),當(dāng)計(jì)數(shù)值減為零時(shí),主控電路改變輸出狀態(tài),電路進(jìn)人下一個(gè)狀態(tài)的倒計(jì)時(shí)。
圖1 交通燈控制器原理框圖
3.2.1主控制器模塊
依設(shè)計(jì)要求,可畫出交通燈點(diǎn)亮規(guī)律的狀態(tài)轉(zhuǎn)換表,如表1所示。
為了提高學(xué)生的獨(dú)立自主創(chuàng)新能力,給學(xué)生更多的設(shè)計(jì)和發(fā)揮空間,教師只是做適當(dāng)?shù)囊龑?dǎo),讓學(xué)生根據(jù)狀態(tài)圖自行完成主控制器模塊的設(shè)計(jì)及其VHDL實(shí)現(xiàn)。這樣可以更大程度地鍛煉學(xué)生設(shè)計(jì)能力。
表1 交通燈點(diǎn)亮規(guī)律狀態(tài)轉(zhuǎn)換表
3.2.2置數(shù)模塊,定時(shí)計(jì)數(shù)模塊,譯碼模塊
由于要進(jìn)行T1s,T2s,T3s三種定時(shí),本實(shí)驗(yàn)采用一個(gè)置數(shù)模塊由主控制器模塊輸出的信號對定時(shí)時(shí)間的選擇進(jìn)行控制。
定時(shí)計(jì)數(shù)模塊采用倒計(jì)時(shí)的方式,由主控制器模塊輸出的信號控制定時(shí)的開始,定時(shí)時(shí)間結(jié)束時(shí)輸出定時(shí)時(shí)間結(jié)束信號到主控制器模塊,通過主控制器模塊控制交通燈的開、閉。
譯碼模塊對定時(shí)計(jì)數(shù)模塊輸出的信號進(jìn)行譯碼,輸出譯碼信號;并與數(shù)碼管相連,由數(shù)碼管顯示器顯示當(dāng)前計(jì)數(shù)值。
3.2.3頂層原理圖設(shè)計(jì)
本實(shí)驗(yàn)的各個(gè)模塊要求學(xué)生用VHDL語言來編程實(shí)現(xiàn),總系統(tǒng)則可以采用原理圖實(shí)現(xiàn),學(xué)生可以把各個(gè)模塊定制成元器件,然后再把各個(gè)器件相連組成交通燈控制系統(tǒng)。整個(gè)過程中,教師只是給出實(shí)驗(yàn)要求和設(shè)計(jì)思路,其他的工作都是由學(xué)生自主完成,可以極大程度培養(yǎng)學(xué)生的獨(dú)立思考、自主創(chuàng)新和實(shí)踐動手能力。
4結(jié)束語
本文根據(jù)學(xué)院具備的實(shí)驗(yàn)器材,設(shè)計(jì)了基于FPGA的交通燈控制器實(shí)驗(yàn)系統(tǒng)。該實(shí)驗(yàn)鍛煉了學(xué)生的實(shí)踐動手能力,加深了學(xué)生對理論知識的理解。同時(shí),該實(shí)驗(yàn)將實(shí)際應(yīng)用與學(xué)生所學(xué)的專業(yè)知識緊密地聯(lián)系起來,使學(xué)生感到學(xué)有所用,極大程度地激發(fā)了學(xué)生的積極性和主動性,增強(qiáng)了學(xué)生學(xué)習(xí)的自主性和實(shí)戰(zhàn)性。
參考文獻(xiàn):
[1] 楊貴,鄭善賢. 基于FPGA的交通燈控制器實(shí)現(xiàn)[J]. 中國儀器儀表,2003(9):41-43.
[2] 孫仁云,李本亮,羅永國. 基于交通燈系統(tǒng)的單片機(jī)教學(xué)實(shí)驗(yàn)[J]. 實(shí)驗(yàn)科學(xué)與技術(shù),2003(2):26-29.
[3] 翟殿棠,方敏,厲光偉. 基于VHDL 的交通燈控制器設(shè)計(jì)[J]. 現(xiàn)代電子技術(shù),2007(3):187-188.