<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于51單片機與CPLD/FPGA接口邏輯設計

基于51單片機與CPLD/FPGA接口邏輯設計

作者: 時(shí)間:2012-01-18 來(lái)源:網(wǎng)絡(luò ) 收藏
在功能上,單片機與大規模CPLD有很強的互補性。單片機具有性能價(jià)格比高、功能靈活、易于人機對話(huà)、良好的數據處理能力濰點(diǎn);CPLD/FPGA則具有高速、高可靠以及開(kāi)發(fā)便捷、規范等優(yōu)點(diǎn)。以此兩類(lèi)器件相結合的電路結構在許多高性能儀器儀表和電子產(chǎn)品中仍將被廣泛應用。本文就單片機與 CPLD/FPGA的接口方式作一簡(jiǎn)單介紹,希望對從事單片機和CPLD/FPGA研發(fā)的朋友能有所啟發(fā)。

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

一、總線(xiàn)方式


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

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

MOV @DPTR,A ;MOV A,@DPTR

總線(xiàn)

圖1 總線(xiàn)

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

CPLD芯片I

圖2 CPLD芯片I/O口線(xiàn)

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

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

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

二、獨立方式

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

獨立方式的接口設計方法比較簡(jiǎn)單,在此不擬做詳細介紹。下面介紹圖二所示的總線(xiàn)設計,其外部接口如圖三所示。

外部接口


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

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

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

MOV DPTR,#9F7EH  
MOVX A,@DPTR

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



關(guān)鍵詞: 51單片機 接口邏輯

評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>