目前,在工業(yè)控制等領(lǐng)域,開發(fā)了大量實(shí)時(shí)趨勢(shì)曲線繪制軟件。但在非實(shí)時(shí)數(shù)據(jù)記錄領(lǐng)域,開發(fā)趨勢(shì)曲線繪制的較少,本文以非實(shí)時(shí)數(shù)據(jù)記錄儀曲線繪制軟件設(shè)計(jì)為對(duì)象,簡(jiǎn)要介紹了數(shù)據(jù)記錄儀的數(shù)據(jù)采集過程,并在此基礎(chǔ)上重點(diǎn)介紹基于VB6.0的曲線繪制軟件的算法設(shè)計(jì)與實(shí)現(xiàn)。
本文中數(shù)據(jù)記錄儀主要是完成對(duì)某探測(cè)器獲取的目標(biāo)回波信號(hào)和四路數(shù)字信號(hào)(如上電信號(hào),識(shí)別信號(hào)等)的電壓等參數(shù)進(jìn)行采樣,并將采集的數(shù)據(jù)保存在存儲(chǔ)器里。通過PC機(jī)串口讀出數(shù)據(jù)記錄儀存儲(chǔ)器中的數(shù)據(jù),經(jīng)過數(shù)據(jù)分析軟件實(shí)現(xiàn)對(duì)記錄的各路信號(hào)及相關(guān)參數(shù)的再現(xiàn)、分析和處理。系統(tǒng)工作過程如圖1所示。數(shù)據(jù)記錄儀接入探測(cè)器后,探測(cè)器和數(shù)據(jù)記錄儀同時(shí)上電。DSP在上電時(shí)完成初始化,打開捕獲中斷,為捕獲數(shù)字信號(hào)量做好準(zhǔn)備,隨后DSP開始采樣模擬通道的數(shù)據(jù)。在采樣的過程中,如果有數(shù)字量產(chǎn)生,將產(chǎn)生捕獲中斷請(qǐng)求,在中斷服務(wù)程序中(捕獲中斷服務(wù)程序流程如圖2),將捕獲到的記數(shù)值寫入Flash,直到將Flash寫滿。試驗(yàn)結(jié)束后,通過數(shù)據(jù)記錄儀與PC機(jī)串口通信,讀取數(shù)據(jù)并進(jìn)行數(shù)據(jù)分析和
處理。捕獲中斷服務(wù)程序流程中寫入Flash的數(shù)據(jù)都大于3FFH是為了把它們從模擬信號(hào)中區(qū)分開來。因?yàn)锳/D采樣結(jié)果為10位,采樣結(jié)果不會(huì)大于3FFH,而Flash為兩個(gè)8位單元存儲(chǔ)一個(gè)采樣結(jié)果(可存儲(chǔ)16位數(shù))。即巧妙的利用Flash存儲(chǔ)數(shù)據(jù)長(zhǎng)度大于DSP采樣結(jié)果的數(shù)據(jù)長(zhǎng)度來區(qū)別模擬信號(hào)與數(shù)字信號(hào)。
圖1 黑匣子工作過程
圖2 捕獲中斷服務(wù)程序流程
圖3 數(shù)據(jù)分析軟件流程圖
圖4 采樣數(shù)據(jù)在計(jì)算機(jī)中的存儲(chǔ)示意
圖5 文本文件數(shù)據(jù)依次全部賦值給一個(gè)數(shù)組的算法流程
圖6 多路信號(hào)的識(shí)別算法與曲線的繪制
數(shù)據(jù)記錄儀分析軟件是實(shí)現(xiàn)人機(jī)對(duì)話的界面軟件。它的核心任務(wù)是將采集到的、存儲(chǔ)在閃存中的數(shù)據(jù)通過計(jì)算機(jī)的串口讀入到計(jì)算機(jī)中,并繪制成曲線供設(shè)計(jì)人員參考。同時(shí)要求能通過串口發(fā)送指令,擦除閃存,以便下次采集數(shù)據(jù);能夠正確的反映采集數(shù)據(jù)的時(shí)間信息;能夠?qū)Σ杉臄?shù)據(jù)和分析結(jié)果進(jìn)行管理;能夠盡量保證數(shù)據(jù)的正確性、可靠性;能夠在算法上保證分析速度快等。軟件設(shè)計(jì)的系統(tǒng)框圖如圖3所示。
首先,利用VB6.0中MSComm控件實(shí)現(xiàn)串口通信,讀取Flash中的采樣數(shù)據(jù)。要注意Flash中存儲(chǔ)單元數(shù)據(jù)是8位的,而A/D采樣數(shù)據(jù)是10位,在讀flash時(shí),在算法上就必須考慮將兩個(gè)數(shù)據(jù)單元合并為一個(gè)單元。同時(shí),F(xiàn)lash中存儲(chǔ)的數(shù)據(jù)是字節(jié)型的,在讀取數(shù)據(jù)的過程中,將數(shù)據(jù)直接由十六進(jìn)制轉(zhuǎn)化為十進(jìn)制,可以簡(jiǎn)化算化。本設(shè)計(jì)中,首先要把動(dòng)態(tài)數(shù)組定義為字節(jié)類型;其次,把InputMode屬性值設(shè)置為1,表示以二進(jìn)制形式讀取。另外,把讀取的高位數(shù)據(jù)乘以256,再與低位相加,即可將數(shù)據(jù)直接由十六進(jìn)制轉(zhuǎn)化為十進(jìn)制。
對(duì)采樣數(shù)據(jù)進(jìn)行處理,即將從Flash中讀出并保存在PC機(jī)中文本文件的數(shù)據(jù)依次全部賦值給一個(gè)數(shù)組。這樣,按照時(shí)間先后順序采集到的數(shù)據(jù),將依次放在一個(gè)數(shù)組中。這就為曲線的繪制和時(shí)間坐標(biāo)的確定作好了準(zhǔn)備。采樣數(shù)據(jù)保存在PC機(jī)中格式如圖4,數(shù)據(jù)是以文件追加的方式保存在文本文件中的。在VB6.0中,打開文本并實(shí)現(xiàn)數(shù)據(jù)依次全部賦值給一個(gè)數(shù)組的算法流程如圖6。實(shí)踐證明,采用圖4的保存格式和圖5的算法,能顯著提高數(shù)據(jù)處理速度。
圖7 某時(shí)刻模擬通道與數(shù)字通道四示波器采樣圖
圖8 某時(shí)刻模擬通道與數(shù)字通道四數(shù)據(jù)恢復(fù)圖形
繪制采樣數(shù)據(jù)曲線就是將采集到的數(shù)據(jù)以曲線的形式表現(xiàn)出來。同時(shí)將一些所需要的參數(shù)體現(xiàn)出來。在VB6.0中,畫連接線時(shí),前一條線的終點(diǎn)就是后一條線的起點(diǎn)。繪制曲線時(shí),每個(gè)畫面顯示10000個(gè)采樣點(diǎn),第二個(gè)畫面從10001顯示下面的10000個(gè)采樣數(shù)據(jù),依次類推,完成所有采樣點(diǎn)的繪制。多路信號(hào)的識(shí)別算法與曲線的繪制如圖6。模擬信號(hào)和數(shù)字信號(hào)的區(qū)別是通過不同顏色來區(qū)分的。
示波器采樣圖形如圖7,分析軟件恢復(fù)圖形如圖8。從以上兩圖可以看出,分析軟件恢復(fù)出了正確的圖形。圖9中信號(hào)負(fù)壓部分被削去。這是信號(hào)調(diào)理電路作用的結(jié)果。同時(shí),由于毫米波探測(cè)器非常靈敏,其低噪在不同外部環(huán)境中變化較大,且在飛行階段不易有示波器檢測(cè)。因此兩個(gè)圖中的低噪存在一定差異。數(shù)據(jù)記錄儀在實(shí)際應(yīng)用中取得了好的效果,對(duì)于獲取有效的試驗(yàn)數(shù)據(jù),分析試驗(yàn)結(jié)果起到了很好的作用。
[1]王和平,等編著.TMS320LF240X DSP C語言開發(fā)應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2003.1.
[2]范逸之,陳立元,孫德萱,程正孚.利用Visual Basic實(shí)現(xiàn)串并行通信技術(shù)[M].北京:清華大學(xué)出版社,2001.3.