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