背景技术
在计算机的组成结构中,有一个很重要的部分,就是存储器。存储器是用来存储程序和数据的部件,对于计算机来说,有了存储器,才有记忆功能,才能保证正常工作。随着计算机的发展越来越迅猛,存储设备也随之越来越先进,其存储容量也越来越大。硬盘是一种利用磁性记录信息的外存储器,具有存储容量大、数据传输速率高的优点。
硬盘作为一种存储设备,其接口上除了电源信号外,还有数据信号。在没有保护电路设计的硬盘进行热插拔时,很可能在以上两处产生负效应,即产生正负脉冲。如果正电流冲向SCSI(小型计算机系统接口)总线,很可能造成设备通道烧毁,同时也会对SCSI总线造成干扰,从而影响在同一总线上其他设备的稳定性。当负电流冲向硬盘时,硬盘会被损毁。
IDE(智能磁盘设备)硬盘热插拔保护需要考虑插入和拔出保护两个方面:
插入过程需要考虑到电气上按照“地”->电源->信号的插入顺序,防止信号先于“地”、电源插入,引起硬盘内部电子器件闩锁,即出现信号电流向电源端倒灌的情况,导致器件必须重新正常上电才能恢复正常,甚至会导致器件损坏。
拔出过程需要考虑IDE硬盘的数据保护和硬盘内部的机械装置保护措施。传统的IDE硬盘采用机械磁头读写硬盘,在读写过程中如果拔出硬盘,磁头会和惯性旋转的硬盘盘片不稳定接触,导致硬盘物理损坏。
为了方便硬盘热插拔,比如在计费、数据存储等系统中,通常将硬盘放在电路板上,随电路板一起热插拔。为了保证硬盘热插拔的安全性,现有技术采用设计长短针的方法,在硬盘接口上将“地”和电源设计为长针,信号设计为短针。这样,在硬盘插入IDE接口时,“地”、电源先接通,信号后接通,可以防止硬盘插入时的闩锁现象。而在硬盘拔出之前,停止对硬盘的操作,然后拔出。
这种保护方式虽然在一定程度上提高了硬盘热插拔的安全性,但同时也存在以下缺点:
(1)采用长短针设计对硬盘插入进行保护,可能会造成已有系统方案的变更。一些系统在原先的设计中没有针对硬盘接口定义长短针,如果变更设计,需要厂家重新定制硬盘电路板的连接器。
(2)在拔出硬盘时需要先停止对硬盘的读写操作,而这种人工干预与操作者主观判断的关系较大,有可能硬盘并没有停止读写工作但操作者认为是停止了,此时拔出硬盘也会引起硬盘数据破坏,甚至会引起硬盘物理损坏。
发明内容
本发明的目的是提供一种硬盘热插拔保护系统,以克服现有技术采用长短针设计的局限性以及需要人工干预的缺点,提高硬盘热插拔的可靠性。
本发明的另一个目的是提供一种硬盘热插拔保护方法,有效避免IDE硬盘在热插入过程中可能造成的信号闩锁现象,以及在热拔出过程中可能对硬盘数据的破坏及对硬盘可能造成的物理损坏。
为此,本发明提供如下的技术方案:
一种硬盘热插拔保护系统,用于在硬盘插入后根据CPU的指令控制硬盘信号线的接通,所述系统包括:
检测电路,通过所述接口电路板与核心处理板的中央处理单元CPU相连,用于产生插入信号,输出给CPU,使CPU根据该信号检测硬盘是否完全插入;
开关电路,设置于硬盘的接口电路板上,包括控制端和受控端,所述控制端通过来自CPU的控制信号控制受控端接通。
所述检测电路具体为:与核心处理板的CPU相连的电阻,所述电阻的另一端与地相连,与CPU相连的一端通过插针与所述接口电路板上的电源端相连。
可选地,所述开关电路具体为:总线开关或者模拟开关。
一种硬盘热插拔保护系统,用于在硬盘拔出时根据CPU的指令指示硬盘是否可以安全拔出,所述系统设置于硬盘的接口电路板上,包括:
控制电路,用于进行硬盘拔出操作时产生中断信号,输出给CPU的中断管脚;
指示电路,硬盘插入后与CPU的输入/输出管脚相连,用于指示是否已完成对硬盘的操作。
优选地,所述控制电路具体为:通过硬盘面板扳手控制的一微动开关。
优选地,所述指示电路具体为:发光二极管和与其串联连接的电阻。
一种硬盘热插拔保护系统,所述系统包括:
插入信号控制装置,通过硬盘的接口电路板与核心处理板的中央处理单元CPU相连,用于在硬盘插入后根据CPU的指令控制硬盘信号线的接通;
拔出信号指示装置,通过所述接口电路板与所述核心处理板的CPU相连,用于在硬盘拔出时根据CPU的指令指示硬盘是否可以安全拔出;
其中,所述插入信号控制装置包括:
检测电路,设置于硬盘的接口电路板上,通过所述接口电路板与核心处理板的中央处理单元CPU相连,用于产生插入信号,输出给CPU,使CPU根据该信号检测硬盘是否完全插入;
开关电路,包括控制端和受控端,所述控制端通过来自核心处理板的电源或地信号控制受控端断开,通过来自CPU的控制信号控制受控端接通;
所述拔出信号指示装置包括:
控制电路,用于进行硬盘拔出操作时产生中断信号,输出给CPU的中断管脚;
指示电路,硬盘插入后与CPU的输入/输出管脚相连,用于指示是否已完成对硬盘的操作。
一种硬盘热插拔保护方法,所述方法包括:
硬盘插入时,使硬盘信号线与CPU总线为断开状态;当CPU检测到硬盘已插入后,由CPU控制硬盘信号线接通。
一种硬盘热插拔保护方法,所述方法包括:
进行硬盘拔出操作时,产生中断信号,CPU根据该中断信号完成对硬盘的操作,并控制产生指示信号;用户收到该指示信号后再将硬盘拔出。
优选地,在产生指示信号前,由CPU控制断开硬盘信号线与CPU总线的连接。
由以上本发明提供的技术方案可以看出,本发明利用插入信号控制装置在硬盘插入IDE接口时,使“地”、电源先接通,控制硬盘信号断开,在硬盘插入IDE接口后,再由CPU控制硬盘信号接通,不需要硬盘电路板的连接器定义“地”、电源、信号为长短针,即可有效地防止了硬盘插入时的闩锁现象,方便了系统设计。而在硬盘拔出时,利用拔出信号指示装置来提示用户硬盘是否处于无操作状态,增加了可靠性,有效避免了IDE硬盘在热拔出过程中可能对硬盘数据的破坏以及对硬盘可能造成的物理损坏因素。还可以在给出指示信号前先将硬盘信号断开,进一步增强了硬盘拔出过程中信号线电气性能的可靠性。通过使用总线开关、硬盘面板扳手、微动开关以及在扳手上设计指示灯的方式,即可实现本发明,实现硬盘热插拔的高可靠性设计,设计简单,成本低廉。
具体实施方式
本发明的核心在于对IDE硬盘增加热插拔保护系统,使其在插入IDE接口时,使“地”、电源先接通,硬盘信号断开,在硬盘插入IDE接口后,再由CPU控制硬盘信号接通,从而有效地防止硬盘插入时的闩锁现象;进行硬盘拔出操作时,首先产生中断信号,CPU根据该中断信号完成对硬盘的操作,并控制产生指示信号;用户收到该指示信号后再将硬盘拔出,从而避免IDE硬盘在热拔出过程中可能对硬盘数据的破坏以及对硬盘可能造成的物理损坏因素。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和实施方式对本发明作进一步的详细说明。
参照图1所示本发明系统的第一实施例原理框图:
该系统用于在硬盘插入后根据CPU的指令控制硬盘信号线的接通,提供对硬盘热插入时的保护功能。
包括检测电路111和开关电路112。检测电路111用于产生插入信号,输出给核心处理板的CPU14的一个I/O管脚5,使CPU根据该信号检测硬盘是否完全插入。开关电路112设置于硬盘的接口电路板10上,其控制端1与CPU的另一个I/O管脚6相连,另一控制端2与电源或“地”相连。受控端3、4分别连接CPU和硬盘13的信号线,包括数据信号、控制信号和状态信号,连接方式为一一对应。
当硬盘热插入时,接通硬盘的电源和“地”信号,硬盘的信号处于断开状态;当CPU检测到I/O管脚5上的硬盘板在位信号后,由I/O管脚6发出控制信号到开关电路112的控制端1,控制受控端3、4接通,使硬盘的信号线接通,这时即可对硬盘进行读写操作。从而保证了硬盘在插入IDE接口时,使“地”、电源先于硬盘信号接通,有效地防止了硬盘插入时出现闩锁现象,提高了硬盘热插拔过程中的安全性。
在本发明系统的实际应用中,开关电路可以由总线开关或者模拟开关来实现。
如图2所示为型号为QS32XVH245Q2的16位总线开关,其中,/OE1、/OE2为控制端,A0~A15、B0~B15为数据信号。/OE1为控制低8位A0~A7、B0~B7的开关,/OE2为控制高8位A8~A15、B8~B15的开关。
/OE1、/OE2为低电平时打开总线开关,此时,A0和B0连通,A1和B1连通,...,A7和B7连通,A8和B8连通,A9和B9连通,...,A15和B15连通。
/OE1、/OE2为高电平时关闭总线开关,此时,A0和B0断开,A1和B1断开,...,A7和B7断开,A8和B8断开,A9和B9断开,..,A15和B15断开。
在本发明中,可以使用两个16位总线开关控制16位硬盘信号的通断。如图3所示:
其中,IDE硬盘控制器可以采用WB83553F,该器件为PCI(外围设备接口)转IDE接口的PCI南桥。为了便于理解,图中仅画出IDE控制器接口部分的信号。
第1个总线开关用来开/关IDE控制器和IDE硬盘之间的数据线DD[0..15],共16bit数据。第2个总线开关用来开/关IDE控制器和IDE硬盘之间的控制信号和状态信号,共15bit,分别有:复位信号/RESET、DMA请求信号/DMARQ、DMA响应信号/DMACK、写信号/DIOW、读信号/DIOR、IO准备好信号IORDY、硬盘线片选信号CSEL、中断请求信号INTRQ、IO 16位操作选择信号/IOCS16、诊断指示信号PDIAG、读写片选/IDE CS0、读写片选/IDE CS1、寄存器地址信号DA0、寄存器地址信号DA1、寄存器地址信号DA2。
第一个16位总线开关的A0至A15在硬盘插入后与南桥(IDE控制器)的数据总线相连,B0至B15与硬盘的IDE插槽相连,控制硬盘的数据总线与南桥的数据总线的通断;第二个16位总线开关的A0至A15在硬盘插入后与南桥的控制信号线及状态信号线相连,B0至B15与硬盘的IDE插槽相连,控制硬盘的控制信号及状态信号的通断。
将总线开关的/OE1、/OE2端连接在一起,作为/OE控制端,并接上拉电阻,比如4.7千欧,同时将/OE控制端接到CPU的一个I/O管脚上。这样,当硬盘插入IDE控制器时,电源和“地”接通,/OE为高电平,使IDE控制器和IDE硬盘之间的数据信号、控制信号和状态信号都处于断开连接的状态,因此实现了IDE硬盘“地”、电源比信号线先上电的设计。当硬盘完全插入后,由CPU控制/OE为低电平,此时,接通硬盘的数据线、控制信号线及状态信号线,使硬盘可以进入正常工作状态。
IDE硬盘接口电路板插入机框的状态如图4所示:
两个16位总线开关设置在接口电路板上,通过接口电路板插入IDE控制器时,控制IDE硬盘“地”、电源比信号线先上电。可见,不需要对硬盘接口定义长短针的设计,即可保证硬盘热插入的安全性。
使用模拟开关同样能实现总线开关的功能。
如图5a所示为一个四双向模拟开关,型号为MM74HC4316M。其功能也是通过控制端来控制双向信号的通或断。其控制信号的真值表如图5b所示。
对于16位的IDE硬盘,使用四个这种四路模拟开关,将各路的控制信号CTL端连接在一起,并接下拉电阻,比如4.7千欧,同时将其接到CPU的一个I/O管脚上。这样,当硬盘插入IDE控制器时,电源和“地”接通,CTL为低电平,使IDE控制器和IDE硬盘之间的数据信号、控制信号和状态信号都处于断开连接的状态,因此实现了IDE硬盘“地”、电源比信号线先上电的设计。当硬盘完全插入后,由CPU控制CTL为高电平,此时,接通硬盘的数据线、控制信号线及状态信号线,使硬盘可以进入正常工作状态。
在本发明系统中,CPU通过查询检测电路提供的硬盘板在位信号来确定硬盘板是否插入。
检测电路的实现可参照图6所示原理框图:
CPU的PIO管脚通过电阻R接地,并接收硬盘板的在位信号IDE_IN_SLOT;VCC连接硬盘板连接器的插针。当硬盘板没有插入之前,CPU判断硬盘板的在位信号为低电平,当硬盘插入后,CPU判断硬盘板的在位信号为高电平,认为硬盘板已经插入。考虑到硬盘板可靠插入需要几十毫秒的时间,CPU在判断IDE_IN_SLOT为高电平后,为确保硬盘板的可靠插入,可延时100毫秒后再控制开关电路接通CPU和硬盘的信号线。
参照图7,图7示出了本发明系统的第二实施例原理框图:
该系统用于在硬盘拔出时根据CPU的指令指示硬盘是否可以安全拔出,以提高硬盘在热插拔过程中的安全性。
该系统设置于硬盘的接口电路板10上,包括控制电路121和指示电路122。控制电路121与CPU的中断管脚7相连,用于进行硬盘拔出操作时产生中断信号,输出给CPU的中断管脚;当硬盘插入IDE接口后,指示电路122与CPU的一个I/O管脚8相连,用于指示是否已完成对硬盘的操作。
当进行硬盘拔出操作时,使控制电路121产生一个低电平信号,输出到CPU的中断管脚,CPU收到中断信号后,判断当前是否进行硬盘操作,如果是,则处理完成当前对硬盘的操作,并输出控制信号到指示电路122,指示电路122收到该信号后,产生已完成对硬盘操作的指示信号,此时,即可安全拔出硬盘,而不会破坏硬盘数据,也不会对硬盘造成物理损坏。
在实际应用中,可以通过在硬盘面板上设计扳手,选择和面板扳手配套的电子开关(微动开关)来实现控制电路的功能。通过在硬盘面板上设计指示灯来实现指示电路的功能。
参照图8,图8示出了硬盘拔出过程实现硬盘保护功能的原理图:
选择和面板扳手配套的电子开关61,也称为微动开关,比如型号为OMRON的B3F-1000,该微动开关在面板扳手闭合时,微动开关信号线指示为高电平,在面板扳手打开时,微动开关信号线指示为低电平。
如图8所示,SPANNER_STAT是送给CPU的状态信号,高电平表示扳手闭合,低电平表示扳手打开,准备拔出硬盘电路板。在本发明中,SPANNER_STAT接CPU的中断管脚,CPU在收到SPANNER_STAT为低电平的中断后,判断当前是否进行硬盘操作。如果是,则处理完当前对硬盘的操作,并驱动PIO(可编程输入输出)管脚为低电平,此时面板上的指示灯62亮(该指示灯在扳手闭合情况下是灭的)。用户在看到面板指示灯亮后,就可以确认当前硬盘无操作了,可以拔出硬盘电路板。
图中的电阻R1为下拉电阻,R2为二极管的限流电阻。
当然,在CPU中断信号类型为高电平时,上述微动开关61也可以设计成扳手闭合情况下SPANNER_STAT状态信号为低电平,扳手打开时SPANNER_STAT状态信号为高电平,此时产生中断信号。
在CPU收到SPANNER_STAT信号,并且完成当前对硬盘的操作后,可以立即驱动面板指示灯亮,也可以先将总线开关关闭连接,然后再驱动面板指示灯亮,进一步增加拔出过程中信号线电气性能的可靠性。
在实际应用中,指示电路可以有多种实现方式,除了上面提到的二极管外,还可以采用数码管、液晶显示屏等器件来显示可以安全拔出的信号。由于这些器件都是一些常用器件,本技术领域人员根据该发明可以很容易地实现,在此不再赘述。
为了实现硬盘热插拔的高可靠性设计,使硬盘热插入及热拔出都具有较高的安全性。参照图9所示本发明系统的第三实施例:
该系统包括插入信号控制装置11和拔出信号控制装置12,分别设置于硬盘13的接口电路板10上。其中,
插入信号控制装置11通过接口电路板10与核心处理板上的中央处理单元(CPU)14的一个I/O(输入/输出)管脚相连,用于当硬盘插入后,通过CPU的I/O管脚输出的信号控制硬盘信号线的接通。
插入信号控制装置11包括检测电路111和开关电路112。检测电路111用于产生插入信号,输出给CPU的一个I/O管脚5,使CPU根据该信号检测硬盘是否完全插入。开关电路112的控制端1与CPU的另一个I/O管脚6相连,另一控制端2与电源或“地”相连。受控端3、4分别连接CPU和硬盘的信号线,包括数据信号、控制信号和状态信号,连接方式为一一对应。
当硬盘热插入时,接通硬盘的电源和“地”信号,硬盘的信号处于断开状态;当CPU检测到I/O管脚5上的硬盘板在位信号后,由I/O管脚6发出控制信号到开关电路112的控制端1,控制受控端3、4接通,使硬盘的信号线接通,这时即可对硬盘进行读写操作。从而保证了硬盘在插入IDE接口时,使“地”、电源先于硬盘信号接通,有效地防止了硬盘插入时出现闩锁现象。
拔出信号控制装置12通过接口电路板10与核心处理板上的CPU相连,用于在进行硬盘拔出操作时,指示硬盘是否可以安全拔出。拔出信号控制装置12包括:控制电路121和指示电路122。控制电路121与CPU的中断管脚7相连,用于进行硬盘拔出操作时产生中断信号,输出给CPU的中断管脚;当硬盘插入IDE接口后,指示电路122与CPU的另一个I/O管脚8相连,用于指示是否已完成对硬盘的操作。
当进行硬盘拔出操作时,使控制电路121产生一个低电平信号,输出到CPU的中断管脚,CPU收到中断信号后,判断当前是否进行硬盘操作,如果是,则处理完成当前对硬盘的操作,并输出控制信号到指示电路122,指示电路122收到该信号后,产生已完成对硬盘操作的指示信号,此时,即可安全拔出硬盘,而不会破坏硬盘数据,也不会对硬盘造成物理损坏。
图10示出了本发明方法的实现流程,包括以下步骤:
步骤S01:当硬盘插入时,首先断开硬盘信号线与CPU总线的连接,硬盘插入后,再由CPU控制硬盘信号线接通。
步骤S02:进行硬盘拔出操作时,产生中断信号,CPU根据该中断信号完成对硬盘的操作,并控制产生指示信号。
步骤S03:用户收到该指示信号后再将硬盘拔出。
为了进一步增加硬盘拔出过程中信号线电气性能的可靠性,还可在CPU完成对硬盘操作后、产生指示信号前,先由CPU控制断开硬盘信号线与CPU总线的连接,然后再由CPU控制产生指示信号。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。