鮮鴻宇, 鄧 蕾, 湯寶平, 肖 鑫
(重慶大學(xué) 機(jī)械傳動(dòng)國(guó)家重點(diǎn)實(shí)驗(yàn)室,重慶 400030)
無(wú)線傳感器網(wǎng)絡(luò)(Wireless Sensor Networks, WSNs)應(yīng)用于機(jī)械振動(dòng)監(jiān)測(cè)往往需要多測(cè)點(diǎn)同步采集[1-4],同步采集精度的高低直接影響信號(hào)采集的有效性和狀態(tài)分析結(jié)果的好壞[5-8]。晶振偏移是影響同步采集精度的一個(gè)重要因素[9-10],為節(jié)點(diǎn)提供時(shí)鐘的晶振頻率會(huì)隨外部環(huán)境變化發(fā)生偏移,使各節(jié)點(diǎn)采樣間隔存在差異,造成同步誤差累積,因此需要對(duì)晶振偏移進(jìn)行補(bǔ)償。采用不同采樣模式模數(shù)轉(zhuǎn)換器(Analog-to-Digital Converter, ADC)的WSN節(jié)點(diǎn)需要不同的晶振偏移補(bǔ)償方法,ADC的采樣模式有以下兩種:①到達(dá)采樣點(diǎn)時(shí),為ADC輸入相應(yīng)數(shù)量(由控制域位數(shù)和ADC位數(shù)確定)的時(shí)鐘脈沖,時(shí)鐘脈沖的微小抖動(dòng)對(duì)其采集精度影響可以忽略,只需保證采樣頻率準(zhǔn)確即可;②ADC需要連續(xù)精準(zhǔn)的采樣時(shí)鐘,常結(jié)合過(guò)采樣技術(shù)(采樣時(shí)鐘大于采樣頻率)來(lái)提高模數(shù)轉(zhuǎn)換精度。針對(duì)采用第①種采樣模式ADC的無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn),黃慶卿等[11-12]分析晶振的非理想特性造成采樣間隔抖動(dòng),并提出補(bǔ)償算法抑制同步累積誤差,Xiao等[13]校準(zhǔn)信標(biāo)在網(wǎng)關(guān)節(jié)點(diǎn)到采集節(jié)點(diǎn)間的傳輸時(shí)延,補(bǔ)償路由節(jié)點(diǎn)與采集節(jié)點(diǎn)的晶振偏移,實(shí)現(xiàn)多跳無(wú)線傳感器網(wǎng)絡(luò)同步采集;針對(duì)采用第②種采樣模式ADC的無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn),曾貴偉等[14]設(shè)計(jì)了一種采用24bits∑-Δ型ADC ADS1271的機(jī)械振動(dòng)無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn),該ADC在低功耗模式下完成一次數(shù)據(jù)轉(zhuǎn)換需要512個(gè)時(shí)鐘脈沖,微控制器無(wú)法進(jìn)行晶振偏移補(bǔ)償。因此,針對(duì)采用第②種采樣模式ADC的無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn),考慮到節(jié)點(diǎn)功耗和晶振偏移補(bǔ)償對(duì)微控制器的處理性能要求,本文采用24 bits SAR ADC AD7766-1,完成一次數(shù)據(jù)轉(zhuǎn)換只需16個(gè)時(shí)鐘脈沖,在50 kHz采樣頻率下,需要800 kHz連續(xù)采樣時(shí)鐘,微控制器可以有效對(duì)其進(jìn)行晶振偏移補(bǔ)償。
針對(duì)采用連續(xù)高頻采樣時(shí)鐘ADC的WSN節(jié)點(diǎn)存在同步累積誤差的問(wèn)題,提出了一種基于晶振偏移補(bǔ)償?shù)耐嚼鄯e誤差抑制方法,通過(guò)補(bǔ)償晶振偏移,提供連續(xù)精準(zhǔn)的高頻采樣時(shí)鐘,消除各節(jié)點(diǎn)間采樣間隔差異,在連續(xù)數(shù)據(jù)采集過(guò)程中保持同步精度,實(shí)現(xiàn)機(jī)械振動(dòng)無(wú)線傳感器網(wǎng)絡(luò)高精度同步采集。
基于連續(xù)高頻采樣時(shí)鐘ADC的WSN節(jié)點(diǎn)硬件架構(gòu),如圖1所示。采用雙核心處理架構(gòu),核心1 STM32F405負(fù)責(zé)信號(hào)采集和數(shù)據(jù)處理,核心2 CC2530負(fù)責(zé)網(wǎng)絡(luò)的組建和維護(hù),兩者協(xié)同工作,減少采集控制和網(wǎng)絡(luò)維護(hù)的耦合性。設(shè)計(jì)低噪聲電源管理方案,隔離數(shù)字電路和模擬電路噪聲串?dāng)_;采用IEPE加速度傳感器,提高采集信號(hào)的信噪比;設(shè)計(jì)截止頻率動(dòng)態(tài)可調(diào)的抗混疊低通濾波器和信號(hào)差分化的信號(hào)調(diào)理電路,有效濾除高頻噪聲和抑制共模干擾。采用專(zhuān)用于振動(dòng)分析的24 bits SAR ADC AD7766-1,最高采樣頻率為64 kHz,具有10.5 mW的超低功耗,提高模數(shù)轉(zhuǎn)換精度。在保證信號(hào)采集幅值精度和頻率精度的前提下,兼顧了節(jié)點(diǎn)功耗和晶振偏移補(bǔ)償對(duì)微控制器的處理性能要求。
機(jī)械振動(dòng)無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的采樣時(shí)鐘一般由微控制器內(nèi)部定時(shí)器提供,或者由獨(dú)立外部晶振引入微控制器內(nèi)部分頻獲得,兩種方式都需要晶振提供時(shí)鐘。本文WSN節(jié)點(diǎn)的采樣時(shí)鐘由微控制器內(nèi)部定時(shí)器提供,采樣時(shí)鐘獲取流程如圖2所示。首先外部晶振時(shí)鐘經(jīng)過(guò)微控制器內(nèi)部鎖相環(huán)(Phase Locked Loop,PLL)倍頻得到系統(tǒng)時(shí)鐘,然后通過(guò)預(yù)分頻器獲得外設(shè)時(shí)鐘,最后通過(guò)定時(shí)器分頻獲得控制ADC模數(shù)轉(zhuǎn)換的采樣時(shí)鐘。
圖2 WSN節(jié)點(diǎn)采樣時(shí)鐘獲取流程Fig.2 The acquisition process of sampling clock for WSN node
基于連續(xù)高頻采樣時(shí)鐘ADC的WSN節(jié)點(diǎn)同步累積誤差產(chǎn)生原因,如圖3所示。晶振的振蕩頻率會(huì)隨著外部環(huán)境(如溫度等)的變化而產(chǎn)生偏移,使采樣時(shí)鐘產(chǎn)生偏移,造成同一采集節(jié)點(diǎn)不同時(shí)刻的采樣間隔出現(xiàn)偏差(Δt1≠Δt5);同一型號(hào)晶振的頻率特性也存在差異,使各采集節(jié)點(diǎn)間的采樣時(shí)鐘存在差異,導(dǎo)致不同采集節(jié)點(diǎn)的采樣間隔不相等(Δt1≠Δt2≠Δt3≠Δt4)。隨著采集過(guò)程的進(jìn)行,采樣間隔的差異會(huì)逐漸累積,高精度同步觸發(fā)采集的同步精度逐漸丟失,造成同步累積誤差,即Δe2, Δe3, Δe4。基于連續(xù)高頻采樣時(shí)鐘ADC的采集節(jié)點(diǎn),在一個(gè)采樣間隔內(nèi)需要多個(gè)連續(xù)精準(zhǔn)的采樣時(shí)鐘脈沖,各采集節(jié)點(diǎn)間采樣時(shí)鐘同步,才能保證采樣間隔的一致性以及采樣的準(zhǔn)確性。因此,為在連續(xù)數(shù)據(jù)采集過(guò)程中保持同步精度,需要對(duì)晶振偏移進(jìn)行補(bǔ)償,使各節(jié)點(diǎn)間采樣時(shí)鐘同步,避免同步累積誤差。
圖3 同步累積誤差產(chǎn)生原因Fig.3 The reason of synchronous accumulated error
無(wú)線通信協(xié)議采用TI公司設(shè)計(jì)的IEEE 802.15.4協(xié)議棧TIMAC,在信標(biāo)使能模式下,網(wǎng)關(guān)節(jié)點(diǎn)周期性發(fā)送信標(biāo),無(wú)線模塊將信標(biāo)中的幀起始界定符(Start of Frame Delimiter, SFD)信號(hào)直接在物理層傳輸?shù)讲杉K,減少SFD信號(hào)在協(xié)議棧層與層之間通信的隨機(jī)遲滯,節(jié)點(diǎn)間SFD信號(hào)最大延遲誤差的平均值為72 ns,可利用SFD信號(hào)作為同步信息。
晶振偏移補(bǔ)償?shù)耐嚼鄯e誤差抑制方法原理,如圖4所示。網(wǎng)關(guān)節(jié)點(diǎn)周期性發(fā)送信標(biāo),采集模塊定時(shí)器1捕獲信標(biāo)中的SFD信號(hào)并記錄捕獲時(shí)間,同時(shí)SFD信號(hào)觸發(fā)外部中斷,在外部中斷服務(wù)程序中讀取和保存定時(shí)器1的捕獲時(shí)間,并計(jì)算出當(dāng)前SFD信號(hào)間隔。由定時(shí)器1測(cè)得的SFD信號(hào)間隔與參考SFD信號(hào)間隔差值即是由晶振偏移引起。由于采樣時(shí)鐘頻率大于采樣頻率,考慮到采集節(jié)點(diǎn)的處理性能,設(shè)置定時(shí)器1的頻率與采集節(jié)點(diǎn)采樣頻率相同而不是與采樣時(shí)鐘頻率相同。根據(jù)SFD信號(hào)間隔差值,調(diào)整定時(shí)器1的計(jì)數(shù)溢出值,進(jìn)行晶振偏移補(bǔ)償,使各節(jié)點(diǎn)間定時(shí)器1的時(shí)鐘頻率同步,然后根據(jù)采樣頻率與采樣時(shí)鐘之間的比值關(guān)系,計(jì)算定時(shí)器2各個(gè)時(shí)鐘脈沖的計(jì)數(shù)溢出值,最后由定時(shí)器2輸出補(bǔ)償后的采樣時(shí)鐘fMCLK,消除節(jié)點(diǎn)間采樣間隔差異,抑制同步累積誤差。
圖4 晶振偏移補(bǔ)償?shù)耐嚼鄯e誤差抑制方法原理Fig.4 Synchronous accumulated error suppression method theory based on crystal offset compensation
節(jié)點(diǎn)接受到采集命令,完成同步觸發(fā)后開(kāi)始采集,晶振偏移補(bǔ)償?shù)耐嚼鄯e誤差抑制流程,如圖5所示,以最近一次SFD信號(hào)間隔S0作為參考,由于晶振偏移影響,之后的SFD信號(hào)間隔Si會(huì)與S0有偏差。 假設(shè)第j次采樣在第i+1個(gè)SFD信號(hào)間隔內(nèi), 第i次SFD信號(hào)間隔與參考值的偏差為: ΔSi=Si-S0, ΔSi可為負(fù)數(shù)。 在第i+1個(gè)SFD信號(hào)間隔中對(duì)ΔSi進(jìn)行補(bǔ)償,則每個(gè)采樣間隔需要補(bǔ)償?shù)挠?jì)數(shù)值為
D=ΔSi/N
(1)
式中:N為參考SFD信號(hào)間隔內(nèi)理論采樣次數(shù)。
圖5 晶振偏移補(bǔ)償?shù)耐嚼鄯e誤差抑制流程Fig.5 Flow chart of synchronous accumulated error suppression methed based on crystal offset compensation
在i個(gè)SFD信號(hào)間隔內(nèi)定時(shí)器1理論計(jì)數(shù)總次數(shù)為Oi=i×S0, 補(bǔ)償后的計(jì)數(shù)總次數(shù)為
Qi=Oi+Ri
(2)
式中:Ri為i個(gè)SFD信號(hào)間隔內(nèi)的補(bǔ)償計(jì)數(shù)值總和, 當(dāng)m=j%N=0時(shí)進(jìn)行更新Ri=Ri-1+ΔSi-1,m為第i+1個(gè)SFD信號(hào)間隔內(nèi)的采樣次數(shù)。
第j次采樣時(shí)定時(shí)器1補(bǔ)償后的計(jì)數(shù)總次數(shù)為
(3)
那么第j次采樣定時(shí)器1計(jì)數(shù)溢出值Cj=Tj-Tj-1, 更新定時(shí)器1計(jì)數(shù)溢出值,補(bǔ)償晶振偏移。
假設(shè)采樣時(shí)鐘頻率與采樣頻率的比值為k, 那么在一個(gè)采樣間隔內(nèi),定時(shí)器2需精確輸出k個(gè)時(shí)鐘脈沖。每次更新定時(shí)器1的計(jì)數(shù)溢出值后,需同時(shí)更新k個(gè)定時(shí)器2的計(jì)數(shù)溢出值,并且k個(gè)定時(shí)器2的計(jì)數(shù)溢出值的計(jì)數(shù)總次數(shù)為Cj, 避免定時(shí)器1和定時(shí)器2的時(shí)鐘產(chǎn)生相位誤差。那么第j次采樣時(shí),更新定時(shí)器2的k個(gè)時(shí)鐘脈沖計(jì)數(shù)溢出值根據(jù)式(4)和式(5)計(jì)算
Xj=Cj/k
(4)
Yj=Cj%k
(5)
式中:Yj個(gè)計(jì)數(shù)溢出值為Xj,k-Yj個(gè)計(jì)數(shù)溢出值為Xj-1。
為驗(yàn)證本文提出的基于晶振偏移補(bǔ)償?shù)耐嚼鄯e誤差抑制方法的有效性,以5個(gè)采集節(jié)點(diǎn)和1個(gè)網(wǎng)關(guān)節(jié)點(diǎn)構(gòu)成星型網(wǎng)絡(luò)進(jìn)行同步采集實(shí)驗(yàn),實(shí)驗(yàn)布置現(xiàn)場(chǎng)如圖6所示。節(jié)點(diǎn)采樣頻率設(shè)置為50 kHz,設(shè)置邏輯分析儀采樣頻率為100 MHz(最小分辨率為10 ns),用邏輯分析儀采集ADC的采樣時(shí)鐘信號(hào),分析各節(jié)點(diǎn)采樣時(shí)鐘時(shí)序變化,計(jì)算同步誤差。5個(gè)采集節(jié)點(diǎn)連續(xù)采集40 s,以節(jié)點(diǎn)1的采樣時(shí)鐘為基準(zhǔn)信號(hào),其他節(jié)點(diǎn)與節(jié)點(diǎn)1的采樣時(shí)鐘偏差即為該節(jié)點(diǎn)與節(jié)點(diǎn)1的同步誤差。
圖6 同步采集精度測(cè)試Fig.6 Synchronous acquisition accuracy test
未進(jìn)行晶振偏移補(bǔ)償?shù)耐秸`差,如圖7所示,同步誤差隨著采集時(shí)間的推移而累積,當(dāng)采集時(shí)間到40 s時(shí),最大同步誤差在節(jié)點(diǎn)3~節(jié)點(diǎn)1達(dá)到255.4 μs,節(jié)點(diǎn)2和節(jié)點(diǎn)5與節(jié)點(diǎn)1的同步誤差基本一致,說(shuō)明節(jié)點(diǎn)2和節(jié)點(diǎn)5的晶振特性類(lèi)似,但與其他節(jié)點(diǎn)晶振特性仍然有較大差異。
圖7 未晶振偏移補(bǔ)償?shù)耐秸`差Fig.7 Synchronous aequisition error with crystal offset not compensated
采用本文方法對(duì)晶振偏移進(jìn)行補(bǔ)償后的同步誤差測(cè)試結(jié)果如圖8所示,節(jié)點(diǎn)間最大同步誤差為0.64 μs,同步誤差沒(méi)有隨著采集時(shí)間的推移而累積,驗(yàn)證了本文晶振偏移補(bǔ)償方法抑制同步累積誤差的有效性。
圖8 晶振偏移補(bǔ)償后的同步誤差Fig.8 Synchronous aequisition error with crystal offset ompensated
為驗(yàn)證本文同步累積誤差抑制方法對(duì)實(shí)際信號(hào)同步采集性能,用Agilent 33522A函數(shù)信號(hào)發(fā)生器產(chǎn)生頻率為3 125 Hz,峰峰值為100 mV的標(biāo)準(zhǔn)正弦信號(hào),將此正弦信號(hào)同時(shí)接入兩個(gè)采集節(jié)點(diǎn),設(shè)置節(jié)點(diǎn)采樣率為50 kHz,連續(xù)采集25 s,對(duì)未采用本文方法和采用本文方法采集到的信號(hào)時(shí)域波形進(jìn)行對(duì)比分析。
未采用本文同步累積誤差抑制方法的兩采集節(jié)點(diǎn)前35點(diǎn)時(shí)域信號(hào)波形如圖9(a)所示,第1 000 000點(diǎn)(20 s)后的35點(diǎn)的時(shí)域波形如圖9(b)所示。在前35點(diǎn),由于采用同步觸發(fā)方法,兩節(jié)點(diǎn)幾乎同時(shí)采集,時(shí)域波形無(wú)明顯相位誤差,但在第1 000 000點(diǎn)后的35點(diǎn),兩節(jié)點(diǎn)的時(shí)域波形已經(jīng)有明顯的相位誤差,是因?yàn)闆](méi)有進(jìn)行晶振偏移補(bǔ)償,同步誤差逐漸累積。
圖9 未晶振偏移補(bǔ)償時(shí)域波形Fig.9 The time-domain waveform with crystal offset not compensated
采用本文同步累積誤差抑制方法的兩采集節(jié)點(diǎn)前35點(diǎn)時(shí)域信號(hào)波形如圖10(a)所示,第1 000 000點(diǎn)后的35點(diǎn)的時(shí)域波形如圖10(b)所示。可以看出兩采集節(jié)點(diǎn)在前35點(diǎn)和第1 000 000點(diǎn)后的35點(diǎn)的時(shí)域波形都沒(méi)有明顯的相位誤差,表明同步精度沒(méi)有隨著時(shí)間的推移而降低,同步誤差沒(méi)有累積,本文提出的晶振偏移補(bǔ)償方法可以在連續(xù)數(shù)據(jù)采集過(guò)程中保持同步精度。
圖10 晶振偏移補(bǔ)償后時(shí)域波形Fig.10 The time-domain waveform with crystal offset compensated
為解決采用連續(xù)高頻采樣時(shí)鐘ADC的機(jī)械振動(dòng)無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)存在同步累積誤差的問(wèn)題,分析基于此類(lèi)采樣模式ADC的WSN節(jié)點(diǎn)的同步累積誤差原因,提出了一種基于晶振偏移補(bǔ)償?shù)耐嚼鄯e誤差抑制方法,采用一個(gè)外部中斷和兩個(gè)定時(shí)器處理網(wǎng)關(guān)節(jié)點(diǎn)周期性發(fā)送信標(biāo)中的SFD信號(hào),利用SFD信號(hào)作為時(shí)間基準(zhǔn)補(bǔ)償晶振偏移,獲得連續(xù)精準(zhǔn)的高頻采樣時(shí)鐘,消除節(jié)點(diǎn)間采樣間隔差異,抑制同步累積誤差。通過(guò)實(shí)驗(yàn)測(cè)試,連續(xù)采集40 s,節(jié)點(diǎn)間最大同步誤差為0.64 μs;采用本文方法的兩個(gè)采集節(jié)點(diǎn)在連續(xù)采集同一信號(hào)源過(guò)程中沒(méi)有出現(xiàn)明顯相位誤差。以上結(jié)果表明,本文提出的晶振偏移補(bǔ)償方法能有效抑制機(jī)械振動(dòng)無(wú)線傳感器網(wǎng)絡(luò)同步累積誤差。