• 
    

    
    

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

      基于PCI1716的CBS系統(tǒng)數(shù)據(jù)采集與處理方案的設計

      2013-09-08 10:18:46劉偉豪陳嘉敏沈天明尤曉明
      計算機工程與設計 2013年6期
      關(guān)鍵詞:采集卡緩沖區(qū)線程

      劉偉豪,陳嘉敏,沈天明,尤曉明

      (公安部第三研究所,上海201204)

      0 引 言

      X射線數(shù)字輻射成像技術(shù)結(jié)合X射線探測技術(shù)和計算機技術(shù)在無損狀態(tài)下獲得被檢測物的輻射投影圖像。該技術(shù)已廣泛應用于無損檢測及安檢等領(lǐng)域。其中透射式成像技術(shù)應用已經(jīng)比較成熟,能準確提取被檢物的等效原子系數(shù)來得到投影方向的二維密度信息。X射線康普頓背向散射 (CBS)成像技術(shù)通過測量康普頓散射光子的強度得到被測物體內(nèi)三維空間中某點的電子密度信息。背散技術(shù)除了具有輻射劑量低特點外,它對低原子系數(shù)的物質(zhì)很敏感,特別適合對毒品、爆炸物等物品的探測,能夠在反恐、禁毒和安檢等領(lǐng)域發(fā)揮重要作用。為此我們開發(fā)出了一套X射線背散射 (CBS)違禁品檢查系統(tǒng),主用來檢查個人攜帶的行李物品。

      在CBS系統(tǒng)工作過程中,對待檢物品逐掃描的同時,需要進行數(shù)據(jù)的采集、傳輸、處理和實時成像顯示,即邊掃描邊成像顯示。與一般實時數(shù)據(jù)采集系統(tǒng)相比,本數(shù)據(jù)采集與處理系統(tǒng)的特點主要有:數(shù)據(jù)的實時采集、傳輸、部分數(shù)據(jù)處理、成像顯示和刷新是同步進行的;數(shù)據(jù)采集與處理基于Windows非實時操作系統(tǒng)。

      CBS系統(tǒng)數(shù)據(jù)采集的這些特殊性,給設計一個高效可靠的數(shù)據(jù)采集與處理系統(tǒng)帶來了難度。目前普遍采用的方法是設計專用的數(shù)據(jù)采集硬件,但該方法也存在著一些不足,為此系統(tǒng)中采用了另外一種數(shù)據(jù)實時采集與處理的方法,在硬件上不用開發(fā)專用的采集卡,而是使用通用數(shù)據(jù)采集卡,并結(jié)合一些軟件技術(shù),實現(xiàn)CBS安檢系統(tǒng)的實時數(shù)據(jù)采集和處理。與其它高速數(shù)據(jù)采集設計方法相比,本方案具有開發(fā)周期短、可靠性高、成本低、通用性高和擴展性強等優(yōu)點。

      1 系統(tǒng)總體結(jié)構(gòu)與分析

      1.1 系統(tǒng)總體結(jié)構(gòu)

      X射線背向散射成像違禁品檢查系統(tǒng)的基本構(gòu)造主要包括X射線背散射探測模塊、傳送帶機構(gòu)、模擬信號處理電路、系統(tǒng)控制模塊、計算機信號采集與處理以及成像顯示等部分組成。其模型如圖1所示。

      圖1 X射線CBS違禁品探測系統(tǒng)模型

      X射線周期性掃描被檢查物體,被檢物在傳送帶上沿垂直于X射線束掃描方向平移,探測器同步測量各部位產(chǎn)生背散射線的強度,并將測得信號按時序排列,經(jīng)后端核電子學電路處理后輸出給數(shù)據(jù)采集卡,經(jīng)過A/D轉(zhuǎn)換后將數(shù)字化的數(shù)據(jù)傳送到計算機,進行一系列處理后就可得到被檢物的二維背散射數(shù)字圖像。計算機主要功能是負責數(shù)據(jù)的傳輸、處理、成像顯示和系統(tǒng)控制等工作。

      1.2 系統(tǒng)對數(shù)據(jù)采集的要求

      系統(tǒng)在工作過程中對物體掃描的同時采集背散射信號,在完成一定行的掃描后,實時地將采集的背散信號作必要處理后成像顯示在屏幕上。系統(tǒng)對數(shù)據(jù)采集有以下要求:

      (1)每行數(shù)據(jù)掃描間隔為10ms,每個掃描行采樣2048個數(shù)據(jù)點,數(shù)據(jù)采樣率為200KHZ;

      (2)行數(shù)據(jù)的采樣必須與行同步信號在時序上嚴格同步,同步信號之后開始數(shù)據(jù)采樣,下一個同步信號之前必須完成本數(shù)據(jù)行的采樣;

      (3)每完成一行的數(shù)據(jù)采集后,必須對采樣的數(shù)據(jù)進行必要的處理并實時成像顯示,數(shù)據(jù)采樣和處理、成像顯示是同時進行的。

      由此可見系統(tǒng)對數(shù)據(jù)采樣的實時性要求較高,特別是要做到在Windows環(huán)境下實現(xiàn)同步數(shù)據(jù)采樣、處理和顯示并保證采樣數(shù)據(jù)的完整性和正確性,對數(shù)據(jù)采集與處理的設計提出了很高的要求。

      1.3 系統(tǒng)數(shù)據(jù)采集的設計方式

      目前對于類似于CBS這類設備的數(shù)據(jù)采集與處理有多種設計方式。文獻 [1]中采用PC+FPGA的系統(tǒng)架構(gòu),利用FPGA進行數(shù)據(jù)采集,數(shù)據(jù)通過串口傳輸?shù)絇C。文獻[2-4]中則是采用ARM+FPGA的方式,F(xiàn)PGA實現(xiàn)系統(tǒng)數(shù)據(jù)采集。文獻 [5]中采用基于PCI總線方式,利用PCI專用控制芯片S5933和CPLD電路實現(xiàn)了工業(yè)CT多通道數(shù)據(jù)采集與傳輸。

      上述數(shù)據(jù)采集方案優(yōu)點是可以根據(jù)功能需要進行定制,可將某些數(shù)據(jù)處理的功能在電路中完成,簡化數(shù)據(jù)采集和處理的軟件設計,系統(tǒng)實時性好。但開發(fā)周期長,通用性不強、成本較高,特別是在電路的設計與調(diào)試、底層驅(qū)動程序的編寫與調(diào)試等方面要耗費較多的人力物力,而且可靠性上需要經(jīng)過長期檢驗。

      為此在CBS安檢系統(tǒng)的數(shù)據(jù)采集和處理的設計中采用了另外一種方式:Windows系統(tǒng)下通用數(shù)據(jù)采集卡+PC機形式。該方式開發(fā)周期短、成本低、擴展性強、可靠性高。但由于數(shù)據(jù)的處理成像需由應用程序完成,會增加系統(tǒng)軟件設計的復雜度。

      具體實現(xiàn)中選用Advantech(研華)公司高速數(shù)據(jù)采集卡PCI-1716,該采集卡有16個通道模擬量輸入,采樣速率可達250KS/s,采樣分辨率16bits。支持3種觸發(fā)方式進行A/D轉(zhuǎn)換:軟件觸發(fā)、內(nèi)部定時觸發(fā)、外部觸發(fā)。支持32位PCI總線控制的DMA數(shù)據(jù)傳輸。每個通道均內(nèi)嵌2K FIFO高速同步緩存,可實現(xiàn)更快速的數(shù)據(jù)轉(zhuǎn)換。

      2 系統(tǒng)數(shù)據(jù)采集與處理方案的設計

      數(shù)據(jù)的高速實時采集對數(shù)據(jù)采集卡有很高的要求,但僅有高性能的硬件還遠遠不夠,必須設計高效合理的數(shù)據(jù)采集硬件和軟件實施方案。首先要從硬件上保證數(shù)據(jù)采樣的連續(xù)性和完整性;而采集卡實時采集的數(shù)據(jù)如不能及時取走也會造成數(shù)據(jù)丟失,必須有高效的軟件措施盡量避免采樣數(shù)據(jù)的丟失。因此要達到系統(tǒng)對數(shù)據(jù)采集的要求需要從兩個方面入手:數(shù)據(jù)采集硬件措施和軟件實施方案。

      X射線CBS系統(tǒng)中的模擬信號處理模塊接收背散信號探測器的信號,經(jīng)處理后進入PCI1716的A/D轉(zhuǎn)換器進行高速模數(shù)轉(zhuǎn)換。轉(zhuǎn)換數(shù)據(jù)首先暫存在板載2K字節(jié)的FIFO中。當FIFO半滿或全滿時,向DMA控制器發(fā)送DMA請求,使用直接內(nèi)存存取方式經(jīng)PCI總線將數(shù)據(jù)從FIFO傳送到采樣緩沖區(qū)。

      采樣緩沖區(qū)和傳輸緩沖區(qū)是用戶程序分配給驅(qū)動程序使用的內(nèi)存區(qū)。采樣緩存存放的是從FIFO傳來的原始值,傳輸緩存存放經(jīng)轉(zhuǎn)換后的電壓值。PCI-1716的循環(huán)方式可進行長時間高速數(shù)據(jù)采集,一次采樣過程能進行多次的A/D轉(zhuǎn)換。內(nèi)部緩存分為前后相等的兩個半?yún)^(qū)使用。

      2.1 常規(guī)的數(shù)據(jù)采集方案

      結(jié)合系統(tǒng)對數(shù)據(jù)采樣的要求和數(shù)據(jù)采集卡的特點,常規(guī)的據(jù)采集方案 (開發(fā)過程中采用的第一個方案)如下:觸發(fā)方式——定時觸發(fā) (pacer觸發(fā));A/D轉(zhuǎn)換時鐘——內(nèi)部時鐘;觸發(fā)源——外部觸發(fā);采樣方式——非循環(huán)采樣。

      接收的X射線背散射信號輸入到PCI-1716的一個模擬輸入端口進行A/D轉(zhuǎn)換,數(shù)據(jù)的采集采用外部觸發(fā)模式,由行同步信號發(fā)生器產(chǎn)生行同步信號作為外部觸發(fā)信號,每個外部觸發(fā)脈沖上升延開始進行數(shù)據(jù)的A/D轉(zhuǎn)換,每行采樣2048個數(shù)據(jù)后A/D轉(zhuǎn)換停止,并對當前采樣的行數(shù)據(jù)進行處理和成像顯示,同時等待下一個觸發(fā)信號的產(chǎn)生,進行下一行數(shù)據(jù)的A/D轉(zhuǎn)換和處理。

      2.1.1 數(shù)據(jù)采集過程中遇到的問題

      上述常規(guī)數(shù)據(jù)采集方案實現(xiàn)簡單,不需要額外的輔助硬件。但對實時性和連續(xù)性要求很高的CBS系統(tǒng)來說,會產(chǎn)生較嚴重的數(shù)據(jù)丟行和錯位問題。

      (1)數(shù)據(jù)錯位:例如圖2是采用該方案采集數(shù)據(jù)經(jīng)常出現(xiàn)的問題,即數(shù)據(jù)錯位現(xiàn)象。該圖是對一規(guī)則方形木塊進行掃描采樣得到的背散數(shù)據(jù)成像圖,白色條形區(qū)域是木塊背散成像區(qū),該成像區(qū)應該具有整齊的邊緣,但圖中白色圓圈處卻出現(xiàn)了異常。從后兩個白圈中可以看到有一掃描行數(shù)據(jù)出現(xiàn)了錯位,該行的木塊采樣數(shù)據(jù)出現(xiàn)在白色木塊區(qū)域的上方,第1個白圈的情況則相反。

      圖2 采樣圖像的數(shù)據(jù)錯位

      (2)數(shù)據(jù)丟行:數(shù)據(jù)采集時發(fā)生數(shù)據(jù)丟行的現(xiàn)象不易直接觀測到,為了對數(shù)據(jù)丟行情況進行檢測,在實驗中對設備作必要改動:對周期性產(chǎn)生的行同步信號系列中,將第4n(n為正整數(shù))個行同步信號所在的掃描期內(nèi)的X射線強度人為減弱,其它同步周期內(nèi)X射線強度不變,這樣每四條掃描線中就有一行暗掃描線,形成規(guī)則的明暗相間條紋,即兩條暗掃描線之間有三條正常掃描線。但發(fā)生采樣數(shù)據(jù)丟行時這種規(guī)則的條紋會被打亂。下面以一個實驗作說明。

      圖3兩幅圖片中右上角子圖是經(jīng)上述改動后的掃描數(shù)據(jù)成像全局視圖,圖中白線左邊部分是規(guī)則的明暗相間條紋,而白線右邊部分的條紋則出現(xiàn)了紊亂。為觀察其中的細節(jié),將全局圖中白線左邊白色小區(qū)域在photoshop中放大得到圖3上圖。從上圖可看出,黑色掃描線等間隔出現(xiàn),即每4列出現(xiàn)一次,對應于第4n個行同步信號的掃描線。同樣將全局圖右邊白色區(qū)域放大得到圖3下圖。與上圖相比,下圖中暗掃描線出現(xiàn)的間隔顯得雜亂無章,如前兩條暗線之間只間隔2條線,表明在4個行同步信號的采樣過程中有一行數(shù)據(jù)丟失了。而第3和第4條線之間則相隔了5條線,說明在采樣時至少有一條暗線所對應的掃描數(shù)據(jù)行丟失了。

      圖3 采樣圖像的數(shù)據(jù)丟行

      2.1.2 產(chǎn)生數(shù)據(jù)丟行和錯位原因分析

      產(chǎn)生上述兩種問題的原因主要是由于采集卡功能上的限制及數(shù)據(jù)采集方案的缺陷造成的。

      在本系統(tǒng)中要求數(shù)據(jù)的采樣和行同步信號嚴格同步,每個同步信號來臨后啟動數(shù)據(jù)采樣,下一個同步來臨前要完成指定數(shù)據(jù)量的采樣,并要留出一定時間完成A/D轉(zhuǎn)換操作,如圖4所示。

      圖4 數(shù)據(jù)采樣的時序要求

      圖4中TL:同步信號開始到采樣啟動的間隔;TC:本行數(shù)據(jù)采樣結(jié)束到下一同步來臨之前時間間隔;為保證數(shù)據(jù)采樣的連續(xù)性和完整性,對時間TC和TL的要求是:

      TC>0:以保證在下一同步來臨前完成本行數(shù)據(jù)的采樣并留出時間準備下次采樣。如果在第n+1個同步進來時第n個同步信號的采樣還未完成,采集卡將不響應第n+1個同步信號,造成數(shù)據(jù)行丟失。

      TL:每行采樣的TL值應該盡可能相等,否則會使各行數(shù)據(jù)采樣的起始位置不同,造成采樣物的邊緣參差不齊,嚴重時造成明顯的數(shù)據(jù)錯位。

      常規(guī)的數(shù)據(jù)采集方案的問題在于,由于采集卡功能的限制,每個同步信號采樣完指定量的數(shù)據(jù)后,再進行下個同步信號的數(shù)據(jù)采集時,需要對采集卡進行軟件復位。因為軟件復位要受到系統(tǒng)線程調(diào)度的制約,使軟件對采集卡復位到真正開始采樣的時間間隔TL具有不確定性,如圖5所示。

      圖5 常規(guī)數(shù)據(jù)采集方案的采樣時序

      TL的不確定不能保證一個行同步信號周期內(nèi)完成一行數(shù)據(jù)采樣,使得下個同步信號的采樣被忽略,造成采樣數(shù)據(jù)行丟失。嚴重的數(shù)據(jù)行丟失會造成掃描圖像的顯著失真,影響圖像的后續(xù)處理。如圖8中兩幅圖像為同一物體在相同掃描速度下的成像圖,由于存在不確定性的掃描行丟失,結(jié)果在數(shù)據(jù)行丟失嚴重時物體成像寬度明顯偏小。同時TL的不確定也使物體成像邊緣不齊,形成 “毛邊”現(xiàn)象。

      2.2 改進的數(shù)據(jù)采集硬件實施方案

      針對常規(guī)的數(shù)據(jù)采集方案的缺陷,新的數(shù)據(jù)采集方案的設計設法從硬件上保證不會發(fā)生數(shù)據(jù)丟行和錯位的情況。關(guān)鍵問題在于確保同步信號開始到采樣啟動的時間間隔TL固定不變。因此需摒棄同步信號后采樣軟件復位的方式。

      為此結(jié)合數(shù)據(jù)采集卡PCI-1716的特性,設計了如下方案:觸發(fā)方式:定時觸發(fā) (pacer觸發(fā));A/D轉(zhuǎn)換時鐘:由內(nèi)部時鐘改為外部時鐘;觸發(fā)源:由外部觸發(fā)改為內(nèi)部觸發(fā);采樣方式:由非循環(huán)采樣改為循環(huán)采樣;

      在內(nèi)部定時觸發(fā) (Pacer觸發(fā))方式下,內(nèi)部時鐘無法保證與外部信號嚴格同步,因此A/D轉(zhuǎn)換時鐘改為外部輸入時鐘,通過同步信號控制外部輸入時鐘來實現(xiàn)行同步信號與數(shù)據(jù)采樣的同步。這些功能由PLD電路實現(xiàn),PLD模塊在每個行同步信號輸入后才輸出時鐘脈沖,脈沖數(shù)等于每行采樣的數(shù)據(jù)量。在循環(huán)采樣方式下,只要有外部時鐘信號輸入采樣就不會停止。下一同步信號行的采樣不需要對采集卡軟件復位,只要有時鐘信號即可繼續(xù)進行數(shù)據(jù)采樣。

      行同步信號后產(chǎn)生的時鐘脈沖完全由硬件電路控制,使得TL和TC可以根據(jù)需要固定下來。這樣從硬件上保證了在下一個同步信號來臨之前完成當前行的數(shù)據(jù)采樣,不會造成采樣行數(shù)據(jù)的丟失。新數(shù)據(jù)采集方案時序圖如圖6所示。

      具體實施中通過行同步信號來控制數(shù)據(jù)采集的啟動和停止。當行同步信號停止觸發(fā)PLD模塊產(chǎn)生時鐘脈沖時,采集卡也就處于停止狀態(tài) (如圖中tn時刻)。只有使行同步信號觸發(fā)出時鐘脈沖時 (如圖中t1和t2時刻),采集卡才開始采樣。

      圖6 改進的數(shù)據(jù)采樣時序圖

      上述改進的數(shù)據(jù)采集方案從硬件上保證了數(shù)據(jù)采樣的完整性和正確性,但僅有硬件上的保證還不能避免數(shù)據(jù)丟行和錯位問題的發(fā)生。因為在連續(xù)高速的數(shù)據(jù)采集系統(tǒng)中采集卡只負責把采集的數(shù)據(jù)輸送到采樣緩沖區(qū)中,此時還需軟件將采樣緩沖區(qū)中的數(shù)據(jù)及時取走,否則新的采樣數(shù)據(jù)會覆蓋原來的數(shù)據(jù),同樣會造成數(shù)據(jù)丟失。如圖7所示,A/D轉(zhuǎn)換數(shù)據(jù)送入數(shù)據(jù)緩沖區(qū)之后,CPU將其中的數(shù)據(jù)通過PCI總線傳輸?shù)絻?nèi)存buffer中,此過程中若CPU從數(shù)據(jù)緩沖區(qū)中取數(shù)據(jù)速度慢于采樣速度,數(shù)據(jù)覆蓋 (Overrun)的問題就發(fā)生了。因此數(shù)據(jù)采集的軟件設計同樣至關(guān)重要。

      圖7 PCI-1716數(shù)據(jù)采集結(jié)構(gòu)

      2.3 數(shù)據(jù)采集軟件設計的關(guān)鍵技術(shù)研究

      軟件設計中一個關(guān)鍵問題是如何防止數(shù)據(jù)的丟失,數(shù)據(jù)丟失一般是由數(shù)據(jù)處理及顯示與數(shù)據(jù)采集之間的矛盾引起的,因為Windows是一個多任務的非實時操作系統(tǒng),數(shù)據(jù)處理和成像顯示必然會對實時數(shù)據(jù)采集產(chǎn)生一定的時延作用,造成數(shù)據(jù)丟失。因為Windows系統(tǒng)線程切換的時間典型值約為20ms,而本系統(tǒng)每行數(shù)據(jù)采樣間隔是10ms,因此有可能在采樣過程中發(fā)生線程切換而使得采樣數(shù)據(jù)不能及時取走造成數(shù)據(jù)丟失。

      為實現(xiàn)高效的數(shù)據(jù)采樣軟件實施方案,需充分利用采集卡提供的功能并結(jié)合合理的軟件設計提高系統(tǒng)資源利用率,實現(xiàn)數(shù)據(jù)采樣的高效和實時。

      (1)數(shù)據(jù)傳輸方式的選取

      數(shù)據(jù)采集卡進行數(shù)據(jù)傳輸主要有3種方式:軟件查詢方式:查詢寄存器的狀態(tài)來實現(xiàn)數(shù)據(jù)傳輸。中斷傳輸方式:每次A/D轉(zhuǎn)換結(jié)束產(chǎn)生一個硬件中斷,然后由中斷服務程序 (ISR)完成數(shù)據(jù)傳輸。DMA數(shù)據(jù)傳輸方式:將板卡上的數(shù)據(jù)不通過CPU直接傳輸?shù)絻?nèi)存中。

      3種方式中軟件查詢方式速度慢多用于低速數(shù)據(jù)采集場合,中斷傳輸方式每次中斷都要進行中斷現(xiàn)場保護和恢復,頻繁的中斷需要大量的中斷開銷,也不適合高速連續(xù)的數(shù)據(jù)采集。DMA方式不需要CPU的參與所以特別適合大量數(shù)據(jù)的高速采集。

      由于本系統(tǒng)需要采集的數(shù)據(jù)量大,同時還要進行數(shù)據(jù)的實時處理等工作,要求數(shù)據(jù)采集時不能占用過多的CPU資源,因此采用了DMA數(shù)據(jù)傳輸方式。

      (2)FIFO的運用

      PCI-1716板卡中每路均內(nèi)嵌2Kbytes FIFO高速同步緩存。設置FIFO的目的是為了防止在高速采集和傳輸數(shù)據(jù)過程中丟失數(shù)據(jù),特別是在像Windows這樣的多任務操作系統(tǒng)下,通常板卡完成A/D轉(zhuǎn)換后,將數(shù)據(jù)寫入到數(shù)據(jù)輸出寄存器中,接著使用DMA功能將數(shù)據(jù)傳輸?shù)絻?nèi)存。如果沒有FIFO功能,每次硬件完成A/D轉(zhuǎn)換后會改寫保存在數(shù)據(jù)寄存器中的值,如果上次A/D的數(shù)據(jù)在新數(shù)據(jù)到來之前沒有被傳輸?shù)紺PU內(nèi)存,這個數(shù)據(jù)就丟失了。

      利用PCI-1716的特性,將FIFO設置為循環(huán)緩沖區(qū)(Circ-Buf),這樣在指針到達緩沖區(qū)底部時系統(tǒng)會自動修改指針指向緩沖區(qū)的頭部,而不需要人工修改。PCI總線延時也可能造成數(shù)據(jù)丟失,采用了板上提供的1KSample的FIFO作為緩存,保證了數(shù)據(jù)的完整性。

      (3)雙緩沖區(qū)技術(shù)的運用

      設置 PCI-1716采 集 卡 運 行 在 循 環(huán) 采 集 Bus-master DMA模式下,并給板卡分配采樣緩沖區(qū)和傳輸緩沖區(qū),F(xiàn)IFO緩存中的數(shù)據(jù)通過DMA方式經(jīng)PCI總線傳送到采樣緩沖區(qū)。采樣緩沖區(qū)被分成大小相等的第一和第二half緩沖區(qū),同時用戶程序還分配一個傳輸緩沖區(qū)接收從采樣緩沖區(qū)中傳來的數(shù)據(jù),然后傳輸緩沖區(qū)中的數(shù)據(jù)將進行后續(xù)數(shù)據(jù)處理和成像顯示。

      兩個大容量緩沖區(qū)的存在解決了高速采集的部分問題,同時32位33M的PCI總線保證了數(shù)據(jù)從FIFO傳輸?shù)絻?nèi)部緩存的傳輸帶寬問題。

      (4)采樣緩沖區(qū)容量設置的研究

      在逐行掃描逐行顯示模式下,采樣緩沖區(qū)容量設置為一行數(shù)據(jù)的大小即2048個樣本 (4096Bytes),當?shù)诙alf緩沖區(qū)滿時就要進行數(shù)據(jù)的傳輸和處理以及成像顯示了。此時任一half緩沖區(qū)滿的時候應用程序必須立即取走數(shù)據(jù),因此每5ms就要向傳輸緩沖區(qū)傳送一次數(shù)據(jù)。實驗證明在Windows這種非實時操作系統(tǒng)中,采樣緩沖區(qū)容量設置為一行數(shù)據(jù)量大小時,會發(fā)生頻繁的數(shù)據(jù)丟行現(xiàn)象,為此必須在緩沖區(qū)容量設置上進行改進。

      將單行掃描單行顯示改為掃描數(shù)行后再成像顯示在視覺效果上的幾乎沒有影響,但能避免數(shù)據(jù)采樣中出現(xiàn)的許多問題。為此將采樣緩沖區(qū)容量設置為4行數(shù)據(jù)量的大小,即8192個樣本,相當于一個數(shù)據(jù)采樣行對應于4個掃描行,則填滿每個half緩沖區(qū)的時間為20ms(2個掃描行),數(shù)據(jù)處理間隔延長到40ms,應用程序取數(shù)據(jù)和處理數(shù)據(jù)間隔顯著延長,發(fā)生數(shù)據(jù)丟行的概率也大為減少 (圖8)。

      圖8 采樣緩沖區(qū)的容量設置

      采樣緩沖區(qū)容量設置為4行數(shù)據(jù)量大小還可避免一個數(shù)據(jù)行中出現(xiàn)兩行數(shù)據(jù)混疊 (數(shù)據(jù)串行)的問題。在半緩沖區(qū)容量等于半個掃描行數(shù)據(jù)量的情況下,在第一half緩沖區(qū)拷貝到傳輸緩沖區(qū)中當前行相應位置時,第二half緩沖區(qū)發(fā)生了數(shù)據(jù)覆蓋 (overrun),填入的是下一行中某個半行的數(shù)據(jù),結(jié)果傳輸緩沖區(qū)中當前行相應位置中對應的是不同行的兩個半行組合的數(shù)據(jù),出現(xiàn)數(shù)據(jù)紊亂。將half緩沖區(qū)容量設置為2個掃描行后,即使發(fā)生數(shù)據(jù)覆蓋的情況,只會發(fā)生數(shù)據(jù)行丟失,不會出現(xiàn)下一行上半行的數(shù)據(jù)填入當前行的下半行的情況,如圖9所示。

      圖9 采樣數(shù)據(jù)混迭現(xiàn)象

      2.4 系統(tǒng)數(shù)據(jù)采集與處理的軟件設計

      2.4.1 系統(tǒng)數(shù)據(jù)采集與處理的軟件方案

      Windows是一種基于消息驅(qū)動機制和線程優(yōu)先級的搶先式多任務操作系統(tǒng),但并不是實時操作系統(tǒng),沒有提供足夠的實時處理功能。因此在Windows系統(tǒng)下開發(fā)實時測控系統(tǒng)需要運用一些技術(shù)。

      在軟件設計的實施中,為減少系統(tǒng)工作過程中數(shù)據(jù)處理、圖像重建、存儲和顯示刷新對高速連續(xù)的數(shù)據(jù)采集產(chǎn)生的延時作用,采用Windows系統(tǒng)多線程技術(shù)有效利用Windows等待時間,提高程序執(zhí)行效率。為此根據(jù)系統(tǒng)功能需要創(chuàng)建的線程主要有:數(shù)據(jù)采集、數(shù)據(jù)處理、圖像顯示刷新和圖像存儲、人機交互及系統(tǒng)控制等線程。

      在線程設計時綜合考慮多種因素,實現(xiàn)對不同運行速度和時間精度的線程間同步,單個線程的運行快慢不影響其它線程的運行;合理規(guī)劃線程之間的通訊,解決線程間的數(shù)據(jù)交換和共享問題;

      數(shù)據(jù)采集和處理和圖像存儲線程不接受用戶輸入屬于工作者線程,采用后臺工作方式。在優(yōu)先級的設定上,數(shù)據(jù)采集線程優(yōu)先級最高,其次是數(shù)據(jù)處理線程。

      系統(tǒng)工作時,數(shù)據(jù)采集卡向內(nèi)存緩沖區(qū)中添加采集到的數(shù)據(jù),采集完一個采樣行的數(shù)據(jù)后,數(shù)據(jù)處理線程開始工作,從內(nèi)存緩沖區(qū)中讀取數(shù)據(jù),進行處理、圖像重建和顯示。數(shù)據(jù)采集線程繼續(xù)采集數(shù)據(jù),等待下一行數(shù)據(jù)。數(shù)據(jù)存儲線程只有在采集數(shù)據(jù)達到制定長度后才啟動,完成數(shù)據(jù)的保存后線程掛起。數(shù)據(jù)采集和處理、顯示線程之間通過事件消息實現(xiàn)線程同步,通過全局數(shù)據(jù)對象進行數(shù)據(jù)共享。數(shù)據(jù)采集和數(shù)據(jù)分析顯示同時進行,提高了系統(tǒng)資源利用率的同時,也實現(xiàn)了數(shù)據(jù)的連續(xù)采集和實時性,如圖10所示。

      圖10 系統(tǒng)軟件流程

      2.4.2 系統(tǒng)數(shù)據(jù)處理的方式

      由于在采集過程中要將采集的數(shù)據(jù)及時地成像顯示,因此對于某些簡單的數(shù)據(jù)處理如去噪聲、數(shù)據(jù)成像等操作可在每個采樣行數(shù)據(jù)采集完成后進行,而對需要用到全局信息和較復雜的數(shù)據(jù)處理如圖像后處理、違禁品凸顯和報警等操作放在完成一件物品的掃描,數(shù)據(jù)采樣暫停后進行。這種處理方式可盡量減小數(shù)據(jù)處理對數(shù)據(jù)實時采集的影響。

      3 數(shù)據(jù)采樣實驗結(jié)果分析

      新的數(shù)據(jù)采集方案效果可以從成像質(zhì)量主觀判斷,例如觀測采集的成像圖是否出現(xiàn)數(shù)據(jù)錯位 (一個邊緣整齊的物體掃描成像后邊緣是否也齊整,是否有毛刺),數(shù)據(jù)丟行是否嚴重 (在選擇適當掃描速度情況下物體成像圖是否出現(xiàn)明顯的縱橫比例失調(diào))。

      此外也有其它客觀的衡量方式,在數(shù)據(jù)進行采集的過程中,通過軟件查詢采集卡的狀態(tài)可以知道當前是否發(fā)生數(shù)據(jù)覆蓋,即數(shù)據(jù)丟行,記錄一定采集時間內(nèi)發(fā)生數(shù)據(jù)覆蓋的次數(shù),可以作為衡量數(shù)據(jù)采集發(fā)生丟行情況的參考指標。經(jīng)實驗觀測,常規(guī)的數(shù)據(jù)采集方案每采集1000行數(shù)據(jù)大約會檢測到10-16行的數(shù)據(jù)丟失,而同樣情況下改進的數(shù)據(jù)采集方案基本上檢測不到數(shù)據(jù)行的丟失。這一點也可以用2.1.1所提到的方法進行掃描所得到的圖像進行局部放大,觀察暗條紋的分布情況得到證實。

      4 結(jié)束語

      本文針對CBS檢測設備提出了一種基于通用數(shù)據(jù)采集卡的數(shù)據(jù)采集與處理方案,旨在簡化系統(tǒng)數(shù)據(jù)采集的設計,減少系統(tǒng)開發(fā)周期和成本,提高其可靠性和穩(wěn)定性。

      根據(jù)CBS探測系統(tǒng)對數(shù)據(jù)采集的要求和容易出現(xiàn)的問題,在硬件上采用研華公司通用數(shù)據(jù)采集卡PCI1716并設計相應的前端模擬信號濾波、信號放大、外部行同步信號和時鐘脈沖發(fā)生裝置。在軟件設計上運用多線程和其它一些關(guān)鍵技術(shù),實現(xiàn)高速數(shù)據(jù)采集的同時,完成數(shù)據(jù)的處理、分析和實時成像顯示刷新。

      該數(shù)據(jù)采集和處理方案已經(jīng)成功應用于X射線背散射違禁品檢測產(chǎn)品中,實際使用情況表明,該方法簡單實用、運行穩(wěn)定可靠,達到了預期目的。方案中所提出的技術(shù)和方法也可以在類似的高速數(shù)據(jù)采集領(lǐng)域推廣應用。

      [1]HAO Kuihong,ZHU Haigang,LI Yanjun,et al.FPGA-based compton back-scattering data acquisition system [J].Nuclear Electronics & Detection Technology,2010,30 (9):1254-1259(in Chinese).[郝魁紅,朱海港,李炎鈞,等.基于FPGA的康普頓背散射數(shù)據(jù)采集系統(tǒng) [J].核電子學與探測技術(shù),2010,30 (9):1254-1259.]

      [2]WANG Yu,TAN Hui,HUANG Liang,et al.Design and implementation of data acquisition and transmission system for industrial CT [J].Chinese Journal of Scientific Instrument,2009,30 (4):722-727 (in Chinese). [王玨,譚輝,黃亮,等.工業(yè)CT用數(shù)據(jù)采集與傳輸系統(tǒng)設計及實現(xiàn) [J].儀器儀表學報,2009,30 (4):722-727.]

      [3]CUI Junjie,GUO Hong.Design of real-time data acquisition and remote transmission system based on FPGA technology[J].Journal of Data Acquisition & Processing,2005,20(3):122-126 (in Chinese). [崔俊杰,郭宏.基于 FPGA 的實時數(shù)據(jù)采集與遠程傳輸系統(tǒng)設計 [J].數(shù)據(jù)采集與處理,2005,20 (3):122-126.]

      [4]MA Xin,GUO Hong.Design of multi-slice CT data acquisition system and its measurement [J].Journal of Beijing University of Aeronautics and Astronautics,2008,34 (7):794-797 (in Chinese).[馬鑫,郭宏.多層CT用數(shù)據(jù)采集系統(tǒng)的設計與測 試 [J]. 北 京 航 空 航 天 大 學 學 報,2008,34 (7):794-797.]

      [5]LIU Jinhui.Design of high speed data-sampling software based on PCI bus for industrial CT [J].Nuclear Electronics & Detection Technology,2007,27 (1):8-10 (in Chinese). [劉金匯.基于PCI總線的工業(yè)CT高速數(shù)據(jù)采集軟件設計 [J].核電子學與探測技術(shù),2007,27 (1):8-10.]

      [6]ZHANG Ping,JIANG Yang.Study on high energy X-gray detection and data acquisition system [J].Computer Engineering and Design,2011,32 (7):2505-2513 (in Chinese).[張平,蔣陽.高能X射線數(shù)據(jù)采集系統(tǒng)研究 [J].計算機工程與設計,2011,32 (7):2505-2513.]

      [7]LIU Yubei.Design proposal for hypervelocity impacting single of data acquisition system based on PCI1714 [J].Computer Measurement & Control,2008,16 (9):1345-1347 (in Chinese).[劉玉蓓.基于PCI1714的高速撞擊信號的數(shù)據(jù)采集系統(tǒng) 設 計 [J]. 計 算 機 測 量 與 控 制,2008,16 (9):1345-1347.]

      [8]YE Guo,LI Wei,WANG Yuqiao,et al.A design for high speed data acquisition system based on PCI-1716 [J].Micro Computer Information,2009,25 (2-1):86-87 (in Chinese).[葉果,李威,王禹橋,等.基于PCI-1716的高速數(shù)據(jù)采集系統(tǒng)設計 [J].微計算機信息,2009,25 (2-1):86-87.]

      [9]LI Jianhong,HE Yuzhu.Application of multithreading technology in complex data acquisition system [J].Electronic Measurement Technology,2008,31 (5):102-104 (in Chinese).[李建宏,何玉珠.多線程技術(shù)在復雜數(shù)據(jù)采集系統(tǒng)中的應用 [J].電子測量技術(shù),2008,31 (5):102-104.]

      [10]MENG Zhaorong,JIANG Lihui,HU Xinwei,et al.Realtime data acquisition system on the basis of VC multi-thread[J].Chemical Defence on Ships,2008 (2):44-47 (in Chinese).[孟昭榮,江立輝,胡新偉,等.基于VC多線程的實時數(shù)據(jù)采集系統(tǒng) [J].艦船防化,2008 (2):44-47.]

      猜你喜歡
      采集卡緩沖區(qū)線程
      嵌入式系統(tǒng)環(huán)形緩沖區(qū)快速讀寫方法的設計與實現(xiàn)
      高精度AD采集卡性能測試及評價方法研究
      中國測試(2022年2期)2022-03-19 09:57:30
      面向數(shù)控機床的多通道傳感數(shù)據(jù)采集卡設計
      淺談linux多線程協(xié)作
      并行高速采樣在地震物理模擬采集中的應用
      PCI-e高速數(shù)據(jù)采集卡的驅(qū)動與上位機軟件設計
      電子器件(2015年5期)2015-12-29 08:43:12
      關(guān)鍵鏈技術(shù)緩沖區(qū)的確定方法研究
      Linux線程實現(xiàn)技術(shù)研究
      地理信息系統(tǒng)繪圖緩沖區(qū)技術(shù)設計與實現(xiàn)
      AVS標準中的視頻碼流緩沖區(qū)校驗模型分析
      高密市| 潮安县| 云南省| 建水县| 大悟县| 邳州市| 济阳县| 香港| 义乌市| 栖霞市| 江阴市| 无锡市| 宁河县| 芦山县| 镇江市| 清涧县| 库尔勒市| 措勤县| 蒙山县| 电白县| 吉水县| 永吉县| 沙湾县| 邵阳县| 阳城县| 高雄市| 桐庐县| 湘潭市| 鄂托克前旗| 玉溪市| 芦山县| 西乌| 大安市| 镶黄旗| 肇州县| 德惠市| 汉川市| 海林市| 永福县| 绥棱县| 天柱县|