專利名稱:采集次數(shù)控制模式下的多線程數(shù)據(jù)采集系統(tǒng)同步控制方法
技術(shù)領域:
本發(fā)明屬于探地雷達的探測技術(shù)領域,特別涉及一種采集次數(shù)控制模式下的探地雷達多線程數(shù)據(jù)采集系統(tǒng)中多個相互獨立線程間的信息交互和同步控制方法,實現(xiàn)了采集系統(tǒng)的控制功能。
背景技術(shù):
探地雷達(GPR)是一種快速、高效、無損探測的物探方法。傳統(tǒng)的探地雷達設備的數(shù)據(jù)采集系統(tǒng)通常采用等效采樣方式,這種采樣方法采樣速度低(每秒發(fā)射和接收的脈沖數(shù)僅為50),對硬件要求也比較低,單一線程即可完成采樣工作。隨著雷達快速探測需求的增加,單一線程已無法滿足高采樣速率(每秒發(fā)射和接收的脈沖數(shù)I X IO5個以上,采樣率可達SGSamples/s以上)和高數(shù)據(jù)量存儲(每秒鐘要存儲數(shù)據(jù)量達I吉以上)的要求,所以多線程數(shù)據(jù)采集系統(tǒng)成為一個發(fā)展方向。若是用多個線程來協(xié)同完成探地數(shù)據(jù)采集中不同的存取任務(任務包括雷達數(shù)據(jù)采集,頭文件數(shù)據(jù)采集和數(shù)據(jù)寫入),其優(yōu)點是可以加快數(shù)據(jù)存取速度,大大提高數(shù)據(jù)采集系統(tǒng)的整體性能。但對多線程數(shù)據(jù)采集系統(tǒng)來說,最重要的難題則是如何實現(xiàn)多個相互獨立線程間的信息交互和同步控制。
發(fā)明內(nèi)容
本發(fā)明的目的是為解決多線程采集系統(tǒng)中的同步控制難題,提出一種基于采集次數(shù)控制模式下的多線程數(shù)據(jù)采集系統(tǒng)同步控制方法,本發(fā)明基于計算機控制理論,并利用計算機實現(xiàn)了探地雷達多線程采集系統(tǒng)的同步控制功能。本發(fā)明方法用多個線程來完 成探地數(shù)據(jù)采集中不同的存取任務,任務包括雷達數(shù)據(jù)采集,頭文件數(shù)據(jù)采集和數(shù)據(jù)寫入,多個線程在數(shù)據(jù)采集和寫入過程中各自都以循環(huán)形式相互獨立工作;所述數(shù)據(jù)采集和寫入過程包括以下步驟:I)在所有雷達數(shù)據(jù)采集線程中設置一個整型變量X,用于控制雷達數(shù)據(jù)采集的總的次數(shù);設置一個全局控制變量Y,用于各線程間結(jié)束信息的傳遞;各個線程設置自身的局部控制變量Zi, i=l、2、".Ρ,P為總線程的個數(shù),該局部變量表示其所在線程的運行正確與否;此外雷達數(shù)據(jù)采集線程還設置各自的采集控制變量%,用于檢測該雷達數(shù)據(jù)采集線程的采集次數(shù),j為雷達數(shù)據(jù)采集線程的個數(shù),j=l、2、…m,m;四種控制變量均有兩個狀態(tài):
U rp,,“ P,,.
2)對整型變量X進行加處理,用于實現(xiàn)各數(shù)據(jù)采集線程的采集次數(shù)分配,具體方法為:對X值加0,I或2,使加處理后的值V能被m整除,商為XX ;將商XX和每個雷達數(shù)據(jù)采集線程的循環(huán)次數(shù)N0C’進行比值運算CO,所述CO規(guī)則為:如果V小于N0C,則該雷達數(shù)據(jù)采集線程的控制信號Su為“F”,如果V大于NOC則該雷達數(shù)據(jù)采集線程的控制信號Su為“T” ;同理加處理后的值V與數(shù)據(jù)寫入線程的循環(huán)次數(shù)NOC進行比值運算CO,比值運算CO運算結(jié)果作為數(shù)據(jù)寫入線程的控制信號S2k,k=l、2、…r,r為數(shù)據(jù)寫入線程的個數(shù);
3)對所有雷達數(shù)據(jù)采集線程各自的采集控制變量Qj進行布爾“與”運算ΒΑ0,所述BAO規(guī)則為:如果所有的采集控制變量全部為“Τ”,則輸出控制信號S3為“Τ”,如果所有的采集控制變量至少有一個是“F”,則輸出控制信號S3為“F”,該控制信號作為頭文件數(shù)據(jù)采集和數(shù)據(jù)寫入線程的控制信號;4)各線程中分別對所述控制信號S1PS21^S3和變量Yji進行布爾“或”運算(B00);所述BOO規(guī)則為:各雷達數(shù)據(jù)采集線程中,如果Su_、Y和Zi全部為“F”,則該雷達數(shù)據(jù)采集線程輸出控制信號&為“F”,如果輸入的SmY和Zi至少有一個是“T”,則該雷達數(shù)據(jù)采集線程輸出控制信號&為“T” ;各頭文件采集線程中,如果輸入的S3、Y和Zi全部為“F”,則該頭文件采集線程輸出控制信號S5q (q=l、2、…V,V為頭文件采集線程的個數(shù))為“F”,如果輸入的S3、Y和Zi至少有一個是“T”,則該頭文件采集線程輸出控制信號S5q為“T”;各數(shù)據(jù)寫入線程中,如果輸入的S2k、S3、Y和Zi全部為“F”,則該數(shù)據(jù)寫入線程輸出控制信號S6k為“F”,如果輸入的S2k、S3、Y和Zi至少有一個是“T”,則該數(shù)據(jù)寫入線程輸出控制信號S6k為T;5)各個線程輸出的控制信號S4j或S5q或S6k控制著各自循環(huán)進程(Fl):如果控制信號為“F”則該線程繼續(xù)運行,并將該控制信號賦值(AO)給全局控制變量Y,重復步驟2);如果該線程輸出控制信號為“T”,則將該控制信號賦值給全局控制變量Y,同時對于雷達數(shù)據(jù)采集和頭文件數(shù)據(jù)采集線程運行結(jié)束(End),對數(shù)據(jù)寫入線程則轉(zhuǎn)至步驟6);(所述數(shù)據(jù)寫入進程還包括以下步驟:)6)檢測各數(shù)據(jù)寫入線程中的數(shù)據(jù)是否全部被寫入硬盤(F2),如果檢測結(jié)果顯示該線程數(shù)據(jù)全部寫入,則該寫入線程運行結(jié)束(End),如果檢測結(jié)果顯示該線程數(shù)據(jù)沒有全部寫入,則該寫入線程繼續(xù)運行,重復步驟2),從而確保采集到的所有數(shù)據(jù)都被存儲起來。本發(fā)明的技術(shù)特點及有益效果:
I)采集次數(shù)控制模式下多線程采集系統(tǒng)同步控制方法的實現(xiàn),使得多個相互獨立線程間的信息交互和同步控制成為可能,并通過預設值的采集次數(shù)控制采集過程;2)多個線程協(xié)同完成探地數(shù)據(jù)采集中不同的存取任務,可以加快數(shù)據(jù)存取速度,大大提高數(shù)據(jù)采集系統(tǒng)的整體性能;
圖1為本發(fā)明的4線程數(shù)據(jù)采集系統(tǒng)的同步控制流程圖。
具體實施例方式下面結(jié)合附圖和具體實施方式
對本發(fā)明作進一步詳細描述,圖1為本發(fā)明的4線程數(shù)據(jù)采集系統(tǒng)的同步控制流程圖:本實例中用到的計算機CPU為4核17處理器,達數(shù)據(jù)采樣設備為AcqirisU1065A數(shù)字化儀,其實時采樣率可達到SGSamples/s。頭文件數(shù)據(jù)采樣設備有測量輪編碼器和QSB-M采集設備。多線程數(shù)據(jù)采集系統(tǒng)分為4個線程,多線程數(shù)據(jù)采集系統(tǒng)的同步控制流程圖如圖1所示,4個線程在數(shù)據(jù)采集和寫入過程中各自都以循環(huán)形式相互獨立工作。其中雷達數(shù)據(jù)采集任務由線程I和線程2完成,頭文件數(shù)據(jù)采集任務由線程3完成,數(shù)據(jù)寫入任務由線程4完成。雷因Labview開發(fā)環(huán)境有其固有的語言優(yōu)勢,本實例的控制程序是在Labview環(huán)境中開發(fā)設計的。Labview是美國國家儀器(NI)公司研制開發(fā)的圖形化編程語言,由其開發(fā)出來的程序都稱為VI。一個VI由3部分組成,程序前面板(FrontPanel)、框圖程序(DiagramProgram)、圖標/連接端口(Icon/Terminal)。其中,前面板是圖形化用戶界面,用于設置輸入數(shù)值和觀察輸出量。框圖程序是在后臺用圖形化編程語言編制的,每一個前面板都有一個框圖程序與之對應。本實例所述數(shù)據(jù)采集和寫入過程包括以下步驟:I)在兩個雷達數(shù)據(jù)采集線程中設置一個整型變量X,用于控制雷達數(shù)據(jù)采集的總的次數(shù);設置一個全局控制變量Y,用于各線程間結(jié)束信息的傳遞;各個線程設置自身的局部控制變量Zi, i=l、2、3、4,4為線程的個數(shù),該局部變量表示其所在線程的運行正確與否;此外負責雷達數(shù)據(jù)采集任務的線程還設置了各自的采集控制變量Qy用于檢測該雷達數(shù)據(jù)采集任務的線程的采集次數(shù),j=l、2,即有2個雷達數(shù)據(jù)采集線程;四種控制變量均有兩個狀態(tài):“T,,、“F,,;2)對整型變量X進行加處理,用于實現(xiàn)各數(shù)據(jù)采集線程的采集次數(shù)分配,具體方法為:對X值加0,I或2,使加處理后的值V能被m整除,商為XX ;將商XX和每個雷達數(shù)據(jù)采集線程的循環(huán)次數(shù)N0C’進行比值運算CO,所述CO規(guī)則為:如果V小于N0C,則該雷達數(shù)據(jù)采集線程的控制信號Su為“F”,如果V大于NOC則該雷達數(shù)據(jù)采集線程的控制信號Su為“T” ;同理加處理后的值V與數(shù)據(jù)寫入線程的循環(huán)次數(shù)NOC進行比值運算CO,比值運算CO運算結(jié)果作為數(shù)據(jù)寫入線程的控制信號S2 ;3)對2個雷達數(shù)據(jù)采集線程的采集控制變量Qj進行布爾“與”運算ΒΑ0,所述BAO規(guī)則為:如果2個采集控制變量全部為“Τ”,則輸出控制信號S3為“Τ”,如果2個采集控制變量至少有一個是“F”,則輸出控制信號S3為“F”,該控制信號作為頭文件數(shù)據(jù)采集和數(shù)據(jù)寫入線程的控制信號;4)各線程 中分別對所述控制信號Su、S2、S3和變量Yji進行布爾“或”運算(B00);所述BOO規(guī)則為:兩個雷達數(shù)據(jù)采集線程中,如果輸入的SuJ和Zi全部為“F”,則該雷達數(shù)據(jù)采集線程輸出控制信號&為“F”,如果輸入的SmY和Zi至少有一個是“T”,則該雷達數(shù)據(jù)采集線程輸出控制信號&為“T”;頭文件采集線程中,如果輸入的S3、Y和Z3全部為“F”,則該頭文件采集線程輸出控制信號S51為“F”,如果輸入的S3、Y和Z3至少有一個是“T”,則該頭文件采集線程輸出控制信號S51為“T” ;數(shù)據(jù)寫入線程中,如果輸入的S2、S3、Y和Z4全部為“F”,則該數(shù)據(jù)寫入線程輸出控制信號S61為“F”,如果輸入的S2、S3、Y和Z4至少有一個是“T”,則該數(shù)據(jù)寫入線程輸出控制信號S61為“T” ;5)各個線程輸出的控制信號(S4j或S51或S61)控制著各自循環(huán)進程(判據(jù)為Fl):如果控制信號為“F”則該線程繼續(xù)運行,并將該控制信號賦值(賦值運算A0)給全局控制變量Y,重復步驟2);如果該線程輸出控制信號為“T”,則將該控制信號賦值給全局控制變量Y,同時對于雷達數(shù)據(jù)采集和頭文件數(shù)據(jù)采集線程運行結(jié)束(End),對數(shù)據(jù)寫入線程則轉(zhuǎn)至步驟6);(所述數(shù)據(jù)寫入進程還包括以下步驟:)6)檢測各數(shù)據(jù)寫入線程中的數(shù)據(jù)是否全部被寫入硬盤(判據(jù)為F2),如果檢測結(jié)果顯示該線程數(shù)據(jù)全部寫入,則該寫入線程運行結(jié)束(End),如果檢測結(jié)果顯示該線程數(shù)據(jù)沒有全部寫入,則該寫入線程繼續(xù)運行,重復步驟2),從而確保采集到的所有數(shù)據(jù)都被存儲起來。
權(quán)利要求
1.一種采集次數(shù)控制模式下的多線程數(shù)據(jù)采集系統(tǒng)同步控制方法,其特征在于,采用多個線程來完成探地數(shù)據(jù)采集中不同的存取任務,該存取任務包括雷達數(shù)據(jù)采集,頭文件數(shù)據(jù)采集和數(shù)據(jù)寫入;多個線程在數(shù)據(jù)采集和寫入過程中各自根據(jù)控制信號以循環(huán)形式相互獨立工作;所述數(shù)據(jù)采集和寫入過程包括以下步驟: 1)在所有雷達數(shù)據(jù)采集線程中設置一個整型變量X,用于控制雷達數(shù)據(jù)采集的總的次數(shù);設置一個全局控制變量Y,用于各線程間結(jié)束信息的傳遞;各個線程設置自身的局部控制變量Zi,i=l、2、".Ρ,P為總線程的個數(shù),該局部變量表示其所在線程的運行正確與否;此外雷達數(shù)據(jù)采集線程還設置各自的采集控制變量Qy用于檢測該雷達數(shù)據(jù)采集線程的采集次數(shù),j為雷達數(shù)據(jù)采集線程的個數(shù),j=l、2、…m,m;四種控制變量均有兩個狀態(tài):“T”、“F,,; 2)對整型變量X進行加處理,用于實現(xiàn)各數(shù)據(jù)采集線程的采集次數(shù)分配,具體方法為:對X值加O,I或2,使加處理后的值V能被m整除,商為XX ;將商XX和每個雷達數(shù)據(jù)采集線程的循環(huán)次數(shù)NO C’進行比值運算CO,所述CO規(guī)則為:如果X’小于NOC,則該雷達數(shù)據(jù)采集線程的控制信號Su為“F”,如果V大于NOC則該雷達數(shù)據(jù)采集線程的控制信號Slj為“T” ;同理加處理后的值V與數(shù)據(jù)寫入線程的循環(huán)次數(shù)NOC進行比值運算CO,比值運算CO運算結(jié)果作為數(shù)據(jù)寫入線程的控制信號S2k,k=l、2、…r,r為數(shù)據(jù)寫入線程的個數(shù); 3)對所有雷達數(shù)據(jù)采集線程各自的采集控制變量進行布爾“與”運算ΒΑ0,所述BAO規(guī)則為:如果所有的采集控制變量Qj全部為“T”,則輸出控制信號S3為“T”,如果所有的采集控制變量至少有一個是“F”,則輸出控制信號S3為“F”,該控制信號作為頭文件數(shù)據(jù)采集和數(shù)據(jù)寫入線程的控制信號; 4)各線程中分別對所述控制信號Su、S2k、S3和變量Y、Zi進行布爾“或”運算(BOO);所述BOO規(guī)則為:各雷達數(shù)據(jù)采集線程中,如果S"、Y和Zi全部為“F”,則該雷達數(shù)據(jù)采集線程輸出控制信號&為“F”,如果輸入的SmY和Zi至少有一個是“T”,則該雷達數(shù)據(jù)采集線程輸出控制信號&為“T” ;各頭文件采集線程中,如果輸入的S3、Y和Zi全部為“F”,則該頭文件采集線程輸出控制信號S5q (q=l、2、…V,V為頭文件采集線程的個數(shù))為“F”,如果輸入的S3、Y和Zi至少有一個是“T”,則該頭文件采集線程輸出控制信號S5q為“T”;各數(shù)據(jù)寫入線程中,如果輸入的S2k、S3、Y和Zi全部為“F”,則該數(shù)據(jù)寫入線程輸出控制信號S6k為“F”,如果輸入的S2k、S3、Y和Zi至少有一個是“T”,則該數(shù)據(jù)寫入線程輸出控制信號S6k為“T”; 5)各個線程輸出的控制信號&或S5q或S6k控制著各自循環(huán)進程(Fl):如果控制信號為“F”則該線程繼續(xù)運行,并將該控制信號賦值(AO)給全局控制變量Y,重復步驟2);如果該線程輸出控制信號為“T”,則將該控制信號賦值給全局控制變量Y,同時對于雷達數(shù)據(jù)采集和頭文件數(shù)據(jù)采集線程運行結(jié)束(End),對數(shù)據(jù)寫入線程則轉(zhuǎn)至步驟6); (所述數(shù)據(jù)寫入進程還包括以下步驟:) 6)檢測各數(shù)據(jù)寫入線程中的數(shù)據(jù)是否全部被寫入硬盤(F2),如果檢測結(jié)果顯示該線程數(shù)據(jù)全部寫入,則該寫入線程運行結(jié)束(End),如果檢測結(jié)果顯示該線程數(shù)據(jù)沒有全部寫入,則該寫入線程繼續(xù)運行,重復步驟2),從而確保采集到的所有數(shù)據(jù)都被存儲起來。
全文摘要
本發(fā)明涉及采集次數(shù)控制模式下的多線程數(shù)據(jù)采集系統(tǒng)同步控制方法,屬于探地雷達的探測技術(shù)領域,本方法包括預先建立一個控制數(shù)據(jù)采集的次數(shù)整型變量,其加處理和除處理后的值分別與其它兩個控制變量一起進行布爾運算并將其結(jié)果作為不同線程的同步控制信號;通過各線程的判據(jù)函數(shù)和控制變量的賦值則實現(xiàn)了該模式下多線程的同步控制;寫入線程預置的判據(jù)函數(shù)實現(xiàn)了對所有采集數(shù)據(jù)的存儲。本發(fā)明基于計算機控制理論,實現(xiàn)了探地雷達多線程采集系統(tǒng)的控制功能。
文檔編號G06F9/38GK103226328SQ20131015003
公開日2013年7月31日 申請日期2013年4月21日 優(yōu)先權(quán)日2013年4月21日
發(fā)明者許獻磊, 胡振琪, 彭猛, 高楊 申請人:中國礦業(yè)大學(北京)