本发明属于服务器硬盘背板技术领域,具体涉及一种基于可编程模块的硬盘在位与活动控制系统及方法。
背景技术:
在服务器存储控制领域,多硬盘搭载是当今的一大发展方向。硬盘的指示灯主要包括error指示灯、locate指示灯及active指示灯,其中active指示灯常亮指示当前硬盘处于在位状态,即硬盘插入,active指示灯闪烁指示当前硬盘处于读写活动状态。
当硬盘只插入但未进行读或写活动时,硬盘活动active指示灯此时处于常亮状态,指示硬盘插入。在当前的硬盘背板设计中,对硬盘在位判断:activity信号直接由硬盘驱动或者经过上层sgpio解析得到,但由于不同类型硬盘在位时硬盘直接输出或sgpio解析的activity电平不同,这就导致硬件电路设计时需要分别设计针对高低电平的点灯电路,且不同硬盘输出的activity方波信号周期不等,硬盘活动active指示灯闪烁频率不一致。
当对硬盘进行读或写活动时,active指示灯此时处于闪烁状态,指示硬盘处于活动状态下。在现有的硬盘背板设计中,对硬盘活动判断:方案一,activity信号直接由硬盘输出;方案二,activity信号通过sgpio解析,然后经cpld_fpga输出作为硬盘活动active指示灯的控制信号;方案三,对硬盘输出的activity直接经cpld_fpga解析后输出硬盘活动active指示灯控制信号。在硬件电路中,为避免针对高低电平的硬盘活动active指示灯交替闪烁,需在一路上增加低频滤波电路,从而使低频方波不能使该路硬盘活动active指示灯闪烁。对于方案一和方案二,不同硬盘存在activity信号方波频率多样性和不一致的问题,有的频率超出人眼识别范围,存在闪烁过快人眼无法识别和闪烁速率不一致的问题;对于方案三可以输出固定频率的方波,但不同硬盘输出的activity方波信号不同,有的周期可能很长,通过实际测试发现硬盘输出的activity方波信号周期4ms-100ms不等,由cpld_fpga内部检测时钟相对较快,这就导致在连续的内部时钟周期无法检测到activity信号边沿变化,存在判断失误的问题。
此为现有技术的不足,因此,针对现有技术中的上述缺陷,提供一种基于可编程模块的硬盘在位与活动控制系统及方法,是非常有必要的。
技术实现要素:
本发明的目的在于,针对上述硬盘活动指示灯闪烁频率不一致和硬件电路复杂的缺陷,提供一种基于可编程模块的硬盘在位与活动控制系统及方法,以解决上述技术问题。
为实现上述目的,本发明给出以下技术方案:
一种基于可编程模块的硬盘在位与活动控制系统,包括
硬盘、可编程模块、第一电阻和硬盘活动active指示灯;
硬盘与可编程模块通过硬盘在位检测信号ifdet#线和硬盘活动信号activity线连接;
可编程模块通过硬盘活动active指示灯控制信号led_act#线连接第一电阻的一端,第一电阻的另一端连接硬盘活动active指示灯的阴极,硬盘活动active指示灯的阳极连接有电源vcc。
进一步地,可编程模块包括硬盘在位判断模块、硬盘读写判断模块和输出控制模块;
硬盘在位判断模块通过硬盘在位检测信号ifdet#线连接硬盘;
硬盘读写判断模块通过硬盘活动信号activity线连接硬盘;
硬盘在位判断模块和硬盘读写判断模块都与输出控制模块连接;
输出控制模块与第一电阻连接;
硬盘读写判断模块包括硬盘activity边沿检测单元和停止判断单元。
进一步地,可编程模块采用fpga可编程模块或cpld可编程模块。
进一步地,硬盘在位检测信号ifdet#的状态包括悬空状态或低电平状态。
进一步地,可编程模块通过通用输入输出口gpio输出硬盘活动active指示灯控制信号led_act#。
进一步地,系统还包括第二电阻和开关,硬盘活动active指示灯控制信号led_act#线连接开关,开关的另一端连接第二电阻,第二电阻的另一端接电源vcc。
进一步地,硬盘活动active指示灯包括不点亮状态、常亮状态或闪烁状态。
进一步地,硬盘activity边沿检测单元包括内部时钟,停止判断单元包括计数器。
本发明还提供如下技术方案:
一种基于可编程模块的硬盘在位与活动控制方法,包括如下步骤:
步骤1.可编程模块判断硬盘是否在位;
若是,进入步骤2;
若不是,进入步骤5;
步骤2.可编程模块判断硬盘是否处于读写活动状态;
若是,进入步骤3;
若不是,进入步骤4;
步骤3.可编程模块输出硬盘活动active指示灯控制信号led_act#控制硬盘活动active指示灯处于闪烁状态;返回步骤1;
步骤4.可编程模块输出硬盘活动active指示灯控制信号led_act#控制硬盘活动active指示灯处于常亮状态;返回步骤1;
步骤5.可编程模块输出硬盘活动active指示灯控制信号led_act#上拉处理,控制硬盘活动active指示灯处于不点亮状态;返回步骤1。
进一步地,步骤1中可编程模块通过检测硬盘输出的硬盘在位检测信号ifdet#判断硬盘是否在位,
若硬盘在位检测信号ifdet#处于低电平状态,判断为硬盘在位;
若硬盘在位检测信号ifdet#处于悬空状态,判断为硬盘不在位。
进一步地,步骤2中可编程模块通过检测硬盘输出的硬盘活动信号activity判断硬盘是否处于读写活动状态,具体步骤如下:
步骤2-1.可编程模块的硬盘activity边沿检测单元通过内部时钟检测硬盘活动信号activity的边沿;
若可编程模块在时钟周期内检测到硬盘活动信号activity的边沿,则判断为硬盘处于读写活动状态,进入步骤3;
若可编程模块在时钟周期内检测不到硬盘活动信号activity的边沿,则进入步骤2-2;
步骤2-2.设定时钟周期累积计数最大值,可编程模块的停止判断单元通过计数器在时钟周期累积计数最大值内检测硬盘活动信号activity的边沿;
若检测到硬盘活动信号activity的边沿,则判断硬盘处于读写活动状态,进入步骤3;
若检测不到硬盘活动信号activity的边沿,则判断硬盘不处于读写活动状态,进入步骤4。
本发明的有益效果在于:
本发明将硬盘的在位与活动时的硬盘活动指示灯状态统一到已有的可编程模块中控制,控制方案更加简洁清晰,控制效果更加理想,同时,在硬件上,这种硬盘在位时确定唯一的输出电平简化了硬件电路,将双路点灯电路简化为一路点灯电路,而且去掉了低频滤波电路设计,降低了硬件电路设计的复杂性与生产成本。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
图1为本发明电路连接示意图;
图2为本发明的方法流程图1;
图3位本发明的方法流程图2;
图4为本发明系统仿真图;
其中,11-硬盘;12-可编程模块;12.1-硬盘在位判断模块;12.2-硬盘读写判断模块;12.2.1-硬盘activity边沿检测单元;12.2.2-停止判断单元;13-第一电阻;14-硬盘活动active指示灯;15-电源vcc;16-硬盘在位检测信号ifdet#线;17-硬盘活动信号activity线;18-硬盘活动active指示灯控制信号led_act#线。
具体实施方式:
为使得本发明的目的、特征、优点能够更加的明显和易懂,下面将结合本发明具体实施例中的附图,对本发明中的技术方案进行清楚、完整地描述。
如图1所示,本发明提供一种基于可编程模块的硬盘在位与活动控制系统,包括硬盘11、可编程模块12、第一电阻13和硬盘活动active指示灯14;可编程模块12采用fpga可编程模块或cpld可编程模块;
硬盘11与可编程模块12通过硬盘在位检测信号ifdet#线16和硬盘活动信号activity线17连接;
可编程模块12通过硬盘活动active指示灯控制信号led_act#线18连接第一电阻13的一端,第一电阻13的另一端连接硬盘活动active指示灯14的阴极,硬盘活动active指示灯14的阳极连接有电源vcc15;硬盘活动active指示灯14包括不点亮状态、常亮状态或闪烁状态;
可编程模块12包括硬盘在位判断模块12.1、硬盘读写判断模块12.2和输出控制模块12.3;
硬盘在位判断模块12.1通过硬盘在位检测信号ifdet#线16连接硬盘11;硬盘在位检测信号ifdet#的状态包括悬空状态或低电平状态;
硬盘读写判断模块12.2通过硬盘活动信号activity线17连接硬盘11;
硬盘在位判断模块12.1和硬盘读写判断模块12.2都与输出控制模块12.3连接;
输出控制模块12.3与第一电阻13连接;
硬盘读写判断模块12.2包括硬盘activity边沿检测单元12.2.1和停止判断单元12.2.2;硬盘activity边沿检测单元12.2.1包括内部时钟,停止判断单元12.2.2包括计数器;
可编程模块12通过通用输入输出口gpio输出硬盘活动active指示灯控制信号led_act#;
系统还包括第二电阻和开关,硬盘活动active指示灯控制信号led_act#线连接开关,开关的另一端连接第二电阻,第二电阻的另一端接电源vcc;在无硬盘插入时,硬盘活动active指示灯控制信号led_act#呈不确定电平输出,此时,闭合开关,将硬盘活动active指示灯控制信号led_act#上拉处理,保证此时硬盘活动active指示灯不亮。
如图2和图3所示,本发明还提供一种基于可编程模块的硬盘在位与活动控制方法,包括如下步骤:
步骤1.可编程模块判断硬盘是否在位;
可编程模块通过检测硬盘输出的硬盘在位检测信号ifdet#判断硬盘是否在位,
若硬盘在位检测信号ifdet#处于低电平状态,判断为硬盘在位;
若硬盘在位检测信号ifdet#处于悬空状态,判断为硬盘不在位;
若是,进入步骤2;
若不是,进入步骤5;
步骤2.可编程模块判断硬盘是否处于读写活动状态;
可编程模块通过检测硬盘输出的硬盘活动信号activity判断硬盘是否处于读写活动状态,具体步骤如下:
步骤2-1.可编程模块的硬盘activity边沿检测单元通过内部时钟检测硬盘活动信号activity的边沿;
若可编程模块在时钟周期内检测到硬盘活动信号activity的边沿,则判断为硬盘处于读写活动状态,进入步骤3;
若可编程模块在时钟周期内检测不到硬盘活动信号activity的边沿,则进入步骤2-2;
步骤2-2.设定时钟周期累积计数最大值,可编程模块的停止判断单元通过计数器在时钟周期累积计数最大值内检测硬盘活动信号activity的边沿;
若检测到硬盘活动信号activity的边沿,则判断硬盘处于读写活动状态,进入步骤3;
若检测不到硬盘活动信号activity的边沿,则判断硬盘不处于读写活动状态,进入步骤4;
步骤3.可编程模块输出硬盘活动active指示灯控制信号led_act#控制硬盘活动active指示灯处于闪烁状态;返回步骤1;
步骤4.可编程模块输出硬盘活动active指示灯控制信号led_act#控制硬盘活动active指示灯处于常亮状态;返回步骤1;
步骤5.可编程模块输出硬盘活动active指示灯控制信号led_act#上拉处理,控制硬盘活动active指示灯处于不点亮状态;返回步骤1。
硬盘在位判断模块对于硬盘在位判断:将硬盘输出的硬盘在位检测信号ifdet#作为可编程模块的输入信号,当硬盘在位时硬盘输出的硬盘在位检测信号ifdet#为低电平,否则为悬空状态,通过该引脚检测硬盘在位;然后可编程模块输出低电平驱动硬盘活动active指示灯点亮。
硬盘读写判断模块对于硬盘活动判断:将硬盘输出的硬盘活动信号activity作为可编程模块的输入信号,通过高频率的可编程模块的系统时钟检测硬盘活动信号activity的边沿,从而确定是否有硬盘读写动作。当检测到硬盘活动信号activity的边沿时,则认为硬盘活动,立即输出固定频率的方波;当检测不到硬盘活动信号activity的边沿时,为防止误判断,采用计数器对硬盘活动信号activity边沿进行累积判断。
硬盘读写判断模块的硬盘activity边沿检测单元是对硬盘输入的硬盘活动信号activity进行边沿检测的,采用可编程模块内部时钟对硬盘活动信号activity边沿进行检测。当硬盘插入并有读写动作时,可编程模块会将硬盘活动active指示灯控制信号led_act#置高,输出硬盘活动active指示灯控制信号led_act#,并作为接口输出供上层使用;当硬盘插入停止读写操作时,并经过停止判断单元确认确实停止读写操作,可编程模块将硬盘活动active指示灯控制信号led_act#置低,停止输出硬盘活动active指示灯控制信号led_act#。
硬盘读写判断模块的停止判断单元是为了防止边沿检测误判断而采用的一种机制,通过计数器对硬盘活动信号activity累积判断实现。不同硬盘输出的硬盘活动信号activity方波信号不同,有的周期可能很长,通过实际测试发现硬盘输出的硬盘活动信号activity方波信号周期4ms-100ms不等,由于可编程模块内部检测时钟相对较快,这就导致在连续的内部时钟周期无法检测到硬盘活动信号activity边沿变化,因此需要增加停止判断模单元。同时,为针对硬盘不同与可编程模块内部检测时钟不同而便于调节检测时间,对累积计数最大值采用参数化设计。
硬盘在位判断模块与硬盘读写判断模块共同影响硬盘活动active指示灯的亮灭或闪烁状态,即硬盘输入可编程模块的硬盘在位检测信号ifdet#与硬盘活动信号activity共同影响硬盘活动active指示灯控制信号led_act#的电平,输出控制模块控制硬盘在位判断模块与硬盘读写判断模块共同作用的输出。
modelsim对硬盘在位与活动控制系统进行了仿真,仿真结果如图4所示,1与7表示无硬盘插入的情况,此时硬盘在位检测信号ifdet#悬空状态,即高阻状态,硬盘活动active指示灯控制信号led_act#呈不确定电平输出;2、4与6表示有硬盘插入无读写操作时的情况,此时硬盘在位检测信号ifdet#为低电平状态,硬盘活动active指示灯控制信号led_act#呈低电平输出;3与5表示有硬盘插入有读写操作时的情况,其中3中硬盘输出的activity信号的周期是4ms,5中硬盘输出的activity信号的周期是100ms,此时硬盘在位检测信号ifdet#为低电平状态,硬盘活动active指示灯控制信号led_act#呈4hz固定频率方波输出,仿真结果可以看出基于可编程模块的硬盘在位与活动控制系统符合硬盘背板硬盘活动active指示灯亮灭及闪烁控制要求。
本发明的实施例是说明性的,而非限定性的,上述实施例只是帮助理解本发明,因此本发明不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他的具体实施方式,同样属于本发明保护的范围。