• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于FPGA的交通燈控制系統(tǒng)設(shè)計

      2013-12-31 00:00:00宋武宋艷麗
      電子世界 2013年20期

      【摘要】以可編程邏輯器件(FPGA)為載體,采用狀態(tài)機的設(shè)計思想對十字路口交通燈的狀態(tài)及其相互轉(zhuǎn)移關(guān)系的描述,運用時序和組合邏輯等進程描述硬件模塊間的邏輯關(guān)系,用Very-High-Speed Integrated Circuit HardwareDescription Language(簡稱VHDL)編程實現(xiàn)了十字路口交通的控制。經(jīng)波形仿真,并下載到EPIC3T144C8芯片進行了硬件調(diào)試,達到了設(shè)定的功能仿真,整個程序設(shè)計思路清晰,硬件電路簡單,實現(xiàn)過程靈活。

      【關(guān)鍵詞】FPGA;狀態(tài)機;交通燈;VHDL

      1.引言

      目前在教學中運用軟件實現(xiàn)交通燈的控制可以用標準邏輯器件、可編程序控制器PLC、單片機等方案來實現(xiàn)。但是這些方法在進行功能修改及調(diào)試時,都涉及硬件電路的調(diào)整,在一定程度上增加了工作的難度,另外對初學者而言,設(shè)計程序也有一定困難,采用可編程邏輯器件FPGA,應(yīng)用狀態(tài)機來設(shè)計控制系統(tǒng)的控制功能,可根據(jù)實際情況對燈亮時間進行自由調(diào)整,整個系統(tǒng)通過QuartusⅡ9.0軟件平臺進行了仿真,同時下載到EP1C3T144C8中進行調(diào)試,驗證了交通信號燈控制電路預(yù)定的功能。采取狀態(tài)機進行控制,學生容易接受。對初學者而言,有一定的指導(dǎo)意義。利用狀態(tài)機設(shè)計一般步驟:首先將行為狀態(tài)轉(zhuǎn)換成符號狀態(tài),接著將符號狀態(tài)轉(zhuǎn)換成真值表,利用真值表列出狀態(tài)轉(zhuǎn)換的組合邏輯、時序邏輯關(guān)系,編寫程序、芯片選擇、引腳鎖定和下載調(diào)試。

      2.交通燈行為分析

      任何模型和控制對象建立,均要找出運行規(guī)律,將行為語言轉(zhuǎn)換為數(shù)字符號,以便于控制。下面以十字路口雙向六車道為例介紹交通燈的控制情況,東西方向交通流直行即東西方向交通流左轉(zhuǎn),南北方向交通流直行,南北方向交通流左轉(zhuǎn),所有右轉(zhuǎn)方向交通流不予控制。交通燈控制示意圖如圖1所示。

      圖1 雙向六車道的示意圖

      根據(jù)交通運行規(guī)則,在十字路口雙向六車道中有下列6種循環(huán)的工作狀態(tài),順序為,順序為:S0→S1→S2→S3→S4→S5。在各方向的交通燈運行狀態(tài)有綠燈亮、黃燈亮、左轉(zhuǎn)彎亮、紅燈亮,詳細情況如表1所示。

      表1 交通燈的狀態(tài)轉(zhuǎn)換規(guī)律表

      工作狀態(tài)東西方向符號時間(秒)南北方向符號時間(秒)

      S0綠燈亮GA40紅燈亮GB60

      S1黃燈亮YA5紅燈亮YB

      S2左轉(zhuǎn)彎亮LTA15紅燈亮LTB

      S3紅燈亮RA60綠燈亮RB40

      S4紅燈亮 黃燈亮 5

      S5紅燈亮 左轉(zhuǎn)彎亮 15

      為了便于利用狀態(tài)機進行程序設(shè)計,用1表示指示燈亮,0指示燈滅,根據(jù)狀態(tài)轉(zhuǎn)換規(guī)律轉(zhuǎn)化成真值表如2所示。

      3.程序設(shè)計

      本設(shè)計選用有限狀態(tài)機FSM(finite state machine)來進行設(shè)計,狀態(tài)機,與可完成相同功能的CPU相比,有限狀態(tài)機有其獨特的、難以超越的優(yōu)越性,利用VHDL的有限狀態(tài)機設(shè)計不同實用邏輯控制系統(tǒng)時,通常采用枚舉類型來定義狀態(tài)機的狀態(tài),這樣可以獲得可綜合的、高效的VHDL描述,并且使用多進程方式來描述狀態(tài)機的內(nèi)部邏輯。在程序設(shè)計中一般由說明部分、組合部分、時序部分組成,用TYPE定義新的數(shù)據(jù)類型和狀態(tài)名,以及在此新數(shù)據(jù)下定義的狀態(tài)變量。本設(shè)計采用狀態(tài)機來進行頂層文件的設(shè)計,狀態(tài)機的說明語句如下:

      type state is(S0,S1,S2,S3,S4,S5);

      signal presentstate,nextstate:state;

      該程序結(jié)構(gòu)體分成以下四個部分:

      3.1 分頻器秒脈沖的產(chǎn)生程序

      由于選擇芯片的某引腳輸出信號為4HZ,則進行四分頻就可以得到1HZ的信號,clk定義為輸入信號,sec為結(jié)構(gòu)體時序轉(zhuǎn)換的邏輯信號,則程序如下:

      ——get 1 hz clock pulse

      process(clk)

      begin

      if clk'event and clk='1'then q<=q+1;end if;

      sec<=q(2);——get 1 hz clock pulse

      end process;

      3.2 交通燈時序控制程序

      根據(jù)交通燈的狀態(tài)轉(zhuǎn)換規(guī)律表中需要有40秒、5秒、15秒三個轉(zhuǎn)換時間,為了方便狀態(tài)轉(zhuǎn)換描述,定義了timeout1、timeout2、timeout3三個時間標致信號,為1時表示時間結(jié)束,而且三個時間有先后順序,Presentstate <=nextstate達到了狀態(tài)在時序條件下轉(zhuǎn)換。則得到了流程圖如圖2所示。

      圖2 交通燈時序控制流程圖

      如下的時序控制程序:

      timing:process(sec)

      begin

      if sec'event and sec='1'then

      if tmp1=39 then timeout1<='1';timeout2<='0';timeout3<='0';tmp1<=0;

      else if timeout1='1'then

      if tmp2=4 then timeout2<='1';timeout1<='0';timeout3<='0';tmp2<=0;

      else if timeout2='1'then

      if tmp3=14 then timeout3<='1';timeout1<='0';timeout2<='0';tmp3<=0;

      else tmp3<=tmp3+1;end if;

      tmp2<=tmp2+1;end if;

      tmp1<=tmp1+1;end if;

      end if;

      Presentstate<=nextstate;

      end if;

      end process;

      3.3 交通燈的狀態(tài)轉(zhuǎn)換組合程序

      下面以狀態(tài)為S0來進行說明,timeout1 =‘0’表示40秒的時間未到,則仍然在此狀態(tài)循環(huán),否則轉(zhuǎn)到下一狀態(tài)S1,其組合邏輯控制程序如下:

      changestate:process(presentstate)

      Begin

      case presentstate is

      when S0 => if timeout1='0'then

      nextstate<=s0;

      ra<='0';ya<='0';ga<='1';lta<='0';

      rb<='1';yb<='0';gb<='0';ltb<='0';

      else nextstate<=s1;end if;

      ……

      end case;

      end process;

      4.仿真下載調(diào)試

      將編寫好的程序首先利用波形編輯器進行功能仿真,在分析波形仿真正常的情況,將輸入、輸出引腳進行鎖定。比如采用EPIC3T144C8,時鐘端連接17引腳,輸出端分別接100、99、98和83、82、79。編譯下載后可以觀察到交通燈的模擬狀態(tài)圖。

      參考文獻

      [1]彭汪昆等.FPGA的模糊控制交通燈控制方案設(shè)計[J].單片機與嵌入式系統(tǒng)應(yīng)用,2011(11):49-51.

      [2]王維松等.十字路口智能交通燈控制系統(tǒng)的FPGA實現(xiàn)[J].電子科技,2012(25):37-44.

      [3]馮競楠等.利用有限狀態(tài)機的交通燈控制系統(tǒng)設(shè)計與仿真[J].電子設(shè)計工程,2011(06):156-159.

      [4]楚巖等.基于FPGA的交通信號燈控制系統(tǒng)[J].現(xiàn)代電子技術(shù),2012(05):184-186.

      [5]袁海林等.基于FPGA的交通燈的設(shè)計與實現(xiàn)[J].電子質(zhì)量,2013(03):15-18.

      隆回县| 颍上县| 东方市| 崇明县| 青岛市| 林周县| 福清市| 城步| 泰州市| 黑龙江省| 新建县| 汝南县| 双鸭山市| 高邮市| 静乐县| 郸城县| 贵州省| 城口县| 鹤峰县| 临邑县| 岑溪市| 宜州市| 措美县| 横山县| 陵水| 七台河市| 孝感市| 南昌市| 年辖:市辖区| 寿宁县| 瓦房店市| 澎湖县| 佛冈县| 徐闻县| 庆元县| 渭南市| 遂平县| 平顶山市| 溧水县| 集安市| 景东|