高速单片机W77E58的特点及应用

控制/MCU

1883人已加入

描述

 

  一、前言

  随着电子技术的发展,单片机的功能日益强大,集成度日益提高,运行速度也越来越快。过去,需要扩展几片外围芯片才能实现的功能现在完全可以由单片机自己去实现,本文介绍的W77E58就是这样一种具有许多功能的单片机。

  W77E58是***华邦公司生产的与MCS51系列单片机兼容的可多次编程的快速微处理 器,在它内部集成有32K的可重复编程的flash ROM、256字节的片内存储器、1K的 用MOVX指令访问的SRAM、可编程的看门狗定时器、3个16位定时器、2个增强型的全双工串行口、片内RC振荡器、双16位数据指针等诸多功能。在很多场合,几乎不用扩展外围芯片就能够满足系统要求,而且,由于它采用了全新设计的微处理器内核,去除多余的时钟和存储周期,因此,在相同的晶振频率下,根据不同的指令类型,其运行速度一般比传统8051系列快1.5到3倍,一般情况下,平均可达 2.5倍以上。另外,由于W77E58采用全静态CMOS设计,能工作在低速晶振频率下,因此,和普通的8051相比,若W77E58采用低速工作频率,在相同的指令吞吐量下,W77E58的节电性能也将大大提高。

  二、W77E58的特点及功能

  1. 兼容性

  77E58的指令功能完全兼容于80C52(包括对状态位和标志位的影响),只有一点不同的就是在普通80C52的指令系统中,没有操作指令(op-code)A5H,而在W77 E58的指令系统中,增加了一条指令DEC DPTR(数据指针DPTR减一),其操作指令 (op-code)为A5H。而且,W77E58也具有80C52的全部资源和功能,包括4个8位I /O口,3个16位定时器,全双工串口,中断源等。W77E58的增加的新功能都是用普通8052所保留的特殊功能寄存器实现的,不与普通80C52的资源产生任何冲突,因此,W77E58可以直接用在已设计好的80C52系统中使用,而为原有系统编写的程 序几乎不做任何改动,系统就可正常工作,需要注意的只是由于新的高速内核所造成的指令执行时间的改变及访问外部存储器的读写速度的限制。W77E58的封装也完全兼容于80C52,它所增加的与硬件有关的功能都是复用80C52的P1口,并且 W77E58 的44pin PLCC/QFP封装比普通的8051多一组4位的I/O口。

  2. 高速性

  77E58的外部工作时钟频率可达40MHz,而且,由于W77E58采用了重新设计的微处理器内核,去除了多余的时钟和存储周期,运行速度大大提高,这不仅仅是运行 晶振频率的提高,而是将普通8051的每个机器周期(machine cycle)包含12个 时钟周期(clock period)缩减到每个机器周期包含4个时钟周期,这样,即使在相同的时钟频率下,根据不同的指令类型,其运行速度一般比传统8051提高1. 5到3倍。因此,若程序中需要软件定时,其执行时间须根据W77E58的指令的执行时间应重新计算,一般情况下,每一个机器周期有一次取指(包括操作码和操作数)操作,由于在W77E58的256个操作码指令中,有128个是单字节指令,因此,W77E58的指令有一半的执行时间只须一个机器周期,即4个时钟周期。图1以单周期指令为例说明了W77E58的指令的时序关系。

  3. 中断源

  77E58除了具有80C52的6个中断源外,又另外增加了6个中断源,共有12个可定义两种优先级的中断源,每个中断源都有独立的中断使能位、中断优先权位、中断 标志位和中断向量。但是,为了同80C32兼容,所有新增加的中断的优先级都在 原有中断的优先级之后,其中断优先级及中断向量如下表1所示,除了同80C32有相同的两个外部中断INT0和INT1外,W77E58又增加了4个外部中断INT2、INT3、I NT4、INT5。同80C32一样,外部中断INT0和INT1有边沿触发和电平触发两种触发方式,当中断被响应后,其中断标志位由硬件自动清除;而外部中断INT2到INT5 只有边沿触发方式,其中断标志位可被独立设为由硬件或软件清除,缺省设置为 由软件清除,当然,用户可根据需要通过修改相对应的特殊寄存器,将外部中断 INT2到INT5设为由硬件清除中断标志位。

  

W77E58

 

  4. 两个增强全双工串口

  和80C32相比,W77E58除了具有同80C32一样的全双工串口外,W77E58又增加了一个全双工串口,其外部引脚RXD1、TXD1和P1.2、P1.3复用。然而,这两个串口除了具有同原有80C32的串口相同的功能外,又增加了两个增强型的特点,即多机通讯自动地址识别和帧错误检测功能,但是需要注意的是,这两个串口也有一点细微的差别,那就是串口0(原有保留串口)可以用定时器0和定时器1作为波特率发生器,而串口1只能使用定时器1作为波特率发生器。

  (1) 自动帧错误检测

  自动帧错误检测指的是在数据传输的过程中,如果由于噪音等随机干扰造成接收方接收不到正确的停止位,W77E58能够自动检测出并设置标志FE(FE_1),此标 志被定位在SCON.7(SCON1.7),用户可以访问,并且必须软件清除。

  

W77E58

 

  (2) 多机通讯自动地址识别

  在标准的8051系列单片机中,当进行多机通讯时,发送9位数据,最后一位只当作地址/数据识别位,但是并不能区分准确地址,准确地址须靠软件识别,而在W77 E58中,增加了地址特殊寄存器SADDR和地址屏蔽特殊寄存器SADEN,只有SADEN中的某一位为1,计算实际地址时相对应的SADDR的位才有效,若SADEN中某一位是0 ,则进行实际地址计算时忽略对应的SADDR中的位。例如:

  SADDR:10100100

  SADEN:11111010

  实际地址:10101X1X

  在进行多机通讯时,只有接收到的地址帧和根据SADDR、SADEN计算出的地址完全 相同时,从机才会置位中断标志,这完全由硬件自动完成,而不是象标准8051系 列那样必须靠软件完成。

  5. 可软件编程的访问外部存储器的存取速度

  标准的8051在执行MOVX指令访问外部存储器时,执行时间固定为2个机器周期,而 W77E58可根据外部存储器的响应速度来选择执行MOVX指令时存取速度,这可以通 过选择特殊寄存器CKCON(clock control)的MD0-MD2的值来实现,特殊寄存器C KCON各位说明见表2,MD0-MD2的取值与外部存储器访问周期的关系见表3。

  6. 内存

  在W77E58中,有32KB的可多次编程(Multiple-Time Programmable)flash ROM, 256字节的片内RAM,1KB的片内用MOVX指令访问的SRAM,这在大多情况下,足以满足用户要求。

  7. 可编程看门狗定时器(Watchdog Timer)

  在W77E58中,集成了一个用户可编程的看门狗定时器,溢出时间选择如表4所示,在软件编程中,用户可以随时复位看门狗定时器。若程序跑飞,看门狗定时器溢出,则看门狗定时器自动设定中断标志,在512个时钟周期后,产生硬件复位,并保留2个机器周期后,程序恢复到地址0000H处开始执行。

  

W77E58

 

  

W77E58

 

  8. 双16位数据指针(Dual 16-bit Data Pointers)

  W77E58提供有两组数据数据指针DPTR和DPTR1,另外还增加了一条附加的指令DEC DPTR,在处理连续的一片内存空间时,可大大提高代码效率。用户可以通过DPS (DATA POINTER SELECT)位标志来选择使用DPTR或DPTR1,DPS是特殊寄存器DPS (86H)的最低位(LSB),当DPS为0时,选择DPTR,当DPS为1时,选择DPTR1。下面以数据块传输来比较一下使用双数据指针时的优越性。

  SH和SL为源数据区高位地址和地位地址;

  DH和DL为目的数据区高位地址和地位地址;

  CNT为传送数据的字节数。

  W77E58还有对某些重点标志位修改时的限时存取保护功能、定时器定时记数时按照4分频(W77E58的机器周期)或12分频(标准8051系列的机器周期)的选择功能、使用片内RC振荡器或片外晶体振荡器的选择功能、节电工作方式的电源管理功能等诸多优点,由于篇幅有限,不再赘述。

  三、应用前景

  通过以上特点和功能的介绍可以看出,W77E58确实是一个非常难得的、功能强大的微处理器产品,尤其特别适合于对存储器资源有一定要求和对软件运行速度有特别要求的场合。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分