光模块及其控制电路和方法与流程

文档序号:13617329阅读:2343来源:国知局
本发明总体上涉及光通信领域,更特别地,涉及一种具有数字诊断监控(ddm)功能的光模块以及用于该光模块的控制电路和方法。
背景技术
::光模块是现代光通信系统的核心部件,其一般包括光接收模块、光发射模块、光收发模块、以及光转发模块等。作为光模块的典型示例,光收发模块,也称为光收发机(opticaltransceiver),一般包括光发射单元、光接收单元、以及控制电路。随着光通信技术的发展,光模块已经普遍具有数字诊断监控功能(ddm:digitaldiagnosticmonitoring),以便于系统实时查询和监控光模块的光发射单元和光接收单元的工作状态,并且响应于其工作状态做出各种必要的应对措施,从而确保通信系统的正常稳定工作。目前,有许多国际标准对各种光模块的数字诊断监控功能进行了具体详细的定义,例如sff-8472标准、sff-8077i标准、sff-8436标准等。在这些标准中,都采用了i2c总线,其是一种两线串行接口协议,具有与两个eeprom存储器对应的从地址(slaveaddress)a0和a2,每个eeprom存储器用256字节寻址,即从0x00到0xff。相关国际标准已经定义了每个eeprom存储器的存储器地图(memorymap),其中对字节0-255中的每个字节进行了详细说明。以sff-8472标准为例,下面的表1示出了该协议定义的a0和a2存储器地图,其中从地址a0的0-127字节用于存放光模块的标识和参数信息,这部分信息一般是只读的,即在光模块的使用过程中是固定不变的。从地址a2的0-127字节是数字诊断监控数据部分,其中0-55是报警和警告阈值部分,56-95是校准系数部分,96-119是实时诊断数据以及状态和控制数据部分。随着光模块性能的升级和应用的推广,原有的存储器地图结构已经不能满足需求,因此sff-8472标准对存储器地图结构进行了升级,引入了扩展表(也称为扩展页)的概念。具体而言,从地址a2的第127字节被定义为表选择字节,其最多可选择28=256个表,每个表具有128字节的大小。根据第127字节的值,可以将表0-255选择性映射到从地址a2的存储器地址128-255。表1技术实现要素:如上所述,在传统的具有ddm功能的光模块中,数据都存储在eeprom中的预定位置处,因此主机能够通过i2c接口直接访问eeprom中的所述预定位置以进行所需的读写操作。然而,这种配置具有许多缺点。例如,随着数据传输速率的不断提高,光模块中的i2c接口常工作在400khz的快速模式(fastmode)下,因此要求对a0和a2数据的访问能够快速地进行。在该情况下,a0和a2的数据适宜存放在具有较高存取速率的随机存储器(ram)中,而非存取速率较低的非易失性存储器例如闪存(flash)或eeprom中。另一方面,非易失性存储器的存取次数有限,对其进行频繁的读写操作会影响其使用寿命。此外,为了符合相关国际标准例如sff-8472,通常需要在存储器中预定义或者分配预定大小的连续空间用于存储sff-8472定义的a0和a2数据,并且使得存储器中存储的数据顺序与国际标准sff-8472中定义的存储器地图完全一致。这样,当主机通过i2c接口请求访问sff-8472中预定义的某数据地址时,可容易地访问存储器中对应的地址,从而简单快捷地完成对数据的操作。对于早期版本的sff-8472标准而言,上述实施方式是适当的,因为只需要512字节的ram空间即可存储a0和a2的数据。然而,随着sff-8472协议的升级,引入了扩展表/页的概念,现在用于存储a0和a2数据所需的ram空间也越来越大。加上运行控制程序所需的ram空间,一般需要2k字节以上的ram空间才能够满足功能要求,这不可避免地增加了光模块的成本。尤其是当使用单片机(mcu)来实现光模块中的控制电路或其一部分时,单片机的采购成本往往由其ram空间大小决定,因此选用具有大ram空间的单片机会造成成本的大幅度上升。鉴于上述问题,本发明提出一种用于光模块的控制电路和方法,以及使用该控制电路和方法的光模块。本发明的控制电路和方法能够使用较小的ram空间来实现相关国际标准的全部功能,因此能够在不损失光模块的功能性的同时,降低光模块的成本。本发明人发现,本领域相关国际标准中定义的数据,例如a0和a2数据,大致可分为两类。第一类是在光模块运行期间保持不变的数据,例如光模块的id和厂商信息,配置参数诸如阈值和校准系数等;第二类是在光模块运行期间频繁改变的数据,例如光模块的运行状态数据等。根据这些数据的特点,本发明将这些数据存储在不同的存储器中。例如,可以将第一类数据存储在诸如闪存(flash)和只读存储器(rom)(例如eeprom)之类的非易失性存储器中,而将第二类数据存储在随机存取存储器(ram)中。这样,即可减小所需的ram空间,从而降低成本。由于相关国际标准例如sff-8472中定义的数据都是存储在连续的预定义位置中的,并且主机根据这些预定义位置来发出访问请求,所以为了满足相关国际标准,本发明中还提供访问控制单元来控制主机的访问。访问控制单元可以解析主机提供的访问地址,来引导主机访问非易失性存储器或者随机存取存储器。这样,就主机看来,其访问了所指定的存储器位置,满足了相关国际标准的规定。本发明人还发现,如果像现有技术中那样,在随机存取存储器中预定义(或者说分配)特定地址以用于存储例如光模块的运行状态数据,由于在ram中运行光模块的控制程序时需要对ram进行频繁的写入,因此为运行状态数据分配的预定义存储器位置有可能被写入其他不相关的数据,导致内存溢出问题。为了避免该问题,本发明将运行状态数据作为变量的值存储在ram中。变量在ram中的存储地址是在程序运行过程中动态分配的,并且在多次运行程序时每次动态分配的存储地址可能彼此不同。为了满足相关国际标准,本发明的访问控制单元将与ram对应的主机访问地址映射至对应的变量,而非ram中预定义的地址。通过对变量进行操作,而非直接对预定义的存储器地址进行操作,可以减少或避免前述内存溢出的问题。根据本发明的一个方面,提供一种用于光模块的控制电路,所述光模块包括光接收单元和光发射单元。所述控制电路可包括:第一存储器,用于在所述第一存储器的预定义位置处存储所述光模块的多个配置参数;第二存储器,用于在所述第二存储器的动态分配位置处存储多个变量,所述多个变量包括与所述光模块的当前运行状态对应的变量;以及模数转换器,配置为接收与所述光模块的当前运行状态对应的模拟信号,并且将所述模拟信号转换为数字值,作为与所述光模块的当前运行状态对应的变量存储在所述第二存储器的动态分配位置中。所述第一存储器可以是非易失性存储器,所述第二存储器可以是随机存取存储器。在一些示例性实施例中,所述控制电路还可包括:接口,配置为与主机通信以接收主机的访问请求,所述访问请求包括访问地址;以及访问控制单元,配置为控制所述主机的访问。当所述访问地址在第一范围内时,所述访问控制单元将所述访问地址映射到所述第一存储器内的所述预定义位置,以使得所述主机直接访问所述第一存储器的预定义位置。当所述访问地址在与所述第一范围不同的第二范围内时,所述访问控制单元使所述主机访问与所述访问地址对应的变量,以访问存储在所述第二存储器内的动态分配位置中的所述变量的值。所述接口可以是i2c接口,所述访问请求中包括的访问地址可以是sff-8472标准中定义的数据地址。根据本发明的另一方面,提供一种光模块,包括:光接收单元;光发射单元;以及用于控制所述光接收单元和所述光发射单元的控制电路。所述控制电路可包括:第一存储器,用于在所述第一存储器的预定义位置处存储所述光模块的多个配置参数;第二存储器,用于在所述第二存储器的动态分配位置处存储多个变量,所述多个变量包括与所述光模块的当前运行状态对应的变量;以及模数转换器,配置为接收与所述光模块的当前运行状态对应的模拟信号,并且将所述模拟信号转换为数字值,作为与所述光模块的当前运行状态对应的变量存储在所述第二存储器的动态分配位置中。所述第一存储器可以是非易失性存储器,所述第二存储器可以是随机存取存储器。在一些示例性实施例中,所述控制电路还可包括:接口,配置为与主机通信以接收主机的访问请求,所述访问请求包括访问地址;以及访问控制单元,配置为控制所述主机的访问。当所述访问地址在第一范围内时,所述访问控制单元将所述访问地址映射到所述第一存储器内的所述预定义位置,以使得所述主机直接访问所述第一存储器的预定义位置。当所述访问地址在与所述第一范围不同的第二范围内时,所述访问控制单元使所述主机访问与所述访问地址对应的变量,以访问存储在所述第二存储器内的动态分配位置中的所述变量的值。所述接口可以是i2c接口,所述访问请求中包括的访问地址可以是sff-8472标准中定义的数据地址。根据本发明的另一方面,提供一种用于控制光模块的方法,所述光模块包括光发射单元和光接收单元,所述方法可包括:接收与所述光模块的运行状态对应的模拟信号,将所述模拟信号转换为数字值,并且将所述数字值作为与所述光模块的当前运行状态对应的变量的值存储在第二存储器的动态分配位置中;接收来自主机的访问请求,所述访问请求包括访问地址;解析所述访问地址,当所述访问地址在第一范围内时,将所述访问地址映射到第一存储器内的预定义位置,以使得所述主机直接访问所述第一存储器的预定义位置,其中所述光模块的多个配置参数存储在所述第一存储器的所述预定义位置中,当所述访问地址在与所述第一范围不同的第二范围内时,使所述主机访问与所述访问地址对应的变量,以访问存储在所述第二存储器内的动态分配位置中的所述变量的值。在一些示例性实施例中,所述方法还可包括:将与所述光模块的当前运行状态对应的变量的值和预定阈值相比较以生成标志值,作为警告和报警标志变量存储在所述第二存储器的动态分配位置中,其中所述预定阈值作为所述光模块的配置参数存储在所述第一存储器的预定义位置处。本发明的上述和其他特征和优点将从下面结合附图对示例性实施例的描述变得显而易见。附图说明图1示出根据本发明一实施例的光模块的结构框图。图2示出根据本发明一实施例的光模块的控制电路的功能框图。图3a和3b示出用于读取操作的接口电路时序图。图4示出根据本发明一实施例的光模块的控制方法的流程图。具体实施方式下面将参照附图来描述本发明的示例性实施例。图1示出根据本发明一实施例的光模块100的结构框图。如图1所示,光模块100可包括光接收单元120、光发射单元130、以及用于控制光接收单元120和光发射单元130的控制电路110。光接收单元120用于接收来自输入光纤(未示出)的光信号,将其转换成电信号,并且经处理(例如,放大)之后,在rx+和rx-管脚上将电信号提供给主机(未示出)。如图1所示,光接收单元120可包括光接收子组件(rosa)122和后置放大器(postamp)电路124。rosa122可包括用于接收光纤的机械光纤插座、以及用于将通过光纤接收到的光信号转变为电信号的光电转换元件,例如光电二极管。rosa122还可包括对所得电信号进行放大的前置放大器。rosa122输出的经前置放大了的电信号,其是模拟信号,可被提供给后置放大器124,后置放大器124可产生具有固定幅值的数字信号,然后将该数字信号经管脚rx+和rx-输出到外界电路。此外,rosa122还可将所产生的电信号提供给控制电路110以监视接收光功率。后置放大器124还可产生指示是否存在足够强的光信号输入的los(lossofsignal)信号,其是数字信号,并且也被提供给控制电路110。光发射单元130用于根据从管脚tx+和tx-接收到的电信号向外发射光信号。光发射单元130可包括光发射子组件(tosa)132和激光器驱动器电路134。tosa132可包括用于接收光纤的机械光纤插座、用于发射光信号的激光二极管或led、以及用于监视发射光功率的背光二极管。激光器驱动器电路134为激光二极管提供交流调制电流和直流偏置电流,其中交流调制电流是根据从管脚tx+和tx-上接收到的信号而生成的。光发射单元130还可将偏置电流和发射光功率信号提供给控制电路110,以便于执行后面描述的数字诊断监控(ddm)功能。控制电路110连接到光接收单元120和光发射单元130,并且还连接到主机(未示出),从而可执行下面详细描述的ddm功能。控制电路110的具体结构将在下面参照图2来描述。图2示出根据本发明一实施例的光模块的控制电路200的功能框图。控制电路200一方面与主机设备通信,另一方面与光模块100的光接收单元120和光发射单元130通信,以执行各种数字诊断监控(ddm)功能。因此,控制电路200包括接口单元210,以用于与主机设备通信。与主机通信的接口单元210可以是各种光模块中常用的接口,例如但不限于i2c(也称为iic)接口等。i2c接口是一种两线串行接口,其详细信息可见“um10204i2c-busspecificationandusermanual”,rev.6,4april2014,因此此处不再赘述。控制电路200还包括与光模块100的光接收单元120和光发射单元130通信的模数转换器(adc)电路220,以接收来自光接收单元120和光发射单元130的、与其当前的运行状态对应的模拟信号。例如,adc220可接收来自光接收单元120的接收光功率信号、来自光发射单元130的发射光功率信号和偏置电流信号等。adc220还可接收光模块100的电源电压信号、以及来自温度传感器224的温度信号等。温度传感器224可感测光模块100的温度,其可以实施在控制电路200内,也可以实施在控制电路200外,例如邻近光接收和发射单元120和130。acd220将所接收的与光模块100的当前运行状态对应的模拟信号转换为数字值,并且如下面描述的那样,将这些数字值存储在存储器中。根据本发明一示例性实施例,控制电路200包括至少两个存储器,即第一非易失性(nvm)存储器214、以及第二随机存取存储器(ram)216。第一nvm存储器214可以是只读存储器,例如闪存、eeprom存储器等,其能够在断电后仍保持数据,但是具有较慢的读写速度和有限的写入寿命。第二ram存储器216是一种易失性存储器,其在断电时丢失数据,但是具有较高的读写速度和几乎无限制的读写寿命,其可由例如sdram、dram、ddr等实现。ddm功能所需的各种数据,例如sff-8472、sff-8077i、sff-8436等标准中定义的那些数据,可分别存储在第一和第二存储器214、216中。为了描述的方便和清楚,下面将以sff-8472标准为例来进行说明,但是应理解,本发明的原理也可应用到其他标准及其相关的光模块。上面的表1示出了sff-8472标准中定义的各项数据。根据本发明一示例性实施例,这些数据中的、在光模块运行期间保持不变的数据,例如从地址a0的数据地址0-255中定义的、与光模块的id和厂商信息等相关的数据,以及从地址a2的数据地址0-95中定义的各种光模块配置参数,诸如阈值和校准系数等,可存储在第一非易失性存储器214中。这些数据一般在光模块的制造期间由制造商设置,并且在光模块的运行期间不会发生改变。而在光模块运行期间频繁更新或者改变的数据,例如从地址a2的数据地址96-127中定义的光模块的运行状态数据,其可以有adc电路220直接或间接获得,则可存储在第二ram存储器216中。从地址a2的数据地址128-255中定义的各个表(table)或页(page)的数据,则可以根据其特性,例如是否频繁更新,而存储在第一nvm存储器214或者第二ram存储器216中。第一nvm存储器214中存储的数据可由例如制造商在光模块的制造期间写入到第一nvm存储器214的预定义位置处。例如可根据标准sff-8472中对相关数据的定义,在第一nvm存储器214中预定义相同长度的连续地址空间,相关数据可按照标准sff-8472定义的顺序,写入在该连续地址空间中。下面的表2示出了一示例,其中在具有64k存储空间(地址为0-65535)的第一nvm存储器214中,预定义96字节的连续地址空间,其地址为13400-13495,以用于存储sff-8472定义的从地址a2的数据地址0-95的数据。应理解,第一nvm存储器214中预定义的连续地址空间的起始地址也可以是其他值。在多次运行用于控制光模块100的控制程序时,这些数据在第一nvm存储器214中的存储地址不会发生改变。表2在一些示例中,可存储在第一nvm存储器214中的配置参数的示例可包括但不限于下列参数:光模块的温度阈值、光模块的电源电压阈值、光发射单元的偏置电流阈值、光发射单元的发射光功率阈值、光接收单元的接收光功率阈值、光接收单元的接收光功率校准系数、光发射单元的偏置电流校准系数、光发射单元的发射光功率校准系数、光模块的温度校准系数、以及光模块的电源电压校准系数等。相关数据在第二ram存储器216中的存储则可以与第一nvm存储器214中不同。例如,在光模块100运行期间,通过adc电路220直接或间接获得的与光模块100的运行状态对应的数据,可以由程序赋值给对应的变量,并且存储在第二ram存储器216中。应注意的是,变量在第二ram存储器216中的存储地址是在程序运行期间动态分配的,而不是由程序预定义的。在多次运行程序时,为相同变量动态分配的地址可能彼此不同。下面的表3示出了一示例,其中sff-8472标准中定义的从地址a2的数据地址96-127的数据作为变量存储在第二ram存储器216中。应理解,变量名可以任意地确定,而不局限于表3给出的示例。还应理解,虽然表3示出了与各个数据地址对应的单独变量,但是变量也可以实现为与多个数据地址对应的数组或结构体,其也应视为变量的一种特定形式。sff-8472中保留的并且未被实际使用的数据地址,则可以不存储在第二ram存储器216中。表3上述数据在第一nvm存储器214和第二ram存储器216中的存储方式能实现许多优点。首先,按照标准sff-8472中定义的那样,数据在第一nvm存储器214中按顺序连续存储在预定义位置处,使得主机能够方便地访问第一nvm存储器214中的这些预定义位置,以获得相关数据,从而使控制程序能够高效快捷地执行。而在第二ram存储器216中,数据作为变量的值存储在动态分配的地址空间中,从而在收到主机的访问请求时,允许直接对变量进行操作,降低了直接对地址进行操作时容易发生的内存溢出问题,而且降低了控制程序的编程难度。而且,将需要频繁更新或者写入的数据存储在具有几乎无限写入寿命的ram存储器中,可以提高光模块的使用寿命。此外,数据分别存储在第一nvm存储器214和第二ram存储器216中,从而降低了对ram存储器的空间需求,从而降低了光模块的成本。再者,可以仅将需要使用的数据作为变量存储在第二ram存储器216中,而未被使用的相关标准中定义的一些保留位置,例如sff-8472中定义的a2的119-122字节,可以被忽略,从而还可以提高ram存储器中的存储效率。与光模块100的运行状态对应的一些数据,例如光模块的电源电压、光发射单元的偏置电流和发射光功率、光接收单元的接收光功率等,可以经adc电路220转换成数字值后,直接存储到第二ram存储器216中。而与光模块100的运行状态对应的另一些数据,在经adc电路220转换成数字值后,还需要经由数据处理逻辑222进行进一步的处理,才能得到与光模块100的运行状态对应的数据值,然后将该数据值存储在第二ram存储器216中。例如,来自温度传感器224例如热电偶的模拟电信号在经adc电路220转换为数字电流/电压值后,在数据处理逻辑222中被进一步处理。具体而言,数据处理逻辑222可以检索温度查找表,以确定与该数字电流/电压值对应的温度值。温度查找表将数字电流/电压值映射到温度值,其可以放在例如a2存储器的扩展表/页中,并且被存储在第一nvm存储器214中。然后,数据处理逻辑222确定的温度值可被存储在第二ram存储器216中。控制电路200还可包括比较逻辑218。比较逻辑218可以将通过adc电路220直接或间接获得的与光模块100的运行状态对应的数据与特定阈值相比较,以生成标记值。例如,比较逻辑218可以将光模块100的温度值与温度过高警告(warnning)阈值、温度过高报警(alarming)阈值、温度过低警告阈值、以及温度过低报警阈值相比较,并且生成相应的警告或报警标志(flag)值。同样,比较逻辑218可以将电源电压、光发射单元的偏置电流和发射光功率、以及光接收单元的接收光功率等与对应的阈值相比较,并且生成相应的警告和报警标志值。比较逻辑218生成的这些警告和报警标志值可以存储在第二ram存储器216中。第二ram存储器216中存储的变量还可包括由主机设备(未示出)指示的数据,例如状态控制数据、用户通过主机输入的密码等。主机可通过前述接口210来输入数据,例如输入密码,也可通过控制电路200的硬件管脚(pin)(未示出)来输入数据。主机可通过接口210来与控制电路200通信。此外,控制电路200还包括访问控制单元212来控制主机对控制电路200的访问。下面将以i2c接口为例来说明主机对控制电路200的访问过程,但是应理解,本发明的原理亦可应用到其他类型的接口电路。主机通过i2c接口210向控制电路200发出访问请求,主机的访问请求包括有要访问的地址。图3a和3b示出与读取过程相对应的i2c接口210的时钟线scl和数据线sda上的时序图。如图3a所示,在开始(start)信号后跟随着7比特的设备地址信号d6-d0,并且读/写(r/w)信号比特设置为低电平的写信号w。对于从地址a0,设备地址信号d6-d0分别是1010000(二进制);对于从地址a2,设备地址信号d6-d0分别是1010001(二进制)。在确认信号ack之后,跟随着8比特的存储器数据地址信号m7-m0,其是相关国际标准中定义的数据地址,例如sff-8472中定义的数据地址0-255(十进制)。接着是确认信号ack和结束信号stop。注意,在该确认信号ack和结束信号stop之间并没有实际写入的数据,因此图3a所示的时序图完成了虚设写入(dummywrite)操作,以载入(loadin)将要读取的地址,即设备地址d6-d0(对应于a1或a2的前7个比特)的存储器地址m7-m0。如果要实际写入数据,还可以在确认信号ack和结束信号stop之间插入要写入的数据。接下来,在图3b所示的时序图中,完成读取操作。如图3b所示,主机生成另一开始(start)信号,并且发送设备地址d6-d0,读/写信号比特设置为读取r。控制电路确认(ack)设备地址,并且随着时钟信号输出存储在之前载入的存储器地址处的数据比特i7-i0。接着是确认信号ack和结束信号stop,从而完成了读取操作。通过上面描述的读取和写入操作可以看出,主机发出的访问请求中包括有访问地址,其是相关国际标准中已经明确定义的地址,因此该地址中包括的数据的意义也是已知的。在现有技术中,控制电路可以直接访问存储器中的该预定义地址,以进行读取和写入操作。与现有技术不同的是,在本发明中,主机的访问请求被访问控制单元212所控制。访问控制单元212可控制主机对光模块100的访问。如前所述,数据被存储在第一nvm存储器214和第二ram存储器216中。访问控制单元212可以解析从主机收到的访问请求中包括的访问地址,以访问相应的存储器(例如第一nvm存储器)中的预定义地址或者相应的存储器(例如第二ram存储器)中存储的变量。例如,当主机请求的访问地址在第一范围内时,例如但不限于a0的数据地址0-255、a2的数据地址0-95,则访问控制单元212将该访问地址映射至第一nvm存储器中的预定义位置,该映射过程可通过例如增加一预定偏移量来实现。例如在表2所示的示例中,将访问地址0-95增加一偏移量13400,以映射至第一nvm存储器214中的实际存储地址,使得主机可以直接访问第一nvm存储器214中的该实际地址,从而简单快捷地完成访问操作。当访问地址在与第一范围不同的第二范围内时,例如但不限于a2的数据地址96-127,则访问控制单元212控制主机访问与访问地址对应的变量,这些变量存储在第二ram存储器216中的动态分配的位置处。应注意,如上所述,因为数据在第一nvm存储器214中存储在预定位置处,所以在访问第一nvm存储器214时,访问控制单元212可以直接对第一nvm存储器214中的地址进行操作,例如将来自主机的访问请求中包括的地址转换成第一nvm存储器214中的地址,然后访问第一nvm存储器214中的该地址;而在第二ram存储器216中,数据存储在动态分配的位置处,因此在访问第二ram存储器216时,访问控制单元212根据主机的访问请求中包括的地址来访问对应的存储在第二ram存储器216中的变量。通过访问控制单元212的操作,主机可以获得其指定的访问地址所对应的数据。因此,就主机一侧看来,包括根据本发明上述实施例的控制电路200的光模块100是符合相关国际标准例如sff-8472的。这种配置可实现若干优点。首先,如上所述,这种配置的光模块是符合相关国际标准例如sff-8472的,因此能够与现有光通信设备兼容。此外,由于数据在第二ram存储器216中存储在动态分配的位置处,因此带来了程序设计方面的灵活性,便于设计人员实施许多扩展功能,例如客户要求的定制功能等。继续参照图2,控制电路200还可包括控制逻辑226,控制逻辑226可根据第二ram存储器216中存储的变量值来生成控制信号以控制例如光接收单元120和光发射单元130的操作。在一示例中,控制逻辑226可根据温度变量的值来补偿光发射单元130的调制电流。将温度值映射到调制电流补偿值的查找表可以存储在第一nvm存储器214中,控制逻辑226可以参照该查找表来生成与当前温度对应的调制电流补偿值。在另一些实施例中,控制逻辑226可以根据例如速率选择变量、低功率选择变量等的值,生成速率选择(rateselect)控制信号和低功率(lowpower)控制信号,来控制光接收单元120和光发射单元130的操作。控制逻辑226还可以根据从主机接收到的信号来生成控制信号以控制光接收单元120和光发射单元130的操作。例如,主机通过控制电路200的速率选择管脚、低功率选择管脚、发射禁止(txdisalbe)管脚等提供相应的指示,控制逻辑226可根据这些管脚上收到的主机指令来控制光接收单元120和光发射单元130的操作。应注意,控制逻辑226生成的控制信号是数字信号,因此一些数字信号,例如调制电流温度补偿信号,需要经过数模转换器dac电路228转换成模拟信号后,才能应用到光接收单元120和光发射单元130。而有一些控制信号,例如生成速率选择(rateselect)控制信号、低功率(lowpower)控制信号、以及发射禁止信号txdisable等,可以不经过dac电路228而直接应用到光接收单元120和光发射单元130。控制电路200还可包括故障处理逻辑230。故障处理逻辑230可读取第二ram存储器216中存储的警告和报警标志变量的值,并且还可以接收光模块100的接收和发射单元120、130产生的至少一个故障信号,例如故障信号faultin、信号丢失信号los等,然后对这些变量值和故障信号进行逻辑组合,例如进行逻辑或“or”操作,以生成故障信号txfault,并且将所生成的故障信号输出给主机。此外,故障处理逻辑230还可以将从接收和发射单元120、130接收到的故障信号例如los直接提供给主机。上面参照图2描述了控制电路200,其可用作例如图1的光模块100的控制电路110以实现数字诊断和监控ddm功能。下面将参照图4描述利用该控制电路来控制光模块100的操作的方法300。由于方法300中的许多细节已经在前面得到描述,这里将仅简要地描述方法300的各个步骤。如图4所示,方法300包括步骤s310,在步骤s310中,模数转换器adc电路220接收与光模块100的运行状态对应的模拟信号,将所述模拟信号转换为数字值,并且将所述数字值作为与光模块100的当前运行状态对应的变量的值存储在第二存储器216的动态分配位置中。在步骤s320中,控制电路200通过例如接口电路210接收来自主机的访问请求,所述访问请求中包括有访问地址。在步骤s330中,访问控制单元212解析访问地址。例如,当访问地址在第一范围内时,访问控制单元212将访问地址映射到第一nvm存储器214内的预定义位置,以使得主机能访问该预定义位置。如前所述,光模块的多个配置参数可存储在第一nvm存储器的预定义位置中。当访问地址在与第一范围不同的第二范围内时,访问控制单元212可以使主机访问与访问地址对应的变量,以访问存储在第二ram存储器内的动态分配位置中的变量值。在一些实施例中,方法300还可包括步骤s340,在步骤s340中,比较逻辑218将与光模块100的当前运行状态对应的变量的值和预定阈值相比较以生成标志值,存储在第二ram存储器216的动态分配位置中。如前所述,预定阈值可作为光模块100的配置参数存储在第一nvm存储器214的预定义位置处。在一些实施例中,方法300还可包括步骤s350,在步骤s350中,故障处理逻辑230将警告和报警标志变量与光模块100内部生产的至少一个故障信号进行逻辑组合,例如进行逻辑或“or”操作,以生成故障信号,并且将故障信号输出给主机。在一些实施例中,在步骤s350中,故障处理逻辑230还可将从光模块100接收到的故障信号例如信号丢失信号los直接转发给主机。在一些实施例中,方法300还可包括步骤s360,在步骤s360中,控制逻辑226根据第二ram存储器中存储的多个变量中的至少一个生成控制信号,以控制光接收单元120和光发射单元130中的至少一个的操作。例如,控制逻辑226可根据温度来控制光发射单元130的调制电流。在一些实施例中,方法300还可包括步骤s370,在步骤s370中,控制逻辑226根据从主机接收到的信号来生成控制信号,以控制光接收单元120和光发射单元130中的至少一个的操作。在步骤s380中,模数转换器dac电路228将控制逻辑226生成的控制信号转换为模拟信号,以提供给光接收单元120和光发射单元130中的至少一个。上面描述了光模块及其控制电路和控制方法的一些示例性实施例。应理解,在不偏离本发明的原理的情况下,本领域技术人员可以进行许多形式和细节上的变化。例如,根据一些实施例的控制电路可以实施为单芯片集成电路,或者可以实施为多个离散的元件。在一些实施例中,控制电路200可以利用已有的控制芯片加上单片机(mcu)来实现。结构框图中示出的每个框可以被细分为多个子框,这些子框可以重新组合,只要整体上实现本发明的原理即可。上面虽然以光收发机和sff-8472协议为例描述了本发明的一些实施例,但是应理解,本发明的原理还可以应用到其他光模块和相关协议,例如xfp模块、qsfp+模块、pon系列模块qsfp28模块,以及sff-8077i协议、sff-8436协议、sff-8636协议等。还应理解的是,上面描述的装置的各个结构框能以硬件、软件、或固件等多种方式实现。例如,图2所示的多个逻辑单元能通过硬件或软件实现。上面描述的方法中包括的多个步骤的执行顺序不限于描述的顺序。例如,首先描述的步骤可以在稍后描述的步骤之后执行,或者两个或更多个步骤可以并行地执行。以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。本申请中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。还需要指出的是,在本申请的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本申请的等效方案。提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1