《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > MCS-51單片機(jī)與CPLD/FPGA接口邏輯設(shè)計(jì)
MCS-51單片機(jī)與CPLD/FPGA接口邏輯設(shè)計(jì)
摘要: 在功能上,,單片機(jī)與大規(guī)模CPLD有很強(qiáng)的互補(bǔ)性。單片機(jī)具有性能價(jià)格比高,、功能靈活,、易于人機(jī)對(duì)話、良好的數(shù)據(jù)處理能力濰點(diǎn),;CPLD/FPGA則具有高速,、高可靠以及開發(fā)便捷、規(guī)范等優(yōu)點(diǎn),。以此兩類器件相結(jié)合的電路結(jié)構(gòu)在許多高性能儀器儀表和電子產(chǎn)品中仍將被廣泛應(yīng)用,。本文就單片機(jī)與CPLD/FPGA的接口方式作一簡(jiǎn)單介紹,希望對(duì)從事單片機(jī)和CPLD/FPGA研發(fā)的朋友能有所啟發(fā),。
關(guān)鍵詞: CPLD MCS-51 FPGA 接口
Abstract:
Key words :

       在功能上,,單片機(jī)與大規(guī)模CPLD有很強(qiáng)的互補(bǔ)性。單片機(jī)具有性能價(jià)格比高,、功能靈活,、易于人機(jī)對(duì)話、良好的數(shù)據(jù)處理能力濰點(diǎn),;CPLD/FPGA則具有高速,、高可靠以及開發(fā)便捷、規(guī)范等優(yōu)點(diǎn),。以此兩類器件相結(jié)合的電路結(jié)構(gòu)在許多高性能儀器儀表和電子產(chǎn)品中仍將被廣泛應(yīng)用,。本文就單片機(jī)與CPLD/FPGA的接口方式作一簡(jiǎn)單介紹,希望對(duì)從事單片機(jī)和CPLD/FPGA研發(fā)的朋友能有所啟發(fā),。    

       單片機(jī)與CPLD/FPGA的接口方式一般有兩種,,即總線方式與獨(dú)立方式,分別說(shuō)明如下:

      

 

一,、總線方式   

       單片機(jī)以總線方式與CPLD/FPGA進(jìn)行數(shù)據(jù)與控制信息通信有許多優(yōu)點(diǎn),。   

       (1)速度快。如圖一所示,其通信工作時(shí)序是純硬件行為,,對(duì)于MCS-51單片機(jī),,只需一條單字節(jié)指令就能完成所需的讀/寫時(shí)序,如:    

       MOV @DPTR,A ;MOV A,@DPTR

總線

                                                           圖1 總線

       (2)節(jié)省CPLD芯片的I/O口線,。如圖二所示,,如果將圖中的譯碼器DECODER設(shè)置足夠的譯碼輸出,并安排足夠的鎖存器,,就能僅通過19根o口線在FPGW與單片機(jī)之間進(jìn)行各種類型的數(shù)據(jù)與控制信息交換,。    

CPLD芯片I

                                                  圖2 CPLD芯片I/O口線

       (3)相對(duì)于非總線方式,單片機(jī)編程簡(jiǎn)捷,,控制可靠,。   

       (4)在CPLD/FPGA中通過邏輯切換,單片機(jī)易于與SRAM或ROM接口,。這種方式有許多實(shí)用之處,,如利用類似于微處理器系統(tǒng)的DMA的工作方式,首先由CPLD/FPGA與接口的高速A/D等器件進(jìn)行高速數(shù)據(jù)采樣,,并將數(shù)據(jù)暫存于SRAM中,,采樣結(jié)束后,通過切換,,使單片機(jī)與SRAM以總線方式進(jìn)行數(shù)據(jù)通信,,以便發(fā)揮單片機(jī)強(qiáng)大的數(shù)據(jù)處理能力。     

       單片機(jī)與CPLD/FPGA以總線方式通信的邏輯設(shè)計(jì),,重要的是要詳細(xì)了解單片機(jī)的總線讀寫時(shí)序,,根據(jù)時(shí)序圖來(lái)設(shè)計(jì)邏輯結(jié)構(gòu)。圖一是MCS-51系列單片機(jī)的時(shí)序圖,,其時(shí)序電平變化速度與單片機(jī)工作時(shí)鐘頻率有關(guān),。圖中,ALE為地址鎖存使能信號(hào),,可利用其下降沿將低8位地址鎖存于CPLD/FPGA中的地址鎖存器(LATCH_ADDR ES)中;當(dāng)ALE將低8位地址通過P0鎖存的同時(shí),,高8位地址已穩(wěn)定建立于P2口,,單片機(jī)利用讀指令允許信號(hào)PSEN的低電平從外部ROM中將指令從P0口讀入,由時(shí)序圖可見,,其指令讀入的時(shí)機(jī)是在PSEN的上升沿之前,。接下來(lái),由P2口和P0口分別輸出高8位和低8位數(shù)據(jù)地址,,并由ALE的下降沿將P0口的低8位地址鎖存于地址鎖存器,。若需從CPLD/FPGA中讀出數(shù)據(jù),單片機(jī)則通過指令“MOVXA,,@DPTR”使RD信號(hào)為低電平,,由P0口將圖二中鎖存器LATCH_IN1中的數(shù)據(jù)讀入累加器A,;但若欲將累加器A的數(shù)據(jù)寫進(jìn)CPLD/FPGA,則需通過指令“MOVX ·DPTR,,A”和寫允許信號(hào)WR,。這時(shí),DPTR中的高8位和低8位數(shù)據(jù)作為高,、低8位地址分別向P2和P0口輸出,,然后由WR的低電平并結(jié)合譯碼,將累加器A的數(shù)據(jù)寫入圖中相關(guān)的鎖存器,。

      

 

二,、獨(dú)立方式   

       與總線接口方式不同,幾乎所有單片機(jī)都能以獨(dú)立接口方式與CPLD/FPGA進(jìn)行通信,,其通信的時(shí)序方式可由所設(shè)計(jì)的軟件自由決定,,形式靈活多樣。其最大的優(yōu)點(diǎn)是CPLD/FPGA中的接口邏輯無(wú)需遵循單片機(jī)內(nèi)固定總線方式的讀/寫時(shí)序,。CPLD/FPGA的邏輯設(shè)計(jì)與接口的單片機(jī)程序設(shè)計(jì)可以分先后相對(duì)獨(dú)立地完成,。事實(shí)上,目前許多流行的單片機(jī)已無(wú)總線工作方式,,如89C2051,、97C2051、Z84系列,、PICI 6C5X系列等,。

       獨(dú)立方式的接口設(shè)計(jì)方法比較簡(jiǎn)單,在此不擬做詳細(xì)介紹,。下面介紹圖二所示的總線接口邏輯設(shè)計(jì),,其外部接口如圖三所示。

外部接口


       這是一個(gè)CPLD/FPGA與MCS-51系列單片機(jī)接口的VHDL電路設(shè)計(jì),。MCS-51以總線方式工作,,例如,由8031將數(shù)據(jù)#5AH寫入目標(biāo)器件中的第一個(gè)寄存器LATCH_OUT1的批令是:  

       MOV A,,#5AH  
       MOV DPTR,,#6FF5H  
       MOVX @DPTR,A

       當(dāng)READY為高電平時(shí),,8031從目標(biāo)器件中的寄存器LATCH_IN1將數(shù)據(jù)讀入的指令是:  

       MOV DPTR,,#9F7EH  
       MOVX A,@DPTR   

       以上介紹了MCS-51單片機(jī)與CPLD/FPGA接口邏輯設(shè)計(jì)的兩種接口方式,,希望對(duì)從事單片機(jī)和CPLD/FPGA研發(fā)的朋友能有所啟發(fā),。

 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。