本發(fā)明屬于服務(wù)器硬盤背板技術(shù)領(lǐng)域,具體涉及一種基于可編程模塊的硬盤在位與活動控制系統(tǒng)及方法。
背景技術(shù):
在服務(wù)器存儲控制領(lǐng)域,多硬盤搭載是當今的一大發(fā)展方向。硬盤的指示燈主要包括error指示燈、locate指示燈及active指示燈,其中active指示燈常亮指示當前硬盤處于在位狀態(tài),即硬盤插入,active指示燈閃爍指示當前硬盤處于讀寫活動狀態(tài)。
當硬盤只插入但未進行讀或?qū)懟顒訒r,硬盤活動active指示燈此時處于常亮狀態(tài),指示硬盤插入。在當前的硬盤背板設(shè)計中,對硬盤在位判斷:activity信號直接由硬盤驅(qū)動或者經(jīng)過上層sgpio解析得到,但由于不同類型硬盤在位時硬盤直接輸出或sgpio解析的activity電平不同,這就導致硬件電路設(shè)計時需要分別設(shè)計針對高低電平的點燈電路,且不同硬盤輸出的activity方波信號周期不等,硬盤活動active指示燈閃爍頻率不一致。
當對硬盤進行讀或?qū)懟顒訒r,active指示燈此時處于閃爍狀態(tài),指示硬盤處于活動狀態(tài)下。在現(xiàn)有的硬盤背板設(shè)計中,對硬盤活動判斷:方案一,activity信號直接由硬盤輸出;方案二,activity信號通過sgpio解析,然后經(jīng)cpld_fpga輸出作為硬盤活動active指示燈的控制信號;方案三,對硬盤輸出的activity直接經(jīng)cpld_fpga解析后輸出硬盤活動active指示燈控制信號。在硬件電路中,為避免針對高低電平的硬盤活動active指示燈交替閃爍,需在一路上增加低頻濾波電路,從而使低頻方波不能使該路硬盤活動active指示燈閃爍。對于方案一和方案二,不同硬盤存在activity信號方波頻率多樣性和不一致的問題,有的頻率超出人眼識別范圍,存在閃爍過快人眼無法識別和閃爍速率不一致的問題;對于方案三可以輸出固定頻率的方波,但不同硬盤輸出的activity方波信號不同,有的周期可能很長,通過實際測試發(fā)現(xiàn)硬盤輸出的activity方波信號周期4ms-100ms不等,由cpld_fpga內(nèi)部檢測時鐘相對較快,這就導致在連續(xù)的內(nèi)部時鐘周期無法檢測到activity信號邊沿變化,存在判斷失誤的問題。
此為現(xiàn)有技術(shù)的不足,因此,針對現(xiàn)有技術(shù)中的上述缺陷,提供一種基于可編程模塊的硬盤在位與活動控制系統(tǒng)及方法,是非常有必要的。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于,針對上述硬盤活動指示燈閃爍頻率不一致和硬件電路復雜的缺陷,提供一種基于可編程模塊的硬盤在位與活動控制系統(tǒng)及方法,以解決上述技術(shù)問題。
為實現(xiàn)上述目的,本發(fā)明給出以下技術(shù)方案:
一種基于可編程模塊的硬盤在位與活動控制系統(tǒng),包括
硬盤、可編程模塊、第一電阻和硬盤活動active指示燈;
硬盤與可編程模塊通過硬盤在位檢測信號ifdet#線和硬盤活動信號activity線連接;
可編程模塊通過硬盤活動active指示燈控制信號led_act#線連接第一電阻的一端,第一電阻的另一端連接硬盤活動active指示燈的陰極,硬盤活動active指示燈的陽極連接有電源vcc。
進一步地,可編程模塊包括硬盤在位判斷模塊、硬盤讀寫判斷模塊和輸出控制模塊;
硬盤在位判斷模塊通過硬盤在位檢測信號ifdet#線連接硬盤;
硬盤讀寫判斷模塊通過硬盤活動信號activity線連接硬盤;
硬盤在位判斷模塊和硬盤讀寫判斷模塊都與輸出控制模塊連接;
輸出控制模塊與第一電阻連接;
硬盤讀寫判斷模塊包括硬盤activity邊沿檢測單元和停止判斷單元。
進一步地,可編程模塊采用fpga可編程模塊或cpld可編程模塊。
進一步地,硬盤在位檢測信號ifdet#的狀態(tài)包括懸空狀態(tài)或低電平狀態(tài)。
進一步地,可編程模塊通過通用輸入輸出口gpio輸出硬盤活動active指示燈控制信號led_act#。
進一步地,系統(tǒng)還包括第二電阻和開關(guān),硬盤活動active指示燈控制信號led_act#線連接開關(guān),開關(guān)的另一端連接第二電阻,第二電阻的另一端接電源vcc。
進一步地,硬盤活動active指示燈包括不點亮狀態(tài)、常亮狀態(tài)或閃爍狀態(tài)。
進一步地,硬盤activity邊沿檢測單元包括內(nèi)部時鐘,停止判斷單元包括計數(shù)器。
本發(fā)明還提供如下技術(shù)方案:
一種基于可編程模塊的硬盤在位與活動控制方法,包括如下步驟:
步驟1.可編程模塊判斷硬盤是否在位;
若是,進入步驟2;
若不是,進入步驟5;
步驟2.可編程模塊判斷硬盤是否處于讀寫活動狀態(tài);
若是,進入步驟3;
若不是,進入步驟4;
步驟3.可編程模塊輸出硬盤活動active指示燈控制信號led_act#控制硬盤活動active指示燈處于閃爍狀態(tài);返回步驟1;
步驟4.可編程模塊輸出硬盤活動active指示燈控制信號led_act#控制硬盤活動active指示燈處于常亮狀態(tài);返回步驟1;
步驟5.可編程模塊輸出硬盤活動active指示燈控制信號led_act#上拉處理,控制硬盤活動active指示燈處于不點亮狀態(tài);返回步驟1。
進一步地,步驟1中可編程模塊通過檢測硬盤輸出的硬盤在位檢測信號ifdet#判斷硬盤是否在位,
若硬盤在位檢測信號ifdet#處于低電平狀態(tài),判斷為硬盤在位;
若硬盤在位檢測信號ifdet#處于懸空狀態(tài),判斷為硬盤不在位。
進一步地,步驟2中可編程模塊通過檢測硬盤輸出的硬盤活動信號activity判斷硬盤是否處于讀寫活動狀態(tài),具體步驟如下:
步驟2-1.可編程模塊的硬盤activity邊沿檢測單元通過內(nèi)部時鐘檢測硬盤活動信號activity的邊沿;
若可編程模塊在時鐘周期內(nèi)檢測到硬盤活動信號activity的邊沿,則判斷為硬盤處于讀寫活動狀態(tài),進入步驟3;
若可編程模塊在時鐘周期內(nèi)檢測不到硬盤活動信號activity的邊沿,則進入步驟2-2;
步驟2-2.設(shè)定時鐘周期累積計數(shù)最大值,可編程模塊的停止判斷單元通過計數(shù)器在時鐘周期累積計數(shù)最大值內(nèi)檢測硬盤活動信號activity的邊沿;
若檢測到硬盤活動信號activity的邊沿,則判斷硬盤處于讀寫活動狀態(tài),進入步驟3;
若檢測不到硬盤活動信號activity的邊沿,則判斷硬盤不處于讀寫活動狀態(tài),進入步驟4。
本發(fā)明的有益效果在于:
本發(fā)明將硬盤的在位與活動時的硬盤活動指示燈狀態(tài)統(tǒng)一到已有的可編程模塊中控制,控制方案更加簡潔清晰,控制效果更加理想,同時,在硬件上,這種硬盤在位時確定唯一的輸出電平簡化了硬件電路,將雙路點燈電路簡化為一路點燈電路,而且去掉了低頻濾波電路設(shè)計,降低了硬件電路設(shè)計的復雜性與生產(chǎn)成本。
此外,本發(fā)明設(shè)計原理可靠,結(jié)構(gòu)簡單,具有非常廣泛的應(yīng)用前景。
由此可見,本發(fā)明與現(xiàn)有技術(shù)相比,具有突出的實質(zhì)性特點和顯著的進步,其實施的有益效果也是顯而易見的。
附圖說明
圖1為本發(fā)明電路連接示意圖;
圖2為本發(fā)明的方法流程圖1;
圖3位本發(fā)明的方法流程圖2;
圖4為本發(fā)明系統(tǒng)仿真圖;
其中,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#線。
具體實施方式:
為使得本發(fā)明的目的、特征、優(yōu)點能夠更加的明顯和易懂,下面將結(jié)合本發(fā)明具體實施例中的附圖,對本發(fā)明中的技術(shù)方案進行清楚、完整地描述。
如圖1所示,本發(fā)明提供一種基于可編程模塊的硬盤在位與活動控制系統(tǒng),包括硬盤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包括不點亮狀態(tài)、常亮狀態(tài)或閃爍狀態(tài);
可編程模塊12包括硬盤在位判斷模塊12.1、硬盤讀寫判斷模塊12.2和輸出控制模塊12.3;
硬盤在位判斷模塊12.1通過硬盤在位檢測信號ifdet#線16連接硬盤11;硬盤在位檢測信號ifdet#的狀態(tài)包括懸空狀態(tài)或低電平狀態(tài);
硬盤讀寫判斷模塊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包括內(nèi)部時鐘,停止判斷單元12.2.2包括計數(shù)器;
可編程模塊12通過通用輸入輸出口gpio輸出硬盤活動active指示燈控制信號led_act#;
系統(tǒng)還包括第二電阻和開關(guān),硬盤活動active指示燈控制信號led_act#線連接開關(guān),開關(guān)的另一端連接第二電阻,第二電阻的另一端接電源vcc;在無硬盤插入時,硬盤活動active指示燈控制信號led_act#呈不確定電平輸出,此時,閉合開關(guān),將硬盤活動active指示燈控制信號led_act#上拉處理,保證此時硬盤活動active指示燈不亮。
如圖2和圖3所示,本發(fā)明還提供一種基于可編程模塊的硬盤在位與活動控制方法,包括如下步驟:
步驟1.可編程模塊判斷硬盤是否在位;
可編程模塊通過檢測硬盤輸出的硬盤在位檢測信號ifdet#判斷硬盤是否在位,
若硬盤在位檢測信號ifdet#處于低電平狀態(tài),判斷為硬盤在位;
若硬盤在位檢測信號ifdet#處于懸空狀態(tài),判斷為硬盤不在位;
若是,進入步驟2;
若不是,進入步驟5;
步驟2.可編程模塊判斷硬盤是否處于讀寫活動狀態(tài);
可編程模塊通過檢測硬盤輸出的硬盤活動信號activity判斷硬盤是否處于讀寫活動狀態(tài),具體步驟如下:
步驟2-1.可編程模塊的硬盤activity邊沿檢測單元通過內(nèi)部時鐘檢測硬盤活動信號activity的邊沿;
若可編程模塊在時鐘周期內(nèi)檢測到硬盤活動信號activity的邊沿,則判斷為硬盤處于讀寫活動狀態(tài),進入步驟3;
若可編程模塊在時鐘周期內(nèi)檢測不到硬盤活動信號activity的邊沿,則進入步驟2-2;
步驟2-2.設(shè)定時鐘周期累積計數(shù)最大值,可編程模塊的停止判斷單元通過計數(shù)器在時鐘周期累積計數(shù)最大值內(nèi)檢測硬盤活動信號activity的邊沿;
若檢測到硬盤活動信號activity的邊沿,則判斷硬盤處于讀寫活動狀態(tài),進入步驟3;
若檢測不到硬盤活動信號activity的邊沿,則判斷硬盤不處于讀寫活動狀態(tài),進入步驟4;
步驟3.可編程模塊輸出硬盤活動active指示燈控制信號led_act#控制硬盤活動active指示燈處于閃爍狀態(tài);返回步驟1;
步驟4.可編程模塊輸出硬盤活動active指示燈控制信號led_act#控制硬盤活動active指示燈處于常亮狀態(tài);返回步驟1;
步驟5.可編程模塊輸出硬盤活動active指示燈控制信號led_act#上拉處理,控制硬盤活動active指示燈處于不點亮狀態(tài);返回步驟1。
硬盤在位判斷模塊對于硬盤在位判斷:將硬盤輸出的硬盤在位檢測信號ifdet#作為可編程模塊的輸入信號,當硬盤在位時硬盤輸出的硬盤在位檢測信號ifdet#為低電平,否則為懸空狀態(tài),通過該引腳檢測硬盤在位;然后可編程模塊輸出低電平驅(qū)動硬盤活動active指示燈點亮。
硬盤讀寫判斷模塊對于硬盤活動判斷:將硬盤輸出的硬盤活動信號activity作為可編程模塊的輸入信號,通過高頻率的可編程模塊的系統(tǒng)時鐘檢測硬盤活動信號activity的邊沿,從而確定是否有硬盤讀寫動作。當檢測到硬盤活動信號activity的邊沿時,則認為硬盤活動,立即輸出固定頻率的方波;當檢測不到硬盤活動信號activity的邊沿時,為防止誤判斷,采用計數(shù)器對硬盤活動信號activity邊沿進行累積判斷。
硬盤讀寫判斷模塊的硬盤activity邊沿檢測單元是對硬盤輸入的硬盤活動信號activity進行邊沿檢測的,采用可編程模塊內(nèi)部時鐘對硬盤活動信號activity邊沿進行檢測。當硬盤插入并有讀寫動作時,可編程模塊會將硬盤活動active指示燈控制信號led_act#置高,輸出硬盤活動active指示燈控制信號led_act#,并作為接口輸出供上層使用;當硬盤插入停止讀寫操作時,并經(jīng)過停止判斷單元確認確實停止讀寫操作,可編程模塊將硬盤活動active指示燈控制信號led_act#置低,停止輸出硬盤活動active指示燈控制信號led_act#。
硬盤讀寫判斷模塊的停止判斷單元是為了防止邊沿檢測誤判斷而采用的一種機制,通過計數(shù)器對硬盤活動信號activity累積判斷實現(xiàn)。不同硬盤輸出的硬盤活動信號activity方波信號不同,有的周期可能很長,通過實際測試發(fā)現(xiàn)硬盤輸出的硬盤活動信號activity方波信號周期4ms-100ms不等,由于可編程模塊內(nèi)部檢測時鐘相對較快,這就導致在連續(xù)的內(nèi)部時鐘周期無法檢測到硬盤活動信號activity邊沿變化,因此需要增加停止判斷模單元。同時,為針對硬盤不同與可編程模塊內(nèi)部檢測時鐘不同而便于調(diào)節(jié)檢測時間,對累積計數(shù)最大值采用參數(shù)化設(shè)計。
硬盤在位判斷模塊與硬盤讀寫判斷模塊共同影響硬盤活動active指示燈的亮滅或閃爍狀態(tài),即硬盤輸入可編程模塊的硬盤在位檢測信號ifdet#與硬盤活動信號activity共同影響硬盤活動active指示燈控制信號led_act#的電平,輸出控制模塊控制硬盤在位判斷模塊與硬盤讀寫判斷模塊共同作用的輸出。
modelsim對硬盤在位與活動控制系統(tǒng)進行了仿真,仿真結(jié)果如圖4所示,1與7表示無硬盤插入的情況,此時硬盤在位檢測信號ifdet#懸空狀態(tài),即高阻狀態(tài),硬盤活動active指示燈控制信號led_act#呈不確定電平輸出;2、4與6表示有硬盤插入無讀寫操作時的情況,此時硬盤在位檢測信號ifdet#為低電平狀態(tài),硬盤活動active指示燈控制信號led_act#呈低電平輸出;3與5表示有硬盤插入有讀寫操作時的情況,其中3中硬盤輸出的activity信號的周期是4ms,5中硬盤輸出的activity信號的周期是100ms,此時硬盤在位檢測信號ifdet#為低電平狀態(tài),硬盤活動active指示燈控制信號led_act#呈4hz固定頻率方波輸出,仿真結(jié)果可以看出基于可編程模塊的硬盤在位與活動控制系統(tǒng)符合硬盤背板硬盤活動active指示燈亮滅及閃爍控制要求。
本發(fā)明的實施例是說明性的,而非限定性的,上述實施例只是幫助理解本發(fā)明,因此本發(fā)明不限于具體實施方式中所述的實施例,凡是由本領(lǐng)域技術(shù)人員根據(jù)本發(fā)明的技術(shù)方案得出的其他的具體實施方式,同樣屬于本發(fā)明保護的范圍。