單片機與FPGA邏輯接口設計說明_第1頁
單片機與FPGA邏輯接口設計說明_第2頁
單片機與FPGA邏輯接口設計說明_第3頁
單片機與FPGA邏輯接口設計說明_第4頁
單片機與FPGA邏輯接口設計說明_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、單片機與FPGA/CPLD接口邏輯設計 偉 學號 0903609029班級 通信工程單片機與FPGA/CPLD接口邏輯設計一 論文摘要:設計一種基于MCS-51單片機與FPGA通信的接口邏輯電路,實現(xiàn)單片機與可編程邏輯器件數(shù)據(jù)與控制信息的可靠通信。使可編程邏輯器件與單片機相結(jié)合,優(yōu)勢互補,組成靈活的、軟硬件都可現(xiàn)場編程的控制系統(tǒng)。設計采用的是VHDL語言的文本輸入方式,設計比較靈活,按照接口的要求設計邏輯電路。接口主要有并行接口和總線接口,總線接口是由波特率發(fā)生器、接收器和發(fā)送器模塊組成,通過各模塊的功能設計接口邏輯。利用仿真軟件Quartus 進行分析綜合、功能仿真與時序仿真,生成分析報告以

2、及部邏輯電路,并得出仿真結(jié)果,驗證接口的可行性。關鍵詞:單片機,F(xiàn)PGA,接口邏輯,數(shù)據(jù)通信二 2-1 緒論§2-1-1設計思想:FPGA作為一種新型的可編程邏輯器件,可以取代現(xiàn)有的全部微機接口芯片,實現(xiàn)微機系統(tǒng)中的存儲器、地址譯碼等多種功能,具有更高的密度、更快的工作速度和更大的編程靈活性,被廣泛的應用于各種電子類產(chǎn)品中。在功能上,單片機具有性價比高、功能靈活、易于人機對話、強大的數(shù)據(jù)處理能力等特點。但受其部資源的限制,在很多應用中,單片機需要在片外擴展相關資源,如程序存儲器、數(shù)據(jù)存儲器、I/O口以及中斷源等;而FPGA具有高速、高可靠性以及開發(fā)便捷、規(guī)等優(yōu)點,使其有機結(jié)合,縮短開

3、發(fā)周期,適應市場需要。FPGA/CPLD具有高速、高可靠以及開發(fā)便捷、規(guī)等優(yōu)點,在功能上與單片機有很強的互補性。因此兩類器件相組合的電路結(jié)構(gòu)將在許多高性能儀器儀表和電子產(chǎn)品中被廣泛應用?;谶@種需求,本文設計了單片機與FPGA的總線接口邏輯電路,實現(xiàn)了單片機與FPGA數(shù)據(jù)與控制信息的可靠通信,是FPGA與單片機優(yōu)勢互補,組成靈活的、軟硬都可現(xiàn)場編程的控制系統(tǒng),廣泛應用在各個領域§2-1-2 FPGA技術(shù)發(fā)展概況國外發(fā)展狀況自1985年Xilinx公司推出第一片現(xiàn)場可編程邏輯器件(FPGA)至今,F(xiàn)PGA已經(jīng)歷了十幾年的發(fā)展歷史。在這十幾年的發(fā)展過程中,以FPGA為代表的數(shù)字系統(tǒng)現(xiàn)場集

4、成技術(shù)取得了驚人的發(fā)展:現(xiàn)場可編程邏輯器件從最初的1200個可利用門,發(fā)展到90年代的25萬個可利用門,乃至當新世紀來臨之即,國際上現(xiàn)場可編程邏輯器件的著名廠商Altera公司、Xilinx公司又陸續(xù)推出了數(shù)百萬門的單片F(xiàn)PGA芯片,將現(xiàn)場可編程器件的集成度提高到一個新的水平。目前,F(xiàn)PGA技術(shù)憑借它的獨特優(yōu)勢,已經(jīng)躍之為電子應用(包括通訊技術(shù)、計算機應用、自動控制、儀器儀表、ASIC 設計)領域廣受歡迎的實用化技術(shù),成為數(shù)字系統(tǒng)的科研實驗、樣機試制、小批量產(chǎn)品的即時實現(xiàn)的最佳途徑。同時,F(xiàn)PGA 器件的新功能、新構(gòu)思正在不斷出現(xiàn),向更高密度、更大容量、更低功耗和集成更多IP的方向發(fā)展,國際各

5、大公司都在積極擴充其IP庫,以優(yōu)化的資源越好來滿足用戶的需求,不斷擴大市場,特別是引人注目的FPGA可動態(tài)可重構(gòu)技術(shù)的開拓,將推動數(shù)字系統(tǒng)設計的巨大變革目前FPGA/ CPLD供貨商全部來自美國公司,主要是Xilinx、Altera、Lattice、Actel、Atmel 等。其中以Xilinx和Altera的市場占有率最大,是最大的可編程集成電路供貨商。國的FPGA技術(shù)發(fā)展也非常迅速,很多公司通過和國際上的大公司保持長期的合作,提高專業(yè)的技術(shù)指導和培訓,培養(yǎng)更多的FPGA人才,憑借國巨大的市場需求、豐富的人力資源,以及穩(wěn)定的經(jīng)濟發(fā)展和優(yōu)越的政府扶持等眾多優(yōu)勢條件,近幾年,可編程邏輯器件產(chǎn)業(yè)取

6、得了飛速發(fā)展,不斷研制出性能更好的產(chǎn)品,價格也不斷降低,很大程度上降低了設計者的開發(fā)成本FPGA技術(shù)的應用及發(fā)展趨勢(1) 深亞微米技術(shù)的發(fā)展正在推動了片上系統(tǒng)(SOPC)的發(fā)展。(2)芯片朝著高密度、低壓、低功耗的方向挺進。(3)IP庫的發(fā)展及其作用。(4)速度不斷提高,性能不斷提升。(5)FPGA動態(tài)可重構(gòu)技術(shù)意義深遠2-2總線接口邏輯設計方案由于單片機以總線方式與FPGA/CPLD進行數(shù)據(jù)與控制信息通信有許多優(yōu)點,因此在設計中,單片機與FPGA/CPLD接口采用總線方式。§2-2-1設計原理對MCS51單片機與FPGA/CPLD以總線方式通信的邏輯接口設計,應該詳細了解MCS5

7、1單片機的總線讀/寫時序,并根據(jù)時序圖來設計邏輯結(jié)構(gòu)。MCS51單片機總線讀/寫的時序如圖3所示,其時序電平變化速度與單片機工作時鐘頻率有關。圖3MCS51單片機總線讀/寫時序CLK為單片機時鐘信號,ALE為地址鎖存使能信號。在讀/寫周期開始后,CPU把低8位地址送到P0口總線上,把高8位地址送到P2口總線上,利用ALE下降沿可將低8位地址鎖存于地址鎖存器中,而高8位地址信息一直鎖存在P2口鎖存器中;同時單片機利用讀指令允許信號PSEN的低電平從ROM中將指令從P0口讀入,其指令讀入的時機是在PSEN的上升沿之前。接下來,由P2口和P0口分別輸出高8位和低8位數(shù)據(jù)地址,并由ALE的下降沿將P0

8、口的低8位地址鎖存于地址鎖存器。然后根據(jù)讀/寫信號的狀態(tài)讀寫外部數(shù)據(jù),把數(shù)據(jù)送到P0口總線上;數(shù)據(jù)讀/寫的時機是在讀/寫信號的上升沿之前,將數(shù)據(jù)讀入單片機或?qū)懭氡粚ぶ返牡刂穯卧.斪x/寫信號變?yōu)闊o效電平后,P0口總線變?yōu)閼腋顟B(tài),為下次總線讀/寫做好準備。通過對MCS51單片機總線讀/寫時序的分析,可以在FPGA/CPLD中設計一個總線接口模塊,實現(xiàn)單片機三總線信號的編碼。由于在總線應用時,MCS51單片機的P0口是作為地址/數(shù)據(jù)總線分時復用的,因此應在總線接口模塊中設計一個三態(tài)緩沖器,實現(xiàn)P0口的三態(tài)接口;又因為MCS51單片機在訪問外部空間時,它的地址為16位,因此借助地址鎖存使能信號AL

9、E在FPGA/CPLD中實現(xiàn)高8位與低8位地址的編碼,組合成16位地址,然后再根據(jù)MCS51單片機的讀/寫信號,實現(xiàn)對FPGA/CPLD的讀寫操作。§2-3總線接口設計過程論述通過對MCS51單片機總線讀/寫時序的分析,設計了圖4所示的接口電路。在FPGA/CPLD中,設計了兩個模塊:一個是總線接口模塊,負責單片機與FPGA/CPLD的總線接口邏輯;另一個是寄存器單元及外部接口模塊,運用總線接口模塊來操作此模塊。圖4MCS51單片機與FPGA/CPLD總線接口框圖圖中整個總線接口邏輯模塊將MCS51單片機的三總線信號編碼成5個信號輸出:16位地址信號addr16、讀使能信號RD_EN

10、、寫使能信號WR_EN、數(shù)據(jù)輸出信號Din及數(shù)據(jù)輸入信號Dout。在總線接口模塊中,又分為3個小模塊:三態(tài)緩沖模塊、鎖存器模塊及編碼模塊。三態(tài)緩沖模塊實現(xiàn)與單片機P0口接口;鎖存器模塊利用ALE信號鎖存單片機輸出的低8位地址。利用其下降沿將低8位地址鎖存于FPGA/CPLD中的地址鎖存器(address latch)中;當ALE將低8位地址通過P0及三態(tài)緩沖器鎖存的同時,高8位地址已穩(wěn)定建立于P2口;通過編碼模塊將高8位與低8位地址組合成16位地址addr16。同時根據(jù)單片機的讀/寫控制信號編碼成RD_EN與WR_EN使能信號。若需從FPGA/CPLD中讀出數(shù)據(jù),單片機則通過指令“MOVXA,

11、DPTR”使RD信號為低電平,使能RD_EN信號,由P0口將圖中地址addr16所指單元的數(shù)據(jù)讀入累加器A;但若將累加器A的數(shù)據(jù)寫進FPGA/CPLD中,單片機則需通過指令“MOVX DPTR,A”和寫允許信號WR。這時,DPTR中的高8位和低8位數(shù)據(jù)作為高、低8位地址分別向P2和P0口輸出,然后經(jīng)ALE信號下降沿鎖存,產(chǎn)生16位地址addr16。再由WR的低電平使能WR_EN信號,將累加器A的數(shù)據(jù)經(jīng)P0口及三態(tài)緩沖器寫入圖中16位地址addr16所對應的單元中。實現(xiàn)單片機對FPGA/CPLD的讀/寫操作。§2-4 結(jié)果分析通過Quartus 軟件對總線接口的邏輯設計進行設計,建立相

12、應的波形文件來進行仿真,檢測是否可行,并對占有資源、時序分析等相關因素進行分析,反復調(diào)試并分析得出的仿真結(jié)果,生成邏輯設計的部電路,證明單片機與FPGA總線接口邏輯可行,由于門電路及邏輯走線造成一定的延時,實踐證明都在ns級別,基本上可以忽略,但是因為造成的延時,時序仿真時會出現(xiàn)毛刺,有待進一步研究消除。三 結(jié)論本文的研究目的主要是針對單片機與FPGA總線接口邏輯設計,運用EDA技術(shù)對邏輯設計進行仿真,生成部邏輯電路圖,以實現(xiàn)單片機與FPGA之間的數(shù)據(jù)和控制信號的通信。設計以Altera公司的Cyclone系列芯片為硬件平臺,單片機芯片為核心,利用EDA技術(shù)的開發(fā)軟件Quartus 對總線接口

13、進行邏輯設計,按照接口的相關要求進行優(yōu)化,生成分析報告,并顯示邏輯設計占用FPGA芯片的邏輯單元和引腳數(shù),完成部邏輯設計,并對延時和存在的問題進行分析,以驗證接口是否按要求可行,使得單片機與FPGA數(shù)據(jù)與控制信息的通信更加可靠、有效。單片機與FPGA總線接口的設計主要是按照單片機的讀/寫時序設計邏輯電路,利用單片機的接口和控制信號來完成并行數(shù)據(jù)的傳輸,并對邏輯設計進行了功能仿真和時序仿真及相關的分析,得出相應的結(jié)論,由仿真圖顯示證明該接口可行,可以用來擴展單片機的外部資源及其功能,結(jié)合兩者的優(yōu)勢,很大程度地提高了數(shù)據(jù)處理能力和容量空間。設計中對接口邏輯進行了仿真分析,得出仿真結(jié)果以及各自占用F

14、PGA芯片的部資源,同時生成編程文件及接口邏輯的部詳細電路,以便后期的下載驗證。設計的不足之處:沒有實現(xiàn)硬件仿真,與實際的延時會有一定的誤差,對于信號在FPGA的部走線和通過邏輯單元時造成的延時,組合邏輯輸出時會產(chǎn)生毛刺,可能會導致數(shù)據(jù)的錯誤,目前已經(jīng)有一些消除毛刺的方法,有待進一步研究和改善。四 附錄其源程序如下FPGA/CPLD部寄存器地址定義library IEEE;use IEEE.STD_LOGIC_1164.all;PACKAGE Interface ISCONSTANT ADDR_REG1 :STD_LOGIC_VECTOR(15 DOWNTO 0):=X"FFF1&q

15、uot;CONSTANT ADDR_REG2 :STD_LOGIC_VECTOR(15 DOWNTO 0):=X"FFF2"CONSTANT ADDR_REG3 :STD_LOGIC_VECTOR(15 DOWNTO 0):=X"FFF3"CONSTANT ADDR_REG4 :STD_LOGIC_VECTOR(15 DOWNTO 0):=X"FFF4"END Interface;-FPGA/CPLD-讀/寫操作library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_ar

16、ith.all;use IEEE.std_logic_unsigned.all;use work.Interface.all;entity MCS51_FPGA isport (P0 : inout STD_LOGIC_VECTOR (7 downto 0);P2 : in STD_LOGIC_VECTOR (7 downto 0);ALE: in STD_LOGIC;WR : in STD_LOGIC;RD : in STD_LOGIC;LED: out STD_LOGIC_VECTOR (2 downto 0);end MCS51_FPGA;Architecture C51_FPGA_BU

17、S OF MCS51_FPGA IS-16位地址signal C51_Addr16:STD_LOGIC_VECTOR(15 downto 0);-部寄存器signal Data :STD_LOGIC_VECTOR(31 downto 0);-WR/RD 使能signal WR_EN:STD_LOGIC;signal RD_EN:STD_LOGIC;-地址鎖存 begin Address_p:process(ALE) begin If ALE'event and ALE='0' and ALE'LAST_VALUE='1'then C51_Addr

18、16<=P2&P0; end if; end process;WR_EN<= (WR AND RD) OR WR;RD_EN<= (WR AND RD) OR RD;-讀FPGA部寄存器P0 <=Data(7 downto 0)when C51_Addr16=ADDR_REG1 and RD_EN ='0'ELSE Data(15 downto 8) when C51_Addr16=ADDR_REG2 and RD_EN ='0'ELSE Data(23 downto 16)when C51_Addr16=ADDR_REG3 and RD_EN ='0'ELSE Data(31 downto 24)when C51_Addr16=ADDR_REG4 and RD_EN ='0'ELSE "ZZZZZZZZ"- 在未

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論