利用P89C669的23 b的线性地址并采用CPLD外部扩展

发布者:创新脑细胞最新更新时间:2011-05-03 来源: 现代电子技术关键字:P89C669  CPLD外部扩展 手机看文章 扫描二维码
随时随地手机看文章


    P89C669是PHILIPS半导体一款51MX(存储器扩展)内核的微处理器,其指令执行速度2倍于标准的80C51器件,线性地址经扩展后可支持高达8 MB的程序存储器和8 MB的数据存储器,这是他相对于标准51内核的最大优点。目前的单片系统越来越复杂,扩展的外部设备也更多,如果能充分利用P89C669的丰富的线性地址资源,将能大大增强系统能力。在一个嵌入式系统开发中,笔者采用ALTERA公司的CPLD芯片EPM7032利用这款单片机的线性地址扩展了丰富的外部设备资源。 


    1 P89C669的存储器结构

    1.1 存储结构

    P89C669的存储器结构为哈佛结构,地址分配如表1所示。

    

 

从表1可见,P89C669对传统的51内核的3部分存储结构进行了相应的扩展,各个部分的片内存储空间也增加了,如内部数据空间有1 280 B在片内,外部数据空间有768 B在片内,有96 kB的片内程序存储空间等。

寻址指令除了传统的MOV,MOVX,MOVC外,EMOV指令与24位的通用指针寄存器EPTR可寻址16MB的全部空间,但是所占用的指令周期也较长。

扩展外部数据存储空问HDATA除了768 B在片内外,其余地址空间可以用来扩展外部设备(其实只要把片内的768 B通过指令将其屏蔽,也可以用来扩展外部设备)。

1.2 P2口的读写时序分析
 

    寻址8 MB的数据存储空间,需要有23 b的地址寻址能力,P89C669将传统51内核的P2高位地址时分复用,从而得到23 b地址寻址能力,时序图如图1所示,即当使用23 b地址时,ALE为高时,地址位A16~A22输出到P2.0~P2.6;ALE为低时,地址位A8~A14输出到P2.0~P2.6。无论ALE为何值,位地址A15都从P2.7输出。

 

2 系统外部设备扩展需求

    在某产品的控制系统中,扩展的外部设备比较丰富,利用P89c669的23 b地址寻址能力进行设备地址编码,所以需要对23 b地址的时序逻辑进行处理,处理单元交给一块ALTERA公司的CPLD(EPM7032)。

    EPM7032具有32个逻辑单元,约600个门级单元,可用IO口36个,内置IEEE std.1149.1 JTAG,方便可编程下载。

    在满足系统资源的前提下,选用EPM7032,将P89C669的P2口作为处理单元输入信号,经过CPLD的内部逻辑进行译码或数据锁存,以获得各个外部设备资源的选择信号及少量的控制信号,如图2所示。

 

 

[page]

    在本设计中,共需要得到设备选择信号如SRAM芯片M68AF127B的片选CS_RAM,2个FLASH ROM芯片SST29SF040的片选CS_ROM0,CS_ROM1,模拟多路选择器SN74LV4052的使能信号线CS_4052,另外还有一些控制信号线,这里就不一一介绍。

    实际上,P2口引入CPLD,就P89C669的23 b地址线而言,用来地址译码和少量的控制信号等主要是利用最高的几位,在本设计中,由于SST29SF040用到地址线A0~A18,所以CPLD的地址译码处理只能是利用剩下的A19~A22,这将在下文的CPLD的译码单元可以看到。

    A0~A7低地址采用74HC573进行锁存,A16~A18地址内容采用74HC574进行锁存,如图3所示。

 

    M68AF127B,SST29SF040,74HCA052的功能连接图如图4所示,74HC4052用于UART口的扩展,如图5所示。

 

3 EPM7032S的逻辑设计

    CPLD的设计采用原理图的方法进行设计,简便快捷,如图6所示,采用74374模块锁存P2口的输入信号,ALE反向后得到_ALE作为74374的锁存时钟线输入。

 

[page]

    对高位的地址线A19~A22进行地址译码,获得各芯片的片选线,如图7所示。

 

    如果不是对SST29SF040进行读写,则高位地址线A16~A18仍然可以利用,这里将其作为74HC4052的3个输入控制线A,B,INH,即图8中的A_4052,B_4052,CS_4052。
 

4 KeilC51平台的外部设备测试

    编写设备驱动程序是在KeilC51的平台上,由于利用了P89C669的23 b地址线,在C51的平台上采用指针读写设备很方便,这里给出读写SRAM芯片M68AF127B的C源代码例子,以供参考。

    以上3句为测试SRAM的测试代码,START_EX-TRAM为SRAM芯片的起始地址(可根据CPLD的内部设计进行相应的修改),第2,3句分别是写、读数据的宏。

5 结 语

    利用P89C669的23 b的线性地址并采用CPLD扩展外部设备资源可以说是不错的一个方法,对外部设备的访问将显得更加简便,当然,在成本方面系统设计工程师也要加以考虑,并最终寻找一个性价比最高的方案。

 

关键字:P89C669  CPLD外部扩展 引用地址:利用P89C669的23 b的线性地址并采用CPLD外部扩展

上一篇:8位MCU直流变频抽油烟机方案
下一篇:80C51与C8051F系列单片机的相比较初始化

小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved