当前位置:首页 > 通信技术 > 通信技术
[导读]针对大型分布式监控系统远程终端的嵌入式系统软件远程在线升级和维护问题,提出一种基于通用无线分组业务(General Packet Radio Service,GPRs)的嵌入式系统软件的远程在线升级方案,该方案采用GPRS、应答机制与断点续传技术,保证数据远程无线传输的准确性和可靠性,应用RAM分区技术和IAP技术实现系统软件的在线升级。实践证明,该设计方案具有在线升级成功率高、速度快的特点,已成功应用于南京航道局的航标自动监测系统中。

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循环冗余校验码。
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,且一次性升级成功。实践证明,该方案的实施可有效降低工程复杂度,缩短升级时间,节约升级、维护成本,同时具有升级成功率高和升级速度快的特点。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

Lua RTOS 是一个实时操作系统,设计在嵌入式系统上运行,对 FLASH 和 RAM 内存的要求最低。目前 Lua RTOS 可用于 ESP32, ESP8266 和 PIC32MZ 平台,并可以轻松移植到其他32位...

关键字: Lua RTOS 操作系统 嵌入式系统

通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UATR,是一种串行、异步、全双工的收发器。全双工的UART支持同时双向通信,是嵌入式系统必不可少的d...

关键字: 异步收发 传输器 嵌入式系统

Flash Memory 是一种非易失性的存储器。在嵌入式系统中通常用于存放系统、应用和数据等。在 PC 系统中,则主要用在固态硬盘以及主板 BIOS 中。

关键字: Flash 存储器 嵌入式系统

摘要:随着农业生产中对水资源利用率重视程度的不断提升,农业用水的灌溉效率与灌溉渗漏系数测定准确化与规范化越来越重要。为实现渠道水位测量的精确化与自动化,研制开发出一种基于GPRS的渠道水位监测系统。对投入式压力水位检测方...

关键字: GPRS 水位监测 上位机设计

近年来,随着计算机技术及集成电路技术的发展,嵌入式技术日渐普及,在通讯、网络、工控、医疗、电子等领域发挥着越来越重要的作用。嵌入式系统无疑成为当前最热门最有发展前途的IT应用领域之一。 嵌入式系统一般由嵌入式微处理器、外...

关键字: 嵌入式 嵌入式系统 计算机

深圳2022年8月26日 /美通社/ -- 8月17日 – 深圳,AMD Xilinx举办为期一天的线下技术日活动,在AMD Xilinx主办下宜鼎国际作为合作伙伴的身份被邀...

关键字: AMD Xilinx AGENT 嵌入式系统

单向散列算法,又称hash哈希函数,Hash函数(也称杂凑算法)就是把任意长的输入消息串变化成固定长的输出串的一种函数,该过程是不可逆的。Hash函数可用于数字签名、消息的完整性检测、消息起源的认证检测等。较为常用的方法...

关键字: 嵌入式算法 嵌入式系统

GPS和GPRS,字面上仅仅多了个G,按照中国人捂住一半,读一半的猜字逻辑来看,这两者区别应该是不多的,GPS模块能做的,GPRS模块应该也能干,这显然是个美丽的误会。

关键字: GPS GPRS 通信

作为消费者,在我们考虑购买电池供电设备时,通常首先要检查的关键指标之一是一次充电可以使用多长时间。电池寿命已成为许多可穿戴设备的重要卖点,但对于越来越多的工业物联网传感器和其他类似应用来说,电池寿命同样也是一个重要的考虑...

关键字: 贸泽电子 嵌入式系统

摘要:设计了一种新型的基于LeapMotion体感控制器的仿生机械臂交互控制系统,利用LeapMotion体感控制器替代传统的人机交互方式,采集手部数据,将识别到的手势动作经过计算机分析处理后,通过无线传输的方式给开发板...

关键字: 人机交互 嵌入式系统 机械手臂

通信技术

120646 篇文章

关注

发布文章

编辑精选

技术子站

关闭