杜玉遠(yuǎn)
CPLD是一種復(fù)雜可編程邏輯器件,具有高集成度、高密度、高速度的特點(diǎn)。將原有采用中小規(guī)模集成電路(LSI)設(shè)計(jì)的電路改造為由CPLD實(shí)現(xiàn),既可以提高系統(tǒng)的集成度,又可以提高系統(tǒng)的可靠性。另外,由于CPLD具有在系統(tǒng)編程的功能,可在不改變印刷電路板的情況下改變電路功能,這樣可以為系統(tǒng)提供更多的冗余功能。本文介紹一種采用CPLD設(shè)計(jì)實(shí)現(xiàn)智能交通信號(hào)燈控制器方法,改變了原有控制器的體積較大、故障率高的缺點(diǎn),并且增加了智能控制功能,使交通信號(hào)燈控制器具有更廣泛的適應(yīng)性。
工作原理
目前,在十字路口等待通行信號(hào)時(shí),經(jīng)常遇到在沒有車輛需要通行的路口方向是通行的信號(hào),而在有車等待的路口方向卻是亮著紅燈的情況。這樣既浪費(fèi)了司乘人員的時(shí)間,也浪費(fèi)了馬路的效率。另外,由于汽車在等待信號(hào)時(shí)還會(huì)排出尾氣,也不利于環(huán)保。為此,在采用CPLD設(shè)計(jì)新型交通信號(hào)燈控制器時(shí),在控制器中增加了車輛檢測(cè)電路。新的智能交通信號(hào)燈控制器的原理框圖如圖1所示。從圖1中可以看出,控制器由車輛檢測(cè)電路、定時(shí)電路、輸出驅(qū)動(dòng)電路和主控制電路組成。車輛檢測(cè)電路由傳感器和波形整形器構(gòu)成,整個(gè)車輛檢測(cè)電路有四路相同的支路構(gòu)成,四個(gè)傳感器被安放在十字路口停車線的位置,當(dāng)有車輛到達(dá)路口時(shí),就由相應(yīng)路口的傳感器產(chǎn)生請(qǐng)求通過信號(hào),交通燈控制器根據(jù)此信號(hào)確定信號(hào)燈的變換。同時(shí),還假設(shè)十字路口是由一條主干道和一條次干道匯合而成,并且主干道的車流量比次干道的車流量大??紤]到主、次干道車流量不同,主干道每次放行時(shí)間較長,次干道每次放行時(shí)間較短。當(dāng)綠燈轉(zhuǎn)換成紅燈時(shí),中間有一段黃燈亮的時(shí)間作為信號(hào)過渡期,以便車輛有時(shí)間??吭谕\嚲€之外。這里設(shè)主、次干道放行時(shí)間分別為45s、25s,過渡時(shí)間為5s。定時(shí)電路用來完成這三種時(shí)間定時(shí)工作。主控電路將根據(jù)傳感器信號(hào)和定時(shí)時(shí)間的狀態(tài)控制信號(hào)燈的切換。輸出驅(qū)動(dòng)電路由光電耦合器和繼電器驅(qū)動(dòng)電路組成,用來控制信號(hào)燈開關(guān)。
智能交通信號(hào)燈控制器的實(shí)現(xiàn)
根據(jù)上述智能交通信號(hào)燈控制器的工作原理,可以得到如圖2所示的智能交通信號(hào)燈控制器的控制狀態(tài)轉(zhuǎn)換圖。為了設(shè)計(jì)實(shí)現(xiàn)智能交通信號(hào)燈控制器,引入邏輯變量和邏輯狀態(tài)表示圖2中的狀態(tài)轉(zhuǎn)換,主干道和次干道的傳感器檢測(cè)電路的輸出用邏輯變量A、B表示,A代表主干道的傳感器輸出有效,即主干道有車要求通過,B代表次干道的傳感器輸出有效,表示次干道有車要求通過。定時(shí)電路的輸出用邏輯變量L、S、P表示,它們分別代表45s、25s、5s定時(shí)器輸出狀態(tài),當(dāng)這些定時(shí)器定時(shí)時(shí)間到時(shí),對(duì)應(yīng)的邏輯變量L、S、P有效。主、次干道的通行狀態(tài)用S0、S1、S2、S3 四個(gè)狀態(tài)表示,其中用S0=00表示主干道通行狀態(tài),用S1=01表示主干道停車狀態(tài)、用S2=11表示次干道通行狀態(tài),用S3=10表示次干道停車狀態(tài)。用上述邏輯變量和邏輯狀態(tài)替換圖2中的邏輯狀態(tài)轉(zhuǎn)換圖,就可以得到用邏輯變量來表示的狀態(tài)轉(zhuǎn)換圖。這里由于篇幅有限省略此圖,根據(jù)狀態(tài)轉(zhuǎn)換圖,可以得到如表1所示的狀態(tài)轉(zhuǎn)換表。狀態(tài)轉(zhuǎn)換表中的Q1n 、Q2 n表示觸發(fā)器現(xiàn)態(tài),Q1 n+1、Q 2n+1表示次態(tài)觸發(fā)器,表1中x代表任意態(tài)。
為實(shí)現(xiàn)表1所示的狀態(tài)轉(zhuǎn)換,根據(jù)表1 可以得到關(guān)于Q1n+1、Q2n+1的狀態(tài)方程,狀態(tài)方程經(jīng)過化簡(jiǎn)表示如下:
為實(shí)現(xiàn)這兩個(gè)的狀態(tài)方程,選用兩個(gè)JK觸發(fā)器作為狀態(tài)控制觸發(fā)器,將上述Q1n+1、Q2n+1的狀態(tài)方程與JK觸發(fā)器的特征方程對(duì)照處理,可以得到兩個(gè)JK觸發(fā)器的驅(qū)動(dòng)方程如下:
根據(jù)上述表達(dá)式,在MAXPLUS Ⅱ系統(tǒng)中,采用原理圖輸入方式設(shè)計(jì)的主控電路圖如圖3所示。
在主控電路中,輸入信號(hào)L、S、P為定時(shí)電路的輸出,它們分別為45s、25s、5s定時(shí)時(shí)間到的輸出信號(hào),在定時(shí)電路中,采用1Hz的信號(hào)作為時(shí)基信號(hào),分別設(shè)計(jì)45進(jìn)制,25進(jìn)制和5進(jìn)制三個(gè)計(jì)數(shù)器,就可以實(shí)現(xiàn)45s、25s、5s的定時(shí)信號(hào)、以25進(jìn)制計(jì)數(shù)器為例,采用VHDL語言為輸入方式的源程序見本刊網(wǎng)站。其它進(jìn)制計(jì)數(shù)器的實(shí)現(xiàn)只需修改計(jì)數(shù)器的終值就可以實(shí)現(xiàn),這里不再重述。
主控電路的狀態(tài)輸出經(jīng)過譯碼電路,產(chǎn)生交通信號(hào)燈的開關(guān)控制信號(hào)。根據(jù)狀態(tài)控制電路所產(chǎn)生的不同狀態(tài),來完成主干道和次干道的紅燈、綠燈、黃燈之間的切換操作,根據(jù)圖2給出的狀態(tài)轉(zhuǎn)換圖,可以得出如表2所示交通信號(hào)燈開關(guān)狀態(tài)的邏輯真值表。其中“1”表示信號(hào)燈亮,“0”表示信號(hào)燈滅。由此設(shè)計(jì)的譯碼電路如圖4所示。
將上述各單元連接起來,就可以得到智能交通燈控制器設(shè)計(jì)的頂層圖,如圖5所示。所設(shè)計(jì)的頂層圖包括5個(gè)單元,其中CNT45、CNT25、CNT5是3個(gè)計(jì)數(shù)器,實(shí)現(xiàn)定時(shí)功能,Control 是主控電路所對(duì)應(yīng)的模塊,decoder 是信號(hào)燈譯碼電路對(duì)應(yīng)的模塊。圖5中的計(jì)數(shù)器模塊的計(jì)數(shù)輸出端這里沒有使用,當(dāng)需要有定時(shí)顯示時(shí),可以將其輸出控制時(shí)間顯示。
結(jié) 語
本文所給出的智能交通燈控制器的設(shè)計(jì)過程是采用自底而上(bottom-up)的設(shè)計(jì)方法,在初學(xué)EDA設(shè)計(jì)時(shí),這是一種較為實(shí)用的設(shè)計(jì)方法,設(shè)計(jì)者可以很容易地從中小規(guī)模集成電路設(shè)計(jì)轉(zhuǎn)為超大規(guī)模集成電路設(shè)計(jì)。與自底而上設(shè)計(jì)方法相對(duì)的還有自頂而下(top-down)的設(shè)計(jì)方法,這種設(shè)計(jì)方法一般被用在開發(fā)FPGA芯片,設(shè)計(jì)較為復(fù)雜時(shí)序電路時(shí)使用。
在本文所給出設(shè)計(jì)過程中,采用了兩種設(shè)計(jì)輸入方法:即原理圖輸入和VHDL語言輸入。在對(duì)CPLD開發(fā)的過程中經(jīng)常采用這種混合輸入方式,設(shè)計(jì)者可以根據(jù)需要對(duì)不同電路,采用比較適宜的設(shè)計(jì)輸入方式,來提高設(shè)計(jì)效率。