夏云超
摘? ?要:高速信號處理系統(tǒng)基本圍繞DSP與FPGA設(shè)計實現(xiàn)解決方案,F(xiàn)PGA具有并行速度高、處理能力強、擴展性強、可用于ASIC設(shè)計的優(yōu)勢,然而FPGA硬件解決方案在實現(xiàn)低速外設(shè)、用戶界面、用戶交互方面相較于嵌入式軟件解決方案開發(fā)周期長、開發(fā)人員少、公共開發(fā)資源少。因此,基于FPGA與MCU的聯(lián)合解決方案能有效集合上述優(yōu)點,具有良好的應用前景,但是需要一種FPGA與MCU的穩(wěn)定、通用的通信接口設(shè)計。文章提出的MCS-8051系列單片機是廣泛使用的MCU平臺,內(nèi)部集成有Intel-8080總線控制器,故FPGA可以設(shè)計一種兼容Intel-8080總線協(xié)議的通信接口以實現(xiàn)MCU與FPGA的通信。
關(guān)鍵詞:高速信號;單片機;現(xiàn)場可編程邏輯門陣列
1? ? Intel-8080總線的實現(xiàn)
MSC-8051系列處理器采用Intel-8080外部總線與外部擴展內(nèi)存通信,現(xiàn)場可編程邏輯門陣列(Field Programmable Gate Array,F(xiàn)PGA)與單片機接口可按照Intel-8080總線規(guī)范設(shè)計,模擬為總線上的外部擴展內(nèi)存,使單片機可使用擴展內(nèi)存訪問指令向FPGA傳輸數(shù)據(jù)(MOVX @DPTR,A)或從FPGA獲取數(shù)據(jù)(MOVX A,@DPTR)。
如圖1所示,ALE為地址鎖存信號,高電平有效;WR為數(shù)據(jù)寫入信號,低電平有效;RD為數(shù)據(jù)讀取信號;P0為總線地址bit7~bit0與總線數(shù)據(jù)bit7~bit0復合信號;CLK為FPGA全局時鐘,RST為FPGA全局復位;其余信號輸入輸出線為映射到總線上的寄存器。
作為總線從設(shè)備,F(xiàn)PGA應實現(xiàn)當單片機發(fā)出讀取請求時把對應地址的寄存器值輸出到總線上,當單片機請求寫入時把對應地址寄存器按總線內(nèi)容賦值。
由于此設(shè)計中使用的總線地址不大于256個,因此可使用8位地址線,高8位地址線可不接,以節(jié)省板面空間。
2? ? 讀取時序?qū)崿F(xiàn)
參考Intel-8080總線讀取時序圖,設(shè)計讀取控制電路,滿足時序要求。如圖2所示,ALE由總線主機提供(單片機),讀取數(shù)據(jù)時主機首先拉高ALE,同時主機于P0與P2輸出16位地址。ALE高電平持續(xù)tLHLL時間后,主機拉低ALE信號,此時從機收到ALE低電平,鎖存地址總線信號。經(jīng)過tLLWL時間后,主機拉低RD信號,并高阻P0接口。當總線從機(FPGA)收到RD低電平信號時,從機根據(jù)鎖存的地址尋址映射表,將對應寄存器數(shù)據(jù)讀出,于總線P0上輸出。經(jīng)過tRLRH時間后,主機拉高RD信號,從機收到RD高電平時,高阻P0。經(jīng)過這一時序,單片機可使用一條MOVX A,@DPTR指令從FPGA讀取1個字節(jié)指定數(shù)據(jù)。
FPGA的實現(xiàn)方法為:
(1)使用ALE為時鐘線控制8位D觸發(fā)器,鎖存地址信號。
(2)使用鎖存后的地址信號控制數(shù)據(jù)選擇器(MUX)選通寄存器數(shù)據(jù)(從寄存器到總線接口方向)。
(3)使用內(nèi)部時鐘同步化RD信號。
(4)使用同步的RD作為OE線控制P0的三態(tài)門,控制選通后的寄存器數(shù)據(jù)。
3? ? 寫入時序?qū)崿F(xiàn)
參考Intel-8080總線寫入時序圖,設(shè)計寫入控制電路,滿足時序要求。如圖3所示,ALE由總線主機提供(單片機),讀取數(shù)據(jù)時主機首先拉高ALE,同時主機于P0與P2輸出16位地址。ALE高電平持續(xù)tLHLL時間后,主機拉低ALE信號,此時從機收到ALE低電平,鎖存地址總線信號。經(jīng)過tLLWL時間后,主機拉低WR信號,于P0上輸出寫入的數(shù)據(jù)。經(jīng)過tWLWH時間后,主機拉高WR信號,從機收到WR上升沿時,從機根據(jù)鎖存的地址尋址映射表,將P0上的數(shù)據(jù)寫入對應寄存器。經(jīng)過這一時序,單片機可使用一條MOVX @DPTR,A指令向FPGA寫入1個字節(jié)指定數(shù)據(jù)。
FPGA的實現(xiàn)方法為:
(1)使用ALE為時鐘線控制8位D觸發(fā)器,鎖存地址信號。
(2)使用鎖存后的地址信號控制數(shù)據(jù)譯碼器(從總線接口向寄存器方向)。
(3)使用內(nèi)部時鐘同步化WR信號,并判斷同步后的WR上升沿。
(4)使用同步的WR的上升沿標志與地址譯碼結(jié)果邏輯與作為寄存器數(shù)據(jù)鎖存CE信號,控制總線信號向寄存器數(shù)據(jù)寫入。
4? ? 結(jié)語
依據(jù)上述設(shè)計的基于FPGA的Intel-8080總線在與STC8A8K進行總線通信時,通信穩(wěn)定,具有良好的實際應用價值。
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