999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于VHDL語言有限狀態機的交通燈控制系統設計

2009-04-29 00:00:00徐大詔
電腦知識與技術 2009年27期

摘要:根據交叉路口交通燈控制的要求,以可編程邏輯器件(FPGA)為核心,應用VHDL語言和有限狀態機的方法設計交通信號燈控制系統,在MAX+PLUS II環境下進行了仿真,結果顯示該設計符合設計要求, 并在實驗箱上進行測試,證實該設計方法切實可行。

關鍵詞:交通燈;VHDL;有限狀態機;仿真

中圖分類號:TP391文獻標識碼:A文章編號:1009-3044(2009)27-7796-02

Design of Traffic Light Control System based on VHDL Finite State Machine

XU Da-zhao

(Jiangsu Vocational and Technical College of Finance Economics, Huaian 223003, China)

Abstract: According to intersection traffic light control requirements, the paper puts forward a design of traffic light control system with VHDL and finite state machine. Under the MAX + PLUS II simulation, the results show that this design meets the design requirements, then carries on the test in the experiment box, confirmsthat this design method is practical and feasible.

Key words: traffic light; VHDL; finite state machine; simulation

隨著電子技術的發展,特別是大規模集成電路的研制和發展,電子電路的設計變得越來越復雜,使用“語言”進行電子設計已成為一種趨勢[1]。VHDL語言是電子設計的主流硬件描述語言,它更適合進行行為描述,這種方式使得設計者專注于電路功能的設計,而不必過多地考慮具體的硬件結構,從而很容易實現自頂向下的設計流程。在進行數字系統設計的時候,如果實現一個控制功能,通常會選擇狀態機,因為無論是與基于VHDL的其他設計方案相比,還是與可完成相似功能的CPU相比,在很多方面有限狀態機都有難以超越的優越性。

1 系統功能要求分析

本系統要求一個由一條主干道和一條支道公路的匯合點形成的十字交叉路口的智能交通燈控制器,實現交通無人自動管理。要求是優先保證主干道的通暢,因此,平時處于“主干道綠燈,支道紅燈”的狀態,只有在支到有車輛要穿行主干道時,才將交通切換“主干道紅燈,支道綠燈”的狀態。此外,主干道和支道每次通行的時間不得低于30s,而在兩個狀態交換過程出現的“主黃,支紅”和“主紅,支黃”狀態,持續時間都為4s。根據交通信號燈控制的要求,我們把它分解為定時器和控制器兩個主要部分,其原理框圖如圖1所示。

圖中MG、MY、MR分別表示主干道上的綠燈、黃燈、紅燈,BG、BY、BR分別表示支道上的綠燈、黃燈、紅燈,它們的值為“1”時表示燈亮,為“0”時表示燈滅;sb表示支道傳感器是否檢測車輛存在,sb為“1”時表示有車,為“0”時表示無車;定時器在控制器提供的計時信號en和清零信號clr的作用下完成定時功能,并向控制器提供30s、4s的計時信號;控制器是本系統的核心,它的作用是根據支道傳感器和定時器的信號,判斷、調整和控制整個系統的狀態,并控制定時電路工作,提供適當的燈光控制信號。

2 交通燈控制器的程序設計

2.1 有限狀態機的建立

有限狀態機(Finite State Machine,簡稱FSM)是一類很重要的時序電路,是許多數字系統的核心部件[3],也是實時系統設計中的一種數學模型,是一種重要的、易于建立的、應用比較廣泛的、以描述控制特性為主的建模方法,它可以應用于從系統分析到設計的所有階段。有限狀態機的優點在于簡單易用,狀態間的關系清晰直觀。建立有限狀態機主要有兩種方法:“狀態轉移圖”和“狀態轉移表”,在此使用狀態轉移圖來描述控制器的工作過程。

根據主干道和支道的交通燈的變化情況,可以定義這樣四種狀態:S0為初始狀態,主干道綠燈亮,支道紅燈亮;S1為主干道黃燈亮,支道紅燈亮;S2為主干道紅燈亮,支道綠燈亮;S3為主干道紅燈亮,支道黃燈亮[4]。這四種狀態的轉換關系如圖2所示。在狀態轉換的過程中,有這樣一個規律:當進行狀態轉換時,定時器必須清零,此時clr為0,en為0;保持狀態時,定時器一直進行定時,此時clr為1,en為1。

2.2 有限狀態機的描述方式

VHDL沒有對狀態機的描述規定一般的格式,但是為了使綜合工具從VHDL描述識別并綜合出狀態機,需要遵循一定的編碼風格,基本的FSM的編碼風格是用CASE語句或其他等價方法來描述。一個有限狀態機總是可以被分成次態譯碼、狀態寄存器、輸出譯碼三個模塊。因此,有限狀態機描述方式有如下三種:三進程描述、雙進程描述和單進程描述,但是用VHDL描述狀態機一般采用進程(process)描述:一個是時鐘進程,控制狀態機在時鐘有效沿根據條件得到下一狀態并進行狀態遷移;另一個進程是組合進程,不受時鐘控制,由輸出相關的信號)觸發,該進程根據觸發信號決定狀態機的輸出信號值[5]。

2.3 交通燈控制器的VHDL程序[6]

根據交通信號燈控制器的狀態轉移圖和有限狀態機的描述方式,在此采用雙進程描述方式,寫出交通燈控制器的VHDL程序如下:

LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

ENTITY jtd IS

PORT

(clk,sb,reset: INSTD_LOGIC;

MR,MY,MG,BR,BY,BG: OUTSTD_LOGIC);

END jtd;

ARCHITECTURE art OF jtdIS

type state_type is (S0,S1,S2,S3);

SIGNAL state : state_type;

BEGIN

change_state:PROCESS (CLK) --CLK為敏感信號量

VARIABLEs: integer range0to 255;--s為秒定時器

VARIABLEclr,en :bit;--clr,en為秒定時器使能信號

BEGIN

IF reset = '1' THENstate<=S0;

ELSIF (clk'event and clk='1') THEN

IFclr='0' THENs:=0;-- clr為0,定時器清零

ELSIF en='0'THENs:=s;-- en為0,定時器保持不變

ELSEs:=s+1;--clr為1,en為1時,正常計時

ENDIF;

CASE state IS

WHEN S0=> IF S<30THEN state<=S0;clr:='1';en:='1';

--主干道綠燈持續時間未到30s,維持S0狀態

ELSIF (S>=30 AND sb='0')THEN state<=S0;clr:='1';en:='1';

--已過30s但支道無車,維持S0狀態

ELSIF (S>=30 AND sb='1') THEN state<=S1;clr:='0';en:='0';

--已過30s且支道有車,轉換到S1狀態

END IF;

WHEN S1=> IF S=4 THENstate<=S2;clr:='0';en:='0';--已過4s,轉換到S2狀態

ELSEstate<=S1;clr:='1';en:='1';--未到4s,維持S1狀態

END IF;

WHEN S2 => IF S<30THEN state<=S2;clr:='1';en:='1';

--支道綠燈持續時間未到30s,維持S2狀態

ELSIF (S>=30 AND sb='1') THEN state<=S2;clr:='1';en:='1';

--已過30s但支道有車,維持S2狀態

ELSif (S>=30 AND sb='0') thenstate<=S3;clr:='0';en:='0';

--已到30s且支道無車,轉換到S3狀態

END IF;

WHEN S3 => IF S=4 THENstate<=S0;clr:='0';en:='0';--已過4s,轉換到S0狀態

ELSEstate<=S3;clr:='1';en:='1';-- 未到4s,維持S3狀態

END IF;

END CASE;

END IF;

END PROCESS change_state;

output_process:PROCESS (state)

BEGIN

CASE state IS

WHEN S0 =>MR<='0';MY<='0';MG<='1';BR<='1';BY<='0';BG<='0';

--主干道綠燈亮,支道紅燈亮

WHEN S1 =>MR<='0';MY<='1';MG<='0';BR<='1';BY<='0';BG<='0';

--主干道黃燈亮,支道紅燈亮

WHEN S2 =>MR<='1';MY<='0';MG<='0';BR<='0';BY<='0';BG<='1';

WHEN S3 =>MR<='1';MY<='0';MG<='0';BR<='0';BY<='1';BG<='0';

-- 主干道紅燈亮,支道黃燈亮

END CASE;

END PROCESS output_process;

END art;

3 系統仿真

在MAX+PLUS II環境下進行了仿真[7-8],其時序仿真圖如圖3所示。

4 結束語

仿真結果表明,本設計按要求實現了交通燈的控制。把程序下載到實驗箱的FPGA芯片(EP1K30QC208-3)上,進行硬件測試,發現電路工作正常,控制結果完全符合要求。

參考文獻:

[1] 史小波,程夢璋,許會芳.集成電路設計VHDL教程[M]. 北京清華大學出版社,2005:12-15.

[2] 文暢.基于FPGA/CPLD和VHDL語言的交通燈控制系統設計[J].電腦知識與技術,2007,(3).

[3] 譚會生,張昌凡.EDA技術及應用[M]西安:西安電子科技大學出版社,2004:198-199.

[4] 田瑞利,陳海濱.基于VHDL有限狀態機的交通信號燈控制系統設計[J].廣州航海高等專科學校學報,2008,15(3)31-33.

[5] 潘松, 黃繼業. EDA技術實用教程[M].北京:科學出版社, 2002:170-174.

[6] 徐春嬌. 基于VHDL 狀態機設計的智能交通控制燈[J].國外電子元器件,2007(2):31-35。

[7] 黃正謹.CPLD系統設計技術入門與應用[M].北京:電子工業出版社,2002:167-210.

[8] 羅苑棠.CPLD/FPGA常用模塊與綜合系統設計實例精講[M].北京:電子工業出版社,2007:116-146.

主站蜘蛛池模板: swag国产精品| 欧美日本在线播放| 亚洲AV免费一区二区三区| 色综合成人| 日韩在线中文| 麻豆a级片| 日本三级精品| 日韩第九页| 亚洲三级影院| 国产亚洲精| 男女性色大片免费网站| 青青青国产在线播放| 亚洲美女一区| 毛片免费视频| 国产一区亚洲一区| 亚洲综合欧美在线一区在线播放| 成人免费午间影院在线观看| 亚洲欧美精品一中文字幕| 另类专区亚洲| 亚洲午夜福利在线| 91伊人国产| 丰满人妻一区二区三区视频| 99re精彩视频| 9丨情侣偷在线精品国产| 久久精品丝袜| 国产精品自在在线午夜| 亚洲小视频网站| 亚洲无码37.| 亚洲另类国产欧美一区二区| 国产成人亚洲欧美激情| 日韩久久精品无码aV| 欧美日韩中文国产va另类| 五月婷婷亚洲综合| 亚洲一区二区成人| 一级在线毛片| 婷五月综合| 99热国产这里只有精品无卡顿"| 国产高清精品在线91| 自拍偷拍欧美日韩| 伊人网址在线| 国产va欧美va在线观看| 国产办公室秘书无码精品| 国产成人综合欧美精品久久| 任我操在线视频| 嫩草在线视频| 欧美一级一级做性视频| 国产在线精品99一区不卡| 国产正在播放| 国产日本一区二区三区| 午夜爽爽视频| 国产乱码精品一区二区三区中文| 在线色综合| 欧美a在线看| 亚洲av综合网| 国产成人综合日韩精品无码首页| 97se亚洲综合| 99热这里只有精品久久免费| 欧洲精品视频在线观看| 国产无码高清视频不卡| 亚洲高清无码精品| 午夜福利无码一区二区| 国产女同自拍视频| 欧美国产日韩在线| 亚洲无码高清一区| 欧美日韩资源| 免费毛片全部不收费的| 免费在线国产一区二区三区精品 | 国产99精品视频| 色欲色欲久久综合网| yy6080理论大片一级久久| 中文字幕无码av专区久久| 一级香蕉视频在线观看| 天天视频在线91频| 国产免费网址| 青草娱乐极品免费视频| 综合色婷婷| 一级爆乳无码av| 亚洲精品成人7777在线观看| 欧美色图久久| 成人综合网址| 伊人久久大香线蕉aⅴ色| 91午夜福利在线观看|