IAP远程升级技术在空间应用初探

发布日期:2017年9月22日
IAP远程升级技术在空间应用初探 IAP远程升级技术在空间应用初探

本内容试读结束

下载后可阅读完整内容,立即下载

介绍了在应用编程In-Application Programming (IAP) [1]的工作原理,以LPC2138处理器为工作平台,改变了传统的bootloader升级方式,设计了一种新型的芯片烧写方法,通过通信网络实现远程程序的固件升级,结合我国空间应用系统的快速发展和软件远程升级的需要,给出了空间应用系统环境下的软件远程升级解决方案。

随着我国空间技术与航天建设发展,特别是近几年受空间站建立和深空探测等多项航天规划影响, 越来越多的探测器、卫星载荷等空间飞行器在轨运行。期间,飞行器因功能需要升级、屏蔽故障模块或者因自身软件漏洞等原因, 软件需要进行可靠的远程升级[2]。

目前, 空间应用系统由于受无人在轨运行、通信资源有限,升级可靠性要求高等因素影响,软件远程升级真正应用还不普及,但是已经在我国航天发展过程中提出了强烈的应用需求。

软件远程升级在地面应用系统目前已经有了很完善的应用,软件系统在线升级,传统的研究方向主要集中在软件系统本身[3],升级方式也多种多样, 如Windows 操作系统等平台的软件升级可以通过更新动态链接库(DLL)或者静态库(LIB)即打补丁的方式进行升级。嵌入式系统升级的方式也有很多,主要有ICP (In-Circuit Programming), ISP (In-System Programming)等方式。这些方式通过仿真器或者串行接口下载线进行连接下载程序,都需要额外的辅助设备[4] [5] [6]。在地面应用中资源丰富,可以额外增加辅助设备,但是在空间应用系统中,设备产品已经无人值守在轨运行,资源上也无法重新配置,即使预先设计考虑到这些升级方式,也要增加原系统额外的硬件资源,对于航天空间应用有一定的弊端。

IAP 可通过专门设计的固件程序来编程内部存储器,不需要硬件支持,所以IAP 技术提高了嵌入式系统的可扩展性与可维护性[7],能在不变的硬件平台上升级其软件版本,提供更多功能及增值服务,适合在轨飞行设备进行软件升级。本文以ARM 为核心的LPC2138 芯片[8]为平台,设计了基于IAP 方式的远程程序升级系统,实现了一种在线软件升级方法和新的解决方案,为我国空间应用系统软件升级提供一种可行可借鉴的方案和初始研究。

2. IAP 概述 2.1. IAP 原理 LPC2138 芯片是基于实时仿真和嵌入式跟踪的32/16 位ARM7TDMI 微控制器,在网络控制、通信及工业电子等产品中有广泛的应用。它是带有32 KB RAM 和512 KB 高速Flash 存储器的处理器,出厂时在片内固化了一段Boot 程序。

它可以控制芯片复位后的初始化操作, 并提供对Flash 编程的方法。

Boot程序可以对芯片进行擦除、编程,且提供了IAP 编程接口。该Boot 程序在出厂时固化在512KBFlash 的顶部12 KB 范围内,当芯片上电以后,首先对Boot 区执行一次重映射[7],映射到片内存储器空间的最高处,即接近0x80000000 的地方,称之为Boot Block。Boot Block 的最低64 字节为中断向量表,又被重新映射到芯片的最低地址0x00000000 处, 最低地址0x00000000 开始的64 字节则存储用户的有效中断向量。经过这样的地址重新映射后,IAP 代码的入口就位于0x7FFFFFF0 处[8],映射过程如图1。

用户在应用IAP 的过程中,可自行对Flash 存储系统进行修改。由于IAP 程序是Thumb 代码,位于地址0x7FFF FFF0,所以需要在ADS 编译选项中,选中ARM/Thumb Interworking 项。IAP 程序会使用



相关标签