光模块中固件加载的方法以及光模块与流程

文档序号:12463233阅读:934来源:国知局
光模块中固件加载的方法以及光模块与流程

本申请涉及光通信领域,特别是涉及一种光模块中固件加载的方法以及光模块。



背景技术:

光模块是光纤通信系统中重要的器件,能够实现光功率控制、调制发送,信号探测、防伪信息查询等功能。所以,光模块通常包括:处理器110、存储器120、可编程器件130、芯片(Integrated Circuit,IC)140以及外部存储器150。其中,芯片140的数量为多个,不同的芯片140用于实现不同的功能,例如,芯片1用于实现光功率控制、芯片2实现调制发送……。处理器110与存储器120之间能够进行通讯,处理器110与可编程器件130之间能够进行通讯,可编程器件130可以分别与多个芯片140进行通讯,可编程器件130可以分别向多个芯片140下载信息。芯片140与对应的外部存储器150进行通讯。

处理器110用于负责管理光模块中的芯片140,存储器120用于存储处理器110在运行中产生的数据,芯片140用于实现具体的功能,外部存储器150用于存储对应的芯片140的固件(Firmware)。可编程器件130用于通过通讯线实现处理器110与多个芯片140之间的通讯,以及通过下载线实现外部存储器150中固件的刷新。

当光模块开始运行时,芯片140通过通讯线从对应的外部存储器150中读取固件,并根据读取到的固件进行初始化。例如,芯片1通过通讯线从外部存储器1中读取固件,并根据读取到的固件进行初始化。同样地,芯片2通过通讯线从外部存储器2中读取固件,并根据读取到的固件进行初始化。

但是,对于上述结构的光模块,每个芯片140都必须对应设置一个 外部存储器150来存储固件,多个外部存储器占据了大量的空间,不利用光模块实现小型化。



技术实现要素:

本申请提供一种光模块中固件加载的方法以及光模块,能够使得光模块实现小型化。

第一方面,提供了一种光模块,包括:处理器、存储器、可编程器件以及至少一个芯片,所述处理器与所述存储器通讯,所述处理器与所述可编程器件通讯,所述可编程器件与所述芯片通讯,其中,所述存储器存储了所述芯片的固件,所述处理器用于从所述存储器中读取所述芯片的固件,并将所述芯片的固件发送给所述可编程器件,所述可编程器件用于将所述芯片的固件传输给所述芯片,所述芯片用于根据所述芯片的固件进行初始化。

结合第一方面,第一方面的第一种可能的实施方式中,所述存储器还存储了所述处理器的固件以及所述可编程器件的固件,所述处理器用于从所述存储器中读取所述处理器的固件,并根据所述处理器的固件进行初始化,所述处理器还用于从所述存储器中读取所述可编程器件的固件,并发送给所述可编程器件,所述可编程器件用于根据所述可编程器件的固件进行初始化。

结合第一方面或第一种可能的实施方式,第一方面的第二种可能的实施方式中,所述可编程器件用于在所述芯片包括多个类型时,按照所述芯片的类型的读写时序将所述芯片的固件传输给所述芯片,其中,不同类型的芯片的读写时序不同。

结合第一方面或第一种可能或第二种可能的实施方式,第一方面的第三种可能的实施方式中,所述可编程器件为可编程逻辑器件、可编程逻辑控制器以及现场可编程门阵列中的任意一种。

结合第一方面或第一种可能或第二种可能或第三种可能的实施方式,第一方面的第四种可能的实施方式中,所述芯片的数量为多个,所述处理器用于从所述存储器中读取所有芯片的固件,并将所有芯片的固 件发送给所述可编程器件;所述可编程器件用于在芯片复位后,将多个芯片的固件依次发送给对应的复位后的芯片。

第二方面,提供了一种光模块中固件加载的方法,包括:处理器、存储器、可编程器件以及至少一个芯片,所述处理器与所述存储器通讯,所述处理器与所述可编程器件通讯,所述可编程器件与所述芯片通讯,其中,所述存储器存储了所述芯片的固件,所述可编程器件接收所述处理器发送的所述芯片的固件,其中,所述芯片的固件是所述处理器从所述存储器中读取得到的;所述可编程器件向所述芯片发送所述芯片的固件,以供所述芯片根据所述芯片的固件进行初始化。

结合第二方面,第二方面的第一种可能的实施方式中,在所述可编程器件接收所述处理器发送的所述芯片的固件之前还包括:所述可编程器件接收所述处理器发送的所述可编程器件的固件;所述可编程器件根据所述可编程器件的固件进行初始化。

结合第二方面或第一种可能的实施方式,第二方面的第二种可能的实施方式中,所述芯片包括多个类型,所述可编程器件根据所述芯片的类型的读写时序将所述芯片的固件传输给所述芯片,其中,不同类型的芯片的读写时序不同。

结合第二方面或第一种可能或第二种可能的实施方式,第二方面的第三种可能的实施方式中,所述可编程器件为可编程逻辑器件、可编程逻辑控制器以及现场可编程门阵列中的任意一种。

结合第二方面或第一种可能或第二种可能或第三种可能的实施方式,第二方面的第四种可能的实施方式中,所述芯片的数量为多个,所述可编程器件接收所述处理器发送的所述芯片的固件具体为:所述可编程器件接收所述处理器发送的所有芯片的固件;所述可编程器件向所述芯片发送所述芯片的固件,以供所述芯片根据所述芯片的固件进行初始化:在芯片复位后,所述可编程器件依次向复位后的芯片发送对应的固件,以供复位后的芯片根据对应的固件进行初始化。

与现有技术必须为芯片专门设置外部存储器以存储固件相比,本申请的实施例能够使得光模块无需为芯片专门设置外部存储器以存储固 件,而是通过可编程器件提供芯片和存储器通讯的渠道,并利用原来就存在的存储器存储固件,能够有效节约外部存储器的空间,实现光模块的小型化。

附图说明

图1是现有技术提供的一种光模块的结构示意图;

图2是本发明实施例提供的一种光模块的结构示意图;

图3是本发明实施例提供的一种光模块中固件加载的方法。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本申请。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施方式中也可以实现本申请。在其它情况中,省略对众所周知的装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。

参阅图2,图2是本发明实施例提供的一种光模块的结构示意图。光模块包括:处理器210、存储器220、可编程器件230、芯片1以及芯片2。其中,处理器210可与存储器220进行通讯,处理器210可与可编程器件230进行通讯,可编程器件230可分别与芯片1以及芯片2进行通讯,其中,存储器220可以存储了芯片240的固件,还可以存储处理器210的固件以及可编程器件230的固件。为了提高下载的速率,可以设置可编程器件230通过通讯端口将控制数据发送给芯片1以及芯片2,通过下载端口将芯片240的固件发送给芯片240。通讯端口可以是串行外设接口(Serial Peripheral Interface,SPI),I2C(Inter-Integrated Circuit)接口等等。下载端口可以是并行接口,串行外设接口(Serial Peripheral Interface,SPI),I2C(Inter-Integrated Circuit)接口等等。

处理器210可以是一种集成芯片,例如,处理器210可以是通用处理器、数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列 (FPGA)或者其他可编程逻辑器件等等。

存储器220包括高速随机存取存储器(Ramdom Access Memory,RAM),还可以包括非易失性存储器(Nonvolatile RAM,NVRAM),例如闪存(Flash)、只读存储器(Read-Only Memory,ROM)以及磁性随机存储器(magnetic random access memory,MRAM)等等中的任意一种。

可编程器件230可以为可编程逻辑器件(Programmable Logic Device,PLD)、可编程逻辑控制器(Programmable Logic Controller,PLC),以及现场可编程门阵列(Field Programmable Gate Arrays,FPGA)中的任意一种。

芯片240为能实现具体功能的芯片,例如模数转换芯片、编解码芯片等等。当芯片240的数量为多个时,芯片240可以是同一类型的芯片,也可以是不同类型的芯片。

在启动光模块时,处理器210首先从存储器220中读取处理器210的固件,然后,处理器210根据读取到的处理器210的固件进行初始化。然后,处理器210再从存储器220中读取可编程器件230的固件,然后,通过通讯线将读取到的可编程器件230的固件发送给可编程器件230。可编程器件230在接收到读取到的可编程器件230的固件后,根据读取到的可编程器件230的固件进行初始化。

在处理器210以及可编程器件230的初始化都完成后,处理器210从存储器220中获取芯片1的固件,并发送给可编程器件230。可编程器件230按照芯片1的类型的读写时序将芯片1的固件传输给芯片1,芯片1在接收到固件后,根据芯片1的固件进行从初始化。在芯片1完成初始化后,处理器210从存储器220中获取芯片2的固件,并发送给可编程器件230。可编程器件230按照芯片2的类型的读写时序将芯片2的固件传输给芯片2,芯片2在接收到固件后,根据芯片2的固件进行从初始化。可以理解的是,当芯片1和芯片2是不同类型的芯片时,芯片1和芯片2的读写的时序并不相同,例如,当芯片1为并行flash,芯片2为EEPROM时,芯片1是通过并行总线进行固件下载的,而芯 片2是通过串行总线进行固件下载的,两者的读写时序并不相同,所以,可编程器件230分别模拟芯片1和芯片2的读写时序来进行通讯。或者,在处理器210以及可编程器件230的初始化都完成后,处理器210从存储器220中获取芯片1的固件以及芯片2的固件,并发送给可编程器件230。可编程器件230接收到芯片1的固件以及芯片2的固件后,将芯片1的固件以及芯片2的固件存储在RAM中。此后,可编程器件230等待芯片1以及芯片2复位。在芯片1复位后,可编程器件230按照芯片1的读写时序将芯片1的固件传输给芯片1,在芯片2复位后,可编程器件230按照芯片2的读写时序将芯片2的固件传输给芯片2。

在处理器210、可编程器件230、芯片1以及芯片2都通过固件初始化完毕后,芯片1和芯片2在处理器210的管理下进行工作,以完成各种各样的具体功能。

可以理解的是,处理器210和可编程器件230的固件可以不存储在存储器220中,而是存储在其他的设备中。

此外,处理器210可以存储器220可以是独立的器件,也可以集成在一块芯片上。处理器210、存储器220和可编程器件230可以是独立的器件,也可以集成在一块芯片上。

与现有技术必须为芯片专门设置外部存储器以存储固件相比,本申请的实施例能够使得光模块无需为芯片专门设置外部存储器以存储固件,而是通过可编程器件提供芯片和存储器通讯的渠道,并利用原来就存在的存储器存储固件,能够有效节约外部存储器的空间,实现光模块的小型化。

参阅图3,图3是本发明实施例提供的一种光模块中固件加载的方法。本发明提供的光模块中固件加载的方法是基于图2所示的光模块的结构运行的,包括:

310:可编程器件接收处理器发送的可编程器件的固件。

在启动光模块时,处理器首先从存储器中读取处理器的固件,然后,处理器根据读取到的处理器的固件进行初始化。然后,处理器再从存储 器中读取可编程器件的固件,然后,通过通讯线将读取到的可编程器件的固件发送给可编程器件。可编程器件在接收到读取到的可编程器件的固件后,根据读取到的可编程器件的固件进行初始化。320:可编程器件根据可编程器件的固件进行初始化。

可编程器件在接收到读取到的可编程器件的固件后,根据读取到的可编程器件的固件进行初始化。

330:可编程器件接收处理器发送的芯片的固件,其中,芯片的固件是处理器从存储器中读取得到的。

在处理器以及可编程器件的初始化都完成后,处理器从存储器中获取芯片的固件,并发送给可编程器件。处理器可以每次读取一个芯片的固件并发送给可编程器件,或者,处理器一次读取所有的芯片的固件,并一起发送给可编程器件,可编程器件将多个芯片的固件存储在RAM中。

340:可编程器件根据芯片的类型的读写时序将芯片的固件传输给芯片,以供芯片根据芯片的固件进行初始化。

当芯片的数量为多个时,例如,包括芯片1以及芯片2。处理器从存储器中获取芯片1的固件以及芯片2的固件,并发送给可编程器件。可编程器件接收到芯片1的固件以及芯片2的固件后,将芯片1的固件以及芯片2的固件存储在RAM中。此后,可编程器件等待芯片1以及芯片2复位。在芯片1复位后,可编程器件按照芯片1的读写时序将芯片1的固件传输给芯片1,在芯片2复位后,可编程器件按照芯片2的读写时序将芯片2的固件传输给芯片2。

传输时,可编程器件按照芯片的类型的读写时序将芯片的固件传输给芯片。当芯片的数量为多个,且芯片的类型不同时,则芯片的读写的时序并不相同,例如,当芯片1为并行flash,芯片2为EEPROM时,芯片1是通过并行总线进行固件下载的,而芯片2是通过串行总线进行固件下载的,两者的读写时序并不相同,所以,可编程器件分别模拟芯片1和芯片2的读写时序来进行通讯。

可以理解的是,当芯片的数量为多个时,可以按照先后顺序向芯片 发送固件,也可以通过并行的方式,同时向多个芯片发送固件。

与现有技术必须为芯片专门设置外部存储器以存储固件相比,本申请的实施例能够使得光模块无需为芯片专门设置外部存储器以存储固件,而是通过可编程器件提供芯片和存储器通讯的渠道,并利用原来就存在的存储器存储固件,能够有效节约外部存储器的空间,实现光模块的小型化。

在本申请所提供的几个实施方式中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。

另外,在本申请各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

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

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