一种基于Bootloader的XFP光模块升级方法

文档序号:6638512阅读:231来源:国知局
一种基于Bootloader的XFP光模块升级方法
【专利摘要】本发明公开了一种基于Bootloader的XFP光模块升级方法,包括以下步骤:在XFP光模块的微控制器的FLASH区域中,开辟出Bootloader存放区域,其中存储有Bootloader启动程序;选择启动Bootloader,对FLASH区域中的程序代码区域内的数据执行升级操作。用户可以根据目标交换机、路由器的不同,通过光模块总线接口进行软件升级,也可以通过网络进行远程控制升级,使其达到兼容的目的,而不必返厂使用编程器烧录程序,不会造成有效数据丢失或调测试参数丢失,是解决升级光模块微控制器程序的有效解决方案。
【专利说明】-种基于Bootloader的XFP光模块升级方法

【技术领域】
[0001] 本发明涉及通讯【技术领域】,尤其涉及一种基于Bootloader的XFP光模块升级方 法。

【背景技术】
[0002] 光模块是一种提供光电一电光转换能力的集成化通讯配件,其内部结构框图如图 1所示。其中,微控制器主要功能是提供与主机端的通讯总线硬件接口和警告、告警硬件接 口。目前市场上主流光模块均包含可编程的微控制器。XFP光模块,是10G速率的市场主流 光模块,常见于万兆级网络通讯。
[0003] 光模块作为交换机、路由器的重要组件,广泛应用于网络通讯硬件中。交换机和 路由器的生产厂商数量众多,知名厂商包括:思科、华为、中兴、阿尔卡特、惠普、TP-LINK、 D-LINK等等。虽然,IEEE和ITU等国际组织提出了标准的通讯协议,设备厂商也联合制定 了 SFF8472、INF8077I等标准协议,但各主流设备商之间,也存在诸多互不兼容的自定义标 准,这导致了一只符合协议标准的光模块,无法同时取得主流设备商的交换机、路由器等设 备的兼容性。光模块生产商为了让光模块获得某设备的兼容性,往往单独开发符合该设备 要求的微控制器程序,且这一阶段是在光模块出厂前完成。
[0004] Bootloader是嵌入式系统在加电后执行的第一段代码,在它完成CPU和相关硬件 的初始化之后,再将操作系统映像或固化的嵌入式应用程序装在到内存中然后跳转到操作 系统所在的空间,启动操作系统运行。在嵌入式操作系统中,BootLoader是在操作系统内 核运行之前运行,可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带 到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。在嵌入式系统中,通常 并没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此 整个系统的加载启动任务就完全由BootLoader来完成。
[0005] 目前,Bootloader适用于专用的嵌入式环境,例如其广泛应用于GNU/Linux系统。 一个嵌入式Linux系统从软件的角度看通常可以分为四个层次:
[0006] 1、引导加载程序。包括固化在固件(firmware)中的boot代码(可选),和 BootLoader两大部分。
[0007] 2、Linux内核。特定于嵌入式板子的定制内核以及内核的启动参数。
[0008] 3、文件系统。包括根文件系统和建立于Flash内存设备之上文件系统。通常用 ramdisk 来作为 rootfs〇
[0009] 4、用户应用程序。特定于用户的应用程序。有时在用户应用程序和内核层之间可 能还会包括一个嵌入式图形用户界面。常用的嵌入式⑶I有:MicroWindows和Mini⑶I等。
[0010] 但是,Bootloader目前尚只在一些大型软件项目或系统中使用,比如个人计算机 (PC),手机操作系统,智能交换机操作系统,电视机机顶盒操作系统等;在一些小型软件系 统或单片微机系统领域,几乎没有使用Bootloader的先例。Bootloader本身对于系统硬件 的依赖性很高,往往特定的硬件需要搭配特定的Bootloader程序。
[0011] 基于Bootloader,用户可以使用给定的软件接口,对现有软件进行升级。厂商也可 以通过网络远程进行软件升级。
[0012] 普通的XFP光模块,在出厂之后,其内部程序不可以直接更改,必须返回工厂,针 对不同的微控制器型号,使用专用的编程器对微控制器进行程序烧录。由于程序烧录会破 坏现有程序和数据,因此相当于再次对该光模块进行了生产,这样的解决方案浪费时间精 力,维护周期长,极其繁琐。
[0013] 普通的光模块返厂程序升级流程如图2所示。由于外壳的拆卸,有可能造成产品 性能参数的改变,因此需要再次对光模块性能做测试。这会引入极大的工作量,且因壳件拆 卸,会造成一定比例的物料损坏,也大大增加了程序升级的成本。
[0014] 部分光模块生产厂商,通过电路板的设计,避开了光模块壳件拆卸和编程线缆的 连接问题,但必须搭配其特制的程序升级电路板,也使得客户无法自行或无法在远程协助 下完成程序升级。同时,此类电路的设计,会带来成本的提升,且降低光模块可靠性。


【发明内容】

[0015] 本发明的一个目的是针对现有技术的不足,提供一种基于Bootloader的XFP光模 块升级方法,通过将Bootloader移植于XFP光模块微控制器内,可通过光模块总线接口进 行软件升级,也可通过网络对光模块的微控制器程序进行远程升级。
[0016] 本发明还有一个目的是提供一种将Bootloader移植于XFP光模块微控制器内的 方法,可以广泛应用于各类含有微控制器的光模块。
[0017] 本发明的技术方案为:
[0018] 一种基于Bootloader的XFP光模块升级方法,包括以下步骤:
[0019] 在XFP光模块的微控制器的FLASH区域中,开辟出Bootloader存放区域,其中存 储有Bootloader启动程序;
[0020] 选择启动Bootloader,对FLASH区域中的程序代码区域内的数据执行升级操作。
[0021] 优选的是,所述的基于Bootloader的XFP光模块升级方法中,所述XFP光模块设 置有IIC接口,系统通过远程访问IIC接口来启动Bootloader,执行升级操作。
[0022] 优选的是,所述的基于Bootloader的XFP光模块升级方法中,选择启动 Bootloader,对FLASH区域中的程序代码区域内的数据执行升级操作包括以下步骤:
[0023] 1)在微控制器中写入"BOOT"的ASCII码,启动Bootloader ;
[0024] 2)将新的程序数据写入FLASH区域中的程序代码区域;
[0025] 3)读出写入的新程序数据,与目标程序数据进行比对;
[0026] 4)如果正确,则运行新程序数据,完成升级;如果不正确,则重复步骤2)和3),直 到正确为止。
[0027] 优选的是,所述的基于Bootloader的XFP光模块升级方法中,所述步骤2)中包 括:
[0028] 2. 1)查找待写入新程序数据的FLASH区域中的映射地址;
[0029] 2. 2)将新程序数据中的512字节数据写入微处理器的缓冲区;
[0030] 2. 3)根据查找到的映射地址,擦除对应的FLASH区域中的原始程序;
[0031] 2. 4)将缓冲区内的新程序数据写入根据映射地址对应的FLASH区域中;
[0032] 2. 5)反复执行步骤2. 2)-2. 4)直到将所有新程序数据全部写入对应的FLASH区域 中。
[0033] 优选的是,所述的基于Bootloader的XFP光模块升级方法中,所述步骤3)中包 括:
[0034] 3. 1)查找写入了新程序数据的FLASH区域中的映射地址;
[0035] 3. 2)根据查找到的映射地址,将对应的FLASH区域中的新程序数据读取到缓冲 区;
[0036] 3. 3)在缓冲区中读出新程序数据中的512字节数据,与目标程序数据进行比对, 以校验写入程序的正确性;
[0037] 3. 4)反复执行步骤3. 3),直到完成校验。
[0038] 优选的是,所述的基于Bootloader的XFP光模块升级方法中,所述Bootloader启 动程序占用XFP光模块的IIC从机地址为Α0Η。
[0039] 优选的是,所述的基于Bootloader的XFP光模块升级方法中,所述AOH区域的98、 99、和107字节作为自定义Bootloader的控制字节;使用123、124、125和126字节作为进 入Bootloader模式的密码控制字节;使用高128位的页0xFC、0xFD、0xFE和OxFF四个页地 址作为Bootloader升级的数据缓冲区。
[0040] 优选的是,所述的基于Bootloader的XFP光模块升级方法中,所述123-126字 节写入"BOOT"的ASCII码;98-99字节为FLASH映射地址字节;107字节为Bootloader 控制字节,命令有:'E'擦除微控制器的程序储存区,'W'将缓冲区数据写入微控制器对 应的FLASH区域,'R'读取微控制器对应的FLASH区域数据至缓冲区,'S'开始运行应用 程序;高128位,按页映射缓冲区,OxFC页,映射缓冲区〇 X〇0〇-〇X〇7F字节;ΟχΠ )页,映射 缓冲区0x080-0x0FF字节;OxFE页,映射缓冲区0xl00-0xl7F字节;OxFC页,映射缓冲区 0xl80-0xlFF 字节。
[0041] 本发明具有以下有益效果:本发明通过将Bootloader移植于XFP光模块微控制器 内,用户可以通过光模块总线接口进行软件升级,也可以通过网络进行远程控制升级,可以 根据目标交换机、路由器的不同,来升级光模块内部程序,使其达到兼容的目的,而不必返 厂使用编程器烧录程序,同时,无须借助任何编程线缆,也不用拆卸光模块壳件,光模块升 级技术将保留光模块的现有厂商、用户数据,不会造成有效数据丢失或调测试参数丢失,是 解决升级光模块微控制器程序的有效解决方案。

【专利附图】

【附图说明】:
[0042] 图1为本发明中所述的光模块的内部结构框图;
[0043] 图2为一般的光模块返厂程序升级流程图;
[0044] 图3为本发明所述的XFP光模块硬件连接示意图;
[0045] 图4为INF-8077i定义的AOH寄存器结构图;
[0046] 图5为本发明所述的微控制器C8051F330内部FLASH规划图;
[0047] 图6为本发明所述的微控制器Bootloader程序工作流程图。

【具体实施方式】:
[0048] 下面结合附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文 字能够据以实施。
[0049] -种基于Bootloader的XFP光模块升级方法,包括以下步骤:
[0050] 在XFP光模块的微控制器的FLASH区域中,开辟出Bootloader存放区域,其中存 储有Bootloader启动程序;
[0051] 选择启动Bootloader,对FLASH区域中的程序代码区域内的数据执行升级操作。 光模块是一种提供光电一电光转换能力的集成化通讯配件,所述光模块的内部结构框图如 图1所示。普通的XFP光模块,在出厂之后,其内部程序不可以直接更改,必须返回工厂,针 对不同的微控制器型号,使用专用的编程器对微控制器进行程序烧录,普通的光模块返厂 程序升级流程如图2所示。本发明中,通过将Boot loader启动程序存储到微控制器的FLASH 的一定区域中,客户可以通过光模块总线接口进行软件升级,无须拆卸壳件或使用特殊的 下载线缆;也可以由厂商通过网络进行远程控制升级,这使得光模块出厂后,不必返厂,即 可完成程序的更新,以达到兼容不同类型和要求的交换机的目的。
[0052] 所述的基于Bootloader的XFP光模块升级方法中,所述XFP光模块设置有IIC接 口,系统通过远程访问IIC接口来启动Bootloader,执行升级操作。本发明将Bootloader 移植于XFP光模块微控制器内,使用光模块标准总线接口 IIC,兼容光模块INF-8077i、 XFP-MSA等协议,可以广泛应用于各类含有微控制器的光模块。
[0053] 图3为XFP光模块硬件连接示意图,按照XFP-MSA规范,XFP光模块提供IIC总线 接口与设备通讯。本专利将详细说明基于自定义Bootloader的XFP光模块远程升级技术 的实现方式。XFP光模块提供IIC总线接口,IIC从机地址为Α0Η,按照INF-8077i协议规 定,AOH寄存器结构如图4所示。其中,AOH区域的98、99、107字节为厂商保留区,123、124、 125、126字节为密码入口区,127字节为高128位寄存器映射页选择寄存器,如下表所示:
[0054]

【权利要求】
1. 一种基于Bootloader的XFP光模块升级方法,其特征在于,包括W下步骤: 在XFP光模块的微控制器的FLA甜区域中,开辟出Bootloader存放区域,其中存储有 Bootloader启动程序; 选择启动Bootloader,对FLA甜区域中的程序代码区域内的数据执行升级操作。
2. 如权利要求1所述的基于Bootloader的XFP光模块升级方法,其特征在于, 所述XFP光模块设置有IIC接口,系统通过远程访问IIC接口来启动Bootloader,执行 升级操作。
3. 如权利要求2所述的基于Bootloader的XFP光模块升级方法,其特征在于,选择启 动Bootloader,对FLA甜区域中的程序代码区域内的数据执行升级操作包括W下步骤: 1) 在微控制器中写入"BOOT"的ASCII码,启动Bootloader ; 2) 将新的程序数据写入FLA甜区域中的程序代码区域; 3) 读出写入的新程序数据,与目标程序数据进行比对; 4) 如果正确,则运行新程序数据,完成升级;如果不正确,则重复步骤2)和3),直到正 确为止。
4. 如权利要求3所述的基于Bootloader的XFP光模块升级方法,其特征在于, 所述步骤2)中包括: 2. 1)查找待写入新程序数据的FLA甜区域中的映射地址; 2. 2)将新程序数据中的512字节数据写入微处理器的缓冲区; 2. 3)根据查找到的映射地址,擦除对应的FLA甜区域中的原始程序; 2.4)将缓冲区内的新程序数据写入根据映射地址对应的FLA甜区域中; 2. 5)反复执行步骤2. 2)-2. 4)直到将所有新程序数据全部写入对应的FLASH区域中。
5. 如权利要求4所述的基于Bootloader的XFP光模块升级方法,其特征在于, 所述步骤3)中包括: 3. 1)查找写入了新程序数据的FLA甜区域中的映射地址; 3. 2)根据查找到的映射地址,将对应的FLA甜区域中的新程序数据读取到缓冲区; 3. 3)在缓冲区中读出新程序数据中的512字节数据,与目标程序数据进行比对,W校 验写入程序的正确性; 3. 4)反复执行步骤3. 3),直到完成校验。
6. 如权利要求5所述的基于Bootloader的XFP光模块升级方法,其特征在于,所述 Bootloader启动程序占用XFP光模块的IIC从机地址为A0H。
7. 如权利要求6所述的基于Bootloader的XFP光模块升级方法,其特征在于,所述A0H 区域的98、99、和107字节作为自定义Bootloader的控制字节;使用123、124、125和126字 节作为进入Bootloader模式的密码控制字节;使用高128位的页0xFC、0x抑、Ox阳和OxFF 四个页地址作为Bootloader升级的数据缓冲区。
8. 如权利要求7所述的基于Bootloader的XFP光模块升级方法,其特征在于,所述 123-126字节写入"BOOT"的ASCII码;98-99字节为FLA甜映射地址字节;107字节为 Bootloader控制字节,命令有;'E'擦除微控制器的程序储存区,'W'将缓冲区数据写入微 控制器对应的FLA甜区域,'R'读取微控制器对应的FLA甜区域数据至缓冲区,'S'开始运 行应用程序;高128位,按页映射缓冲区,OxFC页,映射缓冲区0x000-0x07F字节;OxFD页, 映射缓冲区0x080-0x0FF字节;OxFE页,映射缓冲区0xl00-0xl7F字节;OxFC页,映射缓冲 区 0xl80-0xlFF 字节。
【文档编号】G06F9/445GK104461638SQ201410767284
【公开日】2015年3月25日 申请日期:2014年12月12日 优先权日:2014年12月12日
【发明者】范巍, 侯羿 申请人:四川华拓光通信股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1