学海荡舟手机网

主页 > 实用文摘 > 教育文摘_04 > > 详细内容

W78E516及其在系统编程的实现_单片机论文

摘要:近年来,在系统编程(isp)技术的不断发展和成熟,使得硬件设计逐步软件化,硬件结构的通用性日益增强,系统设计、生产、维护、升级等环节都发生着深刻的变革。本文以winbond公司的w78e516为例介绍isp器件的结构及其在系统编程原理。

    关键词:w78e516在系统编程微控制器

    使用传统方法对cpu重新编程存在诸多不便,在系统编程技术(以下简称isp技术)的出现是对传统编程方法的突破。isp(in system programming)技术是指,在用户设计的目标系统中或印刷电路板上,为重新配置逻辑或实现新的功能,而对器件进行编程或反复编程的能力。isp技术的出现和发展开创了数字电子系统设计技术新的一页。isp技术无需编程器和较高的编程电压,打破了先编程后装配的惯例,形成产品后还可以在系统内反复编程,使具有mtp-rom可多次编程或反复编程的微控制器的优越性得以更充分的发挥。尤其是在互联网时代,依据系统环境和需要,经调制解调装置(modem)、串行口或专用的编程接口就能够通过软件控制,实现系统远程升级和调试,提高产品的适应性,延长产品生存周期,经济效益显著。真正的可编程系统的时代即将到来。

一、w78e516的结构

 w78e516是一种8位微控制器,内部含有在系统可编程的mtp-rom,用于系统更新。w78e516与标准的8052完全兼容。

 1. 特征

 (1) 全静态设计,最高工作频率为40mhz。

 (2) 64kb aprom存储应用程序和4kb ldrom存储控制isp操作的程序。2块存储器均为mtp-rom。

 (3) 512字节的片内ram(包括256字节aux-ram,可由软件选择)内部数据ram有512字节。它分成2个存储单元:256字节高速暂存和256字节辅存。这些地址有不同的确定方式:

 ① ram 0h~127h:同8052一样直接或间接寻址,地址指针是被选中的寄存器单元中的r0和r1。

 ② ram 128h~255h:同8052一样只能间接寻址,地址指针是被选中的寄存器单元中的r0和r1。

 ③ aux-ram 0h~255h:采用外部数据存储器的方式间接寻址,用movx指令,地址指针是选中寄存器单元的r0和r1以及dptr寄存器。在chcon寄存器中的第4位置位后,aux-ram有效,访问aux-ram使用“movx@ri”指令。当执行内部程序存储器的指令时,访问aux-ram不会影响p0,p2,wr和rd。aux-ram在复位后失效。

 (4) 程序存储器和数据存储器可寻址空间范围为64kb。

 (5) 4个8位双向口:p0~p3,1个4位双向多用途编程口p4。

 (6) 3个16位的定时器/计数器:t0,t1,t2。t0和t1功能与8051相同。t2是一个16位定时器/计数器,它由t2con配置和控制。t2能作为外部时钟计数器,也能作为内部定时器,这取决于t2con的c/t2位的配置情况。t2有3种操作方式:清零、自动重写、波特率发生器。在清零和自动重写方式时,时钟频率与t0和t1相同。

 (7) 具有一个全双工串行口。

 (8) 具有6个中断源和2级中断能力。

 (9) 内部电源管理:空闲方式和掉电方式,这两种方式可由软件选择。

 (10) 具有编程后的编码保护功能。

 2. 与isp操作相关的特殊功能寄存器

 (1) 在系统编程控制寄存器chpcon(bfh)功能如表1所列。

表1 

bitname功      能
7软件复位f04kmode该位置1且fbootsl和fprogen都置1时,微控制顺笔位,重新操作。读该位结果为逻1辑时,可双确认cpu处于f04kboot模式
6-保留
5-保留
4enauxram0:使aux-ram无效;
1:使aux-ram有效
30必须置为0
20必须置为0
1fbpptsl程序地址选择。
1:装载程序位64kb的aprom。4kbldrom是重新的目标地址。
0:装载程序位于4kb的存储器。64kb的aprom是重新编程的目标地址
0fprogenmtp-rom编程使能。
1:使编程功能有效。微控制器进入在系统编程状态。在这种编程模式下,清降、编程、读操作在设备进空闲模式后可以实现。
0:可能对rom执行写操作

 (2) 编程状态下mtp-rom的控制字节寄存器sfrcn(c7h)功能如表2所列。

表2

bitname功    能
7-保留
6wfwin选择isp操作目标存储器。
0:对ldrom重新编程;
1:对aprom重新编程
5oenmtp-rom输出使能
4cenmtp-rom使能
3,2,1,0ctrl[3:0]rom控制信号

   (3) sfrah,sfral:在系统编程状态下的目标地址。sfrah包含地址的高位字节;sfral包含地址的低位字节。

 (4) sfrfd:编程状态下mtp-rom的编程数据。

二、w78e516的在系统编程方法

 1. isp操作实现过程

 微控制器通常执行aprom中的程序。如果aprom中的程序需要修改,用户需要通过设置chpcon寄存器来激活在系统编程模式。在默认情况下,chpcon是只读的,必须依次向寄存器中写入#87h和#59h,才能使chpcon的写特性有效。激活chpcon的写特性后,在其0位置位,进入在系统编程模式。isp操作包括进入/退出在系统编程模式、编程、擦除、读等,它们是在cpu处于空闲模式时完成的,因此,设置chpcon寄存器后使cpu进入空闲模式,并由定时器中断的发生来控制执行每一种isp操作的时间。定时器中断到来时,转入ldrom中执行相关的中断服务程序。第一次执行reti指令后, pc指针清零,指向ldrom中的00h。当aprom中的内容被完全更新后,将chpcon的第0,1,7位设置为逻辑1,通过软件复位的方式返回aprom执行其中的新程序。在应用程序需要频繁更新的情况下,这种在系统编程方式使工作简单而高效。

 在默认情况下,上电复位后w78e516从程序中启动。在某些情况下,可以使w78e516从ldrom中启动。当aprom中的程序不能正常运行,w78e516无法跳到ldrom中执行isp操作时,cpu进入f04kboot模式。在应用系统设计中一定要注意p2,p3,ale,ea和psen引脚在复位时的值,以避免意外激活编程模式或f04kboot模式。复位时进入f04kboot mode时p43,p2.7,p2.6引脚电平及时序如图1及图2所示。

  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所示。

    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所示。

结束语

 根据本文介绍的方法,在机车故障检测记录仪系统内实现了对w78e516的在系统编程。

 isp技术高度的灵活性使同一种硬件结构能够实现多种系统功能,成为多功能硬件,减少了系统所需电路板的品种,简化了生产流程;多功能硬件还能够减少板上元件数目和系统电路板数目,使系统成本显著降低。在机车系统中要对各部分进行多种不同的测试,比如轴温、轴速以及车门的开关状态等等,以便了解机车的运行状况。在现阶段,处理这些模拟量或数字量需要设计生产多种不同的模块。应用isp技术以后这一现状会得以改变:设计人员设计出包括微控制器、a/d和d/a转换芯片、i/o口等在内的通用模块,将其安装到需要进行检测的各个部分,然后利用isp技术把不同的应用程序下载到微控制器中,就可以完成各种不同的测试功能,其综合经济效益不可低估。此外,

    isp技术也为其他许多领域带来了变革。总之,在系统编程技术具有广阔的开发应用前景。