一種基于SOC的高精度紅外測(cè)溫系統(tǒng)的設(shè)計(jì)
3.系統(tǒng)軟件設(shè)計(jì)
紅外線(xiàn)溫度檢測(cè)系統(tǒng)的軟件設(shè)計(jì)主要有如下幾個(gè)主要模塊:初始化模塊﹑I/O口查詢(xún)模塊﹑AD轉(zhuǎn)化模塊﹑數(shù)據(jù)處理模塊﹑數(shù)據(jù)糾正模塊﹑顯示驅(qū)動(dòng)模塊等。另外還一個(gè)中斷程序處理模塊:0外部中斷,主要用于參數(shù)設(shè)定。
軟件設(shè)計(jì)流程如圖 3所示。
整個(gè)程序采用 c51編寫(xiě),初始化模塊主要是初始化各路報(bào)警信號(hào),將發(fā)射率等參數(shù)設(shè)定成默認(rèn)的值并顯示。主程序不斷通過(guò) I/O口查詢(xún)模塊掃描 AD轉(zhuǎn)換模塊送過(guò)來(lái)的 12位數(shù)字信號(hào),本程序中采用的是 SPI總線(xiàn)的通信方式,串行的接口方式節(jié)約了大量 IO口。接受過(guò)來(lái)的數(shù)字信號(hào)通過(guò)數(shù)據(jù)處理模塊處理之后按查表的方式得出溫度值,把該溫度值經(jīng)過(guò)數(shù)據(jù)糾正模塊糾正后送顯示模塊顯示,并將數(shù)據(jù)傳給上位機(jī)界面進(jìn)行顯示,從而完成了一路溫度測(cè)量。在程序的運(yùn)行過(guò)程中,隨時(shí)可以對(duì)發(fā)射率,報(bào)警值等參數(shù)進(jìn)行設(shè)定。當(dāng)功能鍵按下的時(shí)候觸發(fā)單片機(jī)的 0外部中斷,在中斷程序中對(duì)參數(shù)設(shè)定按鍵進(jìn)行掃描,并將結(jié)果存儲(chǔ)起來(lái)。每路測(cè)溫結(jié)束后系統(tǒng)通過(guò) RS485將溫度值傳送給上位機(jī),在 VB界面上顯示。
1 實(shí)驗(yàn)數(shù)據(jù)處理及發(fā)射率整定
2 實(shí)驗(yàn)數(shù)據(jù)的最小二乘法擬合
對(duì)于一個(gè)測(cè)量系統(tǒng),其精度和準(zhǔn)確度是非常重要的。雖然本設(shè)計(jì)選用 12位AD,給本設(shè)計(jì)的高精度奠定了基礎(chǔ),但是由于
在函數(shù)的最佳平方逼近中,函數(shù) f(x)∈C[a,b],如果 f(x)只在一組離散點(diǎn)集{xi,i=0,1,…,m}上給定,那么我們就需要對(duì)實(shí)驗(yàn)數(shù)據(jù){(xi,yi),i=0,1,…,m}進(jìn)行曲線(xiàn)擬合,其中,yi= f(xi)。若要求函數(shù) y="S" ((*)x)與所給數(shù)據(jù){(xi,yi),i=0,1,…,m}擬合,則誤差δi= S *(x)-yi。設(shè)Φ 1(x),Φ2(x),…, Φn(x)是C[a,b]上線(xiàn)性無(wú)關(guān)函數(shù)族,在Φ =span{Φ1(x),Φ2(x),…, Φ n(x)}中找一函數(shù)S ((*)x),使其誤差平方和最小即可。因?yàn)閷?shí)驗(yàn)數(shù)據(jù)量很大,故在實(shí)際運(yùn)算中,可以借助MATLAB等數(shù)學(xué)工具,通過(guò)調(diào)用或者編寫(xiě)相關(guān)函數(shù)來(lái)完成曲線(xiàn)擬合,最后選擇適當(dāng)?shù)慕Y(jié)果輸出。
評(píng)論