孫 婷
(北京信息科技大學(xué) 信息與通信工程學(xué)院,北京 100083)
隨著科技發(fā)展,由中國的北斗、美國的GPS、俄羅斯的GLONASS、歐盟的GALILEO 組成的全球?qū)Ш叫l(wèi)星系統(tǒng)(Global Navigation Satellite System, GNSS)能夠在地球表面任意地點(diǎn)為任何用戶提供定位服務(wù)。然而,由于該系統(tǒng)存在自身的局限性,很難在微弱甚至沒有信號(hào)的環(huán)境中進(jìn)行定位。地質(zhì)勘測、礦產(chǎn)開采等戶外作業(yè)對于任何國家及社會(huì)的發(fā)展都具有重要作用。近年來,隨著煤礦、油氣資源勘探等應(yīng)用需求的不斷增加,對實(shí)現(xiàn)無GPS 信號(hào)的儀器定位提出了更高的要求。世界各國對于無線定位的研究主要集中在一般環(huán)境下即GPS 信號(hào)強(qiáng)的環(huán)境。針對微弱信號(hào)下的無線定位研究主要依靠軟件接收機(jī)的相關(guān)算法,算法難度和應(yīng)用成本較高。文獻(xiàn)[1]設(shè)計(jì)了弱GNSS 信號(hào)軟件接收機(jī),利用全比特補(bǔ)零算法捕獲信號(hào),基于非相干結(jié)構(gòu)的跟蹤環(huán)跟蹤信號(hào),通過BDS/GPS 粗時(shí)段導(dǎo)航偽距進(jìn)行定位。文獻(xiàn)[2]使用北斗二代信號(hào),結(jié)合頻率估計(jì)與定位算法PMF-FFT 實(shí)現(xiàn)了弱信號(hào)條件下的精確定位。文獻(xiàn)[3]使用GPS 和北斗系統(tǒng)混合定位來應(yīng)對西藏等弱信號(hào)區(qū)域的應(yīng)急無線通信。
目前針對弱信號(hào)條件下的定位已取得一定研究成果,但無信號(hào)條件下的研究仍處于初步階段,還須不斷完善。此外,有線單片機(jī)通信系統(tǒng)布線復(fù)雜、人力物力消耗過大、成本較高,不適用于需要大規(guī)模布置數(shù)據(jù)采集儀器的地質(zhì)勘探和煤礦開采等領(lǐng)域。基于上述研究現(xiàn)狀,本文從硬件設(shè)計(jì)出發(fā),基于STM32F407 單片機(jī)進(jìn)行了儀器的三維無線定位研究。
系統(tǒng)主要由STM32F407 單片機(jī)、無線通信模塊、GPS接收模塊、測距模塊、液晶顯示模塊組成。系統(tǒng)的總體框圖如圖1 所示。其中,單片機(jī)A 為無信號(hào)環(huán)境下需要定位的儀器,單片機(jī)B、C、D 為可接收到信號(hào)的儀器。
圖1 系統(tǒng)框圖
以單片機(jī)B 為例,首先,利用搭載的GPS 接收模塊接收GPS 信號(hào)并計(jì)算得到單片機(jī)B 的三維位置,即經(jīng)度、緯度和高度;其次,利用無線通信模塊與單片機(jī)A 取得聯(lián)絡(luò),獲取測距命令并進(jìn)行單向測距,并將測得距離顯示在液晶顯示模塊上;最后,通過無線通信模塊將獲得的信息告知單片機(jī)A,單片機(jī)A 在收到信息后將單片機(jī)B 的位置與相對距離顯示在液晶顯示模塊上。單片機(jī)C、D 重復(fù)上述操作,最終單片機(jī)A 處獲得其余三個(gè)單片機(jī)的位置及三個(gè)相對距離,通過數(shù)據(jù)仿真即可推斷出單片機(jī)A 的位置。由于實(shí)際場景位于曠野平原,地勢平坦,高度變化較小,求取單片機(jī)A 的高度時(shí),可取單片機(jī)B、C、D 高度的平均值。
本文所用單片機(jī)為STM32F407[4-6],使用ARM Cortex-M4 32 位RISC 內(nèi)核,工作頻率高達(dá)168 MHz,包含高速嵌入式內(nèi)存,可連接到兩條APB 總線、三條AHB 總線和一個(gè)32 位多AHB 總線矩陣的各種增強(qiáng)型I/O 和外圍設(shè)備,是一款高性能且實(shí)用的開發(fā)板,實(shí)物如圖2 所示。
圖2 STM32F407 單片機(jī)
由于TFTLCD 模塊具有自動(dòng)化程度高、易于集成、低成本等優(yōu)點(diǎn),本文選用驅(qū)動(dòng)芯片為ILI9341,支持64K 彩色顯示,使用以RGB565 格式存儲(chǔ)彩色數(shù)據(jù)并自帶顯存的TFTLCD 作為液晶顯示模塊。
本文選用的GPS 定位模塊為BLOX NEO-6M,具有靈敏度高、精度高、功耗低、體積小等優(yōu)點(diǎn),能夠在復(fù)雜環(huán)境下進(jìn)行定位。BLOX NEO-6M 模塊遵循NMEA-0183 協(xié)議,系統(tǒng)設(shè)計(jì)所需要的定位信息的相關(guān)解析函數(shù)如下:
(1)可見衛(wèi)星數(shù)函數(shù)(GPGSV),提取可以搜到的衛(wèi)星總數(shù)、衛(wèi)星編號(hào)、衛(wèi)星仰角、衛(wèi)星方位角及衛(wèi)星信噪比信息。
(2)GPS 定位信息函數(shù)(GPGGA),提取GPS 狀態(tài)、正在使用的定位衛(wèi)星數(shù)、高度信息。
(3)當(dāng)前衛(wèi)星信息函數(shù)(GPGSA),提取定位類型、定位衛(wèi)星編號(hào)、各精度因子的信息。
(4)推薦定位信息函數(shù)(GPRMC),提取UTC 時(shí)間(協(xié)調(diào)世界時(shí))、緯度、南北緯、經(jīng)度、東西經(jīng)、UTC 日期。
由于本文的設(shè)計(jì)要求為無線定位距離達(dá)到千米級(jí),對比超聲波測距、激光測距、UWB 測距、雷達(dá)測距、紅外測距等模塊可知,只有激光模塊可以滿足設(shè)計(jì)要求。
應(yīng)用脈沖法進(jìn)行激光測距的原理為發(fā)射的激光在空氣中傳播,一旦有相關(guān)物體即目標(biāo)測量物擋住其傳播后就會(huì)反射,直到超聲波重新被接收,由計(jì)時(shí)器測量激光從發(fā)射到接收這一過程所需的時(shí)間。激光測距公式為:
式中:s為測量距離;c為傳播速度;t為傳播時(shí)間。
實(shí)物測試時(shí),由于激光測距的成本過高,實(shí)物實(shí)現(xiàn)較為困難,因而使用測距原理相近的超聲波測距模塊[7-8]代替,超聲波的傳播速度為340 m/s。比較市面上多種型號(hào)的超聲波模塊,如HC-SR04、RCWL-1601、US-015、HY-SRF05、US-100 等,考慮到性能、成本等因素,選用性能較好的US-100 模塊。US-100 模塊的測距范圍大概為0.02 ~4.5 m,具有允許輸入電壓范圍大、功耗低、成本低等優(yōu)點(diǎn),內(nèi)置溫度傳感器可有效校準(zhǔn)測量結(jié)果,并支持GPIO、串行口等通信方式。US-100 模塊背面有模式選擇跳線,插入跳線帽時(shí),在串行端口觸發(fā)模式下工作;拔下跳線帽時(shí),在電平觸發(fā)模式下工作。
本設(shè)計(jì)中選擇電平觸發(fā)模式,在打開開發(fā)板電源即給設(shè)備上電之前,先卸下模式選擇跳線上的跳線帽,以將模塊置于電平觸發(fā)模式。使用電平觸發(fā)測距的時(shí)序原理如圖3 所示。
圖3 電平觸發(fā)測距時(shí)序原理
首先給超聲波US-100 模塊的Trig 端輸入一個(gè)作為觸發(fā)信號(hào)的10 μs 以上的高電平;然后,發(fā)射探頭會(huì)自動(dòng)循環(huán)發(fā)出8 個(gè)40 kHz 的脈沖;同時(shí),Echo 端的電平變高,當(dāng)遇到目標(biāo)物體遮擋后反射的超聲波被模塊接收時(shí),Echo 端電平變低,通過Echo 端維持高電平的時(shí)間和超聲波在空氣中的傳輸速度進(jìn)行距離計(jì)算。
NRF24L01 無線通信模塊主要是通過電磁波進(jìn)行數(shù)據(jù)的傳輸,可以實(shí)現(xiàn)一個(gè)接收端和一個(gè)發(fā)射端即點(diǎn)對點(diǎn)通信或一個(gè)接收端和六個(gè)發(fā)送端即一對六無線通信。該模塊采用串行外設(shè)接口通信,易與單片機(jī)進(jìn)行連接。由于有126 個(gè)調(diào)頻通道,可以滿足本設(shè)計(jì)多點(diǎn)通信的需求[9]。只包含NRF24L01芯片的模塊的傳輸距離為5 m 左右,測量距離較短,加板載天線后的無線通信模塊在無遮擋空曠地的無線通信距離一般可以達(dá)到20 m 左右,但仍不滿足千米級(jí)的研究場景需求。因此,本次設(shè)計(jì)選用AS01-ML01DP5 無線通信模塊,在使用NRF24L01P 射頻芯片的基礎(chǔ)上,集成了RFX2401C 功放芯片,具有接收靈敏度高、抗干擾能力強(qiáng)等特點(diǎn)。由于自帶SMA-K 天線接口,傳輸距離可達(dá)2 km,滿足設(shè)計(jì)要求。
NRF24L01 無線通信模塊作為接收端(RX)時(shí),內(nèi)部最多可以同時(shí)存在6 個(gè)接收地址,通過配置可以分別啟用/禁用一個(gè)或多個(gè)接收地址。如果啟用了多個(gè)地址,當(dāng)RX 接收數(shù)據(jù)信號(hào)時(shí),依次進(jìn)行地址比較;當(dāng)?shù)刂纺軌蛲耆ヅ鋾r(shí),RX 接收并處理數(shù)據(jù)[10]。雖然RX 有多個(gè)可以接收數(shù)據(jù)的通道,但NRF24L01 只有一個(gè)射頻模塊,同一時(shí)刻只能接收一份數(shù)據(jù)。如果使用多對一通信時(shí),需要注意錯(cuò)開各自發(fā)送時(shí)間。
當(dāng)代的電腦普遍使用USB 口代替9 針串口,如果將USB 口應(yīng)用為串口,則需要安裝驅(qū)動(dòng)。CH340 驅(qū)動(dòng)是一種連接計(jì)算機(jī)和單片機(jī)實(shí)現(xiàn)USB 到RS 232 驅(qū)動(dòng)程序的黑色連接線。與其他USB 轉(zhuǎn)串口的芯片相比,CH340 因成本較低且在一般場景性能已經(jīng)足以滿足使用需求,實(shí)際更受歡迎[11]。
本文設(shè)計(jì)中使用FlyMCU 將程序下載到單片機(jī),它是一個(gè)免費(fèi)的、功能強(qiáng)大的STM32 最新的串行口燒錄軟件,可以幫助用戶連接到用于通信的串行端口,輕松地?zé)龑懗绦?,支持編程、校?yàn)、讀取設(shè)備信息,可以使用連續(xù)下載程序模式,已成為用戶進(jìn)行硬件調(diào)試的必備軟件。
本文使用的串口調(diào)試助手為ATK XCOM。與其他的串口調(diào)試軟件相比,XCOM 具有使用界面簡單大方、易于使用、能準(zhǔn)確地識(shí)別串口等優(yōu)點(diǎn)。在系統(tǒng)前期進(jìn)行測距校準(zhǔn)調(diào)試時(shí)大量使用此軟件。
本次設(shè)計(jì)的實(shí)物測試部分只實(shí)現(xiàn)單臺(tái)設(shè)備的定位、兩臺(tái)設(shè)備之間的測距和通信等功能。由于測距模塊本身的局限性,被測設(shè)備的表面需保持平整,否則所得數(shù)據(jù)與實(shí)際結(jié)果之間會(huì)出現(xiàn)較大偏差。實(shí)物測試如圖4 所示。
為保證測量結(jié)果的準(zhǔn)確性,在程序中設(shè)置連續(xù)測量5 次距離,對5 次距離求平均值后再通過串口輸出1 次結(jié)果。本次設(shè)計(jì)的觸發(fā)方式選擇電平觸發(fā),在連接好硬件后進(jìn)行測試的過程中,串口調(diào)試助手XCOM 的主頁面上會(huì)自動(dòng)顯示每次的測量數(shù)據(jù)。分別對0.05 m、0.1 m、0.15 m、0.2 m、0.5 m、1 m 進(jìn)行測量,得到的結(jié)果及測量誤差見表1 所列。
表1 測距誤差
通過對表1 數(shù)據(jù)進(jìn)行分析,測距在1 m 之內(nèi)的測量誤差基本在0.262 6%以內(nèi),為可控范圍。在傳輸數(shù)據(jù)的過程中必須保持收發(fā)端所設(shè)置的地址一致,否則會(huì)收不到數(shù)據(jù)。經(jīng)過實(shí)地測量,若兩臺(tái)單片機(jī)之間無別的物體遮擋,在1.5 m的范圍內(nèi)收發(fā)端的數(shù)據(jù)可以保持一致即測量誤差為0,超過1.5 m 后數(shù)據(jù)丟包現(xiàn)象嚴(yán)重。考慮到室內(nèi)環(huán)境和無線信號(hào)的影響使其測量無誤差的范圍減小,若在空曠的室外環(huán)境下,其傳輸距離將會(huì)增大。
本文在STM32 單片機(jī)基礎(chǔ)上應(yīng)用GPS 定位、無線通信、無線測距等模塊實(shí)現(xiàn)無信號(hào)室外儀器無線定位。實(shí)驗(yàn)結(jié)果表明,所設(shè)計(jì)系統(tǒng)的誤差較小且測量精度較高。實(shí)際應(yīng)用時(shí)應(yīng)將超聲波測距模塊更換為激光模塊,增大測距范圍,更好地滿足應(yīng)用場景。