MCS-51与与FPGA/CPLD总线接口逻辑设计总线接口逻辑设计
设计一种基于MCS51单片机与FPGA/CPLD的总线接口逻辑电路,实现单片机与可编程逻辑器件数据与控制信
息的可靠通信,使可编程逻辑器件与单片机相结合,优势互补,组成灵活的、软硬件都可现场编程的控制系
统。设计中采用VHDL语言,实现MCS51单片机与FPGA/CPLD的总线接口逻辑设计。实验表明,该总线接口逻
辑电路工作稳定、可靠,使MCS51单片机与FPGA/CPLD能够完美结合。
引言
长期以来,单片机以其性能价格比高、体积小、功能灵活、可靠性高、易于人机对话和良好的数据处理能力等方面所具有的独
特优点,被广泛应用于各个领域。但受其内部资源的限制,在很多应用中,单片机需要在片外扩展相关资源,如程序存储器、
数据存储器、I/O口以及中断源等。随着可编程逻辑器件(PLD)及EDA技术的发展,在系统设计中经常会用到FPGA/CPLD来扩
展单片机的相关资源,使其有机结合,缩短开发周期,适应市场需要。FPGA/CPLD具有高速、高可靠以及开发便捷、规范等
优点,在功能上与单片机有很强的互补性。以此两类器件相结合的电路结构在许多高性能仪器仪表和电子产品中被广泛应用。
基于这种需求,笔者设计了MCS51单片机与FPGA/CPLD的总线接口逻辑电路,实现了单片机与FPGA/CPLD数据与控制信息
的可靠通信,使FPGA/CPLD与单片机优势互补,组成灵活的、软硬件都可现场编程的控制系统。
1单片机与FPGA/CPLD的接口方式
单片机与FPGA/CPLD的接口方式一般有两种,即总线方式与独立方式。
1.1总线方式
MCS51单片机具有很强的外部总线扩展能力,利用片外三总线结构(即数据总线、地址总线、控制总线)很容易实现单片机
与FPGA/CPLD的总线接口。其基本原理框图如图1所示。
图1总线方式原理框图
单片机与FPGA/CPLD以总线方式通信的逻辑设计,重要的是要详细了解单片机的总线读写时序,根据时序图来设计逻辑结
构,其通信的时序必须遵循单片机内固定的总线方式读/写时序。FPGA/CPLD的逻辑设计也相对比较复杂,在程序设计上必须
与接口的单片机程序相结合,严格安排单片机能访问的I/O空间。但是,单片机以总线方式与FPGA/CPLD进行数据与控制信息
通信也有许多优点:
◆ 速度快。其通信工作时序是纯硬件行为,对于MCS51单片机,只需一条单字节指令就能完成所需的读/写时序,如“MOV
@DPTR,A”和“MOV A,@DPTR”。
◆ 节省PLD芯片的I/O口线。仅通过19根I/O口线,就能在FPGA/CPLD与单片机之间进行各种类型的数据与控制信息交换。
◆ 相对于非总线方式,单片机编程简捷,控制可靠。
◆ 在CPLD/FPGA中通过逻辑切换,单片机易于与SRAM或ROM接口。这种方式有许多实用之处,如利用类似于微处理器系
统的DMA的工作方式,首先由FPGA/CPLD与接口的高速器件进行高速数据采样,并将数据暂存于SRAM中采样结束后,通过
切换,使单片机与SRAM以总线方式进行数据通信,以便发挥单片机强大的数据处理能力。
1.2独立方式
与总线接口方式不同,几乎所有单片机都能以独立接口方式与FPGA/CPLD进行通信,其通信的时序方式可由所设计的软件自
由决定,形式灵活多样。其最大的优点是FPGA/CPLD中的接口逻辑无需遵循单片机内固定总线方式的读/写时序。
FPGA/CPLD的逻辑设计与接口的单片机程序设计可以分先后相对独立地完成。事实上,目前许多流行的单片机已无总线工作
方式,采用独立方式可以很好地使它们与FPGA/CPLD结合。独立方式的接口设计方法比较简单,其基本原理框图如图2所
示。直接将单片机的I/O端口线与FPGA/CPLD的I/O相连即可。
图2独立方式原理框图
2总线接口逻辑设计
由于单片机以总线方式与FPGA/CPLD进行数据与控制信息通信有许多优点,因此在设计中,单片机与FPGA/CPLD接口采用