一种与多个光模块可同时通信的装置和方法

文档序号:9616231阅读:655来源:国知局
一种与多个光模块可同时通信的装置和方法
【技术领域】
[0001]本发明涉及光网络技术领域,特别是涉及一种应用于光网络的与多个光模块可同时通信的装置和方法。
【背景技术】
[0002]在光网络中的8端口的GE(Gi gab it Ethernet,千兆以太网)上联卡上,有8个光模块,每个光模块都通过I2C(Inter — Integrated Circuit)总线接口和CPU通信。光模块是标准器件,并且,光模块是固定的、不可设的;因此,安装在一块8端口的GE上联卡上的每一个GE光模块的地址是相同的,即8个光模块拥有相同的I2C设备地址,CPU不能直接地同时和8个光模块通信,且同时写多个光模块信息会导致CPU资源占用过多,系统工作效率低下。
[0003]如图1所示,光模块有两个存储区:第一块存储区和第二块存储区。其中,第一块存储区的I2C设备地址是AOh,简称A0表格;第二块存储区的I2C设备地址是A2h,简称A2表格。
[0004]A0表格存储的主要是光模块的一些类型信息,比如光模块的封装、发射波长、传输距离、速率、厂家信息、模块型号以及生产日期和序列号等。A0表格还有一些空白保留的字节,这些是留给生产厂家自定义使用以及后续协议增加新的功能使用的。
[0005]A2表格中存储的主要是一些光模块的实时数字诊断信息。还预留了用户可写的120字节区域,寄存器地址是从127字节-246字节。在这段地址空间里,系统可以根据产品需要,将必要的信息写入到GE光模块中。
[0006]目前,CPU和多个光模块之间的通讯一般是通过采用专用的I2C开关芯片I2C_SWITCH来实现。以8个光模块为例,如图2所示,CPU通过一个专用的8 口 I2C开关芯片I2C_SWITCH来访问8个光模块,CPU的I2C总线和8个光模块的I2C总线都连接到开关芯片上,CPU通过I2C总线来控制开关芯片的选通寄存器,选择和8个光模块中的某1路总线通信,和其它7路总线断开,完成这一路光模块通信后,CPU再通过I2C总线来控制开关芯片的选通寄存器,断掉这路的I2C总线的连接,等待下一次通信的开始。
[0007]但是,I2C总线是低速总线,速率可在ΙΟΟΚΗζ和400KHz中选择,即在I2C器件支持的情况下,最高速率也只有400KHz,即一个时钟周期为2.5uS0 一次I2C总线的操作时序约30个时钟周期。现有的技术中,因为加入I2C开关芯片,在对光模块的每一次操作前,增加了 I2C开关的选通操作,操作后,增加了 I2C开关的关闭操作。这样是对光模块的每一次I2C总线操作变成了 3次I2C总线操作,操作时间增加到约90个时钟周期。
[0008]在A2表区的127字节-246字节中,可以写入用户自定义的一些信息,如系统的厂家信息,系统类型,系统版本等。这些信息对所有光模块都是一致的。按照现有的技术,每向1个光模块写入1个信息,需要90个I2C总线时钟周期。向8个光模块写入1个相同的数据信息时,需要约720个时钟周期。

【发明内容】

[0009]鉴于以上所述现有技术的缺点,本发明的目的在于提供一种与多个光模块可同时通信的装置和方法,用于解决现有技术的光网络中,CPU无法同时与多个光模块进行通讯,并且,即使可以实现CPU与多个光模块的通讯,系统的效率也过低的问题。
[0010]为实现上述目的及其他相关目的,本发明提供一种与多个光模块可同时通信的装置,应用于光网络,所述与多个光模块可同时通信的装置包括:CPU单元,分别与多个所述光模块通过I2C总线的串行数据线相连接;时钟选通单元,与所述CPU单元通过高速并行总线连接,并分别与多个所述光模块通过所述I2C总线的串行时钟线连接;用于根据所述光模块的数量分离时钟信号,并完成多个所述光模块的时钟信号的选通;其中,每一个所述I2C总线通过上拉电阻上拉至电源电平。
[0011]于本发明的一实施例中,所述时钟选通单元内设置多个比特时钟选通寄存器位,每一个所述比特时钟选通寄存器位对应一个所述光模块。
[0012]于本发明的一实施例中,所述比特时钟选通寄存器位由所述CPU单元控制:当所述比特时钟选通寄存器位为“0”时,对应的所述光模块的时钟信号选通;当所述比特时钟选通寄存器位为“ 1 ”时,对应的所述光模块的时钟信号断开。
[0013]于本发明的一实施例中,当所述CPU单元对单个所述光模块进行写操作时,所述CPU单元通过所述高速并行总线在单个所述光模块对应的所述比特时钟选通寄存器位写入“1”,关闭其他的所述光模块的时钟信号,使单个所述光模块与所述CPU单元的时钟信号相连通;完成所述CPU单元对单个所述光模块的写操作。
[0014]于本发明的一实施例中,当所述CPU单元对多个所述光模块同时进行写操作时,所述CPU单元通过所述高速并行总线在多个所述光模块对应的多个所述比特时钟选通寄存器位写入“1”,使多个所述光模块与所述CPU单元的时钟信号相连通;完成所述CPU单元对多个所述光模块的同时写操作。
[0015]于本发明的一实施例中,所述光模块为8个时,且当所述CPU单元对8个所述光模块同时进行写操作时,所述CPU单元在一个I2C写操作周期内同时完成对8个所述光模块的写操作。
[0016]于本发明的一实施例中,所述上拉电阻为2.2Kohm。
[0017]于本发明的一实施例中,所述时钟选通单元采用CPLD进行逻辑设计。
[0018]本发明还公开了一种与多个光模块可同时通信的方法,应用于光网络,所述与多个光模块可同时通信的方法包括:对光模块执行写操作;选通所述光模块对应的时钟信号;在一个I2C写操作周期内对所述光模块完成写操作。
[0019]于本发明的一实施例中,所述对光模块执行写操作的步骤中:如果对单个所述光模块执行写操作,那么选通单个所述光模块对应的时钟信号,关闭其他所述光模块对应的时钟信号;如果对多个所述光模块执行写操作,那么全部选通多个所述光模块对应的时钟信号,并对多个所述光模块在一个所述I2C写操作周期内同时完成写操作。
[0020]如上所述,本发明的一种应用于光网络的与多个光模块可同时通信的装置和方法,解决了多个光模块的I2C设备地址相同,不能同时挂在一条总线的问题,且具有以下有益技术效果:
[0021]1.不需要专门的I2C总线开关芯片,且时钟信号的选通通道的数目可以根据需要由CPLD进行扩展;非常灵活;
[0022]2.本发明利用I2C总线的时序特点,用一个I2C写操作周期完成8个模块的寄存器写操作,提高了系统效率:单个光模块的写操作大约需要30个I2C总线周期,现有的技术约需要90个I2C总线周期,而采用本发明的装置,单个光模块的写操作也只需要大约30个I2C总线周期,时间缩短了 2/3,系统的效率获得了显著的提高;多个光模块,例如8个光模块,的同时写操作大约需要30个I2C总线周期,现有的技术约需要90*8 = 720个I2C总线周期,系统效率提高24倍;
[0023]3.本发明既支持对光模块的批量写操作,也可支持单独对光模块的读写操作。
【附图说明】
[0024]图1显不为现有技术中光t旲块的存储映射关系不意图。
[0025]图2显示为现有技术中解决CPU与多个光模块同时通讯的方案的结构示意图。
[0026]图3显示为本发明实施例公开的一种与多个光模块可同时通信的
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1