1 引言 儀器儀表設備在現場測試過程中,由于生產變量的測試數據對生產過程具有重要的意義,因此對各種物理量測試數據精度要求是比較高的。 在前向測試通道上采用的抗干擾措施中,濾波方法是抑制干擾的一種有效途徑。在工業現場中,可利用硬件濾波器電路或軟件濾波器算法提高測試數據的準確性。硬件濾波措施是使用較多的一種方法,技術比較成熟,但同時也增加了設備,提高了成本,而且電子設備的增加有可能帶來新的干擾源。而采用軟件濾波算法不需增加硬件設備,可靠性高,功能多樣,使用靈活,具有許多硬件濾波措施所不具備的優點,當然它需要占一定的運行時間。 2 常用的幾種軟件濾波方法 (1)中值濾波法:即每次取N個AD值,去除其中的最大值和最小值而取剩余的N-2個A/D轉換值的平均值。 (2)程序判斷濾波法:即根據經驗確定出兩次采樣的最大偏差ΔY,若先后兩次采樣的信號相減數值大于ΔY,表明輸入為干擾信號,應去除;用上次采樣值與本次采樣值比較,若小于或等于Δ Y,表明沒有受到干擾,此時本次采樣值有效,這樣可以濾去隨機干擾和傳感器不穩定而引起的誤差。 (3)利用格拉布斯(Grubbs)準則進行處理:根據誤差理論,要有效地剔除偶然誤差,一般要測量10次以上,兼顧到精度和響應速度,取15次為一個單位。在取得的15個數據中,有些可能含有較大的誤差,需要對它們分檢,剔除可疑值,提高自適應速度。對可疑值的剔除有多種準則,如萊以達準則、肖維勒(Chauvenet)準則、格拉布斯(Grubbs)準則等。以Grubbs準則為例,它認為若某測量值 xi對應的殘差Vi滿足下式 |Vi|=| xi-|>g(n,a)× σ(X) 時應將該數據舍去。式中,為n次采集到的AD 值的平均值,=(∑xi)/n ;σ(X)為測量數據組的標準差,由貝塞爾函數可得: σ(X)=[(∑Vi2 )/(n-1)]1/2;g(n, a)是取決于測量次數n和顯著性水平a (相當于犯“棄真” 錯誤的概率系數),a通常取0.01或0.05。通過查表可得:當 n=15時,a=0.05, g(n,a)=2.41。 把15次采集到的AD值存入一個數組中然后求平均值,計算殘差,求標準差σ(X)。將殘差絕對值與2.41倍的標準差σ(X)比較。剔除可疑值以后,再求平均值,求出新的平均值以后,應再重復以上過程,驗證是否還有可疑值存在。據我們對測量裝置大量的實際測試結果看,這樣做沒有什么必要,因為一般只有第一遍即可達到要求。 然而這種方法也有它的不足, 利用Grubbs準則需要處理大量的數據,而在一般的工業現場測試設備中,儀表結構大多采用嵌入式結構,如AVR單片機。這些MCU程序空間和數據空間有限,若處理大量數據,難以滿足資源要求。而且,由于Grubbs準則要求MCU進行大量數據處理,使得系統降低了信號采集速率,影響實時性。 3 AD7705內置的數字濾波器 上述的幾種軟件濾波方法對抑制個別的異常數據方面具有一定作用,然而對于由工頻干擾引起的平穩隨機干擾信號不太理想。隨著近幾年來集成電路的快速發展,一些數字濾波器也集成到數據處理芯片當中,而且數字濾波器的設計參數通過軟件可編程實現,具有極大的靈活性和實用性。 3.1 芯片介紹及應用 目前市場上由美國AD公司新近推出的AD7705 就是一例。它是內置了數字濾波器的帶信號調理電路的16位A/D轉換器件,可應用于低頻測量的2通道的模擬前端。該器件可以接受直接來自傳感器的低電壓輸入信號,然后產生串行的數字輸出,利用∑-Δ轉換技術實現16位無丟失代碼性能。選定的輸入信號被送到一個基于模擬調制器的增益可編程專用前端,片內數字濾波器處理調制器的輸出信號,通過片內控制寄存器可調節濾波器的截止點和輸出更新率,從而對數字濾波器的第一個陷波進行編程。 AD7705有以下幾個特點: (1)差分輸入通道ADC,具有16位無丟失代碼和0.003%非線形誤差; (2)MCU的接口為串行的三線接口模式; (3)可編程增益1~128,信號極性以及更新速率配置有工作寄存器,通過對寄存器的操作可以選擇等; (4) 器件還包括自標定和系統校準功能,以消除器件本身或系統的增益和編程誤差; (5) 內帶數字信號處理電路,由軟件可編程進行設置。 引腳排列如圖1。 主要管腳說明如下: MCLK IN:為轉換器提供主時鐘信號,能以晶體/諧振器或外部時鐘的形式提供。 MCLK OUT:當主時鐘為晶體/諧振器時,晶體諧振器被接在MCLK IN和MCLK OUT之間;如果在MCLK IN引腳處連接一個外部時鐘,MCLK OUT將提供一個反向時鐘信號。 CS :片選,低電平有效的邏輯輸入。 A1N2(+)[A1N1]:對于AD7705,差分模擬輸入通道2的正輸入端;對于AD7706,模擬輸入通道1的輸入端。 A1N1(+)[A1N2]:差分模擬輸入通道1的正輸入端。 A1N1(-)[COMMON]:差分模擬輸入通道1的負輸入端。 A1N2(-)[A1N3]:差分輸入模擬通道2的負輸入端。 DRDY :邏輯輸出。這個輸出端上的邏輯低電平表示可從AD7705的數字寄存器獲取新的輸出字。 DOUT:串行數據輸出端。 DIN:串行數據輸入端。 SCLK:串行時鐘,施密特邏輯輸入。 從AD轉換器件發展趨勢來看,目前的16位A/ D轉換器除具有較高的轉換精度外,還具有高度的集成化、可編程等特點 [2,3]。AD7705符合這些特點,其簡化的應用電路如圖2。 圖2給出了一個完整的前向測試通道,圖中 AD7705可直接接收傳感器輸入信號,而不用外接信號調理電路,模擬量輸出增益可實現軟件可編程調節。輸出的AD值通過SPI三線口模式發送給MCU。圖中,MCU采用的是P87LPC764,它是 PHILIPS公司新推出的增強型8位單片機,內核與MCS51系列兼容,內置電源檢測、看門狗WDT、 IIC總線等資源。 AD7705的數據接口采用了SPI接口標準。SPI 接口利用4根線可完成主從之間的數據通信。接口非常方便。這4根口線分別為時鐘線(SCLK)、數據輸入線(SDI)、數據輸出線(SDO)和片選線(CS)。DIN線用來向片內寄存器傳輸數據,而DOUT線用來訪問寄存器里的數據。SCLK是串行時鐘輸入,所有的數據傳輸都和SCLK信號有關。DRDY線作為狀態信號,以提示數據什么時候已準備好從寄存器讀數據。輸出寄存器中有新的數據時,DRDY變為低電平,在數據寄存器更新前,若DRDY變為高電平,則提示這個時候不讀數據,以免在寄存器更新的過程中讀數據。CS作為片選信號,在本電路中由于只用一片AD7705故CS端接地。 3.2 低通濾波及陷波處理 AD7705包含一個片內低通濾波器,用它處理器件的∑-Δ調制器的輸出信號。所以,該器件不僅提供模數轉換功能,而且還具備一定的濾波能力。AD7705內嵌了數字低通濾波器,數字濾波發生在模-數轉換之后,它能消除模-數轉換過程中產生的噪音。此外,數字濾波器容易實現可編程性。依靠數字濾波器設計,用戶可以編程截斷頻率和輸出更新頻率。 AD7705的數字濾波器是一個低通(sin x/x)3 濾波器(也稱為sinc3),其在Z 域的轉換功能可描述為, 在3次域可描述為, 圖3是截止頻率為15.72Hz的濾波器頻率響應,這一頻率與濾波器的第一個陷波頻率(50Hz)對應,這曲線顯示從直流到300Hz。在數字濾波器采樣頻率的兩邊這個頻率曲線各重復一次。這種濾波器響應與一個平均濾波器的相似。因此,圖中的輸出速率為50Hz,濾波器的第一個陷波頻率為50Hz。這種(sin x/x)3 濾波器的陷波位置多次在第一個陷波的倍數處重復。在這些陷波處濾波器提供大于100dB 的衰減。 AD7705內部帶有數字濾波器,具有抑制干擾功能。對于50Hz的工頻干擾在第一陷波位置已衰減180dB,這樣有效抑制工頻干擾。另外,我們在每次采集AD值時,每采集10個AD值作為一組數據,去除其中的最大值,最小值而取剩余的8個A/D轉換值的平均值,這樣可有效去除數據隨機誤差。 |