隨著我國經濟的快速發展,車輛擁有量也隨之急劇增加,再加上人口數量的膨脹,城市的交通擁擠問題變得日益突出。如何使交通燈" title="交通燈">交通燈的控制更加合理,使現有的交通資源發揮更大的效益,已經成為城市管理者和科技工作者共同關心的問題。為此,我們設計開發了一個交通燈控制系統,由于該系統采用VHDL語言自頂向下的設計方法,利用可編程邏輯器件CPLD" title="CPLD">CPLD來實現,通過外部輸入可方便地設定交通燈的延遲時間,使交通燈控制數字電路設計得到了優化,提高了系統的靈活性、可靠性和可擴展性。該系統可以較好地緩解交通壓力,并可實現對突發事件進行緊急處理。
在數字系統設計領域,電子設計自動化(EDA)工具已經成為主要的設計手段,隨著硬件描述語言VHDL和可編程邏輯器件CPLD的廣泛應用,使數字電路的設計得到了優化,并且具有很強的設計和仿真功能。
1 系統原理及方案
交通信號燈是由交通燈控制器控制其紅綠燈周期變化的,現在的大部分十字路口交通燈采用的都是固定周期,由于實際路況較為復雜,不能有效地實時對時間資源的合理調配,達到緩解交通的目的。本文設計的交通燈控制系統的周期可以改變,黃燈和東西方向以及南北方向紅燈時間由外部輸入設定,綠燈由系統依據設定值自動計算。
交通燈控制器控制兩個方向交叉路口的交通,以秒為單位,采用倒計時的方式顯示通行或者禁止通行的剩余時間。系統設置外部輸入復位信號,復位信號有效時,控制信號處于東西方向綠燈狀態,并讀取設定輸入值,再將復位信號返回無效狀態后,系統按新讀入的設定值運行,綠燈變至紅燈時,黃燈亮,以便于車輛能停在停車線內。如果能夠與傳感器相結合就具有智能功能,能夠根據當時的路況的隨時做出相應的調整。交通燈工作時序見圖1。
交通燈在東西南北方向安裝信號燈和數碼管,兩個方向共6個信號燈,4個數碼管。下表1是交通燈控制系統紅燈與黃燈可供改變的值。
2 系統硬件設計
復雜可編程器件(CPLD)采用CMOS EPROM、E2PROM和快閃存儲器等編程技術,構成了高密度、高速度和低功耗的可編程邏輯器件。本文設計的交通燈控制器采用的是Lattice公司提供的CPLD產品-ISPLSI 1032,一片ISPLSI1032中共有192個寄存器,64個I/O管腳,8個特定輸入輸出管腳,4個特定輸入時鐘管腳和一個全局布線池。該器件所需的時鐘脈沖信號由外部電路提供,設為16MHz。
本文設計的交通燈用兩組紅黃綠三色的發光數碼管LED作為兩方向的紅黃綠燈,用兩組數碼管作為東西和南北方向的倒計時顯示,用一個七位的撥動開關作為外部按鍵輸入,還需要741s47譯碼器驅動數碼管來實現數字的倒計時顯示。
撥動開關高電平位表示"1",低電平表示"0",復位信號占撥動開關的一位,有"1"、"0"兩種狀態;東西方向和南北方向的紅燈以及黃燈各占兩位,各有"00"、"01"、"10"、"11"四種狀態,相對應表1中的四種時間。設計框圖如下:
3 系統軟件設計及實現
3.1 頂層設計
根據交通燈控制系統的要求,我們將主控電路分為分頻器、信號控制器兩個模塊,在isplever開發平臺上,分別編譯這兩個模塊的VHDL程序,然后用原理圖輸入法做出項層設計模塊(見圖3),其中輸入的信號有16MHz的基準時鐘脈沖、設定值輸入及復位信號;輸出信號包括兩個方向的綠燈、黃燈、紅燈控制信號,倒計時計數器的十位、個位的8421BCD碼信號。
3.2 分頻器模塊
分頻器模塊是對輸入16MHz的脈沖進行分頻,把這個固定頻率的時鐘脈沖通過分頻轉化為低頻率的脈沖,得到的1Hz信號用作控制器的時鐘信號。圖4為分頻器模塊的框圖。下面為分頻主要程序:
3.3 控制器模塊
控制器模塊的功能是控制信號燈的亮滅和數碼管的顯示。對于控制器模塊,其輸入信號為1Hz的方波信號、復位信號、黃燈和東西方向紅燈和南北方向紅燈時間設定值。輸出信號包括東西方向和南北方向綠燈、黃燈、紅燈控制信號。圖5為控制器模塊的框圖。控制器模塊程序
圖中:cp、reset分別為時鐘脈沖和復位輸入信號。yellow_1,yellow_0,ew_red_l,ew_red_0,sn_red_1,sn_red_0分別為黃燈和東西方向紅燈和南北方向紅燈可調輸入變量。
r_ew,y_ew,g_ew,r_8n,y_sn,g_sn分別為東西方向和南北方向的紅綠燈控制信號。
qhew,qlew,qhsn,qlsn則是東西方向和南北方向的紅綠燈倒數計時顯示信號。
控制器模塊工作流程:
先由外部開關控制可調的南北方向紅燈、東西方向紅燈和黃燈時間的高位和低位。 (設南北方向紅燈通行時間為X、東西方向紅燈通行時間為Y、黃燈時間通行時間為Z,一個總周期的時間為X+Y)
首先東西方向通行,東西方向綠燈亮,南北方向紅燈亮,且兩個方向上的倒數計時顯示器由X向下作減法計時。當倒計時顯示器減法計時到Z時,東西方向黃燈亮,南北方向繼續紅燈。當兩個方向的的倒計時顯示器減法計時到1,然后由1變為Y后,轉為南北方向通行。
南北方向通行:東西方向紅燈亮,南北方向綠燈亮,且兩個方向上的倒計時顯示器由Y向下作減法計時。當倒計時顯示器減法計時到z時,南北方向黃燈亮,東西方向繼續紅燈。當兩個方向的的倒計時顯示器減法計時到1,然后由1變為X后,轉為東西方向通行。如此交替運行。
3.4 仿真結果
對控制器模塊的VHDL程序利用ispLEVER輸入如下的一測試向量:
在isp[EVER平臺上進行仿真,在波形觀察器的窗口觀察仿真結果。對應上面仿真向量的仿真波形如圖6所示,改變仿真向量可以做出其他仿真波形,結果都顯示基于VHDL語言的交通燈控制器的硬件實現方法是可行的。
3.5 軟件到硬件的過度
Lattice器件的在系統編程是借助ispVM system軟件來實現的。ispVM SystemTM是一個綜合的將設計下載到器件的軟件包。運用這一完整的器件編程工具快速簡便地通過i spSTREAMTM將編寫好的程序燒寫到可編程邏輯器件CPLD上,實現軟件到硬件的過渡。
4 結束語
本設計由于采用自頂向下法設計交通燈控制器,合理地處理燈時分配,分頻,控制顯示與編碼的相互關系,采用VHDL語言層次化和模塊化的設計方法,減少了設計芯片的數量、減少系統開發周期,降低了功耗,可以通過改變程序或著外部輸入來控制交通燈,經過調試,運行正常。此設計是基于硬件描述語言VHDL,借助CPLD器件完成的數字系統的設計,顯示了可編程器件廣闊前景,加之工藝的改進,可編程邏輯器件的集成度和速度將進一步提高,性能將進一步完善。