色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

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

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

          作者: 時(shí)間:2017-06-06 來(lái)源:網(wǎng)絡(luò) 收藏
          1 引言

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

          2 接口功能

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

          本文引用地址:http://cafeforensic.com/article/201706/349452.htm 8051與運(yùn)用邏輯之間的通信通過(guò)用戶(hù)可定義寄存器組完成,8051微控制器寫(xiě)數(shù)據(jù)到用戶(hù)可定義寄存器組來(lái)配置和控制運(yùn)用邏輯。而運(yùn)用邏輯通過(guò)用戶(hù)可定義寄存器組向微控制器寫(xiě)狀態(tài)信息和服務(wù)請(qǐng)求,從而完成微控制器與外圍設(shè)備之間的通信。

          3 接口設(shè)計(jì)

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

          3.1 8051微控制器接口信號(hào)定義

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

          3.2 地址解碼邏輯模塊

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


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

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

          3.4 用戶(hù)可定義寄存器組

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

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

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

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

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

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

          5 結(jié)束語(yǔ)


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


          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉