专利名称:Mcs51系列mcu双数据指针的实现的制作方法
技术领域:
本技术适用于MCS51系列单片机和集成该类MCU的S0C,ASIC,以及用其它方式采 用该类MCU内核的应用系统。该技术可以提高其系统整体MCU资源利用率和大幅度提高 CPU数据处理速度等。
二.
背景技术:
单片机体积小,功耗低,功能强大,技术成熟,诸多的优点使得各类型的单片机在 人类生产、生活中日益发挥着越来越重要的作用。目前,最常用的单片机莫过于Intel公司 开发的80C51系列,这一系列的单片机因为结构简单,价格低廉,容易开发且存在大量的用 户群。正是基于这些优点,很多消费类SOC产品中都集成了 80C51用作中央控制器。随着 人们消费水平的提高,越来越多的功能被附加到这些产品中,这就要求8051要完成更多的 操作,管理更多的系统资源,对8051的数据传输速度,以及代码数量提出了新的要求。双数 据指针的设计正式基于这种要求应运而生,该技术能有效的提高8051的系统性能和处理 速度,以满足更高的用户需求。
三.
发明内容
在标准的Intel 80C51中,字节地址为82H,83H的两个字节SFR(special functionregister)组成一个 16 位的 DPTR (DATA pointer register)。在实现与数据存储 器相关的数据传送时,8051要依靠DPTR来实现这一操作,尤其是在实现数据存储器中数据 的拷贝或搬移动作,更是会反复的使用DPTR来完成。8051只有一个DPTR,为了实现将源地 址的数据移到目标地址要不停的更新DPTR的值,使之指向目标地址或源地址。而双DPTR 很好的解决了这个问题,在实现上述的传送中可同时使用这两个DPTR,从而避免了不停的 更换DPTR指向的问题,达到节省系统操作时间和代码空间,提高系统整体能力的目的。为了实现双数据指针,要在原有数据指针的基础上增加一个指针,需要更改8051 原有内核的硬件设计。在8051的程序中,所有涉及到与DPTR相关的指令只能将DPTR的地 址译码为82H(word address),这是由于标准的8051指令译码是固定的,这一点是设计中 必须要考虑的。考虑到与标准8051指令兼容性以及软件实现问题,新的DPTR地址在指令 译码和地址控制器输出上只有能和原始DPTR地址一样。在本设计中,采用硬件修改地址的 方式,来区别两个DPTR。将新的DPTR放在SFR的C2H和C3H中,它与原始的DPTR地址的区 别仅在于地址位A6有区别。利用这一特点,可以加入A6的取反电路(参见图1)。当需要使 用新DPTR时,选择取反地址位A6,这样与DPTR相关的指令给出82H的地址,会被指向C2H的 物理地址,便实现了双地址指针的功能。本设计在SFR位寻址空间中定义一个保留位(本设 计中采用的是位地址为F8H的保留位)来实现DPTR的区分选择,以有效使用两个DPTR。
四.
图1 双数据指针示意图,其中DPTRO是MCU原有的数据指针,而DPTRl是本设计
3所增加数据指针。图2 双数据指针寄存器以及选择位在SFR中的定义。 五.
具体实施例方式在嵌入式系统中,经常会有数据的搬移和拷贝操作,采用本设计可以有效的解决 数据的传输效率问题。下面是不采用该设计和采用该设计设计两种情况下,数据搬移操作 的实际实现程序设计(请参见图1)。不难看出,采用双数据指针的方式不仅在程序运行时 间上会缩短,而且在代码空间上也有不小的节省。1采用单数据指针的方式
;Block move using single data pointer
MOVDPTR, #S0URCE;address of source
MOVA, ODPTR;get a byte from source
INCDPTR;increment source address
MOVR0, DPL;move low byte source address to RO
MOVRl, DPH;move high byte source address to Rl
MOVDPTR, #DEST;address of destination
MOVXiDPTR,A;write the byte to destination
INCDPTR;increment destination address
MOVR2, DPL;move low byte destination address to
R2
MOVR3, DPH;move high byte destination address to
R3
LOOP
MOVDPL,RO;move low byte source address to DPL
MOVDPH, Rl;move high byte source address to
DPH
MOVA, ODPTR;get a byte from source
INCDPTR;increment source address
MOVR0, DPL;move low byte source address to RO
MOVRl, DPH;move high byte source address to Rl
MOVDPL,R2;move low byte destination address to
DPL
MOVDPH, R3;movehigh byte destination address to
DPH
MOVXiDPTR,A;write the byte to destination
INCDPTR;increment destination address
MOVR2, DPL;movelow byte destination address to
R2
MOV R3, DPH ;movehigh byte destination address to
R3
JNZ LOOP;check for 0 to terminate
2采用双数据指针的方式
;Block move usingdualdata pointers
MOV DPTR,#S0URCE;address of source
CPL F8H;switch data pointers
MOV DPTR,#DEST;address of destination
LOOP
CPL F8H;switch data pointers
MOVXA,@DPTR;get a byte from source
INC DPTR;increment source address
CPL F8H;switch data pointers
M0VX@DPTR,A;write the byte to destination
INC DPTR;increment destination address
JNZ LOOP;check for 0 to terminate
权利要求
MCS51系列内核内部SFR针对双数据指针的扩展。
2.内部地址控制器输出地址的修改电路。
3.对内部地址控制器A6的选择设计,以及由此种方式来产生新DPTR的其他SFR地址。
4.双数据指针的寻址方式设计。
全文摘要
本发明属于处理器内核电路领域,针对目前广泛使用的MCS51系列MCU提出一种提高其处理能力和处理速度的技术,本技术对MCU的内核电路进行修改,并增加一些辅助电路,对MCU原有内核没有任何功能以及兼容性的影响,但能达到明显提高MCU性能的目的。本发明也适用于其他类型的8位MCU,以及集成该类MCU的SOC,ASIC和其它采用该类MCU的应用系统,以提高其灵活性和兼容性。
文档编号G06F9/355GK101930353SQ20091011715
公开日2010年12月29日 申请日期2009年6月25日 优先权日2009年6月25日
发明者刘伟 申请人:龙迅半导体科技(合肥)有限公司;合肥力杰半导体科技有限公司