受其内部资源的限制,在很多应用中,单片机需要在片外扩展相关资源,如程序存储器,数据存储器,IO口,以及中断源等等。一般情况下51单片机地址线为16根(P0及P2),因此其地址空间为 ,也即64K。考虑到某些不需要高速度的应用场合,可以用单片机的一个八位IO口(如P0),多次输出地址,通过CPLD将这些地址位整合起来,并输出到相应的设备,这样,即可实现用单片机的一个八位IO口来实现多位地址的功能。
1. 51单片机扩展FLASH存储器
51单片机的系统扩展以单片机的P2口作为指令地址的高八位,P0口作为低八位地址并复用为数据线。下面以扩展ATMEL公司的AT29C020 flash芯片为例,该芯片地址线18根,容量为256K字节,其读写时序如图1:

如果采用上述常用接法,则用P0口通过74LS373接AT29C020地址低八位,同时P0接AT29C020的八位数据口,P2接高八位地址,而AT29C020的A16,A17两位地址位接P1.0,P1.1,从而由P1.0,P1.1与P0和P2口共同构成18位地址线

可见,为满足18位地址的AT29C020,单片机共用去了包括P0,P1,P2在内的18个IO口,同时考虑到P3口一般复用为其他功能,如果系统还需要进行其它的IO操作(比如将flash中的数据输出到LCD显示),硬件资源已经是捉襟见肘。并且随着存储器的容量进一步扩大,IO资源将更加紧张。所以在下文中,将讨论如何使用CPLD芯片来扩展单片机的寻址空间。
2. MAX7128S CPLD
CPLD属于ASIC,其内部有大量的门电路,通过软件编程可以实现这些门电路的不同连接关系,从而使CPLD对外完成不同的功能,而这些连接关系可以通过软件的改变而不断的改变。从功能上来看,CPLD可以完成任何数字器件的功能,上至高性能的CPU,下至简单的74电路。
目前,最大的两家PLD/FPGA厂商分别是ALTERA以及XILINX,其中Altera 公司的产品基本上都属于CPLD 结构。由于它的内部连线均采用连续式互联结构,MAX 系列是Altera 目前最为流行,使用最广泛的两个系列之一。本文所采用的MAX7128S芯片就是属于MAX7000S系列的一款CPLD芯片,它包含1800个可用门,96个宏单元。
3. 相关硬件及接线示意图
本应用中单片机选用PHILIPS公司的P89C61X2,相关硬件连接示意图见图三

4.CPLD及单片机程序设计
在应用中,将CPLD的4,5,6,8,9,10,11,12,15,16,17,18,20,21,22,24,25,27脚配置成连接AT29C020地址线,将46,48,49,50,51,52,54,55脚配置成接受单片机P0口地址数据的输入口,并将41,44脚配置成连接FLASH芯片的WE,OE引脚。
顶一下 0
踩一下
相关文章
用户评论
已有0位网友发表了看法
400-810-1218
热点技术




发表评论