升级光模块固件的方法及装置与流程

文档序号:16207063发布日期:2018-12-08 07:14阅读:669来源:国知局
升级光模块固件的方法及装置与流程

本申请涉及光模块技术领域,具体而言,涉及一种升级光模块固件的方法及装置。

背景技术

光模块(英文:opticalmodule)由光电子器件、功能电路和光接口等组成,光电子器件包括发送端和接收端。光模块的作用是光电转换,发送端把电信号转换成光信号,通过光纤传送后,接收端再把光信号转换成电信号。

光模块还包括有用于处理收发控制、参数诊断等功能的中央处理器(英文:centralprocessingunit,简称:cpu)以及存储数据的存储介质,并在非易失存储介质上固化有用于控制和协调光模块功能的光模块固件(英文:firmware)。因而,光模块相当于一完整的小操作系统。其中,光模块固件固化在可擦只读存储器(英文:eraseablereadonlymemory,简称:erom)或电可擦除只读存储器(英文:electricallyerasableprogrammablereadonlymemory,简称:eeprom)上。在光模块上电后,cpu加载存储介质上的光模块固件并运行加载的固件,从而实现对光模块功能的控制和协调。

光模块固件在使用过程中,需要进行不定时升级以补正其存在的一些缺陷以及进行功能更新。目前,对于c封装可插拔(英文:cform-factorpluggable,简称:cfp)/cfp2/cfp4光模块,光模块通信标准能够支持光模块固件的在线升级。但对于小封装可插拔(英文:smallform-factorpluggables,简称:sfp)/sfp+/四通道小封装可插拔(英文:quadsmallform-factorpluggables,简称:qsfp)qsfp+/qsfp28/cxp光模块等,光模块通信标准目前还不支持在线升级。

因而,对于该类光模块固件升级,需要将该类光模块从通信设备拔离,送至光模块生产厂家,并利用专用设备,结合插入的通信设备信息进行光模块固件升级,在光模块固件升级完成后,再插回通信设备。但该光模块固件升级方法,需要人工参与维护,导致升级所需的时间较长,升级效率低。



技术实现要素:

有鉴于此,本申请实施例提供了一种升级光模块固件的方法及装置,解决了光模块固件升级效率较低的技术问题。

在第一方面,本申请实施例提供一种升级光模块固件的方法,所述方法应用于通信设备,所述方法包括:

当检测到光模块插入时,所述通信设备获取所述光模块固件的第一版本信息;

所述通信设备依据预先存储的第二版本信息以及所述第一版本信息,确定所述光模块固件是否为可升级光模块固件;

若确定所述光模块固件为可升级光模块固件,则所述通信设备获取所述第二版本信息指示的光模块固件升级包;

所述通信设备向所述光模块发送所述光模块固件升级包,用于所述光模块进行所述光模块固件升级。

结合第一方面,在第一种可能的实现方式中,所述通信设备依据预先存储的第二版本信息以及所述第一版本信息,确定所述光模块固件是否为可升级光模块固件,包括:

所述通信设备比较第二版本信息以及所述第一版本信息;

若所述第二版本信息指示的固件版本高于所述第一版本信息指示的固件版本,则所述通信设备确定所述光模块固件为可升级光模块固件;

若所述第二版本信息指示的固件版本不高于所述第一版本信息指示的固件版本,则所述通信设备确定所述光模块固件为非升级光模块固件。

结合第一方面,在第二种可能的实现方式中,所述通信设备获取所述光模块固件的第一版本信息之后,还包括:

所述通信设备获取所述光模块的光模块特征信息以及所述通信设备的通信设备信息;

根据所述通信设备信息、光模块特征信息,从预先存储的光模块固件的第二版本信息中,获取与所述通信设备信息和光模块特征信息相匹配的第二版本信息。

结合第一方面、第一方面的第一种可能的实现方式或第二种可能的实现方式,在第三种可能的实现方式中,所述通信设备向所述光模块发送所述光模块固件升级包,包括:

所述通信设备将与所述光模块预先约定的升级指令写入至光模块中,以用于所述光模块将所述光模块固件升级包写入至所述光模块的固件存储介质,并在所述光模块下次启动时,加载写入所述固件存储介质中的光模块固件升级包。

结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述通信设备获取所述光模块固件的第一版本信息,包括:

所述通信设备从所述光模块的第一预设区域中获取所述第一版本信息,所述第一预设区域为所述光模块中保留寄存器的第一区域;

所述通信设备将与所述光模块预先约定的升级指令写入至光模块中,包括:

所述通信设备将与所述光模块预先约定的升级指令写入至所述光模块的第二预设区域中,所述第二预设区域为所述光模块中保留寄存器的第二区域;

所述通信设备将所述光模块固件升级包写入至光模块中,包括:

所述通信设备通过所述通信设备的集成电路接口,将所述光模块固件升级包写入至所述光模块的第三预设区域中,所述第三预设区域为所述光模块中保留寄存器的第三区域。

在第二方面,本申请实施例提供一种升级光模块固件的方法,所述方法应用于光模块,所述光模块的第一预设区域中已存储光模块固件的第一版本信息,且所述光模块插入至通信设备,所述方法包括:

所述光模块接收所述通信设备发送的光模块固件升级包,所述光模块固件升级包为所述通信设备根据所述第一版本信息,确定所述光模块固件为可升级光模块固件后发送;

依据所述光模块固件升级包,所述光模块进行所述光模块固件升级。

结合第二方面,在第一种可能的实现方式中,所述接收所述通信设备发送的光模块固件升级包之前,还包括:

所述光模块接收所述通信设备发送的升级指令;

根据所述升级指令,所述光模块在所述预留区域中设置升级标志位,所述升级标识位用于使所述通信设备检测到所述升级标识位时,发送所述光模块固件升级包。

结合第二方面,在第二种可能的实现方式中,所述光模块接收所述通信设备发送的升级指令,包括:

所述光模块周期性轮询所述光模块的第二预设区域;

从所述第二预设区域中,所述光模块获取所述通信设备写入的升级指令;

所述光模块接收所述通信设备发送的光模块固件升级包,包括:

从所述光模块的第三预设区域中,所述光模块获取所述通信设备写入的所述光模块固件升级包。

结合第二方面,在第三种可能的实现方式中,所述依据所述光模块固件升级包,所述光模块进行所述光模块固件升级,包括:

所述光模块将所述光模块固件升级包写入所述光模块中固件存储介质;

当所述光模块固件升级包已全部写入所述固件存储介质时,所述光模块设置光模块固件升级标识;

当所述光模块下次启动时,依据所述光模块固件升级标识,加载写入所述固件存储介质中的所述光模块固件升级包。

结合第二方面、第二方面的第一种可能的实现方式至第三种可能的实现方式中的任一种可能的实现方式,在第四种可能的实现方式中,所述预设区域为所述光模块中保留寄存器中的区域;

所述第一版本信息存储在所述保留寄存器的第一区域中;

所述升级指令存储在所述保留寄存器的第二区域中;

所述光模块固件升级包存储在所述保留寄存器的第三区域中。。

在第三方面,本申请实施例提供一种升级光模块固件的装置,所述装置包括:

版本读取模块,用以当检测到光模块插入时,获取所述光模块固件的第一版本信息;

升级状态确定模块,用于依据预先存储的第二版本信息以及所述第一版本信息,确定所述光模块固件是否为可升级光模块固件;

升级指示模块,若确定所述光模块固件为可升级光模块固件,获取所述第二版本信息指示的光模块固件升级包,向所述光模块发送所述光模块固件升级包,用于所述光模块进行所述光模块固件升级。

结合第三方面,在第一种可能的实现方式中,所述升级状态确定模块具体用于:

比较所述第二版本信息以及所述第一版本信息;

若所述第二版本信息指示的固件版本高于所述第一版本信息指示的固件版本,则确定所述光模块固件为可升级光模块固件;

若所述第二版本信息指示的固件版本不高于所述第一版本信息指示的固件版本,则确定所述光模块固件为非升级光模块固件。

结合第三方面,在第二种可能的实现方式中,获取所述光模块固件的第一版本信息之后,还包括:

获取所述光模块的光模块特征信息以及所述通信设备的通信设备信息;

根据所述通信设备信息、光模块特征信息,从预先存储的光模块固件的第二版本信息中,获取与所述通信设备信息和光模块特征信息相匹配的第二版本信息。

结合第三方面、第三方面的第一种可能的实现方式或第二种可能的实现方式,在第三种可能的实现方式中,所述升级指示模块具体用于:

将与所述光模块预先约定的升级指令写入至光模块中;

当检测到所述光模块根据所述升级指令设置的升级标志位时,将所述光模块固件升级包写入至光模块中,以用于所述光模块将所述光模块固件升级包写入至所述光模块的固件存储介质,并在所述光模块下次启动时,加载所述固件存储介质中的光模块固件升级包。

结合第三方面的第三种可能的实现方式,在第四种可能的实现方式中,获取所述光模块固件的第一版本信息,包括:

从所述光模块的第一预设区域中获取所述第一版本信息,所述第一预设区域为所述光模块中保留寄存器的第一区域;

将与所述光模块预先约定的升级指令写入至光模块中,包括:

将与所述光模块预先约定的升级指令写入至所述光模块的第二预设区域中,所述第二预设区域为所述光模块中保留寄存器的第二区域;

将所述光模块固件升级包写入至光模块中,包括:

通过所述通信设备的集成电路接口,将所述光模块固件升级包写入至所述光模块的第三预设区域中,所述第三预设区域为所述光模块中保留寄存器的第三区域。

在第四方面,本申请实施例提供一种升级光模块固件的装置,所述装置的第一预设区域中已存储光模块固件的第一版本信息,且所述装置插入至通信设备,所述装置包括:

升级包获取模块,用于接收所述通信设备发送的光模块固件升级包,所述光模块固件升级包为所述通信设备根据所述第一版本信息,确定所述光模块固件为可升级光模块固件后发送;

升级模块,用于依据所述光模块固件升级包,进行所述光模块固件升级。

结合第四方面,在第一种可能的实现方式中,所述装置还包括:

标志位设置模块,用于接收所述通信设备发送的升级指令;

根据所述升级指令,在所述预留区域中设置升级标志位,所述升级标识位用于使所述通信设备检测到所述升级标识位时,发送所述光模块固件升级包。

结合第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述接收所述通信设备发送的升级指令,包括:

所述光模块周期性轮询所述光模块的第二预设区域;

从所述第二预设区域中,所述光模块获取所述通信设备写入的升级指令;

所述光模块接收所述通信设备发送的光模块固件升级包,包括:

从所述光模块的第三预设区域中,所述光模块获取所述通信设备写入的所述光模块固件升级包。

结合第四方面,在第三种可能的实现方式中,所述升级模块具体用于:

将所述光模块固件升级包写入固件存储介质;

当所述光模块固件升级包已全部写入所述固件存储介质时,设置光模块固件升级标识;

当下次启动时,依据所述光模块固件升级标识,加载写入所述固件存储介质中的所述光模块固件升级包。

结合第四方面、第四方面的第一种可能的实现方式至第三种可能的实现方式中的任一种可能的实现方式,在第四种可能的实现方式中,所述预设区域为所述光模块中保留寄存器中的区域;

所述第一版本信息存储在所述保留寄存器的第一区域中;

所述升级指令存储在所述保留寄存器的第二区域中;

所述光模块固件升级包存储在所述保留寄存器的第三区域中。

在第五方面,本申请实施例提供一种计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。

在第六方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述的方法的步骤。

相对于现有技术而言,本申请具有以下有益效果:

本申请提供的升级光模块固件的方法及装置,当通信设备检测到光模块插入时,通信模块获取光模块固件的第一版本信息。通信模块将第一版本信息与预先存储的第二版本信息进行比较。在确定光模块固件为可升级光模块固件后,获取第二版本信息指示的光模块固件升级包并发送至光模块,以使光模块进行光模块固件。

这样,利用光模块和通信设备之间交互协商升级,无需对光模块结构以及通信设备结构进行改动,更无需拔离光模块并送至光模块生产厂家进行升级。缩短了光模块固件升级所需的时间,能够有效提升光模块固件升级效率。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的升级光模块固件的方法流程示意图;

图2为图1所示步骤102的子步骤流程示意图之一;

图3为图1所示步骤101之后的子步骤流程示意图之一;

图4为图1所示步骤104的子步骤流程示意图之一;

图5为本申请实施例提供的升级光模块固件的方法另一流程示意图;

图6为本申请实施例提供的升级光模块固件的方法再一流程示意图;

图7为本申请实施例提供的升级光模块固件的装置结构示意图;

图8为本申请实施例提供的升级光模块固件的装置另一结构示意图;

图9为本申请实施例提供的计算机设备的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。

实施例一

图1为本申请实施例提供的升级光模块固件的方法流程示意图。所述方法应用于通信设备,如图1所示,该流程包括:

步骤101,当检测到光模块插入时,所述通信设备获取所述光模块固件的第一版本信息;

本申请实施例中,通信设备周期性轮询自身中可与光模块连接的接口,当检测到接口电平改变时,例如,接口电平由“0”跳变至“1”,通信设备确定光模块插入至接口。通信设备对光模块进行扫描,获取光模块固件的第一版本信息。

需要说明的是,在本申请实施例中,光模块在插入通信设备之前,可将自身的固件版本信息写入至寄存器中。通信设备在对光模块进行扫描时,从寄存器中获取光模块固件的第一版本信息。

步骤102,所述通信设备依据预先存储的光模块固件的第二版本信息以及所述第一版本信息,确定所述光模块固件是否为可升级光模块固件;

本申请实施例中,可在先在通信设备中存储多种光模块固件的第二版本信息。

通信设备从多种光模块固件的第二版本信息中,获取到与插入的光模块一致的光模块固件的第二版本信息。

通信设备将获取的第二版本信息与第一版本信息进行比对,以确定所述光模块固件是否为可升级光模块固件。

步骤103,若确定所述光模块固件为可升级光模块固件,则所述通信设备获取所述第二版本信息指示的光模块固件升级包;

本申请实施例中,通信设备在先存储了每个第二版本信息对应的光模块固件升级包。根据步骤102的描述,通信设备得到步骤102中获取的第二版本信息指示的光模块固件升级包。

可以理解的是,通信设备还可生成光模块固件升级包。在一种实施方式中,通信设备在先存储的是每个第二版本信息对应的光模块固件升级的文件。通信设备得到步骤102中第二版本信息指示的光模块固件升级的文件,该文件具体为二进制数据。通信设备将二进制数据按照与光模块约定的压缩格式将二进制数据进行压缩,生成光模块固件升级包。

步骤104、所述通信设备向所述光模块发送所述光模块固件升级包,用于所述光模块进行所述光模块固件升级。

本申请实施例中,通信设备如果确定光模块固件需要升级,即光模块固件为可升级光模块固件。则将预先存储的第二版本信息对应的光模块固件升级包发送至光模块,以用于光模块进行升级处理。

本申请实施例中,当通信设备检测到光模块插入时,通信模块获取光模块固件的第一版本信息。通信模块将第一版本信息与预先存储的第二版本信息进行比较。在确定光模块固件为可升级光模块固件后,获取第二版本信息指示的光模块固件升级包并发送至光模块,以使光模块进行光模块固件。

这样,通过获取光模块的光模块固件的第一版本信息,与预先存储的第二版本信息进行比对,和通信设备之间制定一种自动升级的方案。由于无需从通信设备拔离光模块并送至光模块生产厂家进行升级,大大缩短了光模块固件升级所需的时间,有效提升了光模块固件升级效率,增强了光模块固件升级的实时性。

进一步地,无需对光模块结构以及通信设备结构进行改动,提高了通信设备的可维护性,且没有硬件上额外的成本。

实施例二

图2为图1所示步骤102的子步骤流程示意图之一。如图2所示,该流程包括:

步骤201,所述通信设备比较所述第二版本信息以及所述第一版本信息;

本申请实施例中,通信设备提取出存储的第二版本信息。作为一可选实施例,版本信息以版本号进行标识。本申请实施例中,第二版本信息表征光模块固件可以升级到的最新光模块固件升级包。

步骤202,若所述第二版本信息指示的固件版本高于所述第一版本信息指示的固件版本,则所述通信设备确定所述光模块固件为可升级光模块固件;若所述第二版本信息指示的固件版本不高于所述第一版本信息指示的固件版本,则所述通信设备确定所述光模块固件为非升级光模块固件。

本申请实施例中,若版本号越高,表示该版本号对应的光模块固件升级包越新。例如,若提取的第二版本信息为v1.2.3,获的第一版本信息为v1.1.8,由于v1.2.3高于v1.1.8,确认光模块固件为可升级光模块固件。

实施例三

图3为图1所示步骤101之后的子步骤流程示意图之一。如图3所示,在所述通信设备获取所述光模块固件的第一版本信息之后,该流程包括:

步骤301,所述通信设备获取所述光模块的光模块特征信息以及所述通信设备的通信设备信息;

本申请实施例中,作为一可选实施例,通信设备信息用于表征不同类型或特征的通信设备。光模块特征信息包括如下信息中的一种或任意组合:光模块序列号、光模块类型、光模块标识等。其中,光模块类型可以是sfp、sfp+、sfp28(25g模块)、qsfp、qsfp+、qsfp28、cxp等。

不同类型的光模块,对应的光模块固件版本可能不同。

步骤302,根据所述通信设备信息、光模块特征信息,从预先存储的光模块固件的第二版本信息中,获取与所述通信设备信息和光模块特征信息相匹配的第二版本信息。

本申请实施例中,不同特征信息的光模块,能够支持的光模块固件升级包可能相同,也可能不相同。

因而,作为另一可选实施例,通信设备可以通过查询预先存储的包括通信设备信息、光模块特征信息与第二版本信息的映射关系,得到获取的通信设备信息和光模块特征信息映射的第二版本信息。

其中,远程的光模块固件升级服务器在发布第二版本信息后,获取支持或兼容该发布的第二版本信息的通信设备信息以及光模块特征信息,构建通信设备信息、光模块特征信息、第二版本信息与光模块固件升级包的映射关系,并将构建的映射关系下发至各通信设备。通信设备接收映射关系后,存储该映射关系。

其中,作为一可选实施例,映射关系可以以采用表格方式。表1为本申请实施例的映射关系示意表。

表1

本申请实施例中,依据当前通信设备信息,例如,通信设备版本查询映射关系,得到当前通信设备信息映射的包含光模块特征信息、第二版本信息和光模块固件升级包的第二映射关系。再依据获取的光模块特征信息,查询第二映射关系,得到获取的光模块特征信息映射的第二版本信息。映射关系中,第二版本信息和光模块固件升级包为一一映射。

本申请实施例中,若得到的第二版本信息指示的固件版本高于第一版本信息指示的固件版本,确定所述光模块固件为可升级光模块固件,若得到的第二版本信息指示的固件版本不高于第一版本信息指示的固件版本,确定所述光模块固件为非升级光模块固件。

实施例四

本申请实施例中,作为一可选实施例,所述通信设备获取所述光模块固件的第一版本信息,包括:

所述通信设备从所述光模块的第一预设区域中获取所述第一版本信息,所述第一预设区域为所述光模块中保留寄存器的第一区域;

所述通信设备将与所述光模块预先约定的升级指令写入至光模块中,包括:

所述通信设备将与所述光模块预先约定的升级指令写入至所述光模块的第二预设区域中,所述第二预设区域为所述光模块中保留寄存器的第二区域;

所述通信设备将所述光模块固件升级包写入至光模块中,包括:

所述通信设备通过所述通信设备的集成电路接口,将所述光模块固件升级包写入至所述光模块的第三预设区域中,所述第三预设区域为所述光模块中保留寄存器的第三区域。

可以理解的是,在本申请实施例中,光模块中保留寄存器可以是一个或多个,上述三个区域可以在一个保留寄存器中,也可以在不同的保留寄存器中,本申请实施例并不做限定。

实施例五

图4为图1所示步骤104的子步骤流程示意图之一。如图4所示,该流程包括:

步骤401,所述通信设备将与所述光模块预先约定的升级指令写入至光模块中;

本申请实施例中,通信设备在确定光模块固件需要升级后,与光模块进行交互以确定双方的状态,从而在双方处于运行状态时完成升级。

作为一可选实施例,如实施例四中的描述,通信设备将预先约定的升级指令写入到光模块第二预设区域中,第二预设区域为光模块中保留寄存器的第二区域。

作为一可选实施例,升级指令为预先约定的n字节数据。作为另一可选实施例,通信设备通过内部集成电路(英文:interintegratedcircuit,简称:i2c)接口,将n字节数据写到光模块中的保留寄存器的第二区域。

步骤402,所述通信设备检测所述光模块根据所述升级指令设置的升级标志位;

本申请实施例中,光模块按照预先设置的轮询周期检测保留寄存器的第二区域,若检测到升级指令,则为该升级指令设置升级标志位,以表明光模块已准备好进行光模块固件升级。所述通信设备轮询所述光模块第二预设区域,若所述光模块第二预设区域中的升级指令设置有升级标志位,执行后续步骤。

本申请实施例中,步骤401和步骤402用户通信设备与光模块交互以确认彼此处理能够升级的运行状态。步骤401和步骤402为可选步骤。实际应用中,通信设备向所述光模块发送所述光模块固件升级包可以直接执行步骤403。

步骤403,当所述通信设备检测到所述光模块根据所述升级指令设置的升级标志位时,所述通信设备将所述光模块固件升级包写入至光模块中,用于所述光模块将所述光模块固件升级包写入至所述光模块的固件存储介质,并在所述光模块下次启动时,加载所述固件存储介质中的光模块固件升级包。

本申请实施例中,如实施例四的描述,通信设备端读取到升级标志位,则通过i2c接口,将第二版本信息指示的光模块固件升级包(例如,二进制数据包)按照约定好的数据包格式写入光模块第三预设区域,第三预设区域为光模块中保留寄存器的第三区域。

本申请实施例中,作为一可选实施例,在光模块第三预设区域写满后,光模块的cpu读取写入到光模块第三预设区域中的数据,写入到内部的固件存储介质上,直至光模块固件升级包全部写入固件存储介质。

本申请实施例中,光模块在将光模块固件升级包全部写入固件存储介质后,在预设位置设置光模块固件升级标识。这样,当光模块在下次启动时,依据设置的光模块固件升级标识,加载写入所述固件存储介质中的光模块固件升级包,从而完成光模块固件的升级。

实施例六

图5为本申请实施例提供的升级光模块固件的方法另一流程示意图。所述方法应用于光模块,所述光模块的第一预设区域中已存储光模块固件的第一版本信息,且所述光模块插入至通信设备,如图5所示,该流程包括:

步骤501,所述光模块接收所述通信设备发送的光模块固件升级包,所述光模块固件升级包为所述通信设备根据所述第一版本信息,确定所述光模块固件为可升级光模块固件后发送;

本申请实施例中,通信设备确定光模块固件为可升级光模块固件后,向光模块下发升级指令,并通过与光模块的交互,将光模块固件升级包发送至光模块。

本申请实施例中,作为一可选实施例,光模块的第一预设区域可以是预先协商好的光模块中的保留寄存器的第一区域,即预留的目前还未被使用的一个或多个寄存器或寄存器中的预留区域,用以标识存储的光模块固件版本的升级不被光模块通信标准支持。

例如,若光模块的通信标准不支持光模块固件的在线升级,光模块将固化在erom或eeprom等非易失存储介质上的光模块固件的第一版本信息写入光模块的第一预设区域。这样,利用保留寄存器的第一区域存储版本信息,可以无需对光模块结构进行改动,即可实现光模块固件的升级。

可以理解的是,通信设备确定光模块固件为可升级光模块固件的具体过程在前述实施例中已详细说明,在此不再复述。

步骤502,依据所述光模块固件升级包,所述光模块进行所述光模块固件升级。

本申请实施例中,光模块接收通信设备发送的光模块固件升级包进行升级。这样,无需对光模块结构进行改动且无需拔离光模块进行专用升级,缩短了光模块固件升级所需的时间,有效提升了光模块固件升级效率,并增强了光模块固件升级的实时性。

本申请实施例中,作为一可选实施例,所述接收所述通信设备发送的光模块固件升级包之前,还包括:

所述光模块接收所述通信设备发送的升级指令;

根据所述升级指令,所述光模块在所述预留区域中设置升级标志位,所述升级标识位用于使所述通信设备检测到所述升级标识位时,发送所述光模块固件升级包。

本申请实施例中,作为一可选实施例,所述光模块接收所述通信设备发送的升级指令,包括:

a11,所述光模块周期性轮询所述光模块的第二预设区域;

本申请实施例中,光模块轮询光模块的第二预设区域,确定是否有升级指令。

a12,从所述第二预设区域中,所述光模块获取所述通信设备写入的升级指令;

本申请实施例中,光模块第二预设区域中写入的升级指令为通信设备确定光模块为可升级光模块固件后,将与通信设备预先约定的升级指令写入到光模块第二预设区域中。

所述光模块接收所述通信设备发送的光模块固件升级包,包括:

从所述光模块的第三预设区域中,所述光模块获取所述通信设备写入的所述光模块固件升级包。

本申请实施例中,作为一可选实施例,通信设备将第二版本信息指示的光模块固件升级包写入光模块第三预设区域,光模块从第三预设区域中获取通信设备写入的光模块固件升级包。

本申请实施例中,作为一可选实施例,所述依据所述光模块固件升级包,所述光模块进行所述光模块固件升级,包括:

所述光模块将所述光模块固件升级包写入所述光模块中固件存储介质;

当所述光模块固件升级包已全部写入所述固件存储介质时,所述光模块设置光模块固件升级标识;

当所述光模块下次启动时,依据所述光模块固件升级标识,加载写入所述固件存储介质中的所述光模块固件升级包。

本申请实施例中,在光模块固件升级包传输完毕后,光模块设置光模块固件升级标识,用以指示光模块在下次重启时,加载执行新的光模块固件升级包。

本申请实施例中,作为一可选实施例,所述预设区域为所述光模块中保留寄存器中的区域;

所述第一版本信息存储在所述保留寄存器的第一区域中;

所述升级指令存储在所述保留寄存器的第二区域中;

所述光模块固件升级包存储在所述保留寄存器的第三区域中。

本申请实施例中,作为一可选实施例,该方法还包括:

所述光模块在成功加载所述光模块固件升级包后,依据所述光模块固件升级包映射的第二版本信息,更新所述光模块固件的第一版本信息;

清除设置的光模块固件升级标识以及所述升级指令。

实施例七

图6为本申请实施例提供的升级光模块固件的方法再一流程示意图。所述方法应用于通信设备和光模块,如图6所示,该流程包括:

步骤601,光模块将光模块固件的第一版本信息写入保留寄存器的第一区域;

本申请实施例中,光模块利用保留寄存器的第一区域,写上光模块固件当前的版本号,例如x.y.z。作为一可选实施例,为保障光模块的安全性,保留寄存器的第一区域对外,例如通信设备来说,为只读寄存器,而对于内部来说,为可读写寄存器。

步骤602,通信设备预先存储该光模块固件的最新版本信息以及最新升级包;

本申请实施例中,光模块固件的最新版本信息以及最新升级包存放在通信设备上,和通信设备信息(例如,通信设备版本)构建有映射关系。例如:通信设备a版本映射光模块固件1.2.3版本,通信设备b版本映射光模块固件1.2.4版本。

步骤603,当光模块插入通信设备时,通信设备从保留寄存器的第一区域读取第一版本信息;

步骤604,通信设备确定最新版本信息指示的固件版本高于第一版本信息指示的固件版本;

本申请实施例中,当光模块插入通信设备时,通信设备读取光模块固件的第一版本信息,和自身配套的最新版本信息做比较,如果两个版本信息指示的固件版本不一致,并且第一版本信息指示的固件版本低于配套的最新版本信息指示的固件版本,则启动光模块固件升级流程。

步骤605,通信设备将约定的升级指令,通过i2c接口写到光模块的保留寄存器的第二区域;

本申请实施例中,升级指令为预先约定的n字节数据。

步骤606,光模块轮询保留寄存器的第二区域,如果确认有升级指令,写入升级标志位;

本申请实施例中,光模块升级标志位,说明已准备好进行升级。

步骤607,通信设备轮询保留寄存器的第二区域,如果确认有升级标志位,通过i2c接口,将最新升级包写入保留寄存器的第三区域;

本申请实施例中,通信设备读取到升级标志位,通过i2c接口,将最新版本映射的最新升级包,作为一可选实施例,最新升级包为二进制数据,按照约定好的数据包格式写入光模块的保留寄存器的第三区域。

步骤608,在保留寄存器的第三区域写满时,光模块将写入保留寄存器的第三区域的数据存储至固件存储介质;

本申请实施例中,保留寄存器的第三区域每写满一次,光模块的cpu将数据存储到内部的固件存储介质上,反复执行存储操作,直到最新升级包存储完毕。

步骤609,光模块确认最新升级包已存储至固件存储介质,在预设位置设置光模块固件升级标识;

本申请实施例中,光模块通过设置光模块固件升级标识,用以标识光模块下次重启后用加载执行最新升级包。

步骤610,光模块在下次启动时,依据设置的光模块固件升级标识加载固件存储介质中的最新升级包;

步骤611,光模块确认加载最新升级包成功后,以最新版本信息更新保留寄存器的第一区域中的第一版本信息。

本申请实施例中,不需要对光模块结构进行改动,也不需要扩展寄存器。利用现有的i2c接口和保留寄存器,没有硬件上额外的成本,在无需人工将光模块取下再发回厂家重写的情况下,实现光模块固件的自动升级。缩短了光模块固件升级所需的时间,有效提升了光模块固件升级效率。

实施例八

图7为本申请实施例提供的升级光模块固件的装置结构示意图。所述装置包括:

版本读取模块701,用以当检测到光模块插入时,获取所述光模块固件的第一版本信息;

本申请实施例中,作为一可选实施例,从光模块第一预设区域获取光模块固件的第一版本信息。光模块第一预设区域可以是预先协商好的光模块中的保留寄存器的第一区域。

升级状态确定模块702,用于依据预先存储的第二版本信息以及所述第一版本信息,确定所述光模块固件是否为可升级光模块固件;

升级指示模块703,若确定所述光模块固件为可升级光模块固件,获取所述第二版本信息指示的光模块固件升级包,向所述光模块发送所述光模块固件升级包,用于所述光模块进行所述光模块固件升级。

本申请实施例中,升级指示模块703如果确定光模块固件需要升级,则将预先存储的第二版本信息对应的光模块固件升级包发送至光模块,以用于光模块进行升级处理。

本申请实施例中,版本读取模块在检测到光模块插入时,从光模块第一预设区域读取光模块固件的第一版本信息,升级状态确定模块将第一版本信息与预先存储的第二版本信息进行比较,升级指示模块在确定需要对光模块固件进行升级后,获取第二版本信息指示的光模块固件升级包,向所述光模块发送所述光模块固件升级包,用于所述光模块进行所述光模块固件升级。这样,在无需对光模块结构以及通信设备结构进行改动的情况下,无需拔离光模块并送至光模块生产厂家进行升级,可以缩短光模块固件升级所需的时间,有效提升光模块固件升级效率。

本申请实施例中,作为一可选实施例,升级状态确定模块702具体用于:

比较所述第二版本信息以及所述第一版本信息;

若所述第二版本信息指示的固件版本高于所述第一版本信息指示的固件版本,则确定所述光模块固件为可升级光模块固件;

若所述第二版本信息指示的固件版本不高于所述第一版本信息指示的固件版本,则确定所述光模块固件为非升级光模块固件。

本申请实施例中,作为另一可选实施例,获取所述光模块固件的第一版本信息之后,还包括:

获取所述光模块的光模块特征信息以及所述通信设备的通信设备信息;

根据所述通信设备信息、光模块特征信息,从预先存储的光模块固件的第二版本信息中,获取与所述通信设备信息和光模块特征信息相匹配的第二版本信息。

本申请实施例中,作为一可选实施例,通信设备信息用于表征不同类型或特征的通信设备。光模块特征信息包括如下信息中的一种或任意组合:光模块序列号、光模块类型、光模块标识等。其中,光模块类型可以是sfp、sfp+、qsfp、qsfp+、qsfp28、cxp等。

本申请实施例中,作为一可选实施例,升级指示模块703具体用于:

将与所述光模块预先约定的升级指令写入至光模块中;

当检测到所述光模块根据所述升级指令设置的升级标志位时,将所述光模块固件升级包写入至光模块中,以用于所述光模块将所述光模块固件升级包写入至所述光模块的固件存储介质,并在所述光模块下次启动时,加载所述固件存储介质中的光模块固件升级包。

本申请实施例中,作为一可选实施例,升级指示模块703通过i2c接口,将n字节数据的升级指令写到光模块中的保留寄存器的第二区域。

本申请实施例中,作为一可选实施例,获取所述光模块固件的第一版本信息,包括:

从所述光模块的第一预设区域中获取所述第一版本信息,所述第一预设区域为所述光模块中保留寄存器的第一区域;

将与所述光模块预先约定的升级指令写入至光模块中,包括:

将与所述光模块预先约定的升级指令写入至所述光模块的第二预设区域中,所述第二预设区域为所述光模块中保留寄存器的第二区域;

将所述光模块固件升级包写入至光模块中,包括:

通过所述通信设备的集成电路接口,将所述光模块固件升级包写入至所述光模块的第三预设区域中,所述第三预设区域为所述光模块中保留寄存器的第三区域。

本申请实施例中,作为一可选实施例,光模块第一预设区域为光模块中的保留寄存器的第一区域,光模块第二预设区域为光模块中的保留寄存器的第二区域,光模块第三预设区域为光模块中的保留寄存器的第三区域,通过内部集成电路接口将所述第二版本信息指示的光模块固件升级包写入光模块第三预设区域。

实施例九

图8为本申请实施例提供的升级光模块固件的装置另一结构示意图。所述装置的第一预设区域中已存储光模块固件的第一版本信息,且所述装置插入至通信设备,所述装置包括:

升级包获取模块801,用于接收所述通信设备发送的光模块固件升级包,所述光模块固件升级包为所述通信设备根据所述第一版本信息,确定所述光模块固件为可升级光模块固件后发送;

本申请实施例中,通信设备确定光模块固件为可升级光模块固件后,向光模块下发升级指令,并通过与光模块的交互,将预先存储的第二版本信息指示的光模块固件升级包,通过i2c接口发送至升级包获取模块801。

升级模块802,用于依据所述光模块固件升级包,进行所述光模块固件升级。

本申请实施例中,作为一可选实施例,该装置还包括:

标志位设置模块803,用于接收所述通信设备发送的升级指令;

根据所述升级指令,在所述预留区域中设置升级标志位,所述升级标识位用于使所述通信设备检测到所述升级标识位时,发送所述光模块固件升级包。

本申请实施例中,标志位设置模块803依据接收的升级指令,在预留区域中设置升级标志位,以表示准备好升级。

本申请实施例中,作为一可选实施例,所述接收所述通信设备发送的升级指令,包括:

所述光模块周期性轮询所述光模块的第二预设区域;

从所述第二预设区域中,所述光模块获取所述通信设备写入的升级指令;

所述光模块接收所述通信设备发送的光模块固件升级包,包括:

从所述光模块的第三预设区域中,所述光模块获取所述通信设备写入的所述光模块固件升级包。

本申请实施例中,作为另一可选实施例,升级模块802具体用于:

将所述光模块固件升级包写入固件存储介质;

当所述光模块固件升级包已全部写入所述固件存储介质时,设置光模块固件升级标识;

当下次启动时,依据所述光模块固件升级标识,加载写入所述固件存储介质中的所述光模块固件升级包。

本申请实施例中,作为一可选实施例,该装置还包括:

更新模块(图中未示出),用于在成功加载所述光模块固件升级包后,依据所述光模块固件升级包指示的第二版本信息,更新所述光模块固件的第一版本信息;清除设置的光模块固件升级标识以及所述光模块第二预设区域中的升级指令。

本申请实施例中,作为一可选实施例,所述预设区域为所述光模块中保留寄存器中的区域;

所述第一版本信息存储在所述保留寄存器的第一区域中;

所述升级指令存储在所述保留寄存器的第二区域中;

所述光模块固件升级包存储在所述保留寄存器的第三区域中。

本申请实施例中,光模块第一预设区域为光模块中的保留寄存器的第一区域,光模块第二预设区域为光模块中的保留寄存器的第二区域,光模块第三预设区域为光模块中的保留寄存器的第三区域,光模块第三预设区域通过内部集成电路接口接收所述第二版本信息指示的光模块固件升级包。

实施例十

图9为本申请实施例提供的计算机设备的结构示意图。如图9所示,本申请一实施例提供的一种计算机设备,用于执行图1至图6中的升级光模块固件的方法。该设备包括存储器1000、处理器2000及存储在该存储器1000上并可在该处理器2000上运行的计算机程序。其中,上述处理器2000执行上述计算机程序时实现上述升级光模块固件的方法的步骤。

具体地,上述存储器1000和处理器2000能够为通用的存储器和处理器,这里不做具体限定。当处理器2000运行存储器2000存储的计算机程序时,能够执行上述升级光模块固件的方法,从而解决现有技术光模块通信标准不支持在线升级导致的光模块固件升级效率较低的问题,本申请当通信设备检测到光模块插入时,通信模块获取光模块固件的第一版本信息。通信模块将第一版本信息与预先存储的第二版本信息进行比较。在确定光模块固件为可升级光模块固件后,获取第二版本信息指示的光模块固件升级包并发送至光模块,以使光模块进行光模块固件。避免了需要拔离光模块并送至光模块生产厂家才能进行升级的情形,缩短了光模块固件升级所需的时间,有效提升了光模块固件升级效率。

对应于图1至图6中的升级光模块固件的方法,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述升级光模块固件的方法的步骤。

具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述升级光模块固件的方法,从而解决现有技术光模块通信标准不支持在线升级导致的光模块固件升级效率较低的问题,本申请当通信设备检测到光模块插入时,通信模块获取光模块固件的第一版本信息。通信模块将第一版本信息与预先存储的第二版本信息进行比较。在确定光模块固件为可升级光模块固件后,获取第二版本信息指示的光模块固件升级包并发送至光模块,以使光模块进行光模块固件。避免了需要拔离光模块并送至光模块生产厂家才能进行升级的情形,缩短了光模块固件升级所需的时间,有效提升了光模块固件升级效率。

在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1