Mcs51系列mcu双数据指针的实现的制作方法

文档序号:6576832阅读:580来源:国知局
专利名称: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日
发明者刘伟 申请人:龙迅半导体科技(合肥)有限公司;合肥力杰半导体科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1