位置:首页 > IC型号导航 > 首字符D型号页 > 首字符D的型号第20页 > DS89C440-ENL > DS89C440-ENL PDF资料 > DS89C440-ENL PDF资料3第21页

DS89C430 / DS89C440 / DS89C450超高速闪存微控制器
程序存储器访问
片内程序存储器开始地址为0000h ,并连续通过3FFFH ( 16KB)的DS89C430 ,
通过7FFFh表示( 32KB)的DS89C440 ,并通过FFFFh时( 64KB)的DS89C450 。超过最大
片内程序存储器的地址,使设备访问片外存储器。解码芯片上的最大
地址是使用ROMSIZE功能,通过软件进行选择。软件可引起DS89C430表现得像一个
设备具有较少的片上存储器。这是有益的,当重叠的外部存储器被使用。最大
内存大小是动态变化的。因而存储器的一部分可以从存储器映射表中删除访问
片外存储器,然后恢复到访问片上存储器。事实上,所有的片上存储器,可移除
从存储器映射允许充分64kB的存储器空间被从片外存储器寻址。节目
是比所选择的最大值更大的存储器地址从所述部分以外自动获取
通过端口0和2 。
图6
示出存储器映射的描述。
该ROMSIZE寄存器用来选择芯片上解码的地址为程序存储器的最大值。位RMS2 ,
RMS1和RMS0具有以下效果:
RMS2
0
0
0
0
1
1
1
1
RMS1
0
0
1
1
0
0
1
1
RMS0
0
1
0
1
0
1
0
1
最大的片上程序存储器
地址(尺寸/地址)
0kB
1kB/03FFh
2kB/07FFh
4kB/0FFFh
8kB/1FFFh
16KB / 3FFFH ( DS89C430默认)
具有32kB / 7FFFh表示( DS89C440默认)
64KB / FFFFh时( DS89C450默认)
所有设备的复位默认状态是对他们最大的片上程序存储器的大小。当访问
外部程序存储器,外部存储器的金额将无法访问。要选择较小的有效
程序内存大小,软件必须改变位RMS2 - RMS0 。改变这些位需要定时访问
程序,如后所述。
应注意,这样改变ROMSIZE寄存器不会破坏程序的执行。例如,
假设一个DS89C430正在执行12KB边界附近,从内部程序存储器指令
( 3000H ),而ROMSIZE寄存器当前配置为16kB的内部程序空间。如果软件
重新配置ROMSIZE寄存器为4KB ( 0000H - 0FFFH )在当前的状态下,设备立即跳转到
外部程序执行,因为从4kB的程序代码在16kB ( 1000H - 3FFFH )不再位于片。
这可能会导致不对准代码和执行一个无效的指令的。推荐的方法是
之前和之后的修改从内存中的位置是内部(或外部)的ROMSIZE寄存器
操作。在上面的例子中,修改该ROMSIZE寄存器中的指令应该位于下方的
4kB的( 1000小时)边界或16kB的( 3FFFH )边界的上方,使得它不受存储器修改。
如果内部程序存储器大小修改,而从执行相同的预防措施应适用
外部程序存储器。
对于nonpage模式操作,片外存储器时使用的多路地址/数据总线上的P0和访问的
MSB解决对P2 。同时作为一个存储器总线,这些引脚都没有I / O端口。这种约定如下
8051标准方法扩展片上存储器。片外程序存储器访问也会发生,如果
EA
引脚
逻辑0 。
EA
覆盖所有ROMSIZE位的设置。该
PSEN
信号变为有效(低) ,作为一个芯片使能或
输出使能时,端口0和2 ,从外部程序存储器取。
该
RD
和
WR
信号被用来控制外部数据存储装置。数据存储是通过MOVX访问
指令。该MOVX @日指令使用在指定的工作寄存器中的值提供的LSB
地址,而端口2提供的地址最高位。该MOVX @ DPTR指令使用两个数据指针中的一个
移动数据在整个64kB的外部数据存储器空间中。软件选择采用书面形式的数据指针
在SEL位( DPS.0 ) 。
该DS89C430还通过重新配置外部提供高速外部存储器访问权限的用户的选择
内存接口进入页面模式操作。
注意:
当使用原8051扩展总线结构中,通过与该比较降低75 %
的内部操作。这是因为被拖延了四分之三的时钟的CPU,等待数据
21 48