CN112306867B - 一种基于层序遍历自动检测***i2c地址异常的方法 - Google Patents
一种基于层序遍历自动检测***i2c地址异常的方法 Download PDFInfo
- Publication number
- CN112306867B CN112306867B CN202011159204.1A CN202011159204A CN112306867B CN 112306867 B CN112306867 B CN 112306867B CN 202011159204 A CN202011159204 A CN 202011159204A CN 112306867 B CN112306867 B CN 112306867B
- Authority
- CN
- China
- Prior art keywords
- address
- current
- abnormal
- equipment
- bus
- 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
- 238000000034 method Methods 0.000 title claims abstract description 61
- 230000002159 abnormal effect Effects 0.000 claims abstract description 69
- 238000001514 detection method Methods 0.000 claims abstract description 59
- 230000005856 abnormality Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 11
- 238000013461 design Methods 0.000 claims description 11
- 238000013507 mapping Methods 0.000 claims description 8
- 230000009286 beneficial effect Effects 0.000 abstract description 10
- 238000012827 research and development Methods 0.000 abstract description 7
- 239000000463 material Substances 0.000 abstract description 6
- 239000002609 medium Substances 0.000 description 7
- 238000011161 development Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 101100004933 Arabidopsis thaliana CYP79F1 gene Proteins 0.000 description 2
- 230000002349 favourable effect Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000012120 mounting media Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Small-Scale Networks (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种基于层序遍历自动检测***I2C地址异常的方法。该方法包括基于层序遍历设计当前BMC I2C总线地址异常的检测流程,并根据所述检测流程对当前BMC I2C总线下的所有从设备进行逐层自动扫描,确定当前BMC I2C总线下从设备的实际地址;获取预设地址表,根据所述当前BMC I2C总线下从设备的实际地址与预设地址表进行比较,确定当前I2C地址是否存在异常;若所述I2C地址不存在异常,则标记该设备为有效层级;若所述I2C地址存在异常,则预警并输出异常设备地址,结束检测流程。本发明的有益效果为:用于有效提高BMC I2C总线下地址异常的检测效率,节省人力物力,加快项目研发进程,且对于其他设备作为主机且下行挂接众多I2C设备的情形同样适用。
Description
技术领域
本发明涉及检测I2C地址异常的技术领域,特别涉及一种基于层序遍历自动检测***I2C地址异常的方法。
背景技术
目前,I2C(Inter-Integrated Circuit)总线是一种由Philips公司开发的两线式串行总线,用于连接微控制器及其***设备,使主设备(例如处理器,微控制器(MCU)或专用集成电路(ASIC))能够与同一双线总线上的其它***设备通信。两条总线中,一条线专用于数据传输,而另一条用于时钟信号。其基准速度为100Kbit/S,快速模式度达400Kbit/S,高速模式达3.4Mbit/S。7位I2C总线可以挂接127个不同地址的I2C设备。
在如今的服务器***设计中,通常由BMC作为I2C总线主机端,负责管理众多下行I2C设备。随着功能需求不断上升,BMC I2C总线下挂接的从设备也不断增多。如果设备的I2C地址配置不当,有可能出现总线锁死或设备无法正常被访问等问题。因此对于这些从设备的地址管理,检查已成为硬件设计中不可忽视的重要环节。当前对I2C地址是否存在异常的检查主要是由硬件工程师通过串口连接BMC进行手动输入相关指令,对***中每一层级可能存在的I2C设备进行扫描,并对扫描得到的地址进行记录并加以对比,来判断是否存在不符合设计预期的情况出现。
这一检查过程需要占用大量的时间及研发资源,且对操作人员有一定的软硬件技术要求,为此本发明提出一种自动检测BMC I2C总线地址异常的方法,可有效提高BMC I2C总线下地址异常的检测效率,节省人力物力,加快项目研发进程。
发明内容
本发明提供一种基于层序遍历自动检测***I2C地址异常的方法,用以解决当前BMC I2C总线地址异常检测效率低下的情况。
一种基于层序遍历自动检测***I2C地址异常的方法,其特征在于,包括:
基于层序遍历设计当前BMC I2C总线地址异常的检测流程,并根据所述检测流程对当前BMC I2C总线下的所有从设备进行逐层自动扫描,确定当前BMC I2C总线下从设备的实际地址;
获取预设地址表,将所述当前BMC I2C总线下从设备的实际地址与预设地址表进行比较,确定当前I2C地址是否存在异常;
若所述I2C地址不存在异常,则结束检测流程;
若所述I2C地址存在异常,则预警并输出异常设备地址,结束检测流程。
作为本发明的一种实施例,所述基于层序遍历设计当前BMC I2C总线地址异常的检测流程,并根据所述检测流程对当前BMC I2C总线下的所有从设备进行逐层自动扫描,确定当前BMC I2C总线下从设备的实际地址,包括:
根据所述基于层序遍历设计当前BMC I2C总线地址异常的检测流程,对所述当前BMC I2C总线下的所有设备进行逐层自动扫描;其中,
若所扫描的设备具有I2C地址则当前设备为有效层级;
若所扫描的设备不具有I2C地址则当前设备为无效层级;
根据所述有效层级,获取所有有效层级的设备地址,确定当前BMC I2C总线下从设备的实际地址。
作为本发明的一种实施例,所述若所扫描的设备具有I2C地址则当前设备为有效层级,包括:
有效层级包括第一层的有效层级1、第二层的有效层级2和第三层的有效层级3其中任一项;
基于有效层级3下方的I2C设备的I2C地址无法影响前3层,确定有效层级不大于3层;
根据所述有效层级不大于3层,确定只需遍历扫描前2层有效层级。
作为本发明的一种实施例,所述获取预设地址表,根据所述当前BMC I2C总线下从设备的实际地址与预设地址表的比较,确定当前I2C地址是否存在异常,包括:
基于对设备的预期,设计预设地址表;
根据将所述当前BMC I2C总线下从设备的实际地址映射并存入到寄存器,比较预设地址表与寄存器中的I2C地址,确定当前I2C地址是否存在异常;其中,
若预设地址表中的I2C地址与寄存器中的I2C地址相符,则当前I2C地址不存在异常;
若预设地址表中的I2C地址与寄存器中的I2C地址的比较存在地址数量缺失或与设计地址不符,则当前I2C地址存在异常。
作为本发明的一种实施例,所述若I2C地址存在异常,则输出异常设备地址,包括:
根据所述当前I2C地址是否存在异常,确定每次异常的设备地址;
根据所述每次异常的设备地址,确定检测结束后输出所述每次异常的设备地址。
作为本发明的一种实施例,所述基于层序遍历设计当前BMC I2C总线地址异常的检测流程包括如下步骤:
步骤(1)、设计预期配置地址表并输入,初始化;
步骤(2)、BMC用过指令查询当前设备下的I2C地址;
步骤(3)、判断是否搜寻到I2C设备,判断结果为是,则执行步骤(5);
步骤(4)、判断是否搜寻到I2C设备,判断结果为否,则标记当前设备为无效层级;
步骤(5)、将搜寻到的I2C地址分别分配给相应的从设备并建立映射,之后将搜寻到的I2C地址存入寄存器;
步骤(6)、比较地址表与寄存器里所有I2C地址;
步骤(7)、判断是否存在地址异常,即地址数量缺失或与设计地址不符,若判断结果为是,则标记该地址等待输出,若标记结果为否,则返回步骤(1),直到检测完3层有效层级后,退出循环执行步骤(8);
步骤(8)、接收步骤(7)所标记地址,预警,输出异常设备地址。
作为本发明的一种实施例,所述方法还包括:
根据所述步骤(1)-(7)中,确定完成有效层级1的遍历以及有效层级2的遍历;
根据所述步骤(8),确定将寄存器内所有已扫描到的地址与地址表进行对比,完成地址异常检测。
作为本发明的一种实施例,所述(1)-(7)步骤还包括:
根据所述步骤(1)-(7),确定完成有效层级1的遍历以及有效层级2的遍历;
根据所述步骤(8),确定将寄存器内所有已扫描到的地址与地址表进行对比,完成地址异常检测。可有效提高BMC I2C总线下地址异常的检测效率,节省人力物力,加快项目研发进程
本发明的有益效果为:本发明可有效提高BMC I2C总线下地址异常的检测效率,节省人力物力,加快项目研发进程。
一种电子设备,包括服务器以及与所述服务器通信连接的至少一个终端,所述终端包括至少一个存储器和至少一个处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现本申请所述的一种基于层序遍历自动检测***I2C地址异常的方法。
一种计算机可读存储介质,包括所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现本申请所述的一种基于层序遍历自动检测***I2C地址异常的方法。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例中一种基于层序遍历自动检测***I2C地址异常的方法的流程图;
图2为本发明实施例中一种I2C有效层级实例图;
图3为本发明实施例中层序遍历拓扑图;
图4为本发明实施例中的***实列图;
图5为本发明实施例中有效层级拓扑图;
图6为本发明实施例中第一层扫描流程图;
图7为本发明实施例中第二层扫描流程图;
图8为本发明实施例中第三层扫描流程图;
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
实施例1:
如附图1所示的流程图,本发明实施例提供了一种基于层序遍历自动检测***I2C地址异常的方法,包括:
步骤S101:基于层序遍历设计当前BMC I2C总线地址异常的检测流程,并根据所述检测流程对当前BMC I2C总线下的所有从设备进行逐层自动扫描,确定当前BMC I2C总线下从设备的实际地址;
步骤S102:获取预设地址表,根据所述当前BMC I2C总线下从设备的实际地址与预设地址表的比较,确定当前I2C地址是否存在异常;
步骤S103:若所述I2C地址不存在异常,则结束检测流程;
步骤S104:若所述I2C地址存在异常,则预警并输出异常设备地址,结束检测流程。
上述技术方案的工作原理为:通过建立一套基于层序遍历的检测流程实现对BMCI2C总线下的所有从设备进行逐层自动扫描,并将扫描到的从设备地址与事先建立好的地址表进行比较,来判断出当前***下实际设置的I2C地址是否存在异常并最终输出检测结果。地址异常分为地址数量缺失及与设计地址不符两类。
上述技术方案的有益效果为:用于有效提高BMC I2C总线下地址异常的检测效率,节省人力物力,加快项目研发进程,且对于其他设备作为主机且下行挂接众多I2C设备的情形同样适用。
实施例2:
在一个实施例中,所述基于层序遍历设计当前BMC I2C总线地址异常的检测流程,并根据所述检测流程对当前BMC I2C总线下的所有从设备进行逐层自动扫描,确定当前BMCI2C总线下从设备的实际地址,包括:
根据所述基于层序遍历设计当前BMC I2C总线地址异常的检测流程,对所述当前BMC I2C总线下的所有设备进行逐层自动扫描;其中,
若所扫描的设备具有I2C地址则当前设备为有效层级;
若所扫描的设备不具有I2C地址则当前设备为无效层级;
根据所述有效层级,获取所有有效层级的设备地址,确定当前BMC I2C总线下从设备的实际地址;
上述技术方案的工作原理为:如图2所示的I2C有效层级实例图,其中BMC(表示基板管理控制器)作为主设备,设备本身具有I2C(总线)地址,为有效层级1。有效层级2的Slave1虚拟机和I2C Switch(总线交换机)挂在BMC下作为从设备,设备本身具有I2C地址,为有效层级2。I2C level shift器件虽然挂在BMC下和Slave1(虚拟机1),I2C Switch(总线交换机)在同一拓扑高度,但本身没有I2C(总线)地址,所以不算做有效层级,其下方挂接的Slave4(虚拟机4)实为有效层级2。Slave2(虚拟机2)和Slave3(虚拟机3)处于I2C Switch的下行,且具有I2C地址,所以为有效层级3。此时即使Slave2和Slave3下方再挂接I2C设备,但其I2C地址已不会影响到前3层--此时Slave2,Slave3成为下行设备的主设备。
上述技术方案的有益效果为:如附图3,本发明是一个逐层扫描的过程,通过BMCI2C BUS先扫描slave1和slave2两个虚拟机,然后扫描两个虚拟机的下行设备slave1.1、slave1.2、slave2.2和1slave2.1,最后扫描下行设备的下行设备。有利于检测I2C总线下设备是否存在异常的精确度,利于开发项目的快速推进。
实施例3:
在一个实施例中,如附图3的层序遍历拓扑图和附图5的有效层级拓扑图所示,所述若所扫描的设备具有I2C地址则当前设备为有效层级,包括:
基于有效层级3下方的I2C设备,确定有效层级不大于3层;
因为有效层级3下方的I2C设备的I2C地址无法影响前3层,因此可以确定有效层级不大于3层;
根据所述有效层级不大于3层,确定只需遍历扫描前2层有效层级;
上述技术方案的工作原理为:在实际应用中,I2C拓扑结构可以有多层,但有效层级最多只有3层—即该层设备有I2C地址才判定位有效层级;故本明提到的检测流程只涉及到有效级前3层,且不再需要对有效层级3进行遍历扫描,更进一步地,可以理解为有效层级有三层,包括第一层的有效层级1、第二层的有效层级2和第三层的有效层级3,最后根据当前所扫描的设备具有的I2C地址判定当前设备具体属于哪一层级;
上述技术方案的有益效果为:精确检测有效层,可以减少不必要的计算损耗,增强检测效率,加快项目推进。
实施例4:
在一个实施例中,如所述获取预设地址表,根据所述当前BMC I2C总线下从设备的实际地址与预设地址表的比较,确定当前I2C地址是否存在异常,包括:
基于对设备的预期,设计预设地址表;
根据将所述当前BMC I2C总线下从设备的实际地址映射并存入到寄存器,比较预设地址表与寄存器中的I2C地址,确定当前I2C地址是否存在异常;其中,
若预设地址表中的I2C地址与寄存器中的I2C地址相符,则当前I2C地址不存在异常;
若预设地址表中的I2C地址与寄存器中的I2C地址的比较存在地址数量缺失或与设计地址不符,则当前I2C地址存在异常,
地址表如下表所示:
如附图4所示,本发明的BMC***具有两路I2C BUS总线,即B0与B1。B0下有两个从设备D0与D1,地址分别为0X23与0X22,假定D0,D1做正确配置。D0下有通道CH0与CH1;CH0下有S0和S1两个从设备,地址分别为0X11,0X12,假定S0正确配置,S1错误配置为0X13;CH1下无设备,在地址表无体现。D1下有CH0,CH0下无设备,在地址表无体现。
上述技术方案的工作原理为:通过本发明设计预期配置预设地址表,并将检测流程中检测到的当前BMC I2C总线设备下的实际地址存入到寄存器中,从而比较预设地址表与寄存器里所有I2C地址,判断地址是否存在地址数量缺失或与设计地址不符,若存在,则标记该设备地址,等待后续输出。
上述技术方案的有益效果为:根据预设地址表与检测流程中的实际地址进行快速比较,迅速得到所有存在异常的地址,提高了检测效率,加快了项目的开发和不需要操作人员具有一定的软硬件技术基础。
实施例5:
在一个实施例中,所述若I2C地址存在异常,则输出异常设备地址,包括:
根据所述当前I2C地址是否存在异常,确定每次异常的设备地址;
根据所述每次异常的设备地址,确定检测结束后输出所述每次异常的设备地址;
上述技术方案的工作原理为:判断每次检测设备的实际地址是否存在异常,标记存在异常的设备地址,待检测流程完成后,输出所有存在异常的设备地址;
上述技术方案的有益效果为:根据预设地址表与检测流程中的实际地址进行快速比较,迅速得到所有存在异常的地址,提高了检测效率,加快了项目的开发和不需要操作人员具有一定的软硬件技术基础。
实施例6:
在一个实施例中,所述基于层序遍历设计当前BMC I2C总线地址异常的检测流程包括如下步骤:
步骤(1)、设计预期配置地址表并输入,初始化;
步骤(2)、BMC用过指令查询当前设备下的I2C地址;
步骤(3)、判断是否搜寻到I2C设备,判断结果为是,则执行步骤(5);
步骤(4)、判断是否搜寻到I2C设备,判断结果为否,则标记当前设备为无效层级;
步骤(5)、将搜寻到的I2C地址分别分配给相应的从设备并建立映射,之后将搜寻到的I2C地址存入寄存器;
步骤(6)、比较地址表与寄存器里所有I2C地址;
步骤(7)、判断是否存在地址异常,即地址数量缺失或与设计地址不符,若判断结果为是,则标记该地址等待输出,若标记结果为否,则返回步骤(1),直到检测完3层有效层级后,退出循环执行步骤(8);
步骤(8)、接收步骤(7)所标记地址,预警,输出异常设备地址。
上述技术方案的工作原理为:通过建立一套基于层序遍历的检测流程实现对当前BMC I2C总线下的所有从设备进行逐层自动扫描,并将扫描到的从设备地址与事先建立好的地址表进行比较,来判断出当前***下实际设置的I2C地址是否存在异常并最终输出检测结果。地址异常分为地址数量缺失及与设计地址不符两类;
上述技术方案的有益效果为:用于有效提高BMC I2C总线下地址异常的检测效率,节省人力物力,加快项目研发进程,且对于其他设备作为主机且下行挂接众多I2C设备的情形同样适用。
在一个实施例中,根据所述步骤(1)-(7),确定完成有效层级1的遍历以及有效层级2的遍历;
根据所述步骤(8),确定将寄存器内所有已扫描到的地址与地址表进行对比,完成地址异常检测。
上述技术方案的工作原理为:基于层序遍历,利用检测流程对前三层有效层级进行遍历查询,并将查询到的设备地址存入对应寄存器,并完成地址异常检测;
上述技术方案的有益效果为:层序遍历检测提高了检测的精准度,解决当前BMCI2C总线地址异常检测效率低下的问题。
在一个实施例中,所述根据所述步骤(1)-(7)中,确定完成有效层级1的遍历以及有效层级2的遍历,包括:
根据所述步骤(1)-(7)实现对BMC下所有的总线进行是否挂有设备及设备地址是否异常的检测,确定完成有效层级1的遍历;
根据所述步骤(1)-(7)实现BMC从设备下的设备地址是否异常进行检测,完成有效层级2的遍历。
上述技术方案的工作原理为:利用层序遍历检测有效层级是否存在地址异常;
上述技术方案的有益效果为:遍历检测提高了检测精确度,利用项目加快推进。
一种电子设备,包括服务器以及与所述服务器通信连接的至少一个终端,所述终端包括至少一个存储器和至少一个处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现本申请所述的一种基于层序遍历自动检测***I2C地址异常的方法。
一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现本申请所述的一种基于层序遍历自动检测***I2C地址异常的方法。
存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机***存储器或随机存取存储器,诸如DRAM、DDRRAM、SRAM、EDORAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机***中,或者可以位于不同的第二计算机***中,第二计算机***通过网络(诸如因特网)连接到第一计算机***。第二计算机***可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机***中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的应用程序打包操作,还可以执行本申请任意实施例所提供的应用程序打包方法中的相关操作。
在一个优选实施例中,如附图6,附图7和附图8所示,本发明具有以下流程,在本发明的实施流程中,本发明是逐层扫描的:
首先,在第一层扫描中,如附图6所示,本发明具有如下步骤:
步骤1:按照***设计预期配置地址表并输入,初始化Bus Number--BN为0(初始化地址并标记为0,BN表示地址标记),
步骤2:BMC通过指令查询BUS B0(I2C总线下的分支总线)下所挂的设备的I2C地址;
步骤3:判断是否搜寻到设备的I2C地址;
步骤4:如果判断结果为是,搜寻到的I2C地址分别分配给D0,D1……DM(总线下的下行设备)并与B0建立映射并存入寄存器。
步骤5:如果判断为否,进入步骤7;
步骤6:比较地址表与寄存器里所有I2C地址,判断是否有地址异常,即地址数量缺失或与设计地址不符;
步骤7:如果判读结果为否,执行BN=BN+1,BN=1,并执行步骤8;
步骤8:判断if BN是否大于BNMAX,(即如果标记地址是否大于最大标记地址)并在if BN不大于BNMAX时,返回步骤2;
步骤9:如果判断为是,进行预警,输出异常设备地址和映射关系。
在第一层扫描后,如果if BN>BNMAX(最大地址标记),会根据本发明进行第二层扫描,如附图7所示,第二层扫描的步骤具体包括如下步骤:
步骤11:BUS Number--BN初始为0,M,K初始为0
步骤12:判断IF BN是否被标记;
步骤13:如果被标记,执行步骤
步骤14:如果没有标记,通过BMC下发指令查询BUS B0下设备D0的通道CH0下设备I2C地址;
步骤15:根据所述I2C地址判断是否搜寻到设备;
步骤16:若搜寻到设备,通过搜寻到设备的I2C地址0X11,0X13,0X22,0X23分配给CH0并与B0 D0建立映射存入寄存器后,执行步骤17;
步骤17:如果没有搜索到设备,执行K=K+1,K=1,(K表示寄存地址)并判断If K>KMAX(最大寄存地址);
步骤18:如果If K>KMAX,M=M+1,M=1,K初始化为0
步骤19:如果If K不大于KMAX,返回步骤14;
步骤20:在执行步骤18后,再次判断IFM是否大于MMAX,并在IFM小于等于MMAX时,返回步骤14;在IFM大于MMAX时,进入第三层扫描。
在第二层扫描后,会执行第三层扫描,如附图8所示,并在第三层扫描时执行如下步骤:
步骤21:首先执行BN=BN+1,BN=1,M,K初始化为0;
步骤22:进入判断if BN是否大于BNMAX,在,返回第二层扫描的步骤12;
步骤23:如果if BN大于BNMAX时,通过寄存器里所有的I2C地址与地址表里I2C地址比较,此时寄存器里地址为B0 D0 0X23,B0 D1 0X22,B0 D0 CH0 0X11,0X13,0X22,0X23,地址表里地址为B0 D0 0X23,B0 D1 0X22,B0 D0 CH0 0X11,0X12,0X22,0X23。
步骤24:进入判断是否有地址异常,判读结果为是
步骤25:如果地址异常,预警,输出异常设备地址B0 D0 CH0 0X11,0X13,0X22,0X23。
步骤26:流程结束
以上流程即实现了本发明提出的基于层序遍历自动检测BMC I2C总线地址异常。其中步骤1~9实现对BMC下所有的BUS总线即BUS0,BUS1总线分别进行是否挂有设备及设备地址是否异常的检测,完成有效层级1的遍历;步骤11~20实现BMC BUS0下D0,D1及BUS1下设备地址是否异常进行检测,完成有效层级2的遍历;步骤21~24进行寄存器内所有已扫描到的地址对比,完成地址异常检测。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (9)
1.一种基于层序遍历自动检测***I2C地址异常的方法,其特征在于,包括:
基于层序遍历设计当前BMCI2C总线地址异常的检测流程,并根据所述检测流程对当前BMCI2C总线下的所有从设备进行逐层自动扫描;其中,若所扫描的设备具有I2C地址则当前设备为有效层级;若所扫描的设备不具有I2C地址则当前设备为无效层级;
根据所述有效层级,获取所有有效层级的设备地址,确定当前BMCI2C总线下从设备的实际地址;
获取预设地址表,将所述当前BMCI2C总线下从设备的实际地址与预设地址表进行比较,确定当前I2C地址是否存在异常;
若所述I2C地址不存在异常,则结束检测流程;
若所述I2C地址存在异常,则预警并输出异常设备地址,结束检测流程。
2.如权利要求1所述的一种基于层序遍历自动检测***I2C地址异常的方法,其特征在于,所述若所扫描的设备具有I2C地址则当前设备为有效层级,包括:
所述有效层级包括第一层的有效层级1、第二层的有效层级2和第三层的有效层级3其中任一项;
基于有效层级3下方的I2C设备,确定有效层级不大于3层;
根据所述有效层级不大于3层,确定只需遍历扫描前2层有效层级。
3.如权利要求1所述的一种基于层序遍历自动检测***I2C地址异常的方法,其特征在于,所述获取预设地址表,根据所述当前BMCI2C总线下从设备的实际地址与预设地址表的比较,确定当前I2C地址是否存在异常,包括:
基于对设备的预期,设计预设地址表;
根据将所述当前BMCI2C总线下从设备的实际地址映射并存入到寄存器,比较预设地址表与寄存器中的I2C地址,确定当前I2C地址是否存在异常;其中,
若预设地址表中的I2C地址与寄存器中的I2C地址相符,则当前I2C地址不存在异常;
若预设地址表中的I2C地址与寄存器中的I2C地址的比较存在地址数量缺失或与设计地址不符,则当前I2C地址存在异常。
4.如权利要求1所述的一种基于层序遍历自动检测***I2C地址异常的方法,其特征在于,若所述I2C地址存在异常,则预警并输出异常设备地址,结束检测流程,包括:
根据当前异常的I2C地址,确定每次I2C地址异常时的设备地址;
根据每次异常的设备地址,确定检测结束后输出所述每次异常的设备地址。
5.如权利要求1所述的一种基于层序遍历自动检测***I2C地址异常的方法,其特征在于,所述基于层序遍历设计当前BMCI2C总线地址异常的检测流程包括如下步骤:
步骤(1)、设计预期配置地址表并输入,初始化;
步骤(2)、BMC用过指令查询当前设备下的I2C地址;
步骤(3)、判断是否搜寻到I2C设备,判断结果为是,则执行步骤(5);
步骤(4)、判断是否搜寻到I2C设备,判断结果为否,则标记当前设备为无效层级;
步骤(5)、将搜寻到的I2C地址分别分配给相应的从设备并建立映射,之后将搜寻到的I2C地址存入寄存器;
步骤(6)、比较地址表与寄存器里所有I2C地址;
步骤(7)、判断是否存在地址异常,即地址数量缺失或与设计地址不符,若判断结果为是,则标记该地址等待输出,若标记结果为否,则返回步骤(1),直到检测完3层有效层级后,退出循环执行步骤(8);
步骤(8)、接收步骤(7)所标记地址,预警,输出异常设备地址。
6.如权利要求5所述的一种基于层序遍历自动检测***I2C地址异常的方法,其特征在于,包括:
根据所述步骤(1)-(7),确定完成有效层级1的遍历以及有效层级2的遍历;
根据所述步骤(8),确定将寄存器内所有已扫描到的地址与地址表进行对比,完成地址异常检测。
7.如权利要求6所述的一种基于层序遍历自动检测***I2C地址异常的方法,其特征在于,所述根据所述步骤(1)-(7),确定完成有效层级1的遍历以及有效层级2的遍历,包括:
根据所述步骤(1)-(7)实现对BMC下所有的总线进行是否挂有设备及设备地址是否异常的检测,确定完成有效层级1的遍历;
根据所述步骤(1)-(7)实现BMC从设备下的设备地址是否异常进行检测,完成有效层级2的遍历。
8.一种电子设备,其特征在于,包括服务器以及与所述服务器通信连接的至少一个终端,所述终端包括至少一个存储器和至少一个处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的一种基于层序遍历自动检测***I2C地址异常的方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的一种基于层序遍历自动检测***I2C地址异常的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011159204.1A CN112306867B (zh) | 2020-10-26 | 2020-10-26 | 一种基于层序遍历自动检测***i2c地址异常的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011159204.1A CN112306867B (zh) | 2020-10-26 | 2020-10-26 | 一种基于层序遍历自动检测***i2c地址异常的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112306867A CN112306867A (zh) | 2021-02-02 |
CN112306867B true CN112306867B (zh) | 2022-11-11 |
Family
ID=74331060
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011159204.1A Active CN112306867B (zh) | 2020-10-26 | 2020-10-26 | 一种基于层序遍历自动检测***i2c地址异常的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112306867B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114003445B (zh) * | 2021-09-29 | 2023-12-26 | 苏州浪潮智能科技有限公司 | Bmc的i2c监控功能测试方法、***、终端及存储介质 |
CN114090351A (zh) * | 2021-10-26 | 2022-02-25 | 中科可控信息产业有限公司 | 信号测试方法、装置、计算机设备和存储介质 |
CN113821369A (zh) * | 2021-11-23 | 2021-12-21 | 苏州浪潮智能科技有限公司 | 一种内存巡检的方法、装置及介质 |
CN115658409B (zh) * | 2022-11-11 | 2023-03-14 | 苏州浪潮智能科技有限公司 | 一种异常检测方法、装置、主机设备、***及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106371954A (zh) * | 2016-08-19 | 2017-02-01 | 浪潮(北京)电子信息产业有限公司 | 基于10位从机地址的i2c总线验证的方法及*** |
CN110659181A (zh) * | 2019-09-06 | 2020-01-07 | 苏州浪潮智能科技有限公司 | 一种监控服务器主板的方法、设备及可读介质 |
CN111289922A (zh) * | 2020-01-22 | 2020-06-16 | 华为技术有限公司 | 线缆插接检测方法及相关设备 |
-
2020
- 2020-10-26 CN CN202011159204.1A patent/CN112306867B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106371954A (zh) * | 2016-08-19 | 2017-02-01 | 浪潮(北京)电子信息产业有限公司 | 基于10位从机地址的i2c总线验证的方法及*** |
CN110659181A (zh) * | 2019-09-06 | 2020-01-07 | 苏州浪潮智能科技有限公司 | 一种监控服务器主板的方法、设备及可读介质 |
CN111289922A (zh) * | 2020-01-22 | 2020-06-16 | 华为技术有限公司 | 线缆插接检测方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112306867A (zh) | 2021-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112306867B (zh) | 一种基于层序遍历自动检测***i2c地址异常的方法 | |
US7783843B2 (en) | Bus interface adapted to coalesce snoop responses | |
US20240028525A1 (en) | Method for writing data from axi bus to opb and method for reading data from axi bus to opb bus | |
US20200241985A1 (en) | Methods, electronic devices, storage systems, and computer program products for error detection | |
JP2021524966A (ja) | マルチコア相互接続のレベル2キャッシュへのアクセスを検証する方法 | |
WO2024099449A1 (zh) | 信息获取方法、装置、存储***、设备及介质 | |
WO2022042397A1 (zh) | 逻辑综合方法、设备和存储介质 | |
CN105183575A (zh) | 处理器故障的诊断方法、装置及*** | |
US8548966B2 (en) | Asynchronous assertions | |
US7519865B1 (en) | Systems and methods for identifying incomplete transactions | |
CN112256618B (zh) | 一种映射关系确定方法及装置 | |
CN110737618A (zh) | 内嵌处理器进行快速数据通信的方法、装置及存储介质 | |
WO2024113778A1 (zh) | 现场可更换单元设备的槽位确定方法、装置、设备 | |
CN116775509B (zh) | 一种缓存一致性验证方法、装置、设备以及存储介质 | |
CN117687695A (zh) | 信息处理方法、装置、电子设备及存储介质 | |
CN107332945A (zh) | 一种虚拟机ip地址获取方法及装置 | |
CN115658588B (zh) | 一种axi总线的id压缩装置及方法 | |
US6529979B1 (en) | Method and apparatus for a high-speed serial communications bus protocol with positive acknowledgement | |
WO2023137963A1 (zh) | 一种pcie设备定位方法、装置及相关设备 | |
CN115454896A (zh) | 基于smbus的ssd mctp控制消息验证方法、装置、计算机设备及存储介质 | |
CN116302145A (zh) | 一种aer功能配置方法、装置、设备及介质 | |
CN115952084A (zh) | 验证访存部件的方法及*** | |
CN114637551A (zh) | 设备驱动方法、***及存储介质 | |
CN101562034B (zh) | 一种数据一致性错误定位方法和装置 | |
CN112783683A (zh) | 数据处理方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 |