Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
IN-APPLICATION UPGRADE METHOD FOR OPTICAL MODULE FIRMWARE NOT BREAKING SERVICE
Document Type and Number:
WIPO Patent Application WO/2014/029181
Kind Code:
A1
Abstract:
Disclosed is an in-application upgrade method for optical module firmware not breaking a service. A storage area for internal programs of an optical module is divided into two areas which are respectively used for storing an upgrade program and an application program, and is divided into a special area for backing up an interrupt vector table of a Boot program; an upper computer is in communication with the optical module; the interrupt vector table is switched; and the jump between the Boot program and the application program is achieved through a program pointer. The method specifically comprises the following steps: 1, extracting the contents of firmware; 2, entering a download mode and updating the firmware; 3, erasing original firmware; 4, writing new firmware; and 5, entering an application mode, the upper computer sending a command of exiting from the download mode after data and a code pass verification, exiting from the upgrade program and turning to execute a new application program, the optical module operating normally. The upper computer sends an instruction to control the switching between the application program and the upgrade program of the present invention without resetting an MCU, and therefore the operation interrupt of the optical module will not be generated.

Inventors:
YUAN TAO (CN)
YU XIANGHONG (CN)
CHEN XUGUANG (CN)
Application Number:
PCT/CN2012/086740
Publication Date:
February 27, 2014
Filing Date:
December 17, 2012
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
WUHAN TELECOMM DEVICES CO LTD (CN)
International Classes:
G06F9/445
Foreign References:
CN101271396A2008-09-24
CN102314369A2012-01-11
CN1752933A2006-03-29
CN101950253A2011-01-19
US20050120343A12005-06-02
Attorney, Agent or Firm:
BEIJING HUIZE INTELLECTUAL PROPERTY LAW LLC (CN)
北京汇泽知识产权代理有限公司 (CN)
Download PDF:
Claims:
权利要求书

1、 一种不打断业务的光模块固件在应用升级方法, 其特征在于, 在光 模块内部程序存储区划分了两个区域分别用于存放升级程序和应用程序, 并划分专门区域备份 Boot程序的中断向量表, 上位机与光模块之间通讯, 中断向量表切换, 通过程序指针实现 Boot程序和应用程序之间的跳转, 所 述方法具体包括如下步骤:

步骤 1、 提取固件内容;

步骤 2、 进入下载模式;

步骤 3、 擦除原固件;

步骤 4、 写入新固件;

步骤 5、进入应用模式, 数据和代码验证通过后, 上位机发送退出下载 模式命令, 退出升级程序转而执行新的应用程序, 光模块正常工作。

2、 如权利要求 1所述的不打断业务的光模块固件在应用升级方法, 其 特征在于, 所述步骤 1 具体包括, 系统在正常运行过程中光模块执行的是 应用程序, 当需要更新模块固件时, 上位机发送指令进入下载模式。

3、 如权利要求 1所述的不打断业务的光模块固件在应用升级方法, 其 特征在于, 不管程序处于应用程序或是 Boot程序, 都有相应的状态指示, 上位机读取该指示判断程序所处状态,告知操作人员光模块当前 MCU运行 的是 Boot程序还是应用程序, 上位机并可以发送命令在这两个状态间进行 自由切换, 进入步骤 2后, 如确定需要进行光模块固件升级, MCU将当前 中断向量表切换为 Boot程序中断向量表, 程序指针跳转指向 Boot程序。

4、 如权利要求 3所述的不打断业务的光模块固件在应用升级方法, 其 特征在于,在所有升级步骤中,部分控制光模块的寄存器及 I/O端口的状态 保持不变, 光模块的发射接收基本功能得以维持, 不会对模块的正常工作 造成影响。 5、 如权利要求 1所述的不打断业务的光模块固件在应用升级方法, 其 特征在于, 在所述步骤 3 中, 在下载模式下, 上位机发出擦除命令, 擦除 光模块中的指定区域, 并延时, 直到擦除完毕。

6、 如权利要求 1所述的不打断业务的光模块固件在应用升级方法, 其 特征在于, 在所述步骤 4 中, 上位机发出写入命令, 加载新固件代码并写 入到光模块指定的存储区内, 数据和代码验证通过后进入步骤 5。

7、 如权利要求 1所述的不打断业务的光模块固件在应用升级方法, 其 特征在于, 所述光模块和上位机通过 I2C 总线进行指令传输和固件的更新 下载以及模式切换, 所用的 I2C地址和读写方式和光模块通讯协议地址相 同。

Description:
不打断业务的光模块固件在应用升级方法

技术领域

本发明有关一种在应用升级方法, 特别是指一种能节约人力成本和运 营成本的不打断业务的光模块固件在应用升级 方法。 背景技术

作为目前光通信产业中的重要组成部件 -光模块其产能越来越大, 工艺 及控制技术越来越复杂, 并且随着业务的多样化, 光通信系统商对光模块 制造商提出了更高的要求, 在此背景下光模块的固件在应用升级技术也被 系统厂商格外关注。 例如, 如果现有光模块中没有使用在线升级技术, 系 统厂商要对光模块的性能指标做出调整, 或是光模块固件发现设计缺陷, 通常的做法是光模块厂商召回模块开壳后使用 专业的下载工具重新下载固 件, 这样做不仅需要消耗大量的人力及运输成本, 而且极易造成光模块的 损坏。 目前相对高端的光模块控制部分大多由基于 ARM核的 MCU (Micro Control Unit,微控制单元)实现,国内外知名 MCU厂商有些也提供了 MCU 固件的在应用升级技术(IAP) , 但是这些在应用升级技术目前就光模块的 应用领域来说还存在一些明显不足,其中最大 的问题是 MCU厂商提供的固 件在应用更新方案都无一例外要求在固件升级 前或后 MCU 要进行一次复 位操作, 这样一来就会使得处于正常通讯中的光模块中 断了业务, 从而会 给运营商造成不可预知的风险。 同时, 大多数 MCU厂商提供的在应用升级 技术都使用串口或者网络接口来下载更新固件 , 这对体积较小的光模块来 说也是难以接受的。 发明内容

有鉴于此, 本发明的主要目的在于提供一种实现无缝通讯 的不打断业 务的光模块固件在应用升级方法。

为达到上述目的, 本发明提供一种不打断业务的光模块固件在应 用升 级方法, 在光模块内部程序存储区划分了两个区域分别 用于存放升级程序 和应用程序, 并划分专门区域备份 Boot程序的中断向量表, 上位机与光模 块之间通讯, 中断向量表切换, 通过程序指针实现 Boot程序和应用程序之 间的跳转, 所述方法具体包括如下步骤:

步骤 1、 提取固件内容;

步骤 2、 进入下载模式;

步骤 3、 擦除原固件;

步骤 4、 写入新固件;

步骤 5、进入应用模式, 数据和代码验证通过后, 上位机发送退出下载 模式命令, 退出升级程序转而执行新的应用程序, 光模块正常工作。

所述步骤 1 具体包括, 系统在正常运行过程中光模块执行的是应用程 序, 当需要更新模块固件时, 上位机发送指令进入下载模式。

不管程序处于应用程序或是 Boot程序, 都有相应的状态指示, 上位机 读取该指示判断程序所处状态, 告知操作人员光模块当前 MCU运行的是 Boot程序还是应用程序, 上位机并可以发送命令在这两个状态间进行自 由 切换, 进入步骤 2后, 如确定需要进行光模块固件升级, MCU将当前中断 向量表切换为 Boot程序中断向量表, 程序指针跳转指向 Boot程序。

在所有升级步骤中,部分控制光模块的寄存器 及 I/O端口的状态保持不 变, 光模块的发射接收基本功能得以维持, 不会对模块的正常工作造成影 响。

在所述步骤 3 中, 在下载模式下, 上位机发出擦除命令, 擦除光模块 中的指定区域, 并延时至擦除结束。

在所述步骤 4 中, 上位机发出写入命令, 加载新固件代码并写入到光 模块指定的存储区内, 通过读取写入的数据进行验证, 数据和代码验证通 过后进入步骤 5。

所述光模块和上位机通过 I2C总线进行指令传输和固件的更新下载以 及模式切换, 所用的 I2C地址和读写方式和光模块通讯协议地址相同 。

整个过程中, MCU和上位机通过 I2C总线进行指令传输和固件的更新 下载, 应用程序和升级程序的切换由上位机发送指令 进行控制, 无需复位 MCU, 部分控制光模块的寄存器及 I/O端口的状态保持不变, 光模块的发 射接收基本功能得以维持, 因此不会造成光模块工作中断。 附图说明

图 1为本发明不打断业务的光模块固件在应用升 方法的步骤图; 图 2为本发明中步骤 1、 2的流程图;

图 3为本发明中步骤 3的流程图;

图 4为本发明中步骤 4的流程图;

图 5为本发明中步骤 5的流程图。 具体实施方式

为便于对本发明的方法有进一步的了解, 现结合附图并举较佳实施例 详细说明如下。

本发明利用 MCU存储区的特点,在 MCU内部程序存储区划分了两个 区域分别用于存放升级程序和应用程序, 对于 51核的 MCU而言是通过划 分专门区域备份 Boot程序的中断向量表, 对 ARM核的 MCU而言是通过 重映像操作, 根据需要切换 Boot程序的中断向量表和应用程序的中断向量 表, 通过程序指针实现程序跳转, 利用中断向量表的重定位技术, 通过外 部命令的方式控制 MCU在两个程序中进行自由切换, 而处于 MCU存储区 域高端区域的一些控制光模块的寄存器、 外设接口、 I/O端口等可根据需要 改变或不改变其现有状态, 从而实现设计思想。 通讯系统商或电信运营商 若觉得光模块的固件需要升级, 只需要使用更新软件下载模块生产厂商提 供的新的光模块固件即可。

升级程序的实现方法主要是实现上位机与光模 块的通讯, 中断向量表 的切换, 以及 Boot程序和应用程序之间的跳转。 存储空间的分配按照各个 程序代码大小在编译器中进行设置。

如图 1至图 5所示, 本发明不打断业务的光模块固件在应用升级方 法 包括如下步骤:

步骤 1、 提取固件内容, 系统在正常运行过程中 MCU执行的是应用程 序, 当需要更新模块固件时, 上位机发送指令查询当前的固件版本, 判断 是否需要更新固件;

下载命令格式

S, [A2h], [60h], [4Ch], [4Fh], [41h], [44h], P ……命令 1 S, [A2h], [60h], c, v, m, d, P ……命令 2

[A2h]是 I2C写地址, [60h]是寄存器地址

[4Ch], [4Fh], [41h], [44h]代表命令" LOAD"

c的值由 WTD根据型号指定, 模块比对一致方可下载 V的值由 WTD根据型号指定, 模块比对一致方可下载 m的值由 WTD根据型号指定, 模块比对一致方可下载 d的值由 WTD根据型号指定, 模块比对一致方可下载

S代表 I2C起始符, P代表 I2C停止符

模式读取命令格式

S, [A2h], [7Fh], P, S, [A3h], [read], P

[A2h]是 I2C写地址, [A3h]是 I2C读地址, [7Fh]是寄存器地址 [read]是读出的模式值

[read]结果为 66h代表下载模式, 其它值代表应用模式 S代表 I2C起始符, P代表 I2C停止符

步骤 2、进入下载模式, 当判断需要更新固件后, 通过读取模式进行模 块型号比对, 型号比对通过后, 进入下载模式, 若型号错误, 则退出固件 应用升级; 进入下载模式后, MCU将当前中断向量表切换为 Boot程序中 断向量表, 程序指针跳转指向 Boot程序, 此时, MCU的各控制寄存器和 10寄存器保持原状态, 不会对模块的正常工作造成影响;

步骤 3、 擦除原固件, 在下载模式下, 上位机发出擦除命令, 擦除光模 块中的指定区域, 并延时等待擦除结束;

擦除扇区命令格式

S, [A2h], [E8h], [08h], [77h], P

[A2h]是 I2C写地址, [E8h]是扇区擦除命令

[08h]代表起始地址 512B*8 (lOOOh)

[77h]代表结束地址 512B*119 (EEOOh 所在扇区最大地址为 EFFFh)

S代表 I2C起始符, P代表 I2C停止符

步骤 4、 写入新固件, 上位机发出写入命令, 加载新固件代码并写入到 MCU指定的存储区内, 通过读取指令读取所写数据与写入数据进行比 对, 数据和代码验证通过后进入下一步骤;

写入数据格式

S, [A2h], [9Bh], [CDh], [12h], [34h], ... , [EFh], P

[A2h]是 I2C写地址

[9Bh] [CDh]是写入数据的起始地址, 定位于 81000h+9BCDh = 8ABCDh, 最大地址格式 " [DFh],[FFh] " , 对应可用地址范围是 81000h 〜 8EFFFh [12h], [34h], ···, [EFh]代表被写入的数据, 低地址字节在前, 一次最 多写入 32Bytes

S代表 I2C起始符, P代表 I2C停止符 步骤 5、进入应用模式, 数据和代码验证通过后, 上位机发送退出下载 模式命令, 退出升级程序转而执行新的应用程序, 光模块正常工作。

退出下载模式命令格式

S, [A2h], [EOh], [Olh], [FFh], P

[A2h]是 I2C写地址

[E0h][01h]是退出下载模式、 进入应用程序命令, 对应地址定位于 81000h+E001h = 8F001h

[FFh]或其它非 0数值代表使能应用程序跳转

S代表 I2C起始符, P代表 I2C停止符。

新应用程序的第一个动作是恢复中断向量表, 整个过程中, MCU和上 位机通过 I2C总线进行指令传输和固件的更新下载, 应用程序和升级程序 的切换由上位机发送指令进行控制, 无需复位 MCU, 因此不会造成光模块 工作中断。

上述方法步骤中的 MCU即光模块, 同时附图中的 A、 B、 C、 D、 E、

F分别表示各步骤之间的衔接。

以上所述, 仅为本发明的较佳实施例而已, 并非用于限定本发明的保 护范围。