W78E516及其在系统编程的实现
在默认情况下,上电复位后W78E516从程序中启动。在某些情况下,可以使W78E516从LDROM中启动。当APROM中的程序不能正常运行,W78E516无法跳到LDROM中执行ISP操作时,CPU进入F04KBOOT模式。在应用系统设计中一定要注意P2,P3,ALE,EA和PSEN引脚在复位时的值,以避免意外激活编程模式或F04KBOOT模式。复位时进入F04KBOOT MODE时P43,P2.7,P2.6引脚电平及时序如图1及图2所示。
javascript:window.open(this.src);" style="cursor:pointer;"/>
W78E516处于在系统编程模式时,MTP-ROM可以被反复编程和检验。向MTP-ROM中完整、正确地写入新代码后,新代码即被保护起来。W78E516有专用设置寄存器组(special setting re-gisters),其中包括安全性寄存器(security register)和公司/器件识别寄存器(company/device ID registers),处于编程模式时不能访问这些寄存器。安全性寄存器在LDROM空间的地址是0FFFFH,当它的各个位被从1编程为0后就不能再被改变,将它们重新置位的惟一方式是执行全部擦除操作,这样就能保证其安全性。
一般情况下,具有ISP功能的微控制器一般都具备2块程序存储区(暂时称为A-ROM和B-ROM),其中A-ROM用于存储通常状况下的应用程序,B-ROM用于存储控制ISP操作的程序,向A-ROM中写入新代码。有些微控制器,A-ROM和B-ROM中的程序代码均能控制ISP操作,由特殊功能寄存器来选择其一,为设计人员提供了灵活的设计应用空间。针对不同类型的ISP器件,对CPU进行在系统编程的方法具有共同之处。
执行ISP操作时,2块程序存储器中的程序流程图分别如图3、图4所示。
javascript:window.open(this.src);" style="cursor:pointer;"/>
2.W78E516的 ISP功能特点
在MTP产品中,W78E516颇具特色。它在ISP功能方面具有突出的优点:
(1) 开发灵活性。可由设计者自定任何编程通信协议,经计算机或简单工具,将要修改的程序通过任何I/O口或UART口送入单片机内,不能像其他具有ISP功能的芯片那样,而必须针对其特定引脚及特殊的TIMMING协议来实现。
(2) 操作连续性。市场上目前具有ISP功能的单片机在执行ISP操作时(在未带配件的情况下)必须停止其他操作;而有些应用希望此时UART或TIMER/COUNTER等功能仍然能够运作。W78E516可以满足这种要求。因为在执行ISP操作时只是控制权从64KB APROM变换到4KB LDROM,故仍可由4KB中的程序来继续操作控制。
(3) 断电时具有存储数据能力。因W78E516拥有2块大小不同的闪速存储器,其中1块可用于存储断电后仍必须被单片机保留的数据,因此,设计者可减少外接EE2PROM芯片的线路与成本。 除具有上述特点外, W78E516在执行ISP操作时不需辅以任何配件,受到用户的欢迎。
三、应用实例
此实例是在机车故障检测记录仪系统内对W78E516进行ISP操作的实验。这是一个由PC机和微控制器组成的主从式系统。 PC机经串行通信将新程序的二进制代码以数据形式下载,微控制器接收数据,由软件控制更新64KB APROM中的程序代码。实验中微控制器经RS-232接口接收数据并暂存于内部AUX-RAM中,不需扩展外部数据存储器,节省了板上空间。检测记录仪与PC机的通信采用RS-232标准,为简化硬件,只使用了该标准中的TXD、RXD以及地线3根连线,电平转换由MAXIM232专用芯片完成。实验电路原理图如图5所示。
实现ISP操作的软件由两部分组成:一是微控制器部分(包括APROM和LDROM中的程序),用MCS-51汇编语言编写;二是PC机部分,由Microsoft Visual Basic开发而来,主要应用MSCOMM控件与W78E516通信,完成数据下载。
微控制器上电后一般从64KB APROM中启动。64KB APROM中,包括了在系统编程子程序,还有其他检测记录系统的子程序。微控制器必须读取拨码盘的输入,决定进入哪一种工作状态,是否进行在系统编程。值得注意的是,在写CHPCON寄存器时,应将其第4位置1,使AUX-RAM有效;64KB APROM中的程序应该始终包含图3流程所示的程序段,以使系统具有进入下一次在系统编程的能力。4KB LDROM中的程序主要作用是接收来自PC机的下载数据,并控制各项ISP操作。执行在系统编程时,利用SFRAL、SFRAH、SFRFD、SFRCN这几个特殊功能寄存器,选择在系统编程的地址单元,准备待写入的数据,选择待执行的操作类型。当从F04BOOT模式启动时,软件复位失效,必须硬件复位。在系统编程的数据由在此期间仍能正常工作的串行通信口进入。这部分流程如图6所示。
PC机通过 RS-232串口发送数据。每一帧的前3个字节都为7EH,作为帧同步信号。随后2个字节内容均为帧指针,表明本帧数据的帧号。PC机在发送1帧数据后,等待单片机发回确认数据帧,该帧数据应包括数据接收正确与否的标志及接收到的数据的帧号。数据帧格式及PC机通信软件流程分别如图7、图8所示。
javascript:window.open(this.src);" style="cursor:pointer;"/>
结束语
根据本文介绍的方法,在机车故障检测记录仪系统内实现了对W78E516的在系统编程。
ISP技术高度的灵活性使同一种硬件结构能够实现多种系统功能,成为多功能硬件,减少了系统所需电路板的品种,简化了生产流程;多功