【技术实现步骤摘要】
本专利技术涉及一种基于MCS-51架构的16M字节程序存储器寻址空间扩充方法,可应用于基于8051指令体系的单片微控制器,亦可应用于其它微控制器、微处理器等领域。
技术介绍
程序存储器(Code Memory)是用来存放用户指令程序的一段空间,微控制器或是微处理器通过执行这些指令程序,从而实现和完成某种特殊的功能和任务。基于Intel MCS-51架构的微处理器有16位地址总线,可以寻址64K字节的程序存储器空间。根据系统的特定需要和相应的功能要求,这个64K字节的空间一般包括程序主模块以及许多的调用子模块和中段子模块。对于含有算法及其复杂、程序量巨大的系统,主程序有可能包括许多子模块,子模块还有可能嵌套其他子模块,由于算法很复杂,所以每个子模块的容量也极有可能非常庞大,譬如数字图像处理系统,数字图像处理本身就含有海量的算法,且每种算法可能非常复杂,如果此系统还包括知识库的管理、知识自学习等功能,那么64K字节的程序存储器空间将远远不能满足此类系统的需求。又由于基于Intel MCS-51架构的微控制器是应用极为广泛的一类处理器,使用历史悠久,有丰富的第三方支持软件和仿真工具,为广大工程师所熟悉,因此如能在既不改变指令系统又不增加地址总线的情况下,扩充程序存储器的寻址空间到16M字节,将大大提高8051架构微控制器的性能。
技术实现思路
本专利技术的目的在于提供一种基于MCS-51架构的程序存储器寻址空间扩充方法,在地址总线不增加,和整个指令体系不变的情况下,外部程序存储器寻址空间从64K字节扩充到16M字节,从而使基于MCS-51架构的微控制器能够运行大 ...
【技术保护点】
一种基于MCS-51架构的16M字节程序存储器寻址空间扩充方法,基于8051体系,其特征在于:采用分时复用的方法,对程序存储器进行分段辅助设计,将可寻址16M字节的程序存储空间划分为256个段,段地址由高八位程序地址决定,共有256个段地址,每一个段内有64K字节的程序寻址空间,由程序地址的中八位和低八位程序地址决定段内地址,在地址总线不增加,和整个指令体系不变的情况下使外部程序存储器寻址空间从64K字节扩充到16M字节;其具体步骤为:a.设定段地址特殊功能寄 存器ROM_DUAN,来确定高八位程序地址;b.根据段地址产生的条件和情况的不同,对程序存储器寻址空间扩充操作中高八位程序地址的产生考虑以下四种情况,并设定相关信号:(a)用户直接给出的段地址;(b)中断/调用操作后 返回的段地址;(c)段地址自增;(d)相对跳转后的段地址;c.程序指针计数器PROGRAM_COUNTER的确定;d.程序地址寄存器PROGA的确定。
【技术特征摘要】
1.一种基于MCS-51架构的16M字节程序存储器寻址空间扩充方法,基于8051体系,其特征在于采用分时复用的方法,对程序存储器进行分段辅助设计,将可寻址16M字节的程序存储空间划分为256个段,段地址由高八位程序地址决定,共有256个段地址,每一个段内有64K字节的程序寻址空间,由程序地址的中八位和低八位程序地址决定段内地址,在地址总线不增加,和整个指令体系不变的情况下使外部程序存储器寻址空间从64K字节扩充到16M字节;其具体步骤为a.设定段地址特殊功能寄存器ROM_DUAN,来确定高八位程序地址;b.根据段地址产生的条件和情况的不同,对程序存储器寻址空间扩充操作中高八位程序地址的产生考虑以下四种情况,并设定相关信号(a)用户直接给出的段地址;(b)中断/调用操作后返回的段地址;(c)段地址自增;(d)相对跳转后的段地址;c.程序指针计数器PROGRAM_COUNTER的确定;d.程序地址寄存器PROGA的确定。2.根据权利要求1所述的基于MCS-51架构的16M字节程序存储器寻址空间扩充方法,其特征在于所述的设定段地址特殊功能寄存器ROM_DUAN的方法为确定段地址特殊功能寄存器ROM_DUAN的地址为FFH,大小为8位,程序存储器16M字节寻址空间的高八位地址由此寄存器内的内容决定;系统复位后,ROM_DUAN的值为#00H;它的值除了可以由用户自行定义以外,还可以由系统自动更新,来确定下一条指令地址的高八位。3.根据权利要求1所述的基于MSC-51架构的16M字节程序存储器寻址空间扩充方法,其特征在于所述的根据段地址产生的四种情况下设定相关信号的具体步骤为a.REG_RESULT用户自行定义的段地址内容8位寄存器;ROM_DUAN_WRITE对段地址特殊功能寄存器ROM_DUAN进行写操作的写有效信号(低电平有效);当ROM_DUAN_WRITE信号为低电平时,REG_RESULT的值写入段地址特殊功能寄存器ROM_DUAN内;b.两个由堆栈内弹出的8位数据XRAMDI从外部数据存储器堆栈弹出的段地址内容;SOURCE_DI从内部数据存储器堆栈弹出的段地址内容;当ISP_INUSE信号为“1”时,SOURCE_DI的值在C1P3先传送给中间变量寄存器ROM_DUAN_RET,先暂存24位程序地址的高八位,在CLP2由ROM_DUAN_RET寄存器传给段地址特殊功能寄存器ROM_DUAN;当ISP_INUSE信号为“0”时,XRAMDI的值在C2P2先传送给中间变量寄存器ROM_DUAN_RET,先暂存24位程序地址的高8位,在CLP2由ROM_DUAN_RET寄存器传给段地址特殊功能寄存器ROM_DUAN。ISP_INUSE是一个判断信号,值为1时,表示堆栈处在内部数据存储器上;值为0时,表示堆栈处在外部数据存储器上;c.ROM_0用户无法访问,由硬件自动产生的值,保存着段地址自增一以后的值当程序顺序执行(无跳转和调用情况),发生跨段情况时,既当程序指针计数器PROGRAM_COUNTER的当前值为#0FFFFH时,并且下一个程序地址寄存器NEXT_PROGRAM_ADDR的值为#0000H时,ROM_0的值赋给段地址特殊功能寄存器ROM_DUAN,形成新的程序地址寄存器PROGA高八位值;d.ROM_1用户无法访问,由硬件自动产生的值,保存着段地址自减一以后的值当程序执行相对跳转指令后,如果发生了跨段的情况,即程序指针指向了下一个段或上一个段时,段地址特殊功能寄存器会自动更新。如果向下跳转,那么ROM_0的值赋给ROM_DUAN;如果向上跳转,那么ROM_1的值赋给ROM_DUAN。4.根据权利要求1所述的基于MCS-51架构的16M字节程序存储器寻址空间扩充方法,其特征在于所述的确定程序指针计数器PROGRAM_COUNTER的具体步骤为16位程序指针计数器PROGRAM_COUNTER由下一个程序地址寄存器NEXT_PROGRAM_ADDR组成。5.根据权利要求1所述的基于...
【专利技术属性】
技术研发人员:胡越黎,曹家麟,冉峰,景蔚亮,
申请(专利权)人:上海大学,上海电力学院,
类型:发明
国别省市:31[中国|上海]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。