资源说明:本文采用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的S
本文探讨了基于Philips公司的32位微处理器LPC2378的配变监测终端远程设计,利用其内置的IAP(In-Application Programming)功能实现程序的远程更新,同时结合LZW压缩算法降低通信流量和存储空间的需求。LPC2378是一款基于ARM7TDMI-S内核的处理器,拥有512 KB Flash和32 KB SRAM,支持ISP和IAP。考虑到程序的内存需求,外部扩展了64 KB的SRAM。
在LPC2378中,IAP操作是以Flash扇区为单位进行的,扇区分布如表1所示。IAP不允许对Boot扇区执行写、擦除和运行操作。调用IAP功能主要通过定义的C代码函数指针实现,例如,通过iap_entry()函数执行各种IAP命令(如表2所示),包括读ID、擦除、写入等操作。
远程更新程序的实现分为两部分:应用程序和更新程序。应用程序占据0~21个扇区,而更新程序占据22~27个扇区。使用ARM的ADS1.2开发环境,通过Scattered链接选项和定制的.scf文件,将程序分为这两部分。ROM_MAIN包含应用程序及其数据,位于片内Flash的0地址开始;LOADER是更新程序的代码区域,位于0x78000地址开始。在更新过程中,主站发送ROM_MAIN文件的二进制数据给终端,终端通过IAP功能对应用程序扇区进行擦除和改写,实现程序的无缝升级。
LZW压缩算法的应用旨在减小程序更新时的通信数据量。LZW是一种字典编码算法,通过查找重复模式并用更短的编码代替,有效压缩数据。在程序更新过程中,先对新的应用程序进行LZW压缩,减少传输的数据大小,到达终端后再解压并利用IAP功能写入Flash。
总结来说,文章详细阐述了如何使用LPC2378微处理器实现配变监测终端的远程更新机制,包括了LPC2378芯片的特性、IAP功能的原理及使用、LZW压缩算法的应用以及远程更新的具体步骤。这种方法不仅优化了通信效率,还降低了终端的存储需求,提升了系统更新的灵活性和可靠性。
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。