亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        利用有限狀態(tài)機的交通燈控制系統(tǒng)設計與仿真

        2011-05-21 00:41:46馮競楠
        電子設計工程 2011年12期
        關鍵詞:交通燈狀態(tài)機倒計時

        馮競楠

        (陜西科技大學 陜西 西安 710021)

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

        1 有限狀態(tài)機的基本特性

        有限狀態(tài)機FSM(finite state machine)由有限的狀態(tài)及其相互之間的轉移關系構成。從有限狀態(tài)機的角度看,許多數字系統(tǒng)中的時序電路都可以用其來描述,因此,有限狀態(tài)機是一種重要的、易于建立的、比較規(guī)范、以描述控制特性為主的建模方法,它可以應用于從系統(tǒng)分析到設計的所有階段。同時,因為有限狀態(tài)機具有有限個狀態(tài),所以可以在實際的工程上實現。但這并不意味著其只能進行有限次的處理。相反,有限狀態(tài)機是閉環(huán)系統(tǒng),可以用有限的狀態(tài),處理無窮的事務。

        在用VHDL語言來設計實用系統(tǒng)的控制功能時,通常會選用有限狀態(tài)機方法來實現,因為無論與VHDL的其他設計方案相比,還是與可完成相同功能的CPU相比,有限狀態(tài)機有其獨特的、難以超越的優(yōu)越性,主要表現在以下幾個方面[4]:

        1)有限狀態(tài)機由純硬件來實現,工作方式是根據控制信號按照預先設定的狀態(tài)進行順序運行,在運行和控制方式上類似于控制靈活和方便的CPU,而在設計中能使用各種完整的容錯技術,使其在運行速度和工作可靠性方面又都優(yōu)于CPU。

        2)用VHDL設計有限狀態(tài)機,設計流程和方案相對固定,程序層次分明,程序結構簡單清晰,特別是可以定義符號化枚舉類型的狀態(tài),使VHDL綜合器對狀態(tài)機具有強大的優(yōu)化功能。

        3)狀態(tài)機容易構成性能良好的同步時序模塊,為了消除電路中的毛刺現象,在有限狀態(tài)機設計中有多種設計方案可供選擇,相比其他硬件設計方法,電路的完善性更能得到保證。

        因此,在控制靈活、高速、高可靠性要求的系統(tǒng)設計中應用VHDL設計有限狀態(tài)機將是非常實用的選擇。

        利用VHDL的有限狀態(tài)機設計不同實用邏輯控制系統(tǒng)時,通常采用枚舉類型來定義狀態(tài)機的狀態(tài),這樣可以獲得可綜合的、高效的VHDL描述,并且使用多進程方式來描述狀態(tài)機的內部邏輯。例如:可用兩個進程來描述,一個進程描述時序邏輯功能,通常稱為時序進程;另一個進程描述組合邏輯功能,即組合進程,必要時還可以引入第3個進程完成其他的邏輯功能,另外還需要相應的說明部分,在說明部分用TYPE定義新的數據類型和狀態(tài)名,以及在此新數據下定義的狀態(tài)變量[5]。

        2 基于有限狀態(tài)機的交通燈控制系統(tǒng)設計

        2.1 功能分析

        作為一個十字路口交通信號燈控制系統(tǒng),每條道路都需要有一組紅、綠、黃燈和倒計時計數器,用于指揮車輛的有序通行。為便于區(qū)分,將十字路口交通信號燈分為主路a和支路b,應具有以下功能:

        1)主路a和支路b各設置兩組(雙向)紅燈、綠燈、黃燈,以指示通行狀態(tài);同時還設置數字式的時間顯示,以倒計時方式顯示每一路允許通行或禁止通行的剩余時間。

        2)具有復位功能,當出現故障時,可復位回到初始設置狀態(tài)。

        3)當主路a或支路b出現緊急情況時,按緊急情況鍵可進入緊急情況狀態(tài),各方向(兩路)均亮紅燈,倒計時停止。當特殊情況結束時,控制其恢復到電路的原來狀態(tài)繼續(xù)運行。

        4)主路a或支路b的通行時間可在一定范圍自定義設置。

        2.2 交通燈控制系統(tǒng)整體設計

        按照功能分析的要求,自頂向下,設計交通燈控制系統(tǒng)的整體組成框圖如圖1所示,它主要由分頻模塊,交通燈控制與倒計時模塊和動態(tài)掃描顯示控制模塊組成。分頻電路用于產生倒計時控制電路所需的周期為1 s的時鐘信號頻率;倒計時控制電路控制交通信號燈(紅、綠、黃)的亮燈時間和亮燈順序。根據對VHDL的使用熟悉程度,可對各模塊繼續(xù)分解,可視情而定。

        圖1 交通燈控制系統(tǒng)整體組成框圖Fig.1 Block diagram of traffic light control system

        2.3 控制與倒計時模塊的有限狀態(tài)機設計2.3.1 建立狀態(tài)轉移圖

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

        表1 交通燈狀態(tài)控制關系表Tab.1 Relationship of traffic light state control

        圖2 交通燈控制與倒計時模塊的狀態(tài)轉移圖Fig.2 State transfer of traffic light control and count down module

        2.3.2 控制與倒計時模塊的VHDL描述

        用VHDL設計有限狀態(tài)機并沒有固定的格式,但需要遵循一定的編碼風格。一般采用進程(process)描述,有限狀態(tài)機描述方式有如下3種:三進程描述、雙進程描述和單進程描述。這里采用雙進程描述:一個是時鐘進程,控制狀態(tài)機在時鐘有效沿,根據時鐘有效沿和某些輸入信號條件得到下一狀態(tài)并進行狀態(tài)遷移;另一個是組合進程,不受時鐘控制,由輸出相關的信號觸發(fā),該進程根據觸發(fā)信號決定狀態(tài)機的輸出信號值[6],即通過簡便地定義狀態(tài)變量,將狀態(tài)描述成進程,每個狀態(tài)均可表達為CASE_WHEN語句結構中的一條CASE語句,狀態(tài)的轉移通過IF_THEN_ELSE語句實現[7],并輸出信號以控制其他進程,從而實現狀態(tài)的轉移。

        在時序進程中,狀態(tài)機是隨時鐘脈沖信號clk以同步方式工作,同時還受異步復位信號rst的控制。在rst=1時,狀態(tài)機復位,當rst=0(復位無效)而clk發(fā)生變化時,狀態(tài)機的狀態(tài)發(fā)生變化,轉向狀態(tài)機的下一狀態(tài);在組合進程中,狀態(tài)機根據外部輸入的控制信號 (如hold),以及來自狀態(tài)機內部(如cnt)信號,或當前狀態(tài)機的狀態(tài)值,確定其下一狀態(tài)的走向。

        基于有限狀態(tài)機的VHDL交通燈控制與倒計時模塊的源程序的實體和結構體部分如下:

        ENTITY rgy IS

        PORT(clk,hold,rst:IN STD_LOGIC;

        light:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);

        a,b:OUT INTEGER RANGE 0 TO 35 );

        END rgy;

        ARCHITECTURE rtl OF rgy IS

        TYPE states IS (st0,st1,st2,st3);

        SIGNAL state :STATES:=st0;

        SIGNAL cnt :INTEGER RANGE 0 TO 35:=1;--cnt

        計數值

        SIGNAL cnt_enb :STD_LOGIC:='0';--cnt_enb 計 數的使能端

        BEGIN PROCESS(clk,rst) --狀態(tài)機的時序進程(控制狀態(tài)的轉換)

        BEGIN

        IF(rst='1')THEN state<=st0; cnt<=1; --清零部分

        ELSIF(rising_edge(clk))THEN

        IF(cnt_enb='1')THEN

        IF(hold='0')THEN cnt<=cnt+1; --緊急情況的倒計時計數處理

        ELSE cnt<=cnt;

        END IF;

        ELSE cnt<=1;

        END IF;

        CASE state IS

        WHEN st0=>IF(cnt=green1_cnt)THEN state<=st1;

        ELSE state<=st0;

        END IF;

        WHEN st1=>……

        WHEN st2=>……

        WHEN st3=> IF (cnt=yellow2_cnt)THEN

        state<=st0;

        ELSE state<=st3;

        END IF;

        END CASE;

        END IF;

        END PROCESS;

        PROCESS(state,cnt,hold) --狀態(tài)機的組合邏輯進程

        VARIABLE counta,countb:integer range 0 to 35;

        BEGIN

        IF (hold='1')THEN light<="100100";--緊急情況燈信號的處理

        ELSE

        CASE state IS --各個狀態(tài)的邏輯處理

        WHEN st0=>light<="001100";--該狀態(tài)下燈的信號賦值

        cnt_enb<='1'; --開啟計數,開始倒計時

        counta:=green1_cnt;--給主路倒計時賦初值

        countb:=red2_cnt;--支路倒計時賦初值

        IF (cnt=green1_cnt)THEN--當 cnt計數滿足該狀態(tài)下的時間長度 則進入下一狀態(tài)

        cnt_enb<='0'; --- --停止計數,進入下一狀態(tài)開始計數

        END IF;

        WHEN st1=>light<="010100";

        ……

        WHEN st2=>light<="100001";

        ……

        WHEN st3=>light<="100010";

        ……

        END CASE;

        END IF;

        a<=counta-cnt;b<=countb-cnt; --給倒計時賦值

        END PROCESS;

        END rtl;

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

        3 頂層文件的設計及仿真

        將分頻模塊和顯示控制模塊均分別用VHDL進行編程、仿真,檢查其功能正確性,并包裝元件入庫建立元件符號。

        在上述3個模塊設計完成之后,按照圖1所示電路結構,用原理圖輸入方式進行連接,構成交通燈控制系統(tǒng)的頂層文件,并在Quartus II平臺上進行編譯、仿真,引腳鎖定,得到仿真波形如圖 4 所示,圖中信號 light、a(b)、dec7sa(dec7sb)分別用二進制、十進制、十六進制表示。

        圖3 交通燈控制與倒計時模塊仿真波形Fig.3 Simulation results for traffic light control and count down module

        圖4 交通燈控制系統(tǒng)仿真波形Fig.4 Simulation results for traffic light control system

        從仿真波形中可以看出:當復位信號rst=1有效時,電路復位,此時light復位為“001100”狀態(tài),置a方向和 b方向計數器為最大值24和29;當rst=0無效,緊急信號hold=1有效時,light為 “100100”表示兩路紅燈均亮的狀態(tài);當rst=0,hold=0時,恢復電路原來的 light為“001100”狀態(tài),a和 b進行倒計時計數。7段顯示譯碼器a方向的dec7sa和b方向的dec7sb分別顯示計數器a和b的數值,如當a計數到21時,dec7sa的高位 2和低位 1的 0gfedcba=01011011B (5B)和00000110 B(06),即 5B06,同理當 b 計數到 26 時,dec7sb 的值為5B7D,所以交通燈控制系統(tǒng)的仿真結果完全正確。

        最后將頂層文件下載到可編程邏輯器件EP1C12Q240C8中,經測試,交通燈控制系統(tǒng)正常工作,完全符合設計要求。

        4 結束語

        有限狀態(tài)機及其設計技術是數字系統(tǒng)中實現高效率、高可靠性邏輯控制的重要途徑[7]。在交通燈控制系統(tǒng)設計中,通過對控制功能的分析和實際狀態(tài)的選擇,把交通燈的控制歸納為4種工作狀態(tài),并建立狀態(tài)轉移關系,較為準確、直觀的反映了實際需求。在用VHDL語言設計實現交通燈控制系統(tǒng)時,既有傳統(tǒng)的基于邏輯單元構建的整體組成結構方式,也有利用純軟件編程實現的邏輯模塊。設計方法靈活、實現簡單、性能穩(wěn)定的特點。

        以上有限狀態(tài)機的設計方法具有通用性,對于較為復雜的有限狀態(tài)機可采用多個進程,分別完成任意復雜組合邏輯和時序邏輯,包括進程間狀態(tài)值的傳遞以及狀態(tài)轉換值的輸出,對類似含有邏輯控制功能的系統(tǒng),通過自頂向下設計、分步實現,是切實可行的方法。

        [1]周飚,謝曉陽.有限狀態(tài)機在RTC設計中的分析與應用[J].計算機系統(tǒng)應用,2008(5):77-78.ZHOU Biao,XIE Xiao-yang.Analysis and application of finite state machine in RTC design[J].Computer Systems &Applications, 2008(5):77-78.

        [2]胡星,唐皓.基于CPLD的道路交通自動控制系統(tǒng)[J].自動化技術與應用,2009(2):92-94.HU Xing, TANG Hao.Traffic light control based on CPLD[J].Techniques of Automation & Applications, 2009(2):92-94.

        [3]蔡軍,曹慧英.智能交通燈控制系統(tǒng)的設計與實現[J].重慶郵電學院學報,2004(6):129-132.CAI Jun,CAO Hui-ying.Design and implementation of intelligent traffic light control system[J].Journal of Chongqing UniversityofPostsandTelecommunications, 2004(6):129-132.

        [4]李云,馮永浩,孟濤.基于VHDL有限狀態(tài)機控制器的設計方法[J].微計算機信息,2010(5-1):74-75,103.LI Yun, FENG Yong-hao, MENG Tao.A controller design method based on VHDL Finite state machine[J].Microcomputer Information, 2010(5-1):74-75,103.

        [5]聶茹.基于Multisim10的十字路口交通燈控制器的設計與仿真[J].現代電子技術,2010(33-11):179-181.NIE Ru.Design and simulation of traffic lights controller at the crossroads based on multisim10[J].Modern Electronics Technique, 2010(33-11):179-181.

        [6]徐春嬌.基于VHDL狀態(tài)機設計的智能交通控制[J].電子設計工程,2007(6-2):31-35,39.XUChun-jiao.VHDLstatemachinebasedintelligenttrafficlight[J].Electronic Design Engineering, 2007(6-2):31-35,39.

        [7]王振紅.VHDL數字電路設計與應用實踐教程[M].北京:機械工業(yè)出版社,2006.

        猜你喜歡
        交通燈狀態(tài)機倒計時
        基于有限狀態(tài)機的交會對接飛行任務規(guī)劃方法
        基于單片機的交通燈控制系統(tǒng)設計
        電子測試(2018年23期)2018-12-29 11:11:34
        一直飄紅的交通燈
        基于單片機的LED模擬交通燈設計
        電子制作(2016年21期)2016-05-17 03:52:44
        基于protues仿真的交通燈即時控制的一種實現
        河南科技(2014年11期)2014-02-27 14:09:57
        FPGA設計中狀態(tài)機安全性研究
        黑龍江科學(2011年2期)2011-03-14 00:39:36
        基于反熔絲FPGA的有限狀態(tài)機加固設計
        基于VHDL的一個簡單Mealy狀態(tài)機
        日韩A∨精品久久久久| 性久久久久久| 国产免费操美女逼视频| 少妇又色又爽又高潮在线看| 国产激情无码一区二区| 播放灌醉水嫩大学生国内精品| 日本欧美国产精品| 久久亚洲精品一区二区| 偷拍一区二区盗摄视频| 亚洲中文字幕成人无码| 国产在线一区观看| 日韩国产有码精品一区二在线 | 精品日韩欧美一区二区三区在线播放| 国产少妇高潮在线视频| 国产亚洲美女精品久久久2020 | 精品国产青草久久久久福利| 少妇人妻在线视频| 精品一区二区三区人妻久久| 久久精品国产福利亚洲av| 漂亮人妻洗澡被公强 日日躁 | 80s国产成年女人毛片| 帮老师解开蕾丝奶罩吸乳网站| 少妇太爽了在线观看免费视频| 国产三级在线看完整版| 91精品国产综合久久久蜜| 色综合久久久无码中文字幕| 中文无码久久精品| 暖暖免费 高清 日本社区在线观看 | 漂亮人妻被强了完整版| 婷婷亚洲久悠悠色悠在线播放| 久久久久久久妓女精品免费影院 | 日韩av免费一区二区| 亚洲av无码一区二区三区天堂古代| 亚洲天堂99| 国产一级黄色性生活片| 日韩精品中文字幕一区二区| 精品伊人久久大香线蕉综合| 国产成人精品自在线无码| 亚洲人妻精品一区二区三区| 久久红精品一区二区三区| 撕开奶罩揉吮奶头视频|