嵌入式设备远程在线升级技术的研究_黄绳雄
一种高可靠的嵌入式软件远程自更新机制的研究与实现
王 恒 王 颂 李 敏 罗 洪 平 ( 重庆邮电大学 自 动化学院, 重庆 4 06 ) 00 5
摘 要
通 过 远 程通 信 方 式 实现 嵌 入 式 软 件 系统 的 异 地 自动 更 新 . 能有 效 地 降低 嵌 入 式软 件的 维 护 成 本 , 高嵌 入 式 系统 的 智 提
和 运行 。 1 远 程 自更新 机 制 的 原 理
扇 区 的数 据 和 内存 相应 数 据 进 行 校 对 . 证 写入 数 据 的正 确性 。 保
1 新 程 序 的启 动 3
本 更 新 机 制 将 F A H 存 储 器 中 划 LS
分 3个 独 立 的程 序 区 : 前 程 序 区 、 程 当 旧
‘
、
系统 l。
(也 蜓 f ,
序 区 和 原 程 序 区 。 当前 程 序 区存 储 的 是 本 次启 动 要 运 行 的程 序 ; 旧程 序 区存 放 上 一 版 本 的 程 序 ,原 程 序 区存 放 最 初 发 布 的 程 序 。更 新 任 务 在 将 新 程 序 写 入 F A H 中时 ,先 将 当前 程 序 区 的 数 据拷 LS
Ab ta t s rc
Th f c i e e un t on ofr mot s f pda e an e c te os a d m prv te n el nc f m b e el -u t c r du e h c t n i o e h it lge e o e i edd s t m s t r e— ed yse of wa e f fc iel he el bit o h u dat s crial o h o t r qu lyI t s e t yT r i ly fte p v a i e i ic rt e s fwa e t f ai n hi t pa r r pe . emo e ef pdae a t s l —u t me a s ch nim b ed on as it rernc s a lss s pr os d or m b ne f e e nay i i op e f e edd s sem ot r tou n ed y t s fwa e wi h tidep de t o la en n b ot ders po ̄Th ici e oft e o up e pr pl h n u pdae mec ans i es ned t h im s pr e t
一种基于Web的远程在线升级技术的实现
图1 设备远程在线升级模型
表1 Flash分区
名称大小/Byte起始地址结束地址引导程序区16k0x080000000x08003FFF 参数存储区32k0x080040000x0800BFFF 用户程序区336k0x0800C0000x0805FFFF 升级数据缓冲区384k0x080600000x080BFFFF
图2 程序升级流程
的接收。
其中,根据表3的请求消息结构对80端口的数据进行初步解析,将数据分成开始行、消息报头和消息正文。
如图3的请求数据包,解析后开始行为“GET / HTTP/1.1\r\n”,消息报头为后续数据至连续两个\r\n之前,没有消息正文。
从解析后的开始行可得出,该请求包采用GET方法,请求的资源标识为‘/’,即网页的主页。
设备升级页面可由Dreamweaver软件设计,并将其HTML文件存储于const char类
图3 Wireshark抓取的请求消息数据包
表4 测试报告
测试用例测试条件测试结果
正常正常操作100%成功升级至新版本掉电异常拔掉设备电源设备启动成功但为旧版本链路异常断开路由器电源/拔掉网线设备启动成功但为旧版本新程序异常更改链接地址或中断向量表地址设备启动失败但恢复后可正常启动
图4 Web服务器处理HTTP请求流程
《有线电视技术》 2015年第1期 总第301期。
嵌入式设备远程在线升级技术
嵌 入 式设备 远 程在 线 升 级技 术
赵 炯 ,贾培源 ,李中山,林 旺城
( 同济大学机械工程学院 ,上海 2 10 ) 0 84
摘
要 :为了有效降低嵌入式系统的升级和维护成本 ,根据嵌入式设备存储结构和更新原理 ,提出一种通 过 We b界面实现嵌入式设备软
件 自动升级的方法 ,包括在升级更新前将 内核映像文件和根文件 系统打包的方法、设备收到打包数据文件后分析 和写入存储单元的技术 以 及用户与嵌入式设备进行远程通信 的方式 。
是在设备使 用数量比较多、使用位置分散的环境下 ,对 此类 设备软件升 级或维护工作 的成本就会大大增加 。为了克服这 个问题 ,对于连接在网络 上的嵌入式设备 ,可 以通 过网络远
序是一个内核模块 , 称为 rd o t 。 eB o 对 Fah进行分 eb o. R d o t ls O
关胡
:嵌入式设备;在线升级; 远程通信; b We 服务器
Re o eOn i eUp a eT c n l g rEm b d e v c m t l d t e h o o y f n o e d d De i e
Z HAO in , I P iy a LIZ n -h n LI W a gc n Jo g J A e-u n, ho gs a , N n -he g (co l f c aia n ier g T n jUnv ri , h g a 2 g4 Sh o Mehnc l gne n ,o gi iesy S a hi 010 ) o E i t n
[ src]I re eu etec s fe e dd ss m p aeadma tn c f c v l,hsp prpee t ame o fuigWe Abtat nodrt rd c ot o mb d e yt ud t n i e a ee et e ti ae rsns t d o s b o h s e n n i y h n
【CN110109693A】嵌入式设备远程固件升级方法【专利】
(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号 (43)申请公布日 (21)申请号 201910324546.5(22)申请日 2019.04.22(71)申请人 南京理工大学地址 210094 江苏省南京市孝陵卫200号(72)发明人 王宏波 朱德培 (74)专利代理机构 南京理工大学专利中心32203代理人 吴茂杰(51)Int.Cl.G06F 8/654(2018.01)(54)发明名称嵌入式设备远程固件升级方法(57)摘要本发明公开一种嵌入式设备远程固件升级方法,适用于通过以太网或无线网络与远程TFTP 服务器信号连接的基于STM32F407单片机的靶场测试数据采集设备,包括如下步骤:(11)下载请求:嵌入式设备作为TFTP客户端,向存储新版固件程序文件的远程TFTP服务器发起下载文件请求;(12)文件传输:远程TFTP服务器接收到读文件请求后,直接向嵌入式设备发回包含数据块编号以及数据块大小的数据报文,所有数据块整体构成新版固件程序文件;(13)程序写入:嵌入式设备将接收到的新版固件程序文件写入固件程序区域;(14)程序执行:嵌入式设备执行新版固件程序。
本发明的嵌入式设备远程固件升级方法,升级操作简单、效率高。
权利要求书2页 说明书4页 附图2页CN 110109693 A 2019.08.09C N 110109693A权 利 要 求 书1/2页CN 110109693 A1.一种嵌入式设备远程固件升级方法,适用于通过以太网或无线网络与远程TFTP服务器信号连接的基于STM32F407单片机的靶场测试数据采集设备,所述嵌入式设备包括flash 空间,所述flash空间包括引导程序区域和固件程序区域,其特征在于,包括如下步骤:(11)下载请求:嵌入式设备作为TFTP客户端,向存储新版固件程序文件的远程TFTP服务器发起下载文件请求;(12)文件传输:远程TFTP服务器接收到读文件请求后,直接向嵌入式设备发回包含数据块编号以及数据块大小的数据报文,所有数据块整体构成新版固件程序文件;(13)程序写入:嵌入式设备将接收到的新版固件程序文件写入固件程序区域;(14)程序执行:嵌入式设备执行新版固件程序。
嵌入式设备远程在线升级技术研究
嵌入式设备远程在线升级技术研究作者:张博强卜祥蕊来源:《中国新通信》 2018年第12期【摘要】随着科学技术的飞速发展,嵌入式设备得到了越来越广泛的应用,各行业领域对其性能的要求也在不断提高,研发人员需要及时对相关系统进行升级,以不断提高其运行效率。
因此,本文就嵌入式设备远程在线升级技术展开研究。
【关键词】嵌入式设备远程在线升级研究近年来,随着电子技术、计算机技术的迅速发展,嵌入式设备已广泛的应用于各个行业领域,为满足客户提出的各方面要求必须及时的对系统进行更新升级。
本文首先对嵌入式设备功能及在线升级原理进行了描述,进而提出了一种性能优越的在线升级技术,希望能够进一步降低系统的日常维护成本、改善设备的运行质量。
一、嵌入式设备概述1、嵌入式设备的功能。
当前来说,嵌入式设备的运行可分为以下两种模式:一是工作模式,指的是设备的正常运行状态,系统按照设置好的流程顺序执行相应的任务,而且借助于internet、GPRS 等手段向管理终端上传检测数据。
二是升级模式,指的是设备的升级状态,主要包括对服务器所发送代码的接收,以及对代码的处理等。
2、在线升级原理。
系统的升级是由服务器与远程终端来完成的,后者包括了控制芯片与Modem 模块。
两者之间是利用RS232 总线实现连接,利用Internet 实施通信。
服务器是升级的发起者,首先向相应的系统发出升级指令,在硬件设备开启后,通过引导程序Bootloader实现初始化,同时执行升级功能的控制程序,一旦收到系统发回的确认升级指令,即发出升级代码,在这之前,可以将所有的代码进行拆分处理,使其变成长度一致的信息单元,并生成数据包,只要接收到发送过来的信息,即给以确认回复,经数据检验后,则在设定的区域内用新程序代替原来的旧程序,从而实现了在线升级。
二、嵌入式设备远程在线升级技术2.1 硬件设计在硬件上,主要是由一个片外EEPROM、LM3S6965 及相关电路组成的。
嵌入式设备的增量式远程更新系统设计
第 43 卷第 22 期
Nov. 2020
Vol. 43 No. 22
现代电子技术
Modern Electronics Technique
157
DOI:10.16652/j.issn.1004⁃373x.2020.22.039
嵌入式设备的增量式远程更新系统设计
黄志贤,王宜怀,程宏玉
Design of incremental remote update system for embedded device
HUANG Zhixian,WANG Yihuai,CHENG Hongyu
(School of Computer Science & Technology,Suzhou University,Suzhou 215000,China)
要涉及终端与服务器端的软硬件实现,传输中介则由通
信运营商来负责实现与维护。NB⁃IoT 终端依次完成基
境 恶 劣 的 设 备 现 场 [2],非 常 适 用 于 嵌 入 式 设 备 的 远 程
更新。
本文设计并实现一套基于 NB⁃IoT 的增量式远程更
收稿日期:2020⁃04⁃09
修回日期:2020⁃05⁃28
基金项目:国家自然科学基金项目(61672369)
软件设计中吸取 Bootloader 机制的优点,并对存储器分
GPRS 和 4G 等远程通信技术在单片机设备中被广泛运
用,越来越低廉的通信费用与充裕的片内存储空间为单
片机设备实现远程更新提供了成熟的条件。NB⁃IoT 技
术 是 3GPP 标 准 定 义 的 一 种 低 功 耗 广 域 网 解 决 方 案 ,
[1]
基于FTP协议的嵌入式系统软件远程升级方法[发明专利]
[19]中华人民共和国国家知识产权局[12]发明专利申请公布说明书[11]公开号CN 101079732A [43]公开日2007年11月28日[21]申请号200710052214.3[22]申请日2007.05.21[21]申请号200710052214.3[71]申请人武汉虹信通信技术有限责任公司地址430074湖北省武汉市洪山区邮科院路88号[72]发明人吴玲琦 唐运刚 褚嵘 杜仲 黄志葵 [74]专利代理机构武汉开元专利代理有限责任公司代理人唐正玉[51]Int.CI.H04L 12/24 (2006.01)H04L 12/26 (2006.01)H04L 29/08 (2006.01)权利要求书 1 页 说明书 3 页 附图 2 页[54]发明名称基于FTP协议的嵌入式系统软件远程升级方法[57]摘要本发明涉及基于FTP协议的嵌入式系统软件无线远程升级方法,该方法涉及到的系统架构包括:设备终端管理中心、FTP文件服务器和嵌入式终端。
嵌入式终端与设备终端管理中心、FTP服务器之间的通信是基于GPRS或CDMA1无线IP方式实现的。
本发明利用嵌入式系统的IP网络功能,采用FTP文件传输协议,利用GPRS或CDMA 1X无线IP数据传输方式对嵌入式终端系统进行软件自动远程升级,该方法支持多个嵌入式终端的并发FTP远程升级。
本发明解决了现有升级方案的缺点,不需自定义复杂的无线升级交互协议,是一种能快速实现设备软件自动远程升级的方法。
200710052214.3权 利 要 求 书第1/1页 1、基于FTP协议的嵌入式系统软件无线远程升级方法,涉及到的系统架构包括:设备终端管理中心、FTP文件服务器和嵌入式终端,嵌入式终端与设备终端管理中心、FTP服务器之间的通信是基于GPRS或CDMA1无线IP方式实现的,具体按以下步骤来进行:(1)将FTP文件传输协议应用到嵌入式终端的系统软件内,嵌入式终端的系统软件控制嵌入式终端日常运行和软件升级;(2)设备终端管理中心在发送升级指令之前,首先通知嵌入式终端将通信方式切换到远程升级需要的无线IP数据通信方式:GPRS 或CDMA1X;如果嵌入式终端已是升级所需的通信方式则不需要切换,然后设备终端管理中心以该通信方式向嵌入式终端发送“启动软件远程升级”的指令;(3)嵌入式终端收到指令后,解析该指令帧,获取FTP服务器IP 地址、端口、升级操作的用户名、口令、远程升级文件名以及文件路径信息,然后嵌入式终端根据这些信息主动无线IP方式连接到FTP服务器,从指定的路径下载升级文件;文件下载过程中,嵌入式终端会主动向设备终端管理中心上报文件下载的百分比进度;下载到嵌入式终端的升级文件包经过检查、校验确认正确无误后,写入非易失类型的存储器中,并对当前运行软件进行备份;(4)嵌入式终端在完成软件远程更新后,重新启动,以启用新下载的软件,嵌入式终端第一次重新启动后,主动向设备终端管理中心发送软件升级成功的消息。
一种嵌入式操作系统的远程更新方法[发明专利]
专利名称:一种嵌入式操作系统的远程更新方法专利类型:发明专利
发明人:高明晋,赵紫旭,石晶林,杜一民,黄帅棋申请号:CN201911364112.4
申请日:20191225
公开号:CN111190623A
公开日:
20200522
专利内容由知识产权出版社提供
摘要:本发明公开了一种嵌入式操作系统的远程更新方法,通过在线加载外部函数库和操作系统内核的方法,解决了无线传感器网络的嵌入式操作系统在远程更新代码时的局限问题。
该方法包括:对应用程序进行编译,生成二进制文件,并将所述二进制文件加载到嵌入式系统的内存空间;在所述编译时针对操作系统内核只提供该符号的接口;根据预先设定好的索引表寻找所述符号对应的内核模块内偏移或是外部函数库内偏移;根据所述内核模块内偏移或是外部函数库内偏移,向服务器请求下载所述符号对应的代码和数据;将所述代码和数据加载到所述嵌入式系统的内存空间中。
申请人:北京中科晶上超媒体信息技术有限公司
地址:101399 北京市顺义区顺强路1号1号楼2层(科技创新功能区)
国籍:CN
代理机构:北京理工大学专利中心
代理人:高燕燕
更多信息请下载全文后查看。
VxWorks远程在线软件升级技术
VxWorks远程在线软件升级技术
张友根;李新明;赵党乾;王帅
【期刊名称】《计算机工程》
【年(卷),期】2009(035)013
【摘要】针对单一的软件升级方式难以满足不同VxWorks软件升级需求的问题,分析各种VxWorks软件升级方式的优缺点和适用场合,设计VxWorks远程在线软件升级系统,讨论动态软件升级的原理和实现方法.介绍提高升级可靠性的设计,描述系统的具体实现.该系统组合使用3种软件升级方式,可基本满足各种不同软件的升级需求.
【总页数】4页(P20-22,68)
【作者】张友根;李新明;赵党乾;王帅
【作者单位】装备指挥技术学院研究生院,北京,101416;装备指挥技术学院重点实验室,北京,101416;江苏太仓出入境检验检疫局,太仓,215400;装备指挥技术学院研究生院,北京,101416
【正文语种】中文
【中图分类】TP311
【相关文献】
1.嵌入式设备远程在线升级技术的研究 [J], 黄绳雄;张荣芬
2.基于C8051F02X单片机的远程在线升级技术 [J], 牛旭
3.一种基于Web的远程在线升级技术的实现 [J], 苏诗荐;章杰;程树英;戴曼娜;林
汉伟
4.嵌入式设备远程在线升级技术 [J], 赵炯;贾培源;李中山;林旺城
5.基于ARM的IAP在线及远程升级技术 [J], 姜晓梅;李祥和;任朝荣;姚明
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
随着 电 子 技术 、 通 信 技术 以 及 计算 机 技 术 的 迅 猛 发 展 , 终端 包 括 基 于 ARM 内 核 的 嵌 入 式 控 制 芯 片 和 Modem 模 块 。
嵌入式系统已经广泛应用于各领域 ,各种行业 对 嵌入 式 设 备 二 者 之 间 通 过 RS232 总 线 连 接 , 服 务 器 与 远 程 终 端 通 过
图 3 Bootloader 工作原理流程 Fig. 3 Procedures of working principle for Bootloader
2.2.2 FLASH 存储器编程及升级流程 远 程 终 端 的 升 级 主 要 是 对 ARM 芯 片 内 部 的 FLASH 存
储器的原始数据进行擦除以及新数据的下载的过程。 本研究 采用 IAP(In-Application Programming)技术进行 FLASH 编程, 在应 用 编 程 IAP 是 从 结 构 上 将 FLASH 存 储 器 映 射 为 两 个 存 储体,当运行一个存储体上的用户程序时,可对另一个存储 体重新编程,之后将程序从一个存储体转向另一个;同时还 可以在应用程序控制下, 对程序某段存储空间进行读取、擦
-172-
黄绳2 在线升级实现流程 Fig. 2 Procedures of online update 处理器是 Luminary Micro 公司生产的 Stellaris 系列微控制器, 该 芯 片 内 部 具 有 256 kB FLASH 和 64 kB SRAM,LM3S6965 芯片能够提供高效的性能,广泛的集成功能,适用于各种关 注成本并明确要求具有过程控制以及连接能力的应用方案, 此微处理器是针对工业的应用方案而设计的,这些方案包括 远程监控、测试和测量设备等。 2.2 嵌入式系统软件设计 2.2.1 Bootloader 工作原理 Bootloader 位 于 FLASH 的 起 始 处 , 主 要 是 用 来 启 动 系 统 ,并 且 装 载 用 户 程 序 执 行 ,如 果 没 有 Bootloader,硬 件 启 动 成 功 后 ,将 直 接 运 行 用 户 应 用 程 序 。 反 之 ,Bootloader 的 启 动 代码将先被执行,进行一系列的初始化操作后,根据预先设 定的条件,选择执行用户应用程序或升级控制程序。 Bootloader 包 含 两 种 不 同 的 操 作 模 式 :“启 动 加 载 ” 模 式 和“下载” 模式。启动加载模式:这种模式也称为“自主”模式。 也就是 Bootloader 从目标 机 上 的某 个 固 态存 储 设 备上 将 操 作 系统加载到 RAM 中运行,整个过程并没有用户的介入。 这种 模式是 Bootloader 的正常 工 作 模式 。 下 载 模式 : 在 这 种模 式 下, 目标机上的 Bootloader 将 通 过 串口 连 接 或网 络 连 接等 通 信手段从 PC 下载文 件 ,比 如:下 载 内 核映 像 和 根文 件 系 统映 像等。 从主机下 载 的 文件 通 常 首先 被 Bootloader 保 存到 目 标 机的 RAM 中,然后再被 Bootloader 写到目标机上的 FLASH 类 固态存储设备中[3]。 Bootloader 工作原理流程图如图 3 所示。
嵌入式系统的运行主要分为工作模式和 升 级 模式 ,其 中 命令头、包序列 、数据单元 、CRC 校验码 、数据包尾标志 、总包
工 作 模 式 为 默 认 模 式 ,工 作 模 式 指 设 备 正 常 工 作 状 态 ,嵌 入 数 等 )[2],嵌 入 式 系 统 每 接 收 到 一 个 数 据 包 ,都 将 返 回 确 认 信
除和写入操作。IAP 的实现极为灵活,可利用单片机的串行口 接到计算机的 RS232 口 ,通 过专 门 设 计的 固 件 程序 来 编 程内 部 存 储器 , 可 以 通过 现 有 的 Internet 或 其 他 通讯 方 式 很 方 便 地 实现 远 程 升级 和 维 护[4]。
为 了 实 现 升 级 将 ARM 芯 片 内 部 的 FLASH 存 储 器 划 分 为 Bootloader 区 (程 序 启 动 区 )、升 级 处 理 区 、用 户 代 码 0 区 、 用户代码 1 区。 如图 4 所示。
收 稿 日 期 :2012-03-11
稿 件 编 号 :201203090
基金项目:贵州省科学技术基金(黔科合 J 字[2010]2134 号)
笔者设计的嵌入式系统,其硬件结构主要包括一个片外 EEPROM、微处理器 LM3S6965 及相应的接口电路。 LM3S6965
作者简介:黄绳雄(1986—),男,福建福州人,硕士研究生。 研究方向:电路系统设计自动化。
DOI:10.14022/ki.dzsjgc.2012.09.037
第 20 卷 第 9 期 Vol.20 No.9
电子设计工程 Electronic Design Engineering
2012 年 5 月 May. 2012
嵌入式设备远程在线升级技术的研究
黄绳雄, 张荣芬 (贵州大学 理学院, 贵州 贵阳 550025)
摘要: 介绍了嵌入 式系 统 远 程在 线 升 级的 工 作 原理 ,并 详 细阐 述 了 系统 硬 件 平台 及 软 件的 设 计 原理 ,提 出 了基 于 In-
ternet 通 信方 式 的 嵌入 式 系 统远 程 在 线升 级 的 方案 ,并 对 该方 案 进 行了 测 试 ,测试 结 果 表明 :该 方 案 具 有 较 高 的 升 级
式是指嵌入式处于升级状态,包括接收服务器发送的程序代 码,以及在 flash 区域固化程序代码等[1]。 1.2 远程在线升级原理
软件的在线升级目的。 在线升级实现流程如图 2 所示。
2 嵌入式系统在线升级的设计
整个 升 级系 统 主 要由 服 务 器和 远 程 终 端 组 成 ,其 中 远 程 2.1 硬件平台
成功率和较快的升级速度。
关键词: 在线升级; TCP 通信协议; 嵌入式系统; 在应用编程
中图分类号: TN8
文献标识码: A
文 章 编 号 :1674-6236(2012)09-0172-03
Research of remote online update for embedded device
HUANG Sheng-xiong, ZHANG Rong-fen (College of Science of Guizhou University, Guiyang 550025, China)
式 系 统 按 预 定 的 程 序 完 成 相 应 的 测 控 任 务 , 并 且 通 过 息,若数据包校验无 误 ,则 在 规 定的 FLASH 区 域 进行 旧 程 序
internet、GPRS 等方式向监控管理中心上报监测参数。 升级模 的 擦 除 以及 新 程 序的 复 制 ,从而 达 到 远程 终 端 的 嵌 入 式 系 统
护成本、提高设备的工作效率具有很重要的现实意义。
升级控制程序,待服务器接收到嵌入式系统的确认升级回复
1 嵌入式系统功能及在线升级原理
后即开始发送升级程序代码,在发送升级程序代码前,服务 器会将这些代码拆分成固定长度的多个数据单元,以每个数
1.1 嵌入式系统的功能
据单元为核心组成数据包 (数据包内容包含数据包头标志、
Abstract: The working principle of remote online update for embedded system is presented. The hardware platform of the system and the design principle of software are introduced. This paper presents the scheme of remote online update for embedded system which is based on the communication mode of Internet and this scheme was tested, the result shows that this scheme has a high rate of success for update and a fast speed for update. Key words: online update; TCP protocol; embedded system; IAP
图 1 系统结构图 Fig. 1 Structure of system 服务器作为软件升级任务的主动发起者,首先向嵌入式
式系统软件远程在线升级技术进行研究,并提出了一种已成 系统发送升级命令,嵌入式系统在硬件启动后,首先执行引
功 验 证 的在 线 升 级实 现 方 法,该 方 法 对减 少 嵌 入 式 设 备 的 维 导程序 Bootloader 进行 一系 列 的 初始 化 操 作, 同 时 选 择执 行
的 系 统 功 能 、性 能 以 及 规 模 的 要 求 都 在 日 益 提 高 ,开 发 者 必 Internet 进行通信。 系统结构如图 1 所示。
须能够针对客户的需求及时对系统进行维护和升级,以延长
系统的使用周期, 改善系统的性能。 目前远程升级方式主要
有: 采用 Boot 加双 Loader 的结构式 设 计 实 现 系 统 的 完 整 升 级 、 基 于 TFTP (Trivial File Transfer Protocol) 协 议 的 ARM 软 件远程更新系统等。 笔者对基于 LM3S6965 微控制器的嵌入
图 4 FLASH 内部划分 Fig. 4 Internal division of FLASH 启动区主要用于存放系统初始化代码以及引导程序 Bootloader,当 CPU 复 位 后 ,自 动 执 行 该 段 程 序 代 码 ,该 程 序 的主要功能是读取片外 EEPROM 中相关标志,判定嵌入式系 统的 运 行 模式 ,若 是 工作 模 式 ,则根 据 片 外 EEPROM 中 其 他 标志,跳转到规定的应用程序区的首地址;若是升级模式,则 进入软件升级处理部分的首地址。 升级处理区主要是负责接收程序代码数据包、 校验、固 化 程 序代 码 等 ;当升 级 完 毕后 ,将 修 改片 外 EEPROM 中 相 关 标志,指示 CPU 复位后的运行模式和复位后应运行的程序区。 用户代码 0 区和用户代码 1 区用于交替存放当前用户 代码以及升级代码,若当前用户代码放在 0 区,则将接收到 的升级代码存放在 1 区,此时用户代码 1 区便成为当前终端 指向的用户程序,而用户代码 0 区则用于存放下次升级时的 新代码。 远程终端 上电 后 首 先进 入 Bootloader 区 进行 系 统 的初 始 化 ,接着 终 端 从片 外 的 EEPROM 中读 取 升 级配 置 ,包 括 升 级 标 志位 ,已 收 到的 最 后 一个 数 据 包的 ID 等 ,若 终 端 处 于 升 级 状态,则发出向服务器索要升级数据的指令,此时指令中将 包含终端上次已接收到的最后一个数 据 包 的 ID,这 样 可 以避 免服务器重复发送数据包, 实现续传的功能。 终端通过 Internet 接 收 数 据 包 并 对 数 据 包 进 行 校 验 判 断 以 保 证 接 收 到 正确的数据。 由于 FLASH 中进行编程的最小单位是页,当接 收 到 的 数 据 达 到 一 页 后 ,通 过 IAP 进 行 编 程 ,编 程 结 束 后 将 最后一条数据包的 ID 保存在 EEPROM 中, 所有升级数据发 送结束并编程成功后,通过 IAP 指示 CPU 复位后应运行的应 用程序区域[5]。 具体的软件升级流程图如图 5 所示。