8051点击型号即可查看芯片规格书
L532点击型号即可查看芯片规格书
128点击型号即可查看芯片规格书
MCS-51点击型号即可查看芯片规格书
256点击型号即可查看芯片规格书
一般说明
w77l532是一个快速8051兼容微控制器与重新设计的处理器核心没有浪费的时钟和内存周期。结果,在相同的晶体速度下,它比原来的8051更快地执行每一个8051指令。通常,w77l532的指令执行时间比传统的8051快1.5到3倍,这取决于指令的类型。一般来说,在相同的晶速下,整体性能比原来提高了2.5倍左右。在相同的吞吐量下,降低了时钟速度,提高了功耗。因此,w77l532是全静态cmos设计;它也可以在较低的晶体时钟下工作。W77 L532包含系统可编程(ISP)128 KB银行寻址闪存EPROM;4KB用于加载程序的辅助闪存EPROM;工作电压从2.7V到5.5V;片上1 KB MOVX SRAM;三种省电模式。
特征
•8位CMOS微控制器
•4个时钟/机器周期的高速架构,最高可达20 MHz
•与标准80C52兼容的引脚
•与MCS-51兼容的指令集
•四个8位I/O端口;端口0具有由软件启用的内部上拉电阻器
•一个额外的4位I/O端口和等待状态控制信号(在44针PLCC/QFP封装上提供)
•三个16位计时器
•12个具有两个优先级的中断源
•片上振荡器和时钟电路
•两个增强型全双工串行端口
•系统可编程闪存EPROM组(APFlash0和APFlash1)中的64KB杜拉
•装载程序的辅助闪光EPROM
•256字节记事本RAM
•用于movx指令的1kb片上sram
•可编程看门狗定时器
•软件重置
•双16位数据指针
•外部RAM/外围设备的软件可编程访问周期
•包装:
功能描述
w77l532与8052引脚兼容,与指令集兼容。它包括标准8052的资源,如4个8位I/O端口、3个16位定时器/计数器、全双工串行端口和中断源。
w77l532具有运行更快、性能更好的8位cpu和重新设计的核心处理器,无需浪费时钟和内存周期。它不仅通过在高频下运行来提高性能,而且还通过将大多数指令的机器周期从12个时钟的标准8052周期减少到4个时钟周期来提高性能。这将使性能平均提高1.5到3倍。w77l532还提供双数据指针(dptrs)以加快块数据内存传输。它还可以在两个机器周期和九个机器周期之间调整MOVX指令(访问片外数据存储器)的持续时间。这种灵活性使得W77 L532能够快速和慢速地运行RAM和外围设备。此外,w77l532还包含1kb movx sram,其地址在0000h到03ffh之间。它只能通过movx指令访问;这个片上sram在软件控制下是可选的。
w77l532是一个8052兼容的设备,它为用户提供了原始8052设备的功能,但速度和功耗特性有所提高。它的指令集与8051系列相同,只增加了一个:dec dptr(操作码a5h,dptr减少了1)。虽然最初的8051系列设计为每机器周期工作12个时钟周期,但W77L532的工作时钟频率大大降低,每机器周期只有4个时钟周期。这自然会加快指令的执行速度。因此,即使使用相同的晶体,w77l532也可以以比原始8052更高的速度运行。由于w77l532是全静态cmos设计,它也可以在较低的晶体时钟下工作,在指令执行方面提供相同的吞吐量,同时降低功耗。
w77l532中的每机器周期4个时钟特性导致执行速度增加了三倍。w77l532拥有8052的所有标准功能,还有一些额外的外设和功能。
I/O端口
w77l532有四个8位端口和一个额外的4位端口。当外部程序正在运行或MOVC或MOVX指令访问外部内存/设备时,端口0可用作地址/数据总线。在这些情况下,它有很强的上拉和下拉,不需要任何外部上拉。否则,它可以用作具有开路漏极电路的通用I/O端口。当端口0用作地址/数据总线时,端口2主要用作地址总线的高位8位。当它用作地址总线时,它还具有很强的上拉和下拉功能。端口1和3充当具有备用功能的I/O端口。端口4仅在44针PLCC/QFP封装类型上可用。它作为通用I/O端口
端口1和端口3。P4.0有一个备用功能CP/RL2,它是等待状态控制信号。启用等待状态控制信号时,仅输入P4.0。
串行I/O
w77l532有两个增强型串行端口,其功能与原始8052系列的串行端口相似。然而,w77l532上的串行端口也可以在不同的模式下工作,以获得时序相似性。注意,串行端口0可以使用定时器1或2作为波特率生成器,但串行端口1只能使用定时器1作为波特率生成器。串行端口具有自动地址识别和帧错误检测的增强功能。
计时器
w77l532有三个16位定时器,其功能类似于8052系列的定时器。当用作计时器时,它们可以被设置为以每计数4个时钟或12个时钟运行,从而为用户提供在模拟原始8052的定时的模式下操作的选项。w77l532有一个额外的功能,看门狗定时器。此计时器用作系统监视器或非常长的时间段计时器。
中断
w77l532的中断结构与标准8052略有不同。由于附加功能和外围设备的存在,中断源和中断向量的数量增加了。w77l532提供12个具有两个优先级的中断资源,包括6个外部中断源、定时器中断、串行i/o中断。
数据指针
原来的8052只有一个16位数据指针(dpl,dph)。在w77l532中,还有一个额外的16位数据指针(dpl1,dph1)。这个新的数据指针使用了原始8052中未使用的两个sfr位置。此外,还有一个附加的指令DEC DPTR(OP代码A5H),这有助于提高用户的编程灵活性。
电源管理
与标准80C52一样,W77L532也有空闲和断电操作模式。w77l532提供了一种新的经济模式,允许用户将内部时钟速率除以4、64或1024。在空闲模式下,当定时器、串行端口和中断时钟继续工作时,CPU核心的时钟停止。在断电模式下,所有时钟停止,芯片操作完全停止。这是功耗最低的状态。
片上数据sram
w77l532有1k字节的数据空间sram,可以读/写,并且是内存映射的。该片上movx sram由movx指令实现。它不用于可执行程序内存。256字节的scratchpad ram和1k字节的movx sram之间没有冲突或重叠,因为它们使用不同的寻址模式和单独的指令。片上movx sram通过在pmr寄存器中设置dme0位来启用。复位后,dme0位被清除,使得片上movx sram被禁用,并且所有数据存储器空间0000h-ffffh访问外部存储器。
记忆组织
w77l532将存储器分为两个单独的部分,即程序存储器和数据存储器。程序存储器用于存储指令操作码,而数据存储器用于存储数据或用于存储器映射设备。
程序存储器
标准8052上的程序内存只能寻址到64kbytes长。通过调用banking方法,w77l532可以扩展到两个64kb的flash eprom库apflash0和apflash1。有片上rom库,可以类似于8052的使用。所有指令都是从这个内存区域获取执行的。movc指令也可以访问这个内存区域。在系统编程(ISP)中有一个辅助的4KB Flash EPROM银行(LDFlash)驻留用户加载器程序。两个apflash都允许根据ldflash中的用户加载程序进行串行或并行下载。数据存储器
w77l532可以访问多达64kbytes的外部数据存储器。此内存区域由movx指令访问。与8051系列不同,w77l532包含1k字节的movx sram数据存储器,只能通过movx指令访问。这1K字节的SRAM在地址0000H和03FFH之间。在软件控制下,对片上movx sram的访问是可选的。当通过软件启用时,任何使用此区域的movx指令都将转到onchip ram。大于03ffh的movx地址通过端口0和2自动进入外部内存。禁用时,1KB内存区域对系统内存映射是透明的。任何指向0000h和ffffh之间空间的movx都会进入端口0和2上的扩展总线。这是默认条件。此外,w77l532具有标准的256字节片上scratchpad ram。这可以通过直接寻址或间接寻址来访问。还有一些特殊功能寄存器(sfr),只能通过直接寻址访问。因为scratchpad ram只有256字节,所以它只能在数据内容很小的情况下使用。如果存在较大的数据内容,则可以使用两个选项。一个是片上movx sram,另一个是外部数据存储器。片上movx sram只能由movx指令访问,与外部数据存储器相同。然而,片上ram具有最快的访问时间。
特殊功能寄存器
w77l532使用特殊功能寄存器(sfr)来控制和监视外围设备及其模式。
sfr位于寄存器位置80 ffh中,并且仅通过直接寻址来访问。有些SFR是位可寻址的。这在希望修改某个特定位而不更改其他位的情况下非常有用。位可寻址的SFR是那些地址以0或8结尾的SFR。W77L532包含标准8052中的所有SFR。但是,还添加了一些额外的SFR。在某些情况下,原始8052中未使用的位被赋予了新的功能。SFR清单如下。该表每行包含八个位置。空位置表示这些地址没有寄存器。当一个位或寄存器没有实现时,它将读取高。
w77l532执行标准8032系列的所有指令。这些指令的操作、它们对标志位和状态位的影响是完全相同的。然而,这些指令的时间是不同的。原因有两个。首先,在w77l532中,每个机器周期由4个时钟周期组成,而在标准8032中由12个时钟周期组成。此外,在w77l532中,每机器周期只有一次提取,即每次提取4个时钟;而在标准8032中,每机器周期可以有两次提取,即每次提取6个时钟。
w77l532的优点是,由于每一个机器周期只有一个fetch,所以在大多数情况下,机器周期的数量等于指令的操作数。在跳转和呼叫的情况下,将需要一个额外的周期来计算新地址。但总体而言,w77l532与标准8032相比,减少了伪取和浪费的周期,从而提高了效率。
指令定时
w77l532的指令定时是一个重要方面,特别是对于那些希望使用软件指令生成定时延迟的用户。此外,它还为用户提供了对w77l532和标准8032之间的定时差的洞察。在w77l532中,每个机器周期有四个时钟周期。每个时钟周期都被指定为一个状态。因此,每个机器循环按顺序由四个状态c1、c2 c3和c4组成。由于每个指令执行的时间减少,两个时钟边缘都用于内部计时。因此,时钟的占空比必须尽可能接近50%,以避免时间冲突。如前所述,w77l532在每一个机器周期执行一次操作码提取。因此,在大多数指令中,执行指令所需的机器周期数等于指令中的字节数。在256个可用的操作码中,128个是单周期指令。因此,w77l532中一半以上的操作码仅在四个时钟周期内执行。大多数双周期指令都是具有双字节指令码的指令。然而,有些指令只有一个字节的指令,但它们是两个周期的指令。一条重要的指令是movx指令。在标准8032中,MOVX指令总是两个机器周期长。然而,在w77l532中,用户有一个工具可以将此指令的持续时间从2个机器周期延长到9个机器周期。rd和wr选通线也按比例延长。这使得用户在不使用外部电路和最小软件开销的情况下访问快速和慢速外围设备的灵活性。其余指令是三、四或五个机器循环指令。注意,在w77l532中,根据机器循环的次数,有五种不同的类型,而在标准8032中只有三种。然而,在w77l532中,与标准8032的12个时钟周期相比,每个机器周期仅由4个时钟周期组成。因此,即使类别的数目增加了,就时钟周期而言,每条指令至少比标准8032快1.5到3倍。
MOVX指令
w77l532与标准8032一样,使用movx指令访问外部数据存储器。该数据存储器包括片外存储器和存储器映射外设。虽然MOVX指令的结果与标准8032相同,但是选通信号的操作和定时已经被修改,以便给用户更大的灵活性。
movx指令有两种类型,movx@ri和movx@dptr。在movx@ri中,外部数据的地址来自两个源。地址的低8位存储在所选工作寄存器组的ri寄存器中。地址的高位8位来自端口2 SFR。在movx@dptr类型中,完整的16位地址由数据指针提供。
由于w77l532有两个数据指针dptr和dptr1,用户必须通过设置或清除dps位来在两者之间进行选择。数据指针选择位(DPS)是DPS SFR的LSB,它存在于位置86h。在这个SFR中没有其他比特具有任何效果,并且它们被设置为0。当dps为0时,则选择dptr,当设置为1时,则选择dptr1。用户可以通过切换dps位在dptr和dptr1之间切换。最快的方法是使用inc指令。在执行块移动操作时,具有两个数据指针的优势最为明显。随附的代码显示了使用两个单独的数据指针如何加快执行相同任务的代码的执行时间w77l532中的时钟周期=(12+(15*50))*4=(12+750)*4=3048
我们可以看到,在第一个程序中,标准8032需要15720个周期,而w77l532对于相同的代码只需要5240个周期。在为w77l532编写的第二个程序中,程序执行只需要3048个时钟周期。如果块的大小增加,则节省的空间就更大。
外部数据存储器访问定时:
movx指令的定时是w77l532的另一个特性。在标准8032中,movx指令具有2个机器周期的固定执行时间。然而,在w77l532中,访问的持续时间可以由用户改变。
该指令以4个时钟的正常操作码获取开始。在下一个机器周期中,w77l532输出外部数据存储器的地址,实际访问发生在这里。用户可以通过设置拉伸值来更改此访问时间的持续时间。时钟控制sfr(ckcon)有三个位控制拉伸值。这三位是m2-0(ckcon的位2-0)。这三个位为用户提供8个不同的访问时间选项。拉伸范围可以从0到7不等,这导致MOVX指令的长度从2到9个机器周期。注意,指令的拉伸只会导致movx指令的拉伸,就好像cpu的状态保持在所需的时间段一样。不影响任何其他指令或其计时。默认情况下,拉伸值设置为1,给出3个机器周期的movx指令。如果用户需要,可以将“拉伸”值设置为0,以给出仅2个机器周期的最快MOVX指令。表4.数据存储周期拉伸值
电源管理
w77l532有几个功能可以帮助用户控制设备的功耗。节电的特点基本上是断电模式、经济模式和空转运行模式。
空闲模式
用户可以通过将1写入位pcon.0将设备置于空闲模式。设置空闲位的指令是设备进入空闲模式之前执行的最后一条指令。在空闲模式下,CPU的时钟暂停,但中断、定时器、看门狗定时器和串行端口块的时钟不停止。这将强制冻结CPU状态;程序计数器、堆栈指针、程序状态字、累加器和其他寄存器保存它们的内容。在空闲状态下,ale和psen引脚保持在高位。端口管脚保存在空闲被激活时的逻辑状态。空闲模式可以通过两种方式终止。由于中断控制器仍处于活动状态,激活任何启用的中断都可以唤醒处理器。这将自动清除空闲位,终止空闲模式,并执行中断服务程序(ISR)。在ISR之后,程序将从使设备进入空闲模式的指令继续执行。
空闲模式也可以通过激活复位退出。通过对外部RST引脚施加高电压、通电复位条件或看门狗定时器复位,可以使设备复位。外部复位引脚必须保持高电平至少两个机器周期,即8个时钟周期被视为有效复位。在重置条件下,程序计数器重置为0000h,所有SFR均设置为重置条件。由于时钟已经在运行,因此没有延迟,执行立即开始。在空闲模式下,看门狗定时器继续运行,如果启用,超时将导致看门狗定时器中断,从而唤醒设备。软件必须重置看门狗定时器,以便抢占在512个时钟周期超时后发生的重置。当W77 L532从具有复位的空闲模式退出时,不执行将设备放入空闲模式的指令。所以不会有意外写作的危险。
经济模式
单片机的功耗与工作频率有关。w77l532提供了一种经济模式,可以在不使用外部组件的情况下动态降低内部时钟速率。默认情况下,一个机器周期需要4个时钟。在经济模式下,软件可以选择每机器周期4、64或1024个时钟。它保持CPU以可接受的速度运行,但消除了功耗。在空闲模式下,核心逻辑的时钟停止,但所有已计时的外围设备(如看门狗定时器)仍以时钟/4的速率运行。在经济模式下,所有带时钟的外围设备都以与核心逻辑相同的降低时钟速率运行。因此,经济模式可能提供比空闲模式更低的功耗。
指令速率的选择将在一个指令周期延迟后生效。切换到除以64或1024模式必须首先从除以4模式开始。这意味着软件不能在clock/64和clock/1024模式之间直接切换。CPU必须先返回clock/4模式,然后转到clock/64或clock/1024模式。
在经济模式下,由于波特率改变,串行端口无法正确接收/传输数据。在某些系统中,外部中断可能需要最快的处理,以限制运行速度的降低。为了解决这些难题,w77l532提供了一个切换功能,允许cpu在串行操作或外部中断触发时立即返回时钟/4模式。通过设置swb位(pmr.5),可以启用切换功能。串行端口接收/传输或合格的外部中断,在无阻塞条件下启用和确认,将导致CPU返回除以4模式。对于串行端口接收,如果串行端口接收被启用,则由与起始位相关联的下降沿生成回切。当串行端口传输时,将一字节数据写入串行端口缓冲区的指令将导致切换,以确保正确传输。切换功能不受串行端口中断标志的影响。生成切换后,软件可以手动将CPU返回到经济模式。请注意,在启用切换时,在串行端口发送/接收期间,将忽略对时钟控制位cd0和cd1的修改。看门狗定时器重置、通电/故障重置或外部重置将强制CPU返回除以4模式。
断电模式
通过将1写入位pcon.1,设备可以进入断电模式。执行此操作的指令将是设备进入关机模式之前执行的最后一条指令。在断电模式下,所有时钟停止,设备停止。所有活动完全停止,功耗降低到可能的最低值。在这种状态下,ALE和PSEN引脚被拉低。端口管脚输出各自sfr的值。
该W77 L532将退出重置模式或由一个外部中断引脚启用水平或边缘检测电源下降模式。外部复位可用于退出掉电状态。RST引脚上的高电平终止掉电模式,并重新启动时钟。程序执行将从0 00小时重新开始。在掉电模式下,时钟停止,因此看门狗定时器不能用来提供复位以退出掉电模式。
如果在设置全局启用(EA)位的同时启用了相应的中断,则可以通过强制激活外部中断引脚,从断电模式唤醒W77L532。如果满足这些条件,则外部引脚上的低电平重新启动振荡器。然后设备对相应的外部中断执行中断服务程序。中断服务程序完成后,程序执行返回到使设备进入断电模式并从该模式继续执行的指令。
重置条件
用户有几个与硬件相关的选项,用于将W77L532置于重置状态。一般来说,不管复位条件如何,大多数寄存器位都会进入其复位值,但有一些标志的状态取决于复位源。用户可以使用这些标志来确定使用软件重置的原因。有两种方法可以使设备进入重置状态。它们是外部复位和看门狗复位。
外部复位
该装置在每个机器循环的C4状态下连续取样第一个销。因此,必须将RST销保持至少2个机器循环,以确保检测到有效的RST高。然后,复位电路同步应用内部复位信号。因此,复位是同步操作,需要时钟运行以引起外部复位。
一旦设备处于重置状态,只要rst为1,它将保持不变。即使在rst被停用后,设备将继续处于重置状态达两个机器周期,然后从0000h开始程序执行。没有与外部重置条件相关的标志。但是,由于其他两个重置源具有标志,如果清除了这两个标志,则可以将外部重置视为默认重置。
软件读取后必须清除por标志,否则将无法正确确定未来的重置源。如果电源故障,即低于VRST,则设备将再次进入重置状态。当电源恢复到正确的工作电平时,设备将再次执行通电复位延迟并设置por标志。
看门狗定时器重置
看门狗定时器是具有可编程超时间隔的自由运行定时器。用户可以随时清除看门狗计时器,使其重新启动计数。当达到超时间隔时,将设置中断标志。如果已启用看门狗重置且未清除看门狗计时器,则从正在设置的标志开始512个时钟,看门狗计时器将生成重置。这会使设备进入重置状态。复位条件由硬件维持两个机器周期。一旦重置被移除,设备将从0000h开始执行。
重置状态
设备上的大多数SFR和寄存器在重置状态下都将进入相同的状态。程序计数器被强制设置为0000h,并且只要应用了重置条件,它就一直保持在该位置。然而,复位状态不影响片上ram。复位期间,RAM中的数据将被保留。但是,堆栈指针被重置为07h,因此堆栈内容将丢失。如果VDD低于大约2V,RAM的内容将丢失,因为这是RAM正常工作所需的最低电压电平。因此,在首次通电复位后,RAM内容将是不确定的。在断电情况下,如果电源低于2V,RAM内容将丢失。
复位后,大多数SFR被清除。中断和计时器被禁用。如果重置源是por,则将禁用看门狗计时器。端口sfr中写入了ffh,从而使端口管脚处于高状态。端口0浮动,因为它没有芯片上的上拉。
中断
w77l532具有具有12个中断源的双优先级中断结构。每个中断源都有一个单独的优先级位、标志、中断向量和启用位。此外,中断可以全局启用或禁用。
中断源
外部中断int0和int1可以是边缘触发的,也可以是级别触发的,具体取决于位it0和it1。tcon寄存器中的ie0和ie1位是检查生成中断的标志。在边缘触发模式下,在每一个机器循环中对intx输入进行采样。如果样本在一个周期内高,在下一个周期内低,则检测到从高到低的转换,并设置tcon或exif中的中断请求标志iex。标志位请求中断。由于外部中断是在每一个机器周期采样的,因此它们必须在至少一个完整的机器周期内保持高或低。调用服务例程时,iex标志将自动清除。如果选择了电平触发模式,则请求源必须将引脚保持在低位,直到中断得到服务。硬件在进入服务例程时不会清除iex标志。如果中断在服务程序完成后仍然保持在低位,则处理器可以确认来自同一源的另一个中断请求。注意,外部中断int2到int5仅由边缘触发。默认情况下,对应于外部中断的单个中断标志
2到5必须通过软件手动清除。它可以通过在t2mod寄存器中设置相应的位hcx来配置硬件清除。例如,如果设置了HC2,则在程序进入中断2服务程序后,硬件将清除IE2标志。
计时器0和1中断由tf0和tf1标志生成。这些标志由计时器0和计时器1中的溢出设置。当定时器中断得到服务时,硬件会自动清除tf0和tf1标志。计时器2中断是由逻辑或(或)的tfa和exf2标志生成的。这些标志由计时器2操作中的溢出或捕获/重新加载事件设置。当执行定时器2中断时,硬件不清除这些标志。软件必须解决导致tf2和exf2之间中断的原因,并清除相应的标志。
看门狗定时器可以用作系统监视器或简单定时器。在这两种情况下,当达到超时计数时,将设置看门狗定时器中断标志wdif(wdcon.3)。如果中断由启用位eie.4启用,则会发生中断。
串行块可以在接收或传输时产生中断。串行块有两个中断源,分别由scon sfr中的ri和ti位和scon1 sfr中的ri和ti位获得。硬件不会自动清除这些位,用户必须使用软件清除这些位。
所有产生中断的位都可以通过硬件进行设置或复位,从而产生由软件发起的中断。通过在ie sfr中设置或清除一个位,可以启用或禁用每个单独的中断。ie还有一个全局启用/禁用位ea,它可以被清除以同时禁用除pfi之外的所有中断。
优先级结构
中断有三个优先级,最高、最高和最低。中断源可以单独设置为高电平或低电平。当然,高优先级中断不能被低优先级中断中断。然而,在中断本身中存在预定义的层次结构。当中断控制器必须解析具有相同优先级的同时请求时,这个层次结构就起作用了。这个层次结构的定义如下所示;中断从最高优先级开始编号到最低优先级。表7.中断的优先级结构
执行从矢量地址继续,直到执行RETI指令。在执行reti指令时,处理器弹出堆栈并将内容加载到堆栈顶部。如果执行要返回到中断的程序,则用户必须注意将堆栈的状态恢复到硬件lcall之后的状态。如果堆栈内容被修改,处理器不会注意到任何事情,并将继续从放回PC的地址执行。注意,RET指令将执行与RETI指令完全相同的过程,但它不会通知中断控制器中断服务例程已完成,并将离开管制员仍然认为服务程序正在进行中。
中断响应时间
每个中断源的响应时间取决于几个因素,例如中断的性质和正在执行的指令。在外部中断INT0到INT5的情况下,它们在每个机器周期的C3处取样,然后它们相应的中断标志IEX将被设置或重置。计时器0和1溢出标志设置在发生溢出的计算机周期的C3处。这些标志值仅在下一个机器循环中轮询。如果请求处于活动状态且满足所有三个条件,则执行硬件生成的lcall。这个lcall本身需要四个机器周期才能完成。因此,在设置中断标志和执行中断服务程序之间至少有五个机器周期。
如果不满足这三个条件中的任何一个,则应预计更长的响应时间。如果服务的优先级较高或相等,那么中断延迟时间显然取决于当前执行的服务例程的性质。如果轮询周期不是正在执行的指令的最后一个机器周期,则会引入额外的延迟。如果W77 L532正在执行对伊江、IP、EIE或EIP的写入,然后执行MUL或DIV指令,则发生最大响应时间(如果没有其他中断在服务中)。从中断源激活开始,最长的反应时间为12个机器周期。这包括1个检测中断的机器周期,2个完成ie、ip、eie或eip访问的机器周期,5个完成mul或div指令的机器周期,以及4个完成中断向量位置的硬件lcall的机器周期。
因此,在单个中断系统中,中断响应时间将始终大于5个机器周期,而不大于12个机器周期。12个机器周期的最大潜伏期是48个时钟周期。注意,在标准8051中,最大延迟时间是8个机器周期,等于96个机器周期。就时钟周期而言,这减少了50%。
可编程定时器/计数器
w77l532有三个16位可编程定时器/计数器和一个可编程看门狗定时器。看门狗定时器在操作上与其他两个定时器大不相同。
计时器/计数器0和1
w77l532有两个16位定时器/计数器。每个定时器/计数器都有两个8位寄存器,构成16位计数寄存器。对于定时器/计数器0,它们是高8位寄存器th0和低8位寄存器tl0。类似地,定时器/计数器1有两个8位寄存器th1和tl1。这两个可以被配置成定时器、计数机周期或计数外部输入的计数器。
当被配置为“定时器”时,定时器对时钟周期进行计数。定时器时钟可以编程为系统时钟的1/12或系统时钟的1/4。在“计数器”模式下,寄存器在外部输入引脚的下降沿上递增,在定时器0的情况下递增t0,在定时器1的情况下递增t1。t0和t1输入在c4的每个机器循环中采样。如果采样值在一个机器周期内为高,在下一个机器周期内为低,则识别管脚上的有效高-低转换,并递增计数寄存器。由于需要两个机器周期来识别引脚上的负过渡,计数发生的最大速率是主时钟频率的1/24。在“定时器”或“计数器”模式下,计数寄存器将在C3处更新。因此,在“定时器”模式下,在管脚t0和t1上识别出的负跃迁可导致计数寄存器值仅在检测到负边缘的机器循环中更新。
“定时器”或“计数器”功能由TMOD特殊功能寄存器中的“C/T”位选择。
每个定时器/计数器有一个自己的选择位;tmod的位2选择定时器/计数器0的功能,tmod的位6选择定时器/计数器1的功能。此外,每个定时器/计数器可设置为在四种可能模式中的任何一种模式下工作。模式选择由tmod sfr中的m0和m1位完成。
时基选择
w77l532为用户提供两种定时器操作模式。定时器可以编程成像标准8051系列一样工作,以时钟速度的1/12计数。这将确保W77L532和标准8051上的正时回路能够匹配。这是w77l532定时器的默认操作模式。用户还可以选择在涡轮模式下计数,计时器将以1/4时钟速度递增。这将直接增加计数速度三倍。此选择由ckcon sfr中的tom和t1m位完成。复位将这些位设置为0,然后定时器在标准8051模式下工作。如果定时器要在涡轮模式下工作,用户应将这些位设置为1。
在模式0中,定时器/计数器充当8位计数器,5位除以32预刻度。在这种模式下,我们有一个13位定时器/计数器。13位计数器由8位thx和5位tlx低位组成。TLX的上3位被忽略。
时钟的负边缘使tlx寄存器中的计数递增。当TLX中的第五位从1移到0时,THX寄存器中的计数将递增。当thx中的计数从ffh移动到00h时,则设置tcon sfr中的溢出标志tfx。仅当设置了trx且gate=0或intx=1时,计数输入才启用。当c/t设置为0时,它将计数时钟周期,如果c/t设置为1,则它将计数计时器0在t0(p3.4)上的1到0转换,计时器1在t1(p3.5)上的1到0转换。当13位计数达到1ffh时,下一个计数将使其滚动到0000h。计时器溢出标志
相关计时器的tfx已设置,如果启用,将发生中断。注意,当用作计时器时,时基可以是由ckcon sfr的位txm选择的时钟周期/12或时钟周期/4。
模式1与模式0类似,只是计数寄存器形成16位计数器,而不是13位计数器。这意味着使用thx和tlx的所有位。当计时器从FFFFH计数移动到0000H时发生翻转。相关计时器的计时器溢出标志tfx已设置,如果启用,将发生中断。定时器模式下的时基选择类似于模式0。gate函数的操作与模式0中的类似。
在模式2中,定时器/计数器处于自动重新加载模式。在这种模式下,tlx充当8位计数寄存器,而thx保存重新加载值。当tlx寄存器从ffh溢出到00h时,tcon中的tfx位被设置并用thx的内容重新加载tlx,计数过程从此处继续。重新加载操作使thx寄存器的内容保持不变。计数是由trx位和门和intx引脚的正确设置启用的。与其他两种模式一样,0和1模式2允许对管脚TN上的时钟周期(时钟/12或时钟/4)或脉冲进行计数。
模式3对两个定时器/计数器有不同的操作方法。对于计时器/计数器1,模式3仅冻结计数器。然而,定时器/计数器0在此模式中将TL0和TH0配置为两个独立的8位计数寄存器。此模式的逻辑如图所示。tl0使用定时器/计数器0控制位c/t、门、tr0、int0和tf0。tl0可用于计数由c/t(tmod.2)确定的管脚t0上的时钟周期(clock/12或clock/4)或1到0转换。th0被强制用作时钟周期计数器(clock/12或clock/4),并从定时器/计数器1接管tr1和tf1的使用。模式3用于需要额外8位计时器的情况。计时器0在模式3中,定时器1仍然可以在模式0, 1和2中使用,但是其灵活性有些有限。在保持其基本功能的同时,它不再控制其溢出标志tf1和启用位tr1。定时器1仍可用作定时器/计数器,并保留使用门和INT1引脚。在这种情况下,可以通过将其切换到自己的模式3来打开和关闭。它也可以用作串行端口的波特率发生器。
定时器/计数器2
定时器/计数器2是由t2mod寄存器配置并由t2con寄存器控制的16位上/下计数器。定时器/计数器2具有捕获/重新加载功能。与定时器0和定时器1计数器一样,在选择和控制时钟和定义操作模式方面存在相当大的灵活性。定时器/计数器2的时钟源可选择用于外部t2引脚(c/t2=1)或晶体振荡器,其除以12或4(c/t2=0)。当tr2为1时时钟启用,当tr2为0时时钟禁用。
捕获模式
通过将t2con寄存器中的cp/rl2位设置为1来启用捕获模式。在捕获模式下,定时器/计数器2用作16位递增计数器。当计数器从ffffh回滚到0000h时,将设置t2位,这将生成一个中断请求。如果设置了exen2位,则t2ex pin的负转换将导致rcap2l和rcap2h寄存器捕获tl2和th2寄存器中的值。此操作还导致设置t2con中的exf2位,这也将生成中断。通过设置t2cr位(t2mod.3),w77l532允许硬件在捕捉到tl2和th2的值后自动重置定时器2。
自动重新加载模式,计数
通过清除t2con寄存器中的cp/rl2位和清除t2mod寄存器中的dcen位,启用作为递增计数器的自动重新加载模式。在此模式下,定时器/计数器2是16位递增计数器。当计数器从ffffh转过来时,产生一个重新加载,导致rcap2l和rcap2h寄存器的内容重新加载到tl2和th2寄存器中。reload操作还设置了tf位。如果设置了exen2位,则t2ex pin的负转换也将导致重新加载。
此操作还设置t2con中的exf2位。
自动重新加载模式,向上/向下计数
如果清除t2con中的cp/rl2位并设置t2mod中的dcen位,定时器/计数器2将作为上/下计数器处于自动重新加载模式。在此模式下,定时器/计数器2是一个上/下计数器,其方向由t2ex引脚控制。针上的1使计数器计数。计数时溢出将导致计数器重新加载捕获寄存器的内容。在定时器/计数器的内容等于捕获寄存器的情况下,下一个倒计时将把ffffh加载到定时器/计数器2中。在任何一种情况下,重新加载都将设置tfa位。重新加载也将切换exf2位。但是,在这种模式下,exf2位不能产生中断。
波特率发生器模式
波特率发生器模式通过在t2con寄存器中设置rclk或tclk位来启用。在波特率发生器模式下,定时器/计数器2是一个16位计数器,当计数从ffffh转过来时自动重新加载。但是,rolling-over不会设置tf位。如果设置了exen2位,则t2ex引脚的负转换将设置t2con寄存器中的exf2位并导致中断请求。
可编程时钟输出
定时器2配备了一个新的时钟输出特性,它在p1.0上输出50%的占空比时钟。它可以作为可编程时钟生成器调用。要将定时器2配置为时钟输出模式,软件必须通过设置位t2oe=1、c/t2=0和cp/rl=0来启动定时器2。设置位tr2将启动定时器。此模式类似于波特率发生器模式,它在定时器2溢出时不会产生中断。因此,可以同时使用定时器2作为波特率发生器和时钟发生器。打卡频率由以下公式确定:
看门狗定时器
看门狗定时器是一个自由运行的定时器,用户可以将其编程为系统监视器、时基发生器或事件定时器。它基本上是一组分割系统时钟的分割器。分频器输出可选择并确定超时间隔。当超时发生时,将设置一个标志,如果启用该标志,则可能导致中断,如果启用该标志,则也可能导致系统重置。如果设置了单独的中断启用和全局启用,则会发生中断。中断和复位功能相互独立,可以单独使用,也可以根据用户软件一起使用。
应首先使用rwt重新启动看门狗计时器。这确保计时器从已知状态启动。rwt位用于重新启动看门狗定时器。该位是自清除的,即在向该位写入1后,软件将自动清除该位。看门狗定时器现在将计算时钟周期。超时间隔由两位wd1和wd0(ckcon.7和ckcon.6)选择。当所选超时发生时,将设置看门狗中断标志wdif(wdcon.3)。超时发生后,看门狗计时器将等待额外的512个时钟周期。如果启用了看门狗重置EWT(WDCON.1),则超时后512个时钟,如果没有RWT,则将发生由于看门狗计时器而导致的系统重置。这将持续两个机器周期,并且将设置看门狗定时器重置标志wtrf(wdcon.2)。这向软件表明监视器是重置的原因。
当用作简单计时器时,复位和中断功能被禁用。每当计时器完成选定的时间间隔时,计时器将设置WDIF标志。wdif标志被轮询以检测超时,rwt允许软件重新启动计时器。看门狗定时器也可以用作非常长的定时器。在这种情况下,中断功能被启用。每次超时发生时,如果设置了全局中断启用EA,则会发生中断。
看门狗定时器主要用作系统监视器。这在实时控制应用中非常重要。在某些电源故障或电磁干扰的情况下,处理器可能开始执行错误代码。如果不选中此选项,整个系统可能会崩溃。在软件开发期间使用看门狗定时器中断将允许用户选择理想的看门狗重置位置。代码首先在没有看门狗中断或重置的情况下写入。然后,看门狗中断被启用以识别发生中断的代码位置。用户现在可以插入指令来重置看门狗定时器,这将允许代码在没有任何看门狗定时器中断的情况下运行。现在
看门狗定时器重置已启用,看门狗中断可能已禁用。如果现在执行任何错误代码,则在所需的瞬间将不会执行重置看门狗计时器指令,并且将发生看门狗重置。
看门狗超时选择将根据时钟速度产生不同的超时值。当启用时,重置将在超时发生后512个时钟发生。
串行端口
w77l532中的串行端口是全双工端口。w77l532为用户提供了诸如帧错误检测和自动地址识别等附加功能。串行端口能够进行同步和异步通信。在同步模式下,w77l532产生时钟并以半双工模式工作。在异步模式下,全双工操作可用。这意味着它可以同时发送和接收数据。发送寄存器和接收缓冲器都被编为sbuf特殊功能寄存器。但是,对sbuf的任何写操作都将写入发送寄存器,而对sbuf的读操作将从接收缓冲寄存器进行。串行端口可以在四种不同模式下工作,如下所述。
模式0
此模式提供与外部设备的同步通信。在这种模式下,串行数据在rxd线路上发送和接收。TXD用于传输移位时钟。无论设备是发送还是接收,w77l532都提供txd时钟。因此,该模式为半双工串行通信模式。在此模式下,每帧发送或接收8位。首先发送/接收lsb。波特率固定在振荡器频率的1/12或1/4。这个波特率由sm2位(scon.5)决定。当该位设置为0时,串行端口以时钟的1/12运行。当设置为1时,串行端口以时钟的1/4运行。模式0下可编程波特率的额外功能是标准8051和W77L532之间的唯一区别。
功能框图如下所示。数据进入和离开rxd线上的串行端口。TXD线用于输出移位时钟。移位时钟用于将数据移入和移出w77l532和线路另一端的设备。任何导致写入sbuf的指令都将启动传输。移位时钟将被激活,数据将在RXD引脚上移位,直到所有8位都被传输。如果sm2=1,则rxd上的数据将出现在txd上的移位时钟下降沿之前的1个时钟周期。然后TXD上的时钟在两个时钟周期内保持低电平,然后再次变高。如果sm2=0,rxd上的数据将在txd上的移位时钟下降沿之前出现3个时钟周期。然后TXD上的时钟在6个时钟周期内保持低电平,然后再次变高。这确保在接收端,rxd线上的数据可以在txd上的移位时钟的上升沿上计时,或者在txd时钟低时锁定。
在模式1中,使用全双工异步模式。串行通信帧由在txd上传输和在rxd上接收的10位组成。10位由一个起始位(0)、8个数据位(首先是LSB)和一个停止位(1)组成。接收时,停止位进入SFR SCON中的RB8。此模式下的波特率是可变的。串行波特率可编程为定时器1溢出的1/16或1/32。由于定时器1可以被设置为不同的重新加载值,波特率可能有很大的变化。
传输从写入sbuf开始。在除以16计数器的第一次翻转之后,串行数据被带到C1处的TXD引脚上。继除以16计数器的下一个翻转之后,下一位被放置在c1处的txd管脚上。因此,传输与除以16计数器同步,而不是直接与写入sbuf信号同步。在所有8位数据被发送后,停止位被发送。在TXD引脚上输出停止位后,TI标志设置在C1状态。这将是在写入sbuf后除以16计数器的第10次滚动。
只有当ren处于高位时才启用接收。串行端口实际上开始接收串行数据,在RXD引脚上检测到下降沿。1比0检测器连续监测RXD线,以16倍于选定波特率的速率采样。当检测到下降沿时,除以16计数器立即复位。这有助于将位边界与除以16计数器的翻转对齐。
计数器的16个状态有效地将位时间划分为16个片。比特检测是在三个最佳的基础上完成的。位检测器在第8、9和10个计数器状态下对rxd引脚进行采样。通过使用3选2多数表决系统,选择位值。这样做是为了改善串行端口的噪声抑制特性。如果在rxd引脚下降沿之后检测到的第一个位不是0,则这表示起始位无效,并且接收立即中止。串行端口再次查找rxd行中的下降沿。如果检测到一个有效的起始位,则其余的位也会被检测并移位到sbuf中。
在移入8个数据位之后,还有一个移位要做,之后加载sbuf和rb8并设置ri。但是,在加载和设置ri之前,必须满足某些条件。
1. ri必须为0并且
2. sm2=0或接收到的停止位=1。
如果满足这些条件,则停止位转到rb8,8个数据位进入sbuf并设置ri。否则接收的帧可能丢失。在停止位的中间之后,接收器返回到rxd管脚上寻找1到0的转换。
此模式在异步全双工通信中总共使用11位。功能描述如下图所示。帧由一个起始位(0)、8个数据位(首先是lsb)、一个可编程的第9位(tb8)和一个停止位(0)组成。接收到的第9位被放入rb8。波特率可编程为振荡器频率的1/32或1/64,这由pcon sfr中的smod位决定。传输从写入sbuf开始。在除以16计数器的第一次翻转之后,串行数据被带到C1处的TXD引脚上。继除以16计数器的下一个翻转之后,下一位被放置在c1处的txd管脚上。因此,传输与除以16计数器同步,而不是直接与写入sbuf信号同步。在所有9位数据被发送后,停止位被发送。在TXD引脚上输出停止位后,TI标志设置在C1状态。这将是在写入sbuf后除以16计数器的第11次滚动。只有当ren处于高位时才启用接收。串行端口实际上开始接收串行数据,在RXD引脚上检测到下降沿。1比0检测器连续监测RXD线,以16倍于选定波特率的速率采样。当检测到下降沿时,除以16计数器立即复位。这有助于将位边界与除以16计数器的翻转对齐。计数器的16个状态有效地将位时间划分为16个片。比特检测是在三个最佳的基础上完成的。位检测器在第8、9和10个计数器状态下对rxd引脚进行采样。通过使用3选2多数表决系统,选择位值。这样做是为了改善串行端口的噪声抑制特性。
多处理器通信利用模式2和3中的第9个数据位。在w77l532中,仅当接收到的字节对应于给定或广播地址时才设置ri标志。这种硬件特性消除了检查每个接收地址所需的软件开销,并大大简化了软件程序员的任务。
在多处理器通信模式下,地址字节与数据字节的区别在于,通过发送第9位设置为高的地址。当主处理器想要向其中一个从机发送数据块时,它首先发送目标从机的地址。在等待地址字节时,所有从处理器的sm2位都应该设置为高。这确保它们只会被地址字节的接收中断。自动地址识别功能可确保只中断寻址从机。地址比较是在硬件而不是软件中完成的。
寻址从机清除sm2位,从而清除接收数据字节的方式。当sm2=0时,从机在接收到每一个完整的数据帧时都会被中断。未寻址的奴隶将不受影响,因为他们仍在等待他们的地址。在模式1中,第9位是停止位,在有效帧的情况下为1。如果sm2为1,则仅当接收到有效帧且接收的字节与给定或广播地址匹配时,才设置ri。
主处理器可以使用给定的地址选择性地与从机组通信。所有的从机都可以使用广播地址一起寻址。每个从机的地址由saddr和saden sfr定义。从地址是saddr sfr中指定的8位值。saden sfr实际上是saddr中字节值的掩码。如果saden中的位位置为0,则saddr中相应的位位置不重要。只有saddr中对应的saden位为1的位位置才用于获得给定的地址。这使得用户灵活地处理多个奴隶而不改变SADDR中的从地址。
给定1010 0xx1
从机1和从机2的给定地址在lsb中不同。对于奴隶1,这是一个不关心,而对于奴隶2,这是1。因此,为了只与从机1通信,主机必须发送lsb=0(1010 0000)的地址。类似地,从机1的位1位置为0,而不关心从机2。因此,为了只与从机2通信,主机必须发送位1=1(1010 0011)的地址。如果主机希望同时与两个从机通信,则地址必须具有位0=1和位1=0。位3的位置是不关心两个奴隶。这允许两个不同的地址同时选择两个从机(1010 0001和1010 0101)。
主机可以与所有的从机同时通信,并提供广播地址。这个地址是由saddr和saden sfrs的逻辑oring形成的。结果中的零被定义为不关心在大多数情况下广播地址是ffh。在前一种情况下,广播地址是从机1的(1111111x)和从机2的(11111111)。
SADDR和SADEN SFR分别位于地址A9H和B9H。重置时,这两个SFR被初始化为00h。这将导致给定地址和广播地址被设置为xxxx-xxxx(即,所有位都无关紧要)。这有效地删除了多处理器通信功能,因为任何选择性都被禁用。
定时访问保护
w77l532有几个新特性,如看门狗定时器、片上rom大小调整、等待状态控制信号和上电/故障复位标志,这些对系统的正常运行至关重要。如果不加保护,错误代码可能会写入看门狗控制位,从而导致错误操作和失控。为了防止这种情况,w77l532有一个控制对关键位的写访问的保护方案。此保护方案使用定时访问完成。
在这种方法中,要保护的位有一个定时写入启用窗口。只有当此窗口处于活动状态时,写入操作才会成功,否则将放弃写入操作。如果满足某些条件,此写入启用窗口将打开3个机器周期。3次机器循环后,此窗口自动关闭。通过向定时访问(ta)sfr写入aah和立即55h来打开窗口。此SFR位于地址C7H。打开定时访问窗口的建议代码为ta reg 0c7h;定义新寄存器ta,位于0c7h mov ta,0aah mov ta,055h
当软件将aah写入ta sfr时,计数器启动。此计数器等待3个机器周期,寻找对ta的55h写入。如果第二次写入(55h)发生在第一次写入(aah)的3个机器周期内,则打开定时访问窗口。它在3个机器周期内保持打开状态,在此期间用户可以写入受保护的位。窗口关闭后,必须重复该过程才能访问其他受保护的位。