摘要:针对智能终端的系统软件远程升级和维护困难的问题,提出一种基于lpc2124的远程系统软件升级的设计方案。介绍lpc2124的主要性能和特点,片上flash的构成及其isp、iap和jtag等多种编程方法的工作原理,并系统地阐述远程iap在用电现场监控终端上的应用。最后探讨对远程iap升级方案的可靠性。实践证明,该设计方案较好地解决了终端软件远程升级和维护困难的问题,缩短了终端软件系统的开发周期。
关键词:lpc2124 远程iap 软件升级 gprs 监控终端
引言
用电现场监控终端是一种与多功能计量设备同步计量并全方位监控用电状况的智能化设备,在目前全国电力紧缺的情况下,起到了削峰填谷,提高电网运行效率的作用,尤其适合于对用电大户的用电监控。
市场的需求和应用技术的成熟往往是矛盾的,用户总希望尽快用到功能完善、技术先进的产品,但从新技术到应用总有一个过程。这个过程的长短最大程度上决定了产品的市场前景,如果要好好把握市场,常常不得不一边开拓市场一边完善技术。实践是检验真理的唯一标准,要做出好的产品,必须与用户形成互动的关系,利用用户的反馈信息对产品不断完善。另外,产品长时间使用后,终端程序设计上的缺陷也就慢慢浮出水面,这就要求对终端系统程序进行升级。如果对几百个终端进行现场isp升级,那么不但浪费大量的人力、财力,更重要的是浪费了宝贵的时间,延误了开拓市场的机遇,降低了用户对产品的信誉度。
在internet飞速发展的时代,将终端接入到internet是解决上述问题的可靠、现实的方案。本设计方案应用于用电现场监控终端,采用高性能philips arm mcu lpc2124,结合gprs技术实现终端系统程序的远程升级。
1 lpc2124芯片简介
1.1 功能介绍
lpc2124基于一个支持实时仿真和跟踪的16/32位arm7tdmi-s cpu,并带有256 kb嵌入的高速flash存储器和16 kb ram。对于内嵌flash存储器支持jtag、isp、iap等多种编程方式。
lpc2124具有非常小的64脚封装、极低的功耗、多个32位定时器、4路10位adc、pwm输出、46个gpio以及多达9个外部中断,且内置了宽范围的串行通信接口,使它们特别适用于工业控制中。因为用电监控终端对硬件资源要求高,软件功能复杂,实时性强,所以采用lpc2124可以提高产品的性价比。
1.2 flash存储系统
lpc2124存储系统包含256 kb的17个扇区。flash存储器从0地址开始并向上增加,17个扇区的大小也不连续分布,17个扇区总容量为248 kb,剩下的8 kb存储空间为boot扇区。boot扇区位于flash存储系统的顶端部分,地址空间是0x0003e000~0x0003ffff。lpc2124存储系统的地址分配如图1所示。
图1 lpc2124 flash地址分配图
boot block占用第17扇区,即boot扇区。该扇区的存储空间专用来存放boot装载程序,控制复位后的初始化操作,并提供flash的编程方法(代码)。boot装载器可启动对空白片的编程、已编程器件的擦除和再编程以及在运行的系统中由应用程序对flash存储器进行编程。
1.3 flash存储系统的编程
lpc2124支持多种方式对flash进行编程,用来写入用户代码或数据。第一种是通过内置的串行jtag接口;第二种是通过uart0进行在系统编程(isp);第三种是通过在应用编程(iap)实现。
1.3.1 jtag编程
lpc2124的jtag flash编程可方便下载程序到片内flash,但jtag接口更主要的是提供硬件系统调试功能,诸如实现软件的断点、单步。jtag flash编程要中断应用软件的正常运行,连线较多,通信距离较短,而且要现场编程,只适应于产品在开发期的调试使用。
1.3.2 在系统编程
isp(in-system programming)技术,即在系统可编程技术,是指电路板上的空白器件可以编程写入最终用户代码,而无需从电路板上取下器件;已编程的器件也可用isp方式擦除或再编程。lpc2124支持isp的flash编程,但要中止应用软件的正常运行,且需要提供一定的硬件资源,包括uart0口、rs232驱动和cpu特殊引脚的状态;编程要求现场操作,非常适用于便携式智能仪器的升级,但显然不适用于用电监测终端这类安装环境特殊的设备。isp编程原理详见参考文献[1]。
1.3.3 在应用编程在应用编程iap(in-application programming)是应用在flash程序存储器的一种编程模式。简单地说就是在应用程序控制下,对程序某段存储空间进行读取、擦除或写入操作。与isp操作非常相似,具有在线编程功能,且克服了isp的不足之处。它可以在应用程序正常运行的情况下对另外一段程序flash进行读/写操作,甚至可以控制对某段、某页甚至某个字节的读/写操作。这为数据存储和固件的现场升级带来了极大的灵活性。
2 iap功能的硬件设计
基于lpc2124的以上3种编程方