新聞中心

EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > 多線程技術(shù)在數(shù)據(jù)實時采集分析中的應(yīng)用

多線程技術(shù)在數(shù)據(jù)實時采集分析中的應(yīng)用

作者:電子科技大學(xué)自動化工程學(xué)院 何佳委 李力 王厚軍 時間:2008-07-23 來源:中電網(wǎng) 收藏

  為了保證測試效率和數(shù)據(jù)處理的正確性,pWriteCounter既用于控制內(nèi)存映射文件寫入數(shù)據(jù)指針的移動,也用于判斷已接收的數(shù)據(jù)字節(jié)數(shù),作為數(shù)據(jù)處理時讀內(nèi)存映射文件指針的參考和是否開始對數(shù)據(jù)進行分析的條件。數(shù)據(jù)處理時,并不是內(nèi)存映射文件中寫入數(shù)據(jù)后就馬上開始分析,而是根據(jù)pWriteCounter確定已接收的數(shù)據(jù)字節(jié)數(shù),直到接收回來大于一個標(biāo)準(zhǔn)幀長度的數(shù)據(jù)后才開始對此幀數(shù)據(jù)的誤碼率分析,這樣既避免了多次分析一幀數(shù)據(jù),又保證了數(shù)據(jù)分析的正確性,而且減少了數(shù)據(jù)分析線程獨占CPU的時間。從最終實際運行結(jié)果來看,此方法有效解決了數(shù)據(jù)實時采集過程中掉數(shù)據(jù)的問題。

本文引用地址:http://butianyuan.cn/article/86129.htm

  數(shù)據(jù)經(jīng)分解寫入對應(yīng)通道內(nèi)存映射文件后,還需要實時地將每個通道接收回來的測試數(shù)據(jù)和標(biāo)準(zhǔn)數(shù)據(jù)進行對比分析,并以誤碼率形式進行顯示,測試人員根據(jù)實時變化的誤碼率即可監(jiān)測設(shè)備是否工作正常。數(shù)據(jù)分析處理流程如圖5所示。在實際使用中,設(shè)備可能出現(xiàn)的故障現(xiàn)象較多,采集接收回來的數(shù)據(jù)量相當(dāng)大且數(shù)據(jù)出錯情況各不相同,不能誤判或漏掉任何一種情況,通過反復(fù)測試得出以下對固定格式數(shù)據(jù)處理的方法:

 

  ①從每個通道的內(nèi)存映射文件中逐個字節(jié)掃描幀頭0xAA,一旦檢測到幀頭0xAA,進入第②步。

 ?、谑紫扰袛啻藥瑪?shù)據(jù)的幀尾位置是否為0x10,以及幀尾的前一個數(shù)據(jù)和對應(yīng)的標(biāo)準(zhǔn)數(shù)據(jù)(標(biāo)準(zhǔn)數(shù)據(jù)幀尾的前一個數(shù))是否相同,若同時滿足這兩個條件,說明此幀數(shù)據(jù)為標(biāo)準(zhǔn)幀(此幀數(shù)據(jù)長度和發(fā)送的標(biāo)準(zhǔn)幀幀長度相等),若不滿足進行第④步操作。

  ③判斷此幀為標(biāo)準(zhǔn)幀后,從此幀數(shù)據(jù)和標(biāo)準(zhǔn)數(shù)據(jù)的第二位開始到幀尾一一進行對比判斷(跳過第0個幀頭數(shù)據(jù)和第1個計數(shù)器數(shù)據(jù)),不相等則記錄出錯,每發(fā)現(xiàn)一處錯誤字節(jié),錯誤字節(jié)數(shù)加1。進入第⑥步。

 ?、軓膸^到幀長度數(shù)據(jù)范圍內(nèi)查找是否出現(xiàn)0xAA,出現(xiàn)0xAA,首先用第②步操作判斷此0xAA是否為下一幀數(shù)據(jù)的幀頭,若是下一幀數(shù)據(jù)幀頭,記錄幀頭前一個字節(jié)為此幀幀尾位置,說明此幀數(shù)據(jù)有掉數(shù)據(jù)現(xiàn)象,否則為錯誤數(shù)據(jù),調(diào)用非標(biāo)準(zhǔn)幀處理。

 ?、輳拇藥瑪?shù)據(jù)和標(biāo)準(zhǔn)數(shù)據(jù)的第二位開始到確定的該幀長度范圍內(nèi)數(shù)據(jù)進行一一對比判斷 (跳過第0個幀頭數(shù)據(jù)和第1個計數(shù)器數(shù)據(jù)),不相等則記錄出錯,并判斷為錯誤一個字節(jié)。

 ?、迿z查該幀中計數(shù)器數(shù)據(jù)與前后幀的計數(shù)器數(shù)據(jù)是否連續(xù),如果連續(xù)則沒有幀出錯,否則有掉幀現(xiàn)象出現(xiàn),需要根據(jù)前后計數(shù)器數(shù)據(jù)確定掉幀的長度,并轉(zhuǎn)化為對應(yīng)錯誤字節(jié)數(shù)。

  同時接上兩個被測設(shè)備驗證整個系統(tǒng)的性能,即使每個通道均選擇工作在最高波特率614.4 kbps和最高循環(huán)發(fā)送幀周期5ms下,仍能保證數(shù)據(jù)采集實時高速、數(shù)據(jù)質(zhì)量穩(wěn)定且誤碼率低。

結(jié)束語

  實時測試與結(jié)果顯示如圖6所示。該技術(shù)已經(jīng)成功應(yīng)用于某設(shè)備的檢測與維修系統(tǒng),取得了良好的效果。經(jīng)大量測試驗證,此種多線程、內(nèi)存映射文件和兩級緩沖的方法在高速實時數(shù)據(jù)采集和分析中效果很好。根據(jù)生產(chǎn)者和消費者的思想建立的讀寫信號量有效地實現(xiàn)了采集和分析線程間的同步,內(nèi)存映射文件的大小在開始測試前申請為100M,當(dāng)需要更長時間測試時還可以動態(tài)申請開辟新的內(nèi)存空間,既保證了系統(tǒng)的實時性要求,又有效節(jié)約了系統(tǒng)內(nèi)存資源。

 

 


上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉