| |
快速发布采购

时间:2019-9-11, 来源:互联网, 文章类别:元器件知识库

一般说明
W77I058是一款快速8051兼容微控制器,具有重新设计的处理器核心,没有浪费时钟和内存周期。结果,在相同的晶体速度下,它比原来的8051更快地执行每一个8051指令。通常,w77i058的指令执行时间比传统的8051快1.5到3倍,这取决于指令的类型。一般来说,在相同的晶速下,整体性能比原来提高了2.5倍左右。在相同的吞吐量下,降低了时钟速度,提高了功耗。因此,W77I058是一种全静态CMOS设计;它也可以在较低的晶体时钟下工作。W77I058包含32 kb闪存EPROM,提供2.7V到5.5V的工作电压。所有W77I058类型还支持无外部存储器组件和胶水逻辑的片上1 kb SRAM,如果用户使用片上SRAM而不是外部SRAM,则可为应用程序节省更多的I/O管脚。
特征
8位CMOS微控制器
4个时钟/机器周期的高速架构,最高可达20 MHz
与标准80C52兼容的引脚
MCS-51兼容的指令集
四个8位I/O端口
一个额外的4位I/O端口和等待状态控制信号(在44针PLCC/QFP封装上提供)
三个16位计时器
12个具有两个优先级的中断源
片上振荡器和时钟电路
两个增强型全双工串行端口
32 KB闪存EPROM
256字节记事本RAM
用于movx指令的1kb片上sram
可编程看门狗定时器
双16位数据指针
外部RAM/外围设备的软件可编程访问周期
包装:
-无铅(RoHS)浸渍40:W77I058A25DL
-无铅(RoHS)PLCC 44:W77I058A25PL
引脚配置

功能描述
W77I058与8052引脚兼容,与指令集兼容。它包括标准8052的资源,如4个8位I/O端口、3个16位定时器/计数器、全双工串行端口和中断源。
W77I058的特点是运行更快,性能更好的8位CPU,重新设计的核心处理器没有浪费时钟和内存周期。它不仅通过在高频下运行来提高性能,而且还通过将大多数指令的机器周期从12个时钟的标准8052周期减少到4个时钟周期来提高性能。这将使性能平均提高1.5到3倍。w77i058还提供双数据指针(dptrs)以加快块数据内存传输。它还可以在两个机器周期和九个机器周期之间调整MOVX指令(访问片外数据存储器)的持续时间。这种灵活性允许W77I058在高速和低速RAM和外围设备上高效工作。此外,W77I058还包含1KB MOVX SRAM芯片,其地址在0000H和03FFH之间。它只能通过movx指令访问;这个片上sram在软件控制下是可选的。
W77I058是一款与8052兼容的设备,它为用户提供了原8052设备的功能,但速度和功耗特性有所提高。它的指令集与8051系列相同,只增加了一个:dec dptr(操作码a5h,dptr减少了1)。虽然最初的8051系列被设计为每机器周期工作12个时钟周期,但W77I058的工作时钟频率大大降低,每机器周期只有4个时钟周期。这自然会加快指令的执行速度。因此,即使使用相同的晶体,w77i058也可以以比原始8052更高的速度运行。由于w77i058是全静态cmos设计,它也可以在较低的晶体时钟下工作,在指令执行方面提供相同的吞吐量,同时降低功耗。
W77I058中的每机器周期4个时钟功能可使执行速度提高三倍。W77I058拥有8052的所有标准功能,还有一些额外的外设和功能。
输入输出端口
W77I058有四个8位端口和一个额外的4位端口。当外部程序正在运行或MOVC或MOVX指令访问外部内存/设备时,端口0可用作地址/数据总线。在这些情况下,它有很强的上拉和下拉,不需要任何外部上拉。否则,它可以用作具有开路漏极电路的通用I/O端口。当端口0用作地址/数据总线时,端口2主要用作地址总线的高位8位。当它用作地址总线时,它还具有很强的上拉和下拉功能。端口1和3充当具有备用功能的I/O端口。端口4仅在44针PLCC/QFP封装类型上可用。它是一个普遍的用途
I/O端口作为端口1和端口3。p4.0有一个备用功能wait,它是wait状态控制信号。启用等待状态控制信号时,仅输入P4.0。
串行输入输出
W77I058有两个增强型串行端口,其功能与原始8052系列的串行端口相似。然而,w77i058上的串行端口也可以在不同的模式下工作,以获得时序相似性。注意,串行端口0可以使用定时器1或2作为波特率生成器,但串行端口1只能使用定时器1作为波特率生成器。串行端口具有自动地址识别和帧错误检测的增强功能。
计时器
W77I058有三个16位定时器,其功能与8052系列的定时器类似。当用作计时器时,它们可以被设置为以每计数4个时钟或12个时钟运行,从而为用户提供在模拟原始8052的定时的模式下操作的选项。W77I058有一个额外的功能,看门狗定时器。此计时器用作系统监视器或非常长的时间段计时器。
中断
W77I058的中断结构与标准8052略有不同。由于附加功能和外围设备的存在,中断源和中断向量的数量增加了。W77I058提供12个具有两个优先级的中断资源,包括6个外部中断源、定时器中断、串行I/O中断。
数据指针
原来的8052只有一个16位数据指针(dpl,dph)。在w77i058中,还有一个额外的16位数据指针(dpl1,dph1)。这个新的数据指针使用了原始8052中未使用的两个sfr位置。另外还有一个附加指令dec dptr(操作码a5h),它有助于提高用户编程的灵活性。
电源管理
与标准的80C52一样,W77I058也有空闲和断电的工作模式。W77I058提供了一种新的经济模式,允许用户将内部时钟速率除以4、64或1024。在空闲模式下,当定时器、串行端口和中断时钟继续工作时,CPU核心的时钟停止。在断电模式下,所有时钟停止,芯片操作完全停止。这是功耗最低的状态。
片上数据sram
w77i058有1k字节的数据空间sram,可以读/写,并且是内存映射的。该片上movx sram由movx指令实现。它不用于可执行程序内存。256字节的scratchpad ram和1k字节的movx sram之间没有冲突或重叠,因为它们使用不同的寻址模式和单独的指令。片上movx sram通过在pmr寄存器中设置dme0位来启用。复位后,dme0位被清除,使得片上movx sram被禁用,并且所有数据存储器空间0000h-ffffh访问外部存储器。
6。记忆组织
W77I058将存储器分为两个单独的部分:程序存储器和数据存储器。程序存储器用于存储指令操作码,而数据存储器用于存储数据或用于存储器映射设备。
程序存储器
W77I058上的程序内存最长可达64 KB。也有片上rom可以类似于8052的使用,除了rom的大小是32kbytes。所有指令都是从这个内存区域获取执行的。movc指令也可以访问这个内存区域。超过片上rom的最大地址将访问外部存储器。
数据存储器
W77I058可以访问多达64KB的外部数据存储器。此内存区域由movx指令访问。与8051系列不同,w77i058包含1k字节的movx sram数据存储器,只能通过movx指令访问。这1K字节的SRAM在地址0000H和03FFH之间。在软件控制下,对片上movx sram的访问是可选的。当通过软件启用时,任何使用此区域的movx指令都将进入片上ram。大于03ffh的movx地址通过端口0和2自动进入外部内存。禁用时,1KB内存区域对系统内存映射是透明的。任何指向0000h和ffffh之间空间的movx都会进入端口0和2上的扩展总线。这是默认条件。此外,w77i058具有标准的256字节片上scratchpad ram。这可以通过直接寻址或间接寻址来访问。还有一些特殊功能寄存器(sfr),只能通过直接寻址访问。因为scratchpad ram只有256字节,所以它只能在数据内容很小的情况下使用。如果存在较大的数据内容,则可以使用两个选项。一个是片上movx sram,另一个是外部数据存储器。片上movx sram只能由movx指令访问,与外部数据存储器相同。然而,片上ram具有最快的访问时间。

特殊功能寄存器
W77I058使用特殊功能寄存器(SFR)来控制和监视外围设备及其模式。
sfr位于寄存器位置80 ffh中,并且仅通过直接寻址来访问。有些SFR是位可寻址的。这在希望修改某个特定位而不更改其他位的情况下非常有用。位可寻址的SFR是那些地址以0或8结尾的SFR。W77I058包含标准8052中的所有SFR。但是,还添加了一些额外的SFR。在某些情况下,原始8052中未使用的位被赋予了新的功能。SFR清单如下。该表每行包含八个位置。空位置表示这些地址没有寄存器。当一个位或寄存器没有实现时,它将读取高。

指令时间
w77i058的指令定时是一个重要方面,特别是对于那些希望使用软件指令生成定时延迟的用户。此外,它还为用户提供了对w77i058和标准8032之间的定时差异的深入了解。在W77I058中,每个机器周期有四个时钟周期。每个时钟周期都被指定为一个状态。因此,每个机器循环按顺序由四个状态c1、c2 c3和c4组成。由于每个指令执行的时间减少,两个时钟边缘都用于内部计时。因此,时钟的占空比必须尽可能接近50%,以避免时间冲突。如前所述,w77i058每机器周期执行一次操作码提取。因此,在大多数指令中,执行指令所需的机器周期数等于指令中的字节数。在256个可用的操作码中,128个是单周期指令。因此,w77i058中一半以上的操作码仅在四个时钟周期内执行。大多数双周期指令都是具有双字节指令码的指令。然而,有些指令只有一个字节的指令,但它们是两个周期的指令。一条重要的指令是movx指令。在标准8032中,MOVX指令总是两个机器周期长。然而,在w77i058中,用户有一个工具可以将此指令的持续时间从
机器循环至9个机器循环。rd和wr选通线也按比例延长。这使得用户在不使用外部电路和最小软件开销的情况下访问快速和慢速外围设备时具有灵活性。其余指令是三、四或五个机器循环指令。请注意,在W77I058中,根据机器循环次数,有五种不同的类型,而在标准8032中只有三种。然而,在w77i058中,与标准8032的12个时钟周期相比,每个机器周期仅由4个时钟周期组成。因此,即使类别的数目增加了,就时钟周期而言,每条指令至少比标准8032快1.5到3倍。

MOVX指令
W77I058与标准8032一样,使用MOVX指令访问外部数据存储器。该数据存储器包括片外存储器和存储器映射外设。虽然movx指令的结果与标准8032相同,但为了给用户更大的灵活性,对选通信号的操作和定时进行了修改。
movx指令有两种类型,movx@ri和movx@dptr。在movx@ri中,外部数据的地址来自两个源。地址的低8位存储在所选工作寄存器组的ri寄存器中。地址的高位8位来自端口2 SFR。在movx@dptr类型中,完整的16位地址由数据指针提供。
由于w77i058有两个数据指针dptr和dptr1,用户必须通过设置或清除dps位来在两者之间进行选择。数据指针选择位(DPS)是DPS SFR的LSB,它存在于位置86H。此SFR中的其他位没有任何影响,并且它们设置为0。当dps为0时,则选择dptr,当设置为1时,则选择dptr1。用户可以通过切换dps位在dptr和dptr1之间切换。最快的方法是使用inc指令。在执行块移动操作时,具有两个数据指针的优势最为明显。随附的代码显示了使用两个单独的数据指针如何加快执行相同任务的代码的执行时间。

电源管理
W77I058有几个功能可以帮助用户控制设备的功耗。节电的特点基本上是断电模式、经济模式和空转运行模式。
空闲模式
用户可以通过将1写入位pcon.0将设备置于空闲模式。设置空闲位的指令是设备进入空闲模式之前执行的最后一条指令。在空闲模式下,CPU的时钟暂停,但中断、定时器、看门狗定时器和串行端口块的时钟不停止。这将强制冻结CPU状态;程序计数器、堆栈指针、程序状态字、累加器和其他寄存器保存它们的内容。在空闲状态下,ale和psen引脚保持在高位。端口管脚保存在空闲被激活时的逻辑状态。空闲模式可以通过两种方式终止。由于中断控制器仍处于活动状态,激活任何启用的中断都可以唤醒处理器。这将自动清除空闲位,终止空闲模式,并执行中断服务程序(ISR)。在ISR之后,程序将从使设备进入空闲模式的指令继续执行。
也可以通过激活重置退出空闲模式。通过对外部RST引脚施加高电压、通电复位条件或看门狗定时器复位,可以使设备复位。外部复位引脚必须保持高电平至少两个机器周期,即8个时钟周期被视为有效复位。在重置条件下,程序计数器重置为0000h,所有SFR均设置为重置条件。由于时钟已经在运行,因此没有延迟,执行立即开始。在空闲模式下,看门狗定时器继续运行,如果启用,超时将导致看门狗定时器中断,从而唤醒设备。软件必须重置看门狗定时器,以便抢占在512个时钟周期超时后发生的重置。当w77i058通过复位从空闲模式退出时,将设备置于空闲模式的指令后面的指令将不执行。所以不会有意外写作的危险。
经济模式

单片机的功耗与工作频率有关。W77I058提供了一种经济模式,可以在不使用外部组件的情况下动态降低内部时钟速率。默认情况下,一个机器周期需要4个时钟。在经济模式下,软件可以选择每机器周期4、64或1024个时钟。它保持CPU以可接受的速度运行,但消除了功耗。在空闲模式下,核心逻辑的时钟停止,但所有已计时的外围设备(如看门狗定时器)仍以时钟/4的速率运行。在经济模式下,所有带时钟的外围设备都以与核心逻辑相同的降低时钟速率运行。因此,经济模式可能提供比空闲模式更低的功耗。

通过将1写入位pcon.1,设备可以进入断电模式。执行此操作的指令将是设备进入关机模式之前执行的最后一条指令。在断电模式下,所有时钟停止,设备停止。所有活动完全停止,功耗降低到可能的最低值。在这种情况下
PSEN销被拉低。端口管脚输出各自sfr的值。
W77I058将通过复位或通过启用为电平检测的外部中断引脚退出掉电模式。外部重置可用于退出关机状态。RST引脚上的高电平终止掉电模式,并重新启动时钟。程序执行将从0000h重新开始。在断电模式下,时钟停止,因此不能使用看门狗计时器提供重置以退出断电模式。
W77I058可通过强制激活外部中断引脚从断电模式唤醒,前提是相应的中断已启用,同时设置全局启用(EA)位,并且外部输入已设置为电平检测模式。如果满足这些条件,则外部引脚上的低电平重新启动振荡器。然后设备对相应的外部中断执行中断服务程序。中断服务程序完成后,程序执行返回到使设备进入断电模式并从该模式继续执行的指令。当rgsl(exif.1)位设置为1时,cpu将使用内部rc振荡器而不是crystal来退出掉电模式。时钟稳定后,微控制器将自动从rc振荡器切换到晶体。rc振荡器的工作频率约为2-4mhz。使用rc振荡器退出掉电模式可节省等待晶体启动的时间。它在低功率系统中很有用,通常从短时间操作中唤醒,然后返回到断电模式。

复位条件
用户有几个与硬件相关的选项,用于将W77I058置于复位状态。一般来说,不管复位条件如何,大多数寄存器位都会进入其复位值,但有一些标志的状态取决于复位源。用户可以使用这些标志来确定使用软件重置的原因。有两种方法可以使设备进入重置状态。它们是外部复位和看门狗复位。
外部复位
该装置在每个机器循环的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浮动,因为它没有芯片上的上拉。

中断
W77I058有一个具有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之外的所有中断。
优先级结构
中断有三个优先级,最高、最高和最低。中断源可以单独设置为高电平或低电平。当然,高优先级中断不能被低优先级中断中断。然而,在中断本身之间存在一个预定义的层次结构。当中断控制器必须解析具有相同优先级的同时请求时,这个层次结构就起作用了。这个层次结构的定义如下所示;中断从最高优先级开始编号到最低优先级。

计时器/计数器0和1
W77I058有两个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位完成。
时基选择
W77I058为用户提供两种定时器操作模式。定时器可以编程成像标准8051系列一样工作,以时钟速度的1/12计数。这将确保W77I058和标准8051上的正时回路能够匹配。这是W77I058定时器的默认操作模式。用户还可以选择在涡轮模式下计数,计时器将以1/4时钟速度递增。这将直接增加计数速度三倍。此选择由ckcon sfr中的tom和t1m位完成。复位将这些位设置为0,然后定时器在标准8051模式下工作。如果定时器要在涡轮模式下工作,用户应将这些位设置为1。
模式0

在模式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,那么它将在t0(p3.4)上对定时器0和t1(p3.5)计数1到0的跃迁。当13位计数达到1ffh时,下一个计数将使其滚动到0000h。相关计时器的计时器溢出标志tfx已设置,如果启用,将发生中断。注意,当用作计时器时,时基可以是由ckcon sfr的位txm选择的时钟周期/12或时钟周期/4。

模式1
模式1与模式0类似,只是计数寄存器形成16位计数器,而不是13位计数器。这意味着使用thx和tlx的所有位。当计时器从FFFFH计数移动到0000H时发生翻转。相关计时器的计时器溢出标志tfx已设置,如果启用,将发生中断。定时器模式下的时基选择类似于模式0。gate函数的操作与模式0中的类似。
模式2
在模式2中,定时器/计数器处于自动重新加载模式。在这种模式下,tlx充当8位计数寄存器,而thx保存重新加载值。当tlx寄存器从ffh溢出到00h时,tcon中的tfx位被设置并用thx的内容重新加载tlx,计数过程从此处继续。重新加载操作使thx寄存器的内容保持不变。计数是
由trx位和门和intx管脚的正确设置启用。与其他两种模式一样,0和1模式2允许对管脚TN上的时钟周期(时钟/12或时钟/4)或脉冲进行计数

模式3
模式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 rl/2位设置为1、rclk和
必须清除tclk位。在捕获模式下,定时器/计数器2用作16位递增计数器。当计数器从ffffh回滚到0000h时,将设置t2位,这将生成一个中断请求。如果设置了exen2位,则t2ex pin的负转换将导致rcap2l和rcap2h寄存器捕获tl2和th2寄存器中的值。此操作还导致设置t2con中的exf2位,这也将生成中断。通过设置t2cr位(t2mod.3),w77i058允许硬件在捕捉到tl2和th2的值后自动重置定时器2。
自动重新加载模式,计数
通过清除t2con寄存器中的cp rl/2位,启用自动重新加载模式作为递增计数器。必须清除rclk和tclk位,并清除t2mod寄存器中的dcen位。在此模式下,定时器/计数器2是16位递增计数器。当计数器从ffffh转过来时,产生一个重新加载,导致rcap2l和rcap2h寄存器的内容重新加载到tl2和th2寄存器中。reload操作还设置了tf位。如果设置了exen2位,则t2ex pin的负转换也将导致重新加载。此操作还设置t2con中的exf2位。

自动重新加载模式,向上/向下计数
如果清除t2con中的cp rl/2位,定时器/计数器2将作为上/下计数器处于自动重新加载模式。必须清除rclk和tclk位,并设置t2mod中的dcen位。在此模式下,定时器/计数器2是一个上/下计数器,其方向由t2ex引脚控制。针上的1使计数器计数。计数时溢出将导致计数器重新加载捕获寄存器的内容。在定时器/计数器的内容等于捕获寄存器的情况下,下一个倒计时将把ffffh加载到定时器/计数器2中。在任何一种情况下,重新加载都将设置tfa位。重新加载也将切换exf2位。但是,在这种模式下,exf2位不能产生中断。
波特率发生器模式
波特率发生器模式通过在t2con寄存器中设置rclk或tclk位来启用。在波特率发生器模式下,定时器/计数器2是一个16位计数器,当计数从ffffh转过来时自动重新加载。但是,rolling-over不会设置tf位。如果设置了exen2位,则t2ex引脚的负转换将设置t2con寄存器中的exf2位并导致中断请求。在此模式下,必须清除t2oE位。

可编程时钟输出
定时器2配备了一个新的时钟输出特性,它在p1.0上输出50%的占空比时钟。它可以作为可编程时钟生成器调用。要将定时器2配置为时钟输出模式,软件必须通过设置位t2oe=1、c/t2=0和cp/rl=0来启动定时器2。设置位tr2将启动定时器。此模式类似于波特率发生器模式,它在定时器2溢出时不会产生中断。因此,可以同时使用定时器2作为波特率发生器和时钟发生器。打卡频率由以下公式确定:
时钟输出频率=振荡器频率/[4 x(65536-RCAP2H,RCAP2L)]
看门狗定时器
看门狗定时器是一个自由运行的定时器,用户可以将其编程为系统监视器、时基发生器或事件定时器。它基本上是一组分割系统时钟的分割器。分频器输出可选择并确定超时间隔。当超时发生时,将设置一个标志,如果启用该标志,则可能导致中断,如果启用该标志,则也可能导致系统重置。如果设置了单独的中断启用和全局启用,则会发生中断。中断和复位功能相互独立,可以单独使用,也可以根据用户软件一起使用。
应首先使用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个时钟发生。

串口
W77I058中的串行端口是全双工端口。W77I058为用户提供了附加功能,如帧错误检测和自动地址识别。串行端口能够进行同步和异步通信。在同步模式下,W77I058产生时钟并以半双工模式工作。在异步模式下,全双工操作可用。这意味着它可以同时发送和接收数据。发送寄存器和接收缓冲器都被编为sbuf特殊功能寄存器。但是,对sbuf的任何写操作都将写入发送寄存器,而对sbuf的读操作将从接收缓冲寄存器进行。串行端口可以在四种不同模式下工作,如下所述。
模式0

此模式提供与外部设备的同步通信。在这种模式下,串行数据在rxd线路上发送和接收。TXD用于传输移位时钟。无论设备是发送还是接收,w77i058都提供txd时钟。因此,该模式为半双工串行通信模式。在此模式下,每帧发送或接收8位。首先发送/接收lsb。波特率固定在振荡器频率的1/12或1/4。这个波特率由sm2位(scon.5)决定。当该位设置为0时,串行端口以时钟的1/12运行。当设置为1时,串行端口以时钟的1/4运行。模式0下可编程波特率的额外功能是标准8051和W77I058之间的唯一区别。
功能框图如下所示。数据进入和离开rxd线上的串行端口。TXD线用于输出移位时钟。移位时钟用于将数据移入和移出W77I058和线路另一端的设备。任何导致写入sbuf的指令都将启动传输。移位时钟将被激活,数据将在RXD引脚上移位,直到所有8位都被传输。如果sm2=1,则rxd上的数据将出现在txd上的移位时钟下降沿之前的1个时钟周期。然后TXD上的时钟在两个时钟周期内保持低电平,然后再次变高。如果sm2=0,rxd上的数据将在txd上的移位时钟下降沿之前出现3个时钟周期。然后TXD上的时钟在6个时钟周期内保持低电平,然后再次变高。这确保在接收端,rxd线上的数据可以在txd上的移位时钟的上升沿上计时,或者在txd时钟低时锁定。

模式1

在模式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的转换。

安全位
在片上rom操作模式下,flash-eprom可以重复编程和验证。在确认rom内的代码正常之前,可以对代码进行保护。以下描述rom的保护及其操作。
W77I058有几个特殊的设置寄存器,包括安全寄存器,在正常模式下无法访问。这些寄存器只能从rom操作模式访问。一旦安全寄存器的位从高到低被编程,它们就不能被改变。它们只能通过擦除所有操作重置。安全寄存器在rom操作模式下按地址0ffffh寻址。

B0:锁位
此位用于保护W77I058中的客户程序代码。它可以在程序员完成编程并验证序列后设置。一旦该位被设置为逻辑0,rom数据和特殊设置寄存器就不能被再次访问。
B1:MOVC抑制
此位用于限制MOVC指令的可访问区域。它可以防止外部程序存储器中的movc指令读取内部程序代码。当该位设置为逻辑0时,外部程序存储器空间中的MOVC指令将只能访问外部存储器中的代码,而不能访问内部存储器中的代码。内部程序存储器空间中的movc指令将始终能够访问内部和外部存储器中的rom数据。如果该位是逻辑1,则对MOVC指令没有限制。

技术文章分类
相关技术文章