夏云超
摘? ?要:高速信號(hào)處理系統(tǒng)基本圍繞DSP與FPGA設(shè)計(jì)實(shí)現(xiàn)解決方案,F(xiàn)PGA具有并行速度高、處理能力強(qiáng)、擴(kuò)展性強(qiáng)、可用于ASIC設(shè)計(jì)的優(yōu)勢(shì),然而FPGA硬件解決方案在實(shí)現(xiàn)低速外設(shè)、用戶界面、用戶交互方面相較于嵌入式軟件解決方案開(kāi)發(fā)周期長(zhǎng)、開(kāi)發(fā)人員少、公共開(kāi)發(fā)資源少。因此,基于FPGA與MCU的聯(lián)合解決方案能有效集合上述優(yōu)點(diǎn),具有良好的應(yīng)用前景,但是需要一種FPGA與MCU的穩(wěn)定、通用的通信接口設(shè)計(jì)。文章提出的MCS-8051系列單片機(jī)是廣泛使用的MCU平臺(tái),內(nèi)部集成有Intel-8080總線控制器,故FPGA可以設(shè)計(jì)一種兼容Intel-8080總線協(xié)議的通信接口以實(shí)現(xiàn)MCU與FPGA的通信。
關(guān)鍵詞:高速信號(hào);單片機(jī);現(xiàn)場(chǎng)可編程邏輯門陣列
1? ? Intel-8080總線的實(shí)現(xiàn)
MSC-8051系列處理器采用Intel-8080外部總線與外部擴(kuò)展內(nèi)存通信,現(xiàn)場(chǎng)可編程邏輯門陣列(Field Programmable Gate Array,F(xiàn)PGA)與單片機(jī)接口可按照Intel-8080總線規(guī)范設(shè)計(jì),模擬為總線上的外部擴(kuò)展內(nèi)存,使單片機(jī)可使用擴(kuò)展內(nèi)存訪問(wèn)指令向FPGA傳輸數(shù)據(jù)(MOVX @DPTR,A)或從FPGA獲取數(shù)據(jù)(MOVX A,@DPTR)。
如圖1所示,ALE為地址鎖存信號(hào),高電平有效;WR為數(shù)據(jù)寫入信號(hào),低電平有效;RD為數(shù)據(jù)讀取信號(hào);P0為總線地址bit7~bit0與總線數(shù)據(jù)bit7~bit0復(fù)合信號(hào);CLK為FPGA全局時(shí)鐘,RST為FPGA全局復(fù)位;其余信號(hào)輸入輸出線為映射到總線上的寄存器。
作為總線從設(shè)備,F(xiàn)PGA應(yīng)實(shí)現(xiàn)當(dāng)單片機(jī)發(fā)出讀取請(qǐng)求時(shí)把對(duì)應(yīng)地址的寄存器值輸出到總線上,當(dāng)單片機(jī)請(qǐng)求寫入時(shí)把對(duì)應(yīng)地址寄存器按總線內(nèi)容賦值。
由于此設(shè)計(jì)中使用的總線地址不大于256個(gè),因此可使用8位地址線,高8位地址線可不接,以節(jié)省板面空間。
2? ? 讀取時(shí)序?qū)崿F(xiàn)
參考Intel-8080總線讀取時(shí)序圖,設(shè)計(jì)讀取控制電路,滿足時(shí)序要求。如圖2所示,ALE由總線主機(jī)提供(單片機(jī)),讀取數(shù)據(jù)時(shí)主機(jī)首先拉高ALE,同時(shí)主機(jī)于P0與P2輸出16位地址。ALE高電平持續(xù)tLHLL時(shí)間后,主機(jī)拉低ALE信號(hào),此時(shí)從機(jī)收到ALE低電平,鎖存地址總線信號(hào)。經(jīng)過(guò)tLLWL時(shí)間后,主機(jī)拉低RD信號(hào),并高阻P0接口。當(dāng)總線從機(jī)(FPGA)收到RD低電平信號(hào)時(shí),從機(jī)根據(jù)鎖存的地址尋址映射表,將對(duì)應(yīng)寄存器數(shù)據(jù)讀出,于總線P0上輸出。經(jīng)過(guò)tRLRH時(shí)間后,主機(jī)拉高RD信號(hào),從機(jī)收到RD高電平時(shí),高阻P0。經(jīng)過(guò)這一時(shí)序,單片機(jī)可使用一條MOVX A,@DPTR指令從FPGA讀取1個(gè)字節(jié)指定數(shù)據(jù)。
FPGA的實(shí)現(xiàn)方法為:
(1)使用ALE為時(shí)鐘線控制8位D觸發(fā)器,鎖存地址信號(hào)。
(2)使用鎖存后的地址信號(hào)控制數(shù)據(jù)選擇器(MUX)選通寄存器數(shù)據(jù)(從寄存器到總線接口方向)。
(3)使用內(nèi)部時(shí)鐘同步化RD信號(hào)。
(4)使用同步的RD作為OE線控制P0的三態(tài)門,控制選通后的寄存器數(shù)據(jù)。
3? ? 寫入時(shí)序?qū)崿F(xiàn)
參考Intel-8080總線寫入時(shí)序圖,設(shè)計(jì)寫入控制電路,滿足時(shí)序要求。如圖3所示,ALE由總線主機(jī)提供(單片機(jī)),讀取數(shù)據(jù)時(shí)主機(jī)首先拉高ALE,同時(shí)主機(jī)于P0與P2輸出16位地址。ALE高電平持續(xù)tLHLL時(shí)間后,主機(jī)拉低ALE信號(hào),此時(shí)從機(jī)收到ALE低電平,鎖存地址總線信號(hào)。經(jīng)過(guò)tLLWL時(shí)間后,主機(jī)拉低WR信號(hào),于P0上輸出寫入的數(shù)據(jù)。經(jīng)過(guò)tWLWH時(shí)間后,主機(jī)拉高WR信號(hào),從機(jī)收到WR上升沿時(shí),從機(jī)根據(jù)鎖存的地址尋址映射表,將P0上的數(shù)據(jù)寫入對(duì)應(yīng)寄存器。經(jīng)過(guò)這一時(shí)序,單片機(jī)可使用一條MOVX @DPTR,A指令向FPGA寫入1個(gè)字節(jié)指定數(shù)據(jù)。
FPGA的實(shí)現(xiàn)方法為:
(1)使用ALE為時(shí)鐘線控制8位D觸發(fā)器,鎖存地址信號(hào)。
(2)使用鎖存后的地址信號(hào)控制數(shù)據(jù)譯碼器(從總線接口向寄存器方向)。
(3)使用內(nèi)部時(shí)鐘同步化WR信號(hào),并判斷同步后的WR上升沿。
(4)使用同步的WR的上升沿標(biāo)志與地址譯碼結(jié)果邏輯與作為寄存器數(shù)據(jù)鎖存CE信號(hào),控制總線信號(hào)向寄存器數(shù)據(jù)寫入。
4? ? 結(jié)語(yǔ)
依據(jù)上述設(shè)計(jì)的基于FPGA的Intel-8080總線在與STC8A8K進(jìn)行總線通信時(shí),通信穩(wěn)定,具有良好的實(shí)際應(yīng)用價(jià)值。
Study on implementation of Intel-8080 bus based on FPGA
Xia Yunchao
(Guilin University of Electronic Technology, Guilin 541004, China)
Abstract:The high-speed signal processing system basically revolves around the design and implementation of DSP and FPGA. FPGA has the advantages of high parallel speed, strong processing ability, strong expansibility and can be used in ASIC design. However, FPGA hardware solution has the advantages of long development cycle, fewer developers and fewer public development resources than embedded software solution in realizing low speed peripherals, user interface and user interaction. Therefore, the joint solution based on FPGA and MCU can effectively combine the above advantages and has a good application prospect, but it needs a stable and general communication interface design between FPGA and MCU. The MCS-8051 series single-chip microcomputer is a widely used MCU platform, and the inside is integrated with the Intel-8080 bus controller, so the FPGA can design a communication interface compatible with the Intel-8080 bus protocol to realize the communication between the MCU and the FPGA.
Key words:high speed signal; single chip microcomputer; field programmable gate array