新聞中心

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

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

作者: 時間:2018-07-26 來源:網絡 收藏

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

本文引用地址:http://butianyuan.cn/article/201807/384096.htm

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

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

(3)仿真:包括功能仿真、時序仿真和定時分析,可以利用軟件的仿真功能來驗證設計項目的邏輯功能是否正確。

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

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

2 智能交通燈的程序設計

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

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

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

2.2 各個模塊的程序設計及仿真

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

圖1 控制燈控制情況

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

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

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

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

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

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

2.3 頂層系統(tǒng)結構

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

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

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

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

(2)引腳配置和下載驗證。根據(jù)電路結構圖,在引腳對照表中查處需要I/O對應引腳號,在MAX+PLUSⅡ中,進行管腳配置,配置完引腳后,在對頂層設計進行一次全編譯,連接好硬件電路后即可下載就可以對目標芯片進行下載配置,再測試其功能。

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



評論


相關推薦

技術專區(qū)

關閉