一种实现10g光模块msa300-i2c协议的装置的制作方法

文档序号:7597363阅读:266来源:国知局
专利名称:一种实现10g光模块msa300-i2c协议的装置的制作方法
技术领域
本发明涉及一种光传输领域的实现装置,尤其涉及的是,一种实现10G光模块MSA300-I2C协议的装置。
背景技术
MSA300是由Agere、Alcatel、Opnext、等11家国际知名光器件及模块生产厂商共同制订的一种适用于10G 300针Transponder的协议。2002年8月份发布了第4版协议《MSA_10G_TRX_Public Document Edition 4.doc》,同时发布了相应的I2C协议《MSA_10G_40G_TRX_I2C_Public_Document_03_Final.doc》。该协议在Philips的I2C总线协议的基础上规定了适合于MSA300自己的应用层协议。
该协议规定,MSA300模块可以工作在以下3种模式硬件模式、配置模式、软件模式。硬件模式下对模块的控制信息和模块上报的状态信息都通过硬件管脚实现;配置模式下,对模块的控制信息通过硬件管脚实现,而状态信息既可以通过硬件管脚获得也可以通过I2C进行读取;软件模式下,模块的控制必须通过I2C总线,而状态信息可以通过I2C和硬件管脚获得。
到目前为止,国内外的部分10G Transponder已经部分实现了协议规定的I2C协议。普遍采用的方法是在模块内部放置了具有较多I/O管脚的单片机或者MCU作为核心控制芯片。但是由于协议涉及的控制信号和状态信号比较多,因此对I/O管脚的需求比较多,而此种方案的缺点就是管脚受限。当然也可以通过外围扩展逻辑器件以扩展I/O,但这样需要占用的面积就比较大,同时扩展不灵活,这恰恰和模块小型化、低功耗的发展趋势相背离。
因此,现有技术存在缺陷,还有待于改进和发展。
发明目的本发明的目的是提供一种实现10G光模块MSA300-I2C协议的装置,针对现有技术的缺陷,提供一种实现起来占用面积小、扩展灵活的方案。
本发明的技术方案如下一种实现10G光模块MSA300-I2C协议的装置,包括核心控制单元、接口单元、数据拼接单元、存储控制单元、模/数转换单元和数/模转换单元;其特征在于,所述接口控制单元和核心控制单元之间通过自定义串行总线连接,和所述数据拼接单元之间通过第一数据总线、第一控制总线、第一地址总线连接;所述接口单元、所述数据拼接单元以及所述存储控制单元由一可编程器件实现。
所述的装置,其中,所述核心控制单元对外的接口是I2C总线,和所述接口单元之间通过自定义的串行总线进行通讯,并在和外部通讯过程中,所述核心控制单元始终为从机;当外部主机下发控制信息时,所述核心控制单元通过I2C接收控制指令及控制信息,经译码后通过自定义串行总线下发给所述接口单元或者通过第一总线下发给数/模转换单元;当外部主机需要查询时,所述核心控制单元通过I2C接收查询指令和需要查询的信息名称,经译码后通过自定义串行总线下发给所述接口单元以查询和模拟量无关的告警量,通过第二总线下发给模/数转换单元以查询和模拟量相关告警量及模拟量;当核心控制单元需要向所述接口单元下发控制信息时,接口单元接收核心控制单元串行发送的数据、地址和控制信息,将上述串行信息经过译码并进行串/并转换成为并行的数据、地址和控制信息然后通过所述第一数据总线、第一控制总线、第一地址总线下发给所述数据拼接单元;当核心控制单元需要向接口单元查询信息时,所述接口单元接收核心控制单元的控制、地址信息,并将信息译码后下发给数据拼接单元,然后将数据拼接单元上报的并行数据信息,通过并/串转换后经自定义串行总线上报给所述核心控制单元。
所述的装置,其中,所述数据拼接单元将接口单元下发数据根据相应的地址按位抽取,然后拼接到相应的自定义的数据寄存器中;同样将从所述存储控制单元读取的模块告警信息按照协议规定拼接成标准格式并根据所述接口单元下发的控制和地址信息上报给接口单元。
所述的装置,其中,所述存储控制单元接收所述数据拼接单元通过第二数据总线下发的数据,根据地址信息写入相应寄存器,然后根据控制信息在上述信息和硬件管脚控制信号之间做二选一选择后赋给控制信号输出。
所述的装置,其中,所述存储控制单元将数据拼接单元下发的和模拟量相关的告警量输出到相应硬件管脚;或将监测到的告警信息存入告警寄存器,同时置位相应的硬件告警管脚。
所述的装置,其中,所述核心控制单元为带模/数转换单元和数/模转换单元的MCU;或只带模/数转换单元,数/模转换单元通过外加器件实现;或没有模/数转换单元也没有数/模转换单元,两者都通过外加器件实现。
本发明所提供的一种实现10G光模块MSA300-I2C协议的装置,采用本发明所述装置,采用了可编程器件,与现有技术相比,达到了节省空间、增强可扩展行且灵活的技术效果。


图1为本发明的所述实现10G光模块MSA300-I2C协议的装置的硬件总框图;
图2是本发明装置的实现举例总框图;图3是本发明的实现10G光模块MSA300-I2C协议的装置EPLD内部接口框图。
具体实施例方式
下面结合附图对技术方案的实施作进一步的详细描述本发明所述实现10G光模块MSA300-I2C协议的装置的实现方案包括以下几个主要部分,如图1所示核心控制单元、接口单元、数据拼接单元、存储控制单元、模/数转换单元和数/模转换单元。
所述核心控制单元是模块内、外的信息枢纽,对外的接口是I2C总线,和所述接口单元之间通过自定义的串行总线进行通讯。在和外部通讯过程中,所述核心控制单元始终为“从”机。
当主机需要向模块下发控制信息时,所述核心控制单元通过I2C接收控制指令及控制信息,经译码后通过自定义串行总线下发给所述接口单元或者通过第一总线1下发给数/模转换单元。
当主机需要查询模块状态信息、告警量或者模拟量时,所述核心控制单元通过I2C接收查询指令和需要查询的信息名称,经译码后通过自定义串行总线下发给所述接口单元以查询和模拟量无关的告警量,通过第二总线2下发给所述模/数转换单元以查询和模拟量相关告警量或者模拟量。
所述接口单元和所述核心控制单元之间通过自定义串行总线连接,和所述数据拼接单元之间通过第一数据总线11、第一控制总线12、第一地址总线13连接。
当所述核心控制单元需要向所述接口单元下发控制信息时,所述接口单元接收该核心控制单元串行发送的数据、地址和控制信息,将上述串行信息经过译码并进行串/并转换成为并行的数据、地址和控制信息然后通过第一数据总线11、第一控制总线12、第一地址总线13下发给所述数据拼接单元。
当所述核心控制单元需要向所述接口单元查询信息时,所述接口单元接收所述核心控制单元的控制、地址信息,并将信息译码后下发给所述数据拼接单元,然后将所述数据拼接单元上报的并行数据信息,通过并/串转换后经自定义串行总线上报给所述核心控制单元。
因为标准的《MSA_10G_40G_TRX_I2C_Public_Document_03_Final.doc》协议规定的控制和查询信息很多,而由于模块内部使用的MUX/DEMUX芯片有可能不完全支持这些控制信号,或者不能完全上报协议规定的状态和告警信息,因此必须将主机下发的标准控制信息针对不同的芯片组进行相应的抽取和拼接,所述数据拼接单元就起到了这个作用。
所述数据拼接单元将所述接口单元下发的数据根据相应的地址按位Bit抽取,然后拼接到相应的自定义的8bit数据寄存器中。同样将从所述存储控制单元读取的模块告警信息按照协议规定拼接成标准格式并根据所述接口单元下发的控制和地址信息上报给所述接口单元。
所述存储控制单元接收所述数据拼接单元通过第二数据总线21下发的数据,根据地址信息写入相应寄存器,然后根据控制信息在上述信息和硬件管脚控制信号之间做二选一选择后赋给控制信号输出;或者将所述数据拼接单元下发的和模拟量相关的告警量输出到MSA300硬件管脚;同样,所述存储控制单元也可以将从模块监测到的告警信息存入所述告警寄存器,同时置位相应的硬件告警管脚。
对于如图1所示的结构图,在具体实现时可以有多种选择。所述核心控制单元可以选择带模/数转换单元和数/模转换单元的MCU;也可以选择只带模/数转换单元的MCU,数/模转换单元外加设置;也可以选择既没有模/数转换单元也没有数/模转换单元的MCU,两者都外加设置。
而所述数/模转换单元既可以选择串行模/数转换单元D/A也可以选择数字电位器。而第一总线1和第二总线2一般选择串行总线,例如SPI或者I2C等。本实施例中将所述接口单元、所述数据拼接单元、所述存储控制单元可以放在一片可擦除可编程逻辑器件EPLD(Erasable ProgrammableLogic Device)或者现场可编程门阵列FPGA(Field Programmable Gate Array)中实现。
以下所举实施例中选择的MCU自带数/模转换单元A/D;所述接口单元、所述数据拼接单元和所述存储控制单元放在一片EPLD中实现;选择带有I2C接口的数字电位器作为数/模转换单元。其具体结构如图2所示,EPLD内部的接口如图3所示。
在本发明的模块上电后,MCU首先向EPLD查询模块地址并将模块缺省的工作状态置为硬件模式。然后所述核心控制单元MCU作为“从”机响应和自己地址相对应的来自外部I2C的指令,并根据指令判断是否更改模块的工作模式,并表现在MCU和存储控制单元之间的接口信号state
上,当state
为“0”时表示模块为硬件工作模式,当state
为“1”时表示模块为可配置工作模式,当state
时表示模块为软件工作模式。只有在可配置模式和软件模式下主机才能通过I2C查询模块状态信息和告警量,只有在软件模式下,通过I2C下发的模块控制信息才是有效的。在其他模式下MCU不向EPLD下发控制信号命令。
假设模块工作状态是在软件模式下,则MCU译码来自主机的命令,并根据指令进行和EPLD通讯、设置数字电位器、查询A/D采样性能量、查询告警量。
所述MCU和所述EPLD之间的串行总线定义为双向数据线Sdata、时钟线Sclk、读控制总线Srd、写控制信号Swr。时钟、读写控制信号均由MCU根据需要提供,如图2所示。另外,将协议规定的Tx寄存器组、Rx寄存器组、Tx告警寄存器组、Rx告警寄存器、模拟量相关告警寄存器分别定义地址为0~4,其中前4中均在协议中有明确规定,而模拟量相关告警寄存器包括RxPowalm、RxSigalm、LaPowalm、LsBiasalm、LsTempalm等5个告警量,属于本发明装置中自定义的寄存器。
为了便于将来扩展,将寄存器地址用3bit表示,对于Swr和Srd均规定为高有效。在Swr和Srd为高的第2~4个时钟时MCU向Sdata总线上发送地址信息。如果此时对于EPLD为写过程,则在接下来的24个时钟周期(写Tx/Rx寄存器)或者5个时钟周期(写模拟量相关寄存器)中MCU把需要设置的数据发送到Sdata总线上。如果此时对于EPLD为读过程,则在接下来的24个时钟周期(对于读取Tx/Rx寄存器和Tx告警寄存器)或者16个时钟周期(读取Rx告警寄存器)中MCU放弃总线控制权而由EPLD中的接口单元控制,将MCU需要读取的信息发送到Sdata总线上。然后MCU把读、写信号置为无效。
MCU和数字电位器通讯主要实现比如阈值调节,当然主要是实现只有在保护模式下才能改变的模块基本参量例如激光器偏置电流调整、激光器波长调整、APD高压调整、初始阈值调整、驱动幅度调整、交叉点调整、“1”电平调整等。
本发明根据需要可以选择多个数字电位器,只要设置不同的地址就可以了。MCU和数字电位器之间的通讯可以通过I2C也可以通过SPI或者其他总线。本实施例中选用了具有I2C总线接口的数字电位器,选择了2片数字电位器芯片,其中一个芯片包含4个可调抽头即相当于4个电位器,这样总共可以实现对8个可调节量的调整。由于MCU自带的I2C硬件接口已经用于和外部通讯,因此和数字电位器之间的I2C要由MCU通过软件模拟产生。值得注意的是,当选用不同厂家的数字电位器时,其通讯指令模式可能不同。
对于模拟量的采集,只要选用的MCU自带的A/D精度足够就可以了,一般来讲10bit的A/D就可以满足协议的要求了。
下面单独对EPLD内部的各单元之间的通讯做详细的描述EPLD内部结构如图3所示,图中包含了3个模块单元,其中接口单元和MCU的接口在上面已经做了详细的说明,在此不再多加赘述了。
接口单元和数据拼接单元之间接口包括双向数据总线Pdata1,总线宽度为8bit;地址总线Paddr1,宽度为3bit,对于数据拼接单元为输入信号;控制总线包括Pclk1、Pwr1、Prd.1。其中Pclk1为时钟信号,对数据拼接单元为输入信号。
接口单元将MCU下发的数据经串/并变换成为并行8bit,将3bit地址变成并行3bit,将时钟、读写控制信号透传给数据拼接单元。
数据拼接单元将接口单元下发的数据按照模块自己的需要抽取拼接放入自定义的宽度为8bit的寄存器。数据拼接单元中包含的寄存器有Tx寄存器组1、Rx寄存器组1、Tx告警寄存器组、Rx告警寄存器。其中Tx寄存器组1为Tx寄存器组拼接后产生的,Rx寄存器组1为Rx寄存器组拼接后形成的。
具体拼接过程以Tx寄存器为例,接口单元转发的data0~data2总共3个字节,而对于某模块来说有用的只有11bit,因此数据拼接单元就将这11bit从相应位置上抽取出来,拼入2个8bit寄存器中。相应的Rx寄存器也做相应的处理。
对于告警寄存器比较特殊,数据拼接单元需要将来自接口单元的和模拟量有关的告警量连同来自存储控制单元的数字告警量即Tx告警寄存器组1或者Rx告警寄存器组1拼接成相应的Tx告警寄存器组或Rx告警积存器组,以便通过接口单元上报MCU,从而上报主机。
数据拼接单元和存储控制单元之间的接口包括双向数据总线Pdata2,数据宽度为8bit;单向地址总线Paddr2,总线宽度为3bit,对存储控制单元为输入信号;控制总线则同样包括Pclk2、Pwr2、Prd2,对存储控制单元为输入信号。
另外数据存储单元的输入信号还包含了硬件管脚控制信号、数字告警输入信号。输出信号包括模拟量相关告警量输出,此信号直接连接到MSA300硬件管脚;MUX/DEMUX等芯片控制信号输出及途中存储控制单元的状态及告警信息输入。
存储控制单元中包括Tx寄存器组1、Rx寄存器组1、Tx告警寄存器组1、Rx告警寄存器组1,其中Tx告警寄存器组1和Rx告警寄存器组1是存储控制单元所独有的,它是由模块中MUX/DEMUX及其他器件直接产生的告警信息。也就是图1中的状态及告警信息输入产生的。
同样,Pwr2和Prd2也定义为高有效,当Pwr2为高时第1个时钟上升沿数据拼接单元将需要写得寄存器的3bit地址打出,在第2个时钟上升沿开始相继把数据打出。存储控制单元读入数据后根据接口单元给出的模块工作状态指示信号state
在寄存器值和相应的硬件管脚设置之间做二选一,只有当state
为“2”时才能选择寄存器值作为控制信号的赋值,其他情况下均选择硬件管脚作为控制信号。
当Prd2为高时,数据拼接单元在第一个时钟上升沿将需要读取的寄存器的3bit地址打出,在第2个时钟沿开始存储控制单元将相应的寄存器值发送到数据总线上。
通过上述描述可以看出,本发明由于采用了可编程器件,因此I/O扩展、配置都变的比较灵活,而且占用空间小、同时可以根据模块的具体需要对内部积存器和接口信号进行灵活分配和更改。
应当理解的是,上述针对具体实施例的描述应过于具体,并不能因此而理解为对本发明的专利保护范围的限制,专利保护范围应以所附权利要求为准。
权利要求
1.一种实现10G光模块MSA300-I2C协议的装置,包括核心控制单元、接口单元、数据拼接单元、存储控制单元、模/数转换单元和数/模转换单元;其特征在于,所述接口控制单元和核心控制单元之间通过自定义串行总线连接,和所述数据拼接单元之间通过第一数据总线、第一控制总线、第一地址总线连接;所述接口单元、所述数据拼接单元以及所述存储控制单元由一可编程器件实现。
2.根据权利要求1所述的装置,其特征在于,所述装置中,所述核心控制单元对外的接口是I2C总线,和所述接口单元之间通过自定义的串行总线进行通讯,并在和外部通讯过程中,所述核心控制单元始终为从机;当外部主机下发控制信息时,所述核心控制单元通过I2C接收控制指令及控制信息,经译码后通过自定义串行总线下发给所述接口单元或者通过一第一总线下发给数/模转换单元;当外部主机需要查询时,所述核心控制单元通过I2C接收查询指令和需要查询的信息名称,经译码后通过自定义串行总线下发给所述接口单元以查询和模拟量无关的告警量,通过第二总线下发给模/数转换单元以查询和模拟量相关告警量及模拟量;当核心控制单元需要向所述接口单元下发控制信息时,接口单元接收核心控制单元串行发送的数据、地址和控制信息,将上述串行信息经过译码并进行串/并转换成为并行的数据、地址和控制信息然后通过所述第一数据总线、第一控制总线、第一地址总线下发给所述数据拼接单元;当核心控制单元需要向接口单元查询信息时,所述接口单元接收核心控制单元的控制、地址信息,并将信息译码后下发给数据拼接单元,然后将数据拼接单元上报的并行数据信息,通过并/串转换后经自定义串行总线上报给所述核心控制单元。
3.根据权利要求2所述的装置,其特征在于,所述数据拼接单元将接口单元下发数据根据相应的地址按位抽取,然后拼接到相应的自定义的数据寄存器中;同样将从所述存储控制单元读取的模块告警信息按照协议规定拼接成标准格式并根据所述接口单元下发的控制和地址信息上报给接口单元。
4.根据权利要求3所述的装置,其特征在于,所述存储控制单元接收所述数据拼接单元通过第二数据总线下发的数据,根据地址信息写入相应寄存器,然后根据控制信息在上述信息和硬件管脚控制信号之间做二选一选择后赋给控制信号输出。
5.根据权利要求3所述的装置,其特征在于,所述存储控制单元将数据拼接单元下发的和模拟量相关的告警量输出到相应硬件管脚;或将监测到的告警信息存入告警寄存器,同时置位相应的硬件告警管脚。
6.根据权利要求4或5所述的装置,其特征在于,所述核心控制单元为带模/数转换单元和数/模转换单元的MCU;或只带模/数转换单元,数/模转换单元通过外加器件实现;或没有模/数转换单元也没有数/模转换单元,两者都通过外加器件实现。
全文摘要
本发明的一种实现10G光模块MSA300-I2C协议的装置,其包括核心控制单元、接口单元、数据拼接单元、存储控制单元、模/数转换单元和数/模转换单元;所述接口控制单元和核心控制单元之间通过自定义串行总线连接,和所述数据拼接单元之间通过第一数据总线、第一控制总线、第一地址总线连接;所述接口单元、所述数据拼接单元以及所述存储控制单元由一可编程器件实现。采用本发明所述装置,由于采用了可编程器件,与现有技术相比,达到了节省空间、增强可扩展行且灵活的技术效果。
文档编号H04L29/06GK1791094SQ200410077690
公开日2006年6月21日 申请日期2004年12月17日 优先权日2004年12月17日
发明者王向前 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1