基于GPRS的嵌入式系统软件的远程在线升级

发布者:星空行者最新更新时间:2014-10-10 来源: eefocus关键字:GPRS  远程在线升级  嵌入式系统 手机看文章 扫描二维码
随时随地手机看文章
0 引 言

随着电子技术、计算机技术和通信技术的迅猛发展,嵌入式系统已经广泛应用于工业、军事、通信、信息家电等领域,但是面对新技术的不断涌现和对系统功能、性能以及规模要求的不断提高,开发者必须能够针对客户的需求及时对系统进行升级或维护,以延长系统使用周期,改善系统性能,增强系统适应性。

传统的嵌入式系统升级方式通常由维护人员到达设备现场,开箱重写或者更换FLASH存储部件,当设备数目庞大并且分布范围广泛时,这种升级维护方式的工作量将非常大,而且耗费的时间长、成本高。近年来通过以太网和在FLASH上建立TFFS文件系统的方法,能很好地解决批量升级的问题。但对于野外偏远地区或海上等有线网络无法到达的地方,此方法也难以实现。

在此提出基于GPRS的嵌入式系统软件的远程在线升级方案,利用GPRS网络无需现场布线和“实时在线”、“按量计费”、“快捷登录”、“高速传输”的特点,只要远程终端在移动公网覆盖的范围内,均可实现升级数据的远程传输;为了克服无线网络相对有线网络因地形或环境等因素造成误码或掉线的不足,采用应答机制与断点续传技术,确保数据传输的准确性和可靠性;通过对嵌入式芯片内部FLASH存储器的存储空间进行划分和升级文件传输的数据格式进行定义,再利用IAP技术实现系统软件的在线升级,较好地解决了数量庞大并且分布范围较广的设备在线升级或维护的问题。

1 系统结构

系统结构如图1所示,由服务器和远程终端组成,其中远程终端包括基于ARM内核的嵌入式控制芯片(以下简称ARM芯片)和GPRS Modem模块,两者之间通过RS 232总线连接;服务器与远程终端通过GPRS进行通信。用户需要升级远程终端时,首先将服务器端的升级标志位置1,通过GPRS将升级标志位传给远程终端,远程终端上电后将自动检测升级标志位,若标志位为1表示需要升级,否则不升级。然后,服务器将升级文件通过GPRS透明的下载到远程终端,实现数据的传输及更新,从而达到远程终端的嵌入式系统软件的在线升级的目的。

2 远程终端软件升级的关键技术

2.1 FLASH存储器编程


远程终端的升级主要是对ARM芯片内部FLASH存储器的数据进行擦除及下载,目前很多ARM芯片支持多种方式对FLASH进行编程,ARM芯片内部FLAsH存储器的编程有JTAG,ISP和IAP三种方式:JTAG编程主要用于产品开发期的调试;ISP需要提供一定的硬件资源和中止应用软件的运行,适用于便携式设备的升级;IAP与ISP非常相似.主要区别是IAP允许在应用程序正常运行的情况下,对FLASH存储器中另外一段程序进行读/写操作,甚至可以控制对某段、某页的读/写操作,为数据存储和固件的自动升级带来了极大的灵活性。该方案通过GPRS网络传输升级文件的程序代码,利用ARM内部的FLASH存储器及其IAP编程,实现终端的嵌入式系统软件的远程无线在线升级。有关IAP的命令码、状态码和命令详解以及IAP功能的详细应用见参考文献。

2.2 远程终端的程序设计

为了在线升级,将ARM芯片内部FLASH存储器按图2所示划分为启动区、用户代码跳转区、用户代码1区和用户代码2区。其中启动区用于存放系统初始化和启动代码,用户代码跳转区用于存放跳转到相应用户代码区的指令.用户代码1区和用户代码2区用于交替存放当前终端正在执行的用户代码和升级的用户代码。若当前终端执行的用户程序存放在1区,则将接收到的升级程序存放到2区;待升级程序接收结束后,更改用户代码跳转区的指令,使其指向升级程序,即用户代码2区;此后用户代码2区的程序成为当前终端指向的用户程序,而用户代码1区则用于下次升级代码的存放区。

远程终端上电后首先进入启动区进行系统的初始化;接着终端从片外的E2PROM中读取升级配置,包括升级标志位、已接收到的最后一个数据包的ID等。若终端处于升级状态,则如图3所示,向服务器发所要升级数据的指令,而且指令中将包含终端上次已接收到的最后一个数据包的ID,这样可以避免已接收的数据包的重复发送,并实现续传的功能。终端从GPRS网络接收数据包后对数据包进行解析和校验判断,并与服务器形成一问一答的应答机制。FLASH中进行数据编程的最小单位是页(512个字节),当接收到的升级数据达到1页后.通过IAP进行编程。如果当前运行的用户程序代码在1区,则把升级数据保存到2区,否则保存到1区。编程成功后,将最后一条数据包的ID保存到E2PROM中。所有升级数据发送结束并编程成功后,通过IAP修改用户代码跳转区的指令,使远程终端运行新的升级代码。



 


3 服务器端的软件设计

3.1 升级文件传输的数据格式


为了达到快速准确升级的目的,首先对原始的升级代码(Intel Hex文件)进行打包,然后加人相应的数据包ID号和校验码,并定义数据包长度≤256个字节,以适应G:PRS通信方式对数据包长度的要求,避免出现频繁掉线和发送不出去的问题。具体的数据包格式如下:数据包格式:PacklD+起始地址+长度+数据+校验码;PackID:一个完整的数据包为一个记录,下一个数据包的记录号自动加1;起始地址:烧写数据的FLASH首地址。即数据部分中包含的第一条数据的记录地址+线性扩展地址;长度:该包数据部分的字节数;数据:同一个扩展线性地址记录内且地址连续的数据记录的数据域。当读到一个扩展线性地址记录号后,将此扩展线性地址记录号内的数据区域打包成256个字节之内的数据包,超过256个字节或读到下一个扩展线性记录号时则另起一个新的数据包;校验码:CRC循环冗余校验码。 [page]

3.2 服务器端主要程序流程

服务器端主要程序流程图如图4和图5所示。服务器先把升级文件的路径配置完毕,并将要升级的目标程序代码按照第3.1节所示的数据包格式进行打包。并对每个数据包进行编号。

 

接着如图4所示,服务器发送升级指令,并通过GPRS网络透明传输到远程终端。如果当前运行的用户程序代码在1区,则将2区升级数据发送给远程终端,否则将2区升级数据发送给远程终端。由于地形和环境因素的影响,GPRS网络在远程通信过程中可能出现阻塞或断开的情况。

如果服务器在一定的时间内没有收到远程终端的应答信号,则重发,如果三次重发失败则保存成功接收到的数据块ID号和数据校验码,进入断点续传。升级文件传输完毕则发送跳转指令,使远程终端执行新的程序代码。

3.3 服务器端西己置表

服务器端升级配置表中重要字段的配置如下:

这些字段将服务器和远程终端紧密地联系起来,使得编程思路更加清晰,Update ID标志了用户程序目前所在存储区;Update User Zone为升级做好文件配置准备工作,LastOrder为断点续传做好准备,保证整个程序的紧密性以及可靠性。

 

4 结 语

该方案采用应答机制、断点续传、CRC校验等技术,充分利用ARM芯片内部FLASH存储器资源,通过GPRS网络,实现对ARM嵌入式终端的系统软件进行远程在线升级,解决了大型分布式监控系统远程嵌入式终端系统软件的在线升级和维护问题。该方案已经成功地应用在南京航道局的航标自动监测系统中,该系统有600多盏安装有嵌入式终端的航标灯,对该系统进行在线升级仅耗时20 min,且一次性升级成功。实践证明,该方案的实施可有效降低工程复杂度,缩短升级时间,节约升级、维护成本,同时具有升级成功率高和升级速度快的特点。
关键字:GPRS  远程在线升级  嵌入式系统 引用地址:基于GPRS的嵌入式系统软件的远程在线升级

上一篇:浅析嵌入式DVR在金融监控中的设计思路
下一篇:基于CMSIS标准的Cortex-M3应用软件开发

推荐阅读最新更新时间:2024-03-16 13:42

基于GPRS的火灾视频监测终端网络接口设计与实现
引言   大的林区一般面积广阔,且大多数没有有线通讯设施,这是以往影响无人值守的火情了望台应用的技术瓶颈。但是,空间及遥感技术、计算机技术、通信与网络技术的快速发展为森林火灾监测的研究提供了不断完善的方法和手段。本文研究的森林火灾视频监控终端采用mC/OS-II作为嵌入式操作系统,为了支持GPRS网络通信,系统需要PPP或SLIP协议的支持。由于mC/OS-II不包括TCP/IP协议栈,所以要编写设备的网络接口。本文选用免费的TCP/IP协议栈LwIP v0.6.4作为设计核心,在mC/OS-II上移植了LwIP以实现TCP/IP协议栈,从而获得了一个功能完善的嵌入式IP终端。 视频监测终端网络接口原理 图像监控系统工作流程
[嵌入式]
基于嵌入式系统调试诊断方法
本文介绍了嵌入式系统开发过程实际上就是一个调试诊断的过程,而且调试诊断将一直伴随着一个产品的终身,即使是最成熟的产品也偶尔会出现这样或那样的问题,这都需要开发人员去诊断、排查。   嵌入式系统的调试包括硬件调试、软件调试以及综合调试。硬件调试一般是指系统刚开发出来时上电前后的检查,包括:   1)上电前检查电源和地是否短路,目视检查是否有虚焊、漏焊;   2)上电后检查时钟线上的频率和波形、幅度是否正常,各电源电压是否稳定正常,各芯片温度是否正常,各指示灯是否正常。   软件调试一般是指保证硬件一切正常的情况下验证程序执行的时序是否正确,逻辑和结果是否与设计要求相符,能否满足功能和性能要求等。软件调试的方法有很多,包括
[单片机]
亲临“顶嵌杯”C语言编程大赛颁奖典礼
  在一个iPod销售得到的299美元中,掌握核心技术和知识产权的苹果公司能得到80美元(约27%),但做装配加工的中国公司却只能得到2美元(不到1%),而中国还为此付出了能源消耗和环境污染等重大代价。如果iPod能从“中国制造”转向“中国创造”,那么中国公司的收益将能比只做装配加工提高40倍,而这种效益的大幅度提升应通过掌握核心技术和知识产权获得。   在嵌入式系统的各项核心技术中,最基础、最通用的C语言,无疑在未来创新中扮演重要的角色。   为此,历时三个多月的“顶嵌杯”全国嵌入式系统C语言编程大赛如期完成,近500所高校大学生、近百所企业工程师通过初赛、决赛,最终有18名获奖者脱颖而出。1月30日来自全国的嵌入式系统的专家、
[嵌入式]
亲临“顶嵌杯”C语言编程大赛颁奖典礼
嵌入式系统在大射电望远镜5米模型上悬索控制中的应用
摘要:介绍了ARM9和嵌入式实时操作系统μC/OS-II在大射电望远镜5米模型上悬索控制中的应用。介绍了基于ARM9处理器(Atmel公司的AT91RM9200)的触摸屏、LCD等电路的设计。分析了用AT91RM9200产生6路独立的PWM信号的方法。给出了在嵌入式实时操作系统μC/OS-II下的多任务应用软件的设计实例,并成功实现了六轴联动。   关键词:ARM9 μC/OS(MicroC/OS) RTOS 六轴联动 “大射电望远镜FAST(Five hundred meter Aperture Spherical Telescope)预研究”是中国科学院知识创新设计方案 。通过六根悬索驱动馈源舱完成馈源的大范围跟踪,保证馈
[应用]
C语言嵌入式系统编程修炼之三:内存操作!
数据指针   在嵌入式系统的编程中,常常要求在特定的内存单元读写内容,汇编有对应的MOV指令,而除C/C++以外的其它编程语言基本没有直接访问绝对地址的能力。在嵌入式系统的实际调试中,多借助C语言指针所具有的对绝对地址单元内容的读写能力。以指针直接操作内存多发生在如下几种情况:   (1) 某I/O芯片被定位在CPU的存储空间而非I/O空间,而且寄存器对应于某特定地址;   (2) 两个CPU之间以双端口RAM通信,CPU需要在双端口RAM的特定单元(称为mail box)书写内容以在对方CPU产生中断;   (3) 读取在ROM或FLASH的特定单元所烧录的汉字和英文字模。   譬如: unsigned c
[单片机]
C语言<font color='red'>嵌入式系统</font>编程修炼之三:内存操作!
嵌入式系统联谊会:RISC-V 架构嵌入式开发研究与实践
由国内知名学者和产业人士共同发起的嵌入式系统联谊会,成立和运作已经10年了。嵌入式系统联谊会为中国嵌入式系统不同学科领域的专家学者、工程技术人员、市场和科技媒体人士提供学术和产业信息交流的环境,是增进个人友谊的公益性科技沙龙机构。嵌入式系统联谊会技术沙龙是联谊会继主题讨论会形式外的一个新的尝试,更侧重专业化、年轻化和实战性。 RISC-V 开源指令集架构为沉寂已久的处理器架构世界带来了一缕春风,其传播的速度非常迅猛,许多高校已经开始将RISC-V用于教学,科技巨头纷纷宣布支持RISC-V,并且涌现一批初创的科技公司。目前RISC-V 架构技术还在发展,各家芯片平台在开发和完善之中,RISC-V应用将会逐步展开和落地。 千里
[嵌入式]
<font color='red'>嵌入式系统</font>联谊会:RISC-V 架构嵌入式开发研究与实践
NB-IoT在智能家居中应用及市场前景
NB-IoT 技术一直以来都备受关注?这个技术究竟能用来干什么?小编特意为大家整理了一份 NB-IoT 技术实用宝典,帮助大家一起揭开 NB-IoT 的神秘面纱。 NB-IoT 是什么? 为了应对日渐强烈的物联网需求,于是国际移动通信标准化组织 3GPP 决定制订一个新的蜂窝物联网(CIOT:Cellular Internet of Thing)的标准。 这个新标准要实现四个目标: 超强覆盖,相对于原来 GPRS 系统,增加 20dB 的信号增益; 超低功耗,终端节点要能达到 10 年的电池寿命; 超低成本,终端芯片的目标定价为 1 美元,模块定价为 2 美元; 超大连接,200kHz 小区容量可达 100k
[网络通信]
基于ARM和μC/OS-Ⅱ的在线磷酸根离子监测仪设计
火力发电厂和大型工业锅炉,通常采用向炉水中添加少量磷酸盐以防止钙、镁水垢的生成,磷酸根浓度不够,不能有效防止结垢,磷酸根离子含量过高,会导致炉水的pH值变高。因此磷酸根离子浓度是炉水检测的重要参数。ARM处理器具备高性能、低功耗、低成本等优点,将其应用于在线磷酸根离子分析仪的管理控制系统,可以提高磷酸根分析仪的处理速度和精度。 1 结构及测量原理简介 磷酸根离子分析仪整体结构包括光路系统、水路系统和管理控制系统三个部分。 光路系统主要包括:专用的单色LED冷光源、比色皿和光电传感器。 水路系统由比色皿、柱塞泵、多通道切换阀、流通池、样水/标液切换阀、流量计、排污阀、溢流管等组成。 利用化学吸光法原理,即在一定的
[单片机]
基于ARM和μC/OS-Ⅱ的在线磷酸根离子监测仪设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多每日新闻
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved