曾倩科,賈云飛,張 珊,張佳慶
(1.南京理工大學(xué)機(jī)械工程學(xué)院,江蘇南京 210094;2.晉西工業(yè)集團(tuán)有限責(zé)任公司,山西忻州 030000)
近些年,對(duì)于無人機(jī)障礙物檢測(cè)的技術(shù)要求越來越高,傳統(tǒng)的雷達(dá)檢測(cè)手段已經(jīng)無法勝任對(duì)高速運(yùn)動(dòng)物體的檢測(cè)工作,所以開始研究與發(fā)展將性能更高的毫米波雷達(dá)作為無人機(jī)障礙物檢測(cè)的前端[1]。在這種趨勢(shì)的推動(dòng)下,全世界的科研人員開始關(guān)注毫米波雷達(dá)這個(gè)新興的技術(shù)。毫米波雷達(dá)是指發(fā)射毫米波的雷達(dá)[2],毫米波雷達(dá)同時(shí)具有微波制導(dǎo)和光電制導(dǎo)兩大優(yōu)點(diǎn),一躍成為近些年來研究的熱點(diǎn)[3]。2017 年,德州儀器Texas Instruments(TI)首次發(fā)布用于汽車和工業(yè)領(lǐng)域的毫米波雷達(dá)芯片,將毫米波雷達(dá)集成到一塊芯片上。但由于新一代毫米波雷達(dá)出現(xiàn)時(shí)間短、技術(shù)復(fù)雜等,因此毫米波雷達(dá)采集板卡主要從國外進(jìn)口[4],同時(shí)采集板卡造價(jià)過于昂貴,且作為單獨(dú)設(shè)備使用時(shí)不利于攜帶,也無法滿足無人機(jī)等小型化雷達(dá)系統(tǒng)的需求。毫米波雷達(dá)的數(shù)據(jù)量大、數(shù)據(jù)處理速度要求高,因此如何快速準(zhǔn)確可靠地讀取數(shù)據(jù)并解析是其難點(diǎn)[5]。
目前有基于單片機(jī)ARM 的數(shù)據(jù)采集系統(tǒng)[6]、基于DSP 的雷達(dá)采集系統(tǒng)[7],也有基于FPGA 的雷達(dá)采集系統(tǒng)[8],但是它們都是通過串口或者SPI 等其他的有線連接方式進(jìn)行數(shù)據(jù)傳輸,使用十分不方便,且不能遠(yuǎn)距離傳輸。對(duì)于毫米波雷達(dá)系統(tǒng)在無人機(jī)等方向上的應(yīng)用,無線數(shù)據(jù)采集是必不可少的。
基于上述一些問題,利用STM32F103C8T6、ESP-12F WiFi 芯片和Matlab App Designer,設(shè)計(jì)了一種可以進(jìn)行無線快速采集雷達(dá)數(shù)據(jù)的采集系統(tǒng),以實(shí)現(xiàn)毫米波雷達(dá)數(shù)據(jù)的快速準(zhǔn)確可靠采集與解析。
系統(tǒng)主要由數(shù)據(jù)采集模塊、數(shù)據(jù)傳輸模塊和數(shù)據(jù)處理模塊組成。系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì)如圖1所示。
圖1 系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì)圖
數(shù)據(jù)采集模塊主要包括IWR1642 BOOST 開發(fā)板、5 V-2 A 大電流電池。
數(shù)據(jù)傳輸模塊主要包括STM32F103C8T6 MCU控制器、ESP-12F WiFi模塊。
數(shù)據(jù)處理模塊主要包括一臺(tái)具有無線或者有線網(wǎng)卡的PC 機(jī),并裝有Matlab 軟件。
數(shù)據(jù)采集模塊負(fù)責(zé)毫米波雷達(dá)數(shù)據(jù)的快速采集,數(shù)據(jù)傳輸模塊負(fù)責(zé)毫米波雷達(dá)數(shù)據(jù)的快速傳輸,數(shù)據(jù)處理模塊負(fù)責(zé)毫米波雷達(dá)數(shù)據(jù)的快速解析與顯示。
數(shù)據(jù)采集模塊主要由TI 公司提供的IWR1642毫米波雷達(dá)開發(fā)板和一塊5 V-2 A 大電流電池組成。將雷達(dá)的配置文件和程序一起燒寫在IWR1642芯片的FLASH 中,使得IWR1642 毫米波雷達(dá)開發(fā)板上電就可發(fā)送毫米波,并接收多普勒回波數(shù)據(jù)。
2.1.1 毫米波雷達(dá)的原理
毫米波雷達(dá)可以分為脈沖雷達(dá)和連續(xù)波雷達(dá)[9],其中連續(xù)波雷達(dá)分類較多。該系統(tǒng)測(cè)試使用的IWR1642 毫米波雷達(dá)芯片就是一種線性調(diào)頻連續(xù)波(Linear Frequency Modulation Continuous Wave,LFMCW)毫米波雷達(dá)。連續(xù)波雷達(dá)系統(tǒng)工作時(shí),首先由合成器產(chǎn)生一個(gè)特定波形的雷達(dá)發(fā)射信號(hào),該雷達(dá)發(fā)射信號(hào)進(jìn)入兩條線路,一條經(jīng)由雷達(dá)發(fā)射天線發(fā)射;另一條直接進(jìn)入混頻器中,兩組信號(hào)完全相同[10]。當(dāng)從發(fā)射天線中發(fā)射的雷達(dá)發(fā)射信號(hào)碰到物體時(shí),會(huì)發(fā)生反射,從而被另一根雷達(dá)接收天線接收,此時(shí)便完成了一輪信號(hào)的發(fā)射和接收工作。信號(hào)的發(fā)射接收工作完成后,由混頻器將發(fā)射信號(hào)和接收信號(hào)合并到一起,產(chǎn)生一個(gè)新信號(hào)[11]。
2.1.2 IWR1642 毫米波雷達(dá)傳感器原理
該系統(tǒng)的數(shù)據(jù)采集模塊主要采用的是TI 公司的IWR1642 BOOST。IWR1642 毫米波芯片是一款能夠在76~81 GHz 頻帶中運(yùn)行且基于FMCW 雷達(dá)技術(shù)的集成式單芯片毫米波傳感器[12]。
IWR1642 可以發(fā)射高達(dá)4 GHz 的連續(xù)線性調(diào)頻脈沖(LFMCW)。該器件采用TI 的低功耗45 nm RFCMOS 工藝構(gòu)建,并且該解決方案在極小的封裝中實(shí)現(xiàn)了前所未有的集成度[13]。
IWR1642 包含一個(gè)具有內(nèi)置PLL 和模數(shù)轉(zhuǎn)換器的單片實(shí)時(shí)2 發(fā)送4 接收的系統(tǒng)。IWR1642 還集成了DSP 子系統(tǒng),該DSP 子系統(tǒng)包含TI 用于雷達(dá)信號(hào)處理的高性能C674x DSP,該器件包含一個(gè)基于ARM R4F 的處理器子系統(tǒng),該子系統(tǒng)負(fù)責(zé)前端配置、控制和校準(zhǔn)[14]。同時(shí)該芯片還有CAN 接口、SPI接口、UART 接口與外界進(jìn)行通信,因此,IWR1642 BOOST 完全可以用于文中系統(tǒng)的數(shù)據(jù)采集。
數(shù)據(jù)傳輸模塊主要由意法半導(dǎo)體STMicroelectronics(ST)公司的STM32F103C8T6 MCU 控制器和安信可科技公司的ESP8266 WiFi芯片組成。
在IWR1642 毫米波開發(fā)板采集到數(shù)據(jù)之后,STM32F103C8T6 通過串口2 讀取雷達(dá)數(shù)據(jù),然后通過終端將數(shù)據(jù)復(fù)制到串口3,串口3 又與ESP-12F 相連,將雷達(dá)數(shù)據(jù)通過WiFi 發(fā)送出去。數(shù)據(jù)傳輸模塊設(shè)計(jì)如圖2 所示。
圖2 數(shù)據(jù)傳輸模塊設(shè)計(jì)圖
STM32F103C8T6 是一款基于ARM Cortex-M 內(nèi)核STM32 系列的32 位微控制器,程序存儲(chǔ)器容量是64 kB,需要電壓范圍為2~3.6 V,工作溫度為-40~85 °C[15]。系統(tǒng)時(shí)鐘頻率是72 MHz,包含3 路USART串口。串口1 與IWR1642 的雷達(dá)數(shù)據(jù)配置串口相連,串口2 與IWR1642 的雷達(dá)數(shù)據(jù)發(fā)送串口相連,串口3 與ESP-12F 的接收串口相連。
ESP-12F 模塊是一款由安信可科技開發(fā)的WiFi模塊,該模塊核心處理器為ESP8266,在較小尺寸封裝中集成了業(yè)界領(lǐng)先的Tensilica L106 超低功耗32 位微型MCU,且?guī)в?6 位精簡(jiǎn)模式,主頻支持80 MHz和160 MHz,支持RTOS,集成Wi-Fi MAC/BB/RF/PA/LNA[16]。ESP8266是高性能無線SoC,以最低成本提供最大實(shí)用性,為WiFi功能嵌入其他系統(tǒng)提供可能。ESP8266 系統(tǒng)的整體電路設(shè)計(jì)如圖3所示。
圖3 ESP-12F系統(tǒng)整體電路設(shè)計(jì)圖
ESP-12F 的系統(tǒng)整體電路參考該數(shù)據(jù)手冊(cè)的電路圖,在UART 輸入輸出部分設(shè)計(jì)二極管保護(hù)電路,電源供電部分利用SY8120 電源轉(zhuǎn)換芯片將5 V 轉(zhuǎn)成3.3 V,轉(zhuǎn)換成功之后LED 燈會(huì)點(diǎn)亮。該電路的優(yōu)點(diǎn)是可以使輸出電流達(dá)到2 A 的大電流。通過P6 排針將ESP_VIN、GND、TXD0、RXD0、REST、GPIO_0 引腳引出,方便燒寫AT 指定固件。利用P1、P2 排針將ESP-12F 的輸入輸出引腳引出,并利用跳線帽決定它是否與STM32MCU 的串口相連。
STM32F103C8T6最小系統(tǒng)整體設(shè)計(jì)如圖4所示。
圖4 STM32F103C8T6最小系統(tǒng)整體設(shè)計(jì)圖
該系統(tǒng)的STM32F103C8T6最小系統(tǒng)的設(shè)計(jì)可靠且靈活,采用SP6203_3.3 電源轉(zhuǎn)換芯片將+5 V 轉(zhuǎn)化成+3.3 V,且轉(zhuǎn)換成功之后會(huì)有LED 燈點(diǎn)亮顯示。該系統(tǒng)引出SWO 程序燒錄下載口,晶振的濾波電路采用Π型濾波,設(shè)計(jì)復(fù)位開關(guān)用于程序的復(fù)位,即在程序運(yùn)行過程中出現(xiàn)系統(tǒng)卡死時(shí)可以復(fù)位重啟。在STM32F103C8T6 主控芯片的電源引腳周圍放置濾波電容,用于濾波。為了可以修改STM32F103C8T6 主控芯片的啟動(dòng)方式,將BOOT0 與BOOT1 引腳引出。
在STM32F103C8T6 最小系統(tǒng)整體設(shè)計(jì)中將串口1 接毫米波的配置接口,串口2 接毫米波的數(shù)據(jù)接口,串口3 接WiFi 接口。將數(shù)據(jù)傳輸系統(tǒng)用到的三個(gè)串口都用排針引出,方便后續(xù)系統(tǒng)調(diào)試。
毫米波雷達(dá)數(shù)據(jù)在被數(shù)據(jù)采集模塊采集到并經(jīng)過數(shù)據(jù)傳輸模塊傳輸?shù)接?jì)算機(jī)之后,計(jì)算機(jī)開始處理毫米波雷達(dá)數(shù)據(jù)。
2.3.1 數(shù)據(jù)處理算法
計(jì)算機(jī)接收到的雷達(dá)數(shù)據(jù)屬于原始雷達(dá)數(shù)據(jù)。計(jì)算機(jī)先判斷該數(shù)據(jù)是否是有效的點(diǎn)云數(shù)據(jù),若是,則根據(jù)TVL 格式進(jìn)一步解析出雷達(dá)數(shù)據(jù)中包含的范圍方位角、多普勒、信噪比、X軸位置、Y軸位置、X軸速度、Y軸速度、X軸加速度、Y軸加速度等信息,然后保存并顯示出來。毫米波雷達(dá)數(shù)據(jù)處理的算法流程如圖5 所示。
圖5 毫米波雷達(dá)數(shù)據(jù)處理的算法流程圖
2.3.2 數(shù)據(jù)處理的上位機(jī)說明
由于數(shù)據(jù)量大,且需要快速處理,所以用Matlab對(duì)數(shù)據(jù)進(jìn)行動(dòng)態(tài)實(shí)時(shí)分析[17]。為了方便人機(jī)交互,用Matlab App Designer 為該系統(tǒng)編寫了一套雷達(dá)數(shù)據(jù)快速接收與處理的上位機(jī)。Matlab 中可以接收WiFi傳回的數(shù)據(jù),并實(shí)時(shí)解析顯示雷達(dá)的有效信息。
在“WiFi連接”面板中首先選擇“協(xié)議類型”,選擇“TCP Client”類型,然后在“IP地址”中輸入對(duì)應(yīng)的IP地址,默認(rèn)的IP 地址為“192.168.29.240”,最后在“端口號(hào)”中輸入對(duì)應(yīng)的端口號(hào),默認(rèn)值為“8080”,然后點(diǎn)擊“開始”按鈕。如果連接成功,燈會(huì)變紅。實(shí)時(shí)接收WiFi 傳回來的原始雷達(dá)數(shù)據(jù),然后將范圍、方位角、多普勒、信噪比、X軸位置、Y軸位置、X軸速度、Y軸速度、X軸加速度、Y軸加速度等信息顯示出來。數(shù)據(jù)可以實(shí)現(xiàn)實(shí)時(shí)保存,還可以將處理后的數(shù)據(jù)保存下來。
TI 的毫米波雷達(dá)數(shù)據(jù)采用TLV 格式進(jìn)行存儲(chǔ)與傳輸。雷達(dá)每幀都會(huì)發(fā)送一個(gè)數(shù)據(jù)包,而每個(gè)數(shù)據(jù)包又有7 個(gè)不同的數(shù)據(jù)結(jié)構(gòu),如圖6 所示。
圖6 數(shù)據(jù)包格式
其中,F(xiàn)rame Header 表示幀頭。TLV 表示Type+Length+Value(類型+長(zhǎng)度+值)。
雷達(dá)數(shù)據(jù)由幀頭和TLV 數(shù)據(jù)組成,其中TLV 一共有三種數(shù)據(jù)分類,分別是Point Cloud TLV、Target List TLV 和Target index TLV,它們分別代表了三種類別的數(shù)據(jù),即2D 點(diǎn)云數(shù)據(jù)、目標(biāo)列表數(shù)據(jù)、目標(biāo)索引值數(shù)據(jù)。
每次數(shù)據(jù)的傳輸都以Frame Header 作為傳輸?shù)拈_始,F(xiàn)rame Header共有52 個(gè)字節(jié)長(zhǎng)度。
幀頭結(jié)構(gòu)體中包含了很多成員,這些成員所包含的物理意義依次為同步模式、SDK 版本類型、毫米波雷達(dá)板的平臺(tái)、傳輸時(shí)間、數(shù)據(jù)包的長(zhǎng)度、雷達(dá)數(shù)據(jù)的幀數(shù)、雷達(dá)數(shù)據(jù)的子幀數(shù)、啁啾處理幅度、幀幅度、串口發(fā)送時(shí)間、軌跡處理時(shí)間、TLV 數(shù)據(jù)數(shù)量、校驗(yàn)和。其中關(guān)鍵的成員是“sync(同步模式)”,因?yàn)椤巴侥J健笨梢杂脕砼袛嗬走_(dá)數(shù)據(jù)是否有效。“同步模式”的固定數(shù)據(jù)是“02 01 04 03 06 05 08 07”。只有以“同步模式”為開始的每幀雷達(dá)數(shù)據(jù)傳輸,才是有效的數(shù)據(jù)傳輸,其他情況是無效數(shù)據(jù)傳輸。因此,在數(shù)據(jù)處理中,檢測(cè)“同步模式”所在的位置很重要。
在幀頭之后的第一組TLV 數(shù)據(jù)就是2D 點(diǎn)云數(shù)據(jù)(Point Cloud TLV)。2D 點(diǎn)云數(shù)據(jù)包括檢測(cè)范圍、方位角、多普勒效應(yīng)和信噪比。2D 點(diǎn)云數(shù)據(jù)中的T1固定以十六進(jìn)制的“0x06 0x00 0x00 0x00”表示。2D 點(diǎn)云數(shù)據(jù)中L1(長(zhǎng)度)的大小和被測(cè)對(duì)象的數(shù)量有關(guān),公式為:
其中,a1是TLV 幀頭結(jié)構(gòu)體的大小,固定是8,b是2D 點(diǎn)云數(shù)據(jù)的結(jié)構(gòu)體的大小,固定是16,x1是點(diǎn)的個(gè)數(shù)。
在2D 點(diǎn)云數(shù)據(jù)之后的一組TLV 數(shù)據(jù)是目標(biāo)列表數(shù)據(jù)。目標(biāo)列表數(shù)據(jù)格式包括軌跡ID、X軸的位置、Y軸的位置、X軸的速度、Y軸的速度、X軸的加速度、Y軸的加速度、誤差協(xié)方差矩陣和控制函數(shù)。目標(biāo)列表數(shù)據(jù)中的T2固定以十六進(jìn)制的“0x07 0x00 0x00 0x00”表示。目標(biāo)列表數(shù)據(jù)中L2(長(zhǎng)度)的大小和被測(cè)對(duì)象的數(shù)量有關(guān),公式為:
其中,a2是TLV 幀頭結(jié)構(gòu)體的大小,固定是8,c是目標(biāo)列表數(shù)據(jù)的結(jié)構(gòu)體的大小,固定是68,x2是點(diǎn)的個(gè)數(shù)。
最后一組TLV 格式的數(shù)據(jù)是目標(biāo)索引值數(shù)據(jù)。目標(biāo)索引值數(shù)據(jù)中的V(有效值)是目標(biāo)ID號(hào),該值用來判斷該點(diǎn)是否是有效數(shù)據(jù)點(diǎn)。有效值在[0,249]之間,超出的值就是無效的值,說明該點(diǎn)是無效的點(diǎn)。目標(biāo)索引值數(shù)據(jù)中的T3固定以十六進(jìn)制的“0x08 0x00 0x00 0x00”表示。目標(biāo)索引值數(shù)據(jù)中L3(長(zhǎng)度)的大小和被測(cè)對(duì)象的數(shù)量有關(guān),公式為:
其中,a3是TLV 幀頭結(jié)構(gòu)體的大小,固定是8,x3是點(diǎn)的個(gè)數(shù)。
針對(duì)以上數(shù)據(jù)格式,用Matlab 軟件編寫了一套數(shù)據(jù)快速采集的算法。毫米波雷達(dá)數(shù)據(jù)是以十六進(jìn)制小端存儲(chǔ)在BOOST 上的SDRAM 中的。雷達(dá)數(shù)據(jù)處理方法是先將十六進(jìn)制的數(shù)據(jù)轉(zhuǎn)化成十進(jìn)制,然后通過typecast函數(shù)得到各個(gè)參數(shù)的具體值。由于在新版Matlab 中,如果數(shù)據(jù)以十六進(jìn)制存儲(chǔ)在矩陣中,數(shù)據(jù)輸出時(shí)會(huì)自動(dòng)以十進(jìn)制輸出,因此就不用人為地將十六進(jìn)制轉(zhuǎn)化成十進(jìn)制,所以該系統(tǒng)使用Matlab App Designer 編寫上位機(jī)進(jìn)行數(shù)據(jù)處理。
實(shí)驗(yàn)環(huán)境示意與實(shí)驗(yàn)測(cè)試的現(xiàn)場(chǎng)圖如圖7所示。
圖7 實(shí)驗(yàn)環(huán)境示意與實(shí)驗(yàn)測(cè)試的現(xiàn)場(chǎng)圖
根據(jù)實(shí)驗(yàn)要求,將毫米波雷達(dá)數(shù)據(jù)快速采集系統(tǒng)以一定的傾角固定在支架上,之后將依據(jù)TLV 格式數(shù)據(jù)編寫的毫米波雷達(dá)程序和雷達(dá)的基本配置燒寫到IWR1642 中,運(yùn)行程序,之后被測(cè)人員在雷達(dá)測(cè)試區(qū)域內(nèi)運(yùn)動(dòng),以產(chǎn)生目標(biāo)測(cè)試信號(hào),從而得到毫米波雷達(dá)的點(diǎn)云數(shù)據(jù)。然后利用Matlab App Designer 專門為該系統(tǒng)編寫的一套上位機(jī)對(duì)數(shù)據(jù)進(jìn)行解析,并將原始數(shù)據(jù)和解析后的數(shù)據(jù)分別保存在計(jì)算機(jī)中。
為了表達(dá)清晰,將實(shí)驗(yàn)結(jié)果繪制成表。實(shí)驗(yàn)結(jié)果中的各個(gè)參數(shù)如表1 所示。
表1 實(shí)驗(yàn)結(jié)果
數(shù)據(jù)表明,被測(cè)人員在相對(duì)于毫米波雷達(dá)測(cè)試系統(tǒng)的正前方1.954 3 m,相對(duì)于測(cè)試系統(tǒng)的偏移角度是-0.294 5 rad,在X軸距離是-0.9 m,Y軸距離是3.093 8 m,同時(shí)由于該測(cè)試時(shí)期的被測(cè)人員并未移動(dòng),所以X軸、Y軸方向的速度和加速度均為0。這些實(shí)驗(yàn)測(cè)試數(shù)據(jù)均與實(shí)際情況相符合,因此說明該系統(tǒng)的可靠性與可信性。
文中提出了一套基于STM32F103C8T6 和ESP-12F 的毫米波雷達(dá)數(shù)據(jù)無線采集系統(tǒng)設(shè)計(jì)。該系統(tǒng)利用PC 端的Matlab App Designer 設(shè)計(jì)了一套上位機(jī),作為數(shù)據(jù)處理模塊,以STM32F103C8T6 芯片和ESP-12 WiFi 模塊作為數(shù)據(jù)傳輸模塊,以IWR1642毫米波雷達(dá)設(shè)備和供電系統(tǒng)作為數(shù)據(jù)采集模塊。利用數(shù)據(jù)傳輸模塊與數(shù)據(jù)采集模塊以獲得毫米波雷達(dá)數(shù)據(jù),然后發(fā)送給數(shù)據(jù)處理模塊進(jìn)行數(shù)據(jù)解析處理。該系統(tǒng)擺脫了毫米波雷達(dá)數(shù)據(jù)有線傳輸?shù)氖`,將毫米波雷達(dá)數(shù)據(jù)直接通過WiFi 傳輸?shù)缴衔粰C(jī)中,為后續(xù)的毫米波雷達(dá)數(shù)據(jù)處理算法提供一套穩(wěn)定可靠的雷達(dá)數(shù)據(jù)采集系統(tǒng)。文中研究的雷達(dá)數(shù)據(jù)處理系統(tǒng)可延展性高,易于安裝和使用,方便拓展毫米波雷達(dá)的應(yīng)用場(chǎng)景,具有較高的實(shí)際使用價(jià)值。