當(dāng)前位置:首頁(yè) > 工業(yè)控制 > 工業(yè)控制
[導(dǎo)讀]摘要:基于硬件電路設(shè)計(jì)軟件化的思想,根據(jù)路口交通燈控制功能要求,以可編程邏輯器件(FPGA)為硬件基礎(chǔ),以有限狀態(tài)機(jī)為設(shè)計(jì)基礎(chǔ),通過(guò)對(duì)系統(tǒng)狀態(tài)及其轉(zhuǎn)移關(guān)系的定義,運(yùn)用多進(jìn)程方式描述硬件模塊的邏輯關(guān)系,用VHDL

摘要:基于硬件電路設(shè)計(jì)軟件化的思想,根據(jù)路口交通燈控制功能要求,以可編程邏輯器件(FPGA)為硬件基礎(chǔ),以有限狀態(tài)機(jī)為設(shè)計(jì)基礎(chǔ),通過(guò)對(duì)系統(tǒng)狀態(tài)及其轉(zhuǎn)移關(guān)系的定義,運(yùn)用多進(jìn)程方式描述硬件模塊的邏輯關(guān)系,用VHDL語(yǔ)言編程實(shí)現(xiàn)了交通燈控制系統(tǒng),經(jīng)仿真,并在實(shí)驗(yàn)箱上進(jìn)行功能測(cè)試,正確實(shí)現(xiàn)了預(yù)期功能。僅用一片可編程邏輯器件,即完成需要的控制功能,設(shè)計(jì)思路清晰,實(shí)現(xiàn)過(guò)程靈活。
關(guān)鍵詞:有限狀態(tài)機(jī);交通燈;控制系統(tǒng);設(shè)計(jì)

    實(shí)現(xiàn)路口交通燈控制器系統(tǒng)的方法很多,可以用標(biāo)準(zhǔn)邏輯器件、可編程序控制器PLC、單片機(jī)等方案來(lái)實(shí)現(xiàn)。但是這些方法在進(jìn)行功能修改及調(diào)試時(shí),都涉及硬件電路的調(diào)整,在一定程度上增加了工作的難度。隨著電子技術(shù)的迅猛發(fā)展,集成電路的設(shè)計(jì)方法也在不斷地更新,傳統(tǒng)的“固定功能集成電路+連線”的手工電子設(shè)計(jì)方法已被現(xiàn)代的對(duì)“芯片”進(jìn)行設(shè)計(jì)的電子設(shè)計(jì)自動(dòng)化(EDA)的設(shè)計(jì)方法所替代,使用“語(yǔ)言”進(jìn)行電子電路設(shè)計(jì)已成為一種趨勢(shì)。筆者設(shè)計(jì)開(kāi)發(fā)的交通信號(hào)燈控制器系統(tǒng),采用EDA技術(shù)和可編程邏輯器件FPGA,應(yīng)用VHDL有限狀態(tài)機(jī)來(lái)設(shè)計(jì)控制系統(tǒng)的控制功能,并可根據(jù)實(shí)際情況對(duì)燈亮?xí)r間進(jìn)行自由調(diào)整,整個(gè)系統(tǒng)通過(guò)OuartusⅡ軟件平臺(tái)進(jìn)行了仿真,并下載到FPGA器件EP1C120240C8中進(jìn)行調(diào)試,驗(yàn)證了設(shè)計(jì)的交通信號(hào)燈控制電路完全可以實(shí)現(xiàn)預(yù)定的功能。該系統(tǒng)可以較好地緩解交通壓力,并可實(shí)現(xiàn)對(duì)突發(fā)事件進(jìn)行緊急處理,具有一定的實(shí)用性。

1 有限狀態(tài)機(jī)的基本特性
    有限狀態(tài)機(jī)FSM(finite state machine)由有限的狀態(tài)及其相互之間的轉(zhuǎn)移關(guān)系構(gòu)成。從有限狀態(tài)機(jī)的角度看,許多數(shù)字系統(tǒng)中的時(shí)序電路都可以用其來(lái)描述,因此,有限狀態(tài)機(jī)是一種重要的、易于建立的、比較規(guī)范、以描述控制特性為主的建模方法,它可以應(yīng)用于從系統(tǒng)分析到設(shè)計(jì)的所有階段。同時(shí),因?yàn)橛邢逘顟B(tài)機(jī)具有有限個(gè)狀態(tài),所以可以在實(shí)際的工程上實(shí)現(xiàn)。但這并不意味著其只能進(jìn)行有限次的處理。相反,有限狀態(tài)機(jī)是閉環(huán)系統(tǒng),可以用有限的狀態(tài),處理無(wú)窮的事務(wù)。
    在用VHDL語(yǔ)言來(lái)設(shè)計(jì)實(shí)用系統(tǒng)的控制功能時(shí),通常會(huì)選用有限狀態(tài)機(jī)方法來(lái)實(shí)現(xiàn),因?yàn)闊o(wú)論與VHDL的其他設(shè)計(jì)方案相比,還是與可完成相同功能的CPU相比,有限狀態(tài)機(jī)有其獨(dú)特的、難以超越的優(yōu)越性,主要表現(xiàn)在以下幾個(gè)方面:
    1)有限狀態(tài)機(jī)由純硬件來(lái)實(shí)現(xiàn),工作方式是根據(jù)控制信號(hào)按照預(yù)先設(shè)定的狀態(tài)進(jìn)行順序運(yùn)行,在運(yùn)行和控制方式上類似于控制靈活和方便的CPU,而在設(shè)計(jì)中能使用各種完整的容錯(cuò)技術(shù),使其在運(yùn)行速度和工作可靠性方面又都優(yōu)于CPU。
    2)用VHDL設(shè)計(jì)有限狀態(tài)機(jī),設(shè)計(jì)流程和方案相對(duì)固定,程序?qū)哟畏置鳎绦蚪Y(jié)構(gòu)簡(jiǎn)單清晰,特別是可以定義符號(hào)化枚舉類型的狀態(tài),使VHDL綜合器對(duì)狀態(tài)機(jī)具有強(qiáng)大的優(yōu)化功能。
    3)狀態(tài)機(jī)容易構(gòu)成性能良好的同步時(shí)序模塊,為了消除電路中的毛刺現(xiàn)象,在有限狀態(tài)機(jī)設(shè)計(jì)中有多種設(shè)計(jì)方案可供選擇,相比其他硬件設(shè)計(jì)方法,電路的完善性更能得到保證。
    因此,在控制靈活、高速、高可靠性要求的系統(tǒng)設(shè)計(jì)中應(yīng)用VHDL設(shè)計(jì)有限狀態(tài)機(jī)將是非常實(shí)用的選擇。
    利用VHDL的有限狀態(tài)機(jī)設(shè)計(jì)不同實(shí)用邏輯控制系統(tǒng)時(shí),通常采用枚舉類型來(lái)定義狀態(tài)機(jī)的狀態(tài),這樣可以獲得可綜合的、高效的VHDL描述,并且使用多進(jìn)程方式來(lái)描述狀態(tài)機(jī)的內(nèi)部邏輯。例如:可用兩個(gè)進(jìn)程來(lái)描述,一個(gè)進(jìn)程描述時(shí)序邏輯功能,通常稱為時(shí)序進(jìn)程;另一個(gè)進(jìn)程描述組合邏輯功能,即組合進(jìn)程,必要時(shí)還可以引入第3個(gè)進(jìn)程完成其他的邏輯功能,另外還需要相應(yīng)的說(shuō)明部分,在說(shuō)明部分用TYPE定義新的數(shù)據(jù)類型和狀態(tài)名,以及在此新數(shù)據(jù)下定義的狀態(tài)變量。

2 基于有限狀態(tài)機(jī)的交通燈控制系統(tǒng)設(shè)計(jì)
2.1 功能分析
    作為一個(gè)十字路口交通信號(hào)燈控制系統(tǒng),每條道路都需要有一組紅、綠、黃燈和倒計(jì)時(shí)計(jì)數(shù)器,用于指揮車(chē)輛的有序通行。為便于區(qū)分,將十字路口交通信號(hào)燈分為主路a和支路b,應(yīng)具有以下功能:
    1)主路a和支路b各設(shè)置兩組(雙向)紅燈、綠燈、黃燈,以指示通行狀態(tài):同時(shí)還設(shè)置數(shù)字式的時(shí)間顯示,以倒計(jì)時(shí)方式顯示每一路允許通行或禁止通行的剩余時(shí)間。
    2)具有復(fù)位功能,當(dāng)出現(xiàn)故障時(shí),可復(fù)位回到初始設(shè)置狀態(tài)。
    3)當(dāng)主路a或支路b出現(xiàn)緊急情況時(shí),按緊急情況鍵可進(jìn)入緊急情況狀態(tài),各方向(兩路)均亮紅燈,倒計(jì)時(shí)停止。當(dāng)特殊情況結(jié)束時(shí),控制其恢復(fù)到電路的原來(lái)狀態(tài)繼續(xù)運(yùn)行。
    4)主路a或支路b的通行時(shí)間可在一定范圍自定義設(shè)置。
2.2 交通燈控制系統(tǒng)整體設(shè)計(jì)
    按照功能分析的要求,自頂向下,設(shè)計(jì)交通燈控制系統(tǒng)的整體組成框圖如圖1所示,它主要由分頻模塊,交通燈控制與倒計(jì)時(shí)模塊和動(dòng)態(tài)掃描顯示控制模塊組成。分頻電路用于產(chǎn)生倒計(jì)時(shí)控制電路所需的周期為1 s的時(shí)鐘信號(hào)頻率;倒計(jì)時(shí)控制電路控制交通信號(hào)燈(紅、綠、黃)的亮燈時(shí)間和亮燈順序。根據(jù)對(duì)VHDL的使用熟悉程度,可對(duì)各模塊繼續(xù)分解,可視情而定。


2.3 控制與倒計(jì)時(shí)模塊的有限狀態(tài)機(jī)設(shè)計(jì)
2.3.1 建立狀態(tài)轉(zhuǎn)移圖
    在交通燈控制系統(tǒng)中,交通燈控制與倒計(jì)時(shí)模塊是系統(tǒng)的核心部分,采用有限狀態(tài)機(jī)設(shè)計(jì)實(shí)現(xiàn)。主路a和支路b分別控制該方向上紅、綠、黃信號(hào)燈的亮燈時(shí)間和亮燈順序,正常工作時(shí)共有St0、St1、St2、St3 4種狀態(tài),每個(gè)狀態(tài)之間的具體關(guān)系如表1所示,其中,red1_cn t、green1_cnt、yellow1_cnt和red2_cnt、green2_cnt、yellow2_cnt分別表示主路a和支路b上紅綠黃燈所亮燈的時(shí)間,這里可自己定義倒計(jì)時(shí)時(shí)間。其狀態(tài)轉(zhuǎn)換圖如圖2所示。ent為倒計(jì)時(shí)的計(jì)數(shù)值,同時(shí)用它來(lái)判斷是否進(jìn)入下一個(gè)狀態(tài)。


2.3.2 控制與倒計(jì)時(shí)模塊的VHDL描述
    用VHDL設(shè)計(jì)有限狀態(tài)機(jī)并沒(méi)有固定的格式,但需要遵循一定的編碼風(fēng)格。一般采用進(jìn)程(process)描述,有限狀態(tài)機(jī)描述方式有如下3種:三進(jìn)程描述、雙進(jìn)程描述和單進(jìn)程描述。這里采用雙進(jìn)程描述:一個(gè)是時(shí)鐘進(jìn)程,控制狀態(tài)機(jī)在時(shí)鐘有效沿,根據(jù)時(shí)鐘有效沿和某些輸入信號(hào)條件得到下一狀態(tài)并進(jìn)行狀態(tài)遷移;另一個(gè)是組合進(jìn)程,不受時(shí)鐘控制,由輸出相關(guān)的信號(hào)觸發(fā),該進(jìn)程根據(jù)觸發(fā)信號(hào)決定狀態(tài)機(jī)的輸出信號(hào)值,即通過(guò)簡(jiǎn)便地定義狀態(tài)變量,將狀態(tài)描述成進(jìn)程,每個(gè)狀態(tài)均可表達(dá)為CASE_WHEN語(yǔ)句結(jié)構(gòu)中的一條CASE語(yǔ)句,狀態(tài)的轉(zhuǎn)移通過(guò)IF_THEN_ELSE語(yǔ)句實(shí)現(xiàn),并輸出信號(hào)以控制其他進(jìn)程,從而實(shí)現(xiàn)狀態(tài)的轉(zhuǎn)移。
    在時(shí)序進(jìn)程中,狀態(tài)機(jī)是隨時(shí)鐘脈沖信號(hào)clk以同步方式工作,同時(shí)還受異步復(fù)位信號(hào)rst的控制。在rst=1時(shí),狀態(tài)機(jī)復(fù)位,當(dāng)rst=0(復(fù)位無(wú)效)而clk發(fā)生變化時(shí),狀態(tài)機(jī)的狀態(tài)發(fā)生變化,轉(zhuǎn)向狀態(tài)機(jī)的下一狀態(tài);在組合進(jìn)程中,狀態(tài)機(jī)根據(jù)外部輸入的控制信號(hào)(如hold),以及來(lái)自狀態(tài)機(jī)內(nèi)部(如cnt)信號(hào),或當(dāng)前狀態(tài)機(jī)的狀態(tài)值,確定其下一狀態(tài)的走向。
    基于有限狀態(tài)機(jī)的VHDL交通燈控制與倒計(jì)時(shí)模塊的源程序的實(shí)體和結(jié)構(gòu)體部分如下:
   


    將編譯后的程序進(jìn)行仿真,得到交通燈控制與倒計(jì)時(shí)模塊仿真波形圖如圖3所示。由仿真波形可以看出,交通燈按St0→*St1→St2→St3 →St0順序進(jìn)行狀態(tài)循環(huán)。light按主路紅、主路黃、主路綠、支路紅、支路黃、支路綠的順序排列。如在St0狀態(tài)下,light的值為“001100 ”,當(dāng)hold緊急情況信號(hào)為高電平時(shí),主路、支路均亮紅燈,并且停止倒計(jì)時(shí)。當(dāng)rst復(fù)位信號(hào)為高電平時(shí),恢復(fù)到初態(tài)。



3 頂層文件的設(shè)計(jì)及仿真
    將分頻模塊和顯示控制模塊均分別用VHDL進(jìn)行編程、仿真,檢查其功能正確性,并包裝元件入庫(kù)建立元件符號(hào)。在上述3個(gè)模塊設(shè)計(jì)完成之后,按照?qǐng)D1所示電路結(jié)構(gòu),用原理圖輸入方式進(jìn)行連接,構(gòu)成交通燈控制系統(tǒng)的頂層文件,并在Quartus II平臺(tái)上進(jìn)行編譯、仿真,引腳鎖定,得到仿真波形如圖4所示,圖中信號(hào)light、a(b)、dec7sa(dec7sb)分別用二進(jìn)制、十進(jìn)制、十六進(jìn)制表示。


    從仿真波形中可以看出:當(dāng)復(fù)位信號(hào)rst=1有效時(shí),電路復(fù)位,此時(shí)light復(fù)位為“001100”狀態(tài),置a方向和b方向計(jì)數(shù)器為最大值24和29;當(dāng)rst=0無(wú)效,緊急信號(hào)hold=1有效時(shí),light為“100100”表示兩路紅燈均亮的狀態(tài);當(dāng)rst=0,hold=0時(shí),恢復(fù)電路原來(lái)的light為“001100”狀態(tài),a和b進(jìn)行倒計(jì)時(shí)計(jì)數(shù)。7段顯示譯碼器a方向的dec7sa和b方向的dec7sb分別顯示計(jì)數(shù)器a和b的數(shù)值,如當(dāng)a計(jì)數(shù)到21時(shí),dec7sa的高位2和低位1的0gfedcba=01011011B(5B)和00000110 B(06),即5806,同理當(dāng)b計(jì)數(shù)到26時(shí),dec7sb的值為5B7D,所以交通燈控制系統(tǒng)的仿真結(jié)果完全正確。
    最后將頂層文件下載到可編程邏輯器件EP1C12Q240C8中,經(jīng)測(cè)試,交通燈控制系統(tǒng)正常工作,完全符合設(shè)計(jì)要求。

4 結(jié)束語(yǔ)
    有限狀態(tài)機(jī)及其設(shè)計(jì)技術(shù)是數(shù)字系統(tǒng)中實(shí)現(xiàn)高效率、高可靠性邏輯控制的重要途徑。在交通燈控制系統(tǒng)設(shè)計(jì)中,通過(guò)對(duì)控制功能的分析和實(shí)際狀態(tài)的選擇,把交通燈的控制歸納為4種工作狀態(tài),并建立狀態(tài)轉(zhuǎn)移關(guān)系,較為準(zhǔn)確、直觀的反映了實(shí)際需求。在用VHDL語(yǔ)言設(shè)計(jì)實(shí)現(xiàn)交通燈控制系統(tǒng)時(shí),既有傳統(tǒng)的基于邏輯單元構(gòu)建的整體組成結(jié)構(gòu)方式,也有利用純軟件編程實(shí)現(xiàn)的邏輯模塊。設(shè)計(jì)方法靈活、實(shí)現(xiàn)簡(jiǎn)單、性能穩(wěn)定的特點(diǎn)。
    以上有限狀態(tài)機(jī)的設(shè)計(jì)方法具有通用性,對(duì)于較為復(fù)雜的有限狀態(tài)機(jī)可采用多個(gè)進(jìn)程,分別完成任意復(fù)雜組合邏輯和時(shí)序邏輯,包括進(jìn)程間狀態(tài)值的傳遞以及狀態(tài)轉(zhuǎn)換值的輸出,對(duì)類似含有邏輯控制功能的系統(tǒng),通過(guò)自頂向下設(shè)計(jì)、分步實(shí)現(xiàn),是切實(shí)可行的方法。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉