陳阿輝,黃繼偉,柯玉山,邱 菁
(福州大學(xué) 物理與信息工程學(xué)院,福州350116)
物位檢測儀表是在工業(yè)中廣泛應(yīng)用的智能測量儀表。目前,市面上的許多雷達(dá)物位檢測裝置都是以MCU+DSP結(jié)構(gòu)作為系統(tǒng)的核心處理器,即MCU負(fù)責(zé)接口控制,DSP則進(jìn)行測距算法的運(yùn)算。顯然,這種結(jié)構(gòu)的系統(tǒng)由于采用2個(gè)主處理器,使得硬件體積增大和成本增加,也給程序設(shè)計(jì)和更新帶來諸多不便。近些年,隨著ARM Cortex-M4處理器的快速發(fā)展,實(shí)現(xiàn)控制和信號處理兩大功能的數(shù)字信號控制器DSC芯片的成本越來越低,使得用DSC芯片來替代MCU+DSP結(jié)構(gòu)成為可能。在此,設(shè)計(jì)了一款物位檢測系統(tǒng),以ARM Cortex-M4的STM32F407芯片為核心處理器,其具有168 MHz的主頻和192 kB的內(nèi)部SRAM,外設(shè)資源豐富,帶有DSP指令集和硬件FPU單元,足以滿足系統(tǒng)的外設(shè)控制以及算法快速運(yùn)算的要求[1]。
該系統(tǒng)主要實(shí)現(xiàn)連續(xù)物位測量、上位機(jī)通信和報(bào)警輸出3個(gè)功能。物位測量采用測頻法,處理器每隔一段固定時(shí)間就對雷達(dá)收發(fā)模塊的差頻輸出信號進(jìn)行AD采樣并計(jì)算頻率,通過測距公式將頻率轉(zhuǎn)換為所測量的距離[2];上位機(jī)通信是處理雷達(dá)輸出數(shù)據(jù)的重要手段,任何需要處理的數(shù)據(jù)都可以傳輸給上位機(jī),方便對程序的調(diào)試;報(bào)警輸出是對工業(yè)生產(chǎn)中過程控制的重要保障,一旦物料的存儲高度低于物位低點(diǎn)或高于物位高點(diǎn),系統(tǒng)都會向進(jìn)出料控制裝置發(fā)出報(bào)警信號,以避免儲料倉中沒有物料或物料溢出的情況發(fā)生。
雷達(dá)測距采用調(diào)頻連續(xù)波FMCW技術(shù)[3],通過鋸齒波頻率調(diào)制,使得發(fā)射的信號在時(shí)間-頻率曲線上呈現(xiàn)鋸齒波形狀,發(fā)射信號在遇到物料表面后發(fā)生反射產(chǎn)生回波信號,回波信號在時(shí)間-頻率曲線上也呈現(xiàn)鋸齒波形狀,此時(shí)發(fā)射信號與接收信號的頻率差與反射目標(biāo)的距離成正比。雷達(dá)的鋸齒波頻率調(diào)制原理如圖1所示。
圖1 雷達(dá)的鋸齒波頻率調(diào)制原理Fig.1 Frequency modulation principle of sawtooth wave
根據(jù)圖中所示的三角關(guān)系,信號從發(fā)射到接收所經(jīng)過的時(shí)間Δt為
式中:B為頻率調(diào)制帶寬;T為鋸齒波周期即掃頻周期;fd為發(fā)射信號與回波信號的頻率差。
雷達(dá)測距原理如圖2所示。假設(shè)電磁波速度為c,則測量的距離D為
圖2 雷達(dá)測距原理Fig.2 Radar ranging principle
由于在雷達(dá)收發(fā)模塊中,調(diào)頻帶寬B和掃頻周期T均已知,發(fā)射信號與回波信號的頻率差就是差頻信號的頻率,因此,只需要精確求出差頻信號頻率就可以獲得所要測量的距離。
通過ADC接口對雷達(dá)收發(fā)模塊的差頻輸出信號進(jìn)行數(shù)據(jù)采樣,并根據(jù)采樣的數(shù)據(jù)運(yùn)行頻率測量算法,得出差頻信號的精確頻率,本系統(tǒng)采用FFT+Chirp-Z聯(lián)合算法計(jì)算信號頻率[4]。
FFT算法計(jì)算頻率的精度不高,頻率分辨率受采樣頻率和分析數(shù)據(jù)長度的影響,而DSP的計(jì)算能力有限,不可能通過無限制的增加分析數(shù)據(jù)長度提高頻率分辨率,因此,僅用FFT計(jì)算頻率不能得到很高的精度。
Chirp-Z變換常用于對某一頻率段進(jìn)行頻譜細(xì)化處理,與FFT聯(lián)合使用,可以在不改變采樣頻率和采樣長度的情況下,有效地提高信號的頻率估計(jì)精度。FFT+Chirp-Z聯(lián)合算法原理如圖3所示,首先通過FFT計(jì)算,找到信號在頻域中的幅度最大值,假設(shè)該最大值在第k根譜線,則對應(yīng)的信號頻率為f(k),這時(shí) FFT 的頻率分辨率 Δ f為
式中:fs為采樣頻率;N為采樣長度。為了提高信號的頻率估計(jì)精度,在 f(k-1)~ f(k+1)這一頻率段內(nèi)運(yùn)用Chirp-Z變換進(jìn)行M點(diǎn)的頻譜細(xì)化,則頻譜細(xì)化后信號頻率估計(jì)精度Δ fz為
圖3 FFT+Chirp-Z聯(lián)合算法原理Fig.3 Principle of FFT+Chirp-Z algorithm
只要M>3,使用Chirp-Z變換就可以起到提高頻率估計(jì)精度的作用。
系統(tǒng)由STM32F407最小系統(tǒng)、雷達(dá)收發(fā)模塊、報(bào)警輸出電路、LCD顯示電路、紅外遙控輸入電路和上位機(jī)等組成,其整體結(jié)構(gòu)如圖4所示。
圖4 系統(tǒng)的整體結(jié)構(gòu)Fig.4 Overall structure of the system
STM32F407作為信號處理和外設(shè)控制的核心,負(fù)責(zé)對雷達(dá)收發(fā)模塊的控制、同步檢測、差頻信號的AD采樣、控制繼電器輸出報(bào)警信號、LCD數(shù)據(jù)顯示、芯片內(nèi)部溫度傳感測量、紅外遙控處理、上位機(jī)串口通信以及測距算法實(shí)現(xiàn)等任務(wù)。LCD顯示與紅外遙控輸入模塊共同構(gòu)成了人機(jī)交互電路,可以實(shí)現(xiàn)對系統(tǒng)的調(diào)試任務(wù)。
該電路主要包括SPI接口、3個(gè)不同放大倍數(shù)的差頻信號輸出端口、芯片使能端口和同步檢測端口。STM32F407通過SPI接口控制雷達(dá)的鋸齒波調(diào)頻帶寬、掃頻周期、發(fā)射信號功率等;MUXOUT為同步檢測信號,當(dāng)1個(gè)鋸齒波掃頻周期開始時(shí),MUXOUT輸出低電平,AD開始采樣;當(dāng)掃頻周期結(jié)束時(shí),MUXOUT輸出高電平。通過MUXOUT信號可以精確定位每個(gè)掃頻周期。
該電路由繼電器DIP05-1A72-13L組成,繼電器的輸出端口外接物位控制裝置。當(dāng)系統(tǒng)檢測到物料高度到達(dá)警戒位時(shí),繼電器接通,外部的進(jìn)出料控制裝置采取相應(yīng)的措施增加或減少物料的投放。
人機(jī)交互電路的接口包括LCD 12864的數(shù)據(jù)和控制引腳、1個(gè)紅外遙控輸入引腳。LCD負(fù)責(zé)顯示測量值和菜單項(xiàng),菜單包括量程選擇、發(fā)射功率選擇、輸入距離補(bǔ)償、采樣通道選擇、顯示當(dāng)前溫度等。這些設(shè)置有助于系統(tǒng)調(diào)試。
在調(diào)試程序時(shí),需要經(jīng)常用到串口打印數(shù)據(jù)。本系統(tǒng)通過串口與上位機(jī)通信,接收來自上位機(jī)的命令,并返回上位機(jī)需要的數(shù)據(jù)信息。例如,經(jīng)過AD采樣的差頻信號數(shù)據(jù)可以通過串口傳輸給上位機(jī),并在上位機(jī)上顯示出波形曲線。串口電路采用USB轉(zhuǎn)串口芯片CH340G搭建,TXD和RXD分別接到STM32F407的PA10和PA9引腳,D+和D-接到5腳的mini USB接口。
本系統(tǒng)軟件設(shè)計(jì)在Keil5開發(fā)環(huán)境下進(jìn)行。系統(tǒng)軟件包括雷達(dá)收發(fā)模塊控制程序、信號采集程序、頻率測量算法、人機(jī)交互程序。系統(tǒng)的主程序流程如圖5所示。
圖5 系統(tǒng)的主程序流程Fig.5 Main program flow chart of the system
系統(tǒng)開始測距之前,先對雷達(dá)收發(fā)模塊的調(diào)頻帶寬、掃頻周期和信號發(fā)射功率進(jìn)行設(shè)置,使雷達(dá)模塊正常工作。處理器通過SPI與雷達(dá)模塊通信,雷達(dá)模塊包括調(diào)制信號發(fā)生器、發(fā)射機(jī)和接收機(jī),它們共用1個(gè)SPI接口,因此在進(jìn)行程序設(shè)計(jì)時(shí),需要根據(jù)不同的通信對象,設(shè)置相應(yīng)的片選和時(shí)序。收發(fā)模塊控制程序的流程如圖6所示。
圖6 雷達(dá)收發(fā)模塊控制程序流程Fig.6 Flow chart of radar transceiver module control program
本系統(tǒng)設(shè)置了2個(gè)ADC接口,ADC 1負(fù)責(zé)采樣STM32F407內(nèi)部溫度傳感器的溫度數(shù)據(jù);ADC 3用于對雷達(dá)差頻信號進(jìn)行數(shù)據(jù)采樣。AD采樣得到的信號并非標(biāo)準(zhǔn)的正弦波,差頻信號幅度在0~3.3 V之間變動。由于雷達(dá)模塊提供了3組差頻信號輸出,每一組的放大倍數(shù)不同,需要根據(jù)測量環(huán)境的不同選擇一組最合適的差頻信號進(jìn)行采樣。因此,在ADC3初始化時(shí)需設(shè)置3個(gè)AD采樣通道來分別對應(yīng)這3組差頻輸出,同時(shí)要使能ADC3的DMA傳輸通道,打開DMA傳輸完成中斷,并設(shè)置ADC3由定時(shí)器觸發(fā)采樣[5]。ADC3的信號采集程序流程如圖7所示。每次定時(shí)器觸發(fā)AD采樣的數(shù)據(jù)都會通過DMA傳送給數(shù)組保存,當(dāng)數(shù)據(jù)傳輸完成時(shí),DMA就會觸發(fā)傳輸完成中斷,并在中斷服務(wù)程序中關(guān)閉定時(shí)器,結(jié)束采樣。
圖7 信號采集程序流程Fig.7 Flow chart of signal acquisition program
人機(jī)交互程序?qū)崿F(xiàn)顯示測量值和系統(tǒng)調(diào)試2個(gè)功能。其中系統(tǒng)調(diào)試通過紅外遙控輸入實(shí)現(xiàn),可以通過界面的菜單操作進(jìn)行參數(shù)設(shè)置。人機(jī)交互程序包括LCD顯示和紅外遙控掃描,放在定時(shí)器中斷服務(wù)程序中運(yùn)行,定時(shí)器中斷的時(shí)間為1 s,即每經(jīng)過1 s,LCD界面更新1次,并且掃描1次紅外輸入。人機(jī)交互程序流程如圖8所示。
在測試之前,首先要了解測試用調(diào)頻連續(xù)波雷達(dá)的相關(guān)參數(shù)。其中,調(diào)頻帶寬B為1 GHz,掃頻周期T為60 ms,ADC采樣頻率fs為40 kHz,采樣長度N為2048點(diǎn)。
圖8 人機(jī)交互程序流程Fig.8 Flow chart of human-computer interaction program
先測試上位機(jī)的工作狀況,差頻信號采集界面如圖9所示。
圖9 差頻信號采集界面Fig.9 Interface of differential frequency signal acquisition
將系統(tǒng)的雷達(dá)天線垂直對準(zhǔn)墻壁,并將系統(tǒng)前后移動,記錄在不同距離下系統(tǒng)測距的結(jié)果,并與激光測距儀的測量結(jié)果進(jìn)行對比。測量結(jié)果如表1所示。由表可知,若以激光測距儀的測距結(jié)果為標(biāo)準(zhǔn)的話,本系統(tǒng)測量誤差的絕對值基本小于20 mm??梢?,所設(shè)計(jì)的雷達(dá)物位檢測系統(tǒng)的測距精度高,符合市場上對物位檢測裝置的要求。
表1 激光測距和本系統(tǒng)測距的對比Tab.1 Comparison of laser ranging and system ranging
針對市場上物位檢測裝置的應(yīng)用現(xiàn)狀,設(shè)計(jì)了一款基于STM32F407的雷達(dá)物位檢測系統(tǒng)。該系統(tǒng)具有連續(xù)物位檢測、報(bào)警輸出、人機(jī)界面實(shí)時(shí)調(diào)試等功能。經(jīng)過對雷達(dá)測距精度的測試,結(jié)果表明,系統(tǒng)的測量誤差小,測距精度高。下一步將把系統(tǒng)放到實(shí)際應(yīng)用場合進(jìn)行測試,并根據(jù)測試結(jié)果改進(jìn)測距算法,進(jìn)一步提高物位檢測系統(tǒng)的測量精度。
[1]廖義奎.ARM Cortex-M4嵌入式實(shí)戰(zhàn)開發(fā)精解:基于STM32F4[M].北京:北京航空航天大學(xué)出版社,2013.
[2]HyunEugin,Young-SeokJin.Development of 24GHz FMCW Level Measurement Radar System[C]//IEEE Radar Conference,2014:796-799.
[3]朱慶彬.FMCW液位測量雷達(dá)系統(tǒng)控制及回波信號處理電路設(shè)計(jì)[D].大連:大連海事大學(xué),2011.
[4]王春艷,黃仁欣,宗成閣,等.基于Chirp-Z變換的LFMCW系統(tǒng)測距算法仿真研究[J].微計(jì)算機(jī)信息,2005,21(26):188-192.
[5]STMicroelectronics.STM32F405xx/07xx Reference Manual[EB/OL].[2016-10].http://www.st.com.