位置:51电子网 » 技术资料 » 测试测量

基于P89C51RD2 IAP功能的数据存取与软件升级

发布时间:2008/6/3 0:00:00 访问次数:581

        

    

    

     来源:单片机与嵌入式系统应用 作者:宁光电工有限公司 赵四海

    

     摘要:分析boot rom中的部分源代码,重点是iap功能以及isp和iap的相互关系;应用iap功能将剩余程序空间转化为数据空间,以及自编isp程序来实现仪器的软件升级。

    

     1 概述

    

     p89c51rd2是philips公司的80c51系列单片机中的佼佼者,具有1kb的片上ram和64kb的片上内存;具有3种编程方式,即在系统编程isp(insystem programming)、在应用中编程iap(in-application programming)以及通过商用编程器的并行编程。isp是指电路板上的空白器件可以编程写入最终用户代码,而不需要从电路板上取下器件,已经编程的器件也可以用isp方式擦除或再编程;isp是指在用户的应用程序中获取新代码对flash块、flash寄存器、boot向量等进行擦除和重新编程,即可以用程序来改变程序。iap对于仪器仪表的智能化意义重大。高档的智能化仪器都具有自诊断、自修复、自组织、自适应和自学习等功能,而这些功能实现的物质基础,就是仪器的程序可以根据实际情况进行改变和调整。

    

     philips公司在p89c51rd2中提供了boot rom固件,位于0fc00h~0ffffh空间,与闪存空间重叠,如图1所示。philips公司提供了寻址该器件的方法,因此可以通过读取其目标代码进行分析研究。有关boot rom的读出方法以及boot rom与isp功能的实现在参考文献3已有所论述。

    

     p89c51rd2的iap功能的实现了是靠philips公司提供的boot rom固件来实现的。boot rom固件中已经固化有上述擦除和编程等子程序,只要应用程序来调用即可。通过对boot rom反汇编内容进一步的分析可以看出:isp和iap是一脉相承的,isp功能的实现调用iap功能的子程序。本文将分析boot rom中有关iap及iap和isp的相互关系,以达到深入了解和利用iap功能的目的。

    

     2 对boot rom中有关iap功能代码的分析

    

     3 对boot rom中isp和iap的相互关系分析

    

     2、3内容请见本刊网络补充版(http://www.dpj.com.cn)。

    

     4 iap功能的使用

    

     4.1 程序空间用作数据空间

    

     在一个实际的应用系统中,往往有一些关键性的数据需要保存,例如用户设置数据或重要的过程数据。目前的通过做法有两种:一种是在电路中扩展非易失性sram,多用在对时间要求比较苛刻的场合;另一种做法是扩展eeprom(并行或串行)或类似存储器,多用在对时间要求不太荷刻的场合。这两种方法可达到掉电后数据不丢失的目的。

    

     p89c51rd2具有64kb的片上闪存,这对于一般的应用来说足够大,往往会有剩余的闪存空间。在通常状况下,mcu的编程只能通过商用编程器来进行,那么剩余的闪存空间只能作为程序升级的备用空间,而不能作为数据空间;另一方面,如果需要保存数据,还要另外扩展存储器,这样不但增加了电路板的面积,而且增加了调试难度。

    

    

     而p89c51rd2是一种具有iap功能的单片机,其内存结构具有如下特点(见图1):

    

     ①闪存空间是分块的。64kb的内存空间共分5块,由低到高分别为8kb(block0)、8kb(block1)、16kb(block2)、16kb(block3)、16kb(block4);

    

     ②每一块都可以单独擦除;

    

     ③在程序中可以调用iap功能,对闪存中的每一字节进行单独编程。

    

     正是由于上述3个特点,在一些对时间要求不是很荷刻的场合,都可以将剩余的闪存空间作为数据空间来使用。例如,作者在海洋气象监测仪器的研制中,有些关键数据需要存储,如整点的风速、风向、温度、湿度、气压和降水量

        

    

    

     来源:单片机与嵌入式系统应用 作者:宁光电工有限公司 赵四海

    

     摘要:分析boot rom中的部分源代码,重点是iap功能以及isp和iap的相互关系;应用iap功能将剩余程序空间转化为数据空间,以及自编isp程序来实现仪器的软件升级。

    

     1 概述

    

     p89c51rd2是philips公司的80c51系列单片机中的佼佼者,具有1kb的片上ram和64kb的片上内存;具有3种编程方式,即在系统编程isp(insystem programming)、在应用中编程iap(in-application programming)以及通过商用编程器的并行编程。isp是指电路板上的空白器件可以编程写入最终用户代码,而不需要从电路板上取下器件,已经编程的器件也可以用isp方式擦除或再编程;isp是指在用户的应用程序中获取新代码对flash块、flash寄存器、boot向量等进行擦除和重新编程,即可以用程序来改变程序。iap对于仪器仪表的智能化意义重大。高档的智能化仪器都具有自诊断、自修复、自组织、自适应和自学习等功能,而这些功能实现的物质基础,就是仪器的程序可以根据实际情况进行改变和调整。

    

     philips公司在p89c51rd2中提供了boot rom固件,位于0fc00h~0ffffh空间,与闪存空间重叠,如图1所示。philips公司提供了寻址该器件的方法,因此可以通过读取其目标代码进行分析研究。有关boot rom的读出方法以及boot rom与isp功能的实现在参考文献3已有所论述。

    

     p89c51rd2的iap功能的实现了是靠philips公司提供的boot rom固件来实现的。boot rom固件中已经固化有上述擦除和编程等子程序,只要应用程序来调用即可。通过对boot rom反汇编内容进一步的分析可以看出:isp和iap是一脉相承的,isp功能的实现调用iap功能的子程序。本文将分析boot rom中有关iap及iap和isp的相互关系,以达到深入了解和利用iap功能的目的。

    

     2 对boot rom中有关iap功能代码的分析

    

     3 对boot rom中isp和iap的相互关系分析

    

     2、3内容请见本刊网络补充版(http://www.dpj.com.cn)。

    

     4 iap功能的使用

    

     4.1 程序空间用作数据空间

    

     在一个实际的应用系统中,往往有一些关键性的数据需要保存,例如用户设置数据或重要的过程数据。目前的通过做法有两种:一种是在电路中扩展非易失性sram,多用在对时间要求比较苛刻的场合;另一种做法是扩展eeprom(并行或串行)或类似存储器,多用在对时间要求不太荷刻的场合。这两种方法可达到掉电后数据不丢失的目的。

    

     p89c51rd2具有64kb的片上闪存,这对于一般的应用来说足够大,往往会有剩余的闪存空间。在通常状况下,mcu的编程只能通过商用编程器来进行,那么剩余的闪存空间只能作为程序升级的备用空间,而不能作为数据空间;另一方面,如果需要保存数据,还要另外扩展存储器,这样不但增加了电路板的面积,而且增加了调试难度。

    

    

     而p89c51rd2是一种具有iap功能的单片机,其内存结构具有如下特点(见图1):

    

     ①闪存空间是分块的。64kb的内存空间共分5块,由低到高分别为8kb(block0)、8kb(block1)、16kb(block2)、16kb(block3)、16kb(block4);

    

     ②每一块都可以单独擦除;

    

     ③在程序中可以调用iap功能,对闪存中的每一字节进行单独编程。

    

     正是由于上述3个特点,在一些对时间要求不是很荷刻的场合,都可以将剩余的闪存空间作为数据空间来使用。例如,作者在海洋气象监测仪器的研制中,有些关键数据需要存储,如整点的风速、风向、温度、湿度、气压和降水量

相关IC型号

热门点击

 

推荐技术资料

音频变压器DIY
    笔者在本刊今年第六期上着重介绍了“四夹三”音频变压器的... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!