• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      流處理數(shù)據(jù)獲取系統(tǒng)中的通用顯示模塊實(shí)現(xiàn)

      2021-04-17 06:09:06汪洪潮楊俊峰王天星孫正陽(yáng)宋克柱
      數(shù)據(jù)采集與處理 2021年2期
      關(guān)鍵詞:數(shù)據(jù)流矩陣節(jié)點(diǎn)

      汪洪潮,楊俊峰,王天星,孫正陽(yáng),宋克柱

      (1.中國(guó)科學(xué)技術(shù)大學(xué)核探測(cè)與核電子學(xué)國(guó)家重點(diǎn)實(shí)驗(yàn)室,合肥230026;2.中國(guó)科學(xué)技術(shù)大學(xué)近代物理系,合肥230026)

      引 言

      數(shù)據(jù)獲取是指將現(xiàn)實(shí)世界中的信號(hào)進(jìn)行采樣以便后續(xù)的傳輸、分析、處理和存儲(chǔ)的過(guò)程。目前數(shù)據(jù)獲取系統(tǒng)已廣泛地應(yīng)用于日常生活、工業(yè)生產(chǎn)以及科學(xué)研究的各個(gè)領(lǐng)域中。一個(gè)典型的數(shù)據(jù)獲取系統(tǒng)由傳感器陣列、數(shù)據(jù)采集設(shè)備和監(jiān)控系統(tǒng)3個(gè)部分組成[1]。

      數(shù)據(jù)顯示單元是監(jiān)控系統(tǒng)中的重要組成部分,操作人員可以通過(guò)數(shù)據(jù)顯示單元對(duì)前端電子學(xué)系統(tǒng)所上傳的數(shù)據(jù)進(jìn)行查看和分析,從而掌握實(shí)驗(yàn)數(shù)據(jù)或?qū)φ麄€(gè)電子學(xué)系統(tǒng)的運(yùn)行狀況進(jìn)行監(jiān)控。

      在過(guò)去的數(shù)據(jù)獲取系統(tǒng)中,針對(duì)不同的顯示需求和數(shù)據(jù)類型,往往會(huì)單獨(dú)設(shè)計(jì)數(shù)據(jù)顯示模塊。例如在大亞灣中微子實(shí)驗(yàn)中搭建了基于Web的遠(yuǎn)程監(jiān)測(cè)軟件,利用直方圖和數(shù)據(jù)表格對(duì)前端電子學(xué)系統(tǒng)的數(shù)據(jù)進(jìn)行顯示,提供狀態(tài)監(jiān)測(cè)、數(shù)據(jù)流監(jiān)測(cè)等功能[2];中國(guó)散裂中子源項(xiàng)目基于Qt設(shè)計(jì)與實(shí)現(xiàn)了高通粉末衍射儀的圖形用戶界面[3];在一個(gè)Blackfin DSP的圖像采集與實(shí)時(shí)顯示系統(tǒng)中其直接利用寫(xiě)液晶顯示器RAM的方法實(shí)現(xiàn)顯示功能[4]。

      上述幾種數(shù)據(jù)獲取系統(tǒng)有著不同的數(shù)據(jù)格式、數(shù)據(jù)接口以及數(shù)據(jù)顯示需求,所以針對(duì)各系統(tǒng)實(shí)現(xiàn)了定制的數(shù)據(jù)顯示模塊,重復(fù)工作較多,且難以實(shí)現(xiàn)系統(tǒng)間的通用。本文在流處理的自研通用數(shù)據(jù)獲取系統(tǒng)框架下,設(shè)計(jì)和實(shí)現(xiàn)一種通用的數(shù)據(jù)顯示模塊。此數(shù)據(jù)顯示模塊相對(duì)獨(dú)立于前端電子學(xué)系統(tǒng),在不同的系統(tǒng)中做一些簡(jiǎn)單配置便可以即插即用,極大減小了系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)的重復(fù)工作量,縮短開(kāi)發(fā)周期。

      1 數(shù)據(jù)顯示模塊簡(jiǎn)介

      通用數(shù)據(jù)顯示模塊的設(shè)計(jì)與實(shí)現(xiàn)基于自研的數(shù)據(jù)獲取架構(gòu)D-Matrix系統(tǒng),此數(shù)據(jù)獲取架構(gòu)下的系統(tǒng)結(jié)構(gòu)如圖1所示,其基本設(shè)計(jì)思想是采用一系列級(jí)聯(lián)的流處理節(jié)點(diǎn)(FPGA實(shí)現(xiàn)或軟件實(shí)現(xiàn))來(lái)構(gòu)建數(shù)據(jù)獲取系統(tǒng)。在系統(tǒng)設(shè)計(jì)階段使用不同的參數(shù)來(lái)描述各個(gè)節(jié)點(diǎn)所在數(shù)據(jù)域的具體屬性,包括數(shù)據(jù)的時(shí)間空間尺度、數(shù)據(jù)內(nèi)容的組織和編碼方式等,在同一個(gè)數(shù)據(jù)域下的流處理節(jié)點(diǎn)之間采用相同的數(shù)據(jù)格式定義和標(biāo)準(zhǔn)的數(shù)據(jù)接口,可以自由地進(jìn)行互連,從而組合出數(shù)據(jù)獲取過(guò)程中需要的各種數(shù)據(jù)處理操作。

      圖1 流處理數(shù)據(jù)獲取系統(tǒng)結(jié)構(gòu)框圖Fig.1 Structure of stream processing DAQ system

      此數(shù)據(jù)獲取架構(gòu)主要面向傳感器陣列由大量相同的傳感器構(gòu)成的數(shù)據(jù)獲取系統(tǒng)。傳感器陣列作為整個(gè)流的數(shù)據(jù)產(chǎn)生節(jié)點(diǎn),上傳的數(shù)據(jù)具有相同的數(shù)據(jù)格式和特點(diǎn),數(shù)據(jù)處理節(jié)點(diǎn)匯聚所有相同的傳感器數(shù)據(jù)形成數(shù)據(jù)流進(jìn)行統(tǒng)一的處理。數(shù)據(jù)以結(jié)構(gòu)相同的數(shù)據(jù)矩陣的格式在節(jié)點(diǎn)間流動(dòng),數(shù)據(jù)矩陣的格式和接口由自研的D-Matrix協(xié)議詳細(xì)、嚴(yán)格規(guī)定,在第2節(jié)有進(jìn)一步的描述?;诖祟悢?shù)據(jù)獲取系統(tǒng)在數(shù)據(jù)組織上的相似性,不同的數(shù)據(jù)獲取系統(tǒng)或數(shù)據(jù)獲取系統(tǒng)中不同層級(jí)的傳感器所輸出的數(shù)據(jù)僅僅在數(shù)據(jù)尺度上不同而在格式上相同,所以可以采用相似的數(shù)據(jù)處理和顯示方法,使得通用數(shù)據(jù)顯示模塊的實(shí)現(xiàn)成為可能。

      在這樣的數(shù)據(jù)獲取系統(tǒng)中,數(shù)據(jù)顯示模塊可以看成一個(gè)只有數(shù)據(jù)流入、沒(méi)有數(shù)據(jù)流出的用于實(shí)現(xiàn)數(shù)據(jù)可視化的通用數(shù)據(jù)處理節(jié)點(diǎn)。只要系統(tǒng)中數(shù)據(jù)處理節(jié)點(diǎn)與數(shù)據(jù)顯示模塊具有相同的數(shù)據(jù)域?qū)傩裕鋽?shù)據(jù)接口模式由已有的數(shù)據(jù)協(xié)議規(guī)定為相同,那么使用相同數(shù)據(jù)接口的數(shù)據(jù)顯示節(jié)點(diǎn)就可以實(shí)現(xiàn)對(duì)任何一個(gè)數(shù)據(jù)處理節(jié)點(diǎn)輸出的數(shù)據(jù)流進(jìn)行顯示,做到即插即用。數(shù)據(jù)顯示模塊內(nèi)部由兩種獨(dú)立的流處理節(jié)點(diǎn)構(gòu)成,分別為數(shù)據(jù)生成節(jié)點(diǎn)和數(shù)據(jù)顯示節(jié)點(diǎn)。

      由于數(shù)據(jù)流中的數(shù)據(jù)有時(shí)不直接用于顯示,所以設(shè)計(jì)了顯示數(shù)據(jù)生成節(jié)點(diǎn)連接數(shù)據(jù)顯示節(jié)點(diǎn)和數(shù)據(jù)處理節(jié)點(diǎn),用于從一般的數(shù)據(jù)流中提取或統(tǒng)計(jì)監(jiān)控人員感興趣的數(shù)據(jù)信息生成顯示數(shù)據(jù)流。顯示數(shù)據(jù)流獨(dú)立于產(chǎn)生顯示數(shù)據(jù)的數(shù)據(jù)流,在系統(tǒng)中作為單獨(dú)的流存在,具備自己的數(shù)據(jù)域相關(guān)屬性。如果需要直接顯示數(shù)據(jù)處理節(jié)點(diǎn)輸出的結(jié)果而不需要任何抽取和統(tǒng)計(jì)的操作,則可以省略數(shù)據(jù)生成節(jié)點(diǎn)。

      數(shù)據(jù)顯示節(jié)點(diǎn)則提供多種不同的數(shù)據(jù)顯示方法。顯示數(shù)據(jù)生成節(jié)點(diǎn)和數(shù)據(jù)顯示節(jié)點(diǎn)分別在第2、3節(jié)有詳細(xì)描述。通過(guò)配置上述兩個(gè)節(jié)點(diǎn)所形成的數(shù)據(jù)顯示模塊可以實(shí)現(xiàn)在不同數(shù)據(jù)獲取系統(tǒng)間或不同的數(shù)據(jù)處理節(jié)點(diǎn)間的通用。

      2 顯示數(shù)據(jù)生成節(jié)點(diǎn)

      為了從一般的數(shù)據(jù)流中獲取顯示所需要的數(shù)據(jù),本文統(tǒng)一了數(shù)據(jù)結(jié)構(gòu)并設(shè)計(jì)了顯示數(shù)據(jù)生成節(jié)點(diǎn)。

      2.1 標(biāo)準(zhǔn)流數(shù)據(jù)幀和數(shù)據(jù)矩陣

      基于第1節(jié)中對(duì)流處理數(shù)據(jù)獲取系統(tǒng)的描述,將所采集的數(shù)據(jù)進(jìn)行抽象概括。普遍地,一個(gè)基本數(shù)據(jù)單元都包含以下的信息:

      (1)數(shù)據(jù)時(shí)間信息。描述數(shù)據(jù)產(chǎn)生時(shí)刻的信息。

      (2)數(shù)據(jù)空間信息。描述數(shù)據(jù)產(chǎn)生的空間信息。理論上,不論實(shí)際的傳感器陣列的空間排列是一維(如單條拖纜中的水聽(tīng)器陣列)、二維(如相機(jī)傳感器中的光傳感器陣列)或三維(如高能物理實(shí)驗(yàn)中的探測(cè)器陣列),都可以用一個(gè)一維的數(shù)組對(duì)所有的傳感器進(jìn)行編號(hào),將高維的空間坐標(biāo)轉(zhuǎn)換成一維空間信息來(lái)進(jìn)行處理。

      (3)數(shù)據(jù)信息。用于記錄某一時(shí)刻某一個(gè)傳感器生成的電信號(hào)經(jīng)數(shù)字化之后的數(shù)據(jù)本身。

      在數(shù)據(jù)處理系統(tǒng)中,某一時(shí)刻某一個(gè)傳感器產(chǎn)生的數(shù)據(jù)可以用時(shí)間-空間-數(shù)據(jù)這樣的三維方式進(jìn)行完全的描述??紤]一個(gè)傳感器陣列在一段時(shí)間內(nèi)連續(xù)工作的情況,其產(chǎn)生的數(shù)據(jù)可以看成是上述最小數(shù)據(jù)單元的合并,此時(shí)用一個(gè)數(shù)據(jù)矩陣可以實(shí)現(xiàn)全部數(shù)據(jù)信息的描述。

      如圖2所示是一般的數(shù)據(jù)矩陣模型,由多個(gè)時(shí)刻、多個(gè)傳感器所生成的數(shù)據(jù)合并而成。節(jié)點(diǎn)間流動(dòng)的數(shù)據(jù)都由一個(gè)具體的數(shù)據(jù)矩陣描述,這樣可以統(tǒng)一所有節(jié)點(diǎn)的數(shù)據(jù)接口。數(shù)據(jù)矩陣的時(shí)間、空間尺度可以根據(jù)數(shù)據(jù)處理節(jié)點(diǎn)的性能和需求進(jìn)行合理、靈活地配置。理論上一個(gè)無(wú)限延伸的數(shù)據(jù)矩陣可以描述一個(gè)數(shù)據(jù)獲取系統(tǒng)持續(xù)工作的狀態(tài)下產(chǎn)生的所有數(shù)據(jù)。

      在D-Matrix架構(gòu)下,各流處理節(jié)點(diǎn)之間傳輸?shù)臉?biāo)準(zhǔn)流數(shù)據(jù)幀是由某個(gè)時(shí)間和空間尺度范圍的數(shù)據(jù)矩陣和對(duì)數(shù)據(jù)矩陣的描述信息構(gòu)成的。根據(jù)數(shù)據(jù)矩陣的稀疏性,在D-Matrix中提供二維數(shù)組和時(shí)間-空間-數(shù)據(jù)三元組兩種方式來(lái)分別描述稠密的數(shù)據(jù)矩陣(如海洋地震勘探數(shù)據(jù)獲取系統(tǒng))和稀疏的數(shù)據(jù)矩陣(如高能物理實(shí)驗(yàn)數(shù)據(jù)獲取系統(tǒng))。

      圖2 數(shù)據(jù)矩陣Fig.2 Data matrix

      2.2 顯示數(shù)據(jù)生成節(jié)點(diǎn)

      根據(jù)2.1節(jié)所描述的數(shù)據(jù)矩陣的特點(diǎn),數(shù)據(jù)矩陣中包含時(shí)間、空間、數(shù)據(jù)3個(gè)維度的信息。數(shù)據(jù)顯示模塊中顯示的信息可能不包含數(shù)據(jù)矩陣中所有維度的信息,顯示的數(shù)據(jù)可能也不是數(shù)據(jù)幅值本身。顯示數(shù)據(jù)生成節(jié)點(diǎn)從數(shù)據(jù)中抽取一定維度的信息,同時(shí)可以進(jìn)行一些常用的數(shù)據(jù)計(jì)算,生成直接用于顯示的數(shù)據(jù)。

      如圖3所示,顯示數(shù)據(jù)生成節(jié)點(diǎn)維護(hù)一個(gè)空間長(zhǎng)度為S、時(shí)間長(zhǎng)度為T的二維矩陣,其大小與其對(duì)應(yīng)的數(shù)據(jù)顯示節(jié)點(diǎn)每次圖表刷新的數(shù)據(jù)尺度相同,此時(shí)間、空間尺度也作為輸入數(shù)據(jù)的過(guò)濾條件。輸入數(shù)據(jù)不需要計(jì)算時(shí),數(shù)據(jù)過(guò)濾部分會(huì)根據(jù)數(shù)據(jù)的時(shí)間、空間坐標(biāo)進(jìn)行過(guò)濾,若數(shù)據(jù)符合條件則將其直接按照時(shí)間、空間坐標(biāo)寫(xiě)入數(shù)據(jù)矩陣相應(yīng)的位置中保存;不符合條件則直接丟棄。節(jié)點(diǎn)提供二操作數(shù)運(yùn)算功能。若輸入數(shù)據(jù)的坐標(biāo)(s,t)符合條件,則根據(jù)坐標(biāo)從數(shù)據(jù)矩陣中讀出上一個(gè)時(shí)間戳的數(shù)據(jù)(s,t-n)進(jìn)行計(jì)算,計(jì)算的方式包括累加、條件計(jì)數(shù)、差分等,并將得到的結(jié)果寫(xiě)到數(shù)據(jù)矩陣的原位置中。

      圖3 顯示數(shù)據(jù)生成節(jié)點(diǎn)Fig.3 Display data generation node

      顯示數(shù)據(jù)生成節(jié)點(diǎn)向數(shù)據(jù)顯示節(jié)點(diǎn)發(fā)送數(shù)據(jù)的模式分為主動(dòng)和被動(dòng)兩種。主動(dòng)發(fā)送模式下,顯示數(shù)據(jù)生成節(jié)點(diǎn)按照一定的時(shí)間間隔將數(shù)據(jù)矩陣中的數(shù)據(jù)主動(dòng)打包發(fā)送給數(shù)據(jù)顯示節(jié)點(diǎn);被動(dòng)發(fā)送模式下,僅當(dāng)數(shù)據(jù)符合一定條件時(shí),例如數(shù)據(jù)矩陣中所有的數(shù)據(jù)都經(jīng)過(guò)至少一次刷新時(shí),數(shù)據(jù)被打包發(fā)送給數(shù)據(jù)顯示節(jié)點(diǎn)。

      這樣的顯示數(shù)據(jù)生成節(jié)點(diǎn),可以實(shí)現(xiàn)前端上傳的數(shù)據(jù)速率或容量與數(shù)據(jù)顯示節(jié)點(diǎn)所需要顯示的數(shù)據(jù)速率和容量的相互獨(dú)立,例如在前端數(shù)據(jù)率過(guò)高時(shí)進(jìn)行數(shù)據(jù)抽取,在前端數(shù)據(jù)零碎時(shí)進(jìn)行數(shù)據(jù)緩沖,以此實(shí)現(xiàn)數(shù)據(jù)顯示節(jié)點(diǎn)對(duì)不同速率、容量的數(shù)據(jù)獲取前端的匹配。

      設(shè)計(jì)中利用FPGA硬件邏輯和C++程序兩種不同的方式實(shí)現(xiàn)了顯示數(shù)據(jù)生成節(jié)點(diǎn),當(dāng)利用FPGA硬件實(shí)現(xiàn)時(shí),此節(jié)點(diǎn)可以對(duì)數(shù)據(jù)流進(jìn)行無(wú)抽取的實(shí)時(shí)處理,處理范圍覆蓋整個(gè)數(shù)據(jù)空間。利用顯示數(shù)據(jù)生成節(jié)點(diǎn),對(duì)于不同的數(shù)據(jù)流輸入,都可以形成一個(gè)有限尺度的二維數(shù)據(jù)流發(fā)送給數(shù)據(jù)顯示節(jié)點(diǎn)。

      3 數(shù)據(jù)顯示節(jié)點(diǎn)的圖形界面設(shè)計(jì)

      根據(jù)第2節(jié)的分析,數(shù)據(jù)顯示節(jié)點(diǎn)的功能是對(duì)一個(gè)時(shí)間、空間尺度為T×S的不斷刷新的有限數(shù)據(jù)矩陣中的數(shù)據(jù)實(shí)現(xiàn)可視化。

      二維數(shù)據(jù)中的信息包括時(shí)間、空間、數(shù)據(jù)幅值3個(gè)維度。因?yàn)閿?shù)據(jù)幅值必須被顯示,在T=1或S=1的情況下,三維數(shù)據(jù)退化為二維,這也是數(shù)據(jù)顯示模塊所面對(duì)的最低數(shù)據(jù)維度。

      在數(shù)據(jù)可視化過(guò)程中,原本被拉伸成一維的空間維度可能重新被折疊成為二維或三維,數(shù)據(jù)顯示模塊所面對(duì)的最高數(shù)據(jù)維度為五維??紤]顯示時(shí)圖表中的最高顯示維度為四維,即3個(gè)空間維度加上顏色維度,所以設(shè)計(jì)以下3種顯示方法。

      3.1 二維數(shù)據(jù)顯示

      此顯示方法適用于時(shí)間尺度T=1或空間尺度S=1的二維數(shù)據(jù)顯示。

      如圖4所示,數(shù)據(jù)顯示節(jié)點(diǎn)提供折線圖、直方圖兩種方式用于顯示二維數(shù)據(jù)。圖表中橫坐標(biāo)被設(shè)定為時(shí)間或空間坐標(biāo),縱坐標(biāo)為數(shù)據(jù)幅值。這種二維顯示方法可以直觀地看到某一通道隨時(shí)間的變化趨勢(shì)或某一時(shí)刻所有通道的數(shù)據(jù)分布。

      圖4 二維數(shù)據(jù)顯示界面Fig.4 Graphic interface for 2-D data

      3.2 三維數(shù)據(jù)顯示

      此方法適用于時(shí)間尺度、空間尺度均不唯一或時(shí)間尺度T=1且空間尺度被再次折疊成二維的三維數(shù)據(jù)顯示。數(shù)據(jù)顯示節(jié)點(diǎn)提供二維熱力圖、多通道折線圖和三維直方圖3種方法顯示三維數(shù)據(jù)(圖5)。

      使用二維熱力圖顯示三維數(shù)據(jù)時(shí),數(shù)據(jù)幅度通過(guò)矩形色塊的顏色形式顯示,色塊顏色與幅值的具體關(guān)系標(biāo)尺在熱力圖右側(cè)。二維熱力圖的兩個(gè)坐標(biāo)軸可被設(shè)置為時(shí)間-空間坐標(biāo),可以清晰地觀察多個(gè)傳感器通道在一定時(shí)間范圍內(nèi)的變化趨勢(shì)。當(dāng)時(shí)間尺度T=1且空間坐標(biāo)被折疊成二維時(shí),二維熱力圖的兩個(gè)坐標(biāo)軸被設(shè)置為兩個(gè)空間坐標(biāo),這種顯示更適用于原傳感器陣列的空間位置分布為二維平面的數(shù)據(jù)獲取系統(tǒng)。其顯示具體效果如圖5(a)所示。類似地,在使用三維直方圖顯示三維數(shù)據(jù)時(shí),三維直方圖的3個(gè)坐標(biāo)軸被設(shè)置為時(shí)間、空間、幅度或空間1、空間2、數(shù)據(jù)幅度,其具體顯示效果如圖5(c)所示。在多通道折線圖中,橫坐標(biāo)被設(shè)置為時(shí)間坐標(biāo),不同的折線圖代表不同的空間位置,顯示效果如圖5(b)所示。多通道折線圖不適用于空間坐標(biāo)折疊的情況。

      圖5 三維數(shù)據(jù)顯示界面Fig.5 Graphic interface for 3-D data

      3.3 四維數(shù)據(jù)顯示

      此方法適用于四維數(shù)據(jù)的顯示,包括:

      (1)空間坐標(biāo)折疊成二維的情況下,時(shí)間-空間1-空間2-數(shù)據(jù)幅值的四維數(shù)據(jù)顯示;

      (2)時(shí)間尺度T=1且空間坐標(biāo)折疊成三維的情況下,空間1-空間2-空間3-數(shù)據(jù)幅值的四維數(shù)據(jù)顯示。

      數(shù)據(jù)顯示節(jié)點(diǎn)提供三維散點(diǎn)圖用于四維數(shù)據(jù)顯示。在一些高能物理實(shí)驗(yàn)中,數(shù)據(jù)幅值用于記錄粒子的軌跡或分布概率,僅用0和1來(lái)表示,可以使用單色三維散點(diǎn)圖來(lái)顯示,三維散點(diǎn)圖的3個(gè)坐標(biāo)軸根據(jù)數(shù)據(jù)被設(shè)置成兩個(gè)空間坐標(biāo)、一個(gè)時(shí)間坐標(biāo)或3個(gè)空間坐標(biāo),顯示效果如圖6所示。需要顯示更多的數(shù)據(jù)幅值時(shí)可以利用散點(diǎn)的顏色維度。當(dāng)數(shù)據(jù)過(guò)于密集時(shí),圖中的散點(diǎn)可能會(huì)相互遮蓋,不利于觀察,此時(shí)盡量采取其他顯示方法。

      圖6 四維數(shù)據(jù)顯示界面Fig.6 Graphic interface for 4-D data

      4 數(shù)據(jù)顯示節(jié)點(diǎn)

      如圖7所示為數(shù)據(jù)顯示節(jié)點(diǎn)的結(jié)構(gòu)及其接口。節(jié)點(diǎn)間通過(guò)消息隊(duì)列和共享內(nèi)存實(shí)現(xiàn)數(shù)據(jù)傳輸,具體的數(shù)據(jù)幀格式由已有的協(xié)議規(guī)定清楚。顯示數(shù)據(jù)生成節(jié)點(diǎn)創(chuàng)建任務(wù)消息隊(duì)列和數(shù)據(jù)共享內(nèi)存,將數(shù)據(jù)流中的數(shù)據(jù)按照特定的數(shù)據(jù)幀格式寫(xiě)入數(shù)據(jù)共享內(nèi)存中,并將數(shù)據(jù)幀的頭地址作為任務(wù)內(nèi)容發(fā)送到任務(wù)消息隊(duì)列中。打開(kāi)數(shù)據(jù)顯示單元后,軟件內(nèi)核按照頭文件中配置好的名稱連接任務(wù)消息隊(duì)列和數(shù)據(jù)共享內(nèi)存。同時(shí)創(chuàng)建任務(wù)獲取線程,啟動(dòng)線程持續(xù)從任務(wù)隊(duì)列中獲取任務(wù)消息,若隊(duì)列中任務(wù)消息數(shù)量為零,線程陷入阻塞等待;若隊(duì)列中存在消息,則立刻從任務(wù)消息中解讀出此數(shù)據(jù)幀的地址信息,交給數(shù)據(jù)顯示主界面,并進(jìn)入下一次任務(wù)等待。

      圖7 數(shù)據(jù)顯示節(jié)點(diǎn)Fig.7 Data display node

      數(shù)據(jù)顯示主界面負(fù)責(zé)讀取數(shù)據(jù)共享內(nèi)存中的數(shù)據(jù)用于圖表的顯示和刷新。數(shù)據(jù)顯示主界面刷新圖表的方式分為被動(dòng)刷新模式和主動(dòng)刷新模式。在被動(dòng)刷新模式下,當(dāng)數(shù)據(jù)顯示主界面收到任務(wù)獲取線程傳來(lái)的數(shù)據(jù)幀地址信息后,立刻按照地址信息讀取數(shù)據(jù)幀數(shù)據(jù),并立刻根據(jù)數(shù)據(jù)刷新顯示圖表,所以圖表刷新的頻率取決于任務(wù)消息到來(lái)的頻率,圖表為被動(dòng)刷新;在主動(dòng)刷新模式下,數(shù)據(jù)顯示主界面會(huì)相應(yīng)地維護(hù)一個(gè)本地用于存放數(shù)據(jù)的數(shù)組,當(dāng)其收到任務(wù)獲取線程傳來(lái)的數(shù)據(jù)幀地址信息后,也會(huì)立刻按照地址信息讀取數(shù)據(jù)幀數(shù)據(jù),但只用于更新本地?cái)?shù)組中的數(shù)據(jù)信息,而不會(huì)立即刷新圖表;同時(shí)軟件會(huì)創(chuàng)建刷新定時(shí)器,利用定時(shí)器定時(shí)發(fā)出刷新信號(hào),控制數(shù)據(jù)顯示主界面根據(jù)本地?cái)?shù)組中的數(shù)據(jù)對(duì)圖表進(jìn)行刷新,此時(shí)圖表的刷新頻率取決于定時(shí)器的配置,圖表為主動(dòng)刷新。

      目前有多種不同的方法可以實(shí)現(xiàn)一個(gè)數(shù)據(jù)獲取系統(tǒng)的顯示模塊,包括基于Qt的實(shí)現(xiàn)方法[5-7]、基于LabView的實(shí)現(xiàn)方法[8-10]以及基于Python的實(shí)現(xiàn)方法等[11]。面向高能物理實(shí)驗(yàn)時(shí),鑒于CERN ROOT軟件包在數(shù)據(jù)處理、存儲(chǔ)、統(tǒng)計(jì)分析和可視化方面的強(qiáng)大功能[12],通?;贑ERN ROOT進(jìn)行開(kāi)發(fā)[13-15]。本文采用在Qt中嵌入CERN ROOT軟件包的方法開(kāi)發(fā)通用數(shù)據(jù)顯示模塊,可以同時(shí)利用二者的優(yōu)點(diǎn)[16-17]。

      5 數(shù)據(jù)顯示模塊應(yīng)用實(shí)例

      圖8是地震數(shù)據(jù)采集系統(tǒng)的結(jié)構(gòu)圖。前端的水聽(tīng)器陣列的輸出信號(hào)被ADC轉(zhuǎn)換成數(shù)字信號(hào),再由數(shù)據(jù)合并節(jié)點(diǎn)將零碎的數(shù)據(jù)合并成數(shù)據(jù)矩陣上傳[18]。根據(jù)深海地震拖纜的結(jié)構(gòu)特點(diǎn)和對(duì)數(shù)據(jù)顯示的需求,將其數(shù)據(jù)顯示部分劃分為以下4個(gè)數(shù)據(jù)顯示模塊,都可以通過(guò)配置前文所述的數(shù)據(jù)顯示模塊來(lái)實(shí)現(xiàn)。

      圖8 地震數(shù)據(jù)采集系統(tǒng)結(jié)構(gòu)Fig.8 Structure of seismic DAQ system

      (1)振子數(shù)據(jù)顯示節(jié)點(diǎn)

      由顯示數(shù)據(jù)生成節(jié)點(diǎn)配置實(shí)現(xiàn)了振子數(shù)據(jù)抽取節(jié)點(diǎn),其創(chuàng)建并維護(hù)一個(gè)時(shí)間尺度為1,空間尺度為2 400的數(shù)據(jù)矩陣,對(duì)數(shù)據(jù)矩陣中的數(shù)據(jù)持續(xù)刷新,在命令流的控制下以0.125 s的間隔將數(shù)據(jù)矩陣中的全部數(shù)據(jù)打包發(fā)送給振子數(shù)據(jù)顯示矩陣,用于持續(xù)監(jiān)控每個(gè)通道的工作狀態(tài)。由于數(shù)據(jù)矩陣中時(shí)間尺度為1,所以這是一個(gè)典型的二維數(shù)據(jù)顯示,利用3.1節(jié)中描述的二維直方圖可以進(jìn)行振子數(shù)據(jù)顯示,其顯示效果如圖9(a)所示。

      (2)地震數(shù)據(jù)顯示節(jié)點(diǎn)

      由顯示數(shù)據(jù)生成節(jié)點(diǎn)配置實(shí)現(xiàn)了地震數(shù)據(jù)截取節(jié)點(diǎn),其創(chuàng)建并維護(hù)一個(gè)時(shí)間尺度為16 384、空間尺度為2 400的數(shù)據(jù)矩陣,即可以存放地震波生成之后8 s內(nèi)2 400個(gè)通道產(chǎn)生的所有數(shù)據(jù),并將其傳輸給地震數(shù)據(jù)顯示節(jié)點(diǎn)進(jìn)行顯示,地震數(shù)據(jù)同時(shí)也流向FFT節(jié)點(diǎn)進(jìn)行快速傅里葉變換。這是一個(gè)三維數(shù)據(jù)顯示,利用3.2節(jié)中的多通道折線圖可以實(shí)現(xiàn)地震數(shù)據(jù)顯示,效果如圖9(b)所示。

      圖9 地震數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)顯示節(jié)點(diǎn)Fig.9 Data display node for seismic DAQ system

      (3)頻域數(shù)據(jù)顯示節(jié)點(diǎn)

      頻域數(shù)據(jù)顯示節(jié)點(diǎn)會(huì)對(duì)前端生成的頻域數(shù)據(jù)進(jìn)行全部顯示,故不需要顯示數(shù)據(jù)生成節(jié)點(diǎn)。頻域數(shù)據(jù)顯示節(jié)點(diǎn)面對(duì)的數(shù)據(jù)維度是頻率-空間-數(shù)據(jù)幅值3個(gè)維度,利用3.2節(jié)中的多通道折線圖可以完成對(duì)多個(gè)通道的頻域數(shù)據(jù)顯示。

      (4)測(cè)試結(jié)果顯示節(jié)點(diǎn)

      與頻域數(shù)據(jù)顯示節(jié)點(diǎn)相同,測(cè)試結(jié)果顯示節(jié)點(diǎn)對(duì)前端生成的所有測(cè)試結(jié)果數(shù)據(jù)進(jìn)行顯示,不需要顯示數(shù)據(jù)生成節(jié)點(diǎn)。測(cè)試結(jié)果生成節(jié)點(diǎn)獲得通道的頻域數(shù)據(jù)后進(jìn)行計(jì)算并得到通道的IQC(Instrument quality control)測(cè)試結(jié)果,包括系統(tǒng)噪聲、串?dāng)_系數(shù)、檢波器噪聲等,輸出給測(cè)試結(jié)果顯示節(jié)點(diǎn)進(jìn)行顯示。由于對(duì)于一次IQC測(cè)試,每個(gè)通道僅有一個(gè)數(shù)據(jù)幅值用于記錄測(cè)試結(jié)果,所以測(cè)試結(jié)果生成節(jié)點(diǎn)僅需維護(hù)一個(gè)時(shí)間尺度為1、空間尺度為2 400的數(shù)據(jù)矩陣,用于記錄每個(gè)數(shù)據(jù)通道的測(cè)試結(jié)果,并發(fā)送給測(cè)試結(jié)果顯示節(jié)點(diǎn)。這是二維數(shù)據(jù)顯示,利用3.1節(jié)中的二維直方圖可以實(shí)現(xiàn)測(cè)試結(jié)果顯示。

      本文對(duì)數(shù)據(jù)顯示節(jié)點(diǎn)進(jìn)行了軟件性能測(cè)試。在測(cè)試環(huán)境(CPU:酷睿i7-7700k,內(nèi)存:16 GB,無(wú)獨(dú)立顯卡,系統(tǒng)為ubuntu18.04)中,振子數(shù)據(jù)顯示節(jié)點(diǎn)可以同時(shí)顯示全部2 400道振子數(shù)據(jù),此時(shí)幀數(shù)據(jù)文件較小,約為9.4 KB,此時(shí)圖表能夠以50幀/s刷新速率流暢運(yùn)行和縮放,數(shù)據(jù)量約為470 KB/s。在這種每幀數(shù)據(jù)率較小的情況下,圖表能夠維持很高的刷新速率,超過(guò)監(jiān)控人員肉眼能夠觀察的極限。地震數(shù)據(jù)顯示節(jié)點(diǎn)可以對(duì)每條拖纜中2 400個(gè)通道、16 384個(gè)時(shí)間點(diǎn)的數(shù)據(jù)進(jìn)行顯示,同時(shí)最多顯示4條拖纜的實(shí)時(shí)數(shù)據(jù),此時(shí)幀數(shù)據(jù)文件較大,約為600 MB。在這種幀數(shù)據(jù)文件較大的情況下,節(jié)點(diǎn)能夠以每次8 s的速率流暢刷新,平均每秒數(shù)據(jù)達(dá)到75 MB。兩個(gè)節(jié)點(diǎn)均可以穩(wěn)定運(yùn)行10 h以上,完全可以滿足項(xiàng)目需求。通過(guò)配置通用數(shù)據(jù)顯示模塊所構(gòu)建的振子數(shù)據(jù)顯示節(jié)點(diǎn)和地震數(shù)據(jù)顯示節(jié)點(diǎn),證明此數(shù)據(jù)顯示模塊在大數(shù)據(jù)文件和高刷新速率兩個(gè)相對(duì)極端的情況下都能夠?qū)崿F(xiàn)所需要的功能,可以在一定程度上證明其通用性。

      6 結(jié)束語(yǔ)

      本文分析了不同的數(shù)據(jù)獲取系統(tǒng)中對(duì)數(shù)據(jù)顯示單元的普遍需求,提出了在流處理的數(shù)據(jù)獲取系統(tǒng)中實(shí)現(xiàn)相對(duì)通用的數(shù)據(jù)顯示單元的方法,設(shè)計(jì)了通用的數(shù)據(jù)顯示模塊及與其他節(jié)點(diǎn)的接口結(jié)構(gòu),并在深海地震拖纜的項(xiàng)目背景下對(duì)其進(jìn)行了實(shí)現(xiàn)和測(cè)試,數(shù)據(jù)顯示模塊顯示清楚,運(yùn)行穩(wěn)定可靠,刷新速率高,可擴(kuò)展性強(qiáng),證明了所提出方法的切實(shí)可行。

      基于文中描述的方法針對(duì)深海地震拖纜項(xiàng)目開(kāi)發(fā)的顯示單元將在此項(xiàng)目后續(xù)的聯(lián)調(diào)測(cè)試中使用,同時(shí)將針對(duì)實(shí)測(cè)聯(lián)調(diào)中出現(xiàn)的問(wèn)題持續(xù)地進(jìn)行改進(jìn)和完善。此方法能夠廣泛地應(yīng)用于其他不同的數(shù)據(jù)獲取系統(tǒng)中,諸如多個(gè)高能物理實(shí)驗(yàn)的數(shù)據(jù)顯示中,具有較強(qiáng)的通用性,能夠極大地減小不同的數(shù)據(jù)獲取系統(tǒng)顯示單元的開(kāi)發(fā)周期,減輕工作量。

      猜你喜歡
      數(shù)據(jù)流矩陣節(jié)點(diǎn)
      CM節(jié)點(diǎn)控制在船舶上的應(yīng)用
      Analysis of the characteristics of electronic equipment usage distance for common users
      基于AutoCAD的門窗節(jié)點(diǎn)圖快速構(gòu)建
      汽車維修數(shù)據(jù)流基礎(chǔ)(下)
      一種提高TCP與UDP數(shù)據(jù)流公平性的擁塞控制機(jī)制
      初等行變換與初等列變換并用求逆矩陣
      基于數(shù)據(jù)流聚類的多目標(biāo)跟蹤算法
      抓住人才培養(yǎng)的關(guān)鍵節(jié)點(diǎn)
      矩陣
      南都周刊(2015年4期)2015-09-10 07:22:44
      矩陣
      南都周刊(2015年3期)2015-09-10 07:22:44
      雅江县| 江津市| 讷河市| 农安县| 巴林左旗| 芜湖县| 临澧县| 宜宾市| 塘沽区| 榆社县| 庆元县| 诏安县| 南昌市| 永春县| 郸城县| 那曲县| 甘泉县| 堆龙德庆县| 华坪县| 兴文县| 密山市| 孟连| 开江县| 财经| 尖扎县| 勐海县| 聊城市| 政和县| 清苑县| 甘泉县| 杭州市| 凤山市| 娄烦县| 双桥区| 霍林郭勒市| 贺兰县| 龙山县| 寿光市| 伽师县| 光泽县| 许昌县|