賈海云,余 庚
(1.合肥財經職業學院,安徽合肥 230601;2.福州理工學院,福建福州 350506)
隨著大規模集成電路技術在航空領域的應用,無人機正以獨到的優勢在民用以及軍用領域扮演著不可或缺的角色。比如,當前興起的共享電動汽車和共享單車產業,出于防盜考慮,對移動目標即時導航定位越來越受到廠家的關注;當下旅游業盛行的無人航拍機等實時導航定位技術也受到消費者的青睞。解決GPS的通信問題并使導航信息更加精準可靠已然成為研究熱點。GPS因可提供定位、時間、高度、速度等豐富信息而成為無人機不可或缺的部分。無人機需要數據采集模塊與GPS接收機進行通信,以完成導航信息的采集,而單片機便是扮演數據采集模塊的角色。本次設計的數據解析電路采用的是異步串行通信的方式,利用單片機與GPS接收機進行數據通信并解析出所導航的信息。

圖1 無人機GPS導航結構
圖1為無人機GPS導航結構圖。GPS即本次設計所指的GPS接收機傳感器,PIC16F877A單片機則對應圖中的導航數據采集模塊。將采集的數據發送給飛控CPU,飛控CPU對數據進行分析處理后再發給地面站。地面站的數據傳輸模塊收到信號后傳給MCU模塊。PC機通過RS232串行接口不斷采集MCU模塊數據并顯示同時判斷對比接收到的數據,進而實現對無人機的導航。
GPS通信系統在工作狀態下的耗電僅50mA。本次設計采用PIC16F877A單片機[1]基于9600bps的波特率與GPS接收機進行串行通信。其電路圖如圖2所示。

圖2 系統硬件電路圖
GPS接收機記錄GPS信號并對信號進行解調和濾波處理,還原出GPS衛星發送的導航電文,再求出信號在無人機與衛星間傳播的時間和載波相位差,進而實時獲得導航數據,同時還可通過兩個串口與外部通信。如圖3所示,串口1為主串口(對應TXA和RXA)全雙工模式,串口2為輔助串口(提供修正量,對應TXB和RXB)半雙工模式。通過這兩個串口同外設連接,也可用軟件編程或硬件設置來配置串口特性。通過軟件編程配置串口的波特率為9600bps,利用串口1與單片機進行通信。其6個管腳分別為TXB、GND、RXA、TXA、VDD、RXB。將GND、VDD分別接電源地和5V電壓,將TXA與單片機的RX相連,以建立GPS[2]接收機與數據采集模塊間的數據通信。

圖3 GPS模塊圖

圖4 單片機模塊圖
為了使異步通信時獲得更穩定的波特率9600bps,便于與GPS接收機進行數據通信,選擇11.0592MHz作為晶振。端口MCLR/VPP/TWV具有系統復位功能,如圖4所示。當其為低電平時系統復位,R1為上拉電阻,使單片機在正常工作時,MCLR/VPP/TWV端口為高電平。按鍵S1為系統的復位鍵,按下時MCLR/VPP/TWV端口為低電平,即對單片機進行復位操作,R1、S1為單片機復位電路。VDD、VSS管腳分別接電源的正(+5)負(GND)極。
GPS接收機和PIC16F877A單片機的工作電壓均為5V,因此本設計的電源模塊采用LM7805集成穩壓器,如圖5所示。LM7805具有三個管腳,分別為輸入端、公共端和輸出端。輸入端可接大于等于5V的直流電壓的正極,公共端接GND,輸出端便可得到穩定的5V電壓。電容C3用于抵消導線傳輸引起的電感效應。電容C4可改善負載的瞬態響應。C4較大,在穩壓器輸入端斷開時,C4會通過穩壓器放電,易造成穩壓器損壞。為此,接一只1N4007續流二極管起保護作用。電源開關鎖住時電源接通,反之電源斷開。LED燈是上電指示燈,當它亮時說明已上電,電源接通;反之則電源模塊沒有提供工作電壓。

圖5 電源模塊圖

圖6 調試模塊圖
PIC16F877A單片機將接收到的GPS數據進行解析后通過TX口輸出到PC調試,在PC上打開串口調試工具軟件即可顯示無人機導航到的GPS數據,進而進行驗證。如圖6所示,單片機串口輸出的是TTL電平,而PC的串口電平是RS232標準電平:TTL電平是邏輯“0”為0V,邏輯“1”為5V或3.3V;RS232電平是邏輯“0”為3~15V,邏輯“1”為-3~-15V。為了使兩者的電平相匹配,采用MAX232電平轉換芯片將TTL電平轉換成RS-232電平。MAX232接上所需的外圍器件:T1in腳與單片機的TX管腳相連,T1out接到串口座的第2管腳,串口座的第5管腳接電源地。
無人機需要的GPS數據有:經緯度、速度、高度、時間、可用衛星數。GPS接收機可提供$GPRMC、$GPGGA、$GPVTG等格式的GPS數據,從GPRMC數據中解析出經緯度、時間數據;從GPVTG數據中解析出速度數據(公里/小時);從GPGGA數據中解析出可用衛星數和高度數據(米),然后從PIC單片機輸出三種GPS數據幀結構。
C,<1>時<2>分<3>秒,<4>,<5>度<6>分,<7>,<8>度<9>分,<10>,<11>日<12>月<13>年<14>
各數據區的含義如下:
字母C為起始標志符
<1>時間hh(GPS接收的是UTC時間。北京時間比UTC時間早8小時,此處是經過轉換后的北京時間)
<2>時間mm
<3>時間ss
<4>定位狀態,A=有效定位,V=無效定位
<5>緯度dd
<6>緯度mm.mmm
<7>緯度半球N(北半球)或S(南半球)
<8>經度ddd
<9>經度mm.mmm
<10>經度半球E(東經)或W(西經)
<11>日期dd
<12>日期mm
<13>日期yy
<14>回車換行
S,<1>km/h<2>
各數據區的含義如下:
<1>速度(公里/小時)
<2>回車換行
H,<1>個,<2>m<3>
各數據區的含義如下:
<1>可用衛星數
<2>高度(米)
<3>回車換行

圖7 數據解析流程圖
本次設計的系統程序包括串口初始化程序、串口收發程序、數據處理程序。串口初始化程序對PIC16F877A的串口[3]通信相關寄存器進行設置。串口收發程序以9600bps的波特率接收來自GPS接收機的數據并將經過數據處理程序處理的數據以同樣的波特率發送出去。數據處理程序指PIC16F877A把接收到的GPS數據進行解析,獲得相應的導航數據,并以新的格式封裝起來。相應流程如圖7所示。
本次測試點的經緯度是東經119度28分,北緯26度08分,平均海拔高度為幾十米。使用轎車模擬無人機進行調試,除了無法效仿無人機變化的飛行高度外,其他數據參數的變化性均可高度模擬無人機。在轎車內將設計的電路設備與PC[4]連接后,打開串口調試工具軟件,顯示來自PIC16F877A單片機發送的解析后的GPS數據。分別記錄同一時刻電子手表上的北京時間(精確到秒)與調試所得的北京時間(精確到0.001秒),如表1所示。
轎車加速或以某個速度勻速行駛。選取表1的時刻對轎車儀表上顯示的速度值進行記錄,如表2所示。調試所得數據如圖8所示。

表1 時間對照表

表2 時間與行速信息表

圖8 測試數據
根據表1相關數據可知,經PIC16F877A解析得到的時間與調試所用的電子手表上的實際時間相符,驗證了時間的正確性。表2里的5個時刻的速度值與圖8的對應時刻的速度值也非常接近,這說明PIC16F 877A單片機從GPS接收機上采集到的速度是準確的。
從圖8可知,時間為11點15分43秒到11點15分53秒,調試地點的經緯度為:北緯26度01分左右;東經119度25分左右。可用衛星數為9個,海拔高度為32~38米,速度為26~31km/h。其中,時間和經緯度屬于C數據,可用衛星數和海拔高度屬于H數據,速度屬于S數據。
根據調試地點的經緯度、海拔高度信息及表1和表2所記錄的時間和速度數據,與圖8所示數據進行對比,可知調試值與實際值接近。
在電路設計中,將PIC16F877A作為數據采集模塊,通過異步串行通信方式對無人機GPS導航到的信息進行數據解析。經過實地測驗,將收集到的幾組動態參數數據解析后與實際數值比對均保持了高度的近似,證實了本次電路設計的正確性。該解析電路的GPS數據通信技術除了應用在無人機[5]上,也可應用到任何基于空間的作業,如野外采樣、物流管理、智慧交通、公安巡邏等領域。
[參考文獻]
[1]王思明,張金敏,茍軍年,等.單片機原理及應用系統設計[M].北京:科學出版社,2015:176-189.
[2]劉毅科.UBX協議格式的GPS原始數據解碼與轉換[J].全球定位系統,2016(6):80-84.
[3]孫衛喜.單片機在C語言串口通信中的應用解析[J].計算機技術與發展,2016(7):160-163.
[4]韓雁,徐煜明.微機原理與接口技術[M].北京:電子工業出版,2015:240-247.
[5]李德仁,李明.無人機遙感系統的研究進展與應用前景[J].武漢大學學報:信息科學版,2016(5):50-53.