一种IO端口测试方法及服务器转让专利

申请号 : CN202310328509.8

文献号 : CN116089199B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 熊涛邹卓维隆香花

申请人 : 湖南华自信息技术有限公司

摘要 :

本申请涉及一种IO端口测试方法及服务器,通过模拟设备生成模块根据外设IO端口的第一端口信息,以及数据选择器上与外设IO端口连接的引脚的引脚信号定义,生成并激活模拟外设IO设备,根据CPU是否能够识别到模拟模拟外设IO设备且相互之间是否能够建立数据通信,来判定外设IO端口是测试正常还是测试异常,通过使用模拟外设IO设备来替代现有技术中的外设IO设备,使得测试过程中不需要使用大量的外设IO设备进行陪测,极大地降低了测试的成本,而且不需要测试人员手动对外设IO设备进行逐一插拔,有效地缩减了测试时长,进而有效地提高了测试效率,且降低了手动插拔外设IO设备的过程中存在的操作不当带来的硬件损坏的风险。

权利要求 :

1.一种IO端口测试方法,其特征在于,应用于服务器,所述服务器包括外设IO端口、IO控制器、中央处理器CPU、基板管理控制器和外设IO测试模块,所述外设IO测试模块包括测试控制器、数据选择器、模拟设备生成模块,所述方法包括:所述基板管理控制器根据预设测试任务,生成第一测试脚本和第二测试脚本,并根据所述第一测试脚本,生成测试开始指令;

所述测试控制器根据所述测试开始指令,控制所述数据选择器将工作通道切换至测试通道,并获取所述数据选择器上与所述外设IO端口连接的引脚的引脚信号定义,其中,所述工作通道为所述外设IO端口与所述IO控制器之间的通信通道,所述测试通道为所述模拟设备生成模块与所述IO控制器之间的通信通道;

所述CPU根据所述第二测试脚本,向所述外设IO端口发送测试数据,获取所述外设IO端口的第一端口信息;

所述模拟设备生成模块根据所述第一端口信息和所述引脚信号定义,生成并激活模拟外设IO设备;

所述CPU对所述模拟外设IO设备进行识别,若能够识别到所述模拟外设IO设备且相互之间能够建立数据通信,则判定所述外设IO端口测试正常,若不能识别到所述模拟外设IO设备,则判定所述外设IO端口测试异常;

所述模拟设备生成模块包括现场可编程门阵列FPGA和模拟固件生成器,所述测试通道为所述FPGA与所述IO控制器之间的通信通道,所述模拟设备生成模块根据所述第一端口信息和所述引脚信号定义,生成并激活模拟外设IO设备,包括:所述模拟固件生成器根据所述第一端口信息,生成模拟外设IO设备所需的第一运行固件;

所述FPGA根据所述引脚信号定义生成所述模拟外设IO设备,根据所述第一运行固件激活所述模拟外设IO设备。

2.根据权利要求1所述的IO端口测试方法,其特征在于,所述外设IO端口为M个,所述外设IO测试模块为N个,所述IO控制器为N个,其中,M和N为大于或等于1的正整数,且M大于或等于N,所述方法还包括:所述CPU发送M个所述外设IO端口的测试结果,所述测试结果包括测试正常和测试异常;

所述基板管理控制器根据M个所述测试结果生成测试报告。

3.根据权利要求2所述的IO端口测试方法,其特征在于,所述服务器还包括复杂可编程逻辑器件CPLD,所述方法还包括:若所述测试报告中存在测试异常的异常外设IO端口,所述基板管理控制器则根据预设诊断任务,生成第一诊断脚本和第二诊断脚本,并根据所述第一诊断脚本,生成第一数据采集指令;

所述CPLD根据所述第一数据采集指令,采集待检测IO控制器的监控数据,并判断所述监控数据是否符合第一预设要求,若所述监控数据不符合第一预设要求,则判定所述待检测IO控制器为异常IO控制器,并发送IO控制器异常信号,其中,所述待检测IO控制器为所述异常外设IO端口和所述CPU之间的IO控制器;

所述基板管理控制器根据所述IO控制器异常信号,生成IO控制器异常诊断报告。

4.根据权利要求3所述的IO端口测试方法,其特征在于,所述数据选择器内设置有逻辑控制单元,所述方法还包括:若所述监控数据符合第一预设要求,则所述CPU根据所述第二诊断脚本,向所述异常外设IO端口发送诊断数据,获取所述异常外设IO端口的第二端口信息,其中,所述第二端口信息为所述异常外设IO端口的物理地址;

所述逻辑控制单元根据所述第二端口信息,采集所述异常外设IO端口的输出信号通道数据,并判断所述信号通道数据是否符合第二预设要求,若所述信号通道数据符合第二预设要求,则判定IO端口链路为正常IO端口链路,并发送IO端口链路正常信号,若所述信号通道数据不符合第二预设要求,则判定所述IO端口链路为异常IO端口链路,并发送IO端口链路异常信号,其中,所述IO端口链路为所述异常外设IO端口和对应的所述IO控制器之间的链路;

所述基板管理控制器根据所述IO端口链路正常信号或所述IO端口链路异常信号,生成IO端口链路诊断报告。

5.根据权利要求4所述的IO端口测试方法,其特征在于,所述方法还包括:

所述基板管理控制器若接收到所述IO控制器异常诊断报告或所述IO端口链路诊断报告,则根据预设修复任务,生成第二数据采集指令;

所述CPLD根据所述第二数据采集指令,采集所述异常IO控制器或与所述异常IO端口链路连接的IO控制器的固件数据和硬件数据;

所述模拟固件生成器根据所述固件数据,生成模拟IO控制器所需的第二运行固件;

所述FPGA根据所述硬件数据生成所述模拟IO控制器,根据所述第二运行固件激活所述模拟IO控制器,并发送模拟IO控制器激活信号;

所述基板管理控制器根据所述模拟IO控制器激活信号,生成切换指令,并发送所述切换指令;

所述CPU根据所述切换指令与所述模拟IO控制器建立数据通信;

所述CPLD根据所述切换指令,控制关闭所述异常IO控制器或与所述异常IO端口链路连接的IO控制器的电源;

所述测试控制器根据所述切换指令,控制所述数据选择器将测试通道切换至备用工作通道,以使得所述模拟IO控制器与所述外设IO端口之间建立数据通信,其中,所述备用工作通道为所述FPGA中的所述模拟IO控制器与所述外设IO端口之间的通信通道。

6.一种服务器,其特征在于,包括外设IO端口、IO控制器、CPU、基板管理控制器和外设IO测试模块,所述外设IO测试模块包括测试控制器、数据选择器、模拟设备生成模块,其中:所述基板管理控制器,用于根据预设测试任务,生成第一测试脚本和第二测试脚本,并根据所述第一测试脚本,生成测试开始指令;

所述测试控制器,用于根据所述测试开始指令,控制所述数据选择器将工作通道切换至测试通道,并获取所述数据选择器上与所述外设IO端口连接的引脚的引脚信号定义,其中,所述工作通道为所述外设IO端口与所述IO控制器之间的通信通道,所述测试通道为所述模拟设备生成模块与所述IO控制器之间的通信通道;

所述CPU,用于根据所述第二测试脚本,向所述外设IO端口发送测试数据,获取所述外设IO端口的第一端口信息;

所述CPU,还用于对模拟外设IO设备进行识别,若能够识别到所述模拟外设IO设备且相互之间能够建立数据通信,则判定所述外设IO端口测试正常,若不能识别到所述模拟外设IO设备,则判定所述外设IO端口测试异常;

所述模拟设备生成模块,用于根据所述第一端口信息和所述引脚信号定义,生成并激活所述模拟外设IO设备;

所述模拟设备生成模块包括FPGA和模拟固件生成器,所述测试通道为所述FPGA与所述IO控制器之间的通信通道,所述模拟设备生成模块在执行所述根据所述第一端口信息和所述引脚信号定义,生成并激活所述模拟外设IO设备时,具体用于:所述模拟固件生成器根据所述第一端口信息,生成所述模拟外设IO设备所需的第一运行固件;

所述FPGA根据所述引脚信号定义生成所述模拟外设IO设备,根据所述第一运行固件激活所述模拟外设IO设备。

7.根据权利要求6所述的服务器,其特征在于,所述外设IO测试模块还包括信号增强和防抖动模块;

所述信号增强和防抖动模块设置在所述数据选择器和所述外设IO接口之间的所述工作通道上,用于增强放大所述工作通道上的信号以及减轻信号的抖动。

8.根据权利要求6所述的服务器,其特征在于,所述外设IO端口为M个,所述外设IO测试模块为N个,所述IO控制器为N个,其中,M和N为大于或等于1的正整数,且M大于或等于N,其中:所述CPU,还用于发送M个所述外设IO端口的测试结果,所述测试结果包括测试正常和测试异常;

所述基板管理控制器,还用于根据M个所述测试结果生成测试报告。

9.根据权利要求8所述的服务器,其特征在于,还包括:CPLD;

所述基板管理控制器,还用于若所述测试报告中存在测试异常的异常外设IO端口,则根据预设诊断任务,生成第一诊断脚本和第二诊断脚本,并根据所述第一诊断脚本,生成第一数据采集指令;

所述基板管理控制器,还用于根据IO控制器异常信号,生成IO控制器异常诊断报告;

所述CPLD,用于根据所述第一数据采集指令,采集待检测IO控制器的监控数据,并判断所述监控数据是否符合第一预设要求,若所述监控数据不符合第一预设要求,则判定所述待检测IO控制器为异常IO控制器,并发送所述IO控制器异常信号,其中,所述待检测IO控制器为所述异常外设IO端口和所述CPU之间的IO控制器。

10.根据权利要求9所述的服务器,其特征在于,所述数据选择器内设置有逻辑控制单元,其中:所述CPU,还用于若所述监控数据符合第一预设要求,则根据所述第二诊断脚本,向所述异常外设IO端口发送诊断数据,获取所述异常外设IO端口的第二端口信息,其中,所述第二端口信息为所述异常外设IO端口的物理地址;

所述基板管理控制器,还用于根据IO端口链路正常信号或IO端口链路异常信号,生成IO端口链路诊断报告;

所述逻辑控制单元,用于根据所述第二端口信息,采集所述异常外设IO端口的输出信号通道数据,并判断所述信号通道数据是否符合第二预设要求,若所述信号通道数据符合第二预设要求,则判定IO端口链路为正常IO端口链路,并发送所述IO端口链路正常信号,若所述信号通道数据不符合第二预设要求,则判定所述IO端口链路为异常IO端口链路,并发送所述IO端口链路异常信号,其中,所述IO端口链路为所述异常外设IO端口和对应的所述IO控制器之间的链路。

11.根据权利要求10所述的服务器,其特征在于,

所述基板管理控制器,还用于若接收到所述IO控制器异常诊断报告或所述IO端口链路诊断报告,则根据预设修复任务,生成第二数据采集指令;

所述CPLD,还用于根据所述第二数据采集指令,采集所述异常IO控制器或与所述异常IO端口链路连接的IO控制器的固件数据和硬件数据;

所述模拟固件生成器,还用于根据所述固件数据,生成模拟IO控制器所需的第二运行固件;

所述FPGA,还用于根据所述硬件数据生成所述模拟IO控制器,根据所述第二运行固件激活所述模拟IO控制器,并发送模拟IO控制器激活信号;

所述基板管理控制器,还用于根据所述模拟IO控制器激活信号,生成切换指令,并发送所述切换指令;

所述CPU,还用于根据所述切换指令与所述模拟IO控制器建立数据通信;

所述CPLD,还用于根据所述切换指令,控制关闭所述异常IO控制器或与所述异常IO端口链路连接的IO控制器的电源;

所述测试控制器,还用于根据所述切换指令,控制所述数据选择器将测试通道切换至备用工作通道,以使得所述模拟IO控制器与所述外设IO端口之间建立数据通信,其中,所述备用工作通道为所述FPGA中的所述模拟IO控制器与所述外设IO端口之间的通信通道。

说明书 :

一种IO端口测试方法及服务器

技术领域

[0001] 本申请属于服务器测试技术领域,特别是涉及一种IO端口测试方法及服务器。

背景技术

[0002] 随着当前计算力的高速发展,服务器的用量在急剧上升,服务器的外设IO端口就显得尤为重要,每一台服务器主板在出厂前都要经过重重外设IO端口的测试。
[0003] 目前,对服务器的外设IO端口进行测试,一般采用手动操作测试,手动测试需要准备如USB设备、网络设备、存储设备等外设IO设备进行陪测,测试人员再将外设IO设备逐一
插装至服务器主板的外设IO端口上,服务器主板上的CPU对外设IO设备进行识别,若CPU能
够识别到外设IO设备且相互之间能够建立数据通信,则判定外设IO端口测试正常,若CPU不
能识别到外设IO设备,则判定外设IO端口测试异常,测试完成后需要再将外设IO设备从外
设IO端口上拔下来,使得整个测试过程,不仅需要使用大量的外设IO设备进行陪测,极大地
提高了测试的成本,而且需要测试人员手动对外设IO设备进行逐一插拔,使得测试的整个
过程耗时较长,导致测试效率较低,而且在测试人员在插拔外设IO设备的过程中,存在操作
不当带来的硬件损坏的风险。

发明内容

[0004] 本申请的目的为提供一种IO端口测试方法及服务器;本申请提供的IO端口测试方法及服务器,通过使用模拟外设IO设备来替代现有技术中的外设IO设备,使得测试过程中
不需要使用大量的外设IO设备进行陪测,极大地降低了测试的成本,而且不需要测试人员
手动对外设IO设备进行逐一插拔,有效地缩减了测试时长,进而有效地提高了测试效率,且
降低了测试人员在插拔外设IO设备的过程中存在的操作不当带来的硬件损坏的风险。
[0005] 本申请提供的技术方案如下:
[0006] 一种IO端口测试方法,应用于服务器,所述服务器包括外设IO端口、IO控制器、中央处理器CPU、基板管理控制器和外设IO测试模块,所述外设IO测试模块包括测试控制器、
数据选择器、模拟设备生成模块,所述方法包括:
[0007] 所述基板管理控制器根据预设测试任务,生成第一测试脚本和第二测试脚本,并根据所述第一测试脚本,生成测试开始指令;
[0008] 所述测试控制器根据所述测试开始指令,控制所述数据选择器将工作通道切换至测试通道,并获取所述数据选择器上与所述外设IO端口连接的引脚的引脚信号定义,其中,
所述工作通道为所述外设IO端口与所述IO控制器之间的通信通道,所述测试通道为所述模
拟设备生成模块与所述IO控制器之间的通信通道;
[0009] 所述CPU根据所述第二测试脚本,向所述外设IO端口发送测试数据,获取所述外设IO端口的第一端口信息;
[0010] 所述模拟设备生成模块根据所述第一端口信息和所述引脚信号定义,生成并激活模拟外设IO设备;
[0011] 所述CPU对所述模拟外设IO设备进行识别,若能够识别到所述模拟外设IO设备且相互之间能够建立数据通信,则判定所述外设IO端口测试正常,若不能识别到所述模拟外
设IO设备,则判定所述外设IO端口测试异常。
[0012] 优选地,所述模拟设备生成模块包括现场可编程门阵列FPGA和模拟固件生成器,所述测试通道为所述FPGA与所述IO控制器之间的通信通道,所述模拟设备生成模块根据所
述第一端口信息和所述引脚信号定义,生成并激活模拟外设IO设备,包括:
[0013] 所述模拟固件生成器根据所述第一端口信息,生成模拟外设IO设备所需的第一运行固件;
[0014] 所述FPGA根据所述引脚信号定义生成所述模拟外设IO设备,根据所述第一运行固件激活所述模拟外设IO设备。
[0015] 优选地,所述外设IO端口为M个,所述外设IO测试模块为N个,所述IO控制器为N个,其中,M和N为大于或等于1的正整数,且M大于或等于N,所述方法还包括:
[0016] 所述CPU发送M个所述外设IO端口的测试结果,所述测试结果包括测试正常和测试异常;
[0017] 所述基板管理控制器根据M个所述测试结果生成测试报告。
[0018] 优选地,所述服务器还包括复杂可编程逻辑器件CPLD,所述方法还包括:
[0019] 若所述测试报告中存在测试异常的异常外设IO端口,所述基板管理控制器则根据预设诊断任务,生成第一诊断脚本和第二诊断脚本,并根据所述第一诊断脚本,生成第一数
据采集指令;
[0020] 所述CPLD根据所述第一数据采集指令,采集待检测IO控制器的监控数据,并判断所述监控数据是否符合第一预设要求,若所述监控数据不符合第一预设要求,则判定所述
待检测IO控制器为异常IO控制器,并发送IO控制器异常信号,其中,所述待检测IO控制器为
所述异常外设IO端口和所述CPU之间的IO控制器;
[0021] 所述基板管理控制器根据所述IO控制器异常信号,生成IO控制器异常诊断报告。
[0022] 优选地,所述数据选择器内设置有逻辑控制单元,所述方法还包括:
[0023] 若所述监控数据符合第一预设要求,则所述CPU根据所述第二诊断脚本,向所述异常外设IO端口发送诊断数据,获取所述异常外设IO端口的第二端口信息,其中,所述第二端
口信息为所述异常外设IO端口的物理地址;
[0024] 所述逻辑控制单元根据所述第二端口信息,采集所述异常外设IO端口的输出信号通道数据,并判断所述信号通道数据是否符合第二预设要求,若所述信号通道数据符合第
二预设要求,则判定IO端口链路为正常IO端口链路,并发送IO端口链路正常信号,若所述信
号通道数据不符合第二预设要求,则判定所述IO端口链路为异常IO端口链路,并发送IO端
口链路异常信号,其中,所述IO端口链路为所述异常外设IO端口和对应的所述IO控制器之
间的链路;
[0025] 所述基板管理控制器根据所述IO端口链路正常信号或所述IO端口链路异常信号,生成IO端口链路诊断报告。
[0026] 优选地,所述方法还包括:
[0027] 所述基板管理控制器若接收到所述IO控制器异常诊断报告或所述IO端口链路诊断报告,则根据预设修复任务,生成第二数据采集指令;
[0028] 所述CPLD根据所述第二数据采集指令,采集所述异常IO控制器或与所述异常IO端口链路连接的IO控制器的固件数据和硬件数据;
[0029] 所述模拟固件生成器根据所述固件数据,生成模拟IO控制器所需的第二运行固件;
[0030] 所述FPGA根据所述硬件数据生成所述模拟IO控制器,根据所述第二运行固件激活所述模拟IO控制器,并发送模拟IO控制器激活信号;
[0031] 所述基板管理控制器根据所述模拟IO控制器激活信号,生成切换指令,并发送所述切换指令;
[0032] 所述CPU根据所述切换指令与所述模拟IO控制器建立数据通信;
[0033] 所述CPLD根据所述切换指令,控制关闭所述异常IO控制器或与所述异常IO端口链路连接的IO控制器的电源;
[0034] 所述测试控制器根据所述切换指令,控制所述数据选择器将测试通道切换至备用工作通道,以使得所述模拟IO控制器与所述外设IO端口之间建立数据通信,其中,所述备用
工作通道为所述FPGA中的所述模拟IO控制器与所述外设IO端口之间的通信通道。
[0035] 本申请还提供一种服务器,包括外设IO端口、IO控制器、CPU、基板管理控制器和外设IO测试模块,所述外设IO测试模块包括测试控制器、数据选择器、模拟设备生成模块,其
中:
[0036] 所述基板管理控制器,用于根据预设测试任务,生成第一测试脚本和第二测试脚本,并根据所述第一测试脚本,生成测试开始指令;
[0037] 所述测试控制器,用于根据所述测试开始指令,控制所述数据选择器将工作通道切换至测试通道,并获取所述数据选择器上与所述外设IO端口连接的引脚的引脚信号定
义,其中,所述工作通道为所述外设IO端口与所述IO控制器之间的通信通道,所述测试通道
为所述模拟设备生成模块与所述IO控制器之间的通信通道;
[0038] 所述CPU,用于根据所述第二测试脚本,向所述外设IO端口发送测试数据,获取所述外设IO端口的第一端口信息;
[0039] 所述CPU,还用于对模拟外设IO设备进行识别,若能够识别到所述模拟外设IO设备且相互之间能够建立数据通信,则判定所述外设IO端口测试正常,若不能识别到所述模拟
外设IO设备,则判定所述外设IO端口测试异常;
[0040] 所述模拟设备生成模块,用于根据所述第一端口信息和所述引脚信号定义,生成并激活所述模拟外设IO设备。
[0041] 优选地,所述模拟设备生成模块包括FPGA和模拟固件生成器,所述测试通道为所述FPGA与所述IO控制器之间的通信通道,所述模拟设备生成模块在执行所述根据所述第一
端口信息和所述引脚信号定义,生成并激活所述模拟外设IO设备时,具体用于:
[0042] 所述模拟固件生成器根据所述第一端口信息,生成所述模拟外设IO设备所需的第一运行固件;
[0043] 所述FPGA根据所述引脚信号定义生成所述模拟外设IO设备,根据所述第一运行固件激活所述模拟外设IO设备。
[0044] 优选地,所述外设IO测试模块还包括信号增强和防抖动模块;
[0045] 所述信号增强和防抖动模块设置在所述数据选择器和所述外设IO接口之间的所述工作通道上,用于增强放大所述工作通道上的信号以及减轻信号的抖动。
[0046] 优选地,所述外设IO端口为M个,所述外设IO测试模块为N个,所述IO控制器为N个,其中,M和N为大于或等于1的正整数,且M大于或等于N,其中:
[0047] 所述CPU,还用于发送M个所述外设IO端口的测试结果,所述测试结果包括测试正常和测试异常;
[0048] 所述基板管理控制器,还用于根据M个所述测试结果生成测试报告。
[0049] 优选地,还包括:CPLD;
[0050] 所述基板管理控制器,还用于若所述测试报告中存在测试异常的异常外设IO端口,则根据预设诊断任务,生成第一诊断脚本和第二诊断脚本,并根据所述第一诊断脚本,
生成第一数据采集指令;
[0051] 所述基板管理控制器,还用于根据IO控制器异常信号,生成IO控制器异常诊断报告;
[0052] 所述CPLD,用于根据所述第一数据采集指令,采集待检测IO控制器的监控数据,并判断所述监控数据是否符合第一预设要求,若所述监控数据不符合第一预设要求,则判定
所述待检测IO控制器为异常IO控制器,并发送所述IO控制器异常信号,其中,所述待检测IO
控制器为所述异常外设IO端口和所述CPU之间的IO控制器。
[0053] 优选地,所述数据选择器内设置有逻辑控制单元,其中:
[0054] 所述CPU,还用于若所述监控数据符合第一预设要求,则根据所述第二诊断脚本,向所述异常外设IO端口发送诊断数据,获取所述异常外设IO端口的第二端口信息,其中,所
述第二端口信息为所述异常外设IO端口的物理地址;
[0055] 所述基板管理控制器,还用于根据IO端口链路正常信号或IO端口链路异常信号,生成IO端口链路诊断报告;
[0056] 所述逻辑控制单元,用于根据所述第二端口信息,采集所述异常外设IO端口的输出信号通道数据,并判断所述信号通道数据是否符合第二预设要求,若所述信号通道数据
符合第二预设要求,则判定IO端口链路为正常IO端口链路,并发送所述IO端口链路正常信
号,若所述信号通道数据不符合第二预设要求,则判定所述IO端口链路为异常IO端口链路,
并发送所述IO端口链路异常信号,其中,所述IO端口链路为所述异常外设IO端口和对应的
所述IO控制器之间的链路。
[0057] 优选地,
[0058] 所述基板管理控制器,还用于若接收到所述IO控制器异常诊断报告或所述IO端口链路诊断报告,则根据预设修复任务,生成第二数据采集指令;
[0059] 所述CPLD,还用于根据所述第二数据采集指令,采集所述异常IO控制器或与所述异常IO端口链路连接的IO控制器的固件数据和硬件数据;
[0060] 所述模拟固件生成器,还用于根据所述固件数据,生成模拟IO控制器所需的第二运行固件;
[0061] 所述FPGA,还用于根据所述硬件数据生成所述模拟IO控制器,根据所述第二运行固件激活所述模拟IO控制器,并发送模拟IO控制器激活信号;
[0062] 所述基板管理控制器,还用于根据所述模拟IO控制器激活信号,生成切换指令,并发送所述切换指令;
[0063] 所述CPU,还用于根据所述切换指令与所述模拟IO控制器建立数据通信;
[0064] 所述CPLD,还用于根据所述切换指令,控制关闭所述异常IO控制器或与所述异常IO端口链路连接的IO控制器的电源;
[0065] 所述测试控制器,还用于根据所述切换指令,控制所述数据选择器将测试通道切换至备用工作通道,以使得所述模拟IO控制器与所述外设IO端口之间建立数据通信,其中,
所述备用工作通道为所述FPGA中的所述模拟IO控制器与所述外设IO端口之间的通信通道。
[0066] 与现有技术相比较,本申请提供的一种IO端口测试方法及服务器,本申请中,通过获取外设IO端口的第一端口信息,以及获取数据选择器上与外设IO端口连接的引脚的引脚
信号定义,再通过模拟设备生成模块根据第一端口信息和引脚信号定义,生成并激活模拟
外设IO设备,根据CPU是否能够识别到模拟模拟外设IO设备且相互之间是否能够建立数据
通信,来判定待测的外设IO端口是测试正常还是测试异常,通过使用模拟外设IO设备来替
代现有技术中的外设IO设备,使得测试过程中不需要使用大量的外设IO设备进行陪测,极
大地降低了测试的成本,而且不需要测试人员手动对外设IO设备进行逐一插拔,有效地缩
减了测试时长,进而有效地提高了测试效率,且降低了测试人员在插拔外设IO设备的过程
中存在的操作不当带来的硬件损坏的风险。

附图说明

[0067] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以
根据这些附图获得其他的附图。
[0068] 图1为本申请实施例公开的一种IO端口测试方法的流程图;
[0069] 图2为本申请实施例公开的根据M个测试结果生成测试报告的流程图;
[0070] 图3为本申请实施例公开的一种IO控制器诊断方法的流程图;
[0071] 图4为本申请实施例公开的一种IO端口链路诊断方法的流程图;
[0072] 图5为本申请实施例公开的一种出现IO控制器异常或与IO端口链路异常后的冗余替换方法的流程图;
[0073] 图6为本申请实施例公开的一种服务器的第一结构框图;
[0074] 图7为本申请实施例公开的一种服务器的第二结构框图;
[0075] 图8为本申请实施例公开的一种服务器的第三结构框图;
[0076] 图9为本申请实施例公开的数据选择器在工作通道和测试通道进行切换的结构示意图;
[0077] 图10为本申请实施例公开的服务器在异常修复过程中,数据选择器将测试通道切换至备用工作通道的结构示意图;
[0078] 图11为本申请实施例公开的服务器在异常修复过程中,数据选择器将测试通道切换至备用工作通道,且FPGA和CPU通过冗余PCIE总线进行通信的结构示意图。

具体实施方式

[0079] 为了使本领域的技术人员更好地理解本申请中的技术方案,下面将对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施
例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性
劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0080] 需要说明的是,当元件被称为“固定于”或“设置于”另一个元件上,它可以直接在另一个元件上或者间接设置在另一个元件上;当一个元件被称为是“连接于”另一个元件,它可以是直接连接到另一个元件或间接连接至另一个元件上。
[0081] 需要理解的是,术语“长度”、“宽度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
[0082] 此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多该特征。在本申请的描述中,“多个”、“若干个”的含义是两个或两个以上,除非另有明确具体的限定。
[0083] 须知,本说明书附图所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本申请可实施的限定条件,故不具
技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本申请所能
产生的功效及所能达成的目的下,均应仍落在本申请所揭示的技术内容所能涵盖的范围
内。
[0084] 如图1所示,本申请实施例提供一种IO端口测试方法,应用于服务器,所述服务器包括外设IO端口、IO控制器、中央处理器CPU、基板管理控制器和外设IO测试模块,所述外设IO测试模块包括测试控制器、数据选择器、模拟设备生成模块,方法包括:
[0085] S101、基板管理控制器根据预设测试任务,生成第一测试脚本和第二测试脚本,并根据第一测试脚本,生成测试开始指令;
[0086] 本实施例中,预设测试任务可以是用户在基板管理控制器的人机交互界面通过点击测试开始按键启动的测试任务,测试任务启动后,基板管理控制器再根据测试任务的具
体需求分别生成第一测试脚本和第二测试脚本,基板管理控制器运行第一测试脚本,生成
测试开始指令,并将测试开始指令发送至测试控制器,同时基板管理控制器将第二测试脚
本发送至CPU,基板管理控制器可以将第二测试脚本直接发送至CPU,也可以通过其它部件
将第二测试脚本转发至CPU。
[0087] S102、测试控制器根据测试开始指令,控制数据选择器将工作通道切换至测试通道,并获取数据选择器上与外设IO端口连接的引脚的引脚信号定义,其中,工作通道为外设
IO端口与IO控制器之间的通信通道,测试通道为模拟设备生成模块与IO控制器之间的通信
通道;
[0088] 本实施例中,测试控制器根据接收到的测试开始指令,控制数据选择器将外设IO端口与IO控制器正常工作下进行通信的工作通道,切换为模拟设备生成模块与IO控制器之
间的测试通道,并且测试控制器获取数据选择器的引脚信号定义,并将引脚信号定义发送
至模拟设备生成模块,由于数据选择器的引脚和待测试的外设IO端口连接,因此获取数据
选择器上与外设IO端口连接的引脚的引脚信号定义即相当于获取与数据选择器的引脚连
接的待测试的外设IO端口的硬件信息。
[0089] S103、CPU根据第二测试脚本,向外设IO端口发送测试数据,获取外设IO端口的第一端口信息;
[0090] 本实施例中,CPU接收第二测试脚本并保存在CPU固件中,CPU运行第二测试脚本,向外设IO端口发送测试数据,获取外设IO端口的第一端口信息,并将获取到的第一端口信
息发送至基板管理控制器,基板管理控制器将接收到的第一端口信息发送至测试控制器,
测试控制器再将接收到的第一端口信息发送至模拟设备生成模块,其中,外设IO端口的第
一端口信息即待测试的外设IO端口的固件信息。
[0091] S104、模拟设备生成模块根据第一端口信息和引脚信号定义,生成并激活模拟外设IO设备;
[0092] 本实施例中,模拟设备生成模块根据接收到的第一端口信息和引脚信号定义,即模拟设备生成模块根据接收到的待测试的外设IO端口的硬件信息和待测试的外设IO端口
的固件信息,生成并激活模拟外设IO设备。
[0093] S105、CPU对模拟外设IO设备进行识别,若能够识别到模拟外设IO设备且相互之间能够建立数据通信,则判定外设IO端口测试正常,若不能识别到模拟外设IO设备,则判定外
设IO端口测试异常。
[0094] 本实施例中,CPU对模拟设备生成模块中的模拟外设IO设备进行识别,若CPU能够识别到模拟外设IO设备,且CPU和模拟外设IO设备相互之间能够建立数据通信,则判定为待
测试的外设IO端口测试正常,若CPU不能识别到模拟外设IO设备,则判定待测试的外设IO端
口测试异常。
[0095] 本实施例中,还可以是CPU对模拟设备生成模块中的模拟外设IO设备进行识别,并对模拟外设IO设备的性能和功能指标进行判定,若CPU能够识别到模拟外设IO设备,且CPU
和模拟外设IO设备相互之间能够建立数据通信,并且模拟外设IO设备的性能和功能指标符
合预设要求,则判定为待测试的外设IO端口测试正常,若CPU不能识别到模拟外设IO设备,
或者模拟外设IO设备的性能和功能指标不符合预设要求,则判定待测试的外设IO端口测试
异常。
[0096] 与现有技术相比较,本申请提供的一种IO端口测试方法,本申请中,通过获取外设IO端口的第一端口信息,以及获取数据选择器的引脚信号定义,再通过模拟设备生成模块
根据第一端口信息和引脚信号定义,生成并激活模拟外设IO设备,根据CPU是否能够识别到
模拟模拟外设IO设备且相互之间是否能够建立数据通信,来判定待测的外设IO端口是测试
正常还是测试异常,通过使用模拟外设IO设备来替代现有技术中的外设IO设备,使得测试
过程中不需要使用大量的外设IO设备进行陪测,极大地降低了测试的成本,而且不需要测
试人员手动对外设IO设备进行逐一插拔,有效地缩减了测试时长,进而有效地提高了测试
效率,且降低了测试人员在插拔外设IO设备的过程中存在的操作不当带来的硬件损坏的风
险。
[0097] 作为一种实施方式,本申请实施例中,模拟设备生成模块包括现场可编程门阵列FPGA和模拟固件生成器,测试通道为FPGA与IO控制器之间的通信通道,步骤S104,包括:
[0098] S1041、模拟固件生成器根据第一端口信息,生成模拟外设IO设备所需的第一运行固件;
[0099] 本实施例中,模拟固件生成器可以是ARM处理器,模拟固件生成器根据接收到的第一端口信息即待测试的外设IO端口的固件信息,生成模拟外设IO设备所需的第一运行固
件,并将第一运行固件发送至FPGA。
[0100] S1042、FPGA根据引脚信号定义生成模拟外设IO设备,根据第一运行固件激活模拟外设IO设备。
[0101] 本实施例中,FPGA根据接收到的引脚信号定义即待测试的外设IO端口的硬件信息,生成模拟外设IO设备即生成模拟外设IO设备的硬件,根据接收到的第一运行固件激活
模拟外设IO设备,即通过模拟外设IO设备所需的第一运行固件激活模拟外设IO设备的硬
件,使得模拟外设IO设备生成并激活完成。
[0102] 如图2所示,作为一种实施方式,本申请实施例中,外设IO端口为M个,外设IO测试模块为N个,IO控制器为N个,其中,M和N为大于或等于1的正整数,且M大于或等于N,方法还包括:
[0103] S201、CPU发送M个外设IO端口的测试结果,测试结果包括测试正常和测试异常;
[0104] 本实施例中,由于一般服务器的外设IO端口有多个,外设IO测试模块中的数据选择器上用于和外设IO端口连接的引脚可以有多个,IO控制器上和数据选择器连接的引脚也
可以有多个,优选IO控制器上和数据选择器连接的引脚数量与数据选择器上用于和外设IO
端口连接的引脚数量相同,每个外设IO端口依次和数据选择器上用于和外设IO端口连接的
各个引脚依次相连接,例如IO控制器上和数据选择器连接的引脚数量为4个,数据选择器上
用于和外设IO端口连接的引脚数量为4个,若外设IO端口为4个,则IO控制器为1个,外设IO
测试模块和设置在外设IO测试模块中的数据选择器均为1个,即M为4,N为1,若外设IO端口
为8个,则IO控制器为2个,外设IO测试模块和设置在外设IO测试模块中的数据选择器均为2
个,即M为8,N为2,根据上述步骤S101至步骤S105依次对M个外设IO端口的各个外设IO端口
进行测试,CPU再将M个外设IO端口的测试结果发送至基板管理控制器,CPU可以直接将M个
测试结果发送至基板管理控制器,也可以CPU通过其它部件将M个测试结果转发至基板管理
控制器。
[0105] S202、基板管理控制器根据M个测试结果生成测试报告。
[0106] 本实施例中,基板管理控制器根据接收到的M个测试结果,生成包括M个外设IO端口测试结果的测试报告。
[0107] 如图3所示,作为一种实施方式,本申请实施例中,服务器还包括复杂可编程逻辑器件CPLD,方法还包括:
[0108] S301、若测试报告中存在测试异常的异常外设IO端口,基板管理控制器则根据预设诊断任务,生成第一诊断脚本和第二诊断脚本,并根据第一诊断脚本,生成第一数据采集
指令;
[0109] 本实施例中,预设诊断任务可以是用户在基板管理控制器的人机交互界面通过点击诊断开始按键启动的诊断任务,基板管理控制器可以将测试报告通过显示界面显示出
来,若测试报告中存在测试异常的异常外设IO端口,用户可以选择通过点击诊断开始按键
启动的诊断任务,在诊断任务启动后,基板管理控制器再根据诊断任务的具体需求分别生
成第一诊断脚本和第二诊断脚本,基板管理控制器运行第一诊断脚本,生成第一数据采集
指令,并将第一数据采集指令发送至CPLD,同时基板管理控制器将第二诊断脚本发送至
CPLD,CPLD再将接收到的第二诊断脚本转发至CPU。
[0110] S302、CPLD根据第一数据采集指令,采集待检测IO控制器的监控数据,并判断监控数据是否符合第一预设要求,若监控数据不符合第一预设要求,则判定待检测IO控制器为
异常IO控制器,并发送IO控制器异常信号,其中,待检测IO控制器为异常外设IO端口和CPU
之间的IO控制器;
[0111] 本实施例中,监控数据可以包括:IO控制器的电源信息、寄存器信息、IO控制器的输入数据和输出数据。
[0112] 本实施例中,由于外设IO端口出现异常,一般情况下存在异常外设IO端口和CPU之间的IO控制器异常的情况,或者异常外设IO端口和对应的IO控制器之间的IO端口链路异常
导致的,因此本实施例中先分析IO控制器是否异常,若IO控制器正常则继续分析IO端口链
路是否异常,CPLD根据接收到的第一数据采集指令,采集待检测IO控制器的监控数据,并判
断监控数据是否符合第一预设要求,若监控数据不符合第一预设要求,则判定待检测IO控
制器为异常IO控制器,并发送IO控制器异常信号至基板管理控制器。
[0113] S303、基板管理控制器根据IO控制器异常信号,生成IO控制器异常诊断报告。
[0114] 本实施例中,基板管理控制器根据接收到的IO控制器异常信号,生成IO控制器异常诊断报告。
[0115] 本实施例中,步骤S301至S303主要对IO控制器进行诊断,即一种IO控制器诊断方法。
[0116] 如图4所示,作为一种实施方式,本申请实施例中,数据选择器内设置有逻辑控制单元,方法还包括:
[0117] S401、若监控数据符合第一预设要求,则CPU根据第二诊断脚本,向异常外设IO端口发送诊断数据,获取异常外设IO端口的第二端口信息,其中,第二端口信息为异常外设IO
端口的物理地址;
[0118] 本实施例中,若待检测IO控制器的监控数据符合第一预设要求,则判定待检测IO控制器为正常IO控制器,CPLD将IO控制器正常信号发送至CPU,CPU再根据第二诊断脚本向
异常外设IO端口发送诊断数据,获取异常外设IO端口的第二端口信息,并将第二端口信息
发送至基板管理控制器,基板管理控制器再将接收到的第二端口信息通过测试控制器转发
至数据选择器的逻辑控制单元。
[0119] S402、逻辑控制单元根据第二端口信息,采集异常外设IO端口的输出信号通道数据,并判断信号通道数据是否符合第二预设要求,若信号通道数据符合第二预设要求,则判
定IO端口链路为正常IO端口链路,并发送IO端口链路正常信号,若信号通道数据不符合第
二预设要求,则判定IO端口链路为异常IO端口链路,并发送IO端口链路异常信号,其中,IO
端口链路为异常外设IO端口和对应的IO控制器之间的链路;
[0120] 本实施例中,逻辑控制单元根据第二端口信息采集异常外设IO端口的输出信号通道数据,并判断信号通道数据是否符合第二预设要求,若信号通道数据符合第二预设要求,
则判定IO端口链路为正常IO端口链路,并将IO端口链路正常信号通过测试控制器发送至基
板管理控制器,若信号通道数据不符合第二预设要求,则判定IO端口链路为异常IO端口链
路,并将IO端口链路异常信号通过测试控制器发送至基板管理控制器。
[0121] S403、基板管理控制器根据IO端口链路正常信号或IO端口链路异常信号,生成IO端口链路诊断报告。
[0122] 本实施例中,基板管理控制器根据接收到的IO端口链路正常信号或IO端口链路异常信号,生成关于IO端口链路正常或异常的IO端口链路诊断报告。
[0123] 步骤S401至S403主要对IO端口链路进行诊断,即一种IO端口链路诊断方法。
[0124] 如图5所示,作为一种实施方式,本申请实施例中,方法还包括:
[0125] S501、基板管理控制器若接收到IO控制器异常诊断报告或IO端口链路诊断报告,则根据预设修复任务,生成第二数据采集指令;
[0126] 本实施中,预设修复任务可以是用户在基板管理控制器的人机交互界面通过点击修复开始按键启动的修复任务,基板管理控制器可以将IO控制器异常诊断报告或IO端口链
路诊断报告通过显示界面显示出来,若诊断报告中存在IO控制器异常或IO端口链路异常,
用户可以选择通过点击修复开始按键启动的修复任务,在修复任务启动后,基板管理控制
器再根据修复任务生成第二数据采集指令,并将第二数据采集指令发送至CPLD。
[0127] S502、CPLD根据第二数据采集指令,采集异常IO控制器或与异常IO端口链路连接的IO控制器的固件数据和硬件数据;
[0128] 本实施例中,CPLD根据接收到的第二数据采集指令,采集异常IO控制器的固件数据和硬件数据,或者与异常IO端口链路连接的IO控制器的固件数据和硬件数据,并将固件
数据通过基板管理控制器和测试控制器转发至模拟固件生成器,将硬件数据通过基板管理
控制器和测试控制器转发至FPGA。
[0129] S503、模拟固件生成器根据固件数据,生成模拟IO控制器所需的第二运行固件;
[0130] 本实施例中,模拟固件生成器根据接收到的固件信息,生成模拟控制器所需的第二运行固件,并将第二运行固件发送至FPGA。
[0131] S504、FPGA根据硬件数据生成模拟IO控制器,根据第二运行固件激活模拟IO控制器,并发送模拟IO控制器激活信号;
[0132] 本实施例中,FPGA根据接收到的硬件数据生成模拟IO控制器,根据接收到的第二运行固件激活模拟IO控制器,并通过测试控制器将模拟IO控制器激活信号发送至基板管理
控制器。
[0133] S505、基板管理控制器根据模拟IO控制器激活信号,生成切换指令,并发送切换指令;
[0134] 本实施例中,基板管理控制器根据接收到的模拟IO控制器激活信号,生成切换指令,并将切换指令发送至CPLD和测试控制器,CPLD还将切换指令发送至CPU。
[0135] S506、CPU根据切换指令与模拟IO控制器建立数据通信;
[0136] 本实施例中,CPU根据接收到的切换指令与模拟IO控制器建立数据通信。
[0137] S507、CPLD根据切换指令,控制关闭异常IO控制器或与异常IO端口链路连接的IO控制器的电源;
[0138] 本实施例中,CPLD根据接收到的切换指令,控制关闭异常IO控制器的电源,或者控制关闭异常IO端口链路连接的IO控制器的电源,即停止使用异常IO控制器,或停止使用异
常IO端口链路连接的IO控制器。
[0139] S508、测试控制器根据切换指令,控制数据选择器将测试通道切换至备用工作通道,以使得模拟IO控制器与外设IO端口之间建立数据通信,其中,备用工作通道为FPGA中的
模拟IO控制器与外设IO端口之间的通信通道。
[0140] 本实施例中,测试控制器根据接收到的切换指令,控制数据选择器将测试通道切换至备用工作通道,使得模拟IO控制器与外设IO端口之间建立数据通信,即通过备用工作
通道建立外设IO端口至FPGA中的模拟IO控制器之间的数据通信,且模拟IO控制器与CPU之
间也建立了数据通信,即用外设IO端口‑备用工作通道‑模拟IO控制器‑CPU这一冗余通道,来替换原来的外设IO端口‑正常工作通道‑异常IO控制器(或者异常IO端口链路‑IO控制
器)‑CPU这一原通道,即用备用工作通道+模拟IO控制器来替代正常工作通道+异常IO控制
器继续工作,或者用备用工作通道+模拟IO控制器来替代异常IO端口链路‑IO控制器继续工
作,由于外设IO测试模块是靠近外设IO端口,IO端口链路异常一般是IO控制器和外设IO测
试模块这一段的链路异常,如链路上出现耦合电容掉了之类的异常,因此若出现IO端口链
路异常,可以通过使用备用工作通道+模拟IO控制器来替代异常IO端口链路‑IO控制器继续
工作。
[0141] 步骤S501至S508主要对出现IO控制器异常或与IO端口链路异常后进行冗余替换,即一种出现IO控制器异常或与IO端口链路异常后的冗余替换方法。
[0142] 如图6和图9所示,本申请还提供一种服务器,包括外设IO端口100、IO控制器200、CPU300、基板管理控制器400和外设IO测试模块500,外设IO测试模块500包括测试控制器
510、数据选择器520、模拟设备生成模块530,其中:
[0143] 基板管理控制器400,用于根据预设测试任务,生成第一测试脚本和第二测试脚本,并根据第一测试脚本,生成测试开始指令;
[0144] 本实施例中,预设测试任务可以是用户在基板管理控制器400的人机交互界面通过点击测试开始按键启动的测试任务,测试任务启动后,基板管理控制器400再根据测试任
务的具体需求分别生成第一测试脚本和第二测试脚本,基板管理控制器400运行第一测试
脚本,生成测试开始指令,并将测试开始指令发送至测试控制器510,同时基板管理控制器
400将第二测试脚本发送至CPU300,基板管理控制器400可以将第二测试脚本直接发送至
CPU300,也可以通过其它部件将第二测试脚本转发至CPU300。
[0145] 测试控制器510,用于根据测试开始指令,控制数据选择器520将工作通道切换至测试通道,并获取数据选择器520上与外设IO端口100连接的引脚的引脚信号定义,其中,工
作通道为外设IO端口100与IO控制器200之间的通信通道,测试通道为模拟设备生成模块
530与IO控制器200之间的通信通道;
[0146] 本实施例中,测试控制器510根据接收到的测试开始指令,控制数据选择器520将外设IO端口100与IO控制器200正常工作下进行通信的工作通道,切换为模拟设备生成模块
530与IO控制器200之间的测试通道,并且测试控制器510获取数据选择器520的引脚信号定
义,并将引脚信号定义发送至模拟设备生成模块530,由于数据选择器520的引脚和待测试
的外设IO端口100连接,因此获取数据选择器520上与外设IO端口100连接的引脚的引脚信
号定义即相当于获取与数据选择器520的引脚连接的待测试的外设IO端口100的硬件信息。
[0147] CPU300,用于根据第二测试脚本,向外设IO端口100发送测试数据,获取外设IO端口100的第一端口信息;
[0148] 本实施例中,CPU300接收第二测试脚本并保存在CPU300的固件中,CPU300运行第二测试脚本,向外设IO端口100发送测试数据,获取外设IO端口100的第一端口信息,并将获
取到的第一端口信息发送至基板管理控制器400,基板管理控制器400将接收到的第一端口
信息发送至测试控制器510,测试控制器510再将接收到的第一端口信息发送至模拟设备生
成模块530,其中,外设IO端口100的第一端口信息即待测试的外设IO端口100的固件信息。
[0149] CPU300,还用于对模拟外设IO设备进行识别,若能够识别到模拟外设IO设备且相互之间能够建立数据通信,则判定外设IO端口100测试正常,若不能识别到模拟外设IO设
备,则判定外设IO端口100测试异常;
[0150] 本实施例中,CPU300对模拟设备生成模块530中的模拟外设IO设备进行识别,若CPU300能够识别到模拟外设IO设备,且CPU300和模拟外设IO设备相互之间能够建立数据通
信,则判定为待测试的外设IO端口100测试正常,若CPU300不能识别到模拟外设IO设备,则
判定待测试的外设IO端口100测试异常。
[0151] 本实施例中,还可以是CPU300对模拟设备生成模块530中的模拟外设IO设备进行识别,并对模拟外设IO设备的性能和功能指标进行判定,若CPU300能够识别到模拟外设IO
设备,且CPU300和模拟外设IO设备相互之间能够建立数据通信,并且模拟外设IO设备的性
能和功能指标符合预设要求,则判定为待测试的外设IO端口测试正常,若CPU300不能识别
到模拟外设IO设备,或者模拟外设IO设备的性能和功能指标不符合预设要求,则判定待测
试的外设IO端口测试异常。
[0152] 模拟设备生成模块530,用于根据第一端口信息和引脚信号定义,生成并激活模拟外设IO设备。
[0153] 本实施例中,模拟设备生成模块530根据接收到的第一端口信息和引脚信号定义,即模拟设备生成模块530根据接收到的待测试的外设IO端口100的硬件信息和待测试的外
设IO端口100的固件信息,生成并激活模拟外设IO设备。
[0154] 如图8所示,作为一种实施方式,本申请实施例中,模拟设备生成模块530包括FPGA531和模拟固件生成器532,测试通道为FPGA531与IO控制器200之间的通信通道,模拟
设备生成模块530在执行根据第一端口信息和引脚信号定义,生成并激活模拟外设IO设备
时,具体用于:
[0155] 模拟固件生成器532根据第一端口信息,生成模拟外设IO设备所需的第一运行固件;
[0156] 本实施例中,模拟固件生成器532可以是ARM处理器,模拟固件生成器532根据接收到的第一端口信息即待测试的外设IO端口100的固件信息,生成模拟外设IO设备所需的第
一运行固件,并将第一运行固件发送至FPGA531。
[0157] FPGA531根据引脚信号定义生成模拟外设IO设备,根据第一运行固件激活模拟外设IO设备。
[0158] 本实施例中,FPGA531根据接收到的引脚信号定义即待测试的外设IO端口100的硬件信息,生成模拟外设IO设备即生成模拟外设IO设备的硬件,根据接收到的第一运行固件
激活模拟外设IO设备,即通过模拟外设IO设备所需的第一运行固件激活模拟外设IO设备的
硬件,使得模拟外设IO设备生成并激活完成。
[0159] 如图7所示,作为一种实施方式,本申请实施例中,外设IO测试模块500还包括信号增强和防抖动模块540;
[0160] 信号增强和防抖动模块540设置在数据选择器520和外设IO接口之间的工作通道上,用于增强放大工作通道上的信号以及减轻信号的抖动。
[0161] 本实施例中,信号增强和防抖动模块540可以是redriver芯片。
[0162] 如图8和图9所示,作为一种实施方式,本申请实施例中,外设IO端口100为M个,外设IO测试模块500为N个,IO控制器200为N个,其中,M和N为大于或等于1的正整数,且M大于
或等于N,其中:
[0163] CPU300,还用于发送M个外设IO端口100的测试结果,测试结果包括测试正常和测试异常;
[0164] 本实施例中,由于一般服务器的外设IO端口100有多个,外设IO测试模块500中的数据选择器520上用于和外设IO端口100连接的引脚可以有多个,IO控制器200上和数据选
择器520连接的引脚也可以有多个,优选IO控制器200上和数据选择器520连接的引脚数量
与数据选择器520上用于和外设IO端口100连接的引脚数量相同,每个外设IO端口100依次
和数据选择器520上用于和外设IO端口100连接的各个引脚依次相连接,
[0165] 例如IO控制器200上和数据选择器520连接的引脚数量为4个,数据选择器520上用于和外设IO端口连接的引脚数量为4个,若外设IO端口100为4个,则IO控制器200为1个,外
设IO测试模块500和设置在外设IO测试模块500中的数据选择器520均为1个,即M为4,N为1,
若外设IO端口100为8个,则IO控制器200为2个,外设IO测试模块500和设置在外设IO测试模
块500中的数据选择器520均为2个,即M为8,N为2,根据上述步骤S101至步骤S105的测试方
法依次对M个外设IO端口100的各个外设IO端口100进行测试,CPU300再将M个外设IO端口
100的测试结果发送至基板管理控制器400,CPU300可以直接将M个测试结果发送至基板管
理控制器400,也可以CPU300通过其它部件将M个测试结果转发至基板管理控制器400。
[0166] 基板管理控制器400,还用于根据M个测试结果生成测试报告。
[0167] 本实施例中,基板管理控制器400根据接收到的M个测试结果,生成包括M个外设IO端口100的测试结果的测试报告。
[0168] 如图8所示,作为一种实施方式,本申请实施例中,还包括:CPLD600;
[0169] 基板管理控制器400,还用于若测试报告中存在测试异常的异常外设IO端口,则根据预设诊断任务,生成第一诊断脚本和第二诊断脚本,并根据第一诊断脚本,生成第一数据
采集指令;
[0170] 本实施例中,预设诊断任务可以是用户在基板管理控制器400的人机交互界面通过点击诊断开始按键启动的诊断任务,基板管理控制器400可以将测试报告通过显示界面
显示出来,若测试报告中存在测试异常的异常外设IO端口,用户可以选择通过点击诊断开
始按键启动的诊断任务,在诊断任务启动后,基板管理控制器400再根据诊断任务的具体需
求分别生成第一诊断脚本和第二诊断脚本,基板管理控制器400运行第一诊断脚本,生成第
一数据采集指令,并将第一数据采集指令发送至CPLD600,同时基板管理控制器400将第二
诊断脚本发送至CPLD600,CPLD600再将接收到的第二诊断脚本转发至CPU300。
[0171] 本实施例中,CPLD600与基板管理控制器400之间通过CPU低速总线和基板管理控制器低速总线互联通信,但由于CPU300的低速总线的信号和基板管理控制器400的低速总
线的信号的电平不同,在CPU300和基板管理控制器400之间设置CPLD600可以起到电压调节
的作用,CPLD600还可以对通信信号进行加速传输的作用。
[0172] 基板管理控制器400,还用于根据IO控制器异常信号,生成IO控制器异常诊断报告;
[0173] 本实施例中,基板管理控制器400根据接收到的IO控制器异常信号,生成IO控制器异常诊断报告。
[0174] CPLD600,用于根据第一数据采集指令,采集待检测IO控制器的监控数据,并判断监控数据是否符合第一预设要求,若监控数据不符合第一预设要求,则判定待检测IO控制
器为异常IO控制器,并发送IO控制器异常信号,其中,待检测IO控制器为异常外设IO端口和
CPU300之间的IO控制器200。
[0175] 本实施例中,监控数据可以包括:IO控制器的电源信息、寄存器信息、IO控制器的输入数据和输出数据。
[0176] 本实施例中,由于外设IO端口100出现异常,一般情况下存在异常外设IO端口和CPU300之间的IO控制器200异常的情况,或者异常外设IO端口和对应的IO控制器200之间的
IO端口链路异常导致的,因此可以先分析IO控制器200是否异常,若IO控制器200正常则继
续分析IO端口链路是否异常,CPLD600根据接收到的第一数据采集指令,采集待检测IO控制
器的监控数据,并判断监控数据是否符合第一预设要求,若监控数据不符合第一预设要求,
则判定待检测IO控制器为异常IO控制器,并发送IO控制器异常信号至基板管理控制器400。
[0177] 如图8和图9所示,作为一种实施方式,本申请实施例中,数据选择器520内设置有逻辑控制单元521,其中:
[0178] CPU300,还用于若监控数据符合第一预设要求,则根据第二诊断脚本,向异常外设IO端口发送诊断数据,获取异常外设IO端口的第二端口信息,其中,第二端口信息为异常外
设IO端口的物理地址;
[0179] 本实施例中,若待检测IO控制器的监控数据符合第一预设要求,则判定待检测IO控制器为正常IO控制器,CPLD600将IO控制器正常信号发送至CPU300,CPU300再根据第二诊
断脚本向异常外设IO端口发送诊断数据,获取异常外设IO端口的第二端口信息,并将第二
端口信息发送至基板管理控制器400,基板管理控制器400再将接收到的第二端口信息通过
测试控制器510转发至数据选择器520的逻辑控制单元521。
[0180] 基板管理控制器400,还用于根据IO端口链路正常信号或IO端口链路异常信号,生成IO端口链路诊断报告;
[0181] 本实施例中,基板管理控制器400根据接收到的IO端口链路正常信号或IO端口链路异常信号,生成关于IO端口链路正常或异常的IO端口链路诊断报告。
[0182] 逻辑控制单元521,用于根据第二端口信息,采集异常外设IO端口100的输出信号通道数据,并判断信号通道数据是否符合第二预设要求,若信号通道数据符合第二预设要
求,则判定IO端口链路为正常IO端口链路,并发送IO端口链路正常信号,若信号通道数据不
符合第二预设要求,则判定IO端口链路为异常IO端口链路,并发送IO端口链路异常信号,其
中,IO端口链路为异常外设IO端口100和对应的IO控制器200之间的链路。
[0183] 本实施例中,输出信号通道数据可以包括:损耗、阻抗、串扰测试和眼图。
[0184] 本实施例中,逻辑控制单元521根据第二端口信息采集异常外设IO端口的输出信号通道数据,并判断信号通道数据是否符合第二预设要求,若信号通道数据符合第二预设
要求,则判定IO端口链路为正常IO端口链路,并将IO端口链路正常信号通过测试控制器510
发送至基板管理控制器400,若信号通道数据不符合第二预设要求,则判定IO端口链路为异
常IO端口链路,并将IO端口链路异常信号通过测试控制器510发送至基板管理控制器400。
[0185] 如图8、图10和图11所示,作为一种实施方式,本申请实施例中,
[0186] 基板管理控制器400,还用于若接收到IO控制器200异常诊断报告或IO端口链路诊断报告,则根据预设修复任务,生成第二数据采集指令;
[0187] 本实施中,预设修复任务可以是用户在基板管理控制器400的人机交互界面通过点击修复开始按键启动的修复任务,基板管理控制器400可以将IO控制器异常诊断报告或
IO端口链路诊断报告通过显示界面显示出来,若诊断报告中存在IO控制器异常或IO端口链
路异常,用户可以选择通过点击修复开始按键启动的修复任务,在修复任务启动后,基板管
理控制器400再根据修复任务生成第二数据采集指令,并将第二数据采集指令发送至CPLD。
[0188] CPLD600,还用于根据第二数据采集指令,采集异常IO控制器或与异常IO端口链路连接的IO控制器200的固件数据和硬件数据;
[0189] 本实施例中,CPLD600根据接收到的第二数据采集指令,采集异常IO控制器的固件数据和硬件数据,或者与异常IO端口链路连接的IO控制器200的固件数据和硬件数据,并将
固件数据通过基板管理控制器400和测试控制器510转发至模拟固件生成器532,将硬件数
据通过基板管理控制器和测试控制器转发至FPGA531。
[0190] 模拟固件生成器532,还用于根据固件数据,生成模拟IO控制器所需的第二运行固件;
[0191] 本实施例中,模拟固件生成器532根据接收到的固件信息,生成模拟控制器所需的第二运行固件,并将第二运行固件发送至FPGA531。
[0192] FPGA531,还用于根据硬件数据生成模拟IO控制器,根据第二运行固件激活模拟IO控制器,并发送模拟IO控制器激活信号;
[0193] 本实施例中,FPGA531根据接收到的硬件数据生成模拟IO控制器,根据接收到的第二运行固件激活模拟IO控制器,并通过测试控制器510将模拟IO控制器激活信号发送至基
板管理控制器400。
[0194] 基板管理控制器400,还用于根据模拟IO控制器激活信号,生成切换指令,并发送切换指令;
[0195] 本实施例中,基板管理控制器400根据接收到的模拟IO控制器激活信号,生成切换指令,并将切换指令发送至CPLD600和测试控制器510,CPLD600还将切换指令发送至
CPU300。
[0196] CPU300,还用于根据切换指令与模拟IO控制器建立数据通信;
[0197] 本实施例中,CPU300根据接收到的切换指令与FPGA531中的模拟IO控制器建立数据通信,使用冗余PCIE总线进行通信。
[0198] CPLD600,还用于根据切换指令,控制关闭异常IO控制器或与异常IO端口链路连接的IO控制器200的电源;
[0199] 本实施例中,CPLD600根据接收到的切换指令,控制关闭异常IO控制器的电源,或者控制关闭异常IO端口链路连接的IO控制器200的电源,即停止使用异常IO控制器,或停止
使用异常IO端口链路连接的IO控制器。
[0200] 测试控制器510,还用于根据切换指令,控制数据选择器520将测试通道切换至备用工作通道,以使得模拟IO控制器与外设IO端口100之间建立数据通信,其中,备用工作通
道为FPGA531中的模拟IO控制器与外设IO端口100之间的通信通道。
[0201] 本实施例中,测试控制器510根据接收到的切换指令,控制数据选择器520将测试通道切换至备用工作通道,使得模拟IO控制器与外设IO端口100之间建立数据通信,即通过
备用工作通道建立外设IO端口100至FPGA531中的模拟IO控制器之间的数据通信,且模拟IO
控制器与CPU300之间也建立了数据通信,即用外设IO端口100‑备用工作通道‑模拟IO控制
器‑CPU300这一冗余通道,来替换原来的外设IO端口100‑正常工作通道‑异常IO控制器(或者异常IO端口链路‑IO控制器200)‑CPU300这一原通道,即用备用工作通道+模拟IO控制器
来替代正常工作通道+异常IO控制器继续工作,或者用备用工作通道+模拟IO控制器来替代
异常IO端口链路‑IO控制器200继续工作,由于外设IO测试模块500是靠近外设IO端口100,
IO端口链路异常一般是IO控制器200和外设IO测试模块500这一段的链路异常,如链路上出
现耦合电容掉了之类的异常,因此若出现IO端口链路异常,可以通过使用备用工作通道+模
拟IO控制器来替代异常IO端口链路‑IO控制器200继续工作。
[0202] 应当理解,本申请中如若使用了“系统”、“装置”、“单元”和/或“模块”,仅是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换该词语。
[0203] 本说明书中各实施例采用递进方式描述,每个实施例重点说明的都是与
[0204] 其他实施例不同之处,各个实施例之间相同或相似部分相互参见即可。
[0205] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的
一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请
将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一
致的最宽的范围。