




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
引言交通燈控制器件在我們的日常生活中有著很重要的意義。由一條主干道和一條支干道的集合點形成十字交叉路口,為確保車輛平安、迅速地通行,在交叉路口的每個入口處設置了紅、綠、黃三色信號燈。紅燈亮禁止通行;綠燈亮允許通行;黃燈亮那么給行駛中的車輛有時間??吭诮芯€外。實現紅、綠燈的自動指揮對城市交通管理現代化有著重要的意義。本次設計是采用可編程邏輯器件〔PLD〕為主控制器芯片,通過QuartusII綜合性PLD開發平臺,用VerilogHDL硬件描述語言完成控制器電路的程序設計和仿真驗證,然后將設計結果編程下載到PLD芯片中,通過PLD的I/O口輸出信號,控制外圍電路連接以實現對交通燈的控制。在該設計的制作過程中QuartusII綜合性PLD開發平臺和VerilogHDL硬件描述語言必不可少的工具。設計的各個模塊功能都要運用到VerilogHDL硬件描述語言、QuartusII綜合性PLD開發平臺對其進行編寫和模擬仿真。并將所寫程序下載至EDA6000實驗開發系統上,對各方面功能進行模擬硬件電路驗證實現。在對程序驗證正確,并論證其現實可行后,還需要運用電路知識和PCB設計軟件Protel99SE制作電路板。下面簡要介紹可編程邏輯器件(PLD)、QuartusII綜合性PLD開發平臺、VerilogHDL硬件描述語言和EDA6000實驗開發系統??删幊踢壿嬈骷?PLD)。PLD是可編程邏輯器件〔ProgramableLogicDevice〕的簡稱。是電子設計領域中最具活力和開展前途的一項技術,它的影響絲毫不亞于70年代單片機的創造和使用。PLD能完成任何數字器件的功能,上至高性能CPU,下至簡單的74電路,都可以用PLD來實現。PLD如同一張白紙或是一堆積木,工程師可以通過傳統的原理圖輸入法,或是硬件描述語言自由的設計一個數字系統。通過軟件仿真,我們可以事先驗證設計的正確性。在PCB完成以后,還可以利用PLD的在線修改能力,隨時修改設計而不必改動硬件電路。使用PLD來開發數字電路,可以大大縮短設計時間,減少PCB面積,提高系統的可靠性。PLD的這些優點使得PLD技術在90年代以后得到飛速的開展,同時也大大推動了EDA軟件和硬件描述語言〔HDL)的進步。隨著科學的開展,社會的進步,數字集成電路本身在不斷地進行更新換代。它由早期的電子管、晶體管、小中規模集成電路、開展到超大規模集成電路(VLSIC,幾萬門以上)以及許多具有特定功能的專用集成電路。但是,隨著微電子技術的開展,設計與制造集成電路的任務已不完全由半導體廠商來獨立承當。系統設計師們更愿意自己設計專用集成電路(ASIC)芯片,而且希望ASIC的設計周期盡可能短,最好是在實驗室里就能設計出適宜的ASIC芯片,并且立即投入實際應用之中,因而出現了現場可編程邏輯器件(FPLD),其中應用最廣泛的當屬現場可編程門陣列(FPGA)和復雜可編程邏輯器件(CPLD)。本次設計所運用到的EPM7128SLC84-15便是復雜可編程邏輯器件(CPLD)的一個代表。雖然名字和復雜程度各不相同,但是一個PLD器件一般由三大局部組成,其結構如圖1所示?!?〕、一個二維的邏輯塊陣列,構成了PLD器件的邏輯組成核心?!?〕、輸入/輸出塊?!?〕、連接邏輯塊的互連資源。連線資源:由各種長度的連線線段組成,其中也有一些可編程的連接開關,它們用于邏輯塊之間、邏輯塊與輸入/輸出塊之間的連接。圖1典型的PLD框圖 QuartusII綜合性PLD開發平臺。QuartusII是Altera公司的綜合性PLD開發軟件,支持原理圖、VHDL、VerilogHDL以及AHDL〔AlteraHardwareDescriptionLanguage〕等多種設計輸入形式,內嵌自有的綜合器以及仿真器,可以完成從設計輸入到硬件配置的完整PLD設計流程。QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl腳本完成設計流程外,提供了完善的用戶圖形界面設計方式。具有運行速度快,界面統一,功能集中,易學易用等特點,并支持MAX7000/MAX3000等乘積項器件,為目前常用的EDA開發軟件。 此外由于QuartusII簡單易學功能強大,所以在許多大中院校中被選為EDA課程學習的配套軟件。也是廣闊師生在學習EDA過程中運用得最多的PLD開發軟件。VerilogHDL硬件描述語言。VerilogHDL是一種硬件描述語言〔HDL:HardwareDiscriptionLanguage〕,是一種以文本形式來描述數字系統硬件的結構和行為的語言,用它可以表示邏輯電路圖、邏輯表達式,還可以表示數字邏輯系統所完成的邏輯功能。QuartusII開發軟件中支持VHDL、VerilogHDL等硬件描述語言。VerilogHDL就是在用途最廣泛的C語言的根底上開展起來的一種件描述語言,其最大特點就是易學易用,如果有C語言的編程經驗,可以在一個較短的時間內很快的學習和掌握。由于HDL語言本身是專門面向硬件與系統設計的,這樣的安排可以使學習者同時獲得設計實際電路的經驗。與之相比,VHDL的學習要困難一些。但VerilogHDL較自由的語法,也容易造成初學者犯一些錯誤,這一點要注意。EDA6000實驗開發系統。EDA6000是南京偉福公司結合多年PLD、EDA、DSP及SOPC開發經驗,分析國內外多種EDA實驗開發系統,取長補短,研制出的EDA實驗開發系統。該系統的優點很多,這里只介紹其中最重要,也是在PLD設計過程中運用得最多的兩個功能?!?〕多芯片。支持XCS05/10、XC9572/108、XCV200、FLEX10K10、MAX7128S等多種系列FPGA/EPLD芯片。本次設計用到的是MAX7128S芯片。〔2〕軟、硬件結合。EDA6000實驗系統采用軟、硬件結合技術,可以在PC機的軟件〔偉福6000〕上定義實驗所要連線,下載到實驗儀上即可。實驗儀運行的結果可以在軟件上觀察到,如果想觀察高速信號,就用邏輯分析儀采樣,傳上來進行分析。軟件可以將RAM的數據下載到實驗儀上,供實驗儀做VGA、DAC等數據輸出類實驗。也可將ADC采樣的到數據上載到PC機的軟件中,供學生分析、觀察、保存。由于這個優點,為程序的模擬硬件電路實現提供了很大的方便。1方案論證根據畢業設計任務書的要求,本次設計必須滿足以下要求:〔1〕用PLD芯片實現交通燈控制電路的設計。〔2〕能設置道路東西和南北兩側通行和禁止的倒計時時間,最大設置時間為99秒,最小設置時間為1秒,紅、綠、黃燈顯示的次序符合實際交通道路控制的要求。〔3〕在EDA實驗開發系統上完成電路的設計與驗證后,根據設計電路的輸入和輸出設備的需要設計并制作PCB板,完成基于PLD的交通燈控制電路的設計。1.1整體設計設想在查閱資料后可以得知,交通燈控制系統的設計平臺有很多種。如:有基于單片機的交通燈,有基于FPGA的也有基于PLD的。在眾多設計中,基于單片機的交通燈控制系統是最具有實用價值的。目前交通信號燈,大局部都是用單片機控制,加上無線通信來實現的。基于PLD的交通燈控制系統的設計題是在PLD學習中一個最經典,最典型的題目,尤其是定時器和計數器那局部。通過基于PLD的交通燈控制電路設計,讓制作者熟悉掌握EDA技術,并能夠運用硬件描述語言對PLD器件進行程序編寫,通過對PLD芯片的選擇和硬件電路實現,讓設計者能夠根本掌握該項技術。根據第〔2〕項的要求,要能夠設置道路東西和南北兩側通行和禁止的倒計時時間,最大設置時間為99秒,最小設置時間為1秒,所以要在路口要放置數碼管,用以倒計時的顯示。還有紅、綠、黃燈顯示的次序要符合實際交通道路控制的要求,根據對現實中的十字路口交通燈的觀察,發現交通燈的形式雖然有多種多樣,但是根本的結構是不變的,其主要工作狀態有以下幾種:=1\*GB3①狀態0:東西方向綠燈亮,南北方向紅燈亮,用以東西方向的車輛通行。=2\*GB3②狀態1:東西方向黃燈亮,用于給予東西方向通行的車輛以準備停止的時間。=3\*GB3③狀態2:南北方向綠燈亮,東西方向紅燈亮,用以南北方向的車輛通行。=4\*GB3④狀態3:南北方向黃燈亮,用于告給予南北方向通行的車輛以準備停止的時間。 此四種狀態反復輪回運行便構成了一個十字路口交通燈。圖2就是這四種狀態的示意圖。圖2十字路口交通燈示意圖完成整體設計設想以后,在QuartusII綜合性PLD開發平臺上,用VerilogHDL硬件描述語言編寫各設計模塊的程序,然后在EDA6000實驗箱上驗證可以實現交通燈控制器的功能,最后制作PCB板,實現電路整體設計方案。1.2程序設計方案根據任務書的要求,該交通燈控制系統主要有這幾個功能〔1〕、能夠產生倒計時,可以設置倒計時的大小〔即倒計時起始時間〕,并能顯示出來?!?〕、能夠產生1秒的時鐘。 〔3〕、能夠控制紅、黃、綠燈的顯示。根據以上三點,本次設計大體可以分為四大局部: 〔1〕、分頻電路。將外部晶振分頻用于產生1秒的時鐘信號。 〔2〕、中央控制電路。用于控制東西、南北方向信號燈的亮滅和與之配套的倒計時〔即倒計時起始時間〕。 〔3〕、減法計數器。用于倒計時的產生。 〔4〕、譯碼顯示電路。用于倒計時的顯示。 根據以上四點,可以設計并繪制出原理圖,如圖3所示。圖3交通燈控制系統原理圖2程序設計根據以上流程,用VerilogHDL硬件描述語言完成對各局部進行編寫,在編譯通過后完成的頂層文件如圖4所示:圖SEQ圖\*ARABIC4交通燈控制系統頂層文件在圖4中,newclk為分頻電路,conter為中央控制電路,sub10為減法計數器,ymq為譯碼顯示電路。下面將對各局部電路一一解釋。2.1分頻電路分頻電路用于完成外部石英晶體振蕩器輸出頻率的分頻。本電路設計中使用的石英晶體振蕩器的輸出頻率為4096kHZ,經過4096000分頻后得到周期為1s的時鐘。分頻電路的VerilogHDL程序如下:modulenewclk(clk,newclk); input clk; output newclk; reg newclk; reg[24:0] cnter; always@(posedgeclk) begin if(cnter<4096000-1) cnter=cnter+1; else cnter=0; if(cnter==4096000-1)newclk=1; elsenewclk=0;endendmodule在程序中,該分頻器的輸入端口為clk,接于外部晶振的輸出。輸出端口newclk,用于輸出4096000分頻后的1Hz〔即1秒時鐘信號〕信號。完成分頻器程序的編寫后,通過編譯確保程序無誤,然后點擊File菜單下的Create/update—CreatSymbolFilesforcurrentFile,成分頻器的元件符號,用于頂層文件的連接。生成元器件如圖5所示。圖5分頻器的元件符號圖5分頻器的元件符號 后面幾個模塊的編譯和元件符號的生成都是如此操作,故不再重復說明。2.2減法計數器減法計數器用于交通燈控制電路的倒計時,倒計時的最大時間為99秒,因此設計一個十進制減法計數器,然后用兩片十進制減法計數器構成兩位十進制減法計數器電路。十進制減法計數器的VerilogHDL程序如下:modulesub10(clk,lod,a,q,cout); input clk,lod; input[3:0] a; output[3:0] q; output cout; reg[3:0] q; reg cout;always@(posedgeclkornegedgelod) begin if(~lod)beginq=a;cout=1;end elseif(q>0)begin q=q-1; if(q==0)cout=0; elsecout=1; end elseif(q==0)beginq=9;cout=1;end endendmodule在十進制減法計數器中,clk用于接收分頻電路產生的1秒時鐘信號;Lod與中央控制電路的lod相連,用于決定減法計數器的工作狀態;輸入信號a與中央控制電路的qa相連,用以決定倒計時起始時間,Cout為進位端,用于產生進位信號。當要顯示兩位十進制數時,將位于個位的減法計數器的cout與位于十位的減法計數器的clk端相連。編譯通過后生成的十進制減法計數器的元件符號如圖6所示。圖6減法計數器的元件符號2.3譯碼顯示電路共陰數碼管的引腳圖如圖7所示。共陰極數碼管的原理是將數碼管內部的發光二極管的陰極連接起來并接地。輸出為高電平有效,即當輸出為高電平時,數碼管中相應的發光二極管發光。圖7共陰數碼管引腳圖譯碼器的譯碼原理如下:按照圖7中ABCDEFG的順序,在輸入端輸入要顯示的數字的二進制數,對其進行翻譯,以得到該數字的電平信號,并在輸出端通過數碼管顯示出來。例如:當輸入信號為二進制0000時,數碼管顯示0,即A,B,C,D,E,F都亮而G不亮。具體翻譯如表格1所示。表格1二進制十六進制共陰數碼管顯示GFEDCBA0000001111110001100001100010210110110011310011110100411001100101511011010110611111000111700001111000811111111001911001111010A11101111011B11111001100C10110001101D10111101110E11110011111F1110001根據表格1寫出16進制共陰顯示譯碼器電路的VerilogHDL程序,如下:moduleymq(in,out);input[3:0]in;output[6:0]out;reg[6:0]out;always@(in)begincase(in)4'b0000:out=7'b0111111;4'b0001:out=7'b0000110;4'b0010:out=7'b1011011;4'b0011:out=7'b1001111;4'b0100:out=7'b1100110;4'b0101:out=7'b1101101;4'b0110:out=7'b1111100;4'b0111:out=7'b0000111;4'b1000:out=7'b1111111;4'b1001:out=7'b1100111;4'b1010:out=7'b1110111;4'b1011:out=7'b1111100;4'b1100:out=7'b1011000;4'b1101:out=7'b1011110;4'b1110:out=7'b1111001;4'b1111:out=7'b1110001;default:out=7'b0000000;endcaseendendmodule圖8譯碼器元件符號該譯碼器程序可以顯示0到F共16個數字〔即代表10進制的0到15〕。其中輸入端in用于接收減法計數器產生的4位二進制信號,在翻譯后由輸出端out輸出。圖8譯碼器元件符號編譯完成后的生成元件符號如如圖8所示。2.4中央控制電路中央控制電路用于整個電路的控制,其VerilogHDL程序如下:modulecontr(lod,cin,aq,qa,d); input[7:0] aq; input cin; outputreg[7:0]qa; outputreg[5:0]d; outputreg lod; reg[1:0] qc;initiald='b100010; always@(negedgecin) begin if(aq==0)lod=0; elselod=1; endalways@(negedgelod) beginqc=qc+1; case(qc)0:beginqa='h03;d='b100010;end1:beginqa='h19;d='b001100;end2:beginqa='h03;d='b010100;end3:beginqa='h19;d='b100001;end default:qa='h00; endcase endendmodule中央控制電路的作用是對整個交通燈控制電路進行控制,控制器接收倒計時的結果,當倒計時歸0時,改變電路的控制模式,輸出倒計時的初始時間和交通燈亮滅控制信號。本程序共提供了0、1、2、3四種工作狀態,其中最大定時為19秒,最小為3秒。其具體的工作狀態如方案論證中的圖2所示。編譯完成后生成的元件圖如圖9所示。圖9中央控制電路元件圖2.5頂層文件 在QuartusII中新建一個工程,為交通燈控制器電路建立一個原理圖編輯BDF文件。在原理圖編輯窗口中,調出已經設計好的分頻器元件,中央控制器元件,十進制減法計數器元件〔2片〕和譯碼器元件〔2片〕,并用鼠標完成各元件之間的電路連接,形成交通燈控制器電路的頂層文件,如圖10所示。圖10交通燈控制系統頂層文件 編譯完成交通燈控制器的頂層設計文件后就可下載至EDA6000實驗平臺進行硬件電路驗證。3程序調試驗證在編譯完成后,要用到EDA6000實驗箱對程序進行模擬硬件電路驗證。首先將EDA6000實驗箱與計算機相連,然后翻開與EDA6000實驗箱配套的偉福6000軟件,點擊連接EDA實驗開發系統后,看到實驗箱上的數碼管全亮后,EDA6000實驗箱便與計算機連接上了。 在下面的介紹中,都綜合運用到了QuartusII軟件和偉福EDA6000實驗開發系統。3.1引腳鎖定 下載驗證的第一步就是在QuartusII軟件中選擇好相應的PLD器件,并將其引腳鎖定。本次用到的是實驗箱上自帶的芯片EPM7128S。在偉福6000中選擇好數碼管用于倒計時顯示和LED燈用于交通燈顯示,并為其設定好I/O口。本次設計中,我將I/O口00I/O口06連接到用于顯示個位倒計時的數碼管,I/O口08I/O口14連接到顯示十位倒計時的數碼管。由于西面和東面、南面和北面的交通燈顯示是一樣的,所以選擇東面和北面的交通,共6盞用于與I/O口15I/O口20相連。連接完成后如圖11所示。圖11在偉福6000的I/O引腳定義菜單下查看各I/O口對應的引腳,最后在QuartusII的Assignment下拉菜單下選擇Pins,彈出引腳鎖定菜單,在Location中輸入各局部所對應的引腳。 兩個數碼管的引腳out[0]out[13]分別定義為:45、50、49、51、54、55、56、58、52、60、61、63、64、65。6個交通燈d[0]d[5]分別定義為67、68、69、70、73、76。clk與83腳外部晶振連接。完成引腳鎖定后再次進行設計電路的編譯。3.2程序下載 將引腳鎖定后,點擊QuartusII中的Programmer對程序進行下載。 在Mode下拉菜單中選擇JTAG模式〔該模式是EPM7128S系列的下載模式〕,并在Programmer/Configure下打鉤,點擊Start,在Progress的藍條進行到100%時,下載完成。3.3程序調試 下載完成后,點擊偉福6000上的啟動/暫停按鈕,程序啟動。啟動后觀察實驗箱上的各局部運行正常,交通燈控制電路的四種顯示狀態都能完好的呈現。交通燈控制器的硬件驗證如圖12所示。圖12交通燈控制器的硬件驗證圖根據觀察,任務書中所要求實現的各項功能在EDA6000實驗平臺上都得以實現。可以說以上程序是無誤的,根據該程序完全可以設計出與之相配的外部硬件電路。4硬件電路實現在EDA6000實驗開發系統上完成硬件電路驗證后,便可著手于基于PCB板的硬件電路設計。在著手設計之前,先要對所設計電路做一個大概的規劃。首先要對市面上大量的PLD芯片進行選擇,找到適宜的芯片,其次是查閱芯片資料,對該芯片有個全面的了解,掌握其工作環境和各引腳的作用,完成一個最小系統的設計。然后根據設計所要求的外部顯示功能,完成一個外圍電路的設計。最后將這兩局部連接起來。4.1PLD芯片的選擇目前的PLD芯片主要由ALTERA,Lattice,Xilinx等公司生產。針對市面上PLD芯片眾多,本著熟悉、簡單、易用等原那么,我選擇了ALTERA公司生產的EPM7128SLC84-15這塊芯片。EPM7128SLC84-15是ALTERA公司生產的MAX7000S系列中的一塊。選擇這塊芯片的原因有三點,首先,該芯片是市面上最常見的PLD芯片,在大學期間有過很多的接觸,有在EDA6000實驗箱上使用的經驗,對其各方面功能有一定的了解。再次,該芯片的為ALTERA公司的產品,為同是該公司生產的QuartusII綜合性PLD開發軟件支持,不必因為選用其他公司的產品而另外學習使用一套軟件和編程語言。最后,由于該芯片使用廣泛,在圖書館和網絡上都有很多關于它的資料,方便參考和學習。4.對EPM7128SLC84-15的型號標識做以下簡要介紹。〔1〕EP。EP代表的是ALTERA公司的產品,該公司的產品一般都以EP開頭,代表可重復編程。〔2〕M。M代表的是ALTERA公司的MAX系列CPLD產品?!?〕7為產品系列號,即屬于MAX7000S?!?〕128。表示改芯片的邏輯宏單元數為128?!?〕LC表示采用PLCC封裝〔PlasticLeadedChipCarrier,塑料方形扁平封裝〕。〔6〕84-15,表示該芯片有84個引腳,引腳間延時為15ns。4.EPM7128SLC84是Altera公司開發的CPLD器件,屬于MAX7000S系列。在高集成度PLD器件中,MAX7000S系列是速度最快的類型之一,它內部為第二代MAX(MultipleArrayMatrix)結構。除了集成度高的優點外,器件內部單元(cell)之間的連接采用連續的金屬線,這種互連結構為單元之間提供了固定的、短時延的信號通道,從而消除了內部延時的難以預測性,并有效地提高了芯片資源的利用效率。EPM7128SLC84是基于EEPROM的可編程CMOS器件,其主要性能指標為:〔1〕外部引腳數目為84,內部等效門數為2500左右;〔2〕內部有128個邏輯宏單元(Macrocell),每16個宏單元組成一個邏輯陣列塊(LAB),每個邏輯陣列塊對應8個I/O引腳;〔3〕除通用I/O引腳外,EPM7128SLC84有兩個全局時鐘、一個全局使能和一個全局清零輸入;〔4〕器件最高計數頻率為151.5MHz,內部互連延時為1ns。
EPM7128SLC84的主要特點為:〔1〕支持通過JTAG口進行5V電壓的在片編程;〔2〕宏單元的工作速率和功耗可編程選擇,用戶可決定每一個宏單元的工作模式——選擇一般模式或是節能模式(功耗降低50%或更多,但延時加大)〔3〕宏單元的觸發器有獨立的清零、預置、時鐘和時鐘使能控制,可通過編程進行設置;〔4〕器件的引腳輸出可設置,有以下三種選項:①多電平I/O接口,通過硬件設置可使引腳輸出支持5V或3.3V兩種電平;②輸出回轉速率(Slew-Rate)控制,用戶可決定每一I/O引腳的輸出回轉速率,大回轉速率縮小了信號通道的延時,但有可能加大瞬態躁聲;③集電極開路選擇?!?〕具有一個完善、友好的軟件環境支持器件開發,Altera公司的EDA軟件QuartusII集成了設計文件編輯、編譯、仿真、時序分析和器件編程等各項功能,并能直接控制器件內部宏單元或輸出引腳的設置;〔6〕Altera的硬件描述語言與CPLD硬件結合緊密,并且提供優化的Megafunction函數庫,支持靈活地描述各類常用復雜電路,如計數器、鎖相環等。4.EPM7128SLC84是Altera公司開發的CPLD器件,屬于MAX7000S系列。其內部由五類模塊組成,分別為宏單元、擴展乘積項、邏輯陣列塊、可編程互連陣列(PIA)和I/O控制塊。宏單元是EPM7128SLC84的根本元素,每個宏單元由組合電路和一個可編程觸發器組成。組合電路最多可有20個乘積項,宏單元本身提供5個,其他15個來自于本邏輯塊內其他宏單元提供的并行擴展乘積項,同時宏單元還輸出一個共享擴展乘積項,邏輯塊內的并行擴展乘積項和共享擴展乘積項組成擴展乘積項。觸發器能通過編程設置為D、T、JK和RS四種類型,數據端既可來自于組合電路的輸出,也可為I/O引腳的直接輸入,觸發器的時鐘、清零、預置和使能等均可編程控制,其中時鐘、清零端的信號均有全局信號和組合電路輸出兩種來源。
每個邏輯陣列塊LAB由16個宏單元組成,LAB的輸入信號包括:從器件內部的公共總線——可編程互連陣列PIA反應來的36路信號;兩路全局時鐘和一路全局清零信號;直接從I/O引腳輸入的8路信號。LAB之間通過PIA相連,PIA內的信號通道其延時是固定的,不存在積累效應。
宏單元的輸出經I/O控制塊送至I/O引腳,I/O控制塊控制每一個I/O引腳的工作模式,決定其為輸入、輸出或是雙向引腳,并決定其三態輸出的使能端控制。圖13為MAX7000S系列的內部結構圖。圖13MAX7000S內部結構圖4.2EPM7128SLC84最小系統4.2.在熟悉EPM7128SLC84的各項性能和特點后,在制作最小系統前,先將各引腳功能做一個簡單的介紹。芯片引腳分布圖如14所示?!?〕VCCNT、VCCI/O、GND。VCCNT與+5V電源相連接,GND與地極相連接。I/O口電源VCCIO的連接要考慮實際的需要。EPM7128S芯片為VCCIO提供了兩種電平的選擇,+5V和+3.3V。VCCIO可以VCCNT一樣與+5V電源連接,也可單獨與+3.3V電源連接。電平選擇由具體電路需要而定,當其與多少伏電源連接時,I/O口的輸出電流也大致為多少伏。 〔2〕TMS、TCK、TDI、TDO。TMS、TCK、TDI、TDO分別為模式選擇、時鐘、數據輸入和數據輸出線,為JTAG在線可編程引腳,為芯片提供下載功能。ALTERA板上的接口標準如圖15所示。圖14EPM7128S引腳圖圖15ALTERA板上的接口標準〔3〕EPM7000S的四個全局輸入腳GCLK1,OE2(GCLK2),OE1,GLCRn它們的作用是:=1\*GB3①GCLK:全局時鐘腳,這個腳的驅動能力最強,到所有邏輯單元的延時根本相同,所以如系統有外部時鐘輸入,建議定義此腳為時鐘腳。=2\*GB3②OE1:全局輸出使能,這個腳的驅動能力最強,到所有邏輯單元的延時根本相同,如有三態輸出,建議由此腳來控制〔也可由內部邏輯產生輸出使能信號〕。=3\*GB3③OE2/GCLK2:全局輸出使能/全局時鐘腳,兩者皆可。=4\*GB3④GCLRn:全局清零,如有存放器清零,建議由此腳來控制〔也可由內部邏輯產生清零信號〕,優點同上。 〔4〕除以上引腳外,其他引腳都為普通I/O口,可任意使用。4.根據以上引腳說明,可將其各局部連接組成一塊EPM7128S最小系統。在考慮到簡單、實用和后期調試電路方便等各方面的因素,本次設計決定購置在市面上可見的EPM7128SPCB板,并按照說明書對各局部元器件焊接。EPM7128SPCB板如圖16所示。圖16EPM7128SPCB圖16EPM7128SPCB圖17EPM7128S最小系統根據焊接說明書,焊接后得到的EPM7128S最小系統如17圖所示。 該最小系統有如下特點:〔1〕采用完全開放式設計:將EPM7128的全部I/O引腳、電源、時鐘、復位信號、4個LED全部連接到插針上,在將設計下載到CPLD后,使用插線跟外圍電路進行任意連接,可以搭建自己需要的任何一種電路,非常靈活和適用,具有很強的通用性,這正是最小系統板的主要特點?!?〕獨立性:該最小系統板本身提供電源〔包括5V和3.3V〕、時鐘、復位、下載電路和4個LED,組成了一個CPLD的最小系統,所以可以用于學習、進行一定的實驗和驗證,但主要用作核心板,外圍電路可由需要任意搭建。本設計的硬件資源如下:〔1〕PLD(EPM7128SLC84-15或者EPM7128SLC84-10);〔2〕電源:5V直流輸入,電源插座引入,或者直接使用插線引入,有開關和過壓保護。提供5V轉3.3V電源電路。輸入是5V信號,但輸出可以配置為5V或者3.3V信號,通過電源跳線設置:VCCI/O=5V時,輸出為5V信號,VCCI/O=3.3V時,輸出為3.3V信號。如果錯誤地插入了超過5.1V的電壓,穩壓二極管可能會燒毀,但能保護其他的器件不致燒毀。燒毀的穩壓二極管需要自己換新?!?〕時鐘電路:一個晶振插座,提供一個4.096MHZ的晶振,用戶可以很方便更換其他頻率的晶振,注意晶振的方向,以晶振上的一個標志點為1腳,必須和PCB上的點對應;〔4〕復位電路:具有上電復位和按鍵復位功能,復位信號為高電平,單獨引到插針上,可以同時作為CPLD和其他外圍電路的復位信號;〔5〕下載電路:一個10針插座和下載指示燈,下載時指示燈閃爍;〔6〕插針陣列:PLD的全部I/O引腳、電源及其跳線、時鐘、復位信號、4個LED全部連接到插針上;〔7〕插線:用于連接實驗電路或者驗證電路。插線兩端都含有插頭〔即杜邦頭〕,插頭內的簧片有良好的彈性,可以保證插接點的穩定和良好接觸,防止了面包板上經常出現的插頭松動和接觸不良現象。插線有10種顏色,便于識別?!?〕轉接區:主要解決一個引腳同時連接到多個引腳的情況。轉接區有7個轉接點,每個轉接點由4個插針組成〔這4個針連接在一起〕。4.3外圍電路設計4.外圍電路由12個LED燈〔紅、黃、綠各3個〕用于顯示交通控制。四個共陰7段數碼管,用于輸出倒計時。由于南北和東西兩面的LED燈和倒計時顯示是一樣的,所以將南北和東西的LED燈并聯,數碼管通過排阻上拉后并聯,這樣可以最大程度的簡化電路。4.在外圍電路的制作中,要運用到Protel99SE這個軟件。Protel99SE是ProklTechnology公司開發的基于Windows環境下的電路板設計軟件。該軟件功能強大,人機界面友好,易學易用,仍然是大中院校電學專業必學課程,同時也是業界人士首選的電路板設計工具。制作電路板一般分為以下幾個步驟:〔1〕規劃電路板一般在設計的PCB板時都有嚴格的外形尺寸要求,需要認真規劃確定電路板的物理尺寸。進入PCB編輯器,單擊下方的KeepOutLayer標簽將當前工作層設置為KeepOutLayer。該層為禁止布線層,一般用于設置電路板的邊界。執行Place/Keepout/Track命令,光標變為十字形狀。單擊一條板邊的起點,然后移動光標到適宜位置后單擊確定板邊的終點。雙擊在Track對話框中設置X起點、終點坐標,Y起點、終點坐標,最終確定電路板的長度和寬度。由于有了EPM7128S的最小系統,現在只需要設計外圍電路就可以了,因此我將電路板的長度定為10cm,寬度定為10cm。〔2〕繪制原理圖該外部電路的原理圖為北邊和西邊的共6個LED燈通過限流電阻與6個排針相連,應為南邊和北邊,東邊和西邊的LED燈的亮滅是一直的,所以將其串連起來就可以了。另外有4個數碼管,每兩個一組分別用以顯示東西、南北的倒計時情況,所以將其通過1K排阻上拉后與排針相連就好了。畫好的交通燈控制器外圍電路的原理圖如圖18所示。圖18交通燈控制器外圍電路原理圖上拉電阻的作用是提高元器件的使用效率,其阻值的選擇原那么包括:=1\*GB3①從節約功耗及芯片的灌電流能力考慮應當足夠大;電阻大,電流?。?2\*GB3②從確保足夠的驅動電流考慮應當足夠??;電阻小,電流大;=3\*GB3③對于高速電路,過大的上拉電阻可能邊沿變平緩.綜合考慮。對于與二極管連接的限流電阻選擇:=1\*GB3①型號:紅光、黃光、綠光
=2\*GB3②電流:紅黃:電流在15~35mA之間
綠:電流在15~20mA之間=3\*GB3③正向壓降:紅黃
2.1V(典型值)
2.7V(最大值)綠
3.9V(典型值)
4.5V(最大值)=4\*GB3④限流電阻計算:R=〔Vcc-VF×n〕/IF
Vcc——電源電壓VF——LED正向電壓
n——LED串聯的個數IF——LED正向電流通常取10—20mA計算得:紅、黃光二極管的限流電阻為300歐,綠光二極管的限流電阻為100歐?!?〕加載元件封裝在加載元件封裝之前必須加載所需要的元件封裝庫。本設計中大多數元件的封裝都能在PCB編輯器中自帶的PCBFootprints.lib中找到。只有共陰數碼管沒有現成的封裝圖。這就需要自己利用PCB元件封裝編輯器來自制元件的封裝。觀察這7段數碼管的特點,對其尺寸和引腳距離的丈量,畫處共陰數碼管的封裝如圖19。圖19共陰極7段數碼管封裝編輯好后,單擊Rename鍵,輸入新的封裝名稱SMG,保存。再回到PCB編輯器中將剛剛制作的元件封裝圖加載進來就可以了。日后假設還要用到該封裝,只需將元件的封裝名寫為SMG就可以了?!?〕PCB設計在完成7段數碼管的封裝后,將所有元件封裝完成后就可以對改電路的PCB進行設計了。首先在規劃好的10*10的范圍內,在其中偏右下的區域內,分別在東西南北四個方向每邊防止3個LED燈。并分別在北面和西面的LED燈上方放置兩個七段數碼管,用以倒計時的顯示。然后在這些元件的附近放置和其相連的電阻和上拉電阻。最后在板子上方放置用以與I/O口相連的排針。在放置好元件后,點擊Rule設置好導線寬度和元件最小距離后就可以用導線將各局部元件相連接起來了。為了方便電路板的腐蝕和焊接,我將導線寬度設置在1mm左右,并將地線和電源線加粗。最后設計好的PCB如圖20所示。圖20外圍電路PCB4.4PCB板的制作首先把電路的PCB圖打印出來,通過壓板機將PCB轉印到事先選擇好的銅板上。待板子冷卻后撕掉PCB紙,查看是否存在斷線和短路情況,如有的話用油性筆對其進行修改。檢查完成后將其放入腐蝕液中〔由鹽酸、雙氧水組成〕,腐蝕好的銅板要涂上松香液,防止銅線被氧化。最后用打孔機把所需的元器件插孔打好。4.5元件安裝與焊接在安裝元件時,一定要慎重,在安裝前要仔細檢測各個元件的好壞,這也是為下一步調試電路打好根底。判斷所用到元件好壞以及引腳的極性,對照裝配圖將元件插入孔中,再用焊錫把元器件焊接好才算完成電路板的根本制作。在焊接元件時要注意順序,一般是先焊高度比擬低的元件。焊接時一般可以按照跳線電阻排阻發光二極管芯片座排針極性電容這樣的順序進行。焊接電路板時應細心,要掌握好焊接要領,防止出現虛焊、假焊或將不該連接的兩線連接起來等會造成短路、斷路等情況。5硬件電路調試5.1硬件電路連接 本次設計的硬件電路分為兩大局部,EPM7128S最小系統和外圍電路。兩局部之間用導線連接起來。 本次設計中用到了最小系統的4、6、9、11、15、17腳用于交通燈信號的輸出,5、8、10、12、16、18、21腳用于交通燈個位倒計時的輸出,22、25、28、30、35、37、40腳用于十位倒計時的輸出。再將晶振輸出端與clk〔即83腳〕連接。 將上述引腳用導線與與之相對應的外圍電路上的元件連接好后,這樣硬件電路的連接就完成了。5.2引腳鎖定和程序下載 最小系統板通過專用下載線與計算機連接,不用通過EDA6000實驗開發系統和偉福6000軟件,所以過程與前面的程序調試驗證中有所不同。 將最小系統板通過下載線連接上計算機后,即可啟動QuartusII對引腳鎖定和程序下載了。如果使用的計算機之前沒有連接過PLD芯片,那么必須按照如下步驟安裝驅動程序。〔1〕安裝QuartusII軟件;〔2〕選擇:控制面板添加硬件硬件是否連接好?選“是“選“添加新的硬件設備〞選“安裝我手動從列表中選擇的硬件〔高級〕〞硬件類型選“聲音、視頻和游戲控制器〞設備驅動程序選“從磁盤安裝〞驅動程序選:安裝目錄\QuartusII\Drivers\win2000型號選:alterabyteblaster,安裝過程安裝完成〔3〕重新啟動計算機,安裝成功 安裝完成并連接上計算機后,點擊QuartusII中的AssignmentDevice選擇相應的PLD元件。點擊AssignmentPins對引腳進行鎖定。下載完成后接上電源翻開開關,啟動程序。5.3在運行過程中出現的問題及解決方法 在完成以上步驟啟動程序后,發現在交通燈控制電路的各方面都運行正常,但是其中存在一個很重要的問題,即芯片過燙。 在查閱資料后可以了解EPM7128S這塊芯片的功耗很大,所以適當的發燙事正?,F象,但是芯片過燙也有其它幾個方面的原因。其中比擬重要的有以下幾點:〔1〕輸入電流太大;〔2〕板子存在虛短路現象;〔3〕I/O引腳與板子上的其他器件電平不匹配產生了很大的電流,時間長了甚至會損壞芯片。針對問題〔1〕,先檢查原來使用的變壓器,可以發現輸入電流在允許范圍之內。所以芯片過燙應該與輸入電流方面的問題無關,問題〔1〕排除。針對問題〔2〕種情況,該最小系統的PCB為工業制版,在仔細觀察和用萬用表檢測后發現電路并無虛短路現象。排除最小系統板后,用同樣的方法檢查外圍電路,發現也無虛短路現象,所以問題〔2〕也可排除掉。針對問題〔3〕種情況,我將外圍電路單獨供電,并選擇單獨的未與其他器件相連的引腳作為輸出引腳;接下來在QuartusII中將未用上的引腳全部設為Asinputs,TriStated。具體步驟:點擊AssignmentsDeviceDevice&PinOptionsUnusedPinsAsinputs,TriStated確定,然后就可以編譯下載了。完成以上操作后,發現芯片發燙問題有了明顯的改善。所以問題應該是出在問題(3)中。完成上述操作,并解決以上問題后,交通燈控制系統能夠正常的運行,任務書中要求的各項功能都能得以實現,可以說本次設計已經獲得了成功。6結論經過大學四年學習的積累,在我已根本掌握了相關專業方面知識的情況下,我嚴肅認真的完成了我的畢業設計。從得到題目到查找資料,從對任務書的研究到完成設計的初步設想,從對VerilogHDL語言的學習到編寫出程序,從對QuartusII、Protel99SE等開發應用軟件的根本了解到熟練運用、從對EDA技術的半知半解到能夠應用并做出成品……這段過程充滿了未知與挑戰。伴隨著對未知領域的探索而有所收獲的喜悅和被未知情況帶來的失敗打擊,我完成了我的畢業設計。本次設計已經不僅僅是對我大學四年所知識的一次綜合運用與總結,更是對我精神上的一次洗禮。在不斷的跌倒與爬起的過程,培養了我的鉆研精神、面對困難的心態和做事的毅力與耐心。在我看來畢業設計的真正意義已不僅僅是對一個工程的設計與實現,也是對做人做事一種態度的培養,更重要的是它搭起了連接大學生活與日后工作的一座橋梁。在這次
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司代理人授權法定代表人聲明3篇
- 家具招標文件編寫技巧詳解指南3篇
- 合同違約解決律師法律3篇
- 堅守法律底線的責任書3篇
- 代購服務委托書3篇
- 定金合同轉讓接收協議3篇
- 發電機組采購招標計劃3篇
- 單位勞動爭議處理委托書范例3篇
- 對講機租借守則3篇
- 建筑工程授權委托書樣本3篇
- 財務機器人開發與應用實戰 課件 任務5 E-mail人機交互自動化-2
- 【華為】通信行業:華為下一代鐵路移動通信系統白皮書2023
- Python 程序設計智慧樹知到期末考試答案章節答案2024年四川師范大學
- 03D201-4 10kV及以下變壓器室布置及變配電所常用設備構件安裝
- 城鄉環衛保潔投標方案(技術標)
- 充值合同范本
- MSDS中文版(鋰電池電解液)
- 《職業病防治法》知識考試題庫160題(含答案)
- 全國初中數學青年教師優質課一等獎《反比例函數的圖象和性質》教學設計
- 2023-2024學年人教版數學八年級下冊期中復習卷
- 環境監測儀器安裝施工方案(更新版)
評論
0/150
提交評論