新聞中心

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

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

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

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

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

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

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

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

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

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

2 智能交通燈的程序設計

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

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

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

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。當計數器時間為0時,由紅燈狀態(tài)跳轉到綠燈狀態(tài),當計數器時間到達3/8時,由綠燈狀態(tài)跳轉到黃燈狀態(tài)。當到達一半時間時,由黃燈狀態(tài)跳轉到紅燈狀態(tài)。當hold為1時,由任意狀態(tài)跳轉到緊急狀態(tài)。如圖1所示。

圖1 控制燈控制情況

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

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

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

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

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

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

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

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

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

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

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



評論


相關推薦

技術專區(qū)

關閉