艨
基于 LPC21 24的一个远程系统软件升级
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
● 湖南大学 湖南科技大学 韦 文 祥
● 湖 南 大 学 朱 志 杰 车 琳 娜
● 佛 山 市 华 达 电 器 厂 掌B宝 泉
关键词 I.PC2124 远程 IAP 软件升级 GPRS 监控终端
引 言
用电现场监控终端是一种与多功能计量设备同步计
量并全方位监控用电状况的智能化设备,在目前全国电力
紧缺的情况下,起到 r削峰填谷,提高电网运行效率的作
用 ,尤其适合于对用电大户的用电监控
市场的需求和应用技术的成熟往往是矛盾的,用户总
希望尽快用到功能完善、技术先进的产晶,但从新技术到
应用总有一个过程。这个过程的长短最大稃度上决定 r
产品的市场前景 ,如果要好好把握市场,常常不得不⋯·边
开拓市场一边完善技术。实践是检验真理的唯一标准,要
做出好的产品,必须与用户形成互动的关系,利用用,LI的
反馈信息对产品不断完善 另外,产品长时间使用后 ,终
端程序
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
上的缺陷也就慢慢浮出水面,这就要求对终端
系统程序进行升级。如果对几百个终端进行现场 ISP升
级,那么 但浪费大量的人力、财力,更重要的是浪费 r宝
贵的时间,延误了开拓市场的机遇,降低了用户对产品的
信誉度。
在 Internet飞速发展的时代,将终端接入到 Internet
是解决上述问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
的可靠、现实的方案 本设计方案应用于
用 电现场 监 控终 端,采 用 高性 能 Philips ARM MCU
I.PC2124,结合 GPRS技术实现终端系统程序的远程升级。
1 LPO2124芯片简介
1.1 功能介绍
LPC2124基于一个支持实时仿真和跟踪的 1 6/32位
ARM7TDMI—S CPU,并带有 256 KB嵌入的高速 Flash存
储器和 1 6 KB RAM。对于内嵌 Flash存储器支持JTAG、
ISP、lAP等多种编程方式。
LPC21 24具有非常小的 64脚封装、极低的功耗、多个
32佗定时器、4路 1O位 ADC、PWM 输出、46个 GPIO以
及多达 9个外部中断,且内置了宽范围的串行通信接 口,
使它们特别适用于工业控制中。因为用电监控终端对硬
件资源 要求 高,软 件 功能 复杂,实 时性 强,所 以采 用
I PC2124呵以提高产品的性价比。
1.2 Flash存储系统
1 PC2l24存储系统包含 256 KB的 17个扇iX.。Flash
存储器从 0地址开始并向上增加,17个扇区的大小也不
连续分l布,1 7个扇区总容量为 248 KB,剩下的 8 KB存储
空间为 Boot扇区。Boot扇区位于 Flash存储系统的顶端
部分 。地址空间是 0x0003E000~0x0003FFFF。I.PC2124
存储系统的地址分配如图 1所示。
Boot Block占用第 l7扇区,即 Boot扇区。该扇区的
存储窄问专用来存放 Boot装载程序,控制复位后的初始
化操作,并提供 Flash的编程
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
(代码)。Boot装载器可
启动对空白片的编程、已编程器件的擦除和再编程以及在
运行的系统中由应用程序对 Flash存储器进行编程。
1.3 Flash存储系统的编程
LPC21 24支持多种方式对 Flash进行编程,用来写入
羽户代码或数据。第一种是通过内置的串行JTAG接口;
第二种是通过 UART0进行在系统编程(ISP);第三种是
46 簟卉札 占甚入土 毒 刍J田
维普资讯 http://www.cqvip.com
扇区 17
(8KB Boot)
扇 16(8KB)
扇区10(8KB)
扇区9
(64KB)
扇区8
(64KB)
扇区7(8KB)
扇区0(8KB)
0x0003E000~FFFF
0x0003C000-DFFF
:
OxOOO3OOOO一1FFF
OxOOO2OOOO~FFFF
0x000 1 0000~FFFF
OxOOOOEOOO~FFFF
OxOOOOOOOO~1 FFF
图 1 LP02124 Flash地址分配图
通过在应用编程(IAP)实现。
1.3.1 JTAG编程
LPC2124的 JTAG Flash编程可方便下载程序到片
内 Flash,但 JTAG接 口更主要的是提供硬件系统调试功
能,诸如实现软件的断点、单步。JTAG Flash编程要中断
应用软件的正常运行,连线较多,通信距离较短,而且要现
场编程,只适应于产品在开发期的调试使用。
1.3.2 在系统编程
ISP(In~System Programming)技术,即在系统可编程
技术,是指电路板上的空白器件可以编程写入最终用户代
码,而无需从电路板 上取下器件;已编程 的器件也 可用
ISP方式擦除或再编程。I PC2124支持 ISP的 Flash编
程,fH要IfJ止应用软件的正常运行,且需要提供一定的硬
件资源,包括 UART0口、RS232驱动和 CPU特殊引脚的
状态;编程要求现场操作,非常适用于便携式智能仪器的
升级,但显然不适用于用电监测终端这类安装环境特殊的
设备。ISP编程原理详见参考文献[1]。
1.3.3 在应用编程
在应用编程 IAP(In—Application Programmlng)是应
用在 Flash程序存储器的一种编程模式。简单地说就是
在应用程序控制下,对程序某段存储空问进行读取、擦除
或写入操作。与 ISP操作非常相似,具有在线编程功能,
且克服了 ISP的不足之处。它可以在应用程序正常运行
的情况下对另外一段程序 Flash进行读/写操作,甚至可
以控制对某段、某贞甚至某个字节的读/写操作。这为数
据存储和周件的现场升级带来了极大的灵活性。
2 lAP功能的硬件设计
基于 I.PC2124的以上 3种编程方法的分析,IAP实
现对终端程序升级自然是最佳选择方案。下面介绍一种
基于 GPRS的远程 IAP系统方案,系统框图如图 2所示。
AT45DB081B,8 Mb串行 Flash存储器,兼有 ROM
的掉电数据保存和 RAM 的读/写速度,最快支持 20 MHz
的时钟频率,擦写次数达 10 000次,内置 2个 264字节
SRAM 缓冲器,使得对主存储体的编程可以连续进行,省
去编程等待时间 AT45DB081B采用 CASON一8封装,支
持 2.5~3.6 V低电压,操作功耗低,支持模式 0和 3的
SPI总线接口,与 MCU接 口简单,稳定日丁靠,非常适用于
数字语音、图像、程序代码和数据的存储应用中。在本设
计中采用模式 0与 LPC2124通信,速度可达 MCU主频
的 1/8。
GPRS模块使用 Wavecom公司生产的 Q2406B,双频
GPRS/GSM模块 (EGSM9oo/1 800 MHz或 EGSM900/
1 900 MHz),内置 TCP/IP,与标准 AT指令完全兼容;其
设计开发符合 ETSI GSM Phase 2+标准。
3 lAP功能的软件设计
3.1 IAP编程接 口
LPC2124的 IAP程序位于 Boot扇 区,复位后整个
Boot扇区被映射到存储地址 0x7FFFEO00~0x7FFFFFFF
处;而 IAP的入口地址为 0x7FFFFFF0,程序为Thumb代
码。IAP编程命令使用 RAM 的最高端 32字节,所以应
用程序应保留这部分 RAM。在使用 IAP擦除/编程操作
过程中,片内Flash存储器不可访问。当用户应用程序运
行时,用户 Flash区域的中断向量有效,所以在调用 Flash
擦除/写lAP之前,用户应当禁止中断或确保用户中断向
量在 RAM 中有效和中断处理程序位于 RAM 中 IAP代
码不使用或禁止中断。
3.2 lAP编程 C语言实现
对于在应用编程,LPC2124是通过寄存器 R0中的字
指针指向存储器(RAM)包含的命令代码和参数来调用
IAP程序。IAP命令的结果返回到寄存器 R1所指向的存
储器 (RAM)。
调用 I PC2124的 IAP可使用如下 C语言代码:
◆ 定义 IAP程序入口地址
#define IAP—I OCATI()N 0x7FFFFFF1
◆ 定义数据结构来传递 IAP命令表和结果给 IAP程序
unsigned long Command[5];
unsigned long Resuh[2];
◆定义
函数
excel方差函数excelsd函数已知函数 2 f x m x mx m 2 1 4 2拉格朗日函数pdf函数公式下载
类型指针,函数包括两个参数,无返回值
图 2 lAP系统框 图
paper~mesnet.COrn.cn(投稿专用) Micr0c。ntr。llers&Embedded Systems 4 7
维普资讯 http://www.cqvip.com
typedef void(*IAP) (unsigned int[],unsigned int[]);
IAP iap
— entry; //定义函数指针
◆设置函数指针
laP-entry= (IAP)IAP_LOCATION;
◆使用下面的语句来调用 IAP
lap
_
entry(command ,result);
本系统是 基于 LPC2124工程模板进行移植 的,在
ADS1.2嵌入式软件开发平台上,用 C语言直接调用 IAP
程序代码实现 IAP编程。IAP的命令码、状态码和命令
详解以及 IAP功能的详细应用见参考文献Eli。
4 远程升级在用电现场监控终端的应用
终端软件系统的设计包括用户 引导 程序设计(与
Boot装载程序有区别,前者由用户设计,后者由芯片生产
商设计并固化)和应用程序 的设计。它们在 LPC2124中
的入口地址不同,终端复位后 ,如果未进入 ISP编程状态,
则首先执行用户引导程序 ,由用户引导程序决定执行 lAP
升级还是正常运行;应用程序实现终端的各种功能,包括
新版耷应用程序升级包的下载。
4.1 终端用户引导程序设计
终端用户引导程序是基于文件系统的思想来设计的。
终端的应用程序代码存放在 LPC2124的 Flash存储器中,
终端正常运行时,MCU不停地从 Ftash中读取指令。如
果对应用程序升级,即对应用程序占用 的 Flash存储器扇
区进行擦除和再编程,显然执行 Flash编程的代码占用的
Flash扇区不能被擦除,那么升级程序的代码只能用单独
的扇区存放 ,升级程序的执行可由应用程序调用,也可作
为单独的程序执行 。由于 LPC2124的 IAP代码采用 16
位 Thumb指令集,执行 IAP的过程中应禁止或者关闭中
断。如果将升级程序采用应用程序调用的方式来设计,会
增加 应 用 程序 设 计 的复 杂 性,升 级 的 可靠 性 较 差
LPC2124复位后,由于Boot程序总是从 Flash的0地址读
取指令,所以升级程序代码放在起始扇区内,设计为用户
引导程序的一部分,而用户引导程序总是不被修改的。如
果升级过程失败,MCU复位后应用程序可以重新升级,增
强了升级的可靠性。
终端用户引导程序在系统上电后执行。首先它检查
应用程序升级标志和版本号,当检查到升级标志置位且出
现新版本号时,从 AT45DBO81B中读取应用程序升级包,
然后执行 LPC2124的 Flash编程动作,实现对应用程序的
升级。升级任务完成后 ,清除升级标志和更新应用程序版
本,最后转移到应用程序入口并执行应用程序代码。引导
过程流程如图3所示。
4.2 终端应用程序设计
终端应用程序负责完成终端的数据采集、更新、扫描,
并上报告警事件,控制现场执行机构,执行前置机的远程
命令及保存各种历史数据等。前置机的远程命令包括读/
写终端命令、中继命令和远程升级命令 。当终端接收到前
置机的远程升级命令后,终端分析升级命令帧,读取升级
包信息,包括包总长度、包校验码、帧序号和帧校验码,然
后应答前置机并请求发送后继数据帧,终端对后继数据帧
进行校验,校验正确则应答成功和接收下一帧数据,否则
应答失败并要求终端重发。连续 5次重发失败,则认为网
络通信质量差而取消当前升级操作,保存成功接收到的帧
号和数据校验和以备续传。应用程序升级包按帧的方式
通过 GPRS Modem,由前置机下载到终端,并保存到终端
的 AT45DB081B Flash存储器 下载成功后,置位升级标
志和记录升级包版本号,以备用户引导程序升级。
升级包的下载过程可看成是数据的传输过程,应用程
序可同步实现终端的其他各种功能,不影响终端的正常运
行。应用程序升级包下载成功后。终端进行必要的现场保
存并主动复位 ,从而执行用户引导程序升级的最后一步
Flash编程 另外,也可在终端里配置升级时间,避开
终端任务重负荷阶段 ,使得升级过程对终端正常工作的影
响降低
图 3 终端 引导过程流 程
48 车 IbL 蕞入土 鑫口.喜伪
维普资讯 http://www.cqvip.com
应用程序升级包的下载流程如图 4所示。
N
回复错
误信息
从串H0接收
1帧数据
:据接收成功
控制码=8F?
—T
当前为升级握手4
!堕.?/一 ●
N
代码下载,保存
~IJAT45DB081B
保存升级包长度
和总校验码
轼兀!!—— 一
N
r轼 兀 早 r —
. _’_— . .一
● Y
1 标志为 l
l l发应答帧至 I l
l l 前置机 l l I
. — =二===[= 一——一 1
, 回
图4 应用程序升级包下载流程
4.3 通信协议的设计
GPRS与 Internet连接建立后,进入数据透明传输阶
段。本系统在完善的 TCP/IP机制基础上设计用户应用
层协议。为实现系统某个终端的系统软件升级,前置机将
:要升级的程序代码转化为写终端升级代码帧,接入 Internet
到GPRS网络,透明传输下载到目标终端。根据江西省用
电现场服务与管理系统通信规约,将写终端升级代码帧分
为 3种:前置机升级请求帧、升级代码数据帧和终端回应
帧。帧格式在参考文献[2]中有详细说明。
5 远程 lAP应用的可靠性探讨
终端应用程序的升级过程不免要受到环境的:f扰,如
终端掉电、异常的终端复位和网络通信阻塞等故障,都会
导致终端远程 IAP的失败,因此必须提供一套可靠的软
硬件机制来保证终端 IAP过程的正常工作。以下是本系
统中采取的措施 :
◆终端掉电及异常复位处理。由于终端的停 电及电
网波动等干扰引起的终端复位,都将中止终端的升级过
程,导致升级失败。本系统采用下载和 IAP过程完全分
离的升级方式。IAP位于用户引导程序部分,不被擦除。
AT45DB081B中总是备份最新版本终端应用程序,所以任
艋
何阶段操作失败都能保证终端的正常工作。另外,在终端
配备蓄电池和充电电路 ,在终端主电源来电时对蓄电池充
电,使得终端掉电时也可正常运行,远程 IAP过程更为
可靠。
◆远程通信的误码处理。对数据传输过程产生的误
码,通用的、有效的解决办法,就是用 CRC循环冗余校验
和重传机制。数据校验码校验正确后存入 AT45DB081B,
错误时返回错误编码发和帧序号请求重发,直到检测到结
束帧。结束帧数据长度不够,用 o0填充。
◆ 网络阻塞、故障处理。由于地形和环境因素的影
响,GPRS网络在远程 IAP的通信过程中可能出现阻塞或
断开的情况。这时终端和前置机对无回应帧采用延时重
发的机制,连续 5次不成功则断开 GPRS网并重新连接,
终端保存升级的下载断点信息,以待网络恢复后继续传
数据。
结 语
该设计方案基本解决了本系统的远程代码升级的问
题 ,增强了系统软件维护的方便性,缩短了新产品的上市
时间,也为用户提供了更安全、快捷的服务。用 GPRS网
络作为传输通道,为接入 lnternet困难的偏远地区的现场
用电监控终端的远程维护,提出了一种全新的、可靠的设
计方案。●
参考文献
1 Philips LPC2000系列 ARM的 Flash存储器系统和编程使用
指南.周立功单片机,2003
2 江西省电力公司.江西省用电现场服务与管理系统通信规
约.2004
3 曾杰,蒋泽军,王丽芳,等.嵌入式远程调试器的设计与实现.
计算机测量与控制.2005.13(7):331~333
4 胡静静.实现基于 GPRS的无线远程 IAP功能.单片机与嵌
入式系统应用.2005(6):22~25
5 周立功,等.ARM微控制器基础与实战.北京:北京航空航天
大学出版社,2004
6 (美)里吉斯.通用分组无线业务(GPRS)技术与应用.北京:
人民邮电出版社 ,2004
书文样,讲师、工学硕士,主要从事检洲与 自动化装置 洲拉技术和
嵌入式系统开发等方面的研宛
(收稿 日期 2oo6~olq2)
paper@me,~net.corn.cn(投稿专用) Microcontrollers& Embedded Systems 4 9
他
一
其 令 关 一
命 相 一
Y
维普资讯 http://www.cqvip.com