新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 利用Flash实现单片机系统的在线维护

利用Flash实现单片机系统的在线维护

作者:时间:2012-02-02来源:网络收藏

1 引 言

单片机应用系统具有结构简单,可靠性高,灵活性强,性能价格比高等特点,如今已被广泛地应用于计算机行业的各个领域。随着单片机应用的推广,相应地带来了的维护问题,特别是在相同硬件结构条件下多个版本软件的管理问题,因此实现是非常必要的。

2 系统设计原理

有两种情况,一种就是就将系统的程序分成两个部分,并分别装载到单片机的EPROM与FLASH中,如等,因为 EPROM一般需要通过专门的编程仪器才能实现编程,所以一般是不能在线更改的;但是由于FLASH可以在线进行改写,通过对FLASH的在线编程就可实现单片机系统的了。此时的FLASH芯片也可以看成是一个扩展的程序存储器。另一种情况就是具备程序加载功能的芯片,如TMS320VC33、 TMS320F206等,它们在系统启动时从FLASH中加载程序并执行,此时只要动态维护FLASH中程序就可以实现对系统的维护了。

本文以ATMEL公司的单片机为例,采用方式,对单片机系统在线维护的实现进行阐述。在系统中,程序按一定规则分别装载在 以及FLASH中,在保持AT89C52中程序不变的情况下,根据系统的需求可以动态更新FLASH中的程序。AT89C52中的程序与 FLASH中的程序有如下的结构关系。

图1 AT89C52与FLASH的程序结构关系图

上图中,通常称AT89C52中的程序为引导程序,FLASH中的程序称为加载程序。引导程序应该具有基本的功能,如初始化、系统的公用功能、中断向量定义等,还要有加载程序的功能(具有的能力,并对FLASH芯片进行读/写操作)。维护时,将.BIN程序文件通过PC机串口发送给 AT89C52,AT89C52接收数据并将其写入到FLASH芯片中,这样只要更新BIN程序文件就可以对单片机系统的软件进行维护。

3 硬件结构图示与说明

硬件电路如图2示。

图2 AT89C52与SST29EE010的接口电路

图2中SST29EE010的22引脚(信号)接地址线A15的反,这样就可以在MCU产生8000H~0FFFFH寻址范围时选通SST29EE010,相应地对SST29EE010芯片的开锁与关锁写操作的2AAAH、5555H地址值也要分别加上8000H(有关SST29EE010芯片的开锁、关锁控制,请参考《单片机与嵌入式系统应用》 2003年第8期P31-32)。

SST29EE010空间大小为128K字节,而AT89C52的最大寻址空间为64K,本文不考虑扩展的问题,直接将高地址A15、A16分别接地,只使用SST29EE010芯片的128K字节空间中的0000H~7FFFH的32K空间。要利用更多的空间,需要对寻址进行扩展。

4 软件的设计与开发

系统软件的开发包括两个方面:即引导程序的开发和加载程序的开发。引导程序的开发是系统的基础,主要的功能是实现MCU的初始化,存储器检查,FLASH可用性检查,功能的实现,对FLASH程序的加载以及出错报警等,引导程序的工作流程如图3所示。

图3 引导程序工作流程图

引导程序中有四个重要部分,AT89C52初始化、串行中断服务程序以及程序加载指令的实现,以及命令代码的解析等。在系统没有加载程序之前引导程序处在等待加载的状态,直到加载完成才可能进入正常工作模式,并且在引导程序进入正常工作模式时,也还可以通过调用程序加载模块(子程序)进行程序的更新。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭