李興霞
(佳木斯大學應用技術學院,黑龍江佳木斯154007)
農田數據采集是指將影響農作物生長的溫度、濕度、光照等物理量采集、轉換成數字量后,由計算機進行存儲、處理、顯示或打印的過程[1].數據采集系統(tǒng)的任務,就是采集傳感器輸出的信號,并轉換成計算機能識別的數字信號,送入計算機,根據不同的需要由計算機進行相應的計算和處理,得出所需的數據.數據采集系統(tǒng)性能的好壞,主要取決于它的精度和速度[2].現有數據采集系統(tǒng)大都采用先放大濾波,再采樣量化進入微處理器進行數據處理的慣用模式,當分辨率很高時,傳統(tǒng)的采用Nyquist抽樣速率的A/D轉換器實現就非常困難.過采樣技術能夠實現傳統(tǒng)ADC達不到的精度,己成為實現中低速、高精度模數轉換器的主要技術.本文在采用S3C44B0XI進行農田數據采集系統(tǒng)設計時,利用過采樣技術以較高的采樣頻率進行采樣,從而提高整個系統(tǒng)的可靠性、集成度,降低成本.
在采樣過程中首要的問題是采樣頻率的選擇,Nyquist采樣定理指出:若連續(xù)信號x(t)是有限帶寬的,其頻譜的最高頻率為fc,對x(t)采樣時,若保證采樣頻率fs≥2fc,那么,就可由采樣信號恢復出x(t).在實際對x(t)作采樣時,首先要了解x(t)的最高截止頻率fc,以確定應選取的采樣頻率fs.若x (t)不是有限帶寬的,在采樣前應使用抗混疊(Anti-aliasing)濾波器對x(t)作模擬濾波,以去掉大于fc的高頻成分.因此,在A/D轉換前就需要模擬低通濾波器具有尖銳的滾降特性,來限制模擬信號的頻譜.一個理想的濾波器應能讓所有低于fs的頻率通過,而完全阻隔掉所有大于fs的頻率.通常,濾波器和采樣頻率的選擇是將我們感興趣的頻帶限制在DC和fs之間.用更高的采樣頻率可以降低對低通濾波器的限制.
經模擬濾波后,模擬信號被采樣并轉換成數字量,因為數字域僅包含有限的字長,若要用它來表示連續(xù)信號,就要引入量化誤差,最大量化誤差為±0.5 LSB.因為一個N位的ADC的輸入范圍被分成2N個離散的數值,每一個數值由一個N位的二進制數表示,所以ADC的輸入范圍和字長N是最大量化誤差的一個直接表示,也是分辨率的一個直接表示.代表數字值的字長決定了信噪比,因此通過增加信噪比可以增加轉換的分辨率[3].
加入三角波信號可提高信噪比[4].如果輸入信號在兩個量化步長q1與q0之間,則它將被量化成q1或q0.當增加一個適當的三角波信號,并高速采樣,將會量化出一系列的q1與q0,這兩個值出現的比例就代表了此輸入信號在兩個量化步長之間的相對位置.要應用這種方法得到比較好的效果,三角波信號的幅度必須為(n+0.5)LSB,其中,n=0,1,2,…….因為有了高采樣速率,輸入信號的變化相對來說比較緩慢,當用一個三角波信號與此輸入信號進行疊加,并高速采樣時,轉換器產生一系列的0或1采樣值,0和1出現的比例就表示了這個在0和1 LSB之間的實際值.因此,加入三角波信號可提高信噪比.
圖1的采樣因子K為16,采樣值為0.563,得到了比原轉換結果更小的量化誤差.使用三角波調制過采樣技術所增加的信噪比可以表示為:
式中:RSNgain為增加的信噪比;K為采樣因子.
圖1 疊加三角波信號
使用增加三角波信號的過采樣每加一倍過采樣速率,就可以增加6 dB的分辨率.這種方法需要輸入信號在一個過采樣周期內變化不能超過(±0.5)LSB.該法產生的信噪比和分辨率的增加見表1.
表1 三角波調制的過采樣技術所產生的信噪比和分辨率的增加
系統(tǒng)構建了基于ARM&uc/OSII的嵌入式平臺,并在此基礎上實現了農田環(huán)境參數數據的采集.
圖2在S3C44B0XI上實現過采樣的工作原理示意圖.虛線框部分都可以用S3C44B0X來實現.PWM信號輸出可以用來產生三角波信號,數字濾波和抽取用軟件來實現.
圖2 用S3C44B0XI實現過采樣工作原理示意圖
圖3為三角波信號產生以及與輸入信號疊加的電路圖.S3C44B0XI的PWM信號的占空比在0~100% 之間,R3和C1作為積分器產生一個0~3 V之間的三角波信號輸入到運放.電路的輸出信號連至ADC的輸入.
圖3 三角波信號產生與輸入信號疊加
在進行農田環(huán)境數據采集的系統(tǒng)設計時,采取了如下措施來增加A/D轉換分辨率和信噪比.
1)在本系統(tǒng)中,依據信號頻率和需要增加的AD轉換分辨率,確定過采樣因子K=8,三角波信號頻率為100 kHz,AD轉換頻率為500 kHz,可以增加AD分辨率2 bit,使S3C44B0XI的AD轉換精度從10 bit增加到12 bit,并增加了信噪比.
2)對信號連續(xù)的多個周期進行采樣,對測量結果分別處理后,用得到的平均值作為最終的結果,可以進一步增加測量結果的信噪比.
A/D信號處理模塊提供的函數有:ad_init()和ad_read().
ad_init():A/D模塊初始化函數,設置相應寄存器和硬件端口.
ad_read():啟動并進行A/D轉換.輸入參數為A/D的工作方式和通道.返回A/D轉換的結果.
系統(tǒng)的A/D轉換做為一個任務進行處理.在主任務中創(chuàng)建如下任務負責進行A/D轉換.
OSTaskCreate(Task_ADC,(void*)0,(OS_ STK*)&Task_ADC_Stack[TASK_STACK_SIZE-1],Task_ADC_PRIO)
任務Task_ADC首先要完成A/D轉換的初始化工作.通過設置rCLKCON寄存器使系統(tǒng)的主時鐘進入ADC單元模塊,設置ADC轉換控制寄存器使ADC轉換模塊使能,設置ADC的轉換頻率.其中ADC轉換頻率計算公式為:(int)(MCLK/(2* (rADCPSR+1))/16).進行完初始化工作,就可以進行A/D轉換了.
過采樣技術雖然很早就被提出,但是進行過采樣的相關應用還相當少[5],特別是數據采集系統(tǒng)中,過采樣更是很少被涉及.本文對基于過采樣技術提高農田數據采集精度的方法進行了研究,并緊密結合實際對該方法的原理及應用進行了詳細的論述.該方法的研究對于過采樣技術在其他方面的應用有著很好的參考價值.
[1] 魏凱斌.基于嵌入式系統(tǒng)的農業(yè)采集傳輸關鍵技術研究[D].咸陽:西北農林科技大學,2007.
[2] 張小超,王一鳴,方憲法.精準農業(yè)的信息獲取技術[J].農業(yè)機械學報,2002,33(6):125-128.
[3] WALT K.如何認識模數轉換器的輸入噪聲[J].今日電子,2006(4):53-57.
[4] 李 丹.音頻信號的過采樣處理及轉換[D].上海:復旦大學,2007.
[5] 劉 濤.過采樣DAC中數字濾波器設計[D].合肥:合肥工業(yè)大學,2007.