王曉品
(廣州軟件學院 電子系,廣東 廣州 510990)
通信鏈路是由大量分布于監(jiān)測區(qū)域的通信節(jié)點通過無線傳輸形成的動態(tài)組織。由于通信鏈路節(jié)點之間距離較遠,且運行環(huán)境不穩(wěn)定,通信鏈路會受到很多隨機干擾,這就導致了鏈路中斷、傳輸延遲長、誤碼率高的問題[1-2]。通過對通信鏈路信息進行采集,可以隨時了解通信系統(tǒng)中各節(jié)點以及各鏈路的性能及狀態(tài)信息,繼而通過可靠調(diào)節(jié),可有效保障通信系統(tǒng)的平穩(wěn)與安全[3-4]。
文獻[5]設計基于串行通信的數(shù)據(jù)采集系統(tǒng),利用串行通信接口對波特率進行自動識別,并結(jié)合參數(shù)傳感器對通信特點進行對比分析,從而進行參數(shù)的分類識別,繼而實現(xiàn)數(shù)據(jù)信息的有效采集,但該系統(tǒng)采集精準度較低,難以適用于遠程通信環(huán)境。文獻[6]利用單片機與專用AD采集芯片構(gòu)造數(shù)據(jù)采集系統(tǒng),將STM32RCT6作為主控芯片,配合ADC128D818模數(shù)轉(zhuǎn)換芯片,實現(xiàn)了八通道實時數(shù)據(jù)采集,但該系統(tǒng)的應用并未消除數(shù)據(jù)差異較大的現(xiàn)象,導致數(shù)據(jù)采集結(jié)果有效完整度較差。文獻[7]設計基于嵌入式系統(tǒng)的參數(shù)采集系統(tǒng),利用GPS技術(shù)制定參數(shù)檢測裝置,并利用LabVIEW開發(fā)嵌入式系統(tǒng)的軟件部分,通過傳輸控制協(xié)議來實現(xiàn)數(shù)據(jù)信息的實時采集,但嵌入式系統(tǒng)是一種低速度、低功耗的短距離無線通信技術(shù),需根據(jù)用戶端需求來確定應用層,導致數(shù)據(jù)傳輸延時增大。
卡爾曼濾波可結(jié)合系統(tǒng)狀態(tài)方程觀測其輸入、輸出數(shù)據(jù)的狀態(tài),從而對系統(tǒng)狀態(tài)進行最優(yōu)估計的一種過程。由于待觀測的數(shù)據(jù)中除有效信息外還包含環(huán)境噪聲等干擾信息,因此,最優(yōu)估計過程也可以被視為是一種通過高效處理觀測值并進行優(yōu)化計算來實現(xiàn)干擾過濾、還原真實數(shù)據(jù)的過程。因此,為解決傳統(tǒng)方法的不足,本研究基于Karman濾波算法設計了一種新的通信鏈路環(huán)境參數(shù)數(shù)據(jù)采集系統(tǒng)。
通信鏈路環(huán)境參數(shù)采集系統(tǒng)的硬件主要分為前端數(shù)據(jù)采集和后臺數(shù)據(jù)傳輸控制2部分,利用模塊化設計的形式滿足環(huán)境參數(shù)的采集、傳輸和控制。
在硬件中,設計利用STM32處理器解決系統(tǒng)功耗高的問題,當采集數(shù)據(jù)過大或過小時,報警電路可發(fā)出警告。同時,利用配置去耦電容和設計地線的方式增強系統(tǒng)硬件的抗干擾性,從而有效降低數(shù)據(jù)采集和傳輸延遲。
本研究設計利用STM32處理器作為微控制器解決系統(tǒng)功耗高的問題,將其以接口的方式實現(xiàn)與上位機之間的數(shù)據(jù)傳輸。由于STM32處理器的處理速度快、代碼量少,且其中的嵌入式快速中斷控制器支持延時操作和實時性能[8-9],因此,該研究設計利用6個CPU周期喚醒系統(tǒng)待機狀態(tài),從而有效改善了系統(tǒng)功耗高的問題。
設計數(shù)據(jù)采集模塊實現(xiàn)系統(tǒng)前端數(shù)據(jù)采集功能,其主要負責完成環(huán)境參數(shù)采集和無線數(shù)據(jù)傳輸任務。環(huán)境溫度和濕度數(shù)據(jù)由分布于監(jiān)測區(qū)域內(nèi)的各傳感節(jié)點采集,利用單片機對采集過程進行控制和處理后發(fā)送到協(xié)調(diào)器。
在數(shù)據(jù)采集過程中,利用電容感濕元件測量環(huán)境濕度,利用NTC感溫元件測量環(huán)境溫度,二者通過單總線接口與單片機相連。在這種連接方式下,系統(tǒng)的電路結(jié)構(gòu)簡單、功耗低,使得數(shù)據(jù)采集過程耗時較短[10-12]。然而,2種測量元件會將采集的溫、濕信號以電信號的形式輸出,此時的信號強度太弱[13-14]。因此,還需通過A/D轉(zhuǎn)換電路對電信號進行轉(zhuǎn)換和釋放,并將其傳送到微控制器之中。
在采集的數(shù)據(jù)過大或過小時,報警電路會發(fā)出告警,其目的在于降低數(shù)據(jù)傳輸時延,實現(xiàn)采集數(shù)據(jù)的實時傳輸。報警電路的主要結(jié)構(gòu)包括蜂鳴器、晶體管、電路保護電阻。報警電路的輸入接口與STM32處理器管腳相連,用于直接控制電平的高低。當采集的數(shù)據(jù)過大或過小時,在處理器的控制下,蜂鳴器發(fā)出振動告警。
通信鏈路所處的環(huán)境不穩(wěn)定,在一些環(huán)境惡劣的監(jiān)控區(qū)域,環(huán)境噪聲干擾會破壞控制程序,使參數(shù)采集結(jié)構(gòu)產(chǎn)生誤差[15-17]。因此,若想實現(xiàn)通信鏈路環(huán)境參數(shù)的有效采集,系統(tǒng)必須具備較強的穩(wěn)定性和抗干擾能力。一般來說,通信鏈路中的干擾源主要為射頻噪聲信號,故在系統(tǒng)硬件設計中采取了如下抗干擾措施:
1) 去耦電容配置。在系統(tǒng)綜合電路板中,由于各元件的功耗不同,地線上的電位差會比較大[18]。為抑制由電位差引起的通信鏈路環(huán)境噪聲,本研究在電源線和地面之間安裝了電容器。電解電容配置在集成電路芯片上,與電源引腳相連。利用小電容去除高頻干擾信號,利用大電容去除低頻干擾信號。電容應安裝在芯片引腳附近,盡可能縮短引線長度,高頻旁路電容不作引線。
2) 地線設計。使地線成環(huán)可顯著提高數(shù)據(jù)采集系統(tǒng)的抗噪性能[19-20]。因此,系統(tǒng)硬件電路與數(shù)字電路地線應分開,并采用單點連接的形式,避免噪聲干擾信號從地線進入數(shù)字電路。
系統(tǒng)硬件部分利用數(shù)字式溫濕度傳感器采集鏈路環(huán)境信息,并通過A/D轉(zhuǎn)換信號形式。同時,結(jié)合STM32處理器改善系統(tǒng)功耗高的問題,利用報警電路避免采集數(shù)據(jù)過大或過小問題,再通過去耦電容配置和地線實現(xiàn)抗干擾設計,從根本上有效降低了數(shù)據(jù)傳輸時延。在此基礎上,利用卡爾曼濾波算法進一步去除環(huán)境噪聲,實現(xiàn)環(huán)境參數(shù)數(shù)據(jù)完整、高效采集。
傳統(tǒng)的濾波方法是在假設信號和噪聲都處于平穩(wěn)的過程,利用最優(yōu)化方法對信號真值進行估計,從而達到濾波的目的。而卡爾曼濾波無需這些假設條件。在卡爾曼濾波算法中,首先對某時刻系統(tǒng)的擾動和觀測誤差(即噪聲)展開統(tǒng)計,然后在線性狀態(tài)空間表示的基礎上,通過處理含噪的觀測信號求得誤差最小時真實信號的估計值,從而排除數(shù)據(jù)中噪聲和干擾信息的影響。
濾波是去除環(huán)境噪聲、還原真實數(shù)據(jù)的一種數(shù)據(jù)處理技術(shù),卡爾曼濾波在測量方差已知的情況下能夠從一系列存在測量噪聲的數(shù)據(jù)中估計動態(tài)數(shù)據(jù)的狀態(tài)。通過Multi-wavelet多小波工具箱對采集到的環(huán)境參數(shù)進行初步消噪,根據(jù)噪聲估計量得到噪聲方差,同時計算誤差值,然后根據(jù)卡爾曼濾波過程判斷迭代結(jié)果是否為最優(yōu)估計值。
描述卡爾曼濾波算法狀態(tài)方程可表示為
(1)
式中:T(t)為計算周期;s(t)為通信鏈路數(shù)據(jù)包傳輸時延變化率;v(t)為通信鏈路數(shù)據(jù)包傳輸時延變化速率;si≥1為常值系數(shù)。上述狀態(tài)方程描述了影響通信鏈路數(shù)據(jù)包傳輸時延的參數(shù)時間函數(shù)。為保證數(shù)據(jù)包采集周期一致,分析數(shù)據(jù)包確認信號排隊狀態(tài)。如果當前數(shù)據(jù)包排隊時延T1與上一個數(shù)據(jù)包確認信號排隊時延之和T2保持一致,那么不存在排隊時延。如果數(shù)據(jù)包傳輸完成之前存儲區(qū)內(nèi)存已滿,那么排隊時延不再增長,這時排隊時延值達到最大。通過已知的實測數(shù)據(jù)來估計狀態(tài)變量建立狀態(tài)方程模型,狀態(tài)變量應包含引起系統(tǒng)整體變化的變量。狀態(tài)方程的表達式為
a(t)=βλ[a(t-1)]+nt-1
(2)
式中:β為排隊時延的控制參數(shù);λ(·)為數(shù)據(jù)采集向量方程;nt-1為在t-1時刻通信鏈路狀態(tài)噪聲。
返程時,數(shù)據(jù)包的返程時延測量可以通過時間戳函數(shù)來實現(xiàn),但所得到結(jié)果因受到空間環(huán)境隨機因素干擾,會增加數(shù)據(jù)包的返程時延。對于空間網(wǎng)來說,這部分的延遲變化很短,可忽略不計。
綜上所述,由于通信鏈路環(huán)境參數(shù)數(shù)據(jù)流具有連續(xù)、大規(guī)模、含有噪聲等特點,采集系統(tǒng)需要適應數(shù)據(jù)流變化特性??柭鼮V波可根據(jù)歷史狀態(tài)來估計當前狀態(tài),從而有效消除數(shù)據(jù)流中包含的噪聲,并實時跟蹤系統(tǒng)動態(tài)變化。因此,采用卡爾曼濾波算法可得到更精確的參數(shù)數(shù)據(jù)采集結(jié)果。
STM32處理器控制程序主要包括系統(tǒng)初始化以及對采集數(shù)據(jù)的電信號進行A/D轉(zhuǎn)換。采用接口方式實現(xiàn)STM32處理器與上位機之間的數(shù)據(jù)傳輸,當連接成功后開始數(shù)據(jù)采集、轉(zhuǎn)換和存儲,判斷數(shù)據(jù)是否超出標準并顯示數(shù)據(jù),實現(xiàn)數(shù)據(jù)的低延時傳輸。數(shù)據(jù)采集的過程中,首先讀取溫、濕度傳感器信號,再基于卡爾曼濾波算法濾除數(shù)據(jù)流中的環(huán)境噪聲,通過串口實現(xiàn)對數(shù)據(jù)采集和傳輸,并從根本上提高采集數(shù)據(jù)的數(shù)據(jù)有效完整度。圖1為具體的數(shù)據(jù)采集流程。
圖1 參數(shù)數(shù)據(jù)采集流程Fig.1 Parameter data acquisition process
為驗證上述基于卡爾曼濾波算法的通信鏈路環(huán)境參數(shù)采集系統(tǒng)的實際應用效果,利用Matlab曲線擬合工具設計如下仿真實驗。為了更加突出本文系統(tǒng)的實際應用性能,將文獻[5]中的基于串行通信的數(shù)據(jù)采集系統(tǒng)和文獻[7]中的基于嵌入式系統(tǒng)的數(shù)據(jù)無線傳感采集系統(tǒng)作為對比組,從數(shù)據(jù)傳輸時延和數(shù)據(jù)有效完整度2個角度,對比檢驗不同系統(tǒng)的實際應用性能。
實驗溫度為-15~50 ℃,誤差控制為±0.5 ℃;濕度傳感器分辨率為0.5%,誤差控制在±0.05%,濕度傳感器電源電壓為3 V,待機電流為0.5~1.5 mA,正常電流為1.5~2.5 mA,每1.5~2.0 s為1個采樣周期。
處理前后的通信鏈路含噪信號如圖2所示。
圖2 處理前后的通信鏈路含噪信號分析Fig.2 Analysis of noisy signal in communicationlink before and after processing
從圖2可知,在利用卡爾曼濾波的方式進行去噪前,通信鏈路的含噪信號波動幅度較大,但具有一定規(guī)律性,最高幅值為75 dB,最低幅值為-75 dB。經(jīng)過卡爾曼濾波器去噪處理后的波動幅度明顯減小,基本保持在-25~25 dB之間。在此基礎上對數(shù)據(jù)進行傳輸將提高參數(shù)采集的精度。
在通信環(huán)境中,每個客戶端節(jié)點通過一條與接入點相連的鏈路來傳輸信息的過程為單跳傳輸,每個客戶端節(jié)點都可以與一個或者多個對等節(jié)點進行直接通信來傳輸信息的過程則為多跳傳輸,二者是兩種不同的傳輸形式。為此,本研究在單跳與多跳2種傳輸模式下完成系統(tǒng)性能驗證。
3.3.1 數(shù)據(jù)傳輸時延對比 數(shù)據(jù)包長度分別為100、200、300、400、500、600 GB時,不同系統(tǒng)針對單跳數(shù)據(jù)包的傳輸時延對比情況如圖3所示。
圖3 單跳傳輸時延Fig.3 Single-hop transmission delay
從圖3可知,單跳數(shù)據(jù)傳輸時延與數(shù)據(jù)包長度有關(guān),當數(shù)據(jù)包長度較小時,傳輸時延較小。隨著數(shù)據(jù)包增大,誤碼率增大,其對數(shù)據(jù)傳輸過程的影響也較大,致使數(shù)據(jù)傳輸時延不斷增加。但本文系統(tǒng)的單跳傳輸時延可控制在15 s以下,文獻[5]系統(tǒng)和文獻[7]系統(tǒng)傳輸時延明顯高于本文系統(tǒng),同時,本文系統(tǒng)的傳輸時延受數(shù)據(jù)包長度影響較小。
數(shù)據(jù)包長度分別為100、200、300、400、500、600 GB時,不同系統(tǒng)針對多跳數(shù)據(jù)包的傳輸時延對比情況如圖4所示。
從圖4可知,文獻[5]與文獻[7]系統(tǒng)中,多跳傳輸時延也隨著數(shù)據(jù)包長度的增加而增加。而在本文系統(tǒng)中,隨著數(shù)據(jù)包長度的增加其數(shù)據(jù)傳輸延遲先增加后略降低,且其多跳數(shù)據(jù)傳輸時延仍保持在15 s以下。產(chǎn)生上述結(jié)果的原因在于在本文系統(tǒng)利用STM32處理器具有的處理速度快、代碼量少、嵌入式快速中斷控制器支持延時操作和實時性能的優(yōu)點,改善了系統(tǒng)功耗高的問題。同時,利用報警電路避免采集數(shù)據(jù)過大或過小問題,結(jié)合卡爾曼濾波過程有效降低了數(shù)據(jù)傳輸時延。
圖4 多跳傳輸時延Fig.4 Multi-hop transmission delay
3.3.2 數(shù)據(jù)有效完整度對比 為進一步突出本文系統(tǒng)的應用優(yōu)勢,在75 dB噪聲干擾的環(huán)境下,對不同系統(tǒng)采集數(shù)據(jù)的有效完整度展開對比分析,結(jié)果如表1所示。
表1 不同系統(tǒng)參數(shù)數(shù)據(jù)有效完整度對比Tab.1 Comparison of effective integrity of data of different system parameters
從表1可知,文獻[5]系統(tǒng)無論在單跳還是多跳傳輸下,其數(shù)據(jù)有效完整度都低于文獻[7]系統(tǒng)。但相比之下,本文系統(tǒng)的數(shù)據(jù)有效完整度更高,其數(shù)值始終不低于0.96。產(chǎn)生上述結(jié)果的原因在于本文系統(tǒng)利用卡爾曼濾波算法對采集到的鏈路環(huán)境信息展開濾波處理,降低了環(huán)境噪聲對采集結(jié)果的干擾,并實時根據(jù)環(huán)境動態(tài)變化調(diào)整采集參數(shù),進而在數(shù)據(jù)包長度不斷增加的情況下,數(shù)據(jù)有效完整度也能保持在較高水平。
1) 本文設計了一種高效的通信鏈路環(huán)境參數(shù)數(shù)據(jù)采集系統(tǒng),以STM32處理器為控制中心,構(gòu)建數(shù)據(jù)采集、抗干擾傳輸?shù)扔布K,利用報警電路避免采集數(shù)據(jù)過大或過小問題,并利用卡爾曼濾波器對采集到的數(shù)據(jù)信息進行去噪處理,有效降低了數(shù)據(jù)傳輸時延、提高了數(shù)據(jù)有效完整度。
2) 無論在單跳還是多跳傳輸?shù)那闆r下,本文系統(tǒng)的數(shù)據(jù)傳輸時延均較低,且參數(shù)數(shù)據(jù)有效完整度始終較高。
3) 由于研究時間的限制,該系統(tǒng)還具有改進和優(yōu)化的空間。就技術(shù)和應用而言,在接下來的研究中,可利用STM32高性能處理器在提高系統(tǒng)穩(wěn)定性的同時,可加速實現(xiàn)數(shù)據(jù)采集和處理。