前言 從最早的手牽皮帶到20世紀50年代的電氣控制,從采用計算機控制到現代化的電子定時監控,交通信號燈在科學化、自動化上不斷地更新、發展和完善。 交通指揮燈是非裔美國人加萊特?摩根在1923年發明的。此前,鐵路交通已經使用自動轉換的燈光信號有一段時間了。但是由于火車是按固定的時刻表以單列方式運行的,而且火車要停下來不是很容易,因此鐵路上使用的信號只有一種命令:通行。公路交通的紅綠燈則不一樣,它的職責在很大程度上是要告訴汽車司機把車輛停下來。新式的紅綠燈能將闖紅燈的人拍照下來。犯事的司機不久就會收到罰款單。有的紅綠燈還具備監測車輛行駛速度的功能。 目前城市交通控制研究的新發展主要體現在城市交通網絡的各個方面:
區域交通信號燈和城市快速公路匝道口的新的控制方法上;實現區域和快速公路的集成控制;采用動態路由導航與交通網絡控制結合:以實現先進車輛控制系統AvcS為主的智能交通系統(ITS);以實現先進交通管理系統ATMS和先進駕駛員信息系統ATIS為主的城市多智能體交通控制系統;以及一些輔助的交通策略如道路自動計費、公共交通優先等。
可以說,在近百年的發展中,道路交通信號控制系統經歷了無感應控制到有感應控制、手動控制到自動控制再到智能控制、單點控制(點控)到干線控制(線控)再到區域控制和網絡控制(面控)的過程。 目錄 前言 1 一、實驗目的 3 二、題目:交通燈控制器 3 2.1 系統功能設計要求 3 2.2 數碼管顯示 3 2.3 計數 3 三、設計原理 3 3.1 交通燈控制器的狀態轉換 4 3.2電路符號 4 3.3 顯示模塊 4 四、使用軟件Quartus 4 4.1 Quartus簡介 5 五、設計方法 5 5.1 準備工作 5 5.2 設計輸入 6 5.3 編譯、綜合 9 六、仿真準備 10 6.1 進行仿真 10 6.2設置節點 10 6.3 設置End Time 10 七、仿真波形 11 7.1 功能仿真 11 八、實驗總結和心得 12
EDA設計專周 熟悉Quartus||的使用方法和步驟,熟悉FPGA硬件的調試方法。 實現十字路口的雙向交通燈控制 2.1 系統功能設計要求 東西南北各設有一個紅、黃、綠指示燈;一個2位7段數碼管 東西方向:綠燈37秒-黃燈3秒-紅燈20秒。 南北方向:綠燈17秒-黃燈3秒-紅燈40秒。 當前信號燈狀態顯示 當前信號燈剩余時間計數和動態顯示 2.2 數碼管顯示 用兩組數碼管,以倒計時方式顯示兩個方向允許通行或禁止通行的剩余時間。 2.3 計數 能實現正常的倒計時顯示功能。能實現總體清理功能,計數器有初始狀態 開始計數,對應狀態的指示燈亮。 三、設計原理 3.1 交通燈控制器的狀態轉換 根據論文題目要求,將紅綠燈的狀態轉換列成如
3.2 電路符號 Clk為系統時鐘信號輸入端。r1 為東西方向紅燈信號輸出端,y1為東西方向黃燈信號輸出端,g1為東西方向綠燈信號輸出端。r2為南北方向紅燈信號輸出端,y2為南北方向黃燈信號輸出端,g2為南北方向綠燈信號輸出端。Digit1為十位數七段碼,digit2為個位數七段碼。 3.3 顯示模塊 顯示模塊由兩部分組成,一是由七段數碼管組成的倒計時顯示器,每個方向兩個七段數碼管;二是由發光二極管代替的交通燈,每個方向3個發光二極管。 四、使用軟件:Quartus 4.1 Quartus簡介 Quartus II 是Altera公司的綜合性PLD/FPGA開發軟件,原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware 支持Description Language)等多種設計輸入形式,內嵌自有的綜合器以及仿真器,可以完Quartus II可以在Windows、Linux以及Unix上使用,除了可以使用Tcl腳本完成設計流程外,提供了完善的用戶圖形界面設計方式。具有運行速度快,界面成從設計輸入到硬件配置的完整PLD設計流程。 Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模塊庫,使用戶可以充分利用成熟的模塊,簡化了設計的復雜性、加快了設計速度。對第三方EDA工具的良好支持也使用戶可以在設計流程的各個階段使用熟悉的第三方EDA工具。此外,Quartus II 通過和DSP Builder工具與Matlab/Simulink相結合,可以方便地實現各種DSP應用系統;支持Altera的片上可編程系統(SOPC)開發,集系統級設計、嵌入式軟件開發、可編程邏輯設計于一體,是一種綜合性的開發平臺。 Maxplus II 作為Altera的上一代PLD設計軟件,由于其出色的易用性而得到了廣泛的應用。目前Altera已經停止了對Maxplus II 的更新支持,Quartus II 與之相比不僅僅是支持器件類型的豐富和圖形界面的改變。Altera在Quartus II 中包含了許多諸如SignalTap II、Chip Editor和RTL Viewer的設計輔助工具,集成了SOPC和HardCopy設計流程,并且繼承了Maxplus II 友好的圖形界面及簡便的使用方法。 Altera Quartus II 作為一種可編程邏輯的設計環境, 由于其強大的設計能力和直觀易用的接口,越來越受到數字系統設計者的歡迎。 5.1 準備工作:創建Quartus II項目 菜單“File/New Project Wizard”, 逐步設置:工作目錄、項目名和實體名;是否添加設計文件;選擇器件;是否使用第三方eda工具 注意:項目名、實體名、文件名要相同! 5.2 設計輸入:采用HDL輸入方式 新建文件(菜單File/New...)選擇VHDL文件類型(VHDL File),擴展名*.vhd 輸入VHDL設計的代碼 采用文本編輯法,即采用VHDL語言描述交通控制器,代碼如下:
5.3 編譯、綜合 在Processing菜單選擇Start Compilation 項(或者紫色的編譯按鈕),則自動進行編譯,并且軟件左側出現Status狀態窗口,給出編譯步驟和執行進度。 若設計無錯誤,則給出編譯報告和其他處理步驟的報告。 若有錯誤,則根據錯誤提示修改設計文件,重新編譯。 6.1 進行仿真:功能仿真 新建“激勵信號”的波形文件: (菜單File/New...)選擇波形文件類型(Wector Waveform File),擴展名*.vwf,打開波形編輯窗口 6.2 設置節點 選擇要仿真的節點:在“Name”列空白處,右鍵菜單,如上圖所示。選擇菜單“Insert Node or Bus...”,在對話框選擇“Nodes Finder”按鈕 根據過濾條件,列出節點名稱:List選擇節點OK 根據需要編輯輸入端口“激勵信號”的波形 注意:保存波形文件,默認文件名即可。
6.3 設置End Time
七、仿真波形 7.1功能仿真 在 Processing 菜單內選擇Simulator Tool 項,可以實現更多的仿真功能(功能仿真、時序仿真;指定仿真時間長度,其他可選項等)。 如果仿真沒有錯誤,則完成后自動打開仿真結果的波形窗口(仿真報告窗口)。
八、實驗總結和心得 短短一個星期的EDA課程設計很快就結束了,這次設計使我對EDA的認識提高了一個層次,現在我能夠熟練的使用Quartus2,能夠用VHDL語言編寫簡單的、實用的小程序。這次EDA課程設計重點學習了交通燈程序的編寫、調試。在整個課程設計的過程中,我查閱了大量關于交通燈設計的資料。 在設計的過程還應該多聯系下實際情況,要了解實際情況下交通信號燈的工作情況,才能更好的完成此次的課程設計。在今后的工作學習中,我們不能僅僅把目光停留在課本上,而要更多的把理論聯系到實際。
- library ieee;
- use ieee.std_logic_1164.all;
- use ieee.std_logic_unsigned.all;
- entity traffic is
- port(clk:in std_logic;
- r1,r2,y1,y2,g1,g2:out std_logic;
- cou:out integer range 0 to 37;
- digit1,digit2:out std_logic_vector(6 downto 0));
- end traffic;
- architecture behavior of traffic is
- constant timemax:integer:=37;
- signal coun:integer range 0 to timemax;
- constant timeRG:integer:=17;
- constant timeRY:integer:=3;
- constant timeGR:integer:=37;
- constant timeYR:integer:=3;
- type state is (RG,RY,GR,YR);
- signal pr_state,nx_state :state;
- signal time:integer range 0 to timemax;
- signal temp1:integer range 0 to 10;
- signal temp2:integer range 0 to 10;
- begin
- process(clk)
- variable count:integer range 0 to timemax;
- begin
- if(clk'event and clk='1')then
- count:=count+1;
- if (count=time)then
- pr_state<=nx_state;
- count:=0;
- end if;
- end if;
- coun<=count;
- cou<=coun;
- end process;
- process(pr_state)
- begin
- case pr_state is
- when RG=>
- r1<='1';r2<='0';y1<='0';y2<='0';g1<='0';g2<='1';
- nx_state<=RY;
- time <=timeRG;
- when RY=>
- r1<='1';r2<='0';y1<='0';y2<='1';g1<='0';g2<='0';
- nx_state<=GR;
- time <=timeRY;
- when GR=>
- r1<='0';r2<='1';y1<='0';y2<='0';g1<='1';g2<='0';
- nx_state<=YR;
- time <=timeGR;
- when YR=>
- r1<='0';r2<='1';y1<='1';y2<='0';g1<='0';g2<='0';
- nx_state<=RG;
- time <=timeYR;
- end case;
- end process;
- process(coun)
- begin
- temp1<=coun/10;
- temp2<=coun mod 10;
- case temp1 is
- when 0=>digit1<="1111110";
- when 1=>digit1<="0110000";
- when 2=>digit1<="1101101";
- when 3=>digit1<="1111001";
- when 4=>digit1<="0110011";
- when 5=>digit1<="1011011";
- when 6=>digit1<="1011111";
- when 7=>digit1<="1110000";
- when 8=>digit1<="1111111";
- when 9=>digit1<="1111011";
- when others=>null;
- end case;
- case temp2 is
- when 0=>digit2<="1111110";
- when 1=>digit2<="0110000";
- when 2=>digit2<="1101101";
- when 3=>digit2<="1111001";
- when 4=>digit2<="0110011";
- when 5=>digit2<="1011011";
- when 6=>digit2<="1011111";
- when 7=>digit2<="1110000";
- when 8=>digit2<="1111111";
- when 9=>digit2<="1111011";
- when others=>null;
- end case;
- end process;
- end behavior;
復制代碼
完整的Word格式文檔51黑下載地址:
新建 Microsoft Office Word 2007 文檔.docx
(390.63 KB, 下載次數: 85)
2018-4-22 21:00 上傳
點擊文件名下載附件
EDA設計-交通燈控制 下載積分: 黑幣 -5
|