DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 286|回复: 0
打印 上一主题 下一主题

基于51单片机与CPLD/FPGA接口逻辑设计

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 14:31:53 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
       在功能上,单片机与大规模CPLD有很强的互补性。单片机具有性能价格比高、功能灵活、易于人机对话、良好的数据处理能力潍点;CPLD/FPGA则具有高速、高可靠以及开发便捷、规范等优点。以此两类器件相结合的电路结构在许多高性能仪器仪表和电子产品中仍将被广泛应用。本文就单片机与 CPLD/FPGA的接口方式作一简单介绍,希望对从事单片机和CPLD/FPGA研发的朋友能有所启发。            单片机与CPLD/FPGA的接口方式一般有两种,即总线方式与独立方式,分别说明如下:      

一、总线方式           单片机以总线方式与CPLD/FPGA进行数据与控制信息通信有许多优点。      

;     (1)速度快。如图一所示,其通信工作时序是纯硬件行为,对于MCS-51单片机,只需一条单字节指令就能完成所需的读/写时序,如:           MOV @DPtr,A ;MOV A,@DPtr



                                                           图1 总线       (2)节省CPLD芯片的I/O口线。如图二所示,如果将图中的译码器DECODER设置足够的译码输出,并安排足够的锁存器,就能仅通过19根o口线在FPGW与单片机之间进行各种类型的数据与控制信息交换。     



                                                  图2 CPLD芯片I/O口线       (3)相对于非总线方式,单片机编程简捷,控制可靠。           (4)在CPLD/FPGA中通过逻辑切换,单片机易于与SRAM或ROM接口。这种方式有许多实用之处,如利用类似于微处理器系统的DMA的工作方式,首先由CPLD/FPGA与接口的高速A/D等器件进行高速数据采样,并将数据暂存于SRAM中,采样结束后,通过切换,使单片机与SRAM以总线方式进行数据通信,以便发挥单片机强大的数据处理能力。            单片机与CPLD/FPGA以总线方式通信的逻辑设计,重要的是要详细了解单片机的总线读写时序,根据时序图来设计逻辑结构。图一是MCS-51系列单片机的时序图,其时序电平变化速度与单片机工作时钟频率有关。图中,ALE为地址锁存使能信号,可利用其下降沿将低8位地址锁存于CPLD/FPGA中的地址锁存器(LATCH_ADDRES)中;当ALE将低8位地址通过P0锁存的同时,高8位地址已稳定建立于P2口,单片机利用读指令允许信号PSEN的低电平从外部ROM中将指令从P0口读入,由时序图可见,其指令读入的时机是在PSEN的上升沿之前。接下来,由P2口和P0口分别输出高8位和低8位数据地址,并由ALE的下降沿将P0口的低8位地址锁存于地址锁存器。若需从CPLD/FPGA中读出数据,单片机则通过指令“MOVXA,@DPtr”使 RD信号为低电平,由P0口将图二中锁存器LATCH_IN1中的数据读入累加器A;但若欲将累加器A的数据写进CPLD/FPGA,则需通过指令 “MOVX ·DPtr,A”和写允许信号WR。这时,DPtr中的高8位和低8位数据作为高、低8位地址分别向P2和P0口输出,然后由WR的低电平并结合译码,将累加器A的数据写入图中相关的锁存器。      

二、独立方式           与总线接口方式不同,几乎所有单片机都能以独立

接口方式与CPLD/FPGA进行通信,其通信的时序方式可由所设计的软件自由决定,形式灵活多样。其最大的优点是CPLD/FPGA中的接口逻辑无需遵循单片机内固定总线方式的读/写时序。CPLD/FPGA的逻辑设计与接口的单片机程序设计可以分先后相对独立地完成。事实上,目前许多流行的单片机已无总线工作方式,如89C2051、97C2051、Z84系列、 PICI 6C5X系列等。

       独立方式的接口设计方法比较简单,在此不拟做详细介绍。下面介绍图二所示的总线接口逻辑设计,其外部接口如图三所示。



       这是一个CPLD/FPGA与MCS-51系列单片机接口的VHDL电路设计。MCS-51以总线方式工作,例如,由8031将数据#5AH写入目标器件中的第一个寄存器LATCH_OUT1的批令是:         MOV A,#5AH         MOV DPtr,#6FF5H         MOVX @DPtr,A       当READY为高电平时,8031从目标器件中的寄存器LATCH_IN1将数据读入的指令是:         MOV DPtr,#9F7EH         MOVX A,@DPtr           以上介绍了MCS-51单片机与CPLD/FPGA接口逻辑设计的两种接口方式,希望对从事单片机和CPLD/FPGA研发的朋友能有所启发。
                                
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-8-14 10:51 , 耗时 0.119816 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表