【技术实现步骤摘要】
光模块在位检测方法和装置
本专利技术实施例涉及通信
,尤其涉及一种光模块在位检测方法和装置。
技术介绍
小型可插拔(英文:smallform-factorpluggable,简称:SFP)收发器(英文:transceiver),也称为光模块,是一种小型的可热插拔的光收发器,用于电信和数据通信中的光通信应用,通常封装在一个标准SFP笼子(cage)中。而紧凑型SFP(英文:CompactSFP,简称CSFP)是一种将两个单纤双向光收发器件封装在一个标准SFP笼子里的光模块。设备使用CSFP可以在相同数量的光模块笼子基础上获得2倍的端口数,可以满足高密度、低成本的需求。CSFP虽然使用的是单纤双向光收发器件,但是在装有CSFP的光模块笼子连接到支持光模块的通信设备的插座上时仍然需要两对收发线路,因此CSFP的第二路收发器件的发送信号就需要占用光模块笼子的在位信息号的针脚,导致其无法通过在位信号的电平来判断其是否在位。通常通过系统软件I2C轮询的方式来判断SFP笼子中是否有光模块在位,即系统软件通过向每个光模块笼子对应的内部集成电路(英文:InterIntegratedCircuit,简称:I2C或I2C)通道发送请求信号,而后根据是否从该I2C通道收到响应来判断是否有光模块在位。但是系统软件I2C轮询会占用大量CPU资源,导致CPU占用率升高。且采用系统软件I2C轮询有轮询周期,若光模块笼子较多,则轮询时间长,不能实时监测SFP笼子中是否有光模块在位,此外由于I2C轮询时间长,采用系统软件I2C轮询可能无法感知光模块的快速拔插操作。
技术实现思路
本专利技术 ...
【技术保护点】
一种光模块在位检测方法,其特征在于,应用于一种检测装置,所述检测装置通过N个通道并行连接N个光模块笼子,所述方法包括:访问冲突寄存器,根据所述冲突寄存器的值获取所述N个通道的占用状态;对所述N个通道中占用状态为未被系统软件占用的M个通道所连接的M个光模块笼子进行并行探测,得到探测结果,所述探测结果包括所述M个光模块笼子的光模块在位信息和光模块类型;其中,M、N均为正整数,M小于或等于N;将所述探测结果写入在位寄存器,以便所述系统软件从所述寄存器中获取所述探测结果。
【技术特征摘要】
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通道转为输出...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。