,, ,
(1.西北工業(yè)大學(xué) 航海學(xué)院,西安 710072;2.中國人民解放軍63612部隊)
電阻測量在電子產(chǎn)品質(zhì)量檢測、電子設(shè)備維修以及新產(chǎn)品的開發(fā)等領(lǐng)域具有重要意義[1]。而對于常見電阻的測量電路,小電阻的測量[2-4]和利用微電流[5-6]測量高阻值的電阻都已經(jīng)有部分研究成果,但大部分都采用分立測量的方式[2-9]。測量方法比較局限,電路干擾因素過多,很難通過電路自身排除導(dǎo)致測量精度不高的因素,難以達到諸多領(lǐng)域的要求。針對以上問題,系統(tǒng)設(shè)計時結(jié)合實際需求,基于一階RC電路電容充放電理論,通過STM8單片機定時器和I/O中斷系統(tǒng),記錄RC電路電容充放電時間,根據(jù)充放電時間計算得出電阻值,然后對測量結(jié)果進行平滑濾波處理提高測量精度。平滑濾波在數(shù)字信號處理領(lǐng)域中占有重要地位,系統(tǒng)采用的主要算法是改進的平滑濾波。實驗結(jié)果表明,經(jīng)過改進的平滑濾波算法處理,測量結(jié)果精度明顯提高,并且穩(wěn)定性良好。利用串口將測量結(jié)果實時傳遞給上位機,便于觀測和調(diào)試,在測量類似于溫度等實時性要求比較高的領(lǐng)域中具有重要意義。
如圖1所示,為提高測量系統(tǒng)的測量效率,特設(shè)置了兩個相同的測量模塊,可同時進行兩路電阻的測量。主控電路包含單片機最小系統(tǒng)STM8S103F3P6和LED燈D2,D2用來指示系統(tǒng)工作狀態(tài);端口PC3、PA3設(shè)置為輸出模式,輸出高電平時為RC電路充電,輸出低電平時RC電路放電;引腳PC6、PC7設(shè)置I/O上升沿中斷,分別采集兩路RC電路中電容兩端的電壓,當電容電壓達到單片機I/O能識別的高電平電壓時,PC6~PC7的I/O端口產(chǎn)生中斷,此時從定時器讀出充電時間;PA1、PA2、PD2、PD3端口分別控制兩路RC電路測電阻的檔位,當選擇默認檔位時,均設(shè)置為輸出高阻態(tài),使用該檔位時,對應(yīng)端口設(shè)置輸出低。各引腳設(shè)置狀態(tài)如表1所列。
圖1 主控電路
I/O端口名稱設(shè)置模式中斷觸發(fā)方式PC6、PC7輸入模式、允許中斷上升沿觸發(fā)PA3、PC3快速強推輸出低無PA1、PA2PD2、PD3快速開漏輸出高阻態(tài)(當選擇相應(yīng)的檔位時設(shè)置為快速強推輸出低)無
圖2為系統(tǒng)電壓模塊,系統(tǒng)由USB提供5 V電壓,但單片機工作電壓為3.3 V。采用AMS1117-3.3電壓轉(zhuǎn)換芯片為單片機提供3.3 V電壓。
圖2 電壓轉(zhuǎn)換模塊
RC電路時間常數(shù)為:
τ=RC
(1)
充電時間函數(shù)為:
(2)
由式(2)可知,當電容兩端電壓VC和電源電壓Vs一定時,電容充電時間只與時間常數(shù)τ有關(guān)。在本系統(tǒng)中,電容兩端電壓Vc是單片機I/O口能觸發(fā)中斷的電壓值,Vc和Vs均由單片機I/O接口直接供電。由圖1和圖3可知,本系統(tǒng)RC電路源電壓Vs由單片機I/O接口PC3/PA3供電,如圖3所示,當I/O接口拉高時,電容開始充電,此時打開定時器開始計時,電容兩端電壓達到I/O能識別的高電平時發(fā)生中斷,獲取充電時間值;當I/O接口拉低時,電容開始放電,放電完成后再進行下一次充電。由式(1)可知,電阻阻值與時間常數(shù)成正比,阻值越大時間常數(shù)越大,充電時間越長,電容越小,充電時間越短,為確保寬量程條件下的響應(yīng)速度,根據(jù)電容大小設(shè)置了不同的測量檔位,既擴大了測量量程,又保證了測量速度。如圖3所示,J2、J3外接測量電阻 C1、C11和C2、C22分別代表兩路測量系統(tǒng)中的兩個檔位,相應(yīng)I/O端口輸出低時,代表接通不同的測量檔位。因兩路測量系統(tǒng)完全一樣,檔位說明以第一路測量系統(tǒng)為例,如表2所列。
圖3 RC電路測量模塊
電容選擇測量范圍/ΩC5:1×107pF20~2kC7:1×105pF2k~200kC8:1×103pF200k~20M
平滑濾波是根據(jù)某一時間區(qū)間的測量值來估計狀態(tài)值。從原理上說,平滑濾波的估計精度是比較高的,因為它幾乎利用了所有的量測信息[11]。常見的平滑濾波方法有固定區(qū)間平滑濾波和固定點平滑濾波[12]。固定區(qū)間平滑濾波依據(jù)一定時間內(nèi)的觀測值來預(yù)測當前系統(tǒng)值,具有信息利用率高、估計結(jié)果準確的優(yōu)點,但計算量大、運算時間較長。固定點平滑濾波算法是依據(jù)當前點預(yù)測值對上一個固定點預(yù)測值進行修正,從而減少了數(shù)據(jù)處理的運算量。
本系統(tǒng)算法結(jié)合固定區(qū)間平滑濾波和固定點平滑濾波,以當前時刻以前幾個值的中心值作為當前值可靠性的判斷依據(jù),以當前值的可靠性來決定數(shù)據(jù)是否能作為判斷下一個數(shù)據(jù)穩(wěn)定性的依據(jù),以此不斷對依據(jù)值進行修正,該算法既保留了固定區(qū)間平滑濾波估計值的準確性,又有固定點平滑濾波的計算速度。經(jīng)過濾波處理的最終數(shù)據(jù)通過串口傳送給上位機。
圖4 一級處理函數(shù)流程
在算法實現(xiàn)過程中,運用冒泡次數(shù)來判斷數(shù)據(jù)的趨勢,進而對數(shù)據(jù)處理精度作出調(diào)整,減少了測量過程中的無效等待時間,在保證測量精度的基礎(chǔ)上提高了實時性。在算法設(shè)計過程中充分考慮到其擴展性能及優(yōu)化性能,第二級濾波函數(shù)在第一級濾波處理得到的數(shù)據(jù)基礎(chǔ)上,再進行一次平滑濾波,測量結(jié)果精度能達到更高,但不足之處是濾波處理調(diào)用次數(shù)越高,計算時間就越長。因此在算法設(shè)計時要考慮實際應(yīng)用場景,合理調(diào)用濾波函數(shù)。二級濾波原理與一級濾波原理相同,在此不再贅述。具體算法流程圖見圖4~圖6。
圖5 一級預(yù)測值獲取流程
實驗過程分析以2 kΩ電阻為準,其他見測量結(jié)果。
圖7~圖9分別為采用改進平滑濾波算法后測試、普通平滑濾波算法測試和不加平滑濾波算法上位機顯示結(jié)果。對比可知,改進后的平滑濾波算法明顯提高了數(shù)據(jù)的穩(wěn)定度和精度。
由表3可知,當使用平滑濾波算法后測量精度最高能達到0.05%。
圖6 一級濾波處理函數(shù)
圖7 改進平滑濾波后測試結(jié)果
圖8 普通平滑濾波結(jié)果
圖9 不加平滑濾波算法結(jié)果
待測電阻/Ω平滑濾波測量結(jié)果/Ω平滑濾波測量精度198.2200.21.00%2.01k2.0134k0.17%19.8k19.899k0.50%15.8M15.652M0.94%199k198.99k0.05%