- 相关推荐
ATMEGA128单片机的软件远程升级
摘要:介绍了ATMEGA128单片机应用中的在线编程方法。给出了软件IAP升级设计中应注意的一些关键技术,结合某市地铁调度系统对IAP升级的可靠性和保密性等问题进行了简单的论述。
闪速程序存储器的编程方法常见的有以下几种:
(1)传统的并行编程方法;
(2)通过串行口进行在线编程ISP?In System Programmability?:对器件或电路甚至整个系统进行现场升级或功能重构;
(3)在运行中,应用程序控制下的应用在线编程IAP?In Application Programming?;IAP模式简单地说就是在某一个section中运行程序,同时对另一个section进行擦除、读取、写入等操作。
ISP方式相对于传统方式有了极大的进步,它不需要将芯片从电路板上卸下就可对芯片进行编程,减少了开发时间,简化了产品制造流程,并大大降低了现场升级的困难。而IAP方式是对芯片的编程处于应用程序控制之下,对芯片的编程融入在通信系统当中,通过INTERNET网络来升级指定目标芯片的软件。
图1 某城市地铁调度指挥系统的网络结构
随着芯片技术的高速发展,各厂家相继推出了自己的支持ISP/IAP编程模式的芯片,如美国ATMEL公司的ATMEGA128、ATMEGA169,Silicon Storage Technology公司的SST89C54/58j等。其中美国ATMEL公司推出的ATMEGA128是基于AVR RISC的低功耗8位单片机,最高工作频率可达16MHz,具有128KB FLASH内部存储应用器、4KB EEPROM和SRAM数据存储空间,最大可达4096字节的独立加密位的可选bootloader程序代码区,以及相应的专门用来支持(IAP)操作的操作控制寄存器SPMCR。近年来该型单片机以其优良而稳定的性能广泛应用于各种电子产品中。
1 利用ATMEGA128构成的远程升级系统
1.1系统组成
图1给出了某城市地铁调度指挥系统的网络结构。该系统的网络通信采用轮询方式。
该系统主要设备包括若干个基台站、主控单元、基站控制中心、语音交换单元。
各设备的主要功能为:基站台用来接收车载台的数字信令和语音信号;主控单元协调各子节点动作并监视各子节点状态;基站控制中心既是主控单元的子节点又是各基站台的主节点,辅助主控单元完成对各基站台的控制,协调各基站台动作,搜集各基站台传来的消息和监视各基站台状态;PCM交换单元在主控单元控制下完成语音交换功能。
1.2 系统软件IAP升级
在不影响整个系统正常运行情况下,为实现对系统某个节点的软件升级,可将要升级的程序代码通过写码软件转换为系统信令,以透明传输的方式传输?下载?到目标节点。本系统的信令格式采用表1所示的代码帧格式。其中帧传输控制字节为5字节,操作控制字节为4字节,代码数据为32字节。
表1 代码帧格式
目的地址源地址字节长度Y下载目标地址控制字RAMPZZHZL代码数据
为保证代码传输的准确性,本系统采用反馈比对的方式,以监控终端向基台站的代码传输为例,代码由监控终端传输到基台站,基台站收到代码后,再反馈回监控终端。监控终端将收到的代码与发送的代码作比较,比较结果一致时传输下一代码帧,不一致时重复传输上一代码帧。
系统根据代码帧的下载目标地址,自动寻址将代码帧通过各级网络节点下载到目标节点。写入代码的位置原则上可在系统中的任何一点进行,但考虑到实际情况,本系统中只有两个写入点?显示终端和监控终端?,写入代码时不影响系统的正常运行。收到软件升级消息的节点通过判断代码帧的控制字完成相应的读、写、擦除等操作,并且可根据不同的需求配置不同的控制字实现远程终端对目标节点的各种资源的监控。
例如要通过监控终端升级基站1中ATMEGA128的软件,则要在监控终端中启动写码软件,将编译完成的升级代码按照表1所示的系统帧格式打包,依照代码在程序存储区的先后次序依次发出。从图1中可看出要通过监控终端升级基站1中的软件,还要经由两个中间节点:主控单元和基站控制中心,其时序流程如图2所示。
首先,监控终端发出一代码帧到主控单元,主控单元根据代码帧中的下载目标地址判断应传送的下一节点——基站控制中心。当主控单元轮询到基站控制中心时,将收到的代码帧发送给基站控制中心。同样,基站控制中心根据代码帧中的下载目标地址,将代码帧下载并传送到要升级的基站1的处理器ATMEGA128单片机中。单片机接收到代码帧后首先将此代码帧回传给基站控制中心,然后将程序跳转,运行bootloader程序区段。此时应用程序区段处于忙状态,运行bootloader程序区段的程序,根据代码载入地址将程序代码写入应用程序存储区的正确位置,并在bootloader程序区段继续运行,等待后续到达的代码帧。而回传的代码帧同样经过两级节点返回到监控终端。监控终端收到后与发送的代码帧进行比较,准确无误后方可传送下一帧数据,否则重发。
图3给出了代码写入主程序流程图。当代码帧下载到基站1的控制单片机ATMEGA128后,当检测到帧类型为升级代码帧“Y”时,触发代码升级程序,程序由应用程序区段跳转至bootloader程序区段。在此区段可以对应用程序区段进行读、写等操作,同时接收通过USART串口不断传来的代码帧。
在代码开始写入前,首先将存于EEPROM中的写入操作开始标志位置位,然后判断操作控制字以检测
【ATMEGA128单片机的软件远程升级】相关文章:
基于RTX51的单片机软件设计03-18
远程开放教育软件工程专业03-01
实效营销大脑升级03-07
多站远程无线控制信号系统通信软件的开发03-18
管理升级带动需求论文12-02
略论衰退产业调整与升级模式03-24
单片机的参考文献05-27