利用有限狀態機的交通燈控制系統設計與仿真

2021-01-07 電子產品世界

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

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

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

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

本文引用地址:http://www.eepw.com.cn/article/160987.htm


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


相關焦點

  • 基於西門子S7-200PLC的交通燈控制系統的設計
    打開APP 基於西門子S7-200PLC的交通燈控制系統的設計 發表於 2018-01-09 10:25:40 PLC應用於交通控制還有很大的潛能,PLC以其可方便操作、可方便編程調試等特點,使得其有逐步取代以往的單片機在交通燈中的地位的趨勢。本文主要研究了基於西門子S7-200PLC的交通燈控制系統的設計。 2、交通燈的控制要求 交通燈控制示意圖如圖1所示。
  • 基於VHDL的MTM總線主模塊有限狀態機設計
    摘要:為了能夠更簡潔嚴謹地描述MTM總線的主模塊有限狀態機的狀態轉換,同時減少FPGA晶片功耗,提高系統穩定性,文中在分析MTM總線結構和主模塊有限狀態機模型的基礎上,基於VHDL語言採用「單進程」式對該有限狀態機進行了設計,並在QuartusⅡ開發軟體中實現了對語言代碼的編譯及程序的時序仿真和功能仿真
  • 用STATECAD快速設計有限狀態機
    控制單元的實現方式有: 有限狀態機、控制寄存器和微代碼控制器等。有限狀態機在時間尺度上對其控制信號進行離散化控制, 利用狀態轉移使控制信號在有限狀態機的狀態節拍控制下變化, 以實現對被控對象的控制。有限狀態機設計的關鍵是如何把一個實際的時序邏輯關係抽象成一個時序邏輯函數,傳統的電路圖輸入法通過直接設計寄存器組來實現各個狀態之間的轉換, 而用硬體描述語言來描述有限狀態機, 往往是通過充分發揮硬體描述語言的抽象建模能力,通過對系統在系統級或寄存器傳輸級進行描述來建立有限狀態機。EDA 工具的快速發展,使通過CAD快速設計有限狀態機自動化成為可能。
  • 用VHDL設計有限狀態機的方法
    受控部分通常是設計者們所熟悉的各種功能電路,設計較為容易。主要任務是設計控制器,而其控制功能可以用有限狀態機來實現。因而有必要深入探討有限狀態機的設計方法。本文引用地址:http://www.eepw.com.cn/article/150667.htm1 狀態機設計的一般方法  傳統的設計方法是首先繪製出控制器的狀態圖,並由此列出狀態表,再合併消除狀態表中的等價狀態項。在完成狀態寄存器的分配之後,根據狀態表求出次態及輸出方程,最後畫出設計原理圖。
  • Verilog HDL設計進階:有限狀態機的設計原理及其代
    由於寄存器傳輸級(RTL)描述是以時序邏輯抽象所得到的有限狀態機為依據的,所以把一個時序邏輯抽象成一個同步有限狀態機是設計可綜合風格的Verilog HDL模塊的關鍵。在本章中我們將通過各種實例由淺入深地來介紹各種可綜合風格的Verilog HDL模塊,並把重點放在時序邏輯的可綜合有限狀態機的Verilog HDL設計要點。
  • Verilog HDL設計進階:有限狀態機的設計原理及其代碼風格
    由於寄存器傳輸級(RTL)描述是以時序邏輯抽象所得到的有限狀態機為依據的,所以把一個時序邏輯抽象成一個同步有限狀態機是設計可綜合風格的Verilog HDL模塊的關鍵。在本章中我們將通過各種實例由淺入深地來介紹各種可綜合風格的Verilog HDL模塊,並把重點放在時序邏輯的可綜合有限狀態機的Verilog HDL設計要點。
  • 基於有限狀態機的飛行器自毀系統時序控制設計
    分析飛行器自毀系統工作原理,採用複雜可編程邏輯器件(CPLD)實現了飛行器自毀系統設計,結合CPLD的特點,提出一種基於改進型有限狀態機的飛行器自毀系統時序控制的設計方法,並在CPLD中予以實現。仿真及實驗表明,基於有限狀態機的飛行器自毀系統定時精度達到納秒級,可以有效地控制自毀信號輸出並消除毛刺現象,很好地滿足系統性能要求。該方法具有結構簡單緊湊、成本低、可靠性高、精度高等優點。
  • 有限狀態機的FPGA設計
    有限狀態機是一種常見的電路,由於時序電路和組合電路組成,設計有限狀態機的第一步是確定採用Moore狀態機還是採用Mealy狀態機。Mealy狀態機的狀態轉變不僅和當前狀態有關,而且和各輸入信號有關;Moore狀態機的轉變只和當前狀態有關。
  • 基於Verilog的順序狀態邏輯FSM設計與仿真
    這在設計過程中,進行邏輯結構部分設計時可以將行為結構和層次化結構混合起來;為確認正確性還可以將描述進行模擬,並提供一些用於自動設計的綜合工具。因而Verilog語言為設計者進行大型複雜數字系統的設計提供了途徑。超大規模集成電路設計的典型流程如圖1所示。   本文將以順序狀態邏輯有限狀態機的設計為例介紹用Verilog語言設計數字電路的一般過程。
  • 基於FPGA與有限狀態機的高精度測角系統的設計與實
    本文介紹的有限狀態機方法,在FPGA上可以有效消除抖動引起的計數幹擾,提高計數的精度[1]。1 方案設計1.1 系統組成雷射跟蹤測量系統的核心處理模塊主要由ARM處理器,FPGA組成。為了充分利用ARM9微處理器的運算能力和FPGA的高速邏輯處理能力,在設計中對功能的實現進行了劃分。ARM9 用於運動控制平臺的控制並且與FPGA一起形成一個完整的應用平臺。FPGA主要完成編碼器的精確計數功能、與ARM9處理器數據通信、與雷射測距儀數據通信功能。系統的組成框圖如圖1所示。本文重點介紹在FPGA上實現編碼器的輸出脈衝計數與角度測量。
  • 如何以面向對象的思想設計有限狀態機
    狀態機的概念有限狀態機又稱有限狀態自動機,簡稱狀態機,是表示有限個狀態以及在這些狀態之間的轉移和動作等行為的數學計算模型,用英文縮寫也被簡稱為 FSM。FSM 會響應「事件」而改變狀態,當事件發生時,就會調用一個函數,而且 FSM 會執行動作產生輸出,所執行的動作會因為當前系統的狀態和輸入的事件不同而不同。
  • 初學者對有限狀態機(FSM)的設計的認識
    有限狀態機(FSM)是一種常見的電路,由時序電路和組合電路組成。設計有限狀態機的第一步是確定採用Moore狀態機還是採用Mealy狀態機。(Mealy型:狀態的轉變不僅和當前狀態有關,而且跟各輸入信號有關;Moore型:狀態的轉變只和當前狀態有關)。
  • 基於定時器的PLC交通燈控制系統研究
    交通燈在南北方向與東西方向的運行狀態是不同的。 圖2  交通燈運行時序圖 2.2、梯形圖程序 交通燈控制系統是一種典型的時序控制系統,所有的動作都按照固定的時間順序來進行按下啟動按鈕,交通燈控制系統開始運行,梯形圖程序設計時首先在上電第一個周期對各變量進行初始化復位。利用T37的常閉觸點實現循環控制。按下停止按鈕,整個系統停止工作。梯形圖程序如圖3所示。
  • 產品經理不得不知的——有限狀態機
    二、什麼是有限狀態機有限狀態機(Finite-state machine)是一個非常有用的模型,可以模擬世界上大部分事物。它有三個特徵:狀態總數(state)是有限的。任一時刻,只處在一種狀態之中。某種條件下,會從一種狀態轉變(transition)到另一種狀態。
  • 利用電子仿真軟體Saber對無刷直流電機控制系統進行仿真分析
    利用電子仿真軟體Saber對無刷直流電機控制系統進行仿真分析 電子設計 發表於 2019-04-29 08:26:00 無刷直流電機是在有刷直流電機的基礎上發展起來。
  • 利用FPGA實現的FFT變換設計
    設計中採用基-2DIT-FFT算法來實現整個系統的設計,如圖1所示。  在此次設計中採用定點小數的方法,所謂定點小數,就是小數點的位置是固定的。設計中統一將小數點放在了Q6的位置,在仿真的結果圖中顯示的輸出數據均是小數點經過移位後的結果即結果均擴大了64倍。  複數乘法器採用FPGA內部IP核的例化與調用來設計實現了蝶形處理,這樣就可以提高蝶形運算單元的的運算速度,降低了運算複雜度。控制單元的設計通過一個有限狀態機來實現控制器。
  • 變色電致發光器件的新型交通燈設計
    摘要:介紹了一種基於變色電致發光器件的新型交通燈設計。目前交通燈大多採用紅黃綠三色LED燈組來實現交通管制功能,本設計採用能夠伴隨其正向偏壓改變顏色的電致發光器件做交通燈燈組,且使用單片機控制,其結構相對簡單,能有效降低製造成本,方便架設與維護。
  • 一種RFID標籤晶片數字部分狀態機的設計
    嵌入式CPU設計較為靈活,能實現較為複雜的加密算法,但是功耗較大、成本高;而狀態機則功耗低、成本低,因而在注重功耗和成本的RFID市場獲得了廣泛應用,也為本文所採用。  1 VICC數字部分的構成  VICC數字部分的組成模塊如圖1所示。
  • 利用仿真技術改善EV電力電子設計
    電力電子測試面臨全新挑戰高速EV電力電子設備的開關速度在2kHz到20KHz之間,業界希望使用基於碳化矽和氮化鎵的新設計來進一步提高開關頻率。要對開關行為進行準確的建模,仿真時間步長對應的頻率要遠遠高於剛才所說的開關頻率,而且很多情況下,該頻率要數倍高於基於CPU的標準仿真系統。
  • EDA技術設計的常用軟體以及仿真工具介紹
    空氣動力學方面的數據由資深專家提供,軟體開發商是IBM,飛行器設計工程師只需利用仿真軟體在計算機平臺上進行各種仿真調試工作即可。同樣,他們其他的很多東西都是採用了這樣類似的方法,從大到小,從複雜到簡單,甚至包括設計家具和作曲,只是具體軟體內容不同。其實,他們發明第一代計算機時就是這個目的(當初是為了高效率設計大炮和相關炮彈以及其他計算量大的設計)。