基于VHDL的交通燈控制器設(shè)計
應(yīng)用VHDL語言設(shè)計數(shù)字系統(tǒng),大部分設(shè)計工作可在計算機上完成,從而縮短系統(tǒng)開發(fā)時間,提高工作效率。下面介紹基于VHDL設(shè)計交通燈控制器的一種方案,并給出源程序和仿真結(jié)果。
1 系統(tǒng)功能與要求
交通燈控制器控制兩個主干道交叉路口的交通,路口車輛多,直行信號、左轉(zhuǎn)彎信號分開顯示,a,b兩個主干道的通行時間相等,其中指示直行的綠燈亮30 s,指示左轉(zhuǎn)彎的綠燈亮12 s,綠燈變至紅燈時,黃燈亮3 s,以便于車輛能停在停車線內(nèi),紅燈信號的最后3 s相應(yīng)的黃燈也同時亮,以便提示駕駛?cè)藛T準備起步。在兩個主干道路口都配備傳感器用來檢測有無車輛通行。當兩個主干道都有車輛時,自動處于主干道a綠燈,主干道b紅燈的狀態(tài),然后輪流切換通行。當主干道a無車輛時,自動處于主干道b綠燈,主干道a紅燈的狀態(tài);反之亦然,以提高通行效率。
2 設(shè)計與仿真
根據(jù)交通燈控制器的功能與要求,將其總體電路分為分頻器、信號控制器兩個模塊。外部脈沖振蕩器的頻率選為32 768 kHz,經(jīng)分頻器分頻得1 Hz的信號,1 Hz信號用做信號控制器的計數(shù)脈沖,用VHDL設(shè)計組成交通燈控制器的分頻器、信號控制器兩個模塊,在QuartusⅡ開發(fā)平臺上,分別編譯兩個模塊的VHDL程序,然后用原理圖輸入法形成圖1所示的總體框圖。
其中信號控制器的VHDL程序如下:
其中,Sa,Sb分別是a,b路口傳感器的信號,aR,aY,aG,aLR,aLY,aLG分別代表控制主干道a的直行紅燈、黃燈、綠燈,左轉(zhuǎn)彎紅燈、黃燈、綠燈的信號;bR,bY,bG,bLR,bLY,bLG分別代表控制主干道b的直行紅燈、黃燈、綠燈,左轉(zhuǎn)彎紅燈、黃燈、綠燈的信號;aPR,aPG,bPR,bPG是人行道信號,enl是使能信號。enl=0時a,b兩路口紅燈同時亮,便于處理特殊情況。用QuartusⅡ?qū)Τ绦蚓幾g、仿真,得到的仿真波形如圖2所示,經(jīng)程序下載、實驗驗證,系統(tǒng)功能符合要求。
基于VHDL設(shè)計交通燈控制器,外圍電路少、功耗低、可靠性高,便于系統(tǒng)功能的修改,設(shè)計效率高。