<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

多線(xiàn)程技術(shù)在數據實(shí)時(shí)采集分析中的應用

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

引言

本文引用地址:http://dyxdggzs.com/article/86129.htm

  設備是實(shí)現標準422到自定義轉換的專(zhuān)用。測試系統根據設備的工作原理,輸出422串行數據和自定義的控制信號(YCK,YZM)給數字接口設備,并對其輸出的串行數據(YDATA)進(jìn)行采集、存儲、分析和處理,從而達到對被測設備進(jìn)行檢測的目的。本數字接口測試系統共提供了八個(gè)測試通道,每個(gè)通道的422串行總線(xiàn)和自定義串行總線(xiàn)的相關(guān)參數都可由測試人員通過(guò)應用軟件進(jìn)行設置。為方便對數據進(jìn)行分析,同時(shí)在軟件上約定了發(fā)送的數據格式為:AA xx 01 23 45 67 89 AB CD EF 01 23… 10,其中幀頭為0xAA,幀尾為0x10,xx為發(fā)送計數器值,每發(fā)送一次依次加1。應用軟件通過(guò)相應的算法對自定義串行總線(xiàn)接收數據進(jìn)行實(shí)時(shí)分析和處理,如:已經(jīng)接收的字節數,共接收了多少幀數據,共出錯有多少字節……并將結果在測試界面上動(dòng)態(tài)顯示,測試人員可以根據這些實(shí)時(shí)的測試結果來(lái)判斷被測設備是否正常工作,一旦發(fā)現測試數據誤碼率太高,即可馬上斷電停止測試,防止被測設備燒壞。

系統實(shí)現方案

  數字接口測試系統原理框圖如圖1所示。測試設備通過(guò)2.0總線(xiàn)與操作控制計算機進(jìn)行連接,每臺測試設備提供了八個(gè)通道的數據發(fā)送和接收單元,其中數據發(fā)送單元用于輸出422異步串行數據,其波特率最高可達614.4 kbps,幀長(cháng)可根據測試要求進(jìn)行調整,每幀數據最高循環(huán)發(fā)送幀周期為5ms;數據接收單元用于產(chǎn)生自定義串行總線(xiàn)的控制信號YZM和YCK,并從YDATA讀回數據,YCK和YZM最高分別可達1.6384MHz和25.6kHz。

 

  由于測試過(guò)程中傳輸數據量大,且需要對采集回來(lái)的數據做實(shí)時(shí)分析,因此對數據的實(shí)時(shí)采集和分析采用多線(xiàn)程分別進(jìn)行處理。應用軟件中主界面線(xiàn)程主要負責完成人機界面操作,同時(shí)分別打開(kāi)數據采集和數據分析兩個(gè)線(xiàn)程來(lái)同步協(xié)調工作,為保證數據采集和分析過(guò)程的連續和數據完整,兩個(gè)線(xiàn)程之間通過(guò)開(kāi)辟高速內存緩沖區和內存映射文件的方式來(lái)實(shí)現高速數據流的一、二級緩沖。其中一級緩沖區實(shí)現對總線(xiàn)上傳數據的緩存,用于實(shí)現接收的數據包按照各個(gè)通道進(jìn)行數據分解;二級緩沖則按照通道號將分解輸出的數據分別進(jìn)行暫存,用于數據分析線(xiàn)程實(shí)現數據分析處理。整個(gè)方案中,數據包的上傳、存儲、數據分解、數據分析等操作均是在內存中完成,速度快,正確率高,再加上采用新的線(xiàn)程同步方法,既保證了數據采集線(xiàn)程高速數據吞吐量、數據分析線(xiàn)程的快速響應和實(shí)時(shí)分析,又保證了整個(gè)方案較高的性能和最低的系統開(kāi)銷(xiāo)。數據緩存處理如圖2。

 



數據采集

  為了實(shí)現USB返回數據的保存,在內存中構建了一個(gè)12k的高速內存緩沖區,12k的空間以512字節(一個(gè)USB數據包的大?。閱挝黄骄殖?4等份。多線(xiàn)程同步中常用信號量來(lái)控制訪(fǎng)問(wèn)某一共享資源的線(xiàn)程數,結合操作系統中生產(chǎn)者和消費者的思想可采用擴展信號量的方式來(lái)完成線(xiàn)程同步。數據采集線(xiàn)程操作時(shí),12k高速緩沖區分別用讀寫(xiě)兩個(gè)信號量作為狀態(tài)指示,對數據讀入和輸出進(jìn)行控制。寫(xiě)信號量個(gè)數初始化為24個(gè)(表示有24個(gè)數據區間可寫(xiě)入),讀信號量個(gè)數初始化為0個(gè)(表示有0個(gè)空間有數據需要讀出),數據采集線(xiàn)程等效為生產(chǎn)者,數據分析線(xiàn)程等效為消費者。如圖3所示。USB接口每返回一包數據,首先判斷寫(xiě)信號量個(gè)數,為零則線(xiàn)程阻塞等待,不為零則實(shí)現數據寫(xiě)入操作,將USB數據包內容存入當前生產(chǎn)者指針(pWriteIndex)所指向地址的后512字節緩沖區中,完成后生產(chǎn)者指針加512,寫(xiě)信號量減1,讀信號量加1,這是生產(chǎn)的過(guò)程。當線(xiàn)程切換到數據分析線(xiàn)程后開(kāi)始消費(對采集回來(lái)的數據包分解處理),首先判斷讀信號量個(gè)數,為零(沒(méi)有可消費的)則線(xiàn)程阻塞等待,不為零則由消費者指針(pReadIndex)來(lái)控制讀取一包數據。一包數據讀取完畢后消費者指針加512,讀信號量減1,寫(xiě)信號量加1。由以上分析可知,整個(gè)12k的緩沖區在讀寫(xiě)兩個(gè)信號量的協(xié)調工作下不僅實(shí)現了數據采集和數據分析線(xiàn)程的同步,并且通過(guò)互鎖機制保證了生產(chǎn)者指針和消費者指針不會(huì )指向同一塊內存區域,使整個(gè)系統的可靠性得到顯著(zhù)提高。

數據分析

  由于數字接口測試設備八個(gè)通道可同時(shí)工作,為了區別USB總線(xiàn)上傳的數據包中的數據分別對應哪一個(gè)通道的數據,并滿(mǎn)足數據傳輸的實(shí)時(shí)性要求,每個(gè)通道以64字節為單位將測試數據送入USB接口的內部緩沖區,其第一個(gè)字節用于標識隨后63字節是哪一個(gè)通道的數據,分別用01,02……07,08進(jìn)行標識。當USB接口的內部緩沖區填滿(mǎn)512字節后即通過(guò)USB總線(xiàn)上傳到計算機內存中的高速緩沖區。所以在數據分析時(shí)首先需要從USB數據包中提取每個(gè)通道回傳的測試數據,然后與標準格式數據進(jìn)行對比分析??梢?jiàn)若在長(cháng)時(shí)間測試時(shí),數據分析線(xiàn)程數據處理量大,任務(wù)繁重。為保證整個(gè)系統的實(shí)時(shí)性和數據分析準確性,測試接收回來(lái)的數據按照通道號不同分別保存在不同的內存映射文件中。

  數據分析線(xiàn)程在讀信號量和消費者指針的控制下成功讀取一包數據后,根據通道標示號提取此包中每個(gè)通道的數據,寫(xiě)入對應的內存映射文件中,再調用數據處理函數對每個(gè)通道數據做誤碼分析。誤碼分析的結果可由主界面線(xiàn)程調用顯示。數據分解流程如圖4所示。

 

 
 


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>