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

[09-12 17:48:49]   来源:http://www.88dzw.com  单片机学习   阅读:8814

文章摘要:摘要:分析Boot ROM中的部分源代码,重点是IAP功能以及ISP和IAP的相互关系;应用IAP功能将剩余程序空间转化为数据空间,以及自编ISP程序来实现仪器的软件升级。 关键词:P89C51RD2 Boot ROM IAP(ISP)功能 软件升级1 概述P89C51RD2是Philips公司的80C51系列单片机中的佼佼者,具有1KB的片上RAM和64KB的片上内存;具有3种编程方式,即在系统编程ISP(InSystem Programming)、在应用中编程IAP(In-Application Programming)以及通过商用编程器的并行编程。ISP是指电路板上的空白器件可以编

基于P89C51RD2 IAP功能的数据存取与软件升级,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com

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

关键词:P89C51RD2 Boot ROM 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.88dzw.com)。

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个特点,在一些对时间要求不是很荷刻的场合,都可以将剩余的闪存空间作为数据空间来使用。例如,作者在海洋气象监测仪器的研制中,有些关键数据需要存储,如整点的风速、风向、温度、湿度、气压和降水量的瞬时值和十分钟平均值,以及最值、极值、大风段等。而数据的采集要求3s采集1次,采集处理时间大约需要0.5s,则剩余的时间内就可以利用IAP功能来存储数据。这些存储的数据可以通过串口被上位机调用。

[1] [2] [3]  下一页


Tag:单片机学习单片机开发,单片机原理,单片机教程单片机学习
分类导航
最新更新
热门排行