您现在的位置: 主页 > 嵌入式处理器 > FPGA > 基于单片机与FPGA的总线接口逻辑设计 - FPGA/ASIC技术 -
本文所属标签:
为本文创立个标签吧:

基于单片机与FPGA的总线接口逻辑设计 - FPGA/ASIC技术 -

来源: 网络用户发布,如有版权联系网管删除 2018-08-11 

长期以来,单片机以其性能价格比高、体积小、功能灵活、可靠性高、易于人机对话和良好的数据处理能力等方面所具有的独特优点,被广泛应用于各个领域。但受其内部资源的限制,在很多应用中,单片机需要在片外扩展相关资源,如程序存储器、数据存储器、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所示。

MCS-51与FPGA/CPLD总线接口逻辑设计

 

图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相连即可。

MCS-51与FPGA/CPLD总线接口逻辑设计

图2 独立方式原理框图

2 总线接口逻辑设计

由于单片机以总线方式与FPGA/CPLD进行数据与控制信息通信有许多优点,因此在设计中,单片机与FPGA/CPLD接口采用总线方式。

2.1 接口设计思想

对MCS51单片机与FPGA/CPLD以总线方式通信的逻辑接口设计,应该详细了解MCS51单片机的总线读/写时序,并根据时序图来设计逻辑结构。MCS51单片机总线读/写的时序如图3所示,其时序电平变化速度与单片机工作时钟频率有关。

MCS-51与FPGA/CPLD总线接口逻辑设计

 

图3 MCS51单片机总线读/写时序

CLK为单片机时钟信号,ALE为地址锁存使能信号。在读/写周期开始后,CPU把低8位地址送到P0口总线上,把高8位地址送到P2口总线上,利用ALE下降沿可将低8位地址锁存于地址锁存器中,而高8位地址信息一直锁存在P2口锁存器中;同时单片机利用读指令允许信号PSEN的低电平从ROM中将指令从P0口读入,其指令读入的时机是在PSEN的上升沿之前。接下来,由P2口和P0口分别输出高8位和低8位数据地址,并由ALE的下降沿将P0口的低8位地址锁存于地址锁存器。然后根据读/写信号的状态读写外部数据,把数据送到P0口总线上;数据读/写的时机是在读/写信号的上升沿之前,将数据读入单片机或写入被寻址的地址单元。当读/写信号变为无效电平后,P0口总线变为悬浮状态,为下次总线读/写做好准备。



              查看评论 回复



嵌入式交流网主页 > 嵌入式处理器 > FPGA > 基于单片机与FPGA的总线接口逻辑设计 - FPGA/ASIC技术 -
 

"基于单片机与FPGA的总线接口逻辑设计 - FPGA/ASIC技术 -"的相关文章

网站地图

围观()