一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种光模块的信息查询方法及其相关组件与流程

2023-01-15 21:21:37 来源:中国专利 TAG:


1.本发明涉及通信领域,特别是涉及一种光模块的信息查询方法及其相关组件。


背景技术:

2.光模块指的是一种实现光电信号转换以及电光信号转换的模块,随着光纤通信的发展,光模块在通信领域中的作用越来越重要。上位机与下位机通过光模块进行通信时,上位机需要实时监控光模块的参数信息,以保证光模块的正常运行;当上位机与多个下位机连接时,需要设置多个光模块,上位机需要实时监控所有的光模块,导致上位机消耗的处理器资源较多。现有技术为了释放处理器资源,通过轮询命令的方式来监控所有的光模块,这种方式虽然能够释放处理器资源,但需要较长的时间才能获取到每个光模块的信息,导致监控效率较低。


技术实现要素:

3.本发明的目的是提供一种光模块的信息查询方法及其相关组件,能够在实现对光模块进行监控的前提,降低上位机的处理器资源消耗,还能够并行地监控多个光模块,从而提高监控效率。
4.为解决上述技术问题,本发明提供了一种光模块的信息查询方法,应用于交换机中的处理器,所述交换机分别与上位机和多个光模块连接,所述光模块的信息查询方法包括:当获取到所述上位机的查询指令时,确定所述查询指令对应的光模块;利用所述光模块对应的预设ddm模块确定所述查询指令需要查询的地址所在的数据页;利用所述预设ddm模块获取所述光模块的所述数据页中的对应于所述查询指令的数据;将所述数据发送给所述上位机;其中,所述预设ddm模块设置在所述处理器中。
5.优选的,利用所述光模块对应的预设ddm模块确定所述查询指令需要查询的地址所在的数据页,包括:利用所述预设ddm模块执行以下步骤:s21:根据预设顺序排序所述光模块中的各页数据页;s22:将所述光模块中的第一页数据页作为当前数据页;s23:判断所述查询指令需要查询的地址是否在所述当前数据页中;若是,则将所述当前数据页作为所述查询指令需要查询的地址所在的数据页;若否,则进入s24;s24:判断所述当前数据页是否为所述光模块中的最后的数据页;若是,则进入s25;若否,则进入s26;s25:判定所述查询指令为无效指令;
s26:将所述当前数据页的下一页数据页作为新的当前数据页,返回s23。
6.优选的,将所述当前数据页的下一页数据页作为新的当前数据页,包括:获取所述当前数据页中的切页操作起始位和切页操作寄存器地址;判断所述切页操作寄存器地址是否为正确地址;若是,则通过所述切页操作起始位开始切页操作;当检测到任一所述数据页中的切页操作停止位时,停止执行切页操作;将切页后的数据页作为所述当前数据页的下一页数据页。
7.优选的,判断所述查询指令需要查询的地址是否在所述当前数据页中,包括:判断所述查询指令需要查询的地址在所述当前数据页中的页内地址是否大于0;若大于0,则判定为否;若不大于0,则判定为是。
8.优选的,根据预设顺序排序所述光模块中的各页数据页,包括;根据各页所述数据页的起始地址的先后顺序排序各页所述数据页。
9.优选的,利用所述预设ddm模块获取所述光模块的所述数据页中的对应于所述查询指令的数据,包括:当所述查询指令为读指令时,获取所述数据页中的读操作地址中的数据以及读操作寄存器地址中的数据;当所述查询指令为写指令时,获取所述数据页中的写操作地址中的数据以及写操作寄存器地址中的数据。
10.优选的,在获取到所述上位机的查询指令之前,还包括:确定当前时刻与最近一次接收到所述查询指令的时间点之间的时间差;当检测到所述时间差大于预设时间差时,生成第一预设查询指令作为新的所述查询指令,并进入确定所述查询指令对应的光模块的步骤。
11.优选的,还包括:当检测到新的所述光模块与所述交换机连接时,创建新的所述光模块对应的预设ddm模块。
12.优选的,创建新的所述光模块对应的预设ddm模块,包括:确定新的所述光模块的协议;创建对应于新的所述光模块的协议的所述预设ddm模块。
13.优选的,在创建新的所述光模块对应的预设ddm模块之后,还包括:在所述交换机中所有的寄存器地址空间中,将任一个未被使用的所述寄存器地址空间分配给新的所述光模块对应的预设ddm模块。
14.优选的,还包括:当检测到所述光模块与所述交换机之间的连接断开后,将断开连接的所述光模块对应的所述预设ddm模块移出所述寄存器地址空间。
15.优选的,还包括:当检测到所述光模块与所述交换机之间的连接断开后,删除断开连接的所述光模块对应的所述预设ddm模块。
16.优选的,当所述交换机中存储有第二预设查询指令时,在将所述数据发送给所述
上位机之前,还包括:确定所述第二预设查询指令对应的光模块;利用所述第二预设查询指令对应的光模块对应的预设ddm模块,获取所述第二预设查询指令对应的数据;将所述数据发送给所述上位机,包括:将所述查询指令对应的数据和所述第二预设查询指令对应的数据发送给所述上位机。
17.优选的,在获取所述第二预设查询指令对应的数据的同时,还包括:判断是否检测到所述上位机发送的新的所述查询指令;若是,则进入确定所述查询指令对应的光模块的步骤。
18.优选的,在确定所述第二预设查询指令对应的光模块之前,还包括:s31:确定所述交换机中的所有待执行指令;s32:根据各个所述待执行指令的生成时间顺序排序各个所述待执行指令;s33:将第一个所述待执行指令作为当前待执行指令;s34:判断所述当前待执行指令是否为表示查询光模块数据信息的查询指令;若是,则进入s35;若否,则进入s36;s35:将所述待执行指令记为所述第二预设查询指令,进入s36;s36:判断所述当前待执行指令是否为所述交换机中的最后一条所述待执行指令;若是,则进入确定所述第二预设查询指令对应的光模块的步骤;若否,则进入s37;s37:将所述当前待执行指令的下一条所述待执行指令作为新的当前待执行指令,并返回s34。
19.本技术还提供一种光模块的信息查询装置,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上述的光模块的信息查询方法的步骤。
20.本技术还提供一种交换机,包括交换机本体,还包括如上述的光模块的信息查询装置;所述交换机本体与所述光模块的信息查询装置连接。
21.本技术还提供一种光模块监控系统,包含上位机和多个光模块,还包括如上述的交换机;所述交换机分别与所述上位机以及所有所述光模块连接。
22.本技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的信息查询方法的步骤。
23.本技术还提供一种光模块的信息查询系统,应用于交换机中的处理器,所述交换机分别与上位机和多个光模块连接,包括:光模块确定单元,用于当获取到所述上位机的查询指令时,确定所述查询指令对应的光模块;数据页查询单元,用于利用所述光模块对应时的预设ddm模块确定所述查询指令需要查询的地址所在的数据页;
数据获取单元,用于利用所述预设ddm模块获取所述光模块的所述数据页中的对应于所述查询指令的数据;数据发送单元,用于将所述数据发送给所述上位机;其中,所述预设ddm模块设置在所述处理器中。
24.本技术提供了一种光模块的信息查询方法及其相关组件,涉及通信领域,应用于交换机中的处理器,交换机分别与上位机和多个光模块连接,当获取到上位机的查询指令时,确定查询指令对应的光模块,利用光模块对应的预设ddm模块确定查询指令需要查询的地址所在的数据页,利用预设ddm模块获取光模块的数据页中的对应于查询指令的数据,将数据发送给上位机,其中,预设ddm模块设置在处理器中。通过使用交换机来代替上位机监控光模块,能够在实现对光模块进行监控的前提,降低上位机的处理器资源消耗,交换机通过各个光模块对应的ddm模块来监控光模块,能够并行地监控多个光模块,从而提高监控效率。
附图说明
25.为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
26.图1为本技术提供的一种光模块的信息查询方法的流程图;图2为本技术提供的一种光模块监控系统的结构示意图;图3为协议单字节读操作得到的数据示意图;图4为协议多字节连续读操作得到的数据示意图;图5为协议单字节写操作得到的数据示意图;图6为协议多字节连续写操作得到的数据示意图;图7为本技术提供的一种dom模块的结构示意图;图8为本技术提供的一种寄存器命令的示意图;图9为本技术提供的一种读数据的采集方法的流程图;图10为本技术提供的一种写数据的采集方法的流程图;图11为本技术提供的一种切页方法的流程图;图12为本技术提供的一种光模块的信息查询装置的结构示意图。
具体实施方式
27.本发明的核心是提供一种光模块的信息查询方法及其相关组件,能够在实现对光模块进行监控的前提,降低上位机的处理器资源消耗,还能够并行地监控多个光模块,从而提高监控效率。
28.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
29.随着数据中心业务的发展,数据中心规模越来越大,为实现各种互联网业务能够正常执行,需要各个数据中心之间协同运转,由于数据中心之间信息交互量非常大,传统的线路通信已经无法满足通信要求,因此,光纤通信则成为了实现数据中心互联的必要手段。上位机通过光模块连通各条光纤,从而与其他数据中心中的设备或者下位机连接,为了保证通信顺畅,需要上位机监控光模块的状态。由于上位机监控光模块需要耗费上位机中处理器的资源,当上位机与多个光模块连接时,需要耗费上位机较多的资源来监控这些光模块的状态,从而影响到上位机其他功能的实现。基于此,现有技术提出用轮询命令的方式来监控这些光模块,轮询命令的原理是处理器依次监控各个光模块,并在监控完所有光模块后再重头开始第二次监控,相当于是处理器周期性地逐一查看每个光模块,每个模块都看完之后执行下一个周期再重新开始逐一查看。可见,虽然现有技术能够显著地减少上位机的处理器资源的消耗,但是,由于同一时间只能监控一个光模块,导致每一轮监控周期需要耗费较多的时间,其效率较低且实时性较差。
30.为了解决上述技术问题,请参照图1,图1为本技术提供的一种光模块的信息查询方法的流程图,应用于交换机中的处理器,交换机分别与上位机和多个光模块连接,光模块的信息查询方法包括:s1:当获取到上位机的查询指令时,确定查询指令对应的光模块;考虑到上位机与多个下位机连接时,可能会引起上位机的电磁干扰或者因为下位机相互之间不兼容而导致上位机出现逻辑错误等情况,因此,为了上位机方便管理各个下位机以及屏蔽底层硬件差异,本技术设置了交换机作为上位机与各个光模块之间的连接媒介,上位机想要查询某个光模块中的信息来实现对其进行监控的目的时,上位机需要执行的仅有生成想要查询的某个光模块对应的查询指令并发送给交换机,由交换机中的处理器来实现查询和监控的后续步骤。进一步的,为了提高效率,上位机可以同时查询所有光模块的数据,也即生成多个查询指令同时发送给交换机中的处理器,交换机中的处理器则会同时确定这些查询指令对应的光模块,并同时执行以下的步骤。
31.s2:利用光模块对应的预设ddm模块确定查询指令需要查询的地址所在的数据页;ddm(digital diagnostic monitoring,数字诊断监测技术)模块是一种虚拟的建立在处理器中的模块,每个ddm模块一一对应于一个光模块,当接收到查询指令后,根据查询指令中包含的光模块地址信息来找出查询指令想要查询的光模块对应的ddm模块,由于ddm模块本身就能够实现如电压、温度、发射光功率和接收光功率等参数的监控和采集,因此可以通过ddm模块中的监控机制来获取光模块中的某些数据。而在获取数据之前,考虑到光模块为了存储较大量的数据,其内部的数据结构分成了多层,也即建立有多页数据页,考虑到不同页中可能会存储有相同的数据或者地址,而为了准确地获取到上位机需要的数据,首先需要找出数据所在的数据页。例如,可以通过判断查询指令想要查询的地址在各页数据页中的地址是否大于0的方式来寻找,大于0则说明该地址不在该数据页中,小于0则说明该地址在数据页中;还可以通过判断查询指令想要查询的地址是否在各页数据页中的寄存器中的方式来寻找,在寄存器中则说明改地址在该数据页中,否则说明不在。
32.为了实现同时监控多个光模块的目的,每个ddm模块在交换机中的寄存器地址不同,当交换机中的处理器想要获取不同光模块中的数据时,会通过不同的寄存器地址来调用不同的ddm模块来实现,当处理器需要获取多个光模块中的数据时,则同时调用多个寄存
器地址中的ddm模块来进行监控,从而实现并行获取多个光模块中数据的目的,也即实现同时监控多个光模块的目的。
33.s3:利用预设ddm模块获取光模块的数据页中的对应于查询指令的数据;在获取查询指令对应的数据时,考虑到不同的光模块所采用的协议不同,为了准确地获取到数据,需要根据光模块的协议使用对应的获取方法来进行获取。具体的,由于光模块的协议是可以预先知道的,如光模块内部的总字节长度、低位和高位对应的字段、基本id字段和扩展id字段等内容都是可以预先知道的,因此可以根据光模块的协议预先对其对应的ddm模块的获取方法进行设定。请参照图3、图4、图5和图6,图3为协议单字节读操作得到的数据示意图,图4为协议多字节连续读操作得到的数据示意图,图5为协议单字节写操作得到的数据示意图,图6为协议多字节连续写操作得到的数据示意图。
34.s4:将数据发送给上位机;其中,预设ddm模块设置在处理器中。
35.由于ddm模块均是设置在交换机中,且获取光模块中数据信息的流程也是交换机中的处理器来实现,上位机只需要生成最开始的查询指令以及获取交换机中的处理器最后得到的数据结果即可,不需要参与具体的监控流程,基于此,上位机可以同时生成所有光模块的查询指令,以便交换机中的处理器来同时监控所有的光模块,在实现了在不消耗过多的上位机处理器资源的前提下,实现对所有的光模块进行实时监控。
36.对于交换机,考虑到fpga(field programmable gate array,现场可编程逻辑门阵列)和cpld(complex programmable logic device,复杂可编程逻辑器件)具有编程灵活和移植方便的特点,因此可以采用fpga或cpld作为交换机中的处理器使用,而为了进一步方便管理,可以引入pcie(peripheral component interconnect express,外围组件快速互连)通道作为上位机与交换机之间的交互通道,并将i2c(inter-integrated circuit,两线式串行总线)通过作为交换机与各个光模块之间的交互通道。其中,pcie memery空间作为业务空间,io空间作为接口访问空间,i2c控制器挂载pcie io空间上,上位机的cpu驱动相应寄存器完成外设光模块访问,请参照图2,图2为本技术提供的一种光模块监控系统的结构示意图,其中,上位机cpu的pcie根节点主要发起查询指令;交换机的pcie从节点主要完成tlp报文解析及io空间访问报文的响应;寄存器接口模块主要将寄存器写数据写入具体寄存器,将寄存器读数据发送到交换机的pcie从节点模块;dom模块用于实现查询指令。
37.对于dom模块,其可以是任一种能够实现同时获取多个光模块中数据的模块,例如,请参照图7,图7为本技术提供的一种dom模块的结构示意图。dom模块是基于xilinx xc7a50tfgg484-2芯片开发的模块,该芯片包含52160 logic cells,2700k block ram(75个m36k),1个pcie硬核(8个m36k),4个6.6gbp/s transceivers。1个m36k block ram,sff-8636和cmis协议模块和i2c_interface模块。这种设计可以同时支持监控56个光模块,预估设计占用64个m36k,1个pcie硬核,总体资源占用90%左右。m36k采用双端口ram,cpu和fpga分别访问,cpu侧地址10bit,数据32bit,fpga侧地址12bit,数据8bit。0x001-0x01f区间为31组ddm查询命令,其中,0x001为实时查询命令,0x002-0x01f为30组轮训命令。0x020-0x3ff区间为31组数据空间,其中,0x020-0x03f为实时128byte查询数据空间,其他30组轮训命令数据空间,依次间隔128byte往后排序。实时命令和每组轮训命令均采用32bit数据格式(0~31bit),其定义请参照图8,图8为本技术提供的一种寄存器命令的示意图,在32bit
数据格式中,每一bit所对应的数据不同,例如,第32位,也就是编号为31的数据代表为是否命令使能的数据,第32位上的数据为1时则使能,为0时不使能,其他位数上的数据同理。
38.综上,当获取到上位机的查询指令时,确定查询指令对应的光模块,利用光模块对应的预设ddm模块确定查询指令需要查询的地址所在的数据页,利用预设ddm模块获取光模块的数据页中的对应于查询指令的数据,将数据发送给上位机,其中,预设ddm模块设置在处理器中。通过使用交换机中的处理器来代替上位机监控光模块,能够在实现对光模块进行监控的前提,降低上位机的处理器资源消耗,交换机通过各个光模块对应的ddm模块来监控光模块,能够并行地监控多个光模块,从而提高监控效率。
39.在上述实施例的基础上:作为一种优选的实施例,利用光模块对应的预设ddm模块确定查询指令需要查询的地址所在的数据页,包括:利用预设ddm模块执行以下步骤:s21:根据预设顺序排序光模块中的各页数据页;s22:将光模块中的第一页数据页作为当前数据页;s23:判断查询指令需要查询的地址是否在当前数据页中;若是,则将当前数据页作为查询指令需要查询的地址所在的数据页;若否,则进入s24;s24:判断当前数据页是否为光模块中的最后的数据页;若是,则进入s25;若否,则进入s26;s25:判定查询指令为无效指令;s26:将当前数据页的下一页数据页作为新的当前数据页,返回s23。
40.为了准确地获取查询指令需要的数据,本技术中,考虑到光模块的存储空间中有多页数据页,每页数据页中的相同位置存储的数据不同,因此,在获取查询指令需要的数据之前,需要先找出该数据所在的数据页。具体的,在光模块的各页数据页中,可以根据数据页的帧头信息来依次排序每一页数据页,然后从第一页数据页开始,依次判断查询指令需要的数据对应的地址是否在该数据页中,若是则执行后续的获取数据的步骤,若否则需要切换至下一页数据页再进行判断;若遍历了所有数据页均未找出查询指令需要的数据所在的数据页,可能说明是该查询指令的格式或者内容存在问题,也可能说明该查询指令需要查询的并非该光模块,此时可以判定其为无效指令。
41.对于判断查询指令需要的数据对应的地址是否在该数据页的具体过程,可以是判断该地址是否在该数据页的地址范围中,也可以是判断该地址在该数据页上的大小是否小于预设值来判断等。而在切换数据页时,可以根据每页数据页中的帧头和帧尾信息来判断是否完整地切换了一页,也可以根据每页数据页的地址范围来判断是否完整地切换了一页。基于此,通过逐一判断每一页数据页,能够准确地获取查询指令需要的数据。
42.作为一种优选的实施例,将当前数据页的下一页数据页作为新的当前数据页,包括:获取当前数据页中的切页操作起始位和切页操作寄存器地址;判断切页操作寄存器地址是否为正确地址;若是,则通过切页操作起始位开始切页操作;当检测到任一数据页中的切页操作停止位时,停止执行切页操作;
将切页后的数据页作为当前数据页的下一页数据页。
43.为了准确地切换数据页,本技术中,考虑到虽然光模块的存储空间分成了多页数据页,但是各页数据页之间在光模块中的地址是连续的,切页操作的实质相当于切换当前监控的地址的范围,并不相当于通常理解意义上的翻书切页或者跳转页面等换页操作。因此,在进行切页时,需要准确地检索到数据页的头部和尾部,以避免获取到其他数据页中的地址和数据,基于此,需要根据数据页中的切页操作起始位和切页操作寄存器地址来执行切页操作,具体的,请参照图11,图11为本技术提供的一种切页方法的流程图,sfp_pg_stda发送起始位和设备地址,sfp_pg_rgd发送切页操作寄存器地址,当获取到这些地址并判断其为正确地址后,则开始执行切页操作,当获取到sfp_pg_pga发送的映射页地址和停止位之后,也即检测到切页操作停止位之后,则停止切页操作。ddm模块在之前切页操作之前,会监控当前数据页中所有地址,在进行切页操作时,最前面的一位地址将会移出ddm模块,并将新增的一位地址移入ddm模块中,通过逐一替换的方式,当ddm模块中的所有当前数据页中的地址均移出ddm模块之后,则相当于完整地切换了一页数据页。基于此,能够准确地切换数据页。
44.作为一种优选的实施例,判断查询指令需要查询的地址是否在当前数据页中,包括:判断查询指令需要查询的地址在当前数据页中的页内地址是否大于0;若大于0,则判定为否;若不大于0,则判定为是。
45.为了简单地判断查询指令需要查询的地址是否在当前数据页中,本技术中,可以根据查询指令需要查询的地址在当前数据页中的页内地址来判断,具体的,页内地址指的是数据页中的物理块的偏移量,其指出了一个物理页的开始地址,可以理解的是,因为数据页中的页祯地址是以4k为边界的,页祯地址的低12位总是为0,在页目录中,页祯地址即为是二级页表的起始地址,也即下一页数据页的起始地址。在寻址一个数据页时,若页内地址大于页祯地址时,也即大于0时,说明页内地址指向的物理页至少是下一页数据页,否则则说明页内地址指向的物理页是当前数据页。基于此,能够简单地判断查询指令需要查询的地址是否在当前数据页中。
46.作为一种优选的实施例,根据预设顺序排序光模块中的各页数据页,包括;根据各页数据页的起始地址的先后顺序排序各页数据页。
47.为了简单地排序各页数据页,本技术中,考虑到数据页在交换机中的位置和地址是唯一且连续的,因此可以根据每一页数据页的起始地址的大小或者先后顺序来排序各页数据页,例如,起始地址越小的数据页排在越前面。基于此,可以简单地排序各页数据页。
48.作为一种优选的实施例,利用预设ddm模块获取光模块的数据页中的对应于查询指令的数据,包括:当查询指令为读指令时,获取数据页中的读操作地址中的数据以及读操作寄存器地址中的数据;当查询指令为写指令时,获取数据页中的写操作地址中的数据以及写操作寄存器地址中的数据。
49.为了准确地获取到查询指令需要的数据,本技术中,上位机在监控光模块时,通常
是通过读或写光模块中的数据来实现的,由于读指令和写指令性质的不同,所以需要根据查询指令的类型来获取不同类型的数据,具体的,当查询指令为读指令时,请参照图9,图9为本技术提供的一种读数据的采集方法的流程图,光模块中的sfp_rd_stda发送读操作起始位和设备地址,sfp_rd_rgda发送读操作寄存器地址,sfp_rd_stda再次发送读操作起始位和设备地址以供ddm模块二次确认其正确性,然后sfp_rd_data向预设ddm模块发送光模块的读操作的读数据,sfp_stop同时检测sfp_rd_data发送的数据,当检测到sfp_rd_data发送完最后1byte后,sfp_stop向预设ddm模块发送nack和停止位,以便预设ddm模块停止获取数据,此时ddm模块能够完整地获取到光模块中的读操作产生的所有读数据;同理,当查询指令为写指令时,请参照图10,图10为本技术提供的一种写数据的采集方法的流程图,光模块中的sfp_wr_stda发送写操作起始位和设备地址,sfp_wr_rgda发送写操作寄存器地址,sfp_wr_data向预设ddm模块发送光模块的写操作的写数据,所有数据都发送完成后,通过sfp_stop让预设ddm模块停止获取数据。基于此,能够准确地获取到查询指令需要的数据。
50.作为一种优选的实施例,在获取到上位机的查询指令之前,还包括:确定当前时刻与最近一次接收到查询指令的时间点之间的时间差;当检测到时间差大于预设时间差时,生成第一预设查询指令作为新的查询指令,并进入确定查询指令对应的光模块的步骤。
51.为了实时地监控光模块,本技术中,考虑到上位机的查询指令通常是工作人员主动操作上位机而下发给交换机的,交换机中的处理器在被动地接收到查询指令之后才会去获取光模块中的数据,而为了满足实际工作中对实时性的要求,需要让交换机中的处理器主动地去获取光模块中的数据。具体的,可以在交换机中存储一个第一预设查询指令,该第一预设查询指令可以是一个表示为查询所有光模块数据的指令,也可以是多个表示为查询单一光模块数据的指令,在实际应用中,处理器会实时计算自身有多久没有获取到上位机发送过来的查询指令,若在一段时间内一直没有接收到上位机的查询指令,则会利用交换机自身存储的第一预设查询指令作为查询指令来监控所有的光模块,避免工作人员忘记操作上位机发送查询指令从而失去了对光模块进行实时监控的情况发生。
52.作为一种优选的实施例,还包括:当检测到新的光模块与交换机连接时,创建新的光模块对应的预设ddm模块。
53.为了提高可用性,本技术中,考虑到数据中心的规模会越来越大,数据中心中的上位机需要和越来越多的下位机连接,在上位机的工作过程中可能有新增的下位机与上位机连接,由于新增的下位机也是通过连接交换机来实现与上位机连接,因此,当交换机中的处理器检测到新的光模块接入时,如检测到新的在位信号或者地址信号时,则会创建新的ddm模块,以便后续监控该新的光模块。由于各个ddm模块的功能相同且相互之间相对独立,各个ddm模块又存在于不同的地址中,在创建新的ddm模块时,相当于只需要再创建一个已有的ddm模块并放置在新的地址中即可,其实现难度和复杂程度低,降低了开发风险,而且能够有效地避免因为代码过长而带来的耦合性低以及不稳定的风险,从而提高可用性。
54.作为一种优选的实施例,创建新的光模块对应的预设ddm模块,包括:确定新的光模块的协议;创建对应于新的光模块的协议的预设ddm模块。
55.为了提高可用性,本技术中,考虑到用户在选取实际使用的光模块时,每次新增的光模块的具体型号可能不一致,由于不同型号的光模块的交互协议不一致,为了能够准确地获取到不同型号的光模块中的数据,在创建该光模块对应的预设ddm模块时,交换机中的处理器需要先确定光模块的协议,具体可以是根据光模块厂家提供的参数来确定光模块的协议,也可以是根据光模块的命令寄存器以及数据寄存器的定义来确定光模块的定义,本技术对如何确定光模块的协议不作限定;在确定了其协议之后,则可以创建对应于该协议的预设ddm模块,例如根据命令寄存器以及数据寄存器的定义来创建预设ddm模块。基于此,能够让交换机能够获取到多种不同型号的光模块的数据,提高了可用性。
56.作为一种优选的实施例,在创建新的光模块对应的预设ddm模块之后,还包括:在交换机中所有的寄存器地址空间中,将任一个未被使用的寄存器地址空间分配给新的光模块对应的预设ddm模块。
57.为了各个预设ddm模块之间相互不被干扰,本技术中,考虑到在实际应用中,可能需要多个预设ddm模块同时工作,若这些预设ddm模块设置在相同的地址中,不仅会影响到预设ddm模块的正常工作,还可能会影响代码的耦合性,导致工作人员维护代码的难度增加。因此,在创建预设ddm模块时,检索交换机中各个寄存器地址,并选用其中的一个未被使用的寄存器地址分配给不同的预设ddm模块,使得每个预设ddm模块都分配到一个不同的寄存器地址,相当于每个预设ddm模块均处在一个独立空间中,相互之间不会受到影响,而且不会增加同一个地址中的代码长度,避免影响代码的耦合性。基于此,通过给不同的预设ddm模块分配不同的寄存器地址空间,能够避免干扰。
58.作为一种优选的实施例,还包括:当检测到所述光模块与所述交换机之间的连接断开后,将断开连接的所述光模块对应的所述预设ddm模块移出所述寄存器地址空间。
59.为了节省空间资源,本技术中,考虑到在实际应用场景中,光模块或者线路以及接口等元件可能会出现故障的情况,需要断开光模块与交换机之间的连接来便于工作人员修复该故障,此外,为了保证数据中心的功能异常,由于其他光模块未受到故障影响,所以还需要保证其他光模块的正常连接。此时,考虑到修复光模块或者其他元件需要一定的时间,会导致该光模块在短时间内无法重新连接到交换机中,但该光模块对应的预设ddm模块仍在交换机中的某个寄存器地址中正常工作,为了节省交换机中的空间资源,可以先将该预设ddm模块从寄存器地址空间中移除,以便释放出该空间资源,等到该光模块修复完毕并重新连接回交换机之后,再给该预设ddm模块分配新的寄存器地址空间。基于此,能够节省空间资源。
60.作为一种优选的实施例,还包括:当检测到光模块与交换机之间的连接断开后,删除断开连接的光模块对应的预设ddm模块。
61.为了节省存储资源,本技术中,考虑到在实际应用场景中,光模块与交换机之间的连接几乎是不会断开的,新的光模块在接入交换机后,通常会持续保持连接,以便与上位机进行通信,以实现数据中心的通信业务;当正在使用的光模块需要断开连接时,通常说明该光模块对应的下位机离开当前的数据中心,或者光模块本身损坏,或者需要更换光模块等,这些情况均说明该光模块后续不会再与交换机连接。基于此,当光模块与交换机之间的连
接断开后,则可以直接删除该光模块对应的预设ddm模块,以便释放存储资源来提供给未来的新的光模块使用。检测光模块与交换机之间的连接是否断开的过程可以是根据是否检测到光模块的在位信号来判断,也可以根据是否接收到光模块或者上位机发送过来的表示断开连接的信号来判断,本技术对此不作限定。在删除预设ddm模块时,具体是确定出该预设ddm模块所在的寄存器地址,将该寄存器地址中的所有数据删除以便删除该预设ddm模块。基于此,当光模块断开连接后删除对应的预设ddm模块,能够节省存储资源。
62.作为一种优选的实施例,当交换机中存储有第二预设查询指令时,在将数据发送给上位机之前,还包括:确定第二预设查询指令对应的光模块;利用第二预设查询指令对应的光模块对应的预设ddm模块,获取第二预设查询指令对应的数据;将数据发送给上位机,包括:将查询指令对应的数据和第二预设查询指令对应的数据发送给上位机。
63.为了进一步减少上位机的处理器资源消耗,本技术中,可以在交换机中存储多个第二预设查询指令,当接收到上位机的查询指令并获取到相对应的数据之后,自动开始执行第二预设查询指令来获取数据,并将所有获取到的数据一起发送给上位机。具体的,考虑到虽然上位机只需要发送查询指令以及接收交换机发送过来的数据,但是当光模块较多时,上位机需要生成数量较多以及次数较多的查询指令,需要耗费相对较多的上位机的处理器资源,基于此,可以根据现在已有的光模块,先将各个光模块对应的查询指令都存储在交换机中作为第二预设查询指令,当上位机发送任一个查询指令到交换机中之后,交换机中的处理器在执行完该查询指令之后,确定自身存储的第二预设查询指令,并一一获取这些第二预设查询指令对应的数据,相当于当上位机需要查询某个光模块中的数据时,交换机中的处理器在获取到该光模块的数据之后,还会自动地获取其他的所有光模块的数据,第二预设查询指令对应的数据具体的获取方法和流程,与获取上位机发送的查询指令对应的数据的流程一致;进一步的,为了避免获取到相同的光模块中的数据,可以将上位机能够发送的查询指令固定为某个光模块,而交换机中存储的所有第二预设查询指令中仅不包含该光模块的指令;或者也可以在获取到上位机发送的查询指令后,在各个第二预设查询指令中找出与查询指令相同的第二预设查询指令,在后续获取第二预设查询指令对应的数据时,不获取与查询指令相同的第二预设查询指令的数据。基于此,上位机只需要发送一个指令就能够实现对所有光模块的监控,能够进一步减少上位机的处理器资源消耗。
64.作为一种优选的实施例,在获取第二预设查询指令对应的数据的同时,还包括:判断是否检测到上位机发送的新的查询指令;若是,则进入确定查询指令对应的光模块的步骤。
65.为了及时响应用户操作,本技术中,考虑到当交换机中存储了大量的第二预设查询指令时,交换机中的处理器将这些第二预设查询指令全部执行完毕需要花费一定的时间,而在该执行过程中,用户可能会因为自身需要或者多次验证结果等原因而再次通过上位机下发新的查询指令给交换机,此时,为了响应用户的操作,在执行第二预设查询指令的过程中也需要实时检测是否接收到上位机下发的新的查询指令,具体的,在执行完每一条第二预设查询指令之后,都需要检测是否有新的查询指令,若有则进入确定查询指令对应
的光模块的步骤,以便获取新的查询指令需要查询的光模块中的数据,若没有则执行下一个第二预设查询指令。进一步的,在所有第二预设查询指令执行完毕之后,可以再等待一段时间,在这段时间内只检测和响应上位机下发的查询指令,若这段时间经过后仍没有查询指令下发,再进入后续的发送数据给上位机的步骤;相当于在第二预设查询指令都执行完毕之后,先等待并观察上位机有没有新的查询指令下发,有则执行,没有则执行后续步骤。基于此,通过实时检测查询指令,可以及时响应用户操作。
66.作为一种优选的实施例,在确定第二预设查询指令对应的光模块之前,还包括:s31:确定交换机中的所有待执行指令;s32:根据各个待执行指令的生成时间顺序排序各个待执行指令;s33:将第一个待执行指令作为当前待执行指令;s34:判断当前待执行指令是否为表示查询光模块数据信息的查询指令;若是,则进入s35;若否,则进入s36;s35:将待执行指令记为第二预设查询指令,进入s36;s36:判断当前待执行指令是否为交换机中的最后一条待执行指令;若是,则进入确定第二预设查询指令对应的光模块的步骤;若否,则进入s37;s37:将当前待执行指令的下一条待执行指令作为新的当前待执行指令,并返回s34。
67.为了有效地对光模块进行监控,本技术中,考虑到交换机中的处理器除了实现对光模块的监控之外,还需要实现其他功能,如与上位机沟通或者与其他终端沟通等功能,而交换机中的处理器在实现其他功能时也需要通过指令来完成。基于此,为了提高获取光模块数据的效率,交换机中的处理器在执行指令时,首先判断现在需要执行的指令是否为表示获取光模块数据的指令,若是则执行,若不是则暂时跳过该指令,然后判断下一个待执行指令是否为表示获取光模块数据的指令,直至交换机的处理器中所有的待执行指令均判断完毕后,将所有表示获取光模块数据的指令共同作为第二预设查询指令,同时获取这些第二预设查询指令对应的光模块中的数据。基于此,通过跳过与监控光模块无关的指令,能够有效地对光模块进行监控。
68.请参照图12,图12为本技术提供的一种光模块的信息查询装置的结构示意图,包括:存储器21,用于存储计算机程序;处理器22,用于执行计算机程序时实现如上述的光模块的信息查询方法的步骤。
69.对于本技术提供的一种光模块的信息查询装置的详细介绍,请参照上述光模块的信息查询方法的实施例,本技术在此不再赘述。
70.本技术还提供一种交换机,包括交换机本体,还包括上述的光模块的信息查询装置;交换机本体与光模块的信息查询装置连接。
71.对于本技术提供的一种交换机的详细介绍,请参照上述光模块的信息查询方法的实施例,本技术在此不再赘述。
72.本技术还提供一种光模块监控系统,包含上位机和多个光模块,还包括如上述的交换机;
交换机分别与上位机以及所有的光模块连接。
73.对于本技术提供的一种光模块监控系统的详细介绍,请参照上述光模块的信息查询方法的实施例,本技术在此不再赘述。
74.本技术还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的信息查询方法的步骤。
75.对于本技术提供的一种计算机可读存储介质的详细介绍,请参照上述光模块的信息查询方法的实施例,本技术在此不再赘述。
76.本技术还提供一种光模块的信息查询系统,应用于交换机中的处理器,交换机分别与上位机和多个光模块连接,包括:光模块确定单元,用于当获取到上位机的查询指令时,确定查询指令对应的光模块;数据页查询单元,用于利用光模块对应时的预设ddm模块确定查询指令需要查询的地址所在的数据页;数据获取单元,用于利用预设ddm模块获取光模块的数据页中的对应于查询指令的数据;数据发送单元,用于将数据发送给上位机;其中,预设ddm模块设置在处理器中。
77.对于本技术提供的一种光模块的信息查询系统的详细介绍,请参照上述光模块的信息查询方法的实施例,本技术在此不再赘述。
78.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
79.还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献