光收发机设备和方法与流程

文档序号:11532079阅读:268来源:国知局
光收发机设备和方法与流程

本发明涉及通信领域。实施方式涉及通过使用光收发机在电气设备与光学设备之间进行接口连接。

本发明应用的领域的一个示例涉及这样的系统,其中,诸如计算机、交换机或路由器的设备(下文称为“主设备(hostdevice)”)使用电信号来工作但通过一条或更多条光纤使用输入信号和输出信号进行通信。允许这种情况发生的接口设备被称为光收发机。进行通信要按照大量协议。这些协议包括(但不限于)以太网、sonet、sdh、千兆以太网、光纤信道、无源光网络、无线电以及数字电视。



背景技术:

光收发机包括(但不限于)被称为sfp、sfp+以及xfp设备的设备。这样的收发机具有用于与主设备的插槽匹配的电连接、以及用于单模光纤或多模光纤的连接的光纤连接器。光收发机可以适于与特定类型的光纤一起使用,适于至光纤以及来自光纤的不同的光波长,或者适于不同距离的通信。收发机具有存储固件数据的板上存储器,该固件数据具有对收发机的操作的影响,并且可以标识收发机的制造商。该数据可以被存储在收发机上的闪存或eeprom中。主设备的一些制造商力图通过对他们的主单元(hostunit)进行编程以在收发机被插上通电时查询该收发机的标识来限制用户对光收发机的选择。可以对主单元进行编程以使得主单元不与收发机相互作用,除非收发机的标识与该制造商的收发机相对应。

在进行发明之后引起发明人注意的现有技术文档包括美国专利8582974、us2006/093371和us2012/0313744。

美国专利8582974公开了一种可工作的光收发机,该光收发机被配置成使用收发机的光链路来更新可工作的固件。该光收发机包括至少一个处理器和能够接收固件的系统存储器。该光收发机通过光链路接收包含更新固件的光信号。然后光收发机依据该光信号恢复固件。最后,光收发机将恢复后的固件提供至系统存储器,当由至少一个处理器来执行恢复后的固件时,改变收发机的操作。

us2006/093371公开了一种环境,其包括主计算系统(“主机”)、网络、远程计算站点以及具有系统存储器和至少一个处理器的光收发机。主机确定想要购买控制光收发机的行为的微码。购买微码的请求通过网络从主机发送到远程计算站点。远程计算站点通过提供主机信息来响应该请求,通过该主机信息可以使用所购买的微码。然后主机可以使用该微码。最后,主机将该微码提供至光收发机存储器,稍后可以在光收发机存储器由处理器来执行微码。

us2012/0313744涉及一种重新编程存储器的系统和方法,并且具体地,涉及对驻留在可训练的收发机的存储器中的诸如应用代码的软件码进行无线重新编程。对存储器的无线重新编程允许从无法以其它方式直接或有线连接至产品的远程位置更新或更换可训练的收发机中的软件。

存在能够以简单且可控的方式更新/改变光收发机上的固件数据的需求。



技术实现要素:

在第一方面,提供了一种方法,该方法用于通过将固件数据从远程提供方下载到收发机本地的计算设备上,并且通过使用被插入所述收发机的硬件设备将从所下载的固件数据获得的数据以电子的方式写入所述收发机,对收发机设备进行编程。

该方法可以包括通过将证书提供给在所述计算设备上运行的软件来与所述远程提供方进行通信,所述证书包括表示相关的所述光收发机的数据,由此所述远程提供方使所述固件可被所述计算设备下载。

所述通信步骤可以包括通过互联网联系远程提供方的网站。

所述网站可以包括云服务器。

在第二方面,提供了一种电气设备,所述电气设备适于在计算机与光收发机之间进行接口连接,所述光收发机具有存储固件数据的存储器,所述电气设备适于访问所述存储器并且适于将固件数据从所述计算机写入所述存储器。

所述电气设备可以工作为将新的固件数据写入所述存储器。

在第三方面,提供了一种操作光收发机的方法,所述光收发机具有存储固件数据的存储器,所述方法包括提供计算机和用于所述光收发机与所述计算机之间的接口连接的电气设备,所述计算机被编程以执行下列步骤:

经由所述电气设备访问所述光收发机的所述存储器以读取所述存储器的所述固件数据;

存储所述固件数据的副本;

访问新的固件数据;以及

执行写入步骤以将所述新的固件数据写入到所述存储器。访问新的固件数据的步骤可以包括下载新的固件数据。

下载新的固件数据的步骤可以包括向在所述计算机上运行的软件提供信息,所述软件从而联系远程提供方的云服务器以检索期望的新的固件数据。

所述方法还可以包括:在执行所述写入步骤之后,如果出现错误,则从所述存储器重新读取所存储的数据并且重新写入固件数据的所存储的副本。

所述方法可以包括:在执行所述写入步骤之后,检测错误,再次执行所述写入步骤达设置的次数,并且然后如果检测到错误,则重新写入固件数据的所存储的副本。

所述方法可以包括将dll下载至计算机。

所述dll可以允许对电气设备的控制。

所述方法可以包括下载gui并在实施所述方法的其它步骤中使用所述gui。

在第四方面,所述方法包括提供一种已经存储至少一组固件数据并且使用第二方面的设备来将固件数据写到光收发机的诸如膝上型计算机的计算设备。

在第五方面,公开了一种将固件应用到设备的方法,其中,所述设备可经由非usb协议进行访问,所述方法包括识别固件,通过通信链路将所述固件下载到具有usb端口的计算机上,经由可工作为在usb协议与非usb协议之间接口连接的接口设备将所述设备连接至usb端口以及将所述固件写入到所述设备。

所述方法可以包括将dll下载至所述计算机。

所述dll可以允许对所述接口设备的控制。

所述方法可以包括下载gui并在实施所述方法的其它步骤中使用所述gui。

一些实施方式允许工程师/技术人员在现场刷新eeprom,使得可以当场解决使用sfp/sfp+/xfp的技术问题,而无需将物品返回工厂。

在另一方面,提供了用于实现所公开的技术的(硬件)装置。

附图说明

现在将仅通过示例的方式对本发明进行描述。对附图进行参照,其中:

图1是用于修改光收发机的固件数据的布置的示意框图;

图2是示出用于修改光收发机的固件数据的方法的第一部分的流程图;

图3是示出用于修改光收发机的固件数据的方法的第二部分的流程图;

图4是电路板的框图;以及

图5是图1的计算机的另一视图。

具体实施方式

在所提出的处理的示例性而非限制性的实施方式中,用户将首先联系制造商,制造商提供将要被重新刷新的收发机的序列号以及数据将要被刷新的新的固件类型(例如,juniper或cisco、xfp)的细节。在一个实施方式中,该信息被存储在制造商的数据库中,以便将来参考或验证。新的固件由制造商在后台创建并准备上传到服务器中,例如,云服务器(31-参见图1)。在一个实施方式中,手动选择新的固件。在其它实施方式中,提供给制造商的信息被用于自动选择正确的固件。在某些情况下,固件被制造商保存在库中。

初次用户购买或以其它方式获得接口板(12-参见图1)。为了安全性起见,在发货之前将对应的独特的hwid写到所述板的eeprom(15-参见图1)。初次用户下载或以其它方式获得自解压软件至包括usb插槽的计算设备(例如,膝上型计算机)中。该软件将包含gui(包括客户端-服务器)、用于与所述板的桥接模块(13)协作的dll以及桥接模块(13)的驱动程序。

桥接模块起类似从装置(slave)的作用。gui及其相关联的程序决定流程。

参照图1,装置(100)具有诸如膝上型计算机的计算机(11),计算机(11)连接至板(12)以便与光收发机进行接口连接。板(12)具有分别用于xfp收发机和sfp收发机的两个插座(17、19)。所述板上还具有eeprom(15)和连接至计算机(11)的桥接模块(13)。该eeprom存储了板(12)的id。在一个实施方式中,来自计算机(11)的连接是usb协议连接;与收发机的通信经由i2c协议并且桥接模块(13)在usb协议与i2c协议之间转换。在一个实施方式中,桥接模块是由robotelectronics制造的usb-iss桥接模块。

计算机(11)具有经由互联网(21)至云服务器(31)的互联网连接。

参照图2,在(101),用户在计算机(11)中安装控制软件。在(103),用户启动安装在计算机中的gui。在(105),用户使用登录证书进行登录。

在(107),软件进行测试以通过登录到云服务器(31)上来确定证书是否登录被验证。如果云服务器确认证书正确,则操作进行至通信被初始化的(109),并且然后进行至(111),在(111),从eeprom(15)读取板id并且输入表明收发机的信息。在一个实施方式中,用手、用扫描仪等输入收发机的序列号。在另一实施方式中,板(12)被编程为从连接至两个插座(17、19)中的一个的收发机读出该收发机的序列号或表明该收发机的其它数据。序列号被存储在特定的寄存器位置。在一些实施方式中,比较程序密钥(programkey)是否与所连接的收发机的序列号相匹配。在(113),通过参照云服务器(31)中的数据对板id和序列号进行验证,云服务器(31)在(115)记录用户详细信息、ip地址、板id以及设备序列号,并且在(117),服务器请求用户输入预先获得的密钥。该密钥将已经(例如)通过邮件、电子邮件或电话从光收发机的制造商获得。每组固件都与唯一的密钥(本文中有时称为“progkey”)相关联。一旦已经输入(117)密钥,则该密钥就会被发送至检查(119)密钥是否存在于数据库中的服务器(31)。

如果答案为“是”,则在(121),服务器检测该密钥来查看其与收发机序列号是否一致。如果答案为肯定的,则控制进行至块(123),其使得用户能够下载相应的固件以用于本地存储。在一组实施方式中,计算机(11)被编程为永久地存储所下载的新固件数据。在其它优选实施方式中,固件数据仅被临时存储,并且计算机(11)被编程为一旦完成重写过程或者如果任何下面的检查失败,则将固件数据清除出存储器。

如果对例如正确证书、板id的验证、设备序列号、数据库中存在的progkey以及与设备序列号一致progkey的任意检查失败,则控制进行至错误消息处理(125)并且用户从gui退出(127、129)。

现在转到图3,将对改变现在所下载的固件的过程进行描述。该过程承接图2的块(123),其将在用户正在使用gui时被重新调用。

在(301),用户启动对收发机的固件数据的重新编程。在(303),用户使用计算机(11)的软件,所述软件将收发机的序列号和现有的固件以及板id读入到该计算机(11)中。计算机(11)被编程为存储(305)现有固件的副本,并且然后经由板(12)使得所下载的固件数据被应用(307)到收发机。在一组实施方式中,计算机(11)被编程为永久地存储现有的固件数据。在其它优选实施方式中,仅临时存储现有的固件数据,并随后清除出存储器。一旦已经尝试了该过程,则计算机(11)读取回(309)存储在收发机的存储器中的数据,并且在步骤(311),进行检查以查看写入尝试是否成功。如果成功,则控制进行至轮询步骤(321),在该步骤中,计算机等待进一步的指令,并在其后做出退出gui的决定(323)。然后退出gui(325)。

如果首次写入尝试未成功,则块(313)将该过程的重复次数增加一次。步骤(315)进行测试以查看重复次数是否小于或等于预定次数,在重复次数是否小于或等于预定次数的情况下,该过程循环至写入步骤(307)。因此,如果预定次数是5,则该循环连续重复5次或者直到如果在完成第五次重复之前写入被认为成功。如果仍未成功,则步骤(317)使计算机(11)重新写入先前存在的固件的存储的副本,并发出错误消息(319)。

现在将参照图4对板(12)进行更加详细的描述。

桥接模块(13)用于在usb与i2c之间进行接口连接。该桥接模块(13)具有usb侧(502),usb侧(502)带有用于连接到诸如膝上型计算机的计算设备的usb端口以允许信号的输入和输出的连接器(504)。该桥接模块(13)具有i2c(内部集成电路,i2c)侧(506),该i2c侧提供串行时钟输出节点(508)、串行数据输出节点(510)以及第一和第二输入/输出节点(512、514)。

i2c侧的节点(506-14)向两个并联开关(520、530)馈送,在一族实施方式中,所述开关为单刀三掷开关,而在特定的实施方式中,所述开关为ts5a3359开关。

每个开关(520、530)都具有三个输入和三个输出。

第一开关(520)的第一输入(521)被连接至桥接模块的串行时钟输出节点;第二输入(523)被连接至桥接模块(501)的第二输入/输出节点(514),并且第三输入(525)被连接至第一输入/输出节点(512)。

第二开关(530)的第一输入(531)被连接至桥接模块的数据节点(510);第二输入(533)被连接至桥接模块(501)的第二输入/输出节点(514),并且第三输入(535)被连接至第一输入/输出节点(512)。

在该实施方式中,eeprom(电可擦除可编程只读存储器)(15)是两线串行eeprom。

第一开关(520)具有三个输出(526-8),其第一输出(526)连接至sfp连接器(19)的一个模块定义节点(551),其第二输出(527)连接至xfp连接器(17)的串行时钟节点(561),并且其第三输出(528)连接至eeprom(540)的串行时钟节点(541)。

第二开关(530)具有三个输出(536-8),其第一输出(536)连接至sfp连接器(19)的另一模块定义节点(552),其第二输出(537)连接至xfp连接器(17)的串行数据节点(562),并且其第三输出(538)连接至eeprom(540)的串行数据线(543)。

被编程到计算设备中的软件使计算设备能够向桥接模块发送命令,以控制模拟开关(ts5a3359)来创建桥接模块的i2c接口之间的链接并选择eeprom或sfp连接器或xfp连接器中的一个。

总之,在首次安装之后,客户或现场服务工程师(以下称为用户)登录到系统的用户界面中。

检查证书。随后,用户将输入唯一的progkey,该progkey适于针对要与期望的路由器(例如,cisco或juniper)使用的特定收发机生成。该progkey可以与接收机的序列号相关联。从服务器检索对应于该progkey的固件并临时存储在计算设备中。

在用户启动将所下载的固件刷新到收发机中的过程之前,创建现有固件的瞬时副本并存储在现场设备中。系统还将在写入操作之后读取回内部闪存以确认该事务成功。

如果没有收到确认,则系统将重新写入闪存(重复预定次数)。此后,可以提示错误消息或者用户可以回退到先前的工作条件,只要他们未从新的progkey中的程序或密钥退出。

正在下载的新的固件具有调用accessdevice()所需的值,见本文的后面。

在一些实施方式中,由用户下载或以其它方式获得的软件可以包括dll(动态链接库)。在一个实施方式中,存在可以在dll上调用的两个函数。当调用这些函数时,桥接设备(13)将这些函数转换成相应的i2c命令以进行用于设备的重新刷新的操作。

这些函数包括:

1.)publicfunctioninitdevice(byvalcomportnumasstring)asbyte

2.)publicfunctionaccessdevice(byvaldevidasbyte,byvalreadwriteasbyte,byvalsfpdevaddressasbyte,byvalxfppagenumasbyte,byvalintaddasbyte,byvaldatatowriteasbyte)asbyte()

initdevice函数将桥接设备(13)初始化为其正常操作状态。通过放入与桥接设备(13)对应的com端口来调用该函数(例如,initdevice(“com3”))。这应在调用accessdevice函数之前被首先调用。accessdevice函数被用于在sfp或xfp或板eeprom(15)上进行读/写。devid参数被用于选择所述软件需要进行通信的外部设备。devid参数针对sfp是0、针对xfp是1并且针对板eeprom(15)是2。需要readwrite来表明操作是读还是写;值0表示读并且1表示写。因此对于sfp(具有两个页面)示例,如果sfpdevaddress为0,则访问“1010000x”。如果sfpdevaddress为1,则访问“1010001x”。xfppagenum指定xfp模块上访问的页码。intadd指定从sfp、xfp或hwideeprom上的哪个内部地址读取或写入sfp、xfp或hwideeprom上的哪个内部地址。datatowrite是需要被写入的数据。

板id被存储在板eeprom(15)中。可以使用accessdevice函数在每字节的基础上写入板id。例如,使用accessdevice(2,1,0,0,1,&hb),这将把要写的数据&hb(0xb)写到板eeprom(15)中的内部地址0x1。根据板id的长度,可以再次调用accessdevice函数来写入剩余字节。

当使用accessdevice函数读取板id时,dll返回eeprom中的数据的前256个字节。因此最好将板id存储在地址0-255中。

参照图5,实施方式中的计算机(11)具有处理器设备(601)(例如,微处理器),该处理器设备被联接至存储器(613)、显示器(603)、用户接口(605)(例如,键盘和鼠标或显示器的触摸敏感区域)以及输入/输出设备(611)。处理器设备(601)在存储在存储器中的指令的控制下工作以执行先前参照例如图1、图2和图3论述的步骤。输入/输出设备(611)将处理器设备连接至互联网(21)并且从互联网(21)连接至处理器设备,并且将处理器设备连接至接口(12)并且从接口(12)连接至处理器设备。

响应于在用户接口处的用户输入,处理器设备(601)访问来自互联网的数据并传送至存储器(613)。该数据可以包括使处理器设备执行特定的方法步骤的程序指令。该数据可以包括刷新收发机所需的下载的数据。

在适当的时刻,所存储的指令使处理器设备从存储器(613)经由接口(12)发送数据以刷新收发机,如上所述。所述指令可以使处理器设备(601)如上参照图2和图3论述的那样与收发机相互作用。在其它布置中,在登录证书检查之后,用户提供通信中的收发机的序列号和当前固件(使能与哪个交换机(例如,cisco、juniper)工作)。另选地,系统从当前固件读取以确定序列号和主机。用户可以指示固件的类型以重新编程到该收发机中。根据该信息,程序可以被自动生成(例如,在通过电子商务支付以后)并被存储到服务器中或为了信息而呈现给客户。也可以呈现唯一的progkey以供将来参考。可以内置可能的诊断(例如检索的任何错误代码并发送回至服务器)。

在另一实施方式中,现场工程师利用存储有相关固件的诸如膝上型计算机的设备拜访用户。所述固件可以被存储为设备上的固件的库中的一个。工程师使用板(例如,本文所描述的板(12))来刷新光收发机。

应当理解,仅通过示例的方式描述了本发明。

可以在不脱离所附权利要求的精神和范围的情况下对本文所描述的技术进行各种修改。所公开的技术包括可以以独立的方式提供的技术或者以彼此相结合的方式提供的技术。因此,相对于一种技术描述的特征也可以以与另一技术相结合的方式来呈现。

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