思索网:WWW.4SO.NET
网站首页
设为首页
加入收藏
社区论坛
联系我们
网站地图
发现个人价值
提高企业内涵
一切源于思索
首页
企业之家
公关文秘
免费论文
网上办公指南
操作系统
多媒体应用
现代教学
下载中心
专题报道
推荐文章
评论
English Article
IT资讯
网页设计
网站运营
编程开发
平面设计
网络安全
工具下载
站内搜索
最新文章
热门文章
论坛
栏目列表
工科论文
管理学论文
公共管理论文
经济学论文
法律论文
政治学论文
会计审计论文
艺术论文
其它类论文
证券金融论文
论文指导
财政税收论文
工商管理论文
财务管理论文
计算机论文
医学论文
哲学论文
教育论文
电子商务
首页
>
免费论文
>
计算机论文
> 基于P89C51RD2IAP功能的数据存取与软件升级
基于P89C51RD2IAP功能的数据存取与软件升级
日期:
2006-06-10 04:25:08
来源:
请您记住思索网的网址:
http://www.4so.net
[加入收藏夹]
摘要:
分析BootROM中的部分源代码,重点是IAP功能以及ISP和IAP的相互关系;应用IAP功能将剩余程序空间转化为数据空间,以及自编ISP程序来实现仪器的软件升级。
关键词:
P89C51RD2BootROMIAP(ISP)功能软件升级
1概述
P89C51RD2是Philips
公司
的80C51系列单片机中的佼佼者,具有1KB的片上RAM和64KB的片上内存;具有3种
编程
方式,即在系统
编程
ISP(InSystemProgramming)、在应用中
编程
IAP(In-ApplicationProgramming)以及通过商用
编程
器的并行
编程
。ISP是指电路板上的空白器件可以
编程
写入最终用户代码,而不需要从电路板上取下器件,已经
编程
的器件也可以用ISP方式擦除或再
编程
;ISP是指在用户的应用程序中获取新代码对Flash块、Flash寄存器、Boot向量等进行擦除和重新
编程
,即可以用程序来改变程序。IAP对于仪器仪表的智能化意义重大。高档的智能化仪器都具有自诊断、自修复、自组织、自适应和自学习等功能,而这些功能实现的物质基础,就是仪器的程序可以根据实际情况进行改变和调整。
Philips
公司
在P89C51RD2中提供了BootROM固件,位于0FC00H~0FFFFH空间,与闪存空间重叠,如图1所示。Philips
公司
提供了寻址该器件的方法,因此可以通过读取其目标代码进行分析研究。有关BootROM的读出方法以及BootROM与ISP功能的实现在参考文献3已有所论述。
P89C51RD2的IAP功能的实现了是靠Philips
公司
提供的BootROM固件来实现的。BootROM固件中已经固化有上述擦除和
编程
等子程序,只要应用程序来调用即可。通过对BootROM反汇编内容进一步的分析可以看出:ISP和IAP是一脉相承的,ISP功能的实现调用IAP功能的子程序。本文将分析BootROM中有关IAP及IAP和ISP的相互关系,以达到深入了解和利用IAP功能的目的。
2对BootROM中有关IAP功能代码的分析
3对BootROM中ISP和IAP的相互关系分析
2、3内容请见本刊网络补充版(http://www.dpj.com.cn)。
4IAP功能的使用
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功能来存储数据。这些存储的数据可以通过串口被上位机调用。
由于整个软件经汇编后大约20KB,因此,将地址为0000H~7FFFH的32KB内存空间作为程序空间,则可以仪器的升级预留足够的空间;而将8000H~0FFFFH的32KB闪存空间留作数据存储空间。由图1可以看出,从8000H~0FFFFH的32KB闪存空间由BLOCK3和BLOCK4两块组成,每一块为16KB,足可以存储10天的数据量。在实际操作中,将BLOCK3和BLOCK4轮流使用,当10天的数据量存满其中一块时,通过程序跳转到另一块中,在使用前先将该块擦除。这样BLOCK3和BLOCK4每过20天便分别被擦除和重写1次。对有关地址定义如下:
ADDR_LEQU30H;被
编程
数据的低8位地址
ADDR_LEQU31H;被
编程
数据的高8位地址
DATA_TEMPEQU32H;被
编程
数据
ADDR_L,ADDR_H和DATA_TEMP的具体地址可以根据用户程序的实际情况进行定义;AUXR1,PGM_MTP的定义同前。有关子程序为:
擦除BL0CK3
ERSBLOCK3:;BLOCK3擦除
MOVAUXR1,#20H;AUXR1的位ENBOOT=1,寻址到固件
MOVR0,#11;晶振为11.0592MHz,取11
MOVR1,#01H;R1=01H,块擦除
MOVDPTR,#8000H;擦除BLOCK3
LCALLPGM_MTP;调用,无返回参数
RET
擦除BL0CK4
EPSBLOCK4:;BLOCK4擦除
MOVAUXR1,#20;AUXR1的位ENBOOT=1,寻址到固件
MOVR0,#11;晶振为11.0592MHz,取11
MOVR1,#01H;RI=01H,块擦除
MOVDPTR,#0C000H;擦除BLOCK4
LCALLPGM_MTP;调用,无返回参数
RET
字节
编程
WRDATA:
MOVAUXR1,#20H;AUXR1的位ENBOOT=1,寻址到固件
MOVR0,#11;晶振为11.0592MHz,取11
MOVR1,#02H;R1=02H,字节
编程
功能
MOVDPH,ADDR_H;高8位地址
MOVDPL,ADDR_L;低8位地址
MOVA,DATA_TEMP;被
编程
数据
LCALLPGM_MTP;调用,返回参数ACC=0,调用成功,非0调用失败
RET
读闪存字节内容
RDDATA:
MOVAUXR1,#20H;AUXR1的位ENBOOT=1,寻址到固件
MOVR0,#11;晶振为11.0592MHz,取11
MOVR1,#03H;R1=03H,读闪存字节内容
MOVDPL,ADDR_L;低8位地址
MOVDPH,ADDR_H;高8位地址
LCALLPGM_TEMP;调用,返回参数ACC中为读出字节内容
RET
将上述4个子程序结合实际情况灵活运用,便可以实现数据的有效存储,而且这些数据在掉电后是不丢失的,完全达到系统要求。
4.2IAP功能应用于仪器升级
利用P89C51RD2固有的ISP功能,在所设计的仪器中增加1个拨码开关,便可以实现智能仪器的软件升级。对操作人员的要不高,原理简单易行。具体方法请见参考文献4。
文献4所讨论的ISP功能与远程升级,实质上是在复位过程中,用相应的硬件控制使程序指针跳转到BootROM空间的0FC00H处。整个过程由ISP程序模块来控制,而用户程序由于是被升级程序,故完全失去了控制权,
编程
完毕,需要人工复位并使指针切换到用户程序空间中方可使新程序起作用。这给智能仪器升级带来了麻烦,如果巧妙地利用P89C51RD2的IAP功能,则可以使仪器升级变得更加简单。
前面已经指出,ISP和IAP是一脉相承的,ISP功能的实现调用了IAP功能的子程序。所以完全可以利用IAP功能来设计自己的ISP程序,这样,就可以不必在闪存空间和BootROM空间之间跳来跳去。
由于用户程序一般不会超过48KB,故可将BLOCK4留出,作为用户自编ISP功能区空间。在下面的自编ISP程序中,如果上位机误传来擦除BLOCK4的指令,将被认为是错误指令而不予执行,这样就可以保证该部分程序不会被擦除。
整个ISP功能程序的编制可以参照参考文献3分析的BootROM中ISP功能的有关程序。不过,可以将波特率自动跟踪去掉,使用固定波特率,并且将整个协议进行简化,将所有功能规划为擦除、
编程
、读出、校验4大模块,而且这些模块的执行直接使用Philips
公司
的有关协议,这样BootROM中的有关程序就可以作为用户
编程
的参考。
规定ISP功能的启动命令为“[ISPSTART]”。当下位机收到上位机传输的该条指令时,便跳转到用户自编的ISP程序中,此时上下位机通过用户的协议就可完成用户空间程序的擦除、查空、
编程
、校验等功能,直到上位机传来“[ISPEND]”指令为止。这就表示所有的程序已经传输完毕并校验成功。此时跳出ISP,使指针指向0000H单元,则系统根据升级正常运行。有关流程如图2所示。
自编ISP程序具有以下特点:
*自编ISP程序与上位机的协议参考Philips
公司
的有关协议并予以简化,启动和结合命令由自己定义,开发比较容易;
*自编ISP程序不必在复位时开始执行,升级完成后,可以将程序指针转向新程序,不必重新启动系统;
*可以使用固定的波特率,并且T1和T2都可以作为波特率发生器;
*触发条件规定为一条普通的串口指令,当下位机接收到该条指令后,即跳转到自编的ISP程序空间中。
使用这种方法也存在一定的缺点,由于自编ISP程序相当于一块固化程序,不能轻易擦除,因此,这种方法一般不能对整片进行升级。但考虑到P89C51RD2具有64KB的FlashROM,用户程序空间很少能使用到BLOCK4,所以该方案在一般情况下是切实可行的。
本文地址:
http://www.4so.net/thesis/chiphead/55204.html
将本页加入收藏夹
将地址复制到剪贴板发送给好友
若发现本文有误或版权问题点击这里
热门信息
相关文章
[
计算机论文
]
网络办公自动化系统开发分析
[
计算机论文
]
中小企业办公自动化系统的设计与
[
计算机论文
]
学生档案管理系统
[
计算机论文
]
三维连续网络结构增强金属基复合
[
计算机论文
]
ASP技术访问WEB数据库
[
计算机论文
]
智能网络存储方案
[
计算机论文
]
基于网络的视频通讯系统(txx17)
[
计算机论文
]
计算机网络中的交换技术(txx15)
[
计算机论文
]
论网络教育中个别化学习和协作学
[
计算机论文
]
网络经济与中国企业发展
基于PIC单片机的热能表研制
基于WE904的实时图像无线传输设计
基于VRTX操作系统实现V5接口协议
基于MSP430和nRF40l的无线自动抄表系统
一种基于软件无线电的通用调制器的设计和实现
基于AMBE-2000的多速率语音通信终端模块
一种基于配电网的跨变压器台区电力通信技术
基于RTLinux的实时控制系统
一种基于七号信令的局间话单采集系统研究与应用
基于GIS平台的城市智能交通管理系统构架研究
文章评论
收藏本文
打印本文
关闭窗口