《51单片机应用开发范例大全(第3版)》——2.3 CPLD实现端口扩展-阿里云开发者社区

开发者社区> 异步社区> 正文

《51单片机应用开发范例大全(第3版)》——2.3 CPLD实现端口扩展

简介:
+关注继续查看

本节书摘来异步社区《51单片机应用开发范例大全(第3版)》一书中的第2章,第2.1节,作者:张杰 , 宋戈 , 黄鹤松 , 员玉良,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.3 CPLD实现端口扩展

单片机与大规模CPLD有很强的互补性。单片机具有性价比高、功能灵活、易于实现人机对话和良好的数据处理能力等优点;CPLD/FPGA则具有高速度、高可靠性以及开发便捷、灵活等优点。以此两类器件相结合的电路结构在许多高性能仪器仪表和电子产品中已经被广泛应用。

单片机与CPLD/FPGA的接口方式一般有两种,即总线方式与独立方式。

1.总线方式
单片机以总线方式与CPLD/FPGA进行数据与控制信息通信有如下优点。

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

Data_tem=CPLD_addr; CPLD_addr = Data_tem;```
其中,CPLD_addr为地址,Data_tem为数据暂存单元。

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

<div style="text-align: center"><img src="https://yqfile.alicdn.com/28c841ce951ce82fb25c9f8f1264f08acf410f6a.png" width="" height="">
</div>

(3)与非总线方式相比较,单片机编程简捷,控制可靠。

在CPLD/FPGA中通过逻辑切换,单片机易于与SRAM或ROM接口。这种方式有许多优势,如利用类似于微处理器系统的DMA的工作方式,首先由CPLD/FPGA与接口的高速A/D等器件进行高速数据采样,并将数据暂存于SRAM中,采样结束后,通过切换,使单片机与SRAM以总线方式进行数据通信,以便发挥单片机强大的数据处理能力。

根据单片机外部操作时序,ALE为地址锁存使能信号,可利用其下降沿将低8位地址锁存于CPLD/FPGA中的地址锁存器(LATCH_ADDRES)中;当ALE将低8位地址通过P0锁存的同时,高8位地址已稳定建立于P2口,单片机利用读指令允许信号PSEN的低电平从外部ROM中将指令从P0口读入,其指令读入的时机是在PSEN的上升沿之前。

接下来,由P2口和P0口分别输出高8位和低8位数据地址,并由ALE的下降沿将P0口的低8位地址锁存于地址锁存器。若需从CPLD/FPGA中读出数据,单片机则通过指令“Data_tem = CPLD_addr”使RD信号为低电平,由P0口将锁存器LATCH_IN1中的数据读入累加器A;但若欲将累加器A的数据写进CPLD/FPGA,则需通过指令“CPLD_addr = Data_tem”和写允许信号WR。

这时,DPTR中的高8位和低8位数据作为高、低8位地址分别向P2和P0口输出,然后由WR的低电平并结合译码,将累加器A的数据写入图2-14中相关的锁存器。

<div style="text-align: center"><img src="https://yqfile.alicdn.com/0a9661595005096f02ac791a8d526b9736227e9e.png" width="" height="">
</div>

由8051将数据#5AH写入目标器件中的第一个寄存器LATCH_OUT1的指令是:

define DAT_OUT1 XBYTE[0X6FFF5H]

unsigned char dat;
DAT_OUT1=dat;`
当READY为高电平时,8051从目标器件中的寄存器LATCH_IN1将数据读入的指令是:

#define DAT_IN1 XBYTE[0X6FFF5H]
unsigned char dat;
dat= DAT_IN1;```
2.独立方式
和总线接口方式不同,几乎所有单片机都能以独立接口方式与CPLD/FPGA进行通信,其通信的时序方式可由所设计的软件自由决定,形式灵活多样。其最大的优点是CPLD/FPGA中的接口逻辑无需遵循单片机内固定总线方式的读/写时序。CPLD/FPGA的逻辑设计与接口的单片机程序设计可以分先后相对独立地完成。事实上,目前许多流行的单片机已无总线工作方式,如AT89C2051、97C2051、Z84系列、PIC16C5X系列等。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
《例说8051:单片机程序设计案例教程》——导读
从8048开始,“单片机”即成为广受欢迎的代名词,8051更成为电机、电子类专业必修的课程。当然,应用单片机制作电子系统项目,既简单又经济实惠,早已成为学生的最爱。在电路设计方面,需求量较大、电路较复杂的系统可采用为客户专用而设计的IC(即ASIC),如芯片组、控制芯片等,虽然ASIC的单位成本不高,但总体成本很高、开发时间也比较长。
834 0
关于NOR_FLASH的大小在单片机程序中的应用
在单片机开发中,NOR_FLASH常用的有4M和8M的大小: 4M的FLASH在程序中可以这样表示:Ptr < 0x220000 8M的FLASH在程序中可以这样表示:Ptr < 0x400000(最大只能读到0x3fffff) 有了这个关系,在判断NOR_FLASH好坏的方法上我们可以采用计算checksum的方式来校验。
631 0
《Node.js 实战》预售: 实例讲解 Node.js 在实战开发中的应用
CNode 社区的 4 位大牛合力撰写的 《Node.js 实战》一书,现在当当、京东、亚马逊、互动等各大网店火热预售中。
118 0
+关注
异步社区
异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
11939
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载