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

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

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

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

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


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


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


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



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


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

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

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

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

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

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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