基于LPC2378的IAP功能的配变监测终端远程设计

时间:2012-08-21来源:网络

本文采用Philips公司的32位微处理器LPC2378进行配变监测终端的开发,并利用该芯片自带的IAP功能实现了终端程序的远程更新。为了降低通信流量和终端的存储空间,本文还将LZW压缩算法应用到程序更新中。

1 LPC2378芯片介绍

LPC2378是一款基于ARM7TDMI-S的32位处理器。它具有512 KB的片内Flash程序存储器、32 KB的静态RAM(SRAM),以及在系统编程(In-System Programming,ISP)和在应用编程(In-Application Program-ming,IAP)功能。由于程序对内存需求比较大,所以外扩了一片64 KB的SRAM。

通常,程序的下载可通过3种方式实现:

①采用嵌入式实时操作系统。该方法加大了系统对存储容量的要求,增加了硬件和软件成本。

②采用增加外控制烧录系统的方法。该方法同样增加了系统的复杂度和成本,且降低了系统本身的可靠性。

③采用IAP技术。该方法充分利用芯片本身的功能,不增加外围器件,是一种最佳的实现方案。

1.1 LPC2378的FIash扇区

IAP命令以“扇区”为单位进行操作,操作时需要指定扇区号。LPC2378的扇区分布如表1所列。IAP、ISP和RealMonitor程序都位于Boot区,Boot区位于地址0x000TE000~0x0007FFFF处。IAP命令不允许对Boot扇区执行写/擦除/运行操作。

LPC2378的扇区分布如表1

1.2 LPC2378的IAP功能

IAP程序是Thumb代码,位于地址0x7ffffff1。IAP功能可用下面的C代码来调用。

定义IAP程序的入口地址:

# define IAP_ENTER_ADR 0x7ffffff1

定义函数类型指针:

Typedef void(* IAP)(uint32[ ],uint32[ ])

IAP iap_entry;

设置函数指针:

Iap_entry=(IAP) IAP_ENTER_ADR;

使用下面的语句来调用IAP:

Iap_entry(command,result);

IAP功能主要通过调用iap_entry()函数来实现。IAP命令和定义的函数如表2所列。

IAP命令和定义的函数如表2

在进行片内Flash修改时,首先需要读取器件的ID和Boot代码命令版本;确认无误后,选择准备编程的扇区;然后擦除扇区并执行扇区查空,将RAM内容复制到Flash中;最后进行RAM内容与Flash的比较,检查是否复制成功。

1 2

关键词: 终端 远程 设计 监测 功能 LPC2378 IAP 基于

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版