一种硬盘检测方法和装置与流程

文档序号:17488940发布日期:2019-04-23 20:15阅读:202来源:国知局
一种硬盘检测方法和装置与流程

本发明涉及硬盘检测技术,尤指一种硬盘检测方法和装置。



背景技术:

现如今,服务器行业的日趋成熟,服务器产品也是层出不穷,相应的,服务器的存储介质——硬盘,也在不断地更新换代中。

硬盘主要分为sas/sata及nvme,随着技术的发展,硬盘逐渐往体积小,容量大,存储速度快的方向发展。如今,u.2硬盘仍是主流应用,但更加小型、高速的m.2、m.3硬盘也逐步打开了应用市场。当然,还有别的硬盘类型。

然而,在应用过程中发现,不同于u.2以及m.3硬盘,有的硬盘的管脚定义中,如m.2硬盘的管脚定义中,只设置有用来区分硬盘类型的管脚,该用来区分硬盘类型的管脚可以检测出硬盘类型为sas/sata以及nvme等,这类硬盘并没有设置用于检测硬盘是否在位的管脚。因此如何准确检测这类硬盘是否在位的问题,成为亟待解决的技术难题。



技术实现要素:

为了解决上述技术问题,本发明提供了一种硬盘检测方法和装置,以解决相关技术中,仅设置有用来检测硬盘类型的管脚,而没有设置用来检测硬盘是否在位管脚的硬盘,无法准确完成硬盘是否在位检测的问题。

为了达到本发明目的,本发明采用了如下技术方案:

一种硬盘检测方法,该方法适用于只设置有检测硬盘类型的管脚,而没有设置检测硬盘是否在位的管脚的硬盘,包括:

控制器对自身与硬盘中用来指示该硬盘是否被读写的管脚对应的接口的信号进行实时检测;

若所述控制器检测到所述接口的信号先出现下降沿再出现上升沿,且检测到所述下降沿的时刻,和检测到所述上升沿的时刻之间间隔的时间长度大于或等于第一时间阈值,则确定硬盘在位。

其中,所述方法还包括:若所述控制器检测到所述下降沿的时刻,和检测到所述上升沿的时刻之间间隔的时间长度小于第一时间阈值,则确定硬盘不在位。

其中,该方法还包括:

若所述控制器检测到所述接口的信号出现下降沿,则使能计时器,通过该计时器来检测所述时间长度。

其中,所述控制器为cpld,mcu或者mpga。

5.如权利要求1或2或3所述的硬盘检测方法,其特征在于,所述第一时间阈值为100ms-200ms中的任意值。

一种硬盘检测装置,该装置适用于对只设置有检测硬盘类型的管脚,而没有设置检测硬盘是否在位的管脚的硬盘进行检测,该装置包括:

存储器,用于存放程序;

处理器,执行所述程序,以用于:对控制器中与硬盘中用来指示该硬盘是否被读写的管脚对应的接口的信号进行实时检测;若检测到所述接口的信号先出现下降沿再出现上升沿,且检测到所述下降沿的时刻,和检测到所述上升沿的时刻之间间隔的时间长度大于或等于第一时间阈值,则确定硬盘在位。

其中,所述处理器还设置成,执行所述程序,以用于:若检测到所述下降沿的时刻,和检测到所述上升沿的时刻之间间隔的时间长度小于第一时间阈值,则确定硬盘不在位。

其中,所述硬盘检测装置还包括:计时器,若所述处理器检测到所述接口的信号出现下降沿,则使能计时器,通过该计时器来检测所述时间长度;或者,

所述处理器设置成,若所述检测到所述接口的信号出现下降沿,则使能计时器,通过该计时器来检测所述时间长度。

其中,所述第一时间阈值为100ms-140ms中的任意值。

一种复杂可编程逻辑器件cpld,包括上述任意的硬盘检测装置,所述cpld设置有与所述硬盘的中用来指示该硬盘是否被读写的管脚相对应的接口。

与现有技术相比,本发明实施例包括:控制器,如cpld,mcu或者mpga对自身与硬盘中用来指示该硬盘是否被读写的管脚管脚对应的接口的信号进行实时检测;若所述控制器检测到所述接口的信号先出现下降沿再出现上升沿,且检测到所述下降沿的时刻,和检测到所述上升沿的时刻之间间隔的时间长度大于或等于第一时间阈值,则确定硬盘在位。因此,在不改变现有的硬盘结构以及硬盘连接器结构的基础上,利用硬盘中用来指示该硬盘是否被读写的管脚信号的特性,针对只设置有检测硬盘类型的管脚,而没有设置检测硬盘是否在位的管脚的硬盘,能够准确检测出硬盘是否在位。

进一步地,本发明实施例中,若所述控制器检测到所述下降沿的时刻,和检测到所述上升沿的时刻之间间隔的时间长度小于第一时间阈值,则确定硬盘不在位。进一步排除了由于信号干扰而导致的硬盘是否在位检测不准确的问题。

进一步地,本发明的实施例中,在确定出硬盘在位后,所述控制器对所述接口信号的电平进行判断,若是高电平,则确定在位的硬盘类型为nvme硬盘;若为低电平,则确认在位的硬盘类型为sas/sata硬盘,该特征在准确确定出硬盘在位的基础上,进一步保证了检测出的硬盘类型是正确的,避免了根本没有插入硬盘却判定出硬盘类型的情况出现。

进一步地,本发明实施例中,若所述控制器确定硬盘不在位,则所述控制器不进行点灯等后续操作,以避免资源浪费。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。

图1为本发明实施例的硬盘检测方法流程示意图;

图2为本发明实施例的m.2硬盘的led1#信号开机波形示意图;

图3为本发明实施例的硬盘检测装置结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

如表1所示,目前的硬盘检测方法,通常都是由cpld(complexprogrammablelogicdevice,复杂可编程逻辑器件),mcu(微程序控制器,microprogrammedcontrolunit)或者mpga(fieldprogrammablegatearray,现场可编程门阵列)等,统称为控制器,配合硬盘的管脚来完成的,要实现硬盘是否在位检测及在位的硬盘类型检测,通常需要通过专门设置的两个管脚实现。例如,对于u.2硬盘,p4管脚用来识别硬盘是否在位,p10管脚则用来识别在位硬盘的类型,是sas/sata硬盘还是nvme硬盘。类似于u.2硬盘,m.3硬盘也预留了两个专门的管脚接入控制器,如cpld,mcu或者mpga,控制器用来检测硬盘是否在位及在位硬盘类型。

表1

但是在现实中,有的硬盘则仅设置有用来检测硬盘类型的管脚,如m.2硬盘则仅预留或者说设置了pedet/nc-pcie管脚来接入控制器,如cpld,mcu或者mpga,用来区分硬盘类型,而并未设置用来检测硬盘是否在位的管脚。对于这种只预留或者说只设置了用来检测硬盘类型的管脚,而没有设置用来检测硬盘是否在位的管脚的硬盘,其检测硬盘类型的方法如下:

当控制器,如cpld,mcu或者mpga判断自身与该用来检测硬盘类型的管脚对应的接口,如判断控制器中与m.2硬盘的管脚pedet/nc-pcie对应的接口为高电平时,则控制器确定硬盘已经在位,且识别硬盘类型为nvme硬盘;当控制器判断自身与该用来检测硬盘类型的管脚对应的接口,如判断控制器中与m.2硬盘的管脚pedet/nc-pcie对应的接口为低电平时,则控制器确定硬盘已经在位,且识别硬盘类型为sas/sata硬盘。

在相关技术中,该用来检测硬盘类型的管脚,如m.2硬盘的pedet/nc-pcie管脚默认电平为高电平,即没有插入任何硬盘的情况下,cpld会误认为接入了硬盘,如m.2硬盘的nvme硬盘,并进行后续一系列点灯操作,显然,这种情况首先无法准确判断出硬盘是否在位,其次,因为无法准确判断出硬盘是否在位,则所确定的硬盘类型也是不可信的,经常会出现根本没有插入硬盘却判定出硬盘类型的情况出现。

本发明实施例在不改变现有的硬盘结构以及硬盘连接器结构的基础上,提出一种硬盘的检测方法及装置,以解决相关技术中,针对只设置有检测硬盘类型的管脚,而没有设置检测硬盘是否在位的管脚的硬盘,无法准确进行硬盘是否在位检测的问题,并进一步解决由于无法确定硬盘是否在位而导致的硬盘类型检测不可信的问题。

本发明实施例的一种硬盘检测方法,该方法适用于只设置有检测硬盘类型的管脚,而没有设置检测硬盘是否在位的管脚的硬盘,如图1所示,包括:

步骤101,控制器,如cpld,mcu或者mpga对自身与硬盘中用来指示该硬盘是否被读写的管脚对应的接口的信号进行实时检测;

其中,硬盘中用来指示该硬盘是否被读写的管脚可以是led1#管脚或者active管脚。当硬盘存在用来指示该硬盘是否被读写的管脚时,如该管脚为led1#或者active管脚时,控制器存在与该管脚相对应的接口。

步骤102,若所述控制器始终未检测到所述接口信号有下降沿出现,则所述控制器确定硬盘不在位;

步骤103,若所述控制器检测到所述接口的信号先出现下降沿再出现上升沿,且检测到所述下降沿的时刻,和检测到所述上升沿的时刻之间间隔的时间长度大于或等于第一时间阈值,则确定硬盘在位。

上述步骤中并不是所有步骤都需要执行的,可以选择性执行,且步骤102和103的执行顺序也可以是先执行103再执行102。

其中,所述方法还包括:若所述控制器检测到所述下降沿的时刻,和检测到所述上升沿的时刻之间间隔的时间长度小于第一时间阈值,则确定所述接口信号产生了信号干扰,则确定硬盘不在位

所述步骤103中,若所述控制器检测到所述接口的信号出现下降沿,则使能计时器,通过该计时器来检测所述时间长度。

所述步骤101之前,上述方法还可以包括,将硬盘接入控制器,如cpld,mcu或者mpga;其中,将硬盘接入控制器的方法属于现有技术,在此不再赘述。

在一示例性的实施方式中,所述步骤102中,该方法还包括:若所述控制器确定硬盘不在位,则所述控制器不进行点灯等后续操作,以避免资源浪费。

所述步骤103之后,上述方法还可以包括步骤104:所述控制器确定硬盘在位后,执行后续点灯等一系列操作。

所述步骤103之后,上述方法还可以包括步骤105:所述控制器对所述接口信号的电平进行判断,若是高电平,则确定在位的硬盘类型为nvme硬盘;若为低电平,则确认在位的硬盘类型为sas/sata硬盘。通过该步骤,完成了硬盘类型的检测。

在一示例性的实施方式中,所述硬盘为m.2硬盘。

在一示例性的实施方式中,所述m.2硬盘用来检测硬盘类型的管脚为pedet/nc-pcie管脚。

在一示例性的实施方式中,所述控制器为cpld,mcu或者mpga。

在一示例性的实施方式中,所述第一时间阈值为100ms-200ms中的任意值。

在一示例性的实施方式中,所述第一时间阈值为140ms。

上述方法的原理如下:只设置有检测硬盘类型的管脚,而没有设置检测硬盘是否在位的管脚的硬盘,如m.2硬盘的led1#信号开机波形,如图2所示,在将该硬盘插入控制器之后,第10pin(针),也就是led1#在开机瞬间有140ms左右的低电平,而在未插入硬盘时,则不会有这个低电平,此电平信号在这类硬盘在位时,开机瞬间必然会存在这个低电平,而硬盘不在位,则必然不会出现这个低电平。

因此,上述硬盘的在位检测方法,在不改变现有的硬盘结构以及硬盘连接器结构的基础上,利用硬盘led1#管脚信号的特性,针对只设置有检测硬盘类型的管脚,而没有设置检测硬盘是否在位的管脚的硬盘,能够准确检测出硬盘是否在位,并在此基础上保证了检测出的硬盘类型是正确的,避免了根本没有插入硬盘却判定出硬盘类型的情况出现。

示例性实施例:

该实施例中,控制器为cpld,硬盘为m.2硬盘,该示例性实施例的硬盘检测方法包括:

首先,cpld作为背板上启动速度最快的器件,对led1#管脚进行实时检测;

其次,若cpld始终未检测到led1#管脚信号有下降沿出现,则确定m.2硬盘不在位,cpld不对m.2硬盘做后续操作;

再次,若cpld检测到led1#管脚信号有下降沿出现,则cpld使能计时器,并实时检测led1#管脚信号的上升沿:若计时器未到100ms后就检测到上升沿出现,则认为led1#管脚的低电平由于信号干扰产生,m.2硬盘不在位;若计时器超过100ms后才检测到上升沿出现,说明m.2硬盘确实在位,则进行后续操作;

最后,cpld对管脚(pedet/nc-pcie)电平进行判断,若为高电平,cpld认为nvme硬盘在位;若为低电平,cpld认为sas/sata硬盘在位,最终正确完成m.2硬盘的在位检测与硬盘类型识别。

上述实施例通过对cpld代码进行修改,利用led1#管脚的这个特性,完成硬盘的在位检测。使用m.2硬盘的一个管脚(pedet/nc-pcie,高电平为nvme,低电平为sas/sata),从而完成了硬盘类型的识别。

上述硬盘的在位检测方法,在不改变现有的硬盘结构以及硬盘连接器结构的基础上,利用硬盘led1#管脚信号的特性,通过修改cpld代码,对其进行实时检测,并根据led1#管脚信号的表现结果作为所述硬盘在位的判断依据。因此,在未做任何硬件修改的前提下,解决了现有方案中,仅使用m.2硬盘的一个管脚(pedet/nc-pcie),无法正确完成m.2硬盘的种类识别及在位检测的问题。

本发明实施例还公开了一种硬盘检测装置,适用于对只设置有检测硬盘类型的管脚,而没有设置检测硬盘是否在位的管脚的硬盘进行检测,如图3所示,该装置包括:

存储器31,用于存放程序;

处理器32,执行所述程序,以用于:对控制器中与硬盘中用来指示该硬盘是否被读写的管脚对应的接口的信号进行实时检测;若始终未检测到所述接口信号有下降沿出现,则确定硬盘不在位;若所述控制器检测到所述接口的信号先出现下降沿再出现上升沿,且检测到所述下降沿的时刻,和检测到所述上升沿的时刻之间间隔的时间长度大于或等于第一时间阈值,则确定硬盘在位。

所述处理器32还设置成,执行所述程序,以用于:若检测到所述下降沿的时刻,和检测到所述上升沿的时刻之间间隔的时间长度小于第一时间阈值,则确定硬盘不在位。

所述硬盘检测装置还包括:计时器,若所述处理器检测到所述接口的信号出现下降沿,则使能计时器,通过该计时器来检测所述时间长度。或者,所述硬盘检测装置不包括计时器,若所述检测到所述接口的信号出现下降沿,则使能计时器,通过该计时器来检测所述时间长度。

所述处理器32还设置成,执行所述程序,以用于:在确定硬盘在位后,执行后续点灯等一系列操作。

所述处理器32还设置成,执行所述程序,以用于:对所述接口信号的电平进行判断,若是高电平,则确定在位的硬盘类型为nvme硬盘;若为低电平,则确认在位的硬盘类型为sas/sata硬盘。通过该步骤,完成了硬盘类型的检测。

所述处理器32还设置成,执行所述程序,以用于:若所述控制器确定硬盘不在位,则所述控制器不进行点灯等后续操作。

在一示例性的实施方式中,所述硬盘为m.2硬盘。

在一示例性的实施方式中,所述m.2硬盘用来检测硬盘类型的管脚为pedet/nc-pcie管脚。

在一示例性的实施方式中,所述第一时间阈值可以为100ms-140ms中的任意值。

在一示例性的实施方式中,所述第一时间阈值为140ms。

上述硬盘的在位检测装置,在不改变现有的硬盘结构以及硬盘连接器结构的基础上,利用硬盘中用来指示该硬盘是否被读写的管脚信号的特性,针对只设置有检测硬盘类型的管脚,而没有设置检测硬盘是否在位的管脚的硬盘,能够准确检测出硬盘是否在位,并在此基础上保证了检测出的硬盘类型是正确的,避免了根本没有插入硬盘却判定出硬盘类型的情况出现。

本发明实施例还公开了一种控制器,包括上述任意的硬盘检测装置,所述控制器设置有与所述硬盘中用来指示该硬盘是否被读写的管脚相对应的接口。

本发明实施例还公开了一种cpld,包括上述任意的硬盘检测装置,所述cpld设置有与所述硬盘中用来指示该硬盘是否被读写的管脚相对应的接口。

本发明实施例还公开了一种计算机程序,所述计算机程序设置成实现上述任意的方法。

本发明实施例还公开了一种硬盘检测装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意方法的处理。

本发明实施例还公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意方法的处理。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1