色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于Microsoft Visual C# 2005平臺(tái)的探測(cè)器陣列數(shù)據(jù)采集算法的實(shí)現(xiàn)

電子設(shè)計(jì) ? 來(lái)源:微計(jì)算機(jī)信息 ? 作者:劉潔群,何楓,吳 ? 2020-12-28 09:53 ? 次閱讀

作者:劉潔群,何楓,吳毅,侯再紅

1 引言

探測(cè)器陣列(Detector Arrays)測(cè)量系統(tǒng)中,為了精確測(cè)量一些光強(qiáng)信號(hào),通常需要對(duì)傳感器輸出信號(hào)進(jìn)行高速、高分辨率采樣,并要求采集圖像實(shí)時(shí)顯示。從硬件要求來(lái)看,采用 的A/D 器件速率在800 MHz 以上,可實(shí)現(xiàn)數(shù)據(jù)的高速采集。同時(shí),數(shù)據(jù)存儲(chǔ)技術(shù)也正在不 斷完善和提高,存儲(chǔ)容量越來(lái)越大,在市場(chǎng)上已出現(xiàn)容量達(dá)1T byte 左右的硬盤。已有的 數(shù)據(jù)采集系統(tǒng)大多數(shù)采用基于PCI 總線的結(jié)構(gòu),但在對(duì)數(shù)據(jù)可靠性要求很高的情況下, 基于PCI 總線的數(shù)據(jù)采集系統(tǒng)的可靠性不能滿足要求。保證數(shù)據(jù)的可靠性與完整性的同時(shí), 實(shí)現(xiàn)數(shù)據(jù)的高速傳輸與實(shí)時(shí)顯示成為設(shè)計(jì)該數(shù)據(jù)采集系統(tǒng)的關(guān)鍵所在。

目前對(duì)數(shù)據(jù)采集的研究較多,但對(duì)高速數(shù)據(jù)采集的算法相對(duì)較少,也有一些對(duì)高速、高 分辨率數(shù)據(jù)采集的算法,但這些算法大多采取數(shù)據(jù)壓縮法,一般很難保證數(shù)據(jù)的完整性。 為此,本文在算法設(shè)計(jì)中提出了一種既能保證數(shù)據(jù)完整性與可靠性,又能實(shí)現(xiàn)高速大批量數(shù) 據(jù)的實(shí)時(shí)采集算法,從而解決此問(wèn)題。

2 系統(tǒng)描述

在激光大氣傳輸實(shí)驗(yàn)中,光強(qiáng)測(cè)量系統(tǒng)由多傳感器探測(cè)陣列構(gòu)成。傳感器探測(cè)陣列共有1024 個(gè)探測(cè)單元。對(duì)于每個(gè)模塊,信號(hào)通過(guò)模擬開關(guān)送入數(shù)據(jù)采集卡,由計(jì)算機(jī)進(jìn)行處理。 在激光大氣傳輸實(shí)驗(yàn)中,對(duì)測(cè)量系統(tǒng)的穩(wěn)定性與可靠性要求極高。對(duì)數(shù)據(jù)采集軟件的性能及 指標(biāo)要求是:保證100Hz 幀頻下,數(shù)據(jù)采集不丟幀,圖像完整,無(wú)亂碼。

從技術(shù)角度看,目前PCI 總線最大數(shù)據(jù)傳輸速率可達(dá)133MB/s ,相對(duì)較高,但基于PCI 總線的數(shù)據(jù)采集系統(tǒng)的可靠性不能滿足要求,且100Hz 幀頻在現(xiàn)有的數(shù)據(jù)采集系統(tǒng)中已不 算高。為此,實(shí)驗(yàn)中采用一種專門為嵌入式控制而定義的工業(yè)控制總線——PC104 總線。此 總線以“針”和“孔”形式層疊連接,即PC104 總線模塊之間總線的連接是通過(guò)上層的針和下層 的孔相互咬和相連,這種層疊封裝有極好的抗震性。此總線雖滿足了可靠性的要求,然而它 的傳輸速率相對(duì)于PCI 總線卻大打折扣,造成PC104 總線與PC 機(jī)之間的傳輸速率受到限制。

3 數(shù)據(jù)采集算法設(shè)計(jì)

針對(duì)以上情況,本著在實(shí)驗(yàn)中數(shù)據(jù)采集具有實(shí)時(shí)性和不可重復(fù)性,如果出現(xiàn)暫時(shí)性溢出, 應(yīng)優(yōu)先保證數(shù)據(jù)的整體完整性的原則。

本數(shù)據(jù)采集軟件在設(shè)計(jì)中提出了緩沖區(qū)半滿存儲(chǔ)算法。此算法和現(xiàn)有數(shù)據(jù)采集系統(tǒng)中的 緩沖區(qū)算法、數(shù)據(jù)壓縮算法相比,其最大優(yōu)勢(shì)在于采到的數(shù)據(jù)不易丟失,更能保證數(shù)據(jù)的完 整性,且大大提高了PC104 總線與PC 機(jī)之間的傳輸速率。

同時(shí)軟件設(shè)計(jì)中使用實(shí)時(shí)多任務(wù)控制方式,并將采集到的數(shù)據(jù)以二進(jìn)制的形式直接保存 進(jìn)文件。這就不僅達(dá)到存儲(chǔ)量大、數(shù)據(jù)傳輸效率高的目的,而且滿足了圖像實(shí)時(shí)傳送的要求。

3.1 緩沖區(qū)半滿存儲(chǔ)算法

所謂緩沖區(qū)半滿存儲(chǔ)算法,就是在數(shù)據(jù)采集進(jìn)程中,設(shè)置一個(gè)數(shù)據(jù)HFIFO 緩沖區(qū)指針。 緩沖區(qū)大小設(shè)置為8192 個(gè)字節(jié)。當(dāng)PC104 總線上出現(xiàn)數(shù)據(jù)時(shí),總線板中首先將接收到的數(shù) 據(jù)幀放入HFIFO 緩沖區(qū)。當(dāng)HFIFO 達(dá)到半滿時(shí),就讀出低位的4096 個(gè)字節(jié)的數(shù)據(jù),讀出 數(shù)據(jù)的同時(shí),為HFIFO 騰出了空間,而總線板中接收到的數(shù)據(jù)幀繼續(xù)放入HFIFO 緩沖區(qū)。 具體操作如下:

首先,將緩沖區(qū)分為以下 5 種狀態(tài):

狀態(tài) 0 表HFIFO 空

狀態(tài)1 表HFIFO 非空但不到半滿

狀態(tài)2 表HFIFO 達(dá)到或超過(guò)半滿,但未到全滿

狀態(tài)3 表HFIFO 全滿

狀態(tài)4 其他數(shù)值 表未知狀態(tài),不應(yīng)該出現(xiàn)

其次,對(duì)HFIFO 的狀態(tài)進(jìn)行判斷:

a.當(dāng)數(shù)據(jù)未達(dá)到緩沖區(qū)大小的一半時(shí)(即狀態(tài)0 或狀態(tài)1):此時(shí)返回,進(jìn)行數(shù)據(jù)采 集。

b.當(dāng)數(shù)據(jù)達(dá)到或超過(guò)緩沖區(qū)大小的一半但未到全滿(即狀態(tài)2):進(jìn)程將先判斷一下 HFIFO 狀態(tài),若為半滿,就一次讀出所有的4096 個(gè)字節(jié)的數(shù)據(jù);若超過(guò)半滿,但未全滿, 此時(shí)只將低位4096 個(gè)字節(jié)的數(shù)據(jù)讀出,原高位的數(shù)據(jù)前移,占據(jù)HFIFO 低位。再將讀出的 所有數(shù)據(jù)直接保存到二進(jìn)制文件中。

這里特別提出:由于多傳感器探測(cè)系統(tǒng)采集時(shí)間較長(zhǎng)或不受時(shí)間限制,軟件設(shè)計(jì)中將采 集到的數(shù)據(jù)直接保存進(jìn)文件,這就在存儲(chǔ)工程中節(jié)省了大量的時(shí)間。另外,數(shù)據(jù)保存在二進(jìn) 制文件中,能實(shí)現(xiàn)圖像的實(shí)時(shí)顯示。

c.當(dāng)HFIFO 全滿(即狀態(tài)3):此時(shí)數(shù)據(jù)采集進(jìn)程只要讀空HFIFO 或達(dá)到用戶指定的 個(gè)數(shù)就可返回。讀數(shù)時(shí)分兩批,先將低位的4096 個(gè)字節(jié)的數(shù)據(jù)讀出,保存到二進(jìn)制文件中;再將高位的數(shù)據(jù)全部讀出,即讀空HFIFO,緊接著前面的數(shù)據(jù)寫入文件中。

分兩批讀數(shù)的優(yōu)點(diǎn)在于以下兩方面:1)縮短了一次讀數(shù)的時(shí)間;2)低字節(jié)的數(shù)據(jù)讀完 后,為HFIFO 騰出了空間,以便總線板中接收到的數(shù)據(jù)幀繼續(xù)放入HFIFO 緩沖區(qū),數(shù)據(jù)不 易丟失,保證了數(shù)據(jù)的完整性。

d.其他數(shù)值:表未知狀態(tài),不應(yīng)該出現(xiàn)。在此不再詳述。

3.2 多線程控制

由于測(cè)試系統(tǒng)是由多個(gè)探測(cè)模塊構(gòu)成傳感器探測(cè)陣列。要對(duì)多路參數(shù)進(jìn)行檢測(cè)和控制, 為了降低整個(gè)系統(tǒng)的復(fù)雜度,實(shí)現(xiàn)圖像實(shí)時(shí)傳送,滿足采集過(guò)程的高速要求和中斷要求。還 要保證幀頻達(dá)到或超過(guò)100Hz,需要數(shù)據(jù)采集控制軟件具有多任務(wù)并行的能力,即設(shè)計(jì)多個(gè) 線程,并且由于完成的任務(wù)不同,各線程的設(shè)計(jì)也不盡相同。軟件共設(shè)計(jì)包括數(shù)據(jù)采集線 程、控制線程、繪圖線程,程序運(yùn)行中最多時(shí)會(huì)出現(xiàn)幾個(gè)線程并行運(yùn)行的可能。為保證大量 數(shù)據(jù)的完整性以及糾錯(cuò)恢復(fù)功能,數(shù)據(jù)采集線程優(yōu)先級(jí)高于控制線程。軟件結(jié)構(gòu)簡(jiǎn)圖見圖1。

如圖 1 所示,HFIFO 緩沖區(qū)在狀態(tài)2 時(shí)進(jìn)入繪圖線程1。

基于Microsoft Visual C# 2005平臺(tái)的探測(cè)器陣列數(shù)據(jù)采集算法的實(shí)現(xiàn)

繪圖線程 1:在繪圖時(shí)要求先判斷一下HFIFO 狀態(tài),若為半滿,就讀前4 幀即低位的 4096 個(gè)像素,然后立刻返回,進(jìn)行繪圖,繪圖時(shí)只繪出第一幀,最后保存數(shù)據(jù)。 HFIFO 緩沖區(qū)在狀態(tài)3 時(shí)進(jìn)入繪圖線程2。

繪圖線程 2:讀分兩次讀滿8 幀即8192 個(gè)像素,然后立刻返回,進(jìn)行繪圖,繪圖時(shí)也 只繪出第一幀,最后保存數(shù)據(jù)。繪圖線程如圖2 所示。

4 數(shù)據(jù)采集算法實(shí)現(xiàn)

本系統(tǒng)軟件平臺(tái)采用 Micro 公司的Microsoft Visual C# 2005,該平臺(tái)具有界面友好、功 能強(qiáng)大、資源豐富等優(yōu)點(diǎn),完全面向?qū)ο蟮?a target="_blank">編程和消息處理。在典型的Microsoft Visual C# 2005 多線程程序中,使用主線程創(chuàng)建、顯示并運(yùn)行用戶界面,在次線程中運(yùn)行其它的對(duì)時(shí) 間要求很高的操作(如DAQ)。Microsoft Visual C# 2005 平臺(tái)提供了兩種在 Windows 的次線 程中運(yùn)行代碼的高級(jí)機(jī)制,分別是線程池(thread pools)和異步定時(shí)器(asynchronous timers)。

線程池適用于需要連續(xù)地執(zhí)行多次或在循環(huán)中執(zhí)行的任務(wù),而異步定時(shí)器適用于在固定 時(shí)間間隔內(nèi)執(zhí)行的任務(wù)。由于試驗(yàn)中參數(shù)的采集和總線數(shù)據(jù)的收發(fā)是首要的任務(wù),需要連續(xù) 地執(zhí)行。因此,編程時(shí)采用線程池技術(shù),在程序的主線程(數(shù)據(jù)采集線程)中創(chuàng)建線程池,控制線程、繪圖線程都在線程池創(chuàng)建的次線程中運(yùn)行。

具體程序中設(shè)置了數(shù)據(jù)采集線程函數(shù) DataThread(),獲得狀態(tài)函數(shù)GetHFifoStatus()。在獲 取HFIFO 狀態(tài)中,用了4 個(gè)“Case: break;”語(yǔ)句來(lái)判斷狀態(tài),從而進(jìn)行循環(huán)。 當(dāng)進(jìn)入狀態(tài) 2 和3 時(shí),事件返回后便進(jìn)入繪圖線程,軟件只設(shè)置GatherData()為繪圖線 程函數(shù)。線程空閑時(shí)則進(jìn)行圖象的播放,數(shù)據(jù)優(yōu)先保存,SaveData()為數(shù)據(jù)保存函數(shù)。

SaveData()函數(shù)中將采集到的數(shù)據(jù)以二進(jìn)制形式直接保存到路徑為:e.FileName 的文件中。 程序設(shè)計(jì)時(shí)采用直接指針方式,提高了傳輸數(shù)據(jù)的效率。

5 結(jié)語(yǔ)

本軟件采用 Microsoft Visual C# 2005 開發(fā)平臺(tái),具有友好的用戶界面,操作簡(jiǎn)單方便, 易于維護(hù)。該算法編程簡(jiǎn)單、計(jì)算量小、易于硬件實(shí)現(xiàn),而且穩(wěn)定性高;在使用過(guò)程中體現(xiàn) 了極強(qiáng)的實(shí)用性,滿足了探測(cè)器陣列信號(hào)數(shù)據(jù)實(shí)時(shí)采集的要求。

實(shí)驗(yàn)證明:程序終端的顯示窗口能實(shí)時(shí)顯示采集到的激光光斑信息,能自動(dòng)將其實(shí)時(shí)存 儲(chǔ)到特定的文件夾內(nèi);并能隨時(shí)回放上一次采集到的光信號(hào)的圖像信息。如圖3 所示: 實(shí)驗(yàn)中,本軟件采集精度超過(guò) 50KHz,保證了所采數(shù)據(jù)的完整性與安全性,同時(shí)也驗(yàn)證了 本數(shù)據(jù)采集系統(tǒng)的無(wú)誤傳輸及傳輸?shù)膶?shí)時(shí)性與高效性。

本文作者創(chuàng)新點(diǎn):開創(chuàng)性的提出了緩沖區(qū)半滿存儲(chǔ)算法。將其與實(shí)時(shí)多任務(wù)控制方式相結(jié)合, 解決了實(shí)驗(yàn)中總線與計(jì)算機(jī)之間高速傳輸?shù)拿埽箶?shù)據(jù)采集具有可靠性、完整性、實(shí)時(shí)性 與高效性。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2552

    文章

    51366

    瀏覽量

    755731
  • 探測(cè)器
    +關(guān)注

    關(guān)注

    14

    文章

    2651

    瀏覽量

    73171
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2900

    瀏覽量

    88280
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Visual C# 2005開發(fā)技術(shù).zip

    Visual C# 2005開發(fā)技術(shù).zip[hide][/hide]
    發(fā)表于 06-19 21:32

    探測(cè)器陣列數(shù)據(jù)實(shí)時(shí)采集算法設(shè)計(jì)

    探測(cè)器陣列(Detector Arrays)測(cè)量系統(tǒng)中,一般存在PC104 總線與計(jì)算機(jī)之間的傳輸速率受限、系統(tǒng)采樣數(shù)據(jù)信息量大、不便于實(shí)時(shí)傳輸?shù)葐?wèn)題。針對(duì)上述問(wèn)題,在數(shù)據(jù)采集軟件設(shè)
    發(fā)表于 12-31 14:25 ?17次下載

    Visual C# 2005編程技術(shù)文檔

    Visual C# 2005編程技術(shù)文檔!資料來(lái)源網(wǎng)絡(luò),如有侵權(quán),敬請(qǐng)見諒
    發(fā)表于 11-20 14:50 ?0次下載

    C#教程之數(shù)據(jù)采集器讀寫

    C#教程之數(shù)據(jù)采集器讀寫,很好的C#資料,快來(lái)學(xué)習(xí)吧。
    發(fā)表于 04-21 09:52 ?41次下載

    Visual C# 2005開發(fā)技術(shù)》常用控件

    Visual C# 2005開發(fā)技術(shù)》常用控件
    發(fā)表于 02-07 15:11 ?0次下載

    Visual C# 2005開發(fā)技術(shù)》xml編程

    Visual C# 2005開發(fā)技術(shù)》xml編程
    發(fā)表于 02-07 15:11 ?0次下載

    Visual C# 2005開發(fā)技術(shù)》C#與.NET Fram

    Visual C# 2005開發(fā)技術(shù)》C#與.NET Framework簡(jiǎn)介
    發(fā)表于 02-07 15:11 ?0次下載

    Visual C# 2005開發(fā)技術(shù)》C#程序設(shè)計(jì)基礎(chǔ)

    Visual C# 2005開發(fā)技術(shù)》C#程序設(shè)計(jì)基礎(chǔ)
    發(fā)表于 02-07 15:11 ?0次下載

    Visual C# 2005開發(fā)技術(shù)》應(yīng)用程序部署

    Visual C# 2005開發(fā)技術(shù)》應(yīng)用程序部署
    發(fā)表于 02-07 15:17 ?0次下載

    Visual C# 2005開發(fā)技術(shù)》時(shí)間跟蹤系統(tǒng)

    Visual C# 2005開發(fā)技術(shù)》時(shí)間跟蹤系統(tǒng)
    發(fā)表于 02-07 15:17 ?0次下載

    Visual C# 2005開發(fā)技術(shù)》處理異常和錯(cuò)誤

    Visual C# 2005開發(fā)技術(shù)》處理異常和錯(cuò)誤
    發(fā)表于 02-07 15:17 ?0次下載

    Visual C# 2005開發(fā)技術(shù)》類

    Visual C# 2005開發(fā)技術(shù)》類
    發(fā)表于 02-07 15:17 ?0次下載

    Visual C# 2005開發(fā)技術(shù)》與用戶交互

    Visual C# 2005開發(fā)技術(shù)》與用戶交互
    發(fā)表于 02-07 15:17 ?0次下載

    Visual C# 2005開發(fā)技術(shù)

    Visual C# 2005開發(fā)技術(shù)
    發(fā)表于 02-16 00:10 ?0次下載

    Microsoft? Visual C#

    Microsoft? Visual C#
    發(fā)表于 02-01 12:05 ?9次下載
    <b class='flag-5'>Microsoft</b>? <b class='flag-5'>Visual</b> <b class='flag-5'>C#</b>
    主站蜘蛛池模板: 星空无限传媒视频在线观看视频| 黄瓜视频苹果直接安装| 四虎影5151毛片在线看| 久久www成人看片| 东京热 百度影音| 最近免费中文字幕MV免费高清| 乳液全集电影在线观看| 久久视频在线视频| 国产色青青视频在线观看 | 高H黄暴NP辣H一女多男| 中文字幕绝色少妇性| 亚洲精品卡2卡3卡4卡5卡区 | 久久se视频精品视频在线| 国产国拍亚洲精品av麻豆| a免费在线观看视频| 自拍黄色片| 一品道门在线观看免费视频| 武侠艳妇屈辱的张开双腿| 日本双渗透| 欧美激情性AAAAA片欧美 | 精品亚洲国产成AV人片传媒| 国产精品久久毛片A片软件爽爽| yellow片在线观看免费观看动漫| 中文字幕午夜乱理片| 亚洲视频在线观看地址| 无毒成人社区| 色婷婷五月综合久久中文字幕| 青草精品国产福利在线视频| 老司机福利在视频在ae8| 久久成人伊人欧洲精品AV| 狠狠躁天天躁小说| 国产亚洲视频中文字幕| 国产精品人成视频免费999| 囯产精品久久久久久久久免费蜜桃 | 日本枯瘦娇小| 麻豆一区二区三区蜜桃免费| 久久中文字幕人妻AV熟女| 国产偷抇久久精品A片蜜臀AV| 国产成人无码一区AV在线观看| 大胸女晃奶动态图| 抽插喷S骚爽去了H|