MCS-51單片機(jī)與CPLD/FPGA接口邏輯設(shè)計
單片機(jī)與CPLD/FPGA的接口方式一般有兩種,即總線方式與獨立方式,分別說明如下:
單片機(jī)以總線方式與CPLD/FPGA進(jìn)行數(shù)據(jù)與控制信息通信有許多優(yōu)點。
(1)速度快。如圖一所示,其通信工作時序是純硬件行為,對于MCS-51單片機(jī),只需一條單字節(jié)指令就能完成所需的讀/寫時序,如:
MOV @DPTR,A ;MOV A,@DPTR
圖1 總線
(2)節(jié)省CPLD芯片的I/O口線。如圖二所示,如果將圖中的譯碼器DECODER設(shè)置足夠的譯碼輸出,并安排足夠的鎖存器,就能僅通過19根o口線在FPGW與單片機(jī)之間進(jìn)行各種類型的數(shù)據(jù)與控制信息交換。
圖2 CPLD芯片I/O口線
(3)相對于非總線方式,單片機(jī)編程簡捷,控制可靠。
(4)在CPLD/FPGA中通過邏輯切換,單片機(jī)易于與SRAM或ROM接口。這種方式有許多實用之處,如利用類似于微處理器系統(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è)計,重要的是要詳細(xì)了解單片機(jī)的總線讀寫時序,根據(jù)時序圖來設(shè)計邏輯結(jié)構(gòu)。圖一是MCS-51系列單片機(jī)的時序圖,其時序電平變化速度與單片機(jī)工作時鐘頻率有關(guān)。圖中,ALE為地址鎖存使能信號,可利用其下降沿將低8位地址鎖存于CPLD/FPGA中的地址鎖存器(LATCH_ADDRES)中;當(dāng)ALE將低8位地址通過P0鎖存的同時,高8位地址已穩(wěn)定建立于P2口,單片機(jī)利用讀指令允許信號PSEN的低電平從外部ROM中將指令從P0口讀入,由時序圖可見,其指令讀入的時機(jī)是在PSEN的上升沿之前。接下來,由P2口和P0口分別輸出高8位和低8位數(shù)據(jù)地址,并由ALE的下降沿將P0口的低8位地址鎖存于地址鎖存器。若需從CPLD/FPGA中讀出數(shù)據(jù),單片機(jī)則通過指令“MOVXA,@DPTR”使RD信號為低電平,由P0口將圖二中鎖存器LATCH_IN1中的數(shù)據(jù)讀入累加器A;但若欲將累加器A的數(shù)據(jù)寫進(jìn)CPLD/FPGA,則需通過指令“MOVX
評論