用于远程装置应用升级的系统和方法.pdf

上传人:大师****2 文档编号:1004101 上传时间:2018-03-24 格式:PDF 页数:16 大小:680.88KB
返回 下载 相关 举报
摘要
申请专利号:

CN201080012716.3

申请日:

2010.03.16

公开号:

CN102356379A

公开日:

2012.02.15

当前法律状态:

驳回

有效性:

无权

法律详情:

发明专利申请公布后的驳回IPC(主分类):G06F 9/44申请公布日:20120215|||实质审查的生效IPC(主分类):G06F 9/44申请日:20100316|||公开

IPC分类号:

G06F9/44

主分类号:

G06F9/44

申请人:

泰科电子海底通信有限责任公司

发明人:

S·A·萨贝; J·M·利斯

地址:

美国新泽西州

优先权:

2009.03.16 US 12/404769

专利代理机构:

中国专利代理(香港)有限公司 72001

代理人:

张金金;朱海煜

PDF下载: PDF下载
内容摘要

用于远程升级远程装置的方法和系统可用于升级在难以物理接近的装置(例如在光学通信系统中的海下光学装置等)中的应用程序。该方法和系统使用不可擦除应用(NEA)来管理应用程序的升级,确定该应用程序是否是有效的,并且如果该应用程序不是有效的则提供默认应用功能。该NEA可存储在不可远程擦除的存储器上,并且该应用程序可存储在非易失性并且可编程存储器上。代码状态指示符可用于指示该应用程序是否是有效的,例如指示该代码是存在的并且是起作用的。

权利要求书

1: 一种远程升级远程装置的方法, 其包括 : 在所述远程装置中运行不可擦除应用 NEA, 其中所述 NEA 是不可远程擦除的 ; 在所述远程装置中的非易失性可编程存储器中升级应用程序 ; 以及 如果升级所述应用程序成功则使用所述远程装置中的所述应用程序执行装置命令, 并 且如果升级所述应用程序不成功则使用所述远程装置中的所述 NEA 执行装置命令。
2: 如权利要求 1 所述的方法, 其中升级所述应用程序包括 : 使存储在所述非易失性可编程存储器中的现有应用程序无效 ; 下载并且存储新应用程序在所述非易失性可编程存储器中 ; 验证所述新应用程序的已完成下载 ; 以及 证实所述新应用程序的功能性。
3: 如权利要求 2 所述的方法, 其中所述远程装置中的另一个存储器至少包括有效代码 位置, 其配置成存储所述非易失性可编程存储器中存储的所述应用程序的地址, 其中使所 述现有应用程序无效包括将所述有效代码位置复位到无效地址。
4: 如权利要求 2 所述的方法, 其中验证所述新应用程序的所述已完成下载包括比较至 少一个校验和。
5: 如权利要求 2 所述的方法, 其中证实所述新应用程序的功能性包括确定所述新应用 程序是否接收、 处理和响应于命令。
6: 如权利要求 2 所述的方法, 其中证实所述新应用程序的功能性包括在一段时间内确 定所述新应用程序是否起作用。
7: 如权利要求 2 所述的方法, 其中证实所述新应用程序的功能性包括如果没有证实功 能性则重复证实尝试, 并且其中如果在一定数量的所述证实尝试后没有证实所述新应用程 序的功能性则重复所述升级。
8: 如权利要求 1 所述的方法, 其中所述 NEA 管理升级所述现有应用程序。
9: 如权利要求 1 所述的方法, 进一步包括通过确定在另一个存储器的有效代码位置中 是否设置地址从而指示所述应用程序是存在的并且通过确定在代码运行有效位置中是否 设置旗标从而指示所述应用程序是起作用的来确定所述升级是否是成功的。
10: 如权利要求 1 所述的方法, 其中所述远程装置包括第一和第二控制器, 并且其中首 先对所述第一控制器执行升级所述应用程序并且其次对所述第二控制器执行升级所述应 用程序。
11: 如权利要求 10 所述的方法, 其中所述第一和第二控制器中的每个包括所述 NEA 和 所述非易失性可编程存储器, 其中升级所述应用程序包括 : 使存储在所述非易失性可编程存储器中的现有应用程序无效 ; 下载并且存储新应用程序在所述非易失性可编程存储器中 ; 验证所述新应用程序的已完成下载 ; 以及 证实所述新应用程序的功能性。
12: 一种用于远程升级远程装置的系统, 其包括 : 第一存储器, 其包括存储在其中的不可擦除应用 (NEA) 使得所述 NEA 是不可远程擦除 的, 并且其中所述 NEA 配置成响应于远程命令管理所述远程装置中的应用程序的升级、 确 定所述远程装置中的所述应用程序是否是有效的, 并且如果所述应用程序不是有效的则提 2 供默认应用功能 ; 第二存储器, 其配置成在其中存储所述应用程序, 其中所述第二存储器是非易失性且 可编程的 ; 以及 耦合于所述第一存储器和所述第二存储器的处理器, 其中所述处理器配置成执行所述 NEA 并且配置成如果所述应用程序是有效的则执行所述应用程序。
13: 如权利要求 12 所述的系统, 其中所述 NEA 配置成通过使存储在所述第二存储器中 的现有应用程序无效、 下载并且存储新应用程序在所述第二存储器中以及验证所述新应用 程序的已完成下载来管理所述应用程序的所述升级。
14: 如权利要求 12 所述的系统, 进一步包括第三存储器, 其配置成存储至少一个状态 指示符, 其指示所述第二存储器中的所述应用程序的状态。
15: 如权利要求 14 所述的系统, 其中所述第三存储器至少包括 : 有效代码位置, 其配置成存储指示所述应用程序是存在的所述应用程序的地址 ; 和 代码运行有效位置, 其配置成存储指示所述应用程序是起作用的旗标。
16: 如权利要求 12 所述的系统, 其中所述 NEA 配置成确定所述应用程序是否是起作用 的, 并且进一步包括硬件计时器, 其配置成如果所述 NEA 未能在一段时间后确定所述应用 程序是起作用的则将所述处理器复位。
17: 如权利要求 12 所述的系统, 其中所述 NEA 配置成对所述远程装置执行引导加载器 功能和链接器功能。
18: 一种通信系统, 其包括 : 位于陆地上并且配置成在干线路径上提供信号的干线终端 ; 以及 耦合于所述干线路径的远程装置, 其中所述远程装置位于远程环境中并且配置成远程 地升级, 所述远程装置包括 : 配置成控制所述远程装置的功能的控制器, 其中所述控制器包括 : 第一存储器, 其包括存储在其中的不可擦除应用 (NEA), 其中所述 NEA 是不可远程擦除 的, 并且其中所述 NEA 配置成响应于来自所述干线终端的远程命令来管理所述远程装置中 的应用程序的升级、 确定所述远程装置中的所述应用程序是否是有效的以及如果所述应用 程序不是有效的则提供默认应用功能 ; 第二存储器, 其配置成在其中存储所述应用程序, 其中所述第二存储器是非易失性且 可编程的 ; 以及 耦合于所述第一存储器和所述第二存储器的处理器, 其中所述处理器配置成执行所述 NEA 并且配置成如果所述应用程序是有效的则执行所述应用程序。
19: 如权利要求 18 所述的通信系统, 其中所述远程装置是海下光学装置。
20: 如权利要求 18 所述的通信系统, 进一步包括第三存储器, 其配置成存储至少一个 状态指示符, 其指示所述第二存储器中的所述应用程序的状态。

说明书


用于远程装置应用升级的系统和方法

    技术领域 本公开涉及远程升级装置应用程序, 并且特别地涉及用于远程升级在具有有限可 访问性的装置中的应用程序的系统和方法。
     背景技术
     海下光纤传输系统可包括相对长的干线段, 其可在传送和 / 或接收干线终端处端 接。 该光纤传输系统可进一步包括沿着它的干线设置的一个或多个光学装置, 例如, 支路单 元和 / 或中继器。每个支路单元 (BU) 可连接到支路段, 其在传送和 / 或接收支路终端处端 接。每个干线和 / 或支路终端可在陆地上或陆地附近。该相对长的干线系统例如可沿着海 底在水下铺设。该光学装置还可安置在离陆地例如五十公里或更多的相对长的距离的海 底。每个光学装置可包括配置成控制和 / 或监测装置功能性和 / 或与终端通信的控制器。 这样的装置功能可采用软件、 固件、 硬件和 / 或其的组合实现。有时, 将这些远程装置中的软件、 固件和 / 或硬件升级可以是可取的。尽管硬件升 级可能需要实际物理接近该装置, 但是软件和 / 或固件升级可远程完成以维持服务。当与 需要物理接近由于位置 ( 例如在海下系统中 ) 而造成在物理上难以接近的这些装置的活动 相比时, 远程升级的能力可提供可观的成本节省。 然而, 如果远程升级能力仅仅由于失败的 升级尝试而优先于物理接近, 远程升级能力可能提供很少的益处。为了保持成本节省和服 务可用性, 因此可取的是远程升级是可靠的并且如果升级失败则允许恢复。
     当从不可靠的传输设施传送例如固件升级等应用程序时, 还可能存在其他挑战。 例如, 到远程装置的低带宽传输通道可能限制可访问性。缺乏与终端的连续通信或协议握 手也可限制验证下载的应用的每个下载包的能力和定期重发该应用的能力。
     附图说明
     应该参考下面的详细说明, 该详细说明应该结合下面的图阅读, 其中相同的数字 表示相同的部件 :
     图 1 是与本公开的实施例一致的光学通信系统的示意图 ;
     图 2 是包括用于远程应用升级的系统的装置的实施例的框图 ;
     图 3A 至 3C 是图示用于远程升级应用程序的方法的流程图 ; 以及
     图 4 是图示与本公开一致的远程应用升级的实施例的状态转变图。 发明内容 本公开针对用于远程升级在具有有限可访问性的远程装置中的例如固件等应用 程序的系统和方法。该系统和方法一般使用不可擦除应用 (NEA) 来管理应用升级和 / 或提 供默认应用功能, 由此提供相对可靠的远程应用程序升级能力。该系统和方法可在物理接 近系统装置可以是相对困难和 / 或代价高的系统中使用, 例如在如下文描述的海下光学通 信系统中。尽管在海下光学通信系统的上下文中描述示范性实施例, 本文描述的系统和方
     法还可在地面通信系统中使用。
     现在转向图 1, 图示有与本公开一致的示范性光学通信系统 100。本领域内技术人 员将认识到该系统 100 为了容易说明已经采用高度简化的形式描绘。该光学通信系统 100 包括耦合于干线路径 112 的干线终端 110、 120。如本文中使用的术语 “耦合” 指任何连接、 耦合、 链路或其类似物, 由此由一个系统元件传递的信号传递到 “被耦合的” 元件。这样的 “被耦合的” 装置不必互相直接连接并且可通过可操纵或修改这样的信号的中间部件或装 置分开。
     干线路径 112 可包括多个光缆段, 例如用于传递光学信号的电缆段 106、 107、 108。 每个电缆段可包括光纤电缆的一个或多个部分 ( 其包括光纤对 ), 和一个或多个中继器 170, 以在干线终端 110、 120 之间提供光学信号的双向通信的传输路径。
     例如支路单元 130 和 140 的一个或多个支路单元可耦合于干线终端 110、 120 之间 的干线路径。每个支路单元 130、 140 可分别通过关联的支路路径 135、 146、 可能通过一个 或多个中继器 170 和链接光缆进一步分别耦合于例如支路终端 150 和 160 的支路终端。系 统 100 因此可配置成在两个或更多终端 110、 120、 150、 160 之间提供光学信号的双向通信。 为便于说明, 本文的描述可指从一个终端到另一个的传输。然而, 系统 100 可配置成在终端 110、 120、 150、 160 中的任何终端之间双向或单向通信。
     在干线和支路路径中的部件可包括用于实现它们的预期功能性的已知配置。例 如, 中继器 170 可包括任何已知的光学放大器 / 中继器配置, 其补偿传输路径上的信号衰 减。例如, 中继器中的一个或多个可配置为光学放大器, 例如掺铒的纤维放大器 (EDFA)、 拉 曼放大器或混合拉曼 /EDFA 放大器。 同样, 中继器中的一个或多个可采用已知的光 - 电 - 光 配置提供, 该配置通过将光信号转换成电信号、 处理该电信号并且然后重发该光学信号来 再生光学信号。
     光学通信系统 100 可配置为远运距系统, 例如具有在终端中的至少两个之间超过 大约 600km 的长度, 并且可跨越水体。当用于跨越例如海洋的水体时, 放大器 170 和 / 或支 路单元 130 和 / 或 140 可固定在海底上, 并且干线路径 112 路径可在海滩登陆处之间跨越。 多个中继器、 支路单元和光学介质链路可设置在水下和 / 或在陆地上。
     光学通信系统 100 中的一个或多个光学装置 ( 例如, 支路单元 ) 可包括例如固件 等应用程序, 有时可将其升级。当光学装置安置在海底中或海底上, 远程地、 即从终端升级 该光学装置可以是可取的。高可靠性地进行升级并且如果升级失败该光学装置继续起作 用, 这也可以是可取的。
     现在转向图 2, 例如支路单元或其他海下光学装置等示范性远程装置 210 可具有 与本公开一致的远程应用升级能力。本领域内技术人员将认识到该装置 210 为了容易说明 已经采用高度简化的形式描绘。该装置 210 可包括一个或多个控制器 220a、 220b。如本文 使用的术语 “控制器” 可包括可编程硬件元件和 / 或硬件、 软件和固件的组合。例如, 控制 器可以是微控制器, 例如包括 CPU、 存储器 ( 例如, 读取 / 写入和 / 或只读 ) 和 / 或能够输入 和输出的外围设备。在另一个示例中, 控制器可实现为 ASIC( 即 “单片系统” ), 或 FPGA, 或 其类似物。
     装置 210 可进一步包括其他装置功能硬件 225。其他装置功能硬件 225 可以是配 置成在控制器的控制下提供装置 210 的功能, 例如中继器和 / 或支路功能的硬件。这些控制器 220a、 220b 可配置成从终端和 / 或另一个装置、 例如从终端 110、 120、 150、 160 和 / 或 另一个装置 130、 140、 170 接收通信信号, 和 / 或传送通信信号到它们。这些控制器 220a、 220b 可进一步配置成从其他装置功能硬件 225 接收控制信号, 和 / 或传送控制信号到其他 装置功能硬件 225。 在具有多个控制器的装置中, 这些控制器 220a、 220b 可配置成提供冗余 功能性。也就是说, 控制器 220a 可配置成提供与控制器 220b 相同的装置功能性, 使得如果 一个控制器故障而装置 210 可继续起作用。
     装置 210 可包括一个或多个应用程序, 其配置成例如通过执行装置命令提供装置 功能。在示范性实施例中, 用于远程升级装置 210 中的应用程序的系统可在控制器 220a、 220b 中的至少一个中实现。一般来说, 控制器 220a 可包括耦合于非易失性可编程存储器 240 的处理器或中央处理单元 (CPU)230, 该存储器 240 存储要由该处理器 230 执行的应用 程序。控制器 220a 还可包括不可擦除存储器 245, 其存储用于管理应用程序升级和 / 或用 于提供默认应用功能的不可擦除应用 (NEA)。 控制器 220a 可进一步包括例如看门狗计时器 255 等硬件计时器, 其用于如果不能在一段时间内证实升级的应用程序则将处理器复位。 另 一个存储器 250 可用于存储程序状态指示符, 其指示应用程序是否是有效的 ( 即, 升级是否 是成功的 )。控制器 220a 还可包括本领域内技术人员已知的其他部件, 例如输入 / 输出块 (I/0)235。 用于存储应用程序的非易失性可编程存储器 240 可包括可擦可编程只读存储器 (EEPROM) 和更具体地闪存类型的 EEPROM, 其配置成采用相对大的块来程序化。该 EEPROM 可以是可擦除和可编程的, 使得从远程位置 ( 例如, 从终端 ) 下载的新的或升级的应用程序 可代替现有或以前程序化的应用程序。
     不可擦除存储器 245 可包括配置成编程一次并且不能远程可擦除或编程的存储 器, 例如只读存储器 (ROM) 等。尽管非易失性可编程存储器 240 和不可擦除存储器 245 被 示为并且描述为单独的存储器装置 ( 例如, EEPROM 和 ROM), 非易失性可编程存储器 240 和 不可擦除存储器 245 还可实现为单个存储器装置的单独部分 ( 例如, 具有存储在 EEPROM 的 保护码空间中的 NEA 的该 EEPROM)。
     如上文提到的, NEA 可配置成管理下载新应用程序并且管理擦除和 / 或程序化非 易失性可编程存储器 240( 例如, EEPROM)。NEA 可进一步配置成提供引导加载器和 / 或链 接器功能。如本文使用的, 引导加载器可理解为配置成当将控制器复位和 / 或加电时运行 的程序。例如, 该引导加载器可配置成将应用程序加载进入存储器、 “监听” 通信和 / 或跳转 到应用的起始位置。如本文使用的, 链接器可理解为配置成将程序模块和 / 或数据结合来 形成单个程序的程序。 NEA 可进一步配置成提供装置应用功能和 / 或默认应用, 当在非易失 性远程可擦除的存储器 240 中不存在有效应用时该默认应用提供装置功能性。也就是说, NEA 可包括应用程序的不可升级版本, 其不能被远程升级。
     用于存储程序状态指示符的存储器 250 可包括非易失性存储器, 例如 EEPROM 等。 存储器 250 可以是连同存储器 240、 245 中的一个或二者一起的存储器装置的一部分或可以 是单独的存储器装置。存储器 250 可包括配置成存储程序状态指示符的一个或多个存储 器位置。例如, 存储器 250 可包括有效代码位置 (VALID_CODE_LOC), 其配置成存储应用程 序的起始地址, 由此指示应用程序存在。可将 VALID_CODE_LOC 复位来指示要下载新应用程 序, 并且可在下载该新应用之后, 例如当验证该下载的新应用的时设置到该新应用程序的
     起始地址。 存储器 250 可进一步包括代码运行有效位置 (CODE_RUNVALID_LOC), 其配置成存 储指示已经证实应用程序的功能性的旗标。当将 VALID_CODE_LOC 复位来指示要下载新应 用程序时, 可将 CODE_RUNVALID_LOC 复位, 并且可当证实该新应用程序的功能性时将 CODE_ RUNVALID_LOC 设置。
     存储器 250 可进一步包括代码重试位置 (CODE_RETRIES_LOC), 其配置成存储证实 新应用程序的尝试数目的计数器。在下载新应用并且验证后, 可将 CODE_RETRIES_LOC 复位 到零, 并且当每次尝试证实该新应用的功能性时可使它增量。 可基于存储在 CODE_RETRIES_ LOC 中的值、 例如如果该存储的值超过预定值 ( 例如, 重试数目 ) 则将 VALID_CODE_LOC 复 位。 存储器位置和程序状态指示符在下文连同用于升级应用程序的示范性方法更详细地描 述。
     如果装置 210 包括冗余控制器 220a 和 220b, 可配置装置 210 使得每个控制器 220a、 220b 可彼此独立地程序化。 当与单控制器系统相比时, 这可提供增加的功能可靠性水 平和增加的程序化可靠性水平两者。例如, 如果一个控制器故障, 装置可继续起作用。如果 控制器程序化尝试失败, 装置也可在另一个控制器的控制下或根据 NEA 的默认应用继续起 作用。可根据下文论述的方法在多个控制器中的每个中升级现有应用。为了维持可靠性, 可一次一个控制器地、 例如顺序进行升级。 尽管冗余控制器提供优势, 这不被认为是限制并 且可在单个控制器中实现用于远程应用升级的系统和方法。 现在转向图 3A, 流程图 300 图示与本公开一致的用于远程升级应用程序的一个一 般方法。一般来说, 运行 301NEA 并且然后可在非易失性可编程存储器 ( 例如, EEPROM) 中 升级 302 现有应用。该方法还包括确定 303 升级是否是成功的 ; 例如, NEA 可检查程序状态 指示符, 其指示应用程序的状态。如果升级是不成功的, 使用 NEA 执行 304 装置命令, 例如 来提供默认应用功能和 / 或尝试另一个升级。如果升级是成功的, 使用该升级的应用执行 305 装置命令。
     转向图 3B, 流程图 306 更详细地图示用于升级现有应用的示范性方法。根据该示 范性方法, 可以例如响应于远程命令使现有 ( 即, 以前程序化的 ) 应用无效 307 而开始升 级。然后可下载 309 新应用并且可例如通过验证一个或多个校验和来验证 311 该新应用的 已完成下载。验证该校验和可提供该新应用没有在下载过程期间被破坏的确认。然后可证 实 313 该新应用的功能性。该新应用的功能性可通过确认该新应用执行例如与终端或一些 其他装置通信和 / 或处理命令等功能而被证实。
     在升级期间使以前的应用无效 307 可包括将程序状态指示符复位。如上文提到 的, 这些程序状态指示符可用于指示已经验证已完成下载并且已经证实新应用的功能性。 在验证已完成下载后, 例如可在有效代码位置 (VALID_CODE_LOC) 中设置新应用程序的地 址。在证实新应用程序的功能性后, 可在代码运行有效位置 (CODE_RUNVALID_LOC) 中设置 旗标。 使以前的应用无效 307 然后可包括将有效代码位置复位 ( 例如, 将位置 VALID_CODE_ LOC 复位到 0xFFFFFFFF), 将代码运行有效位置 ( 例如, CODE_RUNVALID_LOC) 复位到无效应 用旗标, 并且将控制器复位。可响应于外部命令 ( 即来自位于例如装置 210 的装置远处的 用户的用户命令 ) 使现有应用无效和 / 或将控制器复位。在光学通信系统中, 例如外部命 令可通过相对低比特率的遥测通道接收。
     下载 309 新应用可包括接收从例如终端 110、 120、 150、 160 传送到装置 210 的新应
     用程序。为速度考虑, 可在下载操作期间关闭来自装置 210 的有效载荷 / 消息确认。该接 收的应用程序可包括多个记录。每个记录可包括关联的错误校验参数, 例如校验和。另外 或备选地, 多个记录 ( 即, 整个应用 ) 可包括关联的错误校验参数。非易失性可编程存储器 240 然后可用接收的应用程序程序化 ( 例如通过将应用程序烧入闪存 )。在已经下载新应 用程序后, 然后可恢复打开有效载荷 / 消息确认。
     在已经下载程序后, 验证 311 下载的新应用可包括接收用户命令来验证整个应用 的校验和。 该用户命令可包括传送的应用程序的起始地址和结束地址以及传送的应用程序 的传送的校验和。 例如, 该传送的校验和可包括许多 ( 例如, 16 个 ) 对应于传送的应用程序 的字节的和的最低有效位。然后可基于程序化的非易失性存储器 240 的内容 ( 在起始地址 和结束地址之间 ( 包含起始地址和结束地址 )) 来计算程序化的校验和。然后可比较该传 送和程序化的校验和。如果该比较的校验和相符, 起始地址然后可存储在存储器 250 的有 效代码位置 ( 即, VALID_CODE_LOC)。然后可响应于用户命令将控制器复位。
     在验证下载的程序后, 证实 313 新应用程序的功能性可包括在一段时间内确定新 应用程序是否能够执行功能。根据一个示例, 应用程序可尝试接收、 处理和响应于用户请 求来在由看门狗计时器 255 强制的一段时间 ( 例如, 2 分钟窗口 ) 期间验证应用程序的版 本号。如果应用程序未能在该段时间内执行该功能 ( 例如, 没有接收命令, 没有看见正确的 版本号, 或由于任何原因挂起 ), 认为证实是不成功的并且控制器复位。如果应用程序在该 段时间内执行该功能 ( 例如, 在该 2 分钟窗口内确认正确的版本号 ), 在代码运行有效位置 ( 即, CODE_RUNVALID_LOC) 中设置指示已经证实功能性的旗标。 现在转向图 3C, 示范性流程图 315 更详细地图示从控制器复位和 / 或装置加电开 始的 NEA 和应用程序之间的程序流程。如上文论述的, NEA 可配置成管理下载新应用程序、 程序化非易失性可编程存储器、 验证该下载的新应用和 / 或证实该新应用程序。 NEA 可进一 步配置成提供引导加载器功能、 链路器功能和 / 或默认应用功能。
     当程序流程开始 317 时, NEA 可启动 319。例如, 来自用户的复位命令可引起 NEA 启动 319 并且开始运行。在另一个示例中, 装置加电可引起 NEA 启动 319。然后可确定 321 是否设置 VALID_CODE_LOC。如果没有设置 VALID_CODE_LOC, 这指示没有应用程序存在, 然 后 NEA 可运行 323 来管理新应用程序下载操作和 / 或提供默认装置功能性 ( 通过执行装置 命令 )。在尝试的下载操作后, 如果已经接收 325 完成代码验证 ( 例如, 通过验证校验和 ), VALID_CODE_LOC 可设置 327 到下载的新应用程序的起始地址。如果还没有接收到完成代 码验证 ( 例如, 如果下载的应用被破坏并且校验和不匹配 ), 流程可返回到 NEA 运行 323 来 尝试另一个下载和 / 或来执行装置命令。在设置 327 VALID_CODE_LOC 后, NEA 可继续运行 323 直到接收 329 复位命令为止。如果接收到复位命令, 可将 CODE_RETRIES_LOC 复位 331 到零, 并且程序流程可返回到 NEA 启动 319。
     如果确定设置了 VALID_CODE_LOC( 例如设置到应用程序的起始地址 ), 然后可确 定 333 是否设置 CODE_RUNVALID_LOC。如果设置了 CODE_RUNVALID_LOC, 应用程序可运行 341 并且执行装置命令。也就是说, 设置 VALID_CODE_LOC 和设置 CODE_RUNVALID_LOC 指示 已经成功下载新应用程序, 并且已经确认它的功能性, 即升级已经成功。
     如果没有设置 CODE_RUNVALID_LOC, 可使 CODE_RETRIES_LOC 增量 335。如果确定 337 CODE_RETRIES_LOC 超过重试数 ( 例如, 3), 那么可将 VALID_CODE_LOC 复位 339( 例如,
     到 0xFFFFFFFF) 来指示没有应用程序存在并且通过运行 323NEA 发起另一个下载。也就是 说, 如果 CODE_RETRIES_LOC 指示在证实功能性方面的多个尝试已经失败, 应用程序可能不 可操作并且可要求另一个下载。
     如果 CODE_RETRIES_LOC 小于重试数 ( 例如, 3), 那么可运行 341 应用程序来尝 试执行功能并且证实功能性。如果当应用运行 341 时, 应用程序成功地执行功能 ( 例如, 版本请求完成 ), 可设置 CODE_RUNVALID_LOC 来指示证实了功能性。如果设置 343 CODE_ RUNVALID_LOC, 应用程序可继续运行 341 并且执行装置命令。如果没有设置 343 CODE_ RUNVALID_LOC 并且计时器没有超时 345, 应用程序将继续运行 341 并且尝试证实。如果没 有设置 343 CODE_RUNVALID_LOC 并且计时器超时 345, 证实尝试失败并且程序流程可返回 到 NEA 启动 319 并且可重新开始证实序列。
     转向图 4, 状态转变图 400 进一步图示与本公开一致的远程升级应用程序的系统 和方法。最初, 即就在应用程序升级操作之前, 应用可处于等待命令状态 410。当接收到无 效命令 ( 例如, 从终端 ) 时, 可将 VALID_CODE_LOC 复位, 可将 CODE_RUNVALID_LOC 复位, 可 将控制器复位并且状态可转变到 NEA 启动状态 415。如果没有设置 VALID_CODE_LOC, 状态 可转变到 NEA 等待命令状态 420。如果接收到固件下载命令, 状态可转变到 NEA 烧代码状 态 425, 其中如果下载完成并且被验证可设置 VALID_CODE_LOC。如果复位发生, 状态然后可 转变到 NEA 启动状态 415。如果设置了 VALID_CODE_LOC, 没有设置 CODE_RUNVALID_LOC 并 且 CODE_RETRIES_LOC 小于重试数 ( 例如, 三 ), 可使 CODE_RETRIES_LOC 增量并且状态可转 变到应用等待证实状态 430。如果接收到复位命令和 / 或没有接收到证实命令和 / 或在一 段时间 ( 例如, 两分钟 ) 后证实没有成功, 状态可转变到 NEA 启动 415。如果设置了 VALID_ CODE_LOC, 没有设置 CODE_RUNVALID_LOC 并且 CODE_RETRIES_LOC 大于或等于该重试数, 状 态可转变到使 VALID_CODE_LOC 复位 435。状态然后可转变到 NEA 等待命令 420。如果在 NEA 启动状态 415, 设置了 VALID_CODE_LOC 并且设置了 CODE_RUNVALID_LOC, 状态可转变到 应用等待命令 410。
     因此, 已经描述可向例如海下光纤装置等难以物理接近的远程装置提供高可靠性 软件和 / 或固件升级的系统和方法。可提供 NEA, 其配置成管理下载, 提供引导加载器和 / 或链接器功能, 并且如果升级不成功提供默认装置应用功能。可靠性还可通过多个控制器 增强, 该多个控制器配置成各自下载升级, 验证下载成功完成, 并且证实下载的升级是起作 用的, 即升级是成功的。
     根据本公开的一个方面, 提供有远程升级远程装置的方法, 其包括 : 在该远程装置 运行不可擦除应用 (NEA), 其中该 NEA 是不可远程擦除的 ; 在该远程装置中的非易失性可编 程存储器中升级应用程序 ; 以及如果升级该应用程序成功则使用该远程装置中的应用程序 执行装置命令, 并且如果升级该应用程序不成功则使用所述远程装置中的 NEA 执行装置命 令。
     根据本公开的另一个方面, 提供有用于远程升级远程装置的系统。 该系统包括 : 第 一存储器, 其包括存储在其中的不可擦除应用 (NEA) 使得该 NEA 是不可远程擦除的。 该 NEA 配置成响应于远程命令管理该远程装置中的应用程序的升级, 确定该远程装置中的该应用 程序是否是有效的, 并且如果该应用程序不是有效的则提供默认应用功能。该系统还包括 第二存储器, 其配置成在其中存储该应用程序, 其中该第二存储器是非易失性和可编程的。该系统进一步包括耦合于该第一存储器和该第二存储器的处理器, 其中该处理器配置成执 行该 NEA 并且配置成如果该应用程序是有效的则执行该应用程序。
     根据本公开的再另一个方面, 提供有通信系统, 其包括 : 位于陆地上并且配置成在 干线路径上提供信号的干线终端 ; 耦合于该干线路径的远程装置, 其中该远程装置位于远 程环境中并且配置成被远程地升级。 该远程装置包括配置成控制该远程装置的功能的控制 器。该控制器包括第一存储器, 其包括存储在其中的不可擦除应用 (NEA) 使得该 NEA 是不 可远程擦除的。该 NEA 配置成响应于远程命令管理该远程装置中的应用程序的升级, 确定 该远程装置中的该应用程序是否是有效的, 并且如果该应用程序不是有效的则提供默认应 用功能。 该控制器还包括第二存储器, 其配置成在其中存储该应用程序, 其中该第二存储器 是非易失性和可编程的。 该控制器进一步包括耦合于该第一存储器和该第二存储器的处理 器, 其中该处理器配置成执行该 NEA 并且配置成如果该应用程序是有效的则执行该应用程 序。
     然而, 本文已经描述的实施例只是利用本发明的若干实施例中的一些, 并且在这 里通过说明而非限制的方式阐述。 可做出对于本领域内技术人员将是显而易见的许多其他 实施例而不实质偏离如在附上的权利要求中限定的本发明的精神和范围。

用于远程装置应用升级的系统和方法.pdf_第1页
第1页 / 共16页
用于远程装置应用升级的系统和方法.pdf_第2页
第2页 / 共16页
用于远程装置应用升级的系统和方法.pdf_第3页
第3页 / 共16页
点击查看更多>>
资源描述

《用于远程装置应用升级的系统和方法.pdf》由会员分享,可在线阅读,更多相关《用于远程装置应用升级的系统和方法.pdf(16页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN102356379A43申请公布日20120215CN102356379ACN102356379A21申请号201080012716322申请日2010031612/40476920090316USG06F9/4420060171申请人泰科电子海底通信有限责任公司地址美国新泽西州72发明人SA萨贝JM利斯74专利代理机构中国专利代理香港有限公司72001代理人张金金朱海煜54发明名称用于远程装置应用升级的系统和方法57摘要用于远程升级远程装置的方法和系统可用于升级在难以物理接近的装置例如在光学通信系统中的海下光学装置等中的应用程序。该方法和系统使用不可擦除应用NEA来管理应用。

2、程序的升级,确定该应用程序是否是有效的,并且如果该应用程序不是有效的则提供默认应用功能。该NEA可存储在不可远程擦除的存储器上,并且该应用程序可存储在非易失性并且可编程存储器上。代码状态指示符可用于指示该应用程序是否是有效的,例如指示该代码是存在的并且是起作用的。30优先权数据85PCT申请进入国家阶段日2011091686PCT申请的申请数据PCT/US2010/0274072010031687PCT申请的公布数据WO2010/107743EN2010092351INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书7页附图6页CN102356389A1/2页21一种。

3、远程升级远程装置的方法,其包括在所述远程装置中运行不可擦除应用NEA,其中所述NEA是不可远程擦除的;在所述远程装置中的非易失性可编程存储器中升级应用程序;以及如果升级所述应用程序成功则使用所述远程装置中的所述应用程序执行装置命令,并且如果升级所述应用程序不成功则使用所述远程装置中的所述NEA执行装置命令。2如权利要求1所述的方法,其中升级所述应用程序包括使存储在所述非易失性可编程存储器中的现有应用程序无效;下载并且存储新应用程序在所述非易失性可编程存储器中;验证所述新应用程序的已完成下载;以及证实所述新应用程序的功能性。3如权利要求2所述的方法,其中所述远程装置中的另一个存储器至少包括有效代。

4、码位置,其配置成存储所述非易失性可编程存储器中存储的所述应用程序的地址,其中使所述现有应用程序无效包括将所述有效代码位置复位到无效地址。4如权利要求2所述的方法,其中验证所述新应用程序的所述已完成下载包括比较至少一个校验和。5如权利要求2所述的方法,其中证实所述新应用程序的功能性包括确定所述新应用程序是否接收、处理和响应于命令。6如权利要求2所述的方法,其中证实所述新应用程序的功能性包括在一段时间内确定所述新应用程序是否起作用。7如权利要求2所述的方法,其中证实所述新应用程序的功能性包括如果没有证实功能性则重复证实尝试,并且其中如果在一定数量的所述证实尝试后没有证实所述新应用程序的功能性则重复。

5、所述升级。8如权利要求1所述的方法,其中所述NEA管理升级所述现有应用程序。9如权利要求1所述的方法,进一步包括通过确定在另一个存储器的有效代码位置中是否设置地址从而指示所述应用程序是存在的并且通过确定在代码运行有效位置中是否设置旗标从而指示所述应用程序是起作用的来确定所述升级是否是成功的。10如权利要求1所述的方法,其中所述远程装置包括第一和第二控制器,并且其中首先对所述第一控制器执行升级所述应用程序并且其次对所述第二控制器执行升级所述应用程序。11如权利要求10所述的方法,其中所述第一和第二控制器中的每个包括所述NEA和所述非易失性可编程存储器,其中升级所述应用程序包括使存储在所述非易失性。

6、可编程存储器中的现有应用程序无效;下载并且存储新应用程序在所述非易失性可编程存储器中;验证所述新应用程序的已完成下载;以及证实所述新应用程序的功能性。12一种用于远程升级远程装置的系统,其包括第一存储器,其包括存储在其中的不可擦除应用NEA使得所述NEA是不可远程擦除的,并且其中所述NEA配置成响应于远程命令管理所述远程装置中的应用程序的升级、确定所述远程装置中的所述应用程序是否是有效的,并且如果所述应用程序不是有效的则提权利要求书CN102356379ACN102356389A2/2页3供默认应用功能;第二存储器,其配置成在其中存储所述应用程序,其中所述第二存储器是非易失性且可编程的;以及耦。

7、合于所述第一存储器和所述第二存储器的处理器,其中所述处理器配置成执行所述NEA并且配置成如果所述应用程序是有效的则执行所述应用程序。13如权利要求12所述的系统,其中所述NEA配置成通过使存储在所述第二存储器中的现有应用程序无效、下载并且存储新应用程序在所述第二存储器中以及验证所述新应用程序的已完成下载来管理所述应用程序的所述升级。14如权利要求12所述的系统,进一步包括第三存储器,其配置成存储至少一个状态指示符,其指示所述第二存储器中的所述应用程序的状态。15如权利要求14所述的系统,其中所述第三存储器至少包括有效代码位置,其配置成存储指示所述应用程序是存在的所述应用程序的地址;和代码运行有。

8、效位置,其配置成存储指示所述应用程序是起作用的旗标。16如权利要求12所述的系统,其中所述NEA配置成确定所述应用程序是否是起作用的,并且进一步包括硬件计时器,其配置成如果所述NEA未能在一段时间后确定所述应用程序是起作用的则将所述处理器复位。17如权利要求12所述的系统,其中所述NEA配置成对所述远程装置执行引导加载器功能和链接器功能。18一种通信系统,其包括位于陆地上并且配置成在干线路径上提供信号的干线终端;以及耦合于所述干线路径的远程装置,其中所述远程装置位于远程环境中并且配置成远程地升级,所述远程装置包括配置成控制所述远程装置的功能的控制器,其中所述控制器包括第一存储器,其包括存储在其。

9、中的不可擦除应用NEA,其中所述NEA是不可远程擦除的,并且其中所述NEA配置成响应于来自所述干线终端的远程命令来管理所述远程装置中的应用程序的升级、确定所述远程装置中的所述应用程序是否是有效的以及如果所述应用程序不是有效的则提供默认应用功能;第二存储器,其配置成在其中存储所述应用程序,其中所述第二存储器是非易失性且可编程的;以及耦合于所述第一存储器和所述第二存储器的处理器,其中所述处理器配置成执行所述NEA并且配置成如果所述应用程序是有效的则执行所述应用程序。19如权利要求18所述的通信系统,其中所述远程装置是海下光学装置。20如权利要求18所述的通信系统,进一步包括第三存储器,其配置成存储。

10、至少一个状态指示符,其指示所述第二存储器中的所述应用程序的状态。权利要求书CN102356379ACN102356389A1/7页4用于远程装置应用升级的系统和方法技术领域0001本公开涉及远程升级装置应用程序,并且特别地涉及用于远程升级在具有有限可访问性的装置中的应用程序的系统和方法。背景技术0002海下光纤传输系统可包括相对长的干线段,其可在传送和/或接收干线终端处端接。该光纤传输系统可进一步包括沿着它的干线设置的一个或多个光学装置,例如,支路单元和/或中继器。每个支路单元BU可连接到支路段,其在传送和/或接收支路终端处端接。每个干线和/或支路终端可在陆地上或陆地附近。该相对长的干线系统例。

11、如可沿着海底在水下铺设。该光学装置还可安置在离陆地例如五十公里或更多的相对长的距离的海底。每个光学装置可包括配置成控制和/或监测装置功能性和/或与终端通信的控制器。这样的装置功能可采用软件、固件、硬件和/或其的组合实现。0003有时,将这些远程装置中的软件、固件和/或硬件升级可以是可取的。尽管硬件升级可能需要实际物理接近该装置,但是软件和/或固件升级可远程完成以维持服务。当与需要物理接近由于位置例如在海下系统中而造成在物理上难以接近的这些装置的活动相比时,远程升级的能力可提供可观的成本节省。然而,如果远程升级能力仅仅由于失败的升级尝试而优先于物理接近,远程升级能力可能提供很少的益处。为了保持成。

12、本节省和服务可用性,因此可取的是远程升级是可靠的并且如果升级失败则允许恢复。0004当从不可靠的传输设施传送例如固件升级等应用程序时,还可能存在其他挑战。例如,到远程装置的低带宽传输通道可能限制可访问性。缺乏与终端的连续通信或协议握手也可限制验证下载的应用的每个下载包的能力和定期重发该应用的能力。附图说明0005应该参考下面的详细说明,该详细说明应该结合下面的图阅读,其中相同的数字表示相同的部件0006图1是与本公开的实施例一致的光学通信系统的示意图;0007图2是包括用于远程应用升级的系统的装置的实施例的框图;0008图3A至3C是图示用于远程升级应用程序的方法的流程图;以及0009图4是图。

13、示与本公开一致的远程应用升级的实施例的状态转变图。发明内容0010本公开针对用于远程升级在具有有限可访问性的远程装置中的例如固件等应用程序的系统和方法。该系统和方法一般使用不可擦除应用NEA来管理应用升级和/或提供默认应用功能,由此提供相对可靠的远程应用程序升级能力。该系统和方法可在物理接近系统装置可以是相对困难和/或代价高的系统中使用,例如在如下文描述的海下光学通信系统中。尽管在海下光学通信系统的上下文中描述示范性实施例,本文描述的系统和方说明书CN102356379ACN102356389A2/7页5法还可在地面通信系统中使用。0011现在转向图1,图示有与本公开一致的示范性光学通信系统1。

14、00。本领域内技术人员将认识到该系统100为了容易说明已经采用高度简化的形式描绘。该光学通信系统100包括耦合于干线路径112的干线终端110、120。如本文中使用的术语“耦合”指任何连接、耦合、链路或其类似物,由此由一个系统元件传递的信号传递到“被耦合的”元件。这样的“被耦合的”装置不必互相直接连接并且可通过可操纵或修改这样的信号的中间部件或装置分开。0012干线路径112可包括多个光缆段,例如用于传递光学信号的电缆段106、107、108。每个电缆段可包括光纤电缆的一个或多个部分其包括光纤对,和一个或多个中继器170,以在干线终端110、120之间提供光学信号的双向通信的传输路径。0013。

15、例如支路单元130和140的一个或多个支路单元可耦合于干线终端110、120之间的干线路径。每个支路单元130、140可分别通过关联的支路路径135、146、可能通过一个或多个中继器170和链接光缆进一步分别耦合于例如支路终端150和160的支路终端。系统100因此可配置成在两个或更多终端110、120、150、160之间提供光学信号的双向通信。为便于说明,本文的描述可指从一个终端到另一个的传输。然而,系统100可配置成在终端110、120、150、160中的任何终端之间双向或单向通信。0014在干线和支路路径中的部件可包括用于实现它们的预期功能性的已知配置。例如,中继器170可包括任何已知的。

16、光学放大器/中继器配置,其补偿传输路径上的信号衰减。例如,中继器中的一个或多个可配置为光学放大器,例如掺铒的纤维放大器EDFA、拉曼放大器或混合拉曼/EDFA放大器。同样,中继器中的一个或多个可采用已知的光电光配置提供,该配置通过将光信号转换成电信号、处理该电信号并且然后重发该光学信号来再生光学信号。0015光学通信系统100可配置为远运距系统,例如具有在终端中的至少两个之间超过大约600KM的长度,并且可跨越水体。当用于跨越例如海洋的水体时,放大器170和/或支路单元130和/或140可固定在海底上,并且干线路径112路径可在海滩登陆处之间跨越。多个中继器、支路单元和光学介质链路可设置在水下。

17、和/或在陆地上。0016光学通信系统100中的一个或多个光学装置例如,支路单元可包括例如固件等应用程序,有时可将其升级。当光学装置安置在海底中或海底上,远程地、即从终端升级该光学装置可以是可取的。高可靠性地进行升级并且如果升级失败该光学装置继续起作用,这也可以是可取的。0017现在转向图2,例如支路单元或其他海下光学装置等示范性远程装置210可具有与本公开一致的远程应用升级能力。本领域内技术人员将认识到该装置210为了容易说明已经采用高度简化的形式描绘。该装置210可包括一个或多个控制器220A、220B。如本文使用的术语“控制器”可包括可编程硬件元件和/或硬件、软件和固件的组合。例如,控制器。

18、可以是微控制器,例如包括CPU、存储器例如,读取/写入和/或只读和/或能够输入和输出的外围设备。在另一个示例中,控制器可实现为ASIC即“单片系统”,或FPGA,或其类似物。0018装置210可进一步包括其他装置功能硬件225。其他装置功能硬件225可以是配置成在控制器的控制下提供装置210的功能,例如中继器和/或支路功能的硬件。这些控说明书CN102356379ACN102356389A3/7页6制器220A、220B可配置成从终端和/或另一个装置、例如从终端110、120、150、160和/或另一个装置130、140、170接收通信信号,和/或传送通信信号到它们。这些控制器220A、220。

19、B可进一步配置成从其他装置功能硬件225接收控制信号,和/或传送控制信号到其他装置功能硬件225。在具有多个控制器的装置中,这些控制器220A、220B可配置成提供冗余功能性。也就是说,控制器220A可配置成提供与控制器220B相同的装置功能性,使得如果一个控制器故障而装置210可继续起作用。0019装置210可包括一个或多个应用程序,其配置成例如通过执行装置命令提供装置功能。在示范性实施例中,用于远程升级装置210中的应用程序的系统可在控制器220A、220B中的至少一个中实现。一般来说,控制器220A可包括耦合于非易失性可编程存储器240的处理器或中央处理单元CPU230,该存储器240存。

20、储要由该处理器230执行的应用程序。控制器220A还可包括不可擦除存储器245,其存储用于管理应用程序升级和/或用于提供默认应用功能的不可擦除应用NEA。控制器220A可进一步包括例如看门狗计时器255等硬件计时器,其用于如果不能在一段时间内证实升级的应用程序则将处理器复位。另一个存储器250可用于存储程序状态指示符,其指示应用程序是否是有效的即,升级是否是成功的。控制器220A还可包括本领域内技术人员已知的其他部件,例如输入/输出块I/0235。0020用于存储应用程序的非易失性可编程存储器240可包括可擦可编程只读存储器EEPROM和更具体地闪存类型的EEPROM,其配置成采用相对大的块来。

21、程序化。该EEPROM可以是可擦除和可编程的,使得从远程位置例如,从终端下载的新的或升级的应用程序可代替现有或以前程序化的应用程序。0021不可擦除存储器245可包括配置成编程一次并且不能远程可擦除或编程的存储器,例如只读存储器ROM等。尽管非易失性可编程存储器240和不可擦除存储器245被示为并且描述为单独的存储器装置例如,EEPROM和ROM,非易失性可编程存储器240和不可擦除存储器245还可实现为单个存储器装置的单独部分例如,具有存储在EEPROM的保护码空间中的NEA的该EEPROM。0022如上文提到的,NEA可配置成管理下载新应用程序并且管理擦除和/或程序化非易失性可编程存储器2。

22、40例如,EEPROM。NEA可进一步配置成提供引导加载器和/或链接器功能。如本文使用的,引导加载器可理解为配置成当将控制器复位和/或加电时运行的程序。例如,该引导加载器可配置成将应用程序加载进入存储器、“监听”通信和/或跳转到应用的起始位置。如本文使用的,链接器可理解为配置成将程序模块和/或数据结合来形成单个程序的程序。NEA可进一步配置成提供装置应用功能和/或默认应用,当在非易失性远程可擦除的存储器240中不存在有效应用时该默认应用提供装置功能性。也就是说,NEA可包括应用程序的不可升级版本,其不能被远程升级。0023用于存储程序状态指示符的存储器250可包括非易失性存储器,例如EEPRO。

23、M等。存储器250可以是连同存储器240、245中的一个或二者一起的存储器装置的一部分或可以是单独的存储器装置。存储器250可包括配置成存储程序状态指示符的一个或多个存储器位置。例如,存储器250可包括有效代码位置VALID_CODE_LOC,其配置成存储应用程序的起始地址,由此指示应用程序存在。可将VALID_CODE_LOC复位来指示要下载新应用程序,并且可在下载该新应用之后,例如当验证该下载的新应用的时设置到该新应用程序的说明书CN102356379ACN102356389A4/7页7起始地址。存储器250可进一步包括代码运行有效位置CODE_RUNVALID_LOC,其配置成存储指示已。

24、经证实应用程序的功能性的旗标。当将VALID_CODE_LOC复位来指示要下载新应用程序时,可将CODE_RUNVALID_LOC复位,并且可当证实该新应用程序的功能性时将CODE_RUNVALID_LOC设置。0024存储器250可进一步包括代码重试位置CODE_RETRIES_LOC,其配置成存储证实新应用程序的尝试数目的计数器。在下载新应用并且验证后,可将CODE_RETRIES_LOC复位到零,并且当每次尝试证实该新应用的功能性时可使它增量。可基于存储在CODE_RETRIES_LOC中的值、例如如果该存储的值超过预定值例如,重试数目则将VALID_CODE_LOC复位。存储器位置和程。

25、序状态指示符在下文连同用于升级应用程序的示范性方法更详细地描述。0025如果装置210包括冗余控制器220A和220B,可配置装置210使得每个控制器220A、220B可彼此独立地程序化。当与单控制器系统相比时,这可提供增加的功能可靠性水平和增加的程序化可靠性水平两者。例如,如果一个控制器故障,装置可继续起作用。如果控制器程序化尝试失败,装置也可在另一个控制器的控制下或根据NEA的默认应用继续起作用。可根据下文论述的方法在多个控制器中的每个中升级现有应用。为了维持可靠性,可一次一个控制器地、例如顺序进行升级。尽管冗余控制器提供优势,这不被认为是限制并且可在单个控制器中实现用于远程应用升级的系统。

26、和方法。0026现在转向图3A,流程图300图示与本公开一致的用于远程升级应用程序的一个一般方法。一般来说,运行301NEA并且然后可在非易失性可编程存储器例如,EEPROM中升级302现有应用。该方法还包括确定303升级是否是成功的;例如,NEA可检查程序状态指示符,其指示应用程序的状态。如果升级是不成功的,使用NEA执行304装置命令,例如来提供默认应用功能和/或尝试另一个升级。如果升级是成功的,使用该升级的应用执行305装置命令。0027转向图3B,流程图306更详细地图示用于升级现有应用的示范性方法。根据该示范性方法,可以例如响应于远程命令使现有即,以前程序化的应用无效307而开始升级。

27、。然后可下载309新应用并且可例如通过验证一个或多个校验和来验证311该新应用的已完成下载。验证该校验和可提供该新应用没有在下载过程期间被破坏的确认。然后可证实313该新应用的功能性。该新应用的功能性可通过确认该新应用执行例如与终端或一些其他装置通信和/或处理命令等功能而被证实。0028在升级期间使以前的应用无效307可包括将程序状态指示符复位。如上文提到的,这些程序状态指示符可用于指示已经验证已完成下载并且已经证实新应用的功能性。在验证已完成下载后,例如可在有效代码位置VALID_CODE_LOC中设置新应用程序的地址。在证实新应用程序的功能性后,可在代码运行有效位置CODE_RUNVALI。

28、D_LOC中设置旗标。使以前的应用无效307然后可包括将有效代码位置复位例如,将位置VALID_CODE_LOC复位到0XFFFFFFFF,将代码运行有效位置例如,CODE_RUNVALID_LOC复位到无效应用旗标,并且将控制器复位。可响应于外部命令即来自位于例如装置210的装置远处的用户的用户命令使现有应用无效和/或将控制器复位。在光学通信系统中,例如外部命令可通过相对低比特率的遥测通道接收。0029下载309新应用可包括接收从例如终端110、120、150、160传送到装置210的新应说明书CN102356379ACN102356389A5/7页8用程序。为速度考虑,可在下载操作期间关闭。

29、来自装置210的有效载荷/消息确认。该接收的应用程序可包括多个记录。每个记录可包括关联的错误校验参数,例如校验和。另外或备选地,多个记录即,整个应用可包括关联的错误校验参数。非易失性可编程存储器240然后可用接收的应用程序程序化例如通过将应用程序烧入闪存。在已经下载新应用程序后,然后可恢复打开有效载荷/消息确认。0030在已经下载程序后,验证311下载的新应用可包括接收用户命令来验证整个应用的校验和。该用户命令可包括传送的应用程序的起始地址和结束地址以及传送的应用程序的传送的校验和。例如,该传送的校验和可包括许多例如,16个对应于传送的应用程序的字节的和的最低有效位。然后可基于程序化的非易失性。

30、存储器240的内容在起始地址和结束地址之间包含起始地址和结束地址来计算程序化的校验和。然后可比较该传送和程序化的校验和。如果该比较的校验和相符,起始地址然后可存储在存储器250的有效代码位置即,VALID_CODE_LOC。然后可响应于用户命令将控制器复位。0031在验证下载的程序后,证实313新应用程序的功能性可包括在一段时间内确定新应用程序是否能够执行功能。根据一个示例,应用程序可尝试接收、处理和响应于用户请求来在由看门狗计时器255强制的一段时间例如,2分钟窗口期间验证应用程序的版本号。如果应用程序未能在该段时间内执行该功能例如,没有接收命令,没有看见正确的版本号,或由于任何原因挂起,认。

31、为证实是不成功的并且控制器复位。如果应用程序在该段时间内执行该功能例如,在该2分钟窗口内确认正确的版本号,在代码运行有效位置即,CODE_RUNVALID_LOC中设置指示已经证实功能性的旗标。0032现在转向图3C,示范性流程图315更详细地图示从控制器复位和/或装置加电开始的NEA和应用程序之间的程序流程。如上文论述的,NEA可配置成管理下载新应用程序、程序化非易失性可编程存储器、验证该下载的新应用和/或证实该新应用程序。NEA可进一步配置成提供引导加载器功能、链路器功能和/或默认应用功能。0033当程序流程开始317时,NEA可启动319。例如,来自用户的复位命令可引起NEA启动319并。

32、且开始运行。在另一个示例中,装置加电可引起NEA启动319。然后可确定321是否设置VALID_CODE_LOC。如果没有设置VALID_CODE_LOC,这指示没有应用程序存在,然后NEA可运行323来管理新应用程序下载操作和/或提供默认装置功能性通过执行装置命令。在尝试的下载操作后,如果已经接收325完成代码验证例如,通过验证校验和,VALID_CODE_LOC可设置327到下载的新应用程序的起始地址。如果还没有接收到完成代码验证例如,如果下载的应用被破坏并且校验和不匹配,流程可返回到NEA运行323来尝试另一个下载和/或来执行装置命令。在设置327VALID_CODE_LOC后,NEA可。

33、继续运行323直到接收329复位命令为止。如果接收到复位命令,可将CODE_RETRIES_LOC复位331到零,并且程序流程可返回到NEA启动319。0034如果确定设置了VALID_CODE_LOC例如设置到应用程序的起始地址,然后可确定333是否设置CODE_RUNVALID_LOC。如果设置了CODE_RUNVALID_LOC,应用程序可运行341并且执行装置命令。也就是说,设置VALID_CODE_LOC和设置CODE_RUNVALID_LOC指示已经成功下载新应用程序,并且已经确认它的功能性,即升级已经成功。0035如果没有设置CODE_RUNVALID_LOC,可使CODE_RE。

34、TRIES_LOC增量335。如果确定337CODE_RETRIES_LOC超过重试数例如,3,那么可将VALID_CODE_LOC复位339例如,说明书CN102356379ACN102356389A6/7页9到0XFFFFFFFF来指示没有应用程序存在并且通过运行323NEA发起另一个下载。也就是说,如果CODE_RETRIES_LOC指示在证实功能性方面的多个尝试已经失败,应用程序可能不可操作并且可要求另一个下载。0036如果CODE_RETRIES_LOC小于重试数例如,3,那么可运行341应用程序来尝试执行功能并且证实功能性。如果当应用运行341时,应用程序成功地执行功能例如,版本请。

35、求完成,可设置CODE_RUNVALID_LOC来指示证实了功能性。如果设置343CODE_RUNVALID_LOC,应用程序可继续运行341并且执行装置命令。如果没有设置343CODE_RUNVALID_LOC并且计时器没有超时345,应用程序将继续运行341并且尝试证实。如果没有设置343CODE_RUNVALID_LOC并且计时器超时345,证实尝试失败并且程序流程可返回到NEA启动319并且可重新开始证实序列。0037转向图4,状态转变图400进一步图示与本公开一致的远程升级应用程序的系统和方法。最初,即就在应用程序升级操作之前,应用可处于等待命令状态410。当接收到无效命令例如,从终。

36、端时,可将VALID_CODE_LOC复位,可将CODE_RUNVALID_LOC复位,可将控制器复位并且状态可转变到NEA启动状态415。如果没有设置VALID_CODE_LOC,状态可转变到NEA等待命令状态420。如果接收到固件下载命令,状态可转变到NEA烧代码状态425,其中如果下载完成并且被验证可设置VALID_CODE_LOC。如果复位发生,状态然后可转变到NEA启动状态415。如果设置了VALID_CODE_LOC,没有设置CODE_RUNVALID_LOC并且CODE_RETRIES_LOC小于重试数例如,三,可使CODE_RETRIES_LOC增量并且状态可转变到应用等待证实。

37、状态430。如果接收到复位命令和/或没有接收到证实命令和/或在一段时间例如,两分钟后证实没有成功,状态可转变到NEA启动415。如果设置了VALID_CODE_LOC,没有设置CODE_RUNVALID_LOC并且CODE_RETRIES_LOC大于或等于该重试数,状态可转变到使VALID_CODE_LOC复位435。状态然后可转变到NEA等待命令420。如果在NEA启动状态415,设置了VALID_CODE_LOC并且设置了CODE_RUNVALID_LOC,状态可转变到应用等待命令410。0038因此,已经描述可向例如海下光纤装置等难以物理接近的远程装置提供高可靠性软件和/或固件升级的系统。

38、和方法。可提供NEA,其配置成管理下载,提供引导加载器和/或链接器功能,并且如果升级不成功提供默认装置应用功能。可靠性还可通过多个控制器增强,该多个控制器配置成各自下载升级,验证下载成功完成,并且证实下载的升级是起作用的,即升级是成功的。0039根据本公开的一个方面,提供有远程升级远程装置的方法,其包括在该远程装置运行不可擦除应用NEA,其中该NEA是不可远程擦除的;在该远程装置中的非易失性可编程存储器中升级应用程序;以及如果升级该应用程序成功则使用该远程装置中的应用程序执行装置命令,并且如果升级该应用程序不成功则使用所述远程装置中的NEA执行装置命令。0040根据本公开的另一个方面,提供有用。

39、于远程升级远程装置的系统。该系统包括第一存储器,其包括存储在其中的不可擦除应用NEA使得该NEA是不可远程擦除的。该NEA配置成响应于远程命令管理该远程装置中的应用程序的升级,确定该远程装置中的该应用程序是否是有效的,并且如果该应用程序不是有效的则提供默认应用功能。该系统还包括第二存储器,其配置成在其中存储该应用程序,其中该第二存储器是非易失性和可编程的。说明书CN102356379ACN102356389A7/7页10该系统进一步包括耦合于该第一存储器和该第二存储器的处理器,其中该处理器配置成执行该NEA并且配置成如果该应用程序是有效的则执行该应用程序。0041根据本公开的再另一个方面,提供。

40、有通信系统,其包括位于陆地上并且配置成在干线路径上提供信号的干线终端;耦合于该干线路径的远程装置,其中该远程装置位于远程环境中并且配置成被远程地升级。该远程装置包括配置成控制该远程装置的功能的控制器。该控制器包括第一存储器,其包括存储在其中的不可擦除应用NEA使得该NEA是不可远程擦除的。该NEA配置成响应于远程命令管理该远程装置中的应用程序的升级,确定该远程装置中的该应用程序是否是有效的,并且如果该应用程序不是有效的则提供默认应用功能。该控制器还包括第二存储器,其配置成在其中存储该应用程序,其中该第二存储器是非易失性和可编程的。该控制器进一步包括耦合于该第一存储器和该第二存储器的处理器,其中。

41、该处理器配置成执行该NEA并且配置成如果该应用程序是有效的则执行该应用程序。0042然而,本文已经描述的实施例只是利用本发明的若干实施例中的一些,并且在这里通过说明而非限制的方式阐述。可做出对于本领域内技术人员将是显而易见的许多其他实施例而不实质偏离如在附上的权利要求中限定的本发明的精神和范围。说明书CN102356379ACN102356389A1/6页11图1说明书附图CN102356379ACN102356389A2/6页12图2说明书附图CN102356379ACN102356389A3/6页13图3A说明书附图CN102356379ACN102356389A4/6页14图3B说明书附图CN102356379ACN102356389A5/6页15图3C说明书附图CN102356379ACN102356389A6/6页16图4说明书附图CN102356379A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1