>
2.2 双数据指针
8051微控制器是通过movx指令来访问片外数据空间的,用movx@dptr指令可访问整个64 kb的片外数据存储器。传统的8051只有一个数据指针dptr,要将数据从一个地址移到另一个地址非常麻烦。ds89c430则具备双数据指针dptr0和dptrl,因此软件可以使用一个指针装载源地址,另一个指针装载目的地址。dptr0的sfr地址与805l相同(82h和83h),因此使用该指针时源代码无需更改,dptrl位于84h和85h地址。所有与数据指针相关的操作都使用活动数据指针,活动指针通过控制位sel选择。每个指针还各有一个控制位,决定incdptr操作是递增还是递减数据指针值。
在拷贝数据块时,与使用单数据指针相比,双数据指针可以节省大量代码。用户通过转换sel位来转换活动数据指针,其中一种方法可通过执行incdps指令来实现。对于这些大的数据块拷贝,用户必须频繁执行该指令来转换dptr0和dptrl。为了在节省代码的同时提高运行速度和效率,ds89c430又包含了一个转换选择位 (tsl),来确定执行movx指令时硬件是否自动转换sel位,这样就可以省去incdps指令并进一步提高运行速度。
大的数据块拷贝需要源指针和目的指针逐字节寻址数据空间,传统的方法是通过使用incdptr指令来增加数据指针。为了进一步提高数据传输速率,引入了自动增减控制位(aid),用以确定执行movx指令时,是否会自动增减活动指针值。表l为各种情况下ds80c320和ds89c430进行64b数据块传输时的速度比较。从表l中可以看出,采用双数据指针后运行速度得到极大提高。
2.3 电源管理和时钟分频控制
cmos电路的功耗主要由两部分组成:连续漏电流造成的静态功耗以及对负载电容进行充放电所需的转换开关电流造成的动态功耗。其中,动态功耗是总体功耗的主要部分,该功耗(pd)可以通过负载电容(cl)、电源电压(vdd)和工作频率(f)进行计算,即:pd=cl×vdd2×f。
对于某具体应用,电容和电源电压相对固定,而处理器的处理速度在不同时刻可能是不同的,因此工作频率可以根据不同需要进行调整,从而在不影响系统性能的前提下达到降低功耗的要求。
ds89c430支持三种低功耗节电模式。
①系统时钟分频控制:允许微控制器使用内部分频的时钟源继续工作,以节省功耗。通过软件设置时钟分频控制位,设置工作速率为每机器周期1024个振荡器周期.
②空闲模式:以静态方式保持程序计数器,并挂起处理器。在此模式中,处理器不取指令也不执行指令。除了外围接口时钟保持为活动状态以及定时器、看门狗、串口和电源监视功能仍然工作外,所有的资源均保存。处理器能够使用允许的中断源退出空闲模式。
③停机模式:禁止处理器内部的所有电路。所有片内时钟、定时器和串口通信都停止运行,处理器不执行任何指令。通过使用六个外部中断中的任何一个,处理器都能够退出停机模式。
3 基于risc架构的微控制器
maxq2000微控制器是maxino/dallas公司推出的一款基于ris(:架构的16位微控制器。理解这款微控制器的一些结构特点,可以使我们更好地理解riso结构微控制器的最新发展趋势和技术特点,从而为我们构建新型系统提供更加理想的选择。maxq2000的指令读取和执行操作在一个周期内完成,而没有流水线操作,这是因为指令既包含了操作码也包括了数据。字母q表示这款微控制器的一个重要特点便是“安静”,maxq架构通过智能化的时钟管理来降低噪声.这意味着maxq只向那些需要使用时钟的电路提供时钟,这样既降低了功耗,又为模拟电路的整合提供了一个最安静的环境。它包含液晶显示(i.cd)接口,最多可以驱动100或132段(两种版本)。这款微控制器的功耗指标和mips/mhz代码效率方面都在同类微控制器当中遥遥领先.下面介绍maxq2000的主要特性。
3.1 指令集
指令集由23条对寄存器和存储器进行操作的固定长度的16位指令组成。指令集高度正交,允许算术和逻辑操作使用累加器和任何寄存器。特殊功能寄存器控制外围设备,并细分成寄存器模块。产品系列的结构是模块化的,因此新的器件和模块能够继续使用为现有产品开发的代码.该结构是基于传送触发的,这意味着对某一寄存器位置的读或写会产生额外作用。这些额外作用构成了由汇编器定义的高层操作码的基础,如addc、or和jump等。
3.2 存储器配置
maxq2000具有32kb闪存、lkbram、4kb的内部rom存储器块和16级堆栈存储器。存储器缺省配置成harvard结构,程序和数据存储器具有独立的地址空间,还可以使能为vorl ncumann存储器配置模式,即将固定用途rom、代码和数据存储器放置到一个连续的存储器映射中.这适合于需要进行动态程序修改或特殊存储器配置的应用。闪存程序存储器可以通过16字密钥进行密码保护,从而防止未授权者访问程序存储器。同时,还具有3个数据指针,支持高效快速地处理数据.
固定用途rom由可以在应用软件中进行调用的子程序组成(缺省起始地址为8000h).包括:通过jtag或uart接口进行在系统编程(引导加载程序);在电路调试程序;测试程序(内部存储器测试,存储器加载等);用于在应用闪存编程和快速查找表的用户可调用程序。无论以任何方式复位,都从固定用途rom开始运行程序。r。m软件决定程序立刻跳转到8000h位置、用户应用代码的起始位置、还是上面提到的某特定用途子程序.用户可访问固定用途rom中的程序,并且可以由应用软件调用这些程序。
3.3 寄存器组
器件的大多数功能是由寄存器组来控制的。这些寄存器为存储器操作提供工作空间,并配置和寻址器件上的外设寄存器。寄存器分成两大类:系统寄存器和外设寄存器.公共寄存器组也称作系统寄存器,包括alu、累加器寄存器、数据指针、堆栈指针等。外设寄存器定义了可能包含在基于maxq架构的不同产品中的附加功能.
3.4 电源管理
maxq2000同样提供了先进的电源管理功能,根据系统不同时刻的不同性能需求,可以动态设置处理速度,从而大大降低功耗。通过软件选择分频功能,来选择系统时钟周期是l、2、4或者8个振蔼周期。为进一步降低功耗,还有另外三种低功耗模式,256分频、32 kh。和停机模式。
3.5 中 断
提供多个中断源,可对内部和外部事件快速响应。maxq结构采用了单一中断向量(iv)和单一中断服务程序(isr)设计。必须在用户中断程序内清除中断标志,以避免由同一中断源引发重复中断。当检测到使能的中断时,软件跳转到一个用户可编程的中断向量位置。
一旦软件控制权转移到isr,可以使用中断识别寄存器(iir)来判定中断源是系统寄存器还是外设寄存器。然后,就可以查询特定模块以确定具体中断源,并采取相应的操作。由于中断源是由用户软件识别的,因此用户可以为每种应用确立一个独特的中断优先级方案。
3.6 高速硬件乘法器
集成的硬件乘法器模块执行高速乘法、乘方和累加操作,并能在一个周期内完成一个16位×16位乘法和累加操作。硬件乘法器由2个]6位并行加载操作数寄存器(ma,mb)和1个累加器组成。加载寄存器能够自动启动操作,从而节省了重复计算的时间。硬件乘法器的累加功能是数字滤波、信号处理以及pii)控制系统中的一个基奉单元,这使得maxq2000可以胜任需要大量数学运算的应用。
4 结 论
通过以上两种基于cisc.和risc架构的微控制器的对比分析,会发现许多共同的特性,如安全特性、外围设备、电源管理和在系统编程等。显然.它们都是适应具体应用的共性要求而增加的功能。两者最大的不同是指令结构的差异。mcs一5l有50条基本指令,若累计各种不同寻址方式,指令共计lll条,对应的机器指令有单字节、双字节和三字节指令~68h(:05有62条基本指令,加上多种寻址方式,最终指令达210条,也分为单字节、双字节和三字节指令。比较而言,ris(:微控制器的所有指令是由一些简单、等长度的指令构成.精简指令使微控制器的线路可以尽量优化,硬件结构更加简单,从而可以实现较低的成本和功耗,当然完成相同的工作可能需要更多的指令。所以,二者取舍之间没有绝对优势,只能说根据应用的不同需求和侧重来进行选择。
微处理器是20世纪伟大的技术创新之一,由此而衍生的微控制器将微处理器和外设集于一身,为多种应用开创了新局面,并将继续发挥不可替代的作用。