国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于Windows系統(tǒng)函數(shù)和多線程技術(shù)的脈沖信號(hào)檢測(cè)方法與流程

      文檔序號(hào):12061676閱讀:257來源:國知局
      基于Windows系統(tǒng)函數(shù)和多線程技術(shù)的脈沖信號(hào)檢測(cè)方法與流程

      本發(fā)明屬于數(shù)據(jù)采集和信號(hào)處理技術(shù)領(lǐng)域,涉及脈沖信號(hào)檢測(cè)方法。



      背景技術(shù):

      隨著現(xiàn)代測(cè)試任務(wù)需求增多,對(duì)脈沖信號(hào)的檢測(cè)提出更高要求,不僅需要檢測(cè)脈沖信號(hào)脈寬,還同時(shí)需要檢測(cè)其幅值或電平狀態(tài),且需要更多的采集通道數(shù),而傳統(tǒng)采用定時(shí)/計(jì)數(shù)器卡檢測(cè)脈寬方法存在通道數(shù)少和只能檢測(cè)脈寬的不足,已經(jīng)不能滿足測(cè)試任務(wù)需求。

      同步檢測(cè)脈沖信號(hào)脈寬和幅值或電平狀態(tài)的方式主要包括同時(shí)利用定時(shí)/計(jì)數(shù)器卡和AD采集卡或數(shù)字IO卡方式,利用FPGA和AD采集卡或數(shù)字IO卡方式,AD卡或數(shù)字IO卡和軟件結(jié)合方式。

      利用定時(shí)/計(jì)數(shù)器卡和AD卡或數(shù)字IO卡方式是直接利用兩種類型卡對(duì)同一脈沖信號(hào)兩種特性同時(shí)進(jìn)行檢測(cè)。該方式具有實(shí)現(xiàn)難度低和研發(fā)周期短等優(yōu)點(diǎn),但不足之處是定時(shí)/計(jì)數(shù)器卡通道數(shù)較少,而且成本很高。利用FPGA和AD卡或數(shù)字IO卡方式與上一種方式類似,但利用FPGA檢測(cè)脈沖信號(hào)脈寬,并通過串口將檢測(cè)的結(jié)果傳送至上位機(jī),可以解決定時(shí)/計(jì)數(shù)器卡通道數(shù)較少的不足,但該方法開發(fā)周期比較長(zhǎng)。



      技術(shù)實(shí)現(xiàn)要素:

      本發(fā)明的目的是為了解決現(xiàn)有定時(shí)/計(jì)數(shù)器卡通道數(shù)較少,而且成本很高以及FPGA檢測(cè)脈沖信號(hào)脈寬開發(fā)周期比較長(zhǎng)的問題,而提出基于Windows系統(tǒng)函數(shù)和多線程技術(shù)的脈沖信號(hào)檢測(cè)方法。

      基于Windows系統(tǒng)函數(shù)和多線程技術(shù)的脈沖信號(hào)檢測(cè)方法具體過程為:

      步驟一、開始,基于VC環(huán)境利用多線程技術(shù)創(chuàng)建并啟動(dòng)獨(dú)立輔助線程;

      步驟二、在獨(dú)立輔助線程中循環(huán)不間斷讀取AD卡或數(shù)字IO卡采集的數(shù)據(jù);

      步驟三、采用軟件比較器判斷采集的數(shù)據(jù)是否存在脈沖信號(hào),如果存在脈沖信號(hào),執(zhí)行步驟五;如果不存在脈沖信號(hào),執(zhí)行步驟四;

      步驟四、在獨(dú)立輔助線程中Sleep函數(shù)休眠1ms,執(zhí)行步驟三;

      步驟五、基于Windows系統(tǒng)函數(shù)計(jì)算出脈沖信號(hào)的脈寬和電平、脈沖信號(hào)的脈寬和幅值或脈沖信號(hào)的脈寬、電平和幅值,執(zhí)行步驟六;

      步驟六、基于自定義消息將脈沖信號(hào)的脈寬、電平或幅值發(fā)送至主線程,判斷所有采集的數(shù)據(jù)是否檢測(cè)完,如果檢測(cè)完,則結(jié)束;如果沒檢測(cè)完,執(zhí)行步驟四。

      本發(fā)明的有益效果為:

      本發(fā)明技術(shù)關(guān)鍵在于應(yīng)用Windows系統(tǒng)函數(shù)和多線程技術(shù),利用含通道數(shù)較多AD卡或數(shù)字I/O卡對(duì)脈沖信號(hào)進(jìn)行采集和比較處理,實(shí)現(xiàn)對(duì)脈沖信號(hào)的脈寬和幅值或電平狀態(tài)的同步檢測(cè)。技術(shù)方案是應(yīng)用多線程技術(shù)創(chuàng)建獨(dú)立輔助線程,循環(huán)不間斷讀取AD卡或數(shù)字I/O卡采集的數(shù)據(jù),采用軟件比較器分析采集數(shù)據(jù),應(yīng)用Win32API接口函數(shù)QueryPerformanceFrequency和QueryPerformanceCounter函數(shù),精確記錄脈沖信號(hào)在上升沿后第一個(gè)高電壓/高電平采樣點(diǎn)和下降沿后第一個(gè)低電壓/低電平采樣點(diǎn)的時(shí)間,兩個(gè)采樣點(diǎn)時(shí)刻之差即為脈沖信號(hào)的脈寬。同時(shí),軟件比較器加入了放錯(cuò)機(jī)制,只有當(dāng)高電壓/高電平采樣點(diǎn)數(shù)大于等于4時(shí),才認(rèn)為存在脈沖信號(hào),有效防止因干擾導(dǎo)致抖動(dòng)而出現(xiàn)錯(cuò)誤檢測(cè)情況。該方法實(shí)現(xiàn)了對(duì)脈沖信號(hào)的脈寬和幅值/電平的同步檢測(cè),能夠檢測(cè)通道數(shù)取決于含較多通道數(shù)的AD卡或數(shù)字I/O卡。此外,本方法亦可實(shí)現(xiàn)利用多塊不同類型采集卡檢測(cè)含通道數(shù)較多且不同類型脈沖信號(hào)的特性,可以采用創(chuàng)建多個(gè)輔助線程保證檢測(cè)精度。

      AD卡或數(shù)字IO卡和軟件結(jié)合方式是利用AD卡或數(shù)字IO卡采集脈沖信號(hào)的幅值或電平狀態(tài),采用軟件比較器處理采集數(shù)據(jù)的方法計(jì)算出脈沖信號(hào)的脈寬,具有低成本和通道數(shù)較多的優(yōu)點(diǎn),可實(shí)現(xiàn)低成本硬件和高效資源利用率的脈沖信號(hào)特性檢測(cè)方法,在脈寬檢測(cè)精度要求不高的情況下是一種很好的檢測(cè)方法。

      現(xiàn)有定時(shí)/計(jì)數(shù)器卡通道數(shù)較少,一般通道數(shù)為8左右,而本發(fā)明AD卡或數(shù)字IO卡通道數(shù)可達(dá)到30以上,精度達(dá)到1-2ms,亦可以同時(shí)用多塊卡實(shí)現(xiàn)更多通道,但通道數(shù)與檢測(cè)精度成反比,可以同步測(cè)量出脈沖信號(hào)時(shí)間、脈寬、幅值或電平。

      附圖說明

      圖1為脈沖信號(hào)脈寬和幅值或電平狀態(tài)檢測(cè)方法原理圖;

      圖2為基于Windows系統(tǒng)函數(shù)和多線程技術(shù)的脈沖信號(hào)檢測(cè)方法整體流程圖;

      圖3為基于AD采集卡脈沖信號(hào)脈寬和幅值檢測(cè)具體流程圖;

      圖4為基于數(shù)字I/O卡脈沖信號(hào)脈寬和電平狀態(tài)檢測(cè)具體流程圖。

      具體實(shí)施方式

      具體實(shí)施方式一:結(jié)合圖1說明本實(shí)施方式,本實(shí)施方式的基于Windows系統(tǒng)函數(shù)和多線程技術(shù)的脈沖信號(hào)檢測(cè)方法具體過程為:

      步驟一、開始,基于VC環(huán)境利用多線程技術(shù)創(chuàng)建并啟動(dòng)獨(dú)立輔助線程;

      步驟二、在獨(dú)立輔助線程中循環(huán)不間斷讀取AD卡或數(shù)字IO卡采集的數(shù)據(jù);

      步驟三、采用軟件比較器判斷采集的數(shù)據(jù)是否存在脈沖信號(hào),如果存在脈沖信號(hào),執(zhí)行步驟五;如果不存在脈沖信號(hào),執(zhí)行步驟四;

      步驟四、在獨(dú)立輔助線程中Sleep函數(shù)休眠1ms,執(zhí)行步驟三;

      步驟五、基于Windows系統(tǒng)函數(shù)計(jì)算出脈沖信號(hào)的脈寬和電平、脈沖信號(hào)的脈寬和幅值或脈沖信號(hào)的脈寬、電平和幅值,執(zhí)行步驟六;

      步驟六、基于自定義消息將脈沖信號(hào)的脈寬、電平或幅值發(fā)送至主線程,判斷所有采集的數(shù)據(jù)是否檢測(cè)完,如果檢測(cè)完,則結(jié)束;如果沒檢測(cè)完,執(zhí)行步驟四。

      圖1為脈沖信號(hào)脈寬和幅值或電平狀態(tài)檢測(cè)方法原理圖。原理是精確檢測(cè)脈沖信號(hào)在上升沿后第一個(gè)高電壓/高電平采樣點(diǎn)和下降沿后第一個(gè)低電壓/低電平采樣點(diǎn)的時(shí)間,脈寬為兩采樣點(diǎn)差值,幅值為脈沖信號(hào)在高電壓時(shí)的電壓值,電平狀態(tài)為高。

      具體實(shí)施方式二:本實(shí)施方式與具體實(shí)施方式一不同的是:所述步驟三中采用軟件比較器判斷采集的數(shù)據(jù)是否存在脈沖信號(hào),如果存在脈沖信號(hào),執(zhí)行步驟五;如果不存在脈沖信號(hào),執(zhí)行步驟四;具體過程為:

      1)、開始,定義在獨(dú)立輔助線程中循環(huán)不間斷讀取AD卡采集的數(shù)據(jù)中高電壓(例如,硬件采集脈沖信號(hào),有脈沖信號(hào)時(shí)為10V,沒有脈沖信號(hào)時(shí)為0V,則低電壓為0V,高電壓為10V;)采樣點(diǎn)計(jì)數(shù)變量N=0;

      2)、判斷在獨(dú)立輔助線程中循環(huán)不間斷讀取AD卡采集的數(shù)據(jù)中電壓是否大于等于閾值,如果是,執(zhí)行3);如果否,執(zhí)行7);

      所述采集的數(shù)據(jù)中電壓包括采集的數(shù)據(jù)中高電壓和采集的數(shù)據(jù)中低電壓;

      所述閾值取高電壓和低電壓平均值/中間值左右;

      3)、計(jì)數(shù)變量為N+1,判斷N是否等于1,如果是,執(zhí)行4);如果否,執(zhí)行5);

      4)、該采樣點(diǎn)是脈沖信號(hào)上升沿后第一個(gè)高電壓采樣點(diǎn),存儲(chǔ)當(dāng)前時(shí)間T1,執(zhí)行2);

      5)、判斷N是否等于A,如果是,執(zhí)行6);如果否,執(zhí)行2);

      所述A取值為大于2的正整數(shù);A取值為4,所測(cè)脈沖信號(hào)的脈寬為1s;圖3的部分程序?yàn)椋?/p>

      6)、存儲(chǔ)當(dāng)前電壓值V1作為脈沖信號(hào)高電壓值,執(zhí)行2);

      7)、判斷N是否大于A,如果是,執(zhí)行8);如果否,則N=0,執(zhí)行2);

      8)、該采樣點(diǎn)是脈沖信號(hào)下升沿后第一個(gè)低電壓采樣點(diǎn),計(jì)數(shù)變量N置0,存儲(chǔ)當(dāng)前時(shí)間T2,計(jì)算脈寬T,脈寬T=T2-T1,脈沖信號(hào)幅值為脈沖信號(hào)高電壓值V1,脈寬為T2-T1,判斷所有采樣點(diǎn)是否檢測(cè)完,如果檢測(cè)完,則結(jié)束;如果沒檢測(cè)完,執(zhí)行2)。

      其它步驟及參數(shù)與具體實(shí)施方式一相同。

      具體實(shí)施方式三:本實(shí)施方式與具體實(shí)施方式一或二不同的是:所述步驟三中采用軟件比較器判斷采集的數(shù)據(jù)是否存在脈沖信號(hào),如果存在脈沖信號(hào),執(zhí)行步驟五;如果不存在脈沖信號(hào),執(zhí)行步驟四;具體過程為:

      1)、開始,定義數(shù)字IO卡采集的數(shù)據(jù)中高電平采樣點(diǎn)計(jì)數(shù)變量N=0;

      2)、判斷數(shù)字IO卡采集的數(shù)據(jù)中電平是否為高電平(例如,高電平為1,低電平為0;),如果是,執(zhí)行3);如果否,執(zhí)行5);

      3)、計(jì)數(shù)變量為N+1,判斷N是否等于1,如果是,執(zhí)行4);如果否,執(zhí)行2);

      4)、該采樣點(diǎn)是脈沖信號(hào)上升沿后第一個(gè)高電平采樣點(diǎn),存儲(chǔ)當(dāng)前時(shí)間T1,執(zhí)行2);

      5)、判斷N是否大于A,如果是,執(zhí)行6);如果否,則N=0,執(zhí)行2);

      所述A取值為大于2的正數(shù);A取值為4,所測(cè)脈沖信號(hào)的脈寬為80ms;圖4的部分程序?yàn)椋?/p>

      6)、該采樣點(diǎn)是脈沖信號(hào)下升沿后第一個(gè)低電平采樣點(diǎn),計(jì)數(shù)變量N置0,防止出現(xiàn)累積計(jì)算脈寬,存儲(chǔ)當(dāng)前時(shí)間T2,計(jì)算脈寬T,脈寬T=T2-T1,電平狀態(tài)為高,判斷所有采樣點(diǎn)是否檢測(cè)完,如果檢測(cè)完,則結(jié)束;如果沒檢測(cè)完,執(zhí)行2)。

      其它步驟及參數(shù)與具體實(shí)施方式一或二相同。

      具體實(shí)施方式四:本實(shí)施方式與具體實(shí)施方式一至三之一不同的是:所述Windows系統(tǒng)函數(shù)為QueryPerformanceFrequency和QueryPerformanceCounter函數(shù),精確記錄脈沖信號(hào)在上升沿后第一個(gè)高電壓/高電平采樣點(diǎn)和脈沖信號(hào)在下升沿后第一個(gè)低電壓/低電平采樣點(diǎn)的時(shí)間,兩個(gè)采樣點(diǎn)時(shí)刻之差即為脈沖信號(hào)的脈寬。

      其它步驟及參數(shù)與具體實(shí)施方式一至三之一相同。

      具體實(shí)施方式五:本實(shí)施方式與具體實(shí)施方式一至四之一不同的是:所述步驟三中采用軟件比較器判斷采集的數(shù)據(jù)是否存在脈沖信號(hào);具體過程為:

      軟件比較器為閾值比較器,采集的數(shù)據(jù)大于等于閾值時(shí),則為高電壓/高電平,小于閾值則為低電壓/低電平;閾值為0或1;

      當(dāng)采集的數(shù)據(jù)中有四個(gè)及四個(gè)以上的高電壓或高電平時(shí),則存在脈沖信號(hào)。

      其它步驟及參數(shù)與具體實(shí)施方式一至四之一相同。

      采用以下實(shí)施例驗(yàn)證本發(fā)明的有益效果:

      實(shí)施例一:

      本實(shí)施例基于Windows系統(tǒng)函數(shù)和多線程技術(shù)的脈沖信號(hào)檢測(cè)方法具體為:

      圖2為基于Windows系統(tǒng)函數(shù)和多線程技術(shù)的脈沖信號(hào)檢測(cè)方法整體流程圖。整個(gè)檢測(cè)過程主要分為三個(gè)階段,即數(shù)據(jù)采集,比較處理、計(jì)算和結(jié)果后處理。數(shù)據(jù)采集是在硬件初始化基礎(chǔ)上,包括設(shè)置采集通道數(shù)和采樣頻率等,創(chuàng)建并啟動(dòng)輔助線程,循環(huán)讀取全部采集通道數(shù)的采集數(shù)據(jù)。比較處理是定義合理的閾值,與全部采集數(shù)據(jù)逐一進(jìn)行比較,精確記錄脈沖信號(hào)在上升沿后第一個(gè)高電壓/高電平采樣點(diǎn)和下降沿后第一個(gè)低電壓/電平采樣點(diǎn)的時(shí)間,并計(jì)算出該脈沖信號(hào)脈寬。當(dāng)需要檢測(cè)脈沖信號(hào)的幅值時(shí),以上升沿后第五個(gè)采樣點(diǎn)的電壓作為脈沖信號(hào)的幅值。結(jié)果后處理是利用自定義消息將輔助線程的檢測(cè)結(jié)果發(fā)送到主線程,便于用戶對(duì)檢測(cè)結(jié)果的后續(xù)處理,同時(shí),為了防止CPU使用率過高,每循環(huán)一次都要休眠1ms。

      圖3為基于AD采集卡脈沖信號(hào)脈寬和幅值檢測(cè)具體流程圖。在輔助線程啟動(dòng)后,首先將AD采集卡的采集數(shù)據(jù)與設(shè)定閾值進(jìn)行比較。當(dāng)采集數(shù)據(jù)大于設(shè)定閾值時(shí),認(rèn)為可能存在脈沖信號(hào),計(jì)數(shù)變量N+1,先通過N是否為1判斷是否為上升沿后第一個(gè)高電壓采樣點(diǎn),如果N等于1,認(rèn)為該采樣點(diǎn)是上升沿后第一個(gè)高電壓采樣點(diǎn),記下當(dāng)前時(shí)間為T1,并繼續(xù)判斷下一個(gè)采樣點(diǎn)。如果不等于1,再判斷N是否等于5,如果N等于5,記下當(dāng)前電壓值V1作為脈沖信號(hào)高電壓值,并繼續(xù)判斷下一個(gè)采樣點(diǎn)。

      如果采集數(shù)據(jù)小于設(shè)定閾值時(shí),判斷是否為下降沿后第一個(gè)低電壓采樣點(diǎn)。為了防止存在抖動(dòng)情況,加入了防錯(cuò)機(jī)制。如果N小于5,認(rèn)為檢測(cè)到的脈沖信號(hào)為干擾。如果N大于5,認(rèn)為該采樣點(diǎn)是下升沿后第一個(gè)低電壓采樣點(diǎn),先將N置0,防止出現(xiàn)累積計(jì)算脈寬,然后記下當(dāng)前時(shí)間為T2,并計(jì)算脈寬為T2-T1,則脈沖信號(hào)的脈寬為(T2-T1)、幅值為V1,然后判斷下一個(gè)采樣點(diǎn)或結(jié)束。

      圖4為基于數(shù)字I/O卡脈沖信號(hào)脈寬和電平狀態(tài)檢測(cè)具體流程圖,其檢測(cè)流程與圖3類似,只是判斷條件由是否大于閾值變成了是否為高電平,顯示幅值和脈寬變成顯示電平和脈寬。

      本發(fā)明還可有其它多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,本領(lǐng)域技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。

      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1