CN105790830B - 光模块在位检测方法和装置 - Google Patents
光模块在位检测方法和装置 Download PDFInfo
- Publication number
- CN105790830B CN105790830B CN201410829082.0A CN201410829082A CN105790830B CN 105790830 B CN105790830 B CN 105790830B CN 201410829082 A CN201410829082 A CN 201410829082A CN 105790830 B CN105790830 B CN 105790830B
- Authority
- CN
- China
- Prior art keywords
- channel
- register
- optical module
- sda
- level
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000003287 optical effect Effects 0.000 title claims abstract description 351
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000001514 detection method Methods 0.000 claims abstract description 214
- YTAHJIFKAKIKAV-XNMGPUDCSA-N [(1R)-3-morpholin-4-yl-1-phenylpropyl] N-[(3S)-2-oxo-5-phenyl-1,3-dihydro-1,4-benzodiazepin-3-yl]carbamate Chemical compound O=C1[C@H](N=C(C2=C(N1)C=CC=C2)C1=CC=CC=C1)NC(O[C@H](CCN1CCOCC1)C1=CC=CC=C1)=O YTAHJIFKAKIKAV-XNMGPUDCSA-N 0.000 claims description 29
- 230000004044 response Effects 0.000 claims description 21
- 230000005611 electricity Effects 0.000 claims description 5
- 235000013399 edible fruits Nutrition 0.000 claims description 2
- 238000012544 monitoring process Methods 0.000 abstract description 9
- 230000008447 perception Effects 0.000 abstract 1
- 230000006870 function Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B10/00—Transmission systems employing electromagnetic waves other than radio-waves, e.g. infrared, visible or ultraviolet light, or employing corpuscular radiation, e.g. quantum communication
- H04B10/07—Arrangements for monitoring or testing transmission systems; Arrangements for fault measurement of transmission systems
- H04B10/075—Arrangements for monitoring or testing transmission systems; Arrangements for fault measurement of transmission systems using an in-service signal
- H04B10/077—Arrangements for monitoring or testing transmission systems; Arrangements for fault measurement of transmission systems using an in-service signal using a supervisory or additional signal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B10/00—Transmission systems employing electromagnetic waves other than radio-waves, e.g. infrared, visible or ultraviolet light, or employing corpuscular radiation, e.g. quantum communication
- H04B10/07—Arrangements for monitoring or testing transmission systems; Arrangements for fault measurement of transmission systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B10/00—Transmission systems employing electromagnetic waves other than radio-waves, e.g. infrared, visible or ultraviolet light, or employing corpuscular radiation, e.g. quantum communication
- H04B10/40—Transceivers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B10/00—Transmission systems employing electromagnetic waves other than radio-waves, e.g. infrared, visible or ultraviolet light, or employing corpuscular radiation, e.g. quantum communication
- H04B10/07—Arrangements for monitoring or testing transmission systems; Arrangements for fault measurement of transmission systems
- H04B10/075—Arrangements for monitoring or testing transmission systems; Arrangements for fault measurement of transmission systems using an in-service signal
- H04B10/079—Arrangements for monitoring or testing transmission systems; Arrangements for fault measurement of transmission systems using an in-service signal using measurements of the data signal
- H04B10/0799—Monitoring line transmitter or line receiver equipment
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Electromagnetism (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Optical Communication System (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明提供一种光模块在位检测方法和装置,该检测装置通过N个通道并行连接N个光模块笼子,该装置通过访问冲突寄存器,根据冲突寄存器的值获取N个通道的占用状态,再对N个通道中占用状态为未被***软件占用的M个通道所连接的M个光模块笼子进行并行探测,得到探测结果,探测结果包括M个光模块笼子的光模块在位信息和光模块类型,最后将探测结果写入在位寄存器,***软件从在位寄存器中就可以获取所述探测结果。在不提高CPU占用率的情况下,能够实现实时监测光模块笼子中是否有光模块在位以及感知光模块的快速拔插操作。
Description
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种光模块在位检测方法和装置。
背景技术
小型可插拔(英文:small form-factor pluggable,简称:SFP)收发器(英文:transceiver),也称为光模块,是一种小型的可热插拔的光收发器,用于电信和数据通信中的光通信应用,通常封装在一个标准SFP笼子(cage)中。而紧凑型SFP(英文:Compact SFP,简称CSFP)是一种将两个单纤双向光收发器件封装在一个标准SFP笼子里的光模块。设备使用CSFP可以在相同数量的光模块笼子基础上获得2倍的端口数,可以满足高密度、低成本的需求。
CSFP虽然使用的是单纤双向光收发器件,但是在装有CSFP的光模块笼子连接到支持光模块的通信设备的插座上时仍然需要两对收发线路,因此CSFP的第二路收发器件的发送信号就需要占用光模块笼子的在位信息号的针脚,导致其无法通过在位信号的电平来判断其是否在位。
通常通过***软件I2C轮询的方式来判断SFP笼子中是否有光模块在位,即***软件通过向每个光模块笼子对应的内部集成电路(英文:Inter Integrated Circuit,简称:I2C或I2C)通道发送请求信号,而后根据是否从该I2C通道收到响应来判断是否有光模块在位。但是***软件I2C轮询会占用大量CPU资源,导致CPU占用率升高。且采用***软件I2C轮询有轮询周期,若光模块笼子较多,则轮询时间长,不能实时监测SFP笼子中是否有光模块在位,此外由于I2C轮询时间长,采用***软件I2C轮询可能无法感知光模块的快速拔插操作。
发明内容
本发明实施例提供一种光模块在位检测方法和装置,在不提高CPU占用率的情况下,可以解决现有技术中不能实时监测光模块笼子中光模块是否在位以及不能感知光模块快速拔插的问题。
第一方面,提供一种光模块在位检测方法,应用于一种检测装置,所述检测装置通过N个通道并行连接N个光模块笼子,所述方法包括:
访问冲突寄存器,根据所述冲突寄存器的值获取所述N个通道的占用状态;
对所述N个通道中占用状态为未被***软件占用的M个通道所连接的M个光模块笼子进行并行探测,得到探测结果,所述探测结果包括所述M个光模块笼子的光模块在位信息和光模块类型;
将所述探测结果写入在位寄存器,以便所述***软件从所述寄存器中获取所述探测结果。
结合第一方面,在第一种可能的实现方式中,所述对所述N个通道中占用状态为未被***软件占用的M个通道所连接的M个光模块笼子进行并行探测,得到探测结果包括:
对所述M个光模块笼子并行进行第一预设地址的探测;
其中,对于所述M个光模块笼子中的任一个光模块笼子,若探测出所述第一预设地址没有光模块在位,则确定所述任一个光模块笼子中没有光模块在位;
若探测出所述第一预设地址有光模块在位,则对所述任一个光模块笼子进行第二预设地址的探测;
若探测出所述第二预设地址没有光模块在位,则确定所述任一个光模块笼子中有光模块在位,若探测出所述第二预设地址有光模块在位,则确定所述任一个光模块笼子中有紧凑型光模块在位。
结合第一方面,在第二种可能的实现方式中,所述对所述N个通道中占用状态为未被***软件占用的M个通道所连接的M个光模块笼子进行并行探测,得到探测结果包括:
对所述M个光模块笼子并行进行第一预设地址的探测;对所述M个光模块笼子并行进行第二预设地址的探测;
其中,对于所述M个光模块笼子中的任一个光模块笼子,
若探测出所述第一预设地址没有光模块在位,则确定所述任一个光模块笼子中没有光模块在位;若探测出所述第一预设地址有光模块在位,且所述第二预设地址没有光模块在位,则确定所述任一个光模块笼子中有光模块在位;若探测出所述第一预设地址有光模块在位,且所述第二预设地址有光模块在位,则确定所述任一个光模块笼子中有紧凑型光模块在位。
结合第一方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述N个通道为N个内部集成电路I2C通道,每个I2C通道包括一个串行时钟SCL通道和一个串行数据SDA通道,所述SCL通道由SCL电平寄存器控制,所述SDA通道由SDA电平寄存器和SDA控制寄存器控制;所述对所述M个光模块笼子并行进行第一预设地址的探测包括:
a.根据预设的I2C时序确定当前操作以及所述当前操作对应的目标通道,并根据所述当前操作确定待写入所述目标通道对应寄存器的第一寄存器值;
b.读取所述目标通道对应寄存器当前的第二寄存器值;
c.将所述冲突寄存器的值取反后与所述第一寄存器值进行与运算,得到第三寄存器值;将所述冲突寄存器的值与所述第二寄存器值进行与运算,得到第四寄存器值;
d.将所述第三寄存器值与所述第四寄存器值进行或运算,得到第五寄存器值,并将所述第五寄存器值写入所述目标通道对应寄存器;其中,所述目标通道为所述M个通道的SCL通道或所述M个通道的SDA通道,若所述目标通道为所述M个通道的SCL通道,则所述目标通道对应寄存器为所述SCL电平寄存器控制,若所述目标通道为所述M个通道的SDA通道,则所述目标通道对应寄存器为所述SDA电平寄存器或SDA控制寄存器;
按照所述预设的I2C时序重复执行步骤a、步骤b、步骤c、步骤d,直至所述M个通道的SDA通道的状态由输出转为输入;
e.读取所述SDA电平寄存器的第六寄存器值;
f.读取所述第一预设地址对应的在位寄存器的第七寄存器值;
g.将所述冲突寄存器的值取反后与所述第六寄存器值进行与运算,得到第八寄存器值;将所述冲突寄存器的值与所述第七寄存器值进行与运算,得到第九寄存器值;
h.将所述第八寄存器值与所述第九寄存器值进行或运算,得到要写入所述第一预设地址对应的在位寄存器的第十寄存器值,所述第十寄存器值用于指示对所述M个光模块笼子进行第一预设地址的探测后得到的探测结果。
结合第一方面的第二种可能的实现方式,在第四种可能的实现方式中,所述N个通道为N个内部集成电路I2C通道,每个I2C通道包括一个串行时钟SCL通道和一个串行数据SDA通道,所述SCL通道由SCL电平寄存器控制,所述SDA通道由SDA电平寄存器和SDA控制寄存器控制;所述对所述M个光模块笼子并行进行第二预设地址的探测包括:
a.根据预设的I2C时序确定当前操作以及所述当前操作对应的目标通道,并根据所述当前操作确定待写入所述目标通道对应寄存器的第一寄存器值;
b.读取所述目标通道对应寄存器当前的第二寄存器值;
c.将所述冲突寄存器的值取反后与所述第一寄存器值进行与运算,得到第三寄存器值;将所述冲突寄存器的值与所述第二寄存器值进行与运算,得到第四寄存器值;
d.将所述第三寄存器值与所述第四寄存器值进行或运算,得到第五寄存器值,并将所述第五寄存器值写入所述目标通道对应寄存器;其中,所述目标通道为所述M个通道的SCL通道或所述M个通道的SDA通道,若所述目标通道为所述M个通道的SCL通道,则所述目标通道对应寄存器为所述SCL电平寄存器控制,若所述目标通道为所述M个通道的SDA通道,则所述目标通道对应寄存器为所述SDA电平寄存器或SDA控制寄存器;
按照所述预设的I2C时序重复执行步骤a、步骤b、步骤c、步骤d,直至所述M个通道的SDA通道的状态由输出转为输入;
e.读取所述SDA电平寄存器的第六寄存器值;
f.读取所述第二预设地址对应的在位寄存器的第七寄存器值;
g.将所述冲突寄存器的值取反后与所述第六寄存器值进行与运算,得到第八寄存器值;将所述冲突寄存器的值与所述第七寄存器值进行与运算,得到第九寄存器值;
h.将所述第八寄存器值与所述第九寄存器值进行或运算,得到要写入所述第二预设地址对应的在位寄存器的第十寄存器值,所述第十寄存器值用于指示对所述M个光模块笼子进行第二预设地址的探测后得到的探测结果。
结合第一方面的第三种或第四种可能的实现方式,在第五种可能的实现方式中,所述预设的I2C时序依次包括:开始时序、地址探测时序及读/写时序、应答时序和停止时序;
其中,所述开始时序中的操作依次包括:将所述SDA通道的电平置高位、将所述SCL通道的电平置高位、将所述SDA通道的电平置低位、将所述SCL通道的电平置低位;
所述地址探测时序及读/写时序中的操作依次包括:将SDA通道的电平置高位,重复执行I次步骤i、步骤j和步骤k,将SCL通道的电平置低位;其中所述I为预设值,所述步骤i、所述步骤j和所述步骤k分别为:
步骤i.将SCL通道的电平置低位;
步骤j.根据所述第一预设地址或所述第二预设地址设置SDA通道的电平;
步骤k.将SCL通道的电平置高位;
所述应答时序中的操作依次包括:将SCL通道的电平置高位、将SDA通道转为输入状态、设置所述第一预设地址或所述第二预设地址对应的在位寄存器、将SCL通道的电平置低位、将SDA通道转为输出状态;
所述停止时序中的操作依次包括:将SDA通道的电平置低位、将SCL通道的电平置高位、将SDA通道的电平置高位。
结合第二方面,提供一种检测装置,其特征在于,所述检测装置通过N个通道并行连接N个光模块笼子,所述装置包括:
读取模块,用于访问冲突寄存器,根据所述冲突寄存器的值获取所述N个通道的占用状态;
处理模块,用于对所述N个通道中占用状态为未被***软件占用的M个通道所连接的M个光模块笼子进行并行探测,得到探测结果,所述探测结果包括所述M个光模块笼子的光模块在位信息和光模块类型;其中,M、N均为正整数,M小于或等于N;
写入模块,用于将所述探测结果写入在位寄存器,以便所述***软件从所述寄存器中获取所述探测结果。
结合第二方面,在第一种可能的实现方式中,所述处理模块具体用于:
对所述M个光模块笼子并行进行第一预设地址的探测;
其中,对于所述M个光模块笼子中的任一个光模块笼子,若探测出所述第一预设地址没有光模块在位,则确定所述任一个光模块笼子中没有光模块在位;
若探测出所述第一预设地址有光模块在位,则对所述任一个光模块笼子进行第二预设地址的探测;
若探测出所述第二预设地址没有光模块在位,则确定所述任一个光模块笼子中有光模块在位,若探测出所述第二预设地址有光模块在位,则确定所述任一个光模块笼子中有紧凑型光模块在位。
结合第二方面,在第二种可能的实现方式中,所述处理模块具体用于:
对所述M个光模块笼子并行进行第一预设地址的探测;对所述M个光模块笼子并行进行第二预设地址的探测;
其中,对于所述M个光模块笼子中的任一个光模块笼子,
若探测出所述第一预设地址没有光模块在位,则确定所述任一个光模块笼子中没有光模块在位;若探测出所述第一预设地址有光模块在位,且所述第二预设地址没有光模块在位,则确定所述任一个光模块笼子中有光模块在位;若探测出所述第一预设地址有光模块在位,且所述第二预设地址有光模块在位,则确定所述任一个光模块笼子中有紧凑型光模块在位。
结合第二方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述N个通道为N个内部集成电路I2C通道,每个I2C通道包括一个串行时钟SCL通道和一个串行数据SDA通道,所述SCL通道由SCL电平寄存器控制,所述SDA通道由SDA电平寄存器和SDA控制寄存器控制;所述处理模块具体用于:
a.根据预设的I2C时序确定当前操作以及所述当前操作对应的目标通道,并根据所述当前操作确定待写入所述目标通道对应寄存器的第一寄存器值;
b.读取所述目标通道对应寄存器当前的第二寄存器值;
c.将所述冲突寄存器的值取反后与所述第一寄存器值进行与运算,得到第三寄存器值;将所述冲突寄存器的值与所述第二寄存器值进行与运算,得到第四寄存器值;
d.将所述第三寄存器值与所述第四寄存器值进行或运算,得到第五寄存器值,并将所述第五寄存器值写入所述目标通道对应寄存器;其中,所述目标通道为所述M个通道的SCL通道或所述M个通道的SDA通道,若所述目标通道为所述M个通道的SCL通道,则所述目标通道对应寄存器为所述SCL电平寄存器控制,若所述目标通道为所述M个通道的SDA通道,则所述目标通道对应寄存器为所述SDA电平寄存器或SDA控制寄存器;
按照所述预设的I2C时序重复执行步骤a、步骤b、步骤c、步骤d,直至所述M个通道的SDA通道的状态由输出转为输入;
e.读取所述SDA电平寄存器的第六寄存器值;
f.读取所述第一预设地址对应的在位寄存器的第七寄存器值;
g.将所述冲突寄存器的值取反后与所述第六寄存器值进行与运算,得到第八寄存器值;将所述冲突寄存器的值与所述第七寄存器值进行与运算,得到第九寄存器值;
h.将所述第八寄存器值与所述第九寄存器值进行或运算,得到要写入所述第一预设地址对应的在位寄存器的第十寄存器值,所述第十寄存器值用于指示对所述M个光模块笼子进行第一预设地址的探测后得到的探测结果。
结合第二方面的第二种可能的实现方式,在第四种可能的实现方式中,所述N个通道为N个内部集成电路I2C通道,每个I2C通道包括一个串行时钟SCL通道和一个串行数据SDA通道,所述SCL通道由SCL电平寄存器控制,所述SDA通道由SDA电平寄存器和SDA控制寄存器控制;所述处理模块具体用于:
a.根据预设的I2C时序确定当前操作以及所述当前操作对应的目标通道,并根据所述当前操作确定待写入所述目标通道对应寄存器的第一寄存器值;
b.读取所述目标通道对应寄存器当前的第二寄存器值;
c.将所述冲突寄存器的值取反后与所述第一寄存器值进行与运算,得到第三寄存器值;将所述冲突寄存器的值与所述第二寄存器值进行与运算,得到第四寄存器值;
d.将所述第三寄存器值与所述第四寄存器值进行或运算,得到第五寄存器值,并将所述第五寄存器值写入所述目标通道对应寄存器;其中,所述目标通道为所述M个通道的SCL通道或所述M个通道的SDA通道,若所述目标通道为所述M个通道的SCL通道,则所述目标通道对应寄存器为所述SCL电平寄存器控制,若所述目标通道为所述M个通道的SDA通道,则所述目标通道对应寄存器为所述SDA电平寄存器或SDA控制寄存器;
按照所述预设的I2C时序重复执行步骤a、步骤b、步骤c、步骤d,直至所述M个通道的SDA通道的状态由输出转为输入;
e.读取所述SDA电平寄存器的第六寄存器值;
f.读取所述第二预设地址对应的在位寄存器的第七寄存器值;
g.将所述冲突寄存器的值取反后与所述第六寄存器值进行与运算,得到第八寄存器值;将所述冲突寄存器的值与所述第七寄存器值进行与运算,得到第九寄存器值;
h.将所述第八寄存器值与所述第九寄存器值进行或运算,得到要写入所述第二预设地址对应的在位寄存器的第十寄存器值,所述第十寄存器值用于指示对所述M个光模块笼子进行第二预设地址的探测后得到的探测结果。
结合第二方面的第三种或第四种可能的实现方式,在第五种可能的实现方式中,所述预设的I2C时序依次包括:开始时序、地址探测时序及读/写时序、应答时序和停止时序;
其中,所述开始时序中的操作依次包括:将SDA通道的电平置高位、将SCL通道的电平置高位、将SDA通道的电平置低位、将SCL通道的电平置低位;
所述地址探测时序及读/写时序中的操作依次包括:将SDA通道的电平置高位,重复执行I次步骤i、步骤j和步骤k,将SCL通道的电平置低位;其中所述I为预设值,所述步骤i、所述步骤j和所述步骤k分别为:
步骤i.将SCL通道的电平置低位;
步骤j.根据所述第一预设地址或所述第二预设地址设置SDA通道的电平;
步骤k.将SCL通道的电平置高位;
所述应答时序中的操作依次包括:将SCL通道的电平置高位、将SDA通道转为输入状态、设置所述第一预设地址或所述第二预设地址对应的在位寄存器、将SCL通道的电平置低位、将SDA通道转为输出状态;
所述停止时序中的操作依次包括:将SDA通道的电平置低位、将SCL通道的电平置高位、将SDA通道的电平置高位。
本发明实施例提供一种光模块在位检测方法和装置,该检测装置通过N个通道并行连接N个光模块笼子,该装置通过访问冲突寄存器,根据所述冲突寄存器的值获取所述N个通道的占用状态,再对所述N个通道中占用状态为未被***软件占用的M个通道所连接的M个光模块笼子进行并行探测,得到探测结果,所述探测结果包括所述M个光模块笼子的光模块在位信息和光模块类型,最后将所述探测结果写入在位寄存器,所述***软件从所述寄存器中就可以获取所述探测结果,不需要执行除此之外的其他动作,所以CPU占用率很低,并且由于检测装置并行对所述M个光模块笼子进行探测,所以每次探测时间很短,远小于快速拔插操作的时间,因此相比现有技术采用***软件轮询的方式而言,能够在不提高CPU占用率的情况下,实现实时监测光模块笼子中是否有光模块在位,并且能够感知光模块的快速拔插操作。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的应用场景的结构示意图;
图2为本发明实施例提供的光模块在位检测方法的流程示意图;
图3为本发明实施例提供的另一种光模块在位检测方法的流程示意图;
图4为本发明实施例提供的I2C时序图;
图5为本发明实施例提供的光模块在位检测方法中的探测过程的流程示意图;
图6为本发明实施例提供的一种检测装置的结构示意图;
图7为本发明实施例提供的另一种检测装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,为本发明实施例提供的网络设备结构示意图,包括中央处理器(Center Processing Unit,简称CPU),检测装置和多个光模块笼子。本发明实施例提供的网络设备,通过所述检测装置可以实时监测光模块笼子中CSFP、SFP等光模块是否在位,感知光模块快速拔插。其中,该检测装置可以是一种逻辑器件,例如可以是复杂可编程逻辑器件(英文:Complex Programmable Logic Device,简称:CPLD),或者可以是现场可编辑逻辑门阵列(英文:Field Programmable Gate Array,简称:FPGA)。参见图1所示,该检测装置一方面通过I2C通道与中央处理器(Center Processing Unit,简称CPU)连接,另一方面通过I2C通道并行连接每个光模块笼子,也就是,与每个光模块笼子通过一个I2C通道连接。该检测装置可以并行探测多个光模块笼子。其中,每个I2C通道都包括两条线路,一条串行数据(英文:Serial Data,简称:SDA)线,也称为SDA通道,一条串行时钟(英文Serial Clock,简称:SCL)线,也称为SCL通道。每个I2C通道的SDA线和SCL线的一端连接该检测装置的对应引脚,另一端连接一个光模块笼子的对应引脚。当该检测装置对某一个光模块笼子进行探测时,会占用该光模块笼子对应的I2C通道,此时***软件(该***软件可以理解为该检测装置内部一些实现I2C功能的指令集,例如可以是用于控制所述检测装置的***软件,或者也可以是具有特定功能的***软件,例如专门用于判断光模块在位状态、光模块类型的软件等)无法访问(如访问获取厂家信息、功率、电压等信息)该光模块笼子中的光模块;当***软件访问某一个光模块笼子时,该检测装置也无法通过该光模块笼子对应的I2C通道探测该光模块笼子。
本发明实施例中所提及的冲突寄存器,用于存储当前各个光模块笼子的I2C通道是否被***软件占用的占用状态,SCL电平寄存器用于控制SCL通道的电平状态,SDA电平寄存器用于控制SDA通道的电平状态,SDA控制寄存器用于控制SDA通道的输入/输出状态,在位寄存器用于存储探测结果。其中上述冲突寄存器、SCL电平寄存器、SDA电平寄存器、SDA控制寄存器、在位寄存器通常可以设置在该检测装置内。
接下来将结合附图详细描述图1所示的检测装置,和由该检测装置实施的光模块在位检测方法。
如图2所示,本发明实施例提供一种光模块在位检测方法,可应用于如图1所示的检测装置,所述检测装置通过N个通道并行连接N个光模块笼子,所述方法包括:
步骤101、访问冲突寄存器,根据所述冲突寄存器的值获取所述N个通道的占用状态。
步骤102、对所述N个通道中占用状态为未被***软件占用的M个通道所连接的M个光模块笼子进行并行探测,得到探测结果,所述探测结果包括所述M个光模块笼子的光模块在位信息和光模块类型;其中,M、N均为正整数,M小于或等于N。
步骤103、将所述探测结果写入在位寄存器,以便所述***软件从所述寄存器中获取所述探测结果。
本发明实施例提供的光模块在位检测方法中,检测装置N个通道并行连接N个光模块笼子,由检测装置访问冲突寄存器,根据所述冲突寄存器的值获取与该检测装置连接的N个通道的占用状态,再对N个通道中占用状态为未被***软件占用的M个通道所连接的M个光模块笼子进行并行探测,得到探测结果,探测结果包括M个光模块笼子的光模块在位信息和光模块类型,最后将探测结果写入在位寄存器,***软件从所述寄存器中就可以获取所述探测结果,由于***软件只需要读取在位寄存器就可以获得所述要探测的光模块笼子的探测结果,不需要执行除此之外的其他动作,所以CPU占用率很低,并且由于检测装置并行对所述M个光模块笼子进行探测,所以每次探测时间很短,远小于快速拔插操作的时间,因此相比现有技术采用***软件轮询的方式而言,能够在不提高CPU占用率的情况下,实现实时监测光模块笼子中是否有光模块在位,并且能够感知光模块的快速拔插操作。
为了使本领域技术人员能够更清楚地理解本发明实施例提供的技术方案,下面通过具体的实施例,对本发明的实施例提供的光模块在位检测方法进行详细说明,该光模块在位检测方法可以由一检测装置执行,该检测装置可以是前文所述的逻辑器件,其结构如前文所述,不再赘述,如图3所示,该方法包括:
步骤201、检测装置访问冲突寄存器,根据所述冲突寄存器的值获取所述N个通道的占用状态。其中,在本实施例中,所述N个通道均可以为前述的I2C通道。
具体的,冲突寄存器的寄存器值可以用来表示所述N个通道的占用状态,例如,该冲突寄存器为32位寄存器,则冲突寄存器的值为32bit,则N就为32,假设当前该冲突寄存器的值为十六进制的0x00000001,转换为二进制值即为00000000000000000000000000000001,分别标识32个通道的占用状态,其中0表示未占用,1表示已占用。假设32个通道分别为通道0~31,则根据上述冲突寄存器的值可知通道0~30未被占用,通道31被占用,未被占用的通道0~30可以进行探测,通道31由于被***软件占用,因此在检测时应跳过该通道,不对其进行检测。另外,这里的通道均为上述I2C通道,为了方便说明在后文实施例中所提及的所有寄存器都默认为32位寄存器。
另外,值得一提的是,在一次检测过程中,逻辑器件访问一次冲突寄存器即可,且由于冲突寄存器的值反映了***软件对各个通道的占用情况,因此逻辑器件不能对冲突寄存器的值进行修改。
步骤202、检测装置对所述N个通道中占用状态为未被***软件占用的M个通道所连接的M个光模块笼子进行并行探测,得到探测结果。其中,M、N均为正整数,M小于或等于N。
具体的,对光模块笼子中是否有光模块在位的探测可以通过对光模块的第一预设地址和第二预设地址进行探测来实现,该第一预设地址和第二预设地址为光模块常用I2C地址。例如,本文中的第一预设地址可以为0x50,第二预设地址分别可以为0x52,其中探测0x50后的结果和探测0x52后的结果,要分别存入与0x50和0x52对应的在位寄存器。
下面首先以对所述M个光模块笼子并行进行第一预设地址的探测为例进行说明,如图5所示,其步骤可以包括:
步骤2021、据预设的I2C时序确定当前操作以及所述当前操作对应的目标通道,并根据所述当前操作确定待写入所述目标通道对应寄存器的第一寄存器值。
其中,通常的I2C时序可以如图4所示,本发明实施例中的预设的I2C时序与图4所示时序不同,只依次执行图4所示的开始时序(START)、地址探测时序(ADRESS)及读/写时序应答时序(ACK)(仅图4中的第一个应答)和停止时序(STOP)。
每个时序都包括了若干对SDA通道和SCL通道的操作,具体的,在本发明实施例的预设的I2C时序中,各个时序所包括的操作、操作的目标通道以及操作顺序如下所示:
开始时序中的操作依次包括:将SDA通道的电平置高位、将SCL通道的电平置高位、将所述SDA通道的电平置低位、将SCL通道的电平置低位;
地址探测时序及读/写时序中的操作依次包括:将SDA通道的电平置高位,重复执行I次步骤i、步骤j和步骤k,将SCL通道的电平置低位;其中I是可以为预设值,例如在I2C协议中规定,I可以为8,步骤i、步骤j和步骤k分别为:
步骤i.将SCL通道的电平置低位;
步骤j.根据第一预设地址或第二预设地址设置SDA通道的电平;其中,由于步骤2021~2028是对该M个光模块笼子进行第一预设地址的探测,所以在执行上述8次步骤j时,应根据第一预设地址设置SDA通道的电平,以地址0x50为例,0x50对应的二进制值为01010000,将01010000左移一位得到10100000,则在地址探测时序及读/写时序中重复执行的8次步骤j可以依次为:将SDA通道的电平置高位、将SDA通道的电平置低位、将SDA通道的电平置高位、将SDA通道的电平置低位、将SDA通道的电平置低位、将SDA通道的电平置低位、将SDA通道的电平置低位、将SDA通道的电平置低位。与0x50同理,0x52,对应的二进制值为01010010,左移一位得到10100100,对应的地址探测时序及读/写时序中重复执行的8次步骤j可以依次为:将SDA通道的电平置高位、将SDA通道的电平置低位、将SDA通道的电平置高位、将SDA通道的电平置低位、将SDA通道的电平置低位、将SDA通道的电平置高位、将SDA通道的电平置低位、将SDA通道的电平置低位。
步骤k.将SCL通道的电平置高位;
应答时序中的操作依次包括:将SCL通道的电平置高位、将SDA通道转为输入状态、设置第一预设地址或第二预设地址对应的在位寄存器、将SCL通道的电平置低位、将SDA通道转为输出状态;
停止时序中的操作依次包括:将SDA通道的电平置低位、将SCL通道的电平置高位、将SDA通道的电平置高位。
其中,上述将SCL通道或SDA通道置高位,是指要向SCL电平寄存器或SDA电平寄存器写1,上述将SCL通道或SDA通道置低位,是指要向SCL电平寄存器或SDA电平寄存器写0。
示例性的,假设根据当前的时序确定当前要执行的操作为开始时序中的“将SDA通道的电平置高位”,则确定目标通道为所述M个通道的SDA通道,目标通道对应的寄存器为SDA电平寄存器,由此可以确定要写入SDA电平寄存器的第一寄存器值应为0xffffffff(即相当于二进制的11111111111111111111111111111111)。又假设根据当前的时序确定当前要执行的操作为地址探测时序及读/写时序中的“将SCL通道的电平置低位”,则确定目标通道为所述M个通道的SCL通道,目标通道对应的寄存器为SCL电平寄存器,由此可以确定要写入SCL电平寄存器的第一寄存器值应为0x00000000(即相当于二进制的00000000000000000000000000000000),又或者,假设根据当前的时序确定当前要执行的操作为应答时序中的“将SDA通道转为输入状态”,则确定目标通道为所述M个通道的SDA通道,此时目标通道对应的寄存器应为SDA电平寄存器。
步骤2022、读取所述目标通道对应寄存器当前的第二寄存器值。
如步骤2021所述,若目标通道为所述M个通道的SDA通道,则第二寄存器值应当从SDA电平寄存中读取,但是若当前操作为应答时序中的“将SDA通道转为输入状态”或“将SDA通道转为输出状态”时,第二寄存器值应当从SDA控制寄存中读取;若目标通道为所述M个通道的SCL通道,则第二寄存器值应当从SCL电平寄存中读取。
步骤2023、将冲突寄存器的值取反后与第一寄存器值进行与运算,得到第三寄存器值,将冲突寄存器的值与第二寄存器值进行与运算,得到第四寄存器值。
步骤2024、将第三寄存器值与第四寄存器值进行或运算,得到第五寄存器值,并将第五寄存器值写入目标通道对应寄存器。
其中,步骤2023和步骤2024可以简单得用以下公式表示:
D=((A&~C)|(B&C))
其中,C表示冲突寄存器的值,A为上述第一寄存器值,B为第二寄存器值,D表示运算后要存入目标通道对应寄存器(也就是得到B的寄存器,相当于将该寄存器的值由B更新为D)的上述第五寄存器值。
上述步骤中,上述第一寄存器值的值和的第二寄存器值是根据开始时序中的“将SDA通道的电平置高位”操作确定的,在执行完步骤2024后,应根据开始时序中的“将SCL通道的电平置高位”操作确定的第一寄存器值的值和的第二寄存器值,而后再次执行步骤2021~步骤2024,以此类推,按照步骤2021中所示的预设I2C时序指示的执行顺序,以及每个时序中的每个操作的执行顺序,重复执行步骤2021~步骤2024,直至完成应答时序中的“将SDA通道转为输入状态”操作。而后执行,以下步骤:
步骤2025、读取SDA电平寄存器的第六寄存器值。
步骤2026、读取第一预设地址对应的在位寄存器的第七寄存器值。
其中,在位寄存器应为两个,一个为第一预设地址对应的在位寄存器,另一个为第二预设地址对应的在位寄存器,例如0x50对应一个在位寄存器,0x52对应一个在位寄存器。如此次探测是探测0x50,则应该在0x50对应的在位寄存器中读取第七寄存器值。
步骤2027、将冲突寄存器的值取反后与第六寄存器值进行与运算,得到第八寄存器值;将冲突寄存器的值与所述第七寄存器值进行与运算,得到第九寄存器值。
步骤2028、将第八寄存器值与第九寄存器值进行或运算,得到要写入第一预设地址对应的在位寄存器的第十寄存器值,第十寄存器值用于指示对M个光模块笼子进行第一预设地址的探测后得到的探测结果。
其中,步骤2027和步骤2028可以简单得用以下公式表示:
D=((A&~C)|(B&C))
其中,C表示冲突寄存器的值,A为上述第六寄存器值,B为第七寄存器值,D表示运算后要存入第一预设地址对应的在位寄存器(也就是得到B的寄存器,相当于将该寄存器的值由B更新为D)的上述第十寄存器值。
在步骤2028后,按照预设的I2C时序还应该依次执行应答时序中的“将SCL通道的电平置低位、将SDA通道转为输出状态”操作,以及停止时序中的操作,其过程与步骤2021至2024完全相同,不再赘述。
综上所述,执行完上述操作就完成了对所述M个光模块笼子的第一预设地址的探测,而后的执行步骤可以分为以下两种方式:
第一种,对于所述M个光模块笼子中的任一个光模块笼子,若探测出第一预设地址的在位状态为不在位,则确定所述任一个光模块笼子中没有光模块在位,不对该光模块笼子进行第二预设地址的探测;
若探测出第一预设地址的在位状态为在位,则对所述任一个光模块笼子继续进行第二预设地址的探测。
第二种,无论探测出第一预设地址的在位状态为不在位还是在位,都对所述任一个光模块笼子继续进行第二预设地址的探测,即:
对所述M个光模块笼子并行进行第一预设地址的探测,而后对所述M个光模块笼子并行进行第二预设地址的探测。
其中,对所述任一个光模块笼子继续进行第二预设地址探测的过程与对所述任一个光模块笼子继续进行第一预设地址探测的过程中,不同之处在于:读取第七寄存器值从第二预设地址对应的在位寄存器中读取,以及得到第十寄存器值是要写入第二预设地址对应的在位寄存器的第十寄存器值,除此之外,其余步骤与对所述任一个光模块笼子继续进行第一预设地址探测中的步骤完全相同,不再赘述。
步骤203、检测装置将所述探测结果写入在位寄存器。
具体的,与步骤2028对应,将对第一预设地址进行探测得到的第十寄存器值写入第一预设地址对应的在位寄存器,将对第二预设地址进行探测得到的第十寄存器值写入第二预设地址对应的在位寄存器。上述第一预设地址对应的在位寄存器中的值和第二预设地址对应的在位寄存器中的值就是所述探测结果,这两个在位寄存器的值中的每个bit能够表示该bit对应的光模块笼子的第一预设地址或第二预设地址的在位状态,根据任一个光模块笼子对应的第一预设地址在位状态和第二预设地址的在位状态,就能够描述该光模块笼子的光模块在位信息和光模块类型,其中光模块在位信息包括:有光模块在位和,没有光模块在位,光模块类型包括光模块和紧凑型光模块。
步骤204、***软件从寄存器中获取所述探测结果。
最终***软件在根据第一预设地址对应的在位寄存器种的值以及第二预设地址对应的在位寄存器中的值就能够得知各个光模块笼子中光模块的第一预设地址的探测结果和第二预设地址的探测结果,从而判断出各个光模块笼子中光模块是否在为,其判断可以通过以下方法:
对于任一个光模块,若探测出第一预设地址的在位状态为不在位,则确定所述任一个光模块笼子中没有光模块在位;若探测出第一预设地址的在位状态为在位,且第二预设地址的在位状态为不在位,则确定所述任一个光模块笼子中有光模块在位;若探测出第一预设地址的在位状态为在位,且第二预设地址的在位状态为在位,则确定所述任一个光模块笼子中有紧凑型光模块在位。
综上所述,每执行一次步骤201~204为逻辑器件对所连接的N个光模块笼子进行的一次探测,通过I2C电路实现了对多个光模块笼子进行同时探测,每次探测时间很短,并且由于仅执行了传统I2C时序中的部分时序,因此进一步缩短了探测时间,一次探测的通常不超过1ms,因此能够实时监测光模块笼子中是否有光模块在位,并且,1ms远远小于管理人员对光模块进行快速拔插操作的时间,所以能识别光模块的快速拔插操作,并且由于***软件只需要读取在位寄存器就可以获得所述要探测的光模块笼子的探测结果,不需要执行除此之外的其他动作,所以CPU占用率很低,因此相比现有技术采用***软件轮询的方式而言,本发明实施例提供的上述光模块在位检测方法,能够在不提高CPU占用率的情况下,实现实时监测光模块笼子中是否有光模块在位,并且能够感知光模块的快速拔插操作。
本发明实施还提供一种检测装置01,如图6所示,所述检测装置01通过N个通道并行连接N个光模块笼子,所述检测装置01包括:
读取模块011,用于访问冲突寄存器,根据所述冲突寄存器的值获取所述N个通道的占用状态;
处理模块012,用于对所述N个通道中占用状态为未被***软件占用的M个通道所连接的M个光模块笼子进行并行探测,得到探测结果,所述探测结果包括所述M个光模块笼子的光模块在位信息和光模块类型;其中,M、N均为正整数,M小于或等于N;
写入模块013,用于将所述探测结果写入在位寄存器,以便所述***软件从所述寄存器中获取所述探测结果。
可选的,所述处理模块012可以具体用于:
对所述M个光模块笼子并行进行第一预设地址的探测;
其中,对于所述M个光模块笼子中的任一个光模块笼子,若探测出所述第一预设地址没有光模块在位,则确定所述任一个光模块笼子中没有光模块在位;
若探测出所述第一预设地址有光模块在位,则对所述任一个光模块笼子进行第二预设地址的探测;
若探测出所述第二预设地址没有光模块在位,则确定所述任一个光模块笼子中有光模块在位,若探测出所述第二预设地址有光模块在位,则确定所述任一个光模块笼子中有紧凑型光模块在位。
可选的,所述处理模块012可以具体用于:
对所述M个光模块笼子并行进行第一预设地址的探测;对所述M个光模块笼子并行进行第二预设地址的探测;
其中,对于所述M个光模块笼子中的任一个光模块笼子,
若探测出所述第一预设地址没有光模块在位,则确定所述任一个光模块笼子中没有光模块在位;若探测出所述第一预设地址有光模块在位,且所述第二预设地址没有光模块在位,则确定所述任一个光模块笼子中有光模块在位;若探测出所述第一预设地址有光模块在位,且所述第二预设地址有光模块在位,则确定所述任一个光模块笼子中有紧凑型光模块在位。
可选的,所述N个通道为N个I2C通道,每个I2C通道包括一个串行时钟SCL通道和一个串行数据SDA通道,所述SCL通道由SCL电平寄存器控制,所述SDA通道由SDA电平寄存器和SDA控制寄存器控制;
所述处理模块可以具体用于:
a.根据预设的I2C时序确定当前操作以及所述当前操作对应的目标通道,并根据所述当前操作确定待写入所述目标通道对应寄存器的第一寄存器值;
b.读取所述目标通道对应寄存器当前的第二寄存器值;
c.将所述冲突寄存器的值取反后与所述第一寄存器值进行与运算,得到第三寄存器值;将所述冲突寄存器的值与所述第二寄存器值进行与运算,得到第四寄存器值;
d.将所述第三寄存器值与所述第四寄存器值进行或运算,得到第五寄存器值,并将所述第五寄存器值写入所述目标通道对应寄存器;其中,所述目标通道为所述M个通道的SCL通道或所述M个通道的SDA通道,若所述目标通道为所述SCLM个通道的通道,则所述目标通道对应寄存器为所述SCL电平寄存器控制,若所述目标通道为所述M个通道的SDA通道,则所述目标通道对应寄存器为所述SDA电平寄存器或SDA控制寄存器;
按照所述预设的I2C时序重复执行步骤a、步骤b、步骤c、步骤d,直至所述M个通道的SDA通道的状态由输出转为输入;
e.读取所述SDA电平寄存器的第六寄存器值;
f.读取所述第一预设地址对应的在位寄存器的第七寄存器值;
g.将所述冲突寄存器的值取反后与所述第六寄存器值进行与运算,得到第八寄存器值;将所述冲突寄存器的值与所述第七寄存器值进行与运算,得到第九寄存器值;
h.将所述第八寄存器值与所述第九寄存器值进行或运算,得到要写入所述第一预设地址对应的在位寄存器的第十寄存器值,所述第十寄存器值用于指示对所述M个光模块笼子进行第一预设地址的探测后得到的探测结果。
可选的,所述处理模块还可以具体用于(需要注意的是,以下步骤中的第一寄存器值至第十寄存器值与前述对第一预设地址进行探测过程中出现的第一寄存器值至第十寄存器值是不同的寄存器值):
a.根据预设的I2C时序确定当前操作以及所述当前操作对应的目标通道,并根据所述当前操作确定待写入所述目标通道对应寄存器的第一寄存器值;
b.读取所述目标通道对应寄存器当前的第二寄存器值;
c.将所述冲突寄存器的值取反后与所述第一寄存器值进行与运算,得到第三寄存器值;将所述冲突寄存器的值与所述第二寄存器值进行与运算,得到第四寄存器值;
d.将所述第三寄存器值与所述第四寄存器值进行或运算,得到第五寄存器值,并将所述第五寄存器值写入所述目标通道对应寄存器;其中,所述目标通道为所述M个通道的SCL通道或所述M个通道的SDA通道,若所述目标通道为所述M个通道的SCL通道,则所述目标通道对应寄存器为所述SCL电平寄存器控制,若所述目标通道为所述M个通道的SDA通道,则所述目标通道对应寄存器为所述SDA电平寄存器或SDA控制寄存器;
按照所述预设的I2C时序重复执行步骤a、步骤b、步骤c、步骤d,直至所述M个通道的SDA通道的状态由输出转为输入;
e.读取所述SDA电平寄存器的第六寄存器值;
f.读取所述第二预设地址对应的在位寄存器的第七寄存器值;
g.将所述冲突寄存器的值取反后与所述第六寄存器值进行与运算,得到第八寄存器值;将所述冲突寄存器的值与所述第七寄存器值进行与运算,得到第九寄存器值;
h.将所述第八寄存器值与所述第九寄存器值进行或运算,得到要写入所述第二预设地址对应的在位寄存器的第十寄存器值,所述第十寄存器值用于指示对所述M个光模块笼子进行第二预设地址的探测后得到的探测结果。
可选的,所述预设的I2C时序依次包括:开始时序、地址探测时序及读/写时序、应答时序和停止时序;
其中,所述开始时序中的操作依次包括:将SDA通道的电平置高位、将SCL通道的电平置高位、将SDA通道的电平置低位、将SCL通道的电平置低位;
所述地址探测时序及读/写时序中的操作依次包括:将SDA通道的电平置高位,重复执行I次步骤i、步骤j和步骤k,将SCL通道的电平置低位;其中所述I为预设值,所述步骤i、所述步骤j和所述步骤k分别为:
步骤i.将SCL通道的电平置低位;
步骤j.根据所述第一预设地址或所述第二预设地址设置SDA通道的电平;
步骤k.将SCL通道的电平置高位;
所述应答时序中的操作依次包括:将SCL通道的电平置高位、将SDA通道转为输入状态、设置所述第一预设地址或所述第二预设地址对应的在位寄存器、将SCL通道的电平置低位、将SDA通道转为输出状态;
所述停止时序中的操作依次包括:将SDA通道的电平置低位、将SCL通道的电平置高位、将SDA通道的电平置高位。
本实施例用于实现上述各方法实施例,本实施例中各个模块的工作流程和工作原理参见上述各方法实施例中的描述,在此不再赘述。
综上所述,本发明实施例提供的检测装置通过N个通道并行连接N个光模块笼子,通过该检测装置访问冲突寄存器,根据所述冲突寄存器的值获取与该检测装置连接的N个通道的占用状态,再对N个通道中占用状态为未被***软件占用的M个通道所连接的M个光模块笼子进行探测,得到探测结果,探测结果用于描述M个光模块笼子的光模块在位信息和光模块类型,最后将探测结果写入在位寄存器,***软件从所述寄存器中就可以获取所述探测结果,由于***软件只需要读取在位寄存器就可以获得所述要探测的光模块笼子的探测结果,不需要执行除此之外的其他动作,所以CPU占用率很低,并且由于检测装置并行对所述M个光模块笼子进行探测,所以每次探测时间很短,远小于快速拔插操作的时间,因此相比现有技术采用***软件轮询的方式而言,能够在不提高CPU占用率的情况下,实现实时监测光模块笼子中是否有光模块在位,并且能够感知光模块的快速拔插操作。
本发明实施还提供一种检测装置02,检测装置02通过N个通道并行连接N个光模块笼子,其连接关系可以如图1所示的检测装置与N个光模块笼子的连接关系,此处不再赘述;该检测装置02可以为一逻辑器件,如图7所示,检测装置02包括:逻辑功能块阵列021,I/O(输入/输出)单元022,冲突寄存器023、SCL电平寄存器024、SDA电平寄存器025、SDA控制寄存器026和在位寄存器027,逻辑功能块阵列021包括多个逻辑功能块。逻辑功能块阵列021与冲突寄存器023、SCL电平寄存器024、SDA电平寄存器025、SDA控制寄存器026、在位寄存器027以及I/O单元022通过布线互联,逻辑功能块阵列021通过控制I/O单元022用于:
访问冲突寄存器025,根据所述冲突寄存器025的值获取所述N个通道的占用状态;
对所述N个通道中占用状态为未被***软件占用的M个通道所连接的M个光模块笼子进行并行探测,得到探测结果,所述探测结果包括所述M个光模块笼子的光模块在位信息和光模块类型;其中,M、N均为正整数,M小于或等于N;
将所述探测结果写入在位寄存器027,以便所述***软件从所述寄存器027中获取所述探测结果。其中,在位寄存器027包括两个寄存器,分别为第一预设地址对应的在位寄存器0271和第二预设地址对应的在位寄存器0272,其中第一预设地址可以为0x50,第二预设地址可以为0x52。
可选的,在一种实现方式中,所述逻辑功能块阵列021通过控制I/O单元022具体用于:
对所述M个光模块笼子并行进行第一预设地址的探测;
其中,对于所述M个光模块笼子中的任一个光模块笼子,若探测出所述第一预设地址的在位状态为不在位,则确定所述任一个光模块笼子中没有光模块在位;
若探测出所述第一预设地址的在位状态为在位,则对所述任一个光模块笼子进行第二预设地址的探测;
若探测出所述第二预设地址的在位状态为不在位,则确定所述任一个光模块笼子中有光模块在位,若探测出所述第二预设地址的在位状态为在位,则确定所述任一个光模块笼子中有紧凑型光模块在位。
或者,可选的,在另一种实现方式中,所述逻辑功能块阵列021通过控制I/O单元022可以具体用于:
对所述M个光模块笼子并行进行第一预设地址的探测;对所述M个光模块笼子并行进行第二预设地址的探测;
其中,对于所述M个光模块笼子中的任一个光模块笼子,
若探测出所述第一预设地址的在位状态为不在位,则确定所述任一个光模块笼子中没有光模块在位;若探测出所述第一预设地址的在位状态为在位,且所述第二预设地址的在位状态为不在位,则确定所述任一个光模块笼子中有光模块在位;若探测出所述第一预设地址的在位状态为在位,且所述第二预设地址的在位状态为在位,则确定所述任一个光模块笼子中有紧凑型光模块在位。
可选的,所述N个通道为N个I2C通道,每个I2C通道包括一个串行时钟SCL通道和一个串行数据SDA通道,所述SCL通道由SCL电平寄存器024控制,所述SDA通道由SDA电平寄存器025和SDA控制寄存器026控制;
所述逻辑功能块阵列021通过控制I/O单元022可以具体用于:
a.根据预设的I2C时序确定当前操作以及所述当前操作对应的目标通道,并根据所述当前操作确定待写入所述目标通道对应寄存器的第一寄存器值;
b.读取所述目标通道对应寄存器当前的第二寄存器值;
c.将所述冲突寄存器023的值取反后与所述第一寄存器值进行与运算,得到第三寄存器值;将所述冲突寄存器021的值与所述第二寄存器值进行与运算,得到第四寄存器值;
d.将所述第三寄存器值与所述第四寄存器值进行或运算,得到第五寄存器值,并将所述第五寄存器值写入所述目标通道对应寄存器;其中,所述目标通道为所述M个通道的SCL通道或所述M个通道的SDA通道,若所述目标通道为所述M个通道的SCL通道,则所述目标通道对应寄存器为所述SCL电平寄存器024控制,若所述目标通道为所述M个通道的SDA通道,则所述目标通道对应寄存器为所述SDA电平寄存器025或SDA控制寄存器026;
按照所述预设的I2C时序重复执行步骤a、步骤b、步骤c、步骤d,直至所述M个通道的SDA通道的状态由输出转为输入;
e.读取所述SDA电平寄存器025的第六寄存器值;
f.读取所述第一预设地址对应的在位寄存器0271的第七寄存器值;
g.将所述冲突寄存器023的值取反后与所述第六寄存器值进行与运算,得到第八寄存器值;将所述冲突寄存器023的值与所述第七寄存器值进行与运算,得到第九寄存器值;
h.将所述第八寄存器值与所述第九寄存器值进行或运算,得到要写入所述第一预设地址对应的在位寄存器0271的第十寄存器值,所述第十寄存器值用于指示对所述M个光模块笼子进行第一预设地址的探测后得到的探测结果。
可选的,所述逻辑功能块阵列021通过控制I/O单元022还可以具体用于(需要注意的是,以下步骤中的第一寄存器值至第十寄存器值与前述对第一预设地址进行探测过程中出现的第一寄存器值至第十寄存器值是不同的寄存器值):
a.根据预设的I2C时序确定当前操作以及所述当前操作对应的目标通道,并根据所述当前操作确定待写入所述目标通道对应寄存器的第一寄存器值;
b.读取所述目标通道对应寄存器当前的第二寄存器值;
c.将所述冲突寄存器023的值取反后与所述第一寄存器值进行与运算,得到第三寄存器值;将所述冲突寄存器023的值与所述第二寄存器值进行与运算,得到第四寄存器值;
d.将所述第三寄存器值与所述第四寄存器值进行或运算,得到第五寄存器值,并将所述第五寄存器值写入所述目标通道对应寄存器;其中,所述目标通道为所述M个通道的SCL通道或所述M个通道的SDA通道,若所述目标通道为所述M个通道的SCL通道,则所述目标通道对应寄存器为所述SCL电平寄存器024控制,若所述目标通道为所述M个通道的SDA通道,则所述目标通道对应寄存器为所述SDA电平寄存器025或SDA控制寄存器026;
按照所述预设的I2C时序重复执行步骤a、步骤b、步骤c、步骤d,直至所述M个通道的SDA通道的状态由输出转为输入;
e.读取所述SDA电平寄存器025的第六寄存器值;
f.读取所述第二预设地址对应的在位寄存器0272的第七寄存器值;
g.将所述冲突寄存器023的值取反后与所述第六寄存器值进行与运算,得到第八寄存器值;将所述冲突寄存器023的值与所述第七寄存器值进行与运算,得到第九寄存器值;
h.将所述第八寄存器值与所述第九寄存器值进行或运算,得到要写入所述第二预设地址对应的在位寄存器0272的第十寄存器值,所述第十寄存器值用于指示对所述M个光模块笼子进行第二预设地址的探测后得到的探测结果。
可选的,所述预设的I2C时序依次包括:开始时序、地址探测时序及读/写时序、应答时序和停止时序;
其中,所述开始时序中的操作依次包括:将SDA通道的电平置高位、将SCL通道的电平置高位、将SDA通道的电平置低位、将SCL通道的电平置低位;
所述地址探测时序及读/写时序中的操作依次包括:将SDA通道的电平置高位,重复执行I次步骤i、步骤j和步骤k,将SCL通道的电平置低位;其中所述I为预设值,所述步骤i、所述步骤j和所述步骤k分别为:
步骤i.将SCL通道的电平置低位;
步骤j.根据所述第一预设地址或所述第二预设地址设置SDA通道的电平;
步骤k.将SCL通道的电平置高位;
所述应答时序中的操作依次包括:将SCL通道的电平置高位、将SDA通道转为输入状态、设置所述第一预设地址或所述第二预设地址对应的在位寄存器、将SCL通道的电平置低位、将SDA通道转为输出状态;
所述停止时序中的操作依次包括:将SDA通道的电平置低位、将SCL通道的电平置高位、将SDA通道的电平置高位。
另外,本实施例中的检测装置可以为前述的逻辑器件,该逻辑器件可以为CPLD或者FPGA,若为CPLD,逻辑功能块阵列021可以是由功能块(英文:Function Block,简称:FB)组成的阵列;若为FPGA,则逻辑功能块阵列021可以是由可编程逻辑块(英文:ConfigurableLogic Block,简称CLB)组成的阵列。另外上述I/O单元可以为多个,可以分布在逻辑功能块阵列021四周,可作为逻辑功能块阵列021与外部封装引脚的接口。
本实施例用于实现上述各方法实施例,本实施例中各个模块的工作流程和工作原理参见上述各方法实施例中的描述,在此不再赘述。
综上所述,本发明实施例提供的检测装置通过N个通道并行连接N个光模块笼子,通过该检测装置访问冲突寄存器,根据所述冲突寄存器的值获取与该检测装置连接的N个通道的占用状态,再对N个通道中占用状态为未被***软件占用的M个通道所连接的M个光模块笼子进行探测,得到探测结果,探测结果用于描述M个光模块笼子的光模块在位信息和光模块类型,最后将探测结果写入在位寄存器,***软件从所述寄存器中就可以获取所述探测结果,由于***软件只需要读取在位寄存器就可以获得所述要探测的光模块笼子的探测结果,不需要执行除此之外的其他动作,所以CPU占用率很低,并且由于检测装置并行对所述M个光模块笼子进行探测,所以每次探测时间很短,远小于快速拔插操作的时间,因此相比现有技术采用***软件轮询的方式而言,能够在不提高CPU占用率的情况下,实现实时监测光模块笼子中是否有光模块在位,并且能够感知光模块的快速拔插操作。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加***软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (14)
1.一种光模块在位检测方法,其特征在于,应用于一种检测装置,所述检测装置通过N个通道并行连接N个光模块笼子,所述方法包括:
访问冲突寄存器,根据所述冲突寄存器的值获取所述N个通道的占用状态;
对所述N个通道中占用状态为未被***软件占用的M个通道所连接的M个光模块笼子进行并行探测,得到探测结果,所述探测结果包括所述M个光模块笼子的光模块在位信息和光模块类型;其中,M、N均为正整数,M小于或等于N;
将所述探测结果写入在位寄存器,以便所述***软件从所述寄存器中获取所述探测结果。
2.根据权利要求1所述的方法,其特征在于,所述对所述N个通道中占用状态为未被***软件占用的M个通道所连接的M个光模块笼子进行并行探测,得到探测结果包括:
对所述M个光模块笼子并行进行第一预设地址的探测;
其中,对于所述M个光模块笼子中的任一个光模块笼子,若探测出所述第一预设地址的在位状态为不在位,则确定所述任一个光模块笼子中没有光模块在位;
若探测出所述第一预设地址的在位状态为在位,则对所述任一个光模块笼子进行第二预设地址的探测;
若探测出所述第二预设地址的在位状态为不在位,则确定所述任一个光模块笼子中有光模块在位,若探测出所述第二预设地址的在位状态为在位,则确定所述任一个光模块笼子中有紧凑型光模块在位。
3.根据权利要求1所述的方法,其特征在于,所述对所述N个通道中占用状态为未被***软件占用的M个通道所连接的M个光模块笼子进行并行探测,得到探测结果包括:
对所述M个光模块笼子并行进行第一预设地址的探测;对所述M个光模块笼子并行进行第二预设地址的探测;
其中,对于所述M个光模块笼子中的任一个光模块笼子,
若探测出所述第一预设地址的在位状态为不在位,则确定所述任一个光模块笼子中没有光模块在位;若探测出所述第一预设地址的在位状态为在位,且所述第二预设地址的在位状态为不在位,则确定所述任一个光模块笼子中有光模块在位;若探测出所述第一预设地址的在位状态为在位,且所述第二预设地址的在位状态为在位,则确定所述任一个光模块笼子中有紧凑型光模块在位。
4.根据权利要求2或3所述的方法,其特征在于,所述N个通道为N个内部集成电路I2C通道,每个I2C通道包括一个串行时钟SCL通道和一个串行数据SDA通道,所述SCL通道由SCL电平寄存器控制,所述SDA通道由SDA电平寄存器和SDA控制寄存器控制;所述对所述M个光模块笼子并行进行第一预设地址的探测包括:
a.根据预设的I2C时序确定当前操作以及所述当前操作对应的目标通道,并根据所述当前操作确定待写入所述目标通道对应寄存器的第一寄存器值;
b.读取所述目标通道对应寄存器当前的第二寄存器值;
c.将所述冲突寄存器的值取反后与所述第一寄存器值进行与运算,得到第三寄存器值;将所述冲突寄存器的值与所述第二寄存器值进行与运算,得到第四寄存器值;
d.将所述第三寄存器值与所述第四寄存器值进行或运算,得到第五寄存器值,并将所述第五寄存器值写入所述目标通道对应寄存器;其中,所述目标通道为所述M个通道的SCL通道或所述M个通道的SDA通道,若所述目标通道为所述M个通道的SCL通道,则所述目标通道对应寄存器为所述SCL电平寄存器控制,若所述目标通道为所述M个通道的SDA通道,则所述目标通道对应寄存器为所述SDA电平寄存器或SDA控制寄存器;
按照所述预设的I2C时序重复执行步骤a、步骤b、步骤c、步骤d,直至所述M个通道的SDA通道的状态由输出转为输入;
e.读取所述SDA电平寄存器的第六寄存器值;
f.读取所述第一预设地址对应的在位寄存器的第七寄存器值;
g.将所述冲突寄存器的值取反后与所述第六寄存器值进行与运算,得到第八寄存器值;将所述冲突寄存器的值与所述第七寄存器值进行与运算,得到第九寄存器值;
h.将所述第八寄存器值与所述第九寄存器值进行或运算,得到要写入所述第一预设地址对应的在位寄存器的第十寄存器值,所述第十寄存器值用于指示对所述M个光模块笼子进行第一预设地址的探测后得到的探测结果。
5.根据权利要求3所述的方法,其特征在于,所述N个通道为N个内部集成电路I2C通道,每个I2C通道包括一个串行时钟SCL通道和一个串行数据SDA通道,所述SCL通道由SCL电平寄存器控制,所述SDA通道由SDA电平寄存器和SDA控制寄存器控制;所述对所述M个光模块笼子并行进行第二预设地址的探测包括:
a.根据预设的I2C时序确定当前操作以及所述当前操作对应的目标通道,并根据所述当前操作确定待写入所述目标通道对应寄存器的第一寄存器值;
b.读取所述目标通道对应寄存器当前的第二寄存器值;
c.将所述冲突寄存器的值取反后与所述第一寄存器值进行与运算,得到第三寄存器值;将所述冲突寄存器的值与所述第二寄存器值进行与运算,得到第四寄存器值;
d.将所述第三寄存器值与所述第四寄存器值进行或运算,得到第五寄存器值,并将所述第五寄存器值写入所述目标通道对应寄存器;其中,所述目标通道为所述M个通道的SCL通道或所述M个通道的SDA通道,若所述目标通道为所述M个通道的SCL通道,则所述目标通道对应寄存器为所述SCL电平寄存器控制,若所述目标通道为所述M个通道的SDA通道,则所述目标通道对应寄存器为所述SDA电平寄存器或SDA控制寄存器;
按照所述预设的I2C时序重复执行步骤a、步骤b、步骤c、步骤d,直至所述M个通道的SDA通道的状态由输出转为输入;
e.读取所述SDA电平寄存器的第六寄存器值;
f.读取所述第二预设地址对应的在位寄存器的第七寄存器值;
g.将所述冲突寄存器的值取反后与所述第六寄存器值进行与运算,得到第八寄存器值;将所述冲突寄存器的值与所述第七寄存器值进行与运算,得到第九寄存器值;
h.将所述第八寄存器值与所述第九寄存器值进行或运算,得到要写入所述第二预设地址对应的在位寄存器的第十寄存器值,所述第十寄存器值用于指示对所述M个光模块笼子进行第二预设地址的探测后得到的探测结果。
6.根据权利要求4所述的方法,其特征在于,所述预设的I2C时序依次包括:开始时序、地址探测时序及读/写时序、应答时序和停止时序;
其中,所述开始时序中的操作依次包括:将SDA通道的电平置高位、将SCL通道的电平置高位、将SDA通道的电平置低位、将SCL通道的电平置低位;
所述地址探测时序及读/写时序中的操作依次包括:将SDA通道的电平置高位,重复执行I次步骤i、步骤j和步骤k,将SCL通道的电平置低位;其中所述I为预设值,所述步骤i、所述步骤j和所述步骤k分别为:
步骤i.将SCL通道的电平置低位;
步骤j.根据所述第一预设地址或所述第二预设地址设置SDA通道的电平;
步骤k.将SCL通道的电平置高位;
所述应答时序中的操作依次包括:将SCL通道的电平置高位、将SDA通道转为输入状态、设置所述第一预设地址或所述第二预设地址对应的在位寄存器、将SCL通道的电平置低位、将SDA通道转为输出状态;
所述停止时序中的操作依次包括:将SDA通道的电平置低位、将SCL通道的电平置高位、将SDA通道的电平置高位。
7.根据权利要求5所述的方法,其特征在于,所述预设的I2C时序依次包括:开始时序、地址探测时序及读/写时序、应答时序和停止时序;
其中,所述开始时序中的操作依次包括:将SDA通道的电平置高位、将SCL通道的电平置高位、将SDA通道的电平置低位、将SCL通道的电平置低位;
所述地址探测时序及读/写时序中的操作依次包括:将SDA通道的电平置高位,重复执行I次步骤i、步骤j和步骤k,将SCL通道的电平置低位;其中所述I为预设值,所述步骤i、所述步骤j和所述步骤k分别为:
步骤i.将SCL通道的电平置低位;
步骤j.根据所述第一预设地址或所述第二预设地址设置SDA通道的电平;
步骤k.将SCL通道的电平置高位;
所述应答时序中的操作依次包括:将SCL通道的电平置高位、将SDA通道转为输入状态、设置所述第一预设地址或所述第二预设地址对应的在位寄存器、将SCL通道的电平置低位、将SDA通道转为输出状态;
所述停止时序中的操作依次包括:将SDA通道的电平置低位、将SCL通道的电平置高位、将SDA通道的电平置高位。
8.一种检测装置,其特征在于,所述检测装置通过N个通道并行连接N个光模块笼子,所述装置包括:
读取模块,用于访问冲突寄存器,根据所述冲突寄存器的值获取所述N个通道的占用状态;
处理模块,用于对所述N个通道中占用状态为未被***软件占用的M个通道所连接的M个光模块笼子进行并行探测,得到探测结果,所述探测结果包括所述M个光模块笼子的光模块在位信息和光模块类型;其中,M、N均为正整数,M小于或等于N;
写入模块,用于将所述探测结果写入在位寄存器,以便所述***软件从所述寄存器中获取所述探测结果。
9.根据权利要求8所述的检测装置,其特征在于,所述处理模块具体用于:
对所述M个光模块笼子并行进行第一预设地址的探测;
其中,对于所述M个光模块笼子中的任一个光模块笼子,若探测出所述第一预设地址没有光模块在位,则确定所述任一个光模块笼子中没有光模块在位;
若探测出所述第一预设地址有光模块在位,则对所述任一个光模块笼子进行第二预设地址的探测;
若探测出所述第二预设地址没有光模块在位,则确定所述任一个光模块笼子中有光模块在位,若探测出所述第二预设地址有光模块在位,则确定所述任一个光模块笼子中有紧凑型光模块在位。
10.根据权利要求8所述的检测装置,其特征在于,所述处理模块具体用于:
对所述M个光模块笼子并行进行第一预设地址的探测;对所述M个光模块笼子并行进行第二预设地址的探测;
其中,对于所述M个光模块笼子中的任一个光模块笼子,
若探测出所述第一预设地址没有光模块在位,则确定所述任一个光模块笼子中没有光模块在位;若探测出所述第一预设地址有光模块在位,且所述第二预设地址没有光模块在位,则确定所述任一个光模块笼子中有光模块在位;若探测出所述第一预设地址有光模块在位,且所述第二预设地址有光模块在位,则确定所述任一个光模块笼子中有紧凑型光模块在位。
11.根据权利要求9或10所述的检测装置,其特征在于,所述N个通道为N个内部集成电路I2C通道,每个I2C通道包括一个串行时钟SCL通道和一个串行数据SDA通道,所述SCL通道由SCL电平寄存器控制,所述SDA通道由SDA电平寄存器和SDA控制寄存器控制;所述处理模块具体用于:
a.根据预设的I2C时序确定当前操作以及所述当前操作对应的目标通道,并根据所述当前操作确定待写入所述目标通道对应寄存器的第一寄存器值;
b.读取所述目标通道对应寄存器当前的第二寄存器值;
c.将所述冲突寄存器的值取反后与所述第一寄存器值进行与运算,得到第三寄存器值;将所述冲突寄存器的值与所述第二寄存器值进行与运算,得到第四寄存器值;
d.将所述第三寄存器值与所述第四寄存器值进行或运算,得到第五寄存器值,并将所述第五寄存器值写入所述目标通道对应寄存器;其中,所述目标通道为所述M个通道的SCL通道或所述M个通道的SDA通道,若所述目标通道为所述M个通道的SCL通道,则所述目标通道对应寄存器为所述SCL电平寄存器控制,若所述目标通道为所述M个通道的SDA通道,则所述目标通道对应寄存器为所述SDA电平寄存器或SDA控制寄存器;
按照所述预设的I2C时序重复执行步骤a、步骤b、步骤c、步骤d,直至所述M个通道的SDA通道的状态由输出转为输入;
e.读取所述SDA电平寄存器的第六寄存器值;
f.读取所述第一预设地址对应的在位寄存器的第七寄存器值;
g.将所述冲突寄存器的值取反后与所述第六寄存器值进行与运算,得到第八寄存器值;将所述冲突寄存器的值与所述第七寄存器值进行与运算,得到第九寄存器值;
h.将所述第八寄存器值与所述第九寄存器值进行或运算,得到要写入所述第一预设地址对应的在位寄存器的第十寄存器值,所述第十寄存器值用于指示对所述M个光模块笼子进行第一预设地址的探测后得到的探测结果。
12.根据权利要求10所述的检测装置,其特征在于,所述N个通道为N个内部集成电路I2C通道,每个I2C通道包括一个串行时钟SCL通道和一个串行数据SDA通道,所述SCL通道由SCL电平寄存器控制,所述SDA通道由SDA电平寄存器和SDA控制寄存器控制;所述处理模块具体用于:
a.根据预设的I2C时序确定当前操作以及所述当前操作对应的目标通道,并根据所述当前操作确定待写入所述目标通道对应寄存器的第一寄存器值;
b.读取所述目标通道对应寄存器当前的第二寄存器值;
c.将所述冲突寄存器的值取反后与所述第一寄存器值进行与运算,得到第三寄存器值;将所述冲突寄存器的值与所述第二寄存器值进行与运算,得到第四寄存器值;
d.将所述第三寄存器值与所述第四寄存器值进行或运算,得到第五寄存器值,并将所述第五寄存器值写入所述目标通道对应寄存器;其中,所述目标通道为所述M个通道的SCL通道或所述M个通道的SDA通道,若所述目标通道为所述M个通道的SCL通道,则所述目标通道对应寄存器为所述SCL电平寄存器控制,若所述目标通道为所述SDAM个通道的通道,则所述目标通道对应寄存器为所述SDA电平寄存器或SDA控制寄存器;
按照所述预设的I2C时序重复执行步骤a、步骤b、步骤c、步骤d,直至所述M个通道的SDA通道的状态由输出转为输入;
e.读取所述SDA电平寄存器的第六寄存器值;
f.读取所述第二预设地址对应的在位寄存器的第七寄存器值;
g.将所述冲突寄存器的值取反后与所述第六寄存器值进行与运算,得到第八寄存器值;将所述冲突寄存器的值与所述第七寄存器值进行与运算,得到第九寄存器值;
h.将所述第八寄存器值与所述第九寄存器值进行或运算,得到要写入所述第二预设地址对应的在位寄存器的第十寄存器值,所述第十寄存器值用于指示对所述M个光模块笼子进行第二预设地址的探测后得到的探测结果。
13.根据权利要求11所述的检测装置,其特征在于,所述预设的I2C时序依次包括:开始时序、地址探测时序及读/写时序、应答时序和停止时序;
其中,所述开始时序中的操作依次包括:将SDA通道的电平置高位、将SCL通道的电平置高位、将SDA通道的电平置低位、将SCL通道的电平置低位;
所述地址探测时序及读/写时序中的操作依次包括:将SDA通道的电平置高位,重复执行I次步骤i、步骤j和步骤k,将SCL通道的电平置低位;其中所述I为预设值,所述步骤i、所述步骤j和所述步骤k分别为:
步骤i.将SCL通道的电平置低位;
步骤j.根据所述第一预设地址或所述第二预设地址设置SDA通道的电平;
步骤k.将SCL通道的电平置高位;
所述应答时序中的操作依次包括:将SCL通道的电平置高位、将SDA通道转为输入状态、设置所述第一预设地址或所述第二预设地址对应的在位寄存器、将SCL通道的电平置低位、将SDA通道转为输出状态;
所述停止时序中的操作依次包括:将SDA通道的电平置低位、将SCL通道的电平置高位、将SDA通道的电平置高位。
14.根据权利要求12所述的检测装置,其特征在于,所述预设的I2C时序依次包括:开始时序、地址探测时序及读/写时序、应答时序和停止时序;
其中,所述开始时序中的操作依次包括:将SDA通道的电平置高位、将SCL通道的电平置高位、将SDA通道的电平置低位、将SCL通道的电平置低位;
所述地址探测时序及读/写时序中的操作依次包括:将SDA通道的电平置高位,重复执行I次步骤i、步骤j和步骤k,将SCL通道的电平置低位;其中所述I为预设值,所述步骤i、所述步骤j和所述步骤k分别为:
步骤i.将SCL通道的电平置低位;
步骤j.根据所述第一预设地址或所述第二预设地址设置SDA通道的电平;
步骤k.将SCL通道的电平置高位;
所述应答时序中的操作依次包括:将SCL通道的电平置高位、将SDA通道转为输入状态、设置所述第一预设地址或所述第二预设地址对应的在位寄存器、将SCL通道的电平置低位、将SDA通道转为输出状态;
所述停止时序中的操作依次包括:将SDA通道的电平置低位、将SCL通道的电平置高位、将SDA通道的电平置高位。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410829082.0A CN105790830B (zh) | 2014-12-26 | 2014-12-26 | 光模块在位检测方法和装置 |
EP15199529.7A EP3037977B1 (en) | 2014-12-26 | 2015-12-11 | Optical module availability detection method and apparatus |
US14/978,970 US10090916B2 (en) | 2014-12-26 | 2015-12-22 | Optical module availability detection method and apparatus |
JP2015254363A JP6166773B2 (ja) | 2014-12-26 | 2015-12-25 | 光モジュール可用性検出方法及び装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410829082.0A CN105790830B (zh) | 2014-12-26 | 2014-12-26 | 光模块在位检测方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105790830A CN105790830A (zh) | 2016-07-20 |
CN105790830B true CN105790830B (zh) | 2018-11-20 |
Family
ID=55129392
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410829082.0A Active CN105790830B (zh) | 2014-12-26 | 2014-12-26 | 光模块在位检测方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10090916B2 (zh) |
EP (1) | EP3037977B1 (zh) |
JP (1) | JP6166773B2 (zh) |
CN (1) | CN105790830B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109995436B (zh) * | 2017-12-29 | 2021-08-31 | 北京华为数字技术有限公司 | 光线路终端的单板及光线路终端 |
CN108667515B (zh) * | 2018-04-23 | 2020-01-14 | 新华三技术有限公司 | 端口配置方法及通信设备 |
CN111272212B (zh) * | 2018-12-05 | 2021-12-31 | 卓望数码技术(深圳)有限公司 | 一种i2c设备数据采集方法及其*** |
CN112825050A (zh) * | 2019-11-21 | 2021-05-21 | 中兴通讯股份有限公司 | 访问光模块寄存器的方法及*** |
CN110971292B (zh) * | 2019-12-31 | 2023-03-10 | 深圳市欧深特信息技术有限公司 | 一种csfp光模块的检测方法及装置 |
CN113452446B (zh) * | 2021-06-22 | 2023-01-20 | 青岛海信宽带多媒体技术有限公司 | 一种光模块及通道切换方法 |
CN113660035B (zh) * | 2021-08-18 | 2024-05-03 | 青岛海信宽带多媒体技术有限公司 | 一种光模块及校准单位定义方法 |
CN113630186B (zh) * | 2021-09-15 | 2022-09-16 | 青岛海信宽带多媒体技术有限公司 | 一种光模块及通信方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102590689A (zh) * | 2011-01-14 | 2012-07-18 | 中兴通讯股份有限公司 | 一种检测小型可插拔式sfp光模块在位的装置 |
CN103048116A (zh) * | 2012-12-19 | 2013-04-17 | 华为技术有限公司 | 一种光纤在位检测方法及装置、微控制器 |
CN103701723A (zh) * | 2013-12-19 | 2014-04-02 | 上海斐讯数据通信技术有限公司 | Combo接口自适应以太网千兆光模块和电模块的结构及方法 |
CN104038275A (zh) * | 2014-06-07 | 2014-09-10 | 深圳市共进电子股份有限公司 | 一种网络设备接口自适应光模块的方法及网络设备 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8412051B2 (en) * | 2006-10-13 | 2013-04-02 | Menara Networks, Inc. | 40G/100G optical transceivers with integrated framing and forward error correction |
JP3483514B2 (ja) * | 2000-03-02 | 2004-01-06 | 沖電気工業株式会社 | 光伝送システム及び光チャネル安定品質測定方法 |
US20040197101A1 (en) * | 2001-02-05 | 2004-10-07 | Sasser Gary D. | Optical transceiver module with host accessible on-board diagnostics |
US7010639B2 (en) | 2003-06-12 | 2006-03-07 | Hewlett-Packard Development Company, L.P. | Inter integrated circuit bus router for preventing communication to an unauthorized port |
JP4432666B2 (ja) | 2004-08-11 | 2010-03-17 | 住友電気工業株式会社 | 光モジュールおよび光伝送装置 |
EP1909412B1 (en) * | 2006-10-06 | 2009-12-23 | Acterna LLC | Testing optically amplified links with time-division multiplexed test signals |
CN100583072C (zh) | 2006-10-13 | 2010-01-20 | 鸿富锦精密工业(深圳)有限公司 | 控制器、地址控制方法及使用其的总线数据传输*** |
JP2009130431A (ja) | 2007-11-20 | 2009-06-11 | Opnext Japan Inc | 伝送装置、通信モジュールおよび主装置 |
JP5619856B2 (ja) * | 2011-11-30 | 2014-11-05 | 光興國際股▲ふん▼有限公司OptoMedia Technology,Inc. | 光ファイバー伝送切換え装置及びその制御方法 |
US8867404B2 (en) * | 2012-02-03 | 2014-10-21 | Futurewei Technologies, Inc. | Node level vectoring synchronization |
CN103838698A (zh) * | 2012-11-27 | 2014-06-04 | 鸿富锦精密工业(深圳)有限公司 | I2c总线架构及设备可用性查询方法 |
-
2014
- 2014-12-26 CN CN201410829082.0A patent/CN105790830B/zh active Active
-
2015
- 2015-12-11 EP EP15199529.7A patent/EP3037977B1/en active Active
- 2015-12-22 US US14/978,970 patent/US10090916B2/en active Active
- 2015-12-25 JP JP2015254363A patent/JP6166773B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102590689A (zh) * | 2011-01-14 | 2012-07-18 | 中兴通讯股份有限公司 | 一种检测小型可插拔式sfp光模块在位的装置 |
CN103048116A (zh) * | 2012-12-19 | 2013-04-17 | 华为技术有限公司 | 一种光纤在位检测方法及装置、微控制器 |
CN103701723A (zh) * | 2013-12-19 | 2014-04-02 | 上海斐讯数据通信技术有限公司 | Combo接口自适应以太网千兆光模块和电模块的结构及方法 |
CN104038275A (zh) * | 2014-06-07 | 2014-09-10 | 深圳市共进电子股份有限公司 | 一种网络设备接口自适应光模块的方法及网络设备 |
Also Published As
Publication number | Publication date |
---|---|
EP3037977A1 (en) | 2016-06-29 |
EP3037977B1 (en) | 2018-05-16 |
CN105790830A (zh) | 2016-07-20 |
JP2016146621A (ja) | 2016-08-12 |
JP6166773B2 (ja) | 2017-07-19 |
US10090916B2 (en) | 2018-10-02 |
US20160191153A1 (en) | 2016-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105790830B (zh) | 光模块在位检测方法和装置 | |
US9495492B1 (en) | Implementing synchronous triggers for waveform capture in an FPGA prototyping system | |
CN106531654B (zh) | 一种芯片输入引脚测试方法和装置 | |
CN109902014A (zh) | 一种服务器***共享串口的方法、装置、受控终端及存储介质 | |
CN102662835A (zh) | 一种针对嵌入式***的程序调试方法及嵌入式*** | |
US20180032267A1 (en) | Extensible storage system controller | |
CN201867793U (zh) | 基本输入/输出***的调试*** | |
CN107390394A (zh) | 一种基于sopc的液晶模组测试*** | |
CN117278890B (zh) | 光模块访问方法、装置、***、电子设备及可读存储介质 | |
WO2016184170A1 (zh) | Smi接口器件的调试装置及方法、存储介质 | |
CN109446130B (zh) | 一种i/o设备状态信息的获取方法及*** | |
US9342425B2 (en) | Test apparatus and test module | |
CN109416667A (zh) | 具有动态且可配置的响应的、使用两个存储器级的串行设备仿真器 | |
CN108431788A (zh) | 一种单板、电子设备及选通的方法 | |
US20130231885A1 (en) | Test apparatus and test module | |
CN108153624B (zh) | 适用于ngff插槽的测试电路板 | |
CN104484260A (zh) | 一种基于GJB289总线接口SoC的仿真监控电路 | |
CN105260335B (zh) | 扩展光接口的数据处理***及方法 | |
CN103150262B (zh) | 管道式串行接口闪存访问装置 | |
US20150324266A1 (en) | Server System | |
CN104216831A (zh) | 一种基于Tcl的FPGA交互式仿真方法 | |
CN115587026A (zh) | 芯片测试方法、装置、存储介质及芯片 | |
CN100460876C (zh) | 测试***及其数据接口转换装置 | |
CN203149572U (zh) | 基于fpga芯片的eda综合实验平台 | |
CN112885403A (zh) | 一种Flash控制器的功能测试方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231204 Address after: Room 1-9, 24th Floor, Unit 2, Building 1, No. 28, North Section of Tianfu Avenue, High tech Zone, Chengdu City, Sichuan Province, 610095 Patentee after: Sichuan Huakun Zhenyu Intelligent Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |