一种光模块固件在线升级的方法及升级系统的制作方法

文档序号:6370247阅读:322来源:国知局
专利名称:一种光模块固件在线升级的方法及升级系统的制作方法
技术领域
本发明涉及光通信领域,特别涉及一种光模块固件在线升级的方法,包括ΕΡ0Ν、 GPON光模块的固件升级方法。
背景技术
光模块ffioWe」由光电子器件、功能电路和光接口等组成,简单的说,光模块的作用就是光电转换,发送端把电信号转换成光信号,通过光纤传送后,接收端再把光信号转换成电信号。
固件(Firmware)就是写入EROM或EPROM (可编程只读存储器)中的程序,通俗的理解就是“固化的软件”。一般可认为固件就是BIOS的软件,但又与普通软件完全不同, 它是固化在集成电路内部的程序代码,负责控制和协调集成电路的功能。固件(firmware) 一般存储于设备中的电可擦除只读存储器EEPROM(ElectricalIy Erasable Programmable ROM)或FLASH芯片中,一般可由用户通过特定的刷新程序进行升级的程序。一般来说,担任着一个数码产品最基础、最底层工作的软件才可以称之为固件,比如计算机主板上的基本输入/输出系统BIOS (Basic Input/output System),在以前其实更多的专业人士叫它固件。通常这些硬件内所保存的程序是无法被用户直接读出或修改的。在以前,一般情况下是没有必要对固件进行升级操作的,即使在固件内发现了严重的Bug也必须由专业人员带着写好程序的芯片把原来机器上的更换下来。早期固件芯片一般采用了 ROM设计,它的 Firmware代码是在生产过程中固化的,用任何手段都无法修改。随着技术的不断发展,修改固件以适应不断更新的硬件环境成了用户们的迫切要求,所以,可重复写入的可编程可擦除只读存储器 EPROM (Erasable Programmable ROM), EEPROM 和 flash 出现了。这些芯片是可以重复刷写的,让固件得以修改和升级。光模块固件就是固化在光模块内的系统软件,主要包括引导区程序(Bootloader) 及应用代码(Application Code),光模块通过存储在flash或者EPROM内的程序实现模块本身的初始化和其它控制功能。对固件进行升级只能升级Application Code,而引导部分代码是始终不允许改变的。在FTTX日益普及的今天,对光模块的需求量也呈现高速增长,由于性能和功能等原因,光模块的固件免不了需要在线升级。现在的光模块应用中,固件的升级有如下方法
利用IAP功能(IAP是在应用升级的缩写In Application Programming)通过将MCU内部FLASH分为引导区(Bootloader)及工作区(Application Code),烧录的时候,通过烧录器将 Bootloader 烧录到 FLASH,然后通过 Bootloader 将 Application Code 写入到 FLASH。 当MCU正常启动的时候也需要先启动Bootloader,如果在Bootloader运行期间内检测到升级命令,则开始进入升级模式升级Application C ode ;如果在该段时间内未收到升级命令则进入正常工作模式。此方法虽然解决了固件的在线升级,但存在如下缺陷A :只能对Application Code进行在线升级,不能对Bootloader部分进行在线升级, Bootloader部分需要先烧录,然后通过Bootloader来写Application Code,复杂了程序的出厂写入环节由原有的只需要烧录器通过JTAC 口烧录,增加了通讯口通过Bootloader写 Application Code 环节。B :由于MCU初始先运行Bootloader部分,则增加了 MCU的启动时间,对于某些对系统启动时间有要求的设计不适用。

发明内容
为解决目光端机中,光模块固件升级所带来的不便,本发明提供一种光模块固件在线升级的方法。本发明为了完成其技术目的所采用的技术方案是一种光模块固件在线升级的方法,系统通过与光模块进行通信完成光模块固件在线升级,将光模块固件分成升级引导程序和系统软件两部分,在进行光模块固件升级时包括以下步骤
步骤A、系统向正在运行的光模块发送在线升级命令的步骤;
步骤B、光模块进行自动复位步骤,在复位后运行升级引导程序,进入固件升级模式的步骤;
步骤C、系统将待升级的固件通过通讯接口以页为单位写入到光模块的步骤;
步骤D、光模块内升级引导程序接收到数据后,按页为单位连续更改存储的固件系统软件部分的数据,对于不满一页的数据用0x00补齐;待整个待升级固件部分写满后,完成固件升级;
步骤E、系统向完成固件升级的光模块发送升级结束命令,光模块复位,复位后运行升级后的固件。进一步的,上述的光模块固件在线升级的方法中在步骤B中进入固件升级模式的步骤后还包括以下步骤
BI、系统通过通讯接口发送读取当前光模块状态命令,光模块反馈当前光模块状态;
B2、系统通过通讯接口将当前光模块内部固件中系统软件整体读出,以512字节为一页连续存储形成BIN文件。进一步的,上述的光模块固件在线升级的方法中所述的系统软件包括包括引导区程序及应用代码。进一步的,上述的光模块固件在线升级的方法中所述的步骤A和步骤E中,系统向光模块发送升级命令和升级结束命令是按如下方式实现的,在光模块中,设置一个由系统通过通信方式赋值的变量,光模块的MCU获得该变量改变时进行复位,同时,按该变量的指引,引导升级引导程序或者系统软件工作程序。本发明通过在固件中设置升级引导程序,通过在线控制光模块复位时选择固件升级还是正常使用,使得系统可以通过通信接口对光模块固件中所有的系统程序进行升级。下面通过结合具体实施例和附图对本发明进行进一步的说明。


附图I是本发明系统升级的流程图。
附图2是本发明的升级引导程序流程图。
具体实施例方式如图I所示,本实施例是系统通过通信接口控制光模块进行在线升级的方法,该方法中将光模块MCU内部FLASH分为正常的程序运行部分APROM以及升级程序部分LDR0M, 其中正常的程序运行部分APROM也称系统程序部分,包括系统引导区程序Bootloader及工作区代码Application Code,我们平常对光模块升级,主要就是用新的Application Code 代替现有的Application Code。升级程序部分LDROM则是为了进行在线升级而设定的程序代码,该部分程序代码为引导区程序Bootloader,它的流程图如图2所示。在出厂时,APROM和LDROM这两部分程序可以通过烧录器一次写入。同时设置变量ISPC0N,该变量存储在FLASH中,每次MCU启动都会先读取ISPCON值,根据ISPCON值来选择从APROM启动还是LDROM启动。正常启动光模块运行APROM内程序进行正常光模块功能。当需要光模块升级时,通过通讯接口发送启动命令更改ISPCON内的值为LDROM启动, 复位MCU切换到LDROM运行。当程序在LDROM中运行时,可以通过通讯接口对APROM的程序进行读取和更改,通过对APROM的更改达到更新光模块固件的功能。当完成APROM更新后,通过通讯命令修改ISPCON值为APROM启动,复位MCU后从APROM启动完成了此次固件更新。
本实施例固件升级方法具体步骤如下
第I步将FLASH分为APROM和LDROM两部分,其中APROM为正常程序存储部分,LDROM 为升级程序存储部分。APROM内的程序完成光模块的基本功能,LDROM内程序完成对APROM 的读取擦除更改的操作。这两部分程序可以通过烧录器一次写入,减少了出厂写程序的环节。程序正常启动由APROM启动运行,减少了程序启动时间。第2步当系统需要对光模块进行固件升级时,通过通讯接口向光模块发送进入升级模式命令,光模块收到后更改ISPCON内的值,修改为LDROM启动,并复位光模块,当光模块再次启动时,程序进入LDROM运行,进入固件升级模式。第3步系统通过通讯接口发送读取当前光模块状态命令,光模块反馈当前光模块状态,包括当前APROM大小、RAM大小、MCU型号、固件版本号等信息。第4步系统通过通讯接口将当前光模块内部APROM整体读出,以512字节为一页连续存储形成BIN文件,保存到系统端方便后续的程序回退。第5步系统将待升级的固件(.BIN格式文件),通过通讯接口以页为单位写入到光模块,光模块内LDROM程序接收到数据后,按页为单位连续更改APROM内的数据,对于不满一页的数据用0x00补齐。待整个APROM写满后当次APROM升级完成。第6步当APROM内程序更新完成后,系统通过通讯口发送命令修改ISPCON内的值,修改为APROM启动,并复位光模块。当复位后光模块会切换到APROM进行工作,此时已经按更新后的固件进行程序运行,完成了固件升级。采用本方法进行固件在线升级,由于整个程序可以出厂时一次烧录完成,简化了出厂写程序操作,同时由于正常启动就已经工作在工作区,缩短了程序的启动时间。
权利要求
1.一种光模块固件在线升级的方法,系统通过与光模块进行通信完成光模块固件在线升级,其特征在于,将光模块固件分成升级引导程序和系统软件两部分,在进行光模块固件升级时包括以下步骤步骤A、系统向正在运行的光模块发送在线升级命令的步骤;步骤B、光模块进行自动复位步骤,在复位后运行升级引导程序,进入固件升级模式的步骤;步骤C、系统将待升级的固件通过通讯接口以页为单位写入到光模块的步骤;步骤D、光模块内升级引导程序接收到数据后,按页为单位连续更改存储的固件系统软件部分的数据,对于不满一页的数据用OxOO补齐;待整个待升级固件部分写满后,完成固件升级;步骤E、系统向完成固件升级的光模块发送升级结束命令,光模块复位,复位后运行升级后的固件。
2.根据权利要求I所述的光模块固件在线升级的方法,其特征在于在步骤B中进入固件升级模式的步骤后还包括以下步骤BI、系统通过通讯接口发送读取当前光模块状态命令,光模块反馈当前光模块状态;B2、系统通过通讯接口将当前光模块内部固件中系统软件整体读出,以512字节为一页连续存储形成BIN文件。
3.根据权利要求I所述的光模块固件在线升级的方法,其特征在于所述的系统软件包括包括引导区程序及应用代码程序。
4.根据权利要求I至3中任一所述的光模块固件在线升级的方法,其特征在于所述的步骤A和步骤E中,系统向光模块发送升级命令和升级结束命令是按如下方式实现的,在光模块中,设置一个由系统通过通信方式赋值的变量,光模块的MCU获得该变量改变时进行复位,同时,按该变量的指引,引导升级引导程序或者系统软件。
全文摘要
本发明提供了一种光模块固件在线升级的方法,系统通过与光模块进行通信完成光模块固件在线升级,将光模块固件分成升级引导程序和系统软件两部分,在进行光模块固件升级时,光模块的MCU运行升级引导程序,升级引导程序通过通信方式从系统处获得新的系统软件,将新的系统软件更换原来的系统软件。采用本方法进行固件在线升级,由于整个程序可以出厂时一次烧录完成,简化了出厂写程序操作,同时由于正常启动就已经工作在工作区,缩短了程序的启动时间。
文档编号G06F9/445GK102722384SQ201210165819
公开日2012年10月10日 申请日期2012年5月25日 优先权日2012年5月25日
发明者李元谋, 李耀威, 王彦伟, 王志波, 许建锐, 邓永坚, 郭小东 申请人:深圳市共进电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1