新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于EDA的多路口交通控制系統(tǒng)研究

基于EDA的多路口交通控制系統(tǒng)研究

作者: 時(shí)間:2018-07-26 來源:網(wǎng)絡(luò) 收藏

1 軟件開發(fā)環(huán)境介紹Max+plusⅡ設(shè)計(jì)流程

本文引用地址:http://2s4d.com/article/201807/384096.htm

(1)設(shè)計(jì)輸入:可以采用原理圖輸入、HDL語言描述、EDIF網(wǎng)表輸入及波形輸入等幾種方式。

(2)編譯:先根據(jù)設(shè)計(jì)要求設(shè)定編譯參數(shù)和編譯策略,然后根據(jù)設(shè)定的參數(shù)和策略對(duì)設(shè)計(jì)項(xiàng)目進(jìn)行網(wǎng)表提取、邏輯綜合和器件適配,并產(chǎn)生報(bào)告文件、延時(shí)信息文件及編程文件,供分析仿真和編程使用。

(3)仿真:包括功能仿真、時(shí)序仿真和定時(shí)分析,可以利用軟件的仿真功能來驗(yàn)證設(shè)計(jì)項(xiàng)目的邏輯功能是否正確。

(4)編程與驗(yàn)證:用經(jīng)過仿真確認(rèn)后的編程文件通過編程器將設(shè)計(jì)下載到實(shí)際芯片中,最后測(cè)試芯片在系統(tǒng)中的實(shí)際運(yùn)行性能。

在設(shè)計(jì)過程中,如果出現(xiàn)錯(cuò)誤,則需重新回到設(shè)計(jì)輸入階段,改正錯(cuò)誤或調(diào)整電路后重復(fù)上述過程。

2 智能交通燈的程序設(shè)計(jì)

2.1 智能交通燈系統(tǒng)設(shè)計(jì)方案

十字路口設(shè)計(jì)兩組交通燈分別控制東西和南北兩個(gè)方向的交通。當(dāng)東西方向的紅燈亮?xí)r,南北方向?qū)?yīng)綠燈亮,過渡階段黃燈亮。交通燈維持變亮的時(shí)間取決于鍵盤輸入的控制鍵值。同理,當(dāng)南北方向的紅燈變亮?xí)r,東西方向的交通燈也遵循此邏輯。總體上由狀態(tài)機(jī)實(shí)現(xiàn)控制,本設(shè)計(jì)中使用兩個(gè)狀態(tài)機(jī)分別控制東西和南北兩個(gè)方向的交通。每個(gè)狀態(tài)機(jī)中都設(shè)有4個(gè)狀態(tài)分別對(duì)應(yīng)紅燈亮、綠燈亮、黃燈亮和出現(xiàn)緊急狀況時(shí)兩個(gè)方向上的紅燈同時(shí)變亮,停止倒計(jì)時(shí)的同時(shí)數(shù)碼管上出現(xiàn)閃爍。路口的繁忙程度是不一樣的,白天時(shí)的交通比較繁忙,因此,紅綠燈要變化快一些以便提高通過效率,減少交通擁堵。相反,夜晚交通稀疏,就需要紅綠燈變化慢,因此加入鍵盤控制程序來控制交通維持變亮狀態(tài)的持續(xù)時(shí)間。

基準(zhǔn)時(shí)鐘經(jīng)過分頻器之后,得到需要的時(shí)鐘頻率。狀態(tài)由控制器給出控制信號(hào)控制,輸出各種燈亮?xí)r間,在經(jīng)過分位后在數(shù)碼管里顯示出來。燈亮?xí)r間是由鍵盤輸入模塊給定的。

2.2 各個(gè)模塊的程序設(shè)計(jì)及仿真

(1)狀態(tài)機(jī)的程序設(shè)計(jì)及仿真。用兩個(gè)狀態(tài)機(jī)分別控制東西方向和南北方向上的交通。從鍵盤獲得紅、綠、黃燈的總時(shí)間,紅燈時(shí)間占1/2,綠燈時(shí)間占3/8,黃燈時(shí)間占1/8。紅燈狀態(tài)為S0,綠燈狀態(tài)為S1,黃燈狀態(tài)為S2,緊急狀態(tài)為S3。當(dāng)計(jì)數(shù)器時(shí)間為0時(shí),由紅燈狀態(tài)跳轉(zhuǎn)到綠燈狀態(tài),當(dāng)計(jì)數(shù)器時(shí)間到達(dá)3/8時(shí),由綠燈狀態(tài)跳轉(zhuǎn)到黃燈狀態(tài)。當(dāng)?shù)竭_(dá)一半時(shí)間時(shí),由黃燈狀態(tài)跳轉(zhuǎn)到紅燈狀態(tài)。當(dāng)hold為1時(shí),由任意狀態(tài)跳轉(zhuǎn)到緊急狀態(tài)。如圖1所示。

圖1 控制燈控制情況

(2)計(jì)數(shù)器的程序設(shè)計(jì)及仿真。計(jì)數(shù)器的主要功能是給狀態(tài)機(jī)提供時(shí)間比較值的輸入,根據(jù)鍵盤輸入值來決定計(jì)數(shù)值的大小,程序的端口設(shè)計(jì)為:

其中ckock為由分頻器得到的頻率為1Hz的時(shí)鐘信號(hào),reset為復(fù)位清零信號(hào),hold為緊急狀態(tài)切換信號(hào),當(dāng)hold為高電平時(shí),計(jì)數(shù)停止,keyin為鍵盤是鍵盤輸入值,countnum為計(jì)數(shù)輸出,即輸出到狀態(tài)機(jī)。

計(jì)數(shù)器在始終信號(hào)上升沿的驅(qū)動(dòng)下開始計(jì)數(shù),計(jì)數(shù)范圍是由鍵盤輸入值keyin給定。計(jì)數(shù)器在時(shí)鐘信號(hào)clock上升沿開始計(jì)數(shù),在reset作用下可以清零,當(dāng)hold為高電平時(shí),停止計(jì)數(shù)。當(dāng)計(jì)數(shù)值和鍵盤輸入值相等時(shí)計(jì)數(shù)器清零,重新計(jì)數(shù)。

(3)分位模塊的程序設(shè)計(jì)及仿真。分位模塊的主要功能是把計(jì)數(shù)器得到的時(shí)間數(shù)據(jù)分位后,將時(shí)間數(shù)據(jù)在數(shù)碼管上顯示出來。分位器的范圍為0~99s。從程序可以看出,程序把0到99之間的整數(shù)分成那個(gè)整數(shù)的個(gè)位數(shù)字和十位數(shù)字,例如將87分位后,程序輸出兩個(gè)數(shù)值,即numa將輸出8,為十位,numb將輸出7,為個(gè)位。當(dāng)輸入一個(gè)兩位數(shù)時(shí),這個(gè)兩位數(shù)據(jù)就會(huì)被分成十位和個(gè)位數(shù)值輸出。此程序達(dá)到了設(shè)計(jì)要求的功能。

(4)分頻模塊的程序設(shè)計(jì)及仿真。分頻模塊是對(duì)系統(tǒng)基準(zhǔn)時(shí)鐘信號(hào)進(jìn)行分頻,得到其他模塊需要的時(shí)鐘信號(hào),主要是由一個(gè)計(jì)數(shù)器來實(shí)現(xiàn)的。是利用計(jì)數(shù)器對(duì)系統(tǒng)時(shí)鐘進(jìn)行1024分頻,分頻得到占空比為50%的方波。CNT實(shí)現(xiàn)計(jì)數(shù)功能,CNT從0開始計(jì)數(shù),當(dāng)計(jì)數(shù)到511時(shí),信號(hào)CLK1HZ翻轉(zhuǎn)一次,這樣就可以得到占空比為50%的方波。

(5)顯示譯碼模塊。顯示譯碼模塊的功能是將分位后的時(shí)間數(shù)據(jù)進(jìn)行七段譯碼,便于和七段數(shù)碼管相連。在時(shí)鐘信號(hào)的驅(qū)動(dòng)下,進(jìn)行動(dòng)態(tài)譯碼,將輸入的0~9整數(shù)型數(shù)據(jù)譯成七段數(shù)碼管對(duì)應(yīng)的二進(jìn)制代碼。程序?qū)崿F(xiàn)了設(shè)計(jì)要求,將輸入的十進(jìn)制數(shù)據(jù)轉(zhuǎn)換為七段譯碼。在CLK每來一個(gè)上升沿,就對(duì)數(shù)據(jù)NUM進(jìn)行七段譯碼,實(shí)現(xiàn)了動(dòng)態(tài)譯碼。

2.3 頂層系統(tǒng)結(jié)構(gòu)

各個(gè)功能模塊已經(jīng)實(shí)現(xiàn),用MAX+PlusⅡ軟件的原理圖輸入法,將所有生成模塊按其功能連接起來,進(jìn)行總體系統(tǒng)功能的測(cè)試。

系統(tǒng)時(shí)鐘信號(hào)經(jīng)過分頻器之后,輸入到計(jì)數(shù)器,計(jì)數(shù)器在時(shí)鐘信號(hào)驅(qū)動(dòng)下開始計(jì)數(shù),令時(shí)鐘信號(hào)為1Hz頻率的信號(hào),以便計(jì)數(shù)時(shí)間為1s。計(jì)數(shù)器的計(jì)數(shù)范圍是由鍵盤輸入數(shù)據(jù)keyin來決定的。計(jì)數(shù)器將計(jì)數(shù)得到的數(shù)據(jù)輸出給兩個(gè)狀態(tài)機(jī),狀態(tài)機(jī)根據(jù)計(jì)數(shù)器的計(jì)數(shù)值,實(shí)現(xiàn)各個(gè)狀態(tài)之間的轉(zhuǎn)換,在每個(gè)狀態(tài)時(shí),記錄各種狀態(tài)的保持時(shí)間,即各種燈被點(diǎn)亮的時(shí)間,將時(shí)間值輸出到分位模塊,分位后經(jīng)過動(dòng)態(tài)譯碼模塊輸出到七段數(shù)碼管,同時(shí)將三種緊急狀態(tài)標(biāo)志信號(hào)輸出到發(fā)光二極管。系統(tǒng)的功能仿真實(shí)現(xiàn)。

3 硬件環(huán)境和目標(biāo)芯片的介紹

(1)GW48型實(shí)驗(yàn)開發(fā)系統(tǒng)介紹。GW48實(shí)驗(yàn)系統(tǒng)是可重置的,有12種電路結(jié)構(gòu),本設(shè)計(jì)將采用NO.5電路結(jié)構(gòu)。①普通內(nèi)部邏輯設(shè)計(jì)模塊。②RAM/ROM接口。③VGA視頻接口。④PS/2鍵盤接口。⑤A/D轉(zhuǎn)換接口。⑥D(zhuǎn)/A轉(zhuǎn)換接口。⑦LM311接口。⑧單片機(jī)接口。⑨RS232通信接口。

(2)引腳配置和下載驗(yàn)證。根據(jù)電路結(jié)構(gòu)圖,在引腳對(duì)照表中查處需要I/O對(duì)應(yīng)引腳號(hào),在MAX+PLUSⅡ中,進(jìn)行管腳配置,配置完引腳后,在對(duì)頂層設(shè)計(jì)進(jìn)行一次全編譯,連接好硬件電路后即可下載就可以對(duì)目標(biāo)芯片進(jìn)行下載配置,再測(cè)試其功能。

熟悉VHDL硬件語言并熟練的進(jìn)行編程,體現(xiàn)出MAX+PLUSⅡ功能強(qiáng)大,直觀便捷和操作靈活文本輸入設(shè)計(jì)方法,是應(yīng)用最為廣泛、最基本的設(shè)計(jì)方法。直接清楚的功能仿真和時(shí)序仿真,為不同的程序提供仿真需要。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉