<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于FPGA的8051微控制器接口實現(xiàn)

          基于FPGA的8051微控制器接口實現(xiàn)

          作者: 時間:2017-06-06 來源:網(wǎng)絡 收藏
          1 引言

          工廠自動化高度實現(xiàn)的今天,單片機的廣泛運用使其需要與各種各樣的外圍設備相連接,而這些外圍設備各不相同,特別是它們的接口多種多樣。因而在運用的時候,不得不考慮它與外圍設備的接口問題,而市售的接口電路大多只供某種特定的外圍設備使用,因此,在一些特殊的運用場合下,用戶不得不自行設計它們之間的接口?,F(xiàn)代可編程器件(如-Field Programmable Gate Array可編程門陣列)的快速發(fā)展,使得自己開發(fā)專用的接口變得非常簡單,同時自主知識產(chǎn)權IP(Intellectual Property)受到越來越多的關注,它們被廣泛運用在片上系統(tǒng)SoC(System on a single Chip)的設計中,IP核就是其中的一種。本文就是采用Xilinx公司的芯片來實現(xiàn)外圍器件與8051的接口,它可以和8051IP核一起集成在同一塊芯片上,從而使接口部分和用戶邏輯更緊密地結合。

          2 接口功能

          這里所說的接口功能主要是指和外圍設備之間的通信功能。該接口的設計采用硬件描述語言VHDL進行描述,而且源代碼運用了大量的常量定義,用戶可以根據(jù)需要來更改這些常量的默認值,直到用戶自己滿意為止,從而達到不同的需求。這種改變就相當于在運用軟件里更 改設置參數(shù)一樣簡單,而且FPGA具有重配置功能,這從而達到不同的需求。這種改變就相當于在運用軟件里更
          改設置參數(shù)一樣簡單,而且FPGA具有重配置功能,使得硬件的升級或者系統(tǒng)方案的變更變得非常簡單。接口的整體框圖如圖1所示。

          本文引用地址:http://www.ex-cimer.com/article/201706/349452.htm 8051與運用邏輯之間的通信通過用戶可定義寄存器組完成,8051微控制器寫數(shù)據(jù)到用戶可定義寄存器組來配置和控制運用邏輯。而運用邏輯通過用戶可定義寄存器組向微控制器寫狀態(tài)信息和服務請求,從而完成微控制器與外圍設備之間的通信。

          3 接口設計

          8051微控制器接口芯片主要由以下模塊組成:地址解碼邏輯、總線接口狀態(tài)機、中斷邏輯、用戶可定義寄存器組、數(shù)據(jù)輸出多路選擇器。其內(nèi)部結構框圖如圖2所示。

          3.1 8051微控制器接口信號定義

          *ADDR[15:8],輸入,微控制器地址總線的高8位;
          *ADDR_DATA[7:0],雙向,微控制器地址/數(shù)據(jù)復用總線;
          *ALE_N,輸入,地址鎖存允許,微控制器控制信號,該信號有效表明目前在地址/數(shù)據(jù)復用總線上的數(shù)據(jù)是有效數(shù)據(jù);
          *PSEN_N,輸入,程序存儲允許,微控制器控制信號,該信號有效表明目前的總線周期可以訪問外部程序存儲器;
          *RD_N,輸入,微控制器進行讀操作的閘門信號;
          *WR_N,輸入,微控制器進行寫操作的閘門信號;
          *INT_N,輸出,中斷請求,運用邏輯產(chǎn)生的中斷請求通過它向微控制器發(fā)送請求;
          *CLK,輸入,同步時鐘信號,由系統(tǒng)提供,在內(nèi)部結構框圖中未標出;
          *RESET,輸入,同步復位信號,有效時系統(tǒng)復位,在內(nèi)部結構框圖中未標出;

          3.2 地址解碼邏輯模塊

          8051微控制器接口芯片的解碼邏輯將當前ADDR總線上的高位字節(jié)解碼作為器件地址,用它來和VHDL代碼里的BASE_ADDR常量進行比較,如果相等,則表明BASE_ADDR指明的器件被選中,同時也包含由ALE_N提供時鐘的寄存器,用以從ADDR_DATA總線獲取地址低位字節(jié),這個地址低位字節(jié)指明了在用戶可定義寄存器組里的寄存器地址。也就是說地址高位字節(jié)用來選擇從設備(這里將8051作為主設備),而地址低位字節(jié)則用來選擇寄存器。


          3.3 總線接口狀態(tài)機

          該狀態(tài)機的設計是本接口設計的關鍵,也是能否完成接口功能的主要控制模塊,只有功能完整、狀態(tài)協(xié)調(diào)的狀態(tài)機才能協(xié)調(diào)整個系統(tǒng)有條不紊地工作。本狀態(tài)機的設計實際上就是將8051總線協(xié)議的文字描述轉(zhuǎn)換為有限狀態(tài)機來描述。本文所描述的8051執(zhí)行同步的總線周期,因此在外部設備和微控制器之間沒有設置握手信號,通過狀態(tài)機的有效控制來完成它們之間的通信。8051微控制器總線協(xié)議在狀態(tài)機理的實現(xiàn)如圖3所示。在第一個周期里,微控制器將地址置于地址總線并激活ALE_N信號,它的有效表明地址/數(shù)據(jù)復用總線和ADDR[15:8]上的地址是有效地址。激活ALE_N后,狀態(tài)機轉(zhuǎn)移到地址解碼狀態(tài)(ADDR_DECODE)等待地址解碼邏輯模塊解碼地址并且判斷是否有器件被選通。若有器件被選中:如果這是寫周期,微控制器從地址/數(shù)據(jù)復用總線撤銷地址并放置所需要寫的數(shù)據(jù)到總線上,然后激活WR_N信號;如果這是讀周期,微控制器使地址/數(shù)據(jù)復用總線呈三態(tài),并激活RD_N以告訴用戶邏輯可以將指定寄存器里的數(shù)據(jù)置于總線上。否則回到閑置狀態(tài)(IDLE)。對于選通的從設備,如果RD_N或WR_N有效,狀態(tài)機將轉(zhuǎn)移到數(shù)據(jù)傳輸狀態(tài)(DATA_TRS)。如果這是寫周期,從數(shù)據(jù)總線來的數(shù)據(jù)被鎖存于指定的寄存器中并使WR_N無效。若是讀周期,微控制器鎖存總線上的數(shù)據(jù)并使RD_N無效。若WR_N或RD_N始終有效,表明數(shù)據(jù)還沒有寫完或讀完,則停留在DATA_TRS狀態(tài),直到數(shù)據(jù)寫完或讀完為止。無論RD_N的無效還是WR_N的無效都將使狀態(tài)機向結束周期狀態(tài)(END_CYCLE)改變。在此狀態(tài)下,地址/數(shù)據(jù)復用總線呈三態(tài),微處理器使ALE_N無效來結束循環(huán),從而回到閑置狀態(tài)IDLE,等待下一周期的到來。

          3.4 用戶可定義寄存器組

          該部分主要是提供給用戶自定義的寄存器組,可以根據(jù)需要進行定義,主要用來為微控制器和運用邏輯之間的通信提供寄存服務。同時它可以被定義為不同作用的寄存器,微控制器通過讀或者寫這些專用的寄存器來決定應用的進程和當前狀態(tài),而運用邏輯通過它向微控制器發(fā)送服務請求。它的存在為該接口的通用性打下了基礎。

          3.5 數(shù)據(jù)輸出多路選擇器和中斷邏輯模塊

          數(shù)據(jù)輸出多路選擇器主要用來在整個讀周期里為地址/數(shù)據(jù)復用總線提供所需的數(shù)據(jù)。中斷邏輯模塊是可以選擇的,它的定義主要是看微控制器是否允許用戶邏輯的中斷操作,這取決于用戶系統(tǒng),可以根據(jù)需要設置中斷的個數(shù)和中斷的優(yōu)先權。

          4 仿真分析和FPGA實現(xiàn)

          為了驗證該設計功能的正確性,從設計系統(tǒng)規(guī)范到最后的布局布線的整個過程中,都需要進行階段性的仿真和驗證。鑒于該系統(tǒng)的復雜性,采用層次化的設計和驗證仿真。將系統(tǒng)劃分為不同的功能模塊(如上所述),分別對其進行RTL(寄存器傳輸級)級描述,并仿真驗證。最后再進行系統(tǒng)的綜合實現(xiàn),即功能模塊的組裝。整個設計采用了自頂向下的設計方法,而仿真驗證則是自底向上的方法。限于篇幅,就不再單一的介紹每個模塊的VHDL設計方法和仿真驗證結果。下面僅給出用Active HDL對系統(tǒng)進行仿真驗證的結果,如圖4所示。仿真結果表明,該狀態(tài)機的設計滿足預期的功能,即能滿足8051微控制器總線協(xié)議的要求,因而能很好地和8051進行通信,各項指標均達到了設計要求。

          本設計采用Xilinx公司的Vertex系列XCCV3004HQ240芯片,該芯片有豐富的可配置邏輯模塊CLBs(Configurable Logic Blocks),大量的觸發(fā)器以及內(nèi)置的不占系統(tǒng)資源的塊RAM,系統(tǒng)最大工作頻率可達200MHz,并且內(nèi)置有延遲鎖相環(huán)DLL(Delay Locked Loop),它可以減少時鐘傳輸?shù)乃p,實現(xiàn)通信的完全同步。在Synplify Pro環(huán)境下對系統(tǒng)進行綜合,綜合結果表明其占用的片內(nèi)資源不到總資源的10%,選擇資源遠遠過剩的Vertex系列的目的是為了在同一塊芯片內(nèi)同時集成8051IP核,完成兩者的綜合實現(xiàn)后,資源略有剩余,這為用戶的硬件升級和系統(tǒng)方案的變更提供了條件。

          5 結束語


          本設計充分利用了Vertex器件的LUTs(Look-Up Tables)替代觸發(fā)器和基本門電路搭建乘法器和加法器這兩個顯著的結構特點,節(jié)省了大量的觸發(fā)器資源,增加了器件利用率、布通率,DLL的運用降低了布線延遲,實現(xiàn)了通信的完全同步。筆者采用Xilinx公司的FPGA芯片自行設計了8051IP核與外圍設備的接口,完成了8051與外圍設備之間的通信功能,并且源代碼中的參數(shù)可調(diào),可作為IP軟核提供給8051開發(fā)用戶,使得用戶從多變的外圍中解脫出來,讓用戶致力于具體的運用設計,以縮短開發(fā)周期。這種實現(xiàn)接口通信的方法適用范圍廣、成本低廉、體積小、可靠性高,具有很高的工程實用價值。


          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();