電子臺秤稱重儀表設計方式實現(xiàn)了硬件數(shù)字濾波電路 本文介紹了用FPGA實現(xiàn)的FIR算法中電子臺秤稱重儀表設計中的應用,并對這種算法應用于電子臺秤稱重儀表中的結(jié)果做了分析。實踐證明此算法用于動態(tài)稱重具有良好的效果。 車輛在動態(tài)稱重時,作用在平臺上的力除真實軸重外,還有許多因素產(chǎn)生的干擾力,如:車速、車輛自身諧振、路面激勵、輪胎驅(qū)動力等,給動態(tài)稱重實現(xiàn)高精度測量造成很大困難。若在消除儀表干擾的過程中采用模擬方法濾波,參數(shù)則不能過大,否則將產(chǎn)生過大的延遲導致不能實現(xiàn)實時處理,從而造成濾波后的信號仍然含有相當一部分的噪聲。所以必須采用數(shù)字濾波消除干擾。 FIR濾波的原理及實現(xiàn) 本文采用FIR數(shù)字濾波,其原理如公式1所示。 Y(n)=(1) 其中h(k)為系統(tǒng)濾波參數(shù),x(n)為采集的信號,Y(n)為濾波后的輸出信號。 FIR濾波器的h(n)0≤n≤N-1 H(z)=(2) 在本文中N=17。由于h(n)具有對稱性質(zhì),即: h(n)=h(N-1-n)(n=0,1,...,(N-1)/2)(3) 這樣就可以把FIR濾波器設計成具有線性相位。利用這一情況,可以得到的乘法結(jié)構,需要(N+1)/2次乘法,僅是級聯(lián)或并聯(lián)結(jié)構所需次數(shù)的一半,因此,實際應用中多采用此方法。 我們選用17點的FIR濾波算法,這樣實現(xiàn)一次FIR卷積運算需要執(zhí)行9次乘法和16次加法。為了實現(xiàn)數(shù)據(jù)的實時處理,需要在20ms內(nèi)完成這個卷積運算,如果選用單片機89C51(12M晶振)則無法實現(xiàn)。所以我們選用了Altera公司的FLEX10K20。FLEX10K系列是工業(yè)界*個嵌入式的PLD,采用重復可構造的CMOSSRAM工藝,把連續(xù)的快速通道互連與*的嵌入式陣列結(jié)構相結(jié)合,同時也結(jié)合了眾多可編程器件的優(yōu)點來完成普通門陣列的宏功能。具有高密度、低成本、低功率等特點電子臺秤。 動態(tài)稱重儀表的硬件設計 由于我們選用的AD1674芯片轉(zhuǎn)換時間為10ms,而所設計的電路每隔20ms啟動轉(zhuǎn)換一次,所以有足夠的時間完成模數(shù)轉(zhuǎn)換。軸重臺的寬度為40cm,汽車通過軸重臺的zui大速度為15km/h,通過計算可知在這段時間里系統(tǒng)可采集4800個數(shù)據(jù)。由于前30ms是電子臺秤傳感器的反應時間,將剩下的數(shù)據(jù)進行FIR數(shù)字濾波后,噪聲會被有效的抑制。為了進一步平滑波形,對每8個數(shù)據(jù)做一次平均,這樣就消弱了由于汽車高速通過軸重臺時由于顛簸產(chǎn)生的尖峰信號。FPGA的每次濾波包含有FIR運算和8個數(shù)據(jù)的平均值運算,完成一次濾波就會向單片機發(fā)一個中斷請求,此時單片機讀取濾波后的數(shù)據(jù)。由于我們選用的A/D轉(zhuǎn)換器是12位,而單片機89C51是8位的,所以經(jīng)過處理后的數(shù)據(jù)必須分兩次讀入。*次讀入低8位,第二次讀入高4位,然后對數(shù)據(jù)處理。此時我們可以認為單片機接收的數(shù)據(jù)為濾波后不含有噪聲的數(shù)據(jù)。根據(jù)軸重稱量的波形圖可以知道,只要求出此時的zui大值就是汽車的真實重量。 在此儀表中,串行口即用來顯示也用來通訊,我們可以通過FPGA很容易實現(xiàn)切換。所示,當控制信號為1的時候RXD、TXD用于顯示,而當控制信號為0的時候用于和上位機通訊。 我們選用加海明窗的理想低通濾波器,其歸一化截至頻率為0.25。汽車稱重信號為含有多種成分噪聲的直流信號所示,這1000個數(shù)據(jù)經(jīng)過FPGA的FIR濾波和8點數(shù)據(jù)平均后,提供給單片機125個數(shù)據(jù),其波形所示。 濾波之前的噪聲的峰峰值在0.1V左右,而此時的軸重信號為1,這將嚴重影響測量精度。濾波后我們看到情況得到了明顯的改善,噪聲信號的峰峰值被抑制在0.02V的范圍內(nèi),大大改善了信噪比,從而提高了測量精度。 總結(jié) 這種電子臺秤稱重儀表設計方式不但實現(xiàn)了硬件數(shù)字濾波電路,而且減少了許多門電路和組合邏輯電路。用比較少的器件實現(xiàn)了比較復雜的功能,減少了故障率。用此方法設計的汽車動態(tài)稱重儀表具有良好的實時性和較高的精度,現(xiàn)已投入批量生產(chǎn)。 |