提高實時系統(tǒng)數(shù)據(jù)采集質量的研究
摘要:從實現(xiàn)原理、實際應用效果等方面詳細敘述了提高實時系統(tǒng)數(shù)據(jù)采集質量的幾種實用技術,其中所述電路、方法均已在實際生產(chǎn)中得到了應用。
本文引用地址:http://m.butianyuan.cn/article/255621.htm關鍵詞:前向通道 數(shù)據(jù)采集 實用技術
有向通道是實時系統(tǒng)的“人口”,即數(shù)據(jù)之源。對小型實時系統(tǒng)來說,其一般構成模型為:傳感器、放大器、采集器為(A/D)以及相關聯(lián)的外圍電路。這些器件乃至構成的電路的穩(wěn)定性、線性度、抗干擾能力直接影響到數(shù)據(jù)的采集質量。如果不考慮成本,在系統(tǒng)設計時全部采用軍用級芯片,情況會好些,但仍程度不同地存在上述問題;如果采用一般商用級芯片,問題就嚴重了。這就要求工程人員在系統(tǒng)設計時,無論是采用商用級、工業(yè)級芯片,還是采用軍用級芯片,都應該從設計角度尋求、采取一些彌補措施,以提高數(shù)據(jù)采集質量,進而提高系統(tǒng)的可靠性和穩(wěn)定性。
1 動態(tài)“零漂”補償技術
前向通道中的傳感器、放大器、A/D易受溫度(導致溫漂)、時間(導致時漂)等因素影響而引起系統(tǒng)“零位”動態(tài)變化,即所謂“零漂”。恰當?shù)厥褂脛討B(tài)“零漂”補償技術能夠有效地抑制“零漂”帶來的采集數(shù)據(jù)誤差。圖1為筆者在某爐溫閉環(huán)控制系統(tǒng)中采用的動態(tài)“零漂”補償實用電路。其中AD7503是單片集成的CMOS 8選1多路模擬開關,其前7路分別接7個傳感器,第8路S8接模擬地。公共輸出端OUT通過R1電阻與放大器AD524輸入端相連。A/D采用12位雙積分ICL7109芯片。其補償原理是:在單片機8031控制下,分時地對動態(tài)“零漂”及各路傳感器進行采集、處理,最終得到不含“零漂”的有效采術凈值參加插值運算。具體步驟如下:
(1)通過8031程控使AD7503開關SK接S8,即模擬地。
(2)延遲1ms,消除AD7503開關時間及電阻、電容放電時間帶來的開關閉合過渡過程。這點應引起足夠注意,只有在SK可靠接地之后才能進行“零位”采集;否則,如果在過度過程進行“零位采集,則會產(chǎn)生隨機性誤差,而且被測試的溫度愈高,呈現(xiàn)的誤差愈大,出現(xiàn)的概率愈頻繁。但延遲時間也不能過大,過長會影響系統(tǒng)的實時速度。
過渡過程主要由R、C放電時間決定。
T=(R1+Ron) ×C1=(220+170)×10×10 5×10 -9=0.39ms
其中:
T:放電時間;
Ron:AD7503導通電阻。
圖2是用示波器在放大器AD524輸出端(管腳10)觀察到的這一過程的波形圖。
(3)啟動A/D連續(xù)采樣數(shù)次,然后求其算術平均值,記為x0(x0即動態(tài)“零漂”采樣值):
(4)通過8031程控制AD7503開關SK接某一路傳感器(例如傳感器1端S1)。
(5)延遲1ms,消除電阻、電容充電帶來的過渡過程。
(6)啟動A/D連續(xù)采樣數(shù)次,然后求其算術平均值,記為x1(x1即含有動態(tài)“零漂”的有效信號采樣值):
(t:當前采樣值,n:采樣次數(shù))
(7)求有效信號采樣凈值y(即從上述有效信號采樣值中濾掉“零漂”值)。按照理論x1≥x0,但實際用于在“零位”附近的有效信號采樣值,很可能出現(xiàn)x1x0的現(xiàn)象。因而求有效信號采樣凈值y不能簡單地使用公式y(tǒng)=x1-x0,而應按照下列關系式進行:
若x1≥x0 則y=x1-x0
否則y=0
(8)使用y進行插值運算,最終求出實際溫度值,并在數(shù)碼管組成的顯示器LED上進行顯示。
此方法顯然編程(特別是用匯編語言或梯形語言編程)較復雜,但效果相當明顯。
2 濾波技術
2.1 電容濾波器
電容濾波法是小型實時系統(tǒng)經(jīng)常采用的一種廉價而有效的無源濾波技術。但在實際應用中,采用什么樣的電容?電容容量應該選取多大?濾波電容接在靠近放大器輸出一端還是在接在靠近A/D輸入一端效果好些?這些都是系統(tǒng)設計中要經(jīng)常遇到的實際問題。筆者曾在某便攜式巡檢記錄儀中使用美國MAXIM公司的MAX189串行、12位A/D芯片,它為8腳封裝,實用電路如圖3所示。使用PIC16C74單片機的SPI(串行外圍接口)口進行全雙工編程采集。按照MAXIM公司給出的典型應用電路,在MAX189模擬信號輸入Ain端(管腳2)無圖3中的濾波器,但實際應用時發(fā)現(xiàn),按照典型應用電路進行采集誤差很大。后在MAX189 Ain端接入如圖3所示的低、高通濾波器(以下簡稱濾波器),收到了顯著的效果。
根據(jù)筆者近幾年的工程設計與實踐,認為對電容濾波器,一般應選擇耐壓高、絕緣性好、溫度系數(shù)小、自諧振頻率高的電容。其容量要根據(jù)具體系統(tǒng)進行實驗確定,既不能選擇過大,也不能選擇過小。過大會損傷有用信號,過小則達不到濾波效果。另外,在許多實用采集電路中,將濾波器電容接在放大器的輸出一端,筆者認為沒有接在A/D輸出一端效果好。
2.2 數(shù)字濾波
2.2.1 數(shù)字濾波方法
硬件濾波器只是提高實時系統(tǒng)數(shù)據(jù)采集質量的措施之一,它和其它任何濾波技術一樣,很難徹底抑制各種干擾,因此很有必要進行數(shù)字濾波。經(jīng)典的數(shù)字濾波方法較多,有算術平均值法、超值濾波法、比較取舍法、滑動算術平均法、競賽評分法以及一階低通濾波法等。究竟采用哪種濾波技術應視具體情況而定。筆者認為至少應考慮采集器A/D的類型。如果A/D屬積分型,其對尖脈沖有較強的抑制能力,但轉換速度慢,采用滑動濾波技術能夠達到揚長避短的作用。滑動濾波技術的基本思想是:取長度為N的隊列,把每次采樣值放入隊尾,同時仍掉隊首的一個采樣值,再求隊列的算術平均值作為本次采集的最終有效值。這種數(shù)字濾波方法速度快,但對尖脈沖干擾抑制能力較差。筆者曾在某綜合測試臺濕度、溫度監(jiān)視系統(tǒng)設計中采用國產(chǎn)3位半雙積分型5ZG14433采集器。為既能達到數(shù)字濾波的效果,又不影響系統(tǒng)實時速度,故使用上述的滑動濾波技術,收到了良好的效果。如果A/D為逐次比較式,一般轉換速度快,但對尖脈沖抑制能力相對較弱,宜采用競賽評分濾波法。
2.2.2 改進型競賽評分濾波法
競賽評分濾波法由于既能消除脈沖干擾,又能濾除低頻紋波,是工程上常用的一種數(shù)字濾波方法。其基本思想是:對某一點的多次采樣值進行比較,舍棄最大、最小值,把余下的采樣值取算術平均值作為該點的最終有效采樣值。實踐證明此方法對干擾噪音較大的系統(tǒng)來效果不夠理想,為此筆者在某配料系統(tǒng)研制中上述經(jīng)典的競賽評分濾波法進行了改進,稱“改進型競賽評分濾波法”。其基本思想是:加大某一點的采樣次數(shù),然后對該點的多次采樣值進行排序,舍棄最大、最小段(而不是最大、最小值),把余下的中間段4(或8)個采樣值進行算術累加,然后后移2(3或)次即取算術平均值作為該點的最終有效采樣值。這種方法雖然效果明顯,但不能直接應用到小型實時系統(tǒng)中,因小型實時系統(tǒng)一般采用可編程控制器PLC或單片機作為控制部件直接面對物理層,其內(nèi)存空間極為有限。為此進一步改進如下:對某一點施以N次(N≥6)改進型競賽評分濾波法,得到N個有效采樣值,記為t1,T2…tn(n=N),再對t1,t2…tn進行一次改進型競賽評分濾波法,將所得值作為該點的最終有效采樣值。當然這種方法是以時間和空間來換取數(shù)據(jù)精度的。
3 接地技術
在低電平放大電路中,合理地接地是減少地噪聲干擾,提高數(shù)據(jù)采集質量的重要舉措,必須予以特別注意。就一般情況而言,在硬件設計時,系統(tǒng)中的模擬公共地線應該與數(shù)字公共地線分開,然后只在一點匯集,呈“星形”狀。筆者在某分析儀系統(tǒng)研制中曾使用北京某公司生產(chǎn)的PS_2119放大、采集多功能模板,為減少長距離信號傳輸帶來的空間干擾,選用差分輸入。該系統(tǒng)的工作原理是:當用X光線以不同的角度照射光電裝置中的被測物時,其光電轉換裝置輸出的電壓幅值與X光線照射的角度成函數(shù)關系。該輸出電壓經(jīng)放大、采集、數(shù)據(jù)處理、最后以余弦波的形式在PC上顯示測試結果。圖4為該系統(tǒng)曾經(jīng)使用的不正確接地線路,其中:
H:差分高端輸入端子。
L:差分低端輸入端子。
AGND:模擬地端子。
這種接地方法產(chǎn)生的后果是PC上顯示的余弦波形毛刺較大,經(jīng)檢驗產(chǎn)品合格率低。后改為圖5所示的接地方法,其輸出的余弦波形光滑,經(jīng)檢驗產(chǎn)品誤差在允許范圍之內(nèi)。
從電路分析的角度看,圖4、圖5都使放大采集板的差分低端L、模擬地AGND與光電轉換裝置的“模擬地”等三點達到“共地”的目的,但接地形式不同,產(chǎn)生的結果卻截然相反。
4 供電技術
電源噪聲對數(shù)據(jù)采集質量有著嚴重的危害性。在采用交流供電的實時系統(tǒng)中,電壓波動會使系統(tǒng)產(chǎn)生隨機性誤差。同樣,在采用干電池供電的便攜式實時系統(tǒng)中,電池衰減會導致系統(tǒng)出現(xiàn)“時漂”。對于這些問題,已經(jīng)出現(xiàn)了許多成熟有效的技術措施,如各種穩(wěn)壓器、低通濾波器、光電隔離器等。然而,前向通道對電壓的波動是非常敏感的,僅采用上述措施還不夠,特別對于那些物理要求傳感器信號在現(xiàn)場放大,而采樣、控制又獨成體系的實時系統(tǒng),其供電應特別注意。一般在設計這種系統(tǒng)時,為供電方便,往往將傳感器、放大器與A/D所在的電路采用分開供電的方法,即傳感器、放大器由現(xiàn)場供電,而A/D所在的電路采用另外的供電形式。這種將前向通道分開供電的方法存在一定的弊端。比較好的方法應當盡可能地對傳感器、放大器、A/D采用同一電源,最好是同一電源的同一輸出端子供電。這樣一旦發(fā)生電源波動,則傳感器、放大器、A/D的滿度輸出也隨之變化,其最終采樣值會相對基本保持不變或變化很小。
5 接口初始化技術
電源噪聲及空間干擾常常會引起系統(tǒng)接口參數(shù)的變化,進而導致系統(tǒng)出現(xiàn)許多異?,F(xiàn)象,嚴重時會使系統(tǒng)死機。在實際運行的實時系統(tǒng)中,往往會發(fā)生這樣的現(xiàn)象:當某系統(tǒng)在前一時刻還處于最佳運行狀態(tài)時,后一時刻卻突然出現(xiàn)死機現(xiàn)象,甚至這種現(xiàn)象無法使用系統(tǒng)復位鍵進行清除,只好去電再加電即冷啟動之后才能使系統(tǒng)恢復正常工作。出現(xiàn)這種情況除系統(tǒng)的容錯處理存在一定缺陷之外,另一個重要原因就是因為系統(tǒng)對接口的初始化時序安排不當。例如,有些實時系統(tǒng)在設計時把初始化參數(shù)安排在冷啟動之后一次完成,隨后予之不理。這種方法至少會使系統(tǒng)潛伏著一定的缺陷。比較好的方法是在系統(tǒng)每次調(diào)度某一接口之前,先對其進行初始化,然后再調(diào)度。當然這對使用一塊或兩塊可編程接口的簡單系統(tǒng)來說比較容易。隨著數(shù)字技術的不斷發(fā)展,市場上已經(jīng)涌現(xiàn)出了可編程放大器、可編程A/D、可編程鍵盤/顯示驅動、可編程實時鐘、可編程E2PROM以及本身帶有多種可編程功能接口和可編程雙向位控功能的單片機。使用這些智能器件能使系統(tǒng)硬件變得簡單而可靠,但同時也帶來了接口初始化和編程問題。為避免上述干擾對接口產(chǎn)生影響,較好的方法應當是在系統(tǒng)設計之前,首先從系統(tǒng)軟、硬件兩方面進行仔細分析,研究各接口在具體系統(tǒng)中的時序及相互制的關系;然后在每次調(diào)試具體接口之前先對其進行初始化,然后再調(diào)度。在沒對系統(tǒng)進行上述分析的情況下,簡單地按先初始化再調(diào)度的方法對各接口進行操作,會顧此失彼,甚至整個系統(tǒng)無法運行。
上述方法均已在實際生產(chǎn)中得到應用,且收到了良好的效果。需要指出的是:上述方法適宜的采集對象為緩慢變化的信號,工業(yè)現(xiàn)場的大部分信號例如壓力、溫度、濕度、交變的電壓、電流等均屬此類信號。如果采集的對象為高速變化信號,應采用DSP(數(shù)字信號處理機)及其相關技術。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論