新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 80C51原始IP核内部RAM的扩展方案

80C51原始IP核内部RAM的扩展方案

作者:时间:2008-07-02来源:单片机与嵌入式系统应用收藏

  引言

本文引用地址:http://www.eepw.com.cn/article/85158.htm

  系列单片机是一类经典的8位微处理器,其设计方法和体系结构一直是其他各类单片机设计的参考典范,自从20世纪80年代面世以后,得到了极大的发展与应用。直到今天,市场上还有一大部分单片机应用成品将其作为处理核心。基于系列单片机无知识产权保护、市场应用广泛等优点,对其进行功能拓展,既有利于经济上节约成本,也有利于成果的推广使用。而随着单片机应用日趋复杂化,传统的51系列单片机在设计上的不足逐渐显现出来。如在现有128字节内部基础上,处理一些比较复杂的算法就显不足。鉴于此,本文在Oregano公司设计的8051 (即下述MC8051)基础上,进行了对其内部高128字节扩展。给出一种新的扩展设计方法,实现了对与一般区地址空间相连的高128字节的间接寻址操作,并以此为基础,对内部RAM进行了可达64 KB的扩展实现,通过了相应的软硬件仿真测试。

  1 对MC8051高位128字节的扩展设计

  对MC8051高位128字节的扩展设计主要分3个方面加以说明:一是传统系列的内部基本结构;二是高128字节的寻址方式;三是对内部的RAM地址选择控制。

  1.1 传统80C51系列的内部基本结构

  80C51是经典的单片机系列,具有典型的单片机体系结构,由CPU系统、ROM、RAM、I/O口以及特殊功能SFR、2个16位定时/计数器、5个中断源和1个串口组成。针对本文所要讨论的内容,这里介绍一下80C51存储结构和寻址方式:80C51系列单片机存储器结构采用哈佛型结构,物理上共分片内外程序存储器、片内外数据存储器4个存储空间。对于数据存储器,片内外数据存储器地址彼此独立,指令寻址各自不同,这里主要关注片内数据存储单元的结构。

  8051单片机共有7种寻址方式,这里只对其中3种作一下简要介绍:立即寻址,操作码后的一个字节就是实际操作数本身;寻址,操作码后为某一编号,寄存器的内容为操作数;寄存器间接寻址,其与寄存器寻址的区别在于前者寄存器中的内容就是操作数,而后者寄存器中的内容为操作数地址,此地址指向的寄存器中存入的数据才是实际操作数本身。

  1.2 高128字节的寻址方式

  由前面介绍内容可知,MC8051内部RAM分为地址相连、功能不同的两部分:低128字节的内部用户RAM区和高128字节的特殊功能寄存器区(SFR)。这两部分均可用寄存器直接、间接寻址方式进行寻址操作。经过设计修改的8051,低128字节的功能和操作方式完全不变,对其高128字节,分为地址重叠和功能不同的两部分,以不同的寻址方式加以区别,控制操作。高128字节如果作为内部用户RAM使用,只可以通过寄存器R0、R1进行寻址,以地址为85H的寄存器单元为例,若此时85H作为SFR,则用命令“MOV 85H, #33H”;若此时作为一般内部用户RAM单元,则用命令:

  MOV R0,# 85H

  MOV @R0,#33H

  在MC8051中,寄存器R0、R1只应用于寄存器间接寻址使用,即R0、R1中存储的内容为间接寻址中操作数的地址。对高128地址空间,如果作为一般的RAM寄存区使用,只采用间接寻址;如果作为特殊功能寄存器区(SFR),则采取除间接寻址外的其他寻址方式。这样就可以通过只对R0、R1中内容进行条件判定,确定是否触发对高128地址空间进行一般RAM数据操作。

  1.3 内部的RAM地址选择控制

  在MC8051中,对低128字节用户RAM区的读写有专门的地址输出ram_address_out。由于1个字节的寻址长度为256,所以ram_address_out只取内部地址s_adr低7位,即ram_address_out<=s_adr(6 downto 0),辅以RAM写使能控制,实现对低128字节的读写。这里由于要对RAM区扩展成为256字节,所以用户RAM区的地址应该可以寻址256字节长度。这就要求对IP核中对RAM区的地址传递有相应的修改,修改后地址的具体传递过程如图1所示。

图1 RAM地址传递控制

  一个完整的执行过程如下所述:首先CPU从ROM读取指令,然后到内部状态机进行指令解释,送入译码器执行具体的数据和地址的存取操作(译码器中通过地址多路选择器adr_mux和数据多路选择器data_mux来实现对地址和数据的控制)。如果此时命令不涉及寄存器间接寻址,由图1可知,取到的RAM地址就是一般8051的执行结果。如果此时进行寄存器间接寻址,则可分为两种情况:一是对高128字节的间接寻址,此时的操作目的,是要对高128字节进行一般RAM的数据操作;二是除第一种情况外的一般寄存器间接寻址操作。由于SFR不能使用寄存器间接寻址,所以这两种情况可以根据R0、R1中存储的地址的最高位进行判别。


上一页 1 2 下一页

关键词: IP核 RAM 80C51 寄存器

评论


相关推荐

技术专区

关闭