鄂爾多斯應(yīng)用技術(shù)學院 楊 元
鄂爾多斯生態(tài)環(huán)境監(jiān)測站 郭 慶
為有效地管理和使用無線電資源,有必要對無線數(shù)傳電臺的使用進行監(jiān)控。本文設(shè)計利用GPS接收器、數(shù)據(jù)采集卡和上位機搭建車載監(jiān)控系統(tǒng),建立數(shù)據(jù)采集和處理平臺實現(xiàn)對電臺使用情況的監(jiān)測,同時結(jié)合GIS技術(shù)對電臺經(jīng)緯度信息進行分析,統(tǒng)計數(shù)量,在電子地圖中實時顯示定位電臺的位置。
無線數(shù)傳電臺是VHF/UHF超短波無線通信領(lǐng)域中比較專業(yè)的通信設(shè)備,無線電管理部門特別為其劃出專用通信頻段。由于近年無線頻譜資源的短缺,為有效管理使用無線電資源,有必要對無線數(shù)傳電臺的使用進行監(jiān)測。本設(shè)計的主要任務(wù)是監(jiān)測無線數(shù)據(jù)電臺的頻率使用情況,分析經(jīng)緯度信息,統(tǒng)計電臺的數(shù)量,并在電子地圖上實時顯示電臺的位置。系統(tǒng)為車載移動監(jiān)測系統(tǒng),主要用于對分析無線數(shù)傳電臺的使用情況及對新建電臺的測試。
系統(tǒng)由無線電信號采集模塊和經(jīng)緯度信號收集模塊組成。無線電信號采集模塊包括:高頻無線接收機、PCI高速數(shù)據(jù)采集卡、上位機;經(jīng)緯度信號收集模塊為帶USB口的GPS接收機一臺,與上位機通過USB口數(shù)據(jù)線相連接。設(shè)計利用Visual C++進行程序開發(fā),通過對MapX工具的二次開發(fā)實現(xiàn)電臺的定位和顯示功能。
系統(tǒng)工作流程:將硬件設(shè)備安裝至監(jiān)測車輛,高頻無線接收器實時掃描并接收無線電信號,信號調(diào)理模塊對接收信號進行放大和濾波,數(shù)據(jù)采集卡采集調(diào)理后的信號,并將其由模擬信號轉(zhuǎn)換成數(shù)字信號,存儲至上位機的數(shù)據(jù)庫,應(yīng)用程序從數(shù)據(jù)庫中讀取數(shù)據(jù),進行中頻信號和基帶信號處理;同時GPS接收機收集車載終端位置信息存儲至上位機的數(shù)據(jù)庫,應(yīng)用程序通過數(shù)據(jù)分析實現(xiàn)對數(shù)傳電臺的定位及地圖顯示(如圖1所示)。
圖1 系統(tǒng)硬件組成
行車軌跡及電臺位置的描繪需要從GPS接收機得到經(jīng)緯度數(shù)據(jù),本設(shè)計對經(jīng)緯度精度要求不高,只需從GPS接收機中提取出經(jīng)緯度即可,至于其它信息如角度偏差等矯正經(jīng)緯度精度的信息可省略接收。GPS數(shù)據(jù)采集程序采用GPS的異步串行傳送方式,通過將USB口轉(zhuǎn)D型RS232C串行口,采集遵循NMEA0183協(xié)議的GPS數(shù)據(jù)。
NMEA-0183標準下可輸出六種類型的數(shù)據(jù)。本設(shè)計中經(jīng)緯度是從GPGGA類型語句中直接提取的,所以只介紹GPGGA語句的數(shù)據(jù)格式。例如:
該語句中所對應(yīng)的含義為:所在位置為北緯37.232475,西經(jīng)121.583416.。
實現(xiàn)串行通信的方法主要有兩種:調(diào)用API函數(shù)編寫通信程序、利用框架類MSComm控件實現(xiàn)通信。MSComm控件是開發(fā)環(huán)境自帶的控件,可靠性比調(diào)用API函數(shù)好,采用這種方式通信,能減少開發(fā)時間,而且保證系統(tǒng)的穩(wěn)定運行,因此采用MSComm控件實現(xiàn)串行通信。
將MSComm控件加載到程序中后,將其添加為成員變量,然后對串口端口進行初始化設(shè)置,包括端口的選擇,端口參數(shù)的設(shè)置,設(shè)置好后就可接收從GPS上傳到串口中的數(shù)據(jù),并將經(jīng)緯度數(shù)據(jù)從中提取出來保存到數(shù)據(jù)庫當中。具體做法如下:
(1)從串口接收GPS數(shù)據(jù)。
(2)從得到的數(shù)據(jù)中提取以GPGGA打頭的GPS語句。
(3)根據(jù)NMEA0183協(xié)議中介紹的GPGGA語句格式從中提取出經(jīng)緯度信息。
(4)將經(jīng)緯度信息保存到數(shù)據(jù)表中。
數(shù)據(jù)庫表中保存了電臺的有用信息,包括信號強度、經(jīng)緯度、地址碼及接收時間以等。通過數(shù)據(jù)查詢比對,在同一電臺地址碼下,尋找強度相等的兩組經(jīng)緯度信息,經(jīng)過計算得到電臺的位置。
電子地圖的坐標系統(tǒng)在初始化時設(shè)定為默認屬性,電臺的平面坐標與經(jīng)緯度坐標要進行轉(zhuǎn)換,MapX才能描繪出電臺的實際位置。在數(shù)據(jù)庫中查找同一地址碼下的四組經(jīng)緯度數(shù)據(jù),考慮電臺位置在強度相同的兩個點的中垂線上,那么計算兩條中垂線的交點坐標就可確定這個電臺的位置(如圖2所示)。
圖2 電臺位置計算坐標圖
計算原理:X-Y坐標系中,同一地址碼的四組經(jīng)緯度坐標為A0(x0,y0)、A1(x1,y1)、A2(x2,y2)、A3(x3,y3),其中A0點和A1點的強度相等,A2點和A3點的強度相等,那么A4點的坐標(x,y)可以通過解線性方程的方法來得到。這里直接給出結(jié)果:
由無線接收機接收到的數(shù)據(jù)經(jīng)過處理后,經(jīng)過線性方程組解出電臺的位置,將與電臺相關(guān)的數(shù)據(jù)存入到數(shù)據(jù)庫中,并將電臺位置顯示在電子地圖的圖層上。
電子地圖的創(chuàng)建可按以下步驟來實現(xiàn):
第一步:加載源文件及頭文件。將MapX工具根目錄下的MapX.cpp及MapX.h文件添加到Visual C++工程中,并將兩個文件拷貝至工程目錄下。
第二步:定義一個CMapx對象m_ ctrlMapX,將地圖文件導入到程序中。
第三步:聲明一個常量IDC_MAP。
第四步:在類向?qū)е袨殡娮拥貓D界面創(chuàng)建WM_SIZE和WM_CREATE消息處理函數(shù)。
第五步:在類向?qū)е袨殡娮拥貓D界面創(chuàng)建WM_SETFOCUS的處理消息函數(shù),以確保當窗口處于活動狀態(tài)時獲取焦點。
地理數(shù)據(jù)在計算機中的表達方式有四種:柵格表示法 、矢量表示法 、柵格和矢量的圖形表示法和面向?qū)ο蟊硎痉?。為了將真實的地理信息在計算機中進行表示和存儲,在使用柵格和矢量數(shù)據(jù)模型的地理信息系統(tǒng)中,采用分層組織,“層”是指地理特征及屬性在邏輯上的集合,它包含以特定柵格或矢量數(shù)據(jù)結(jié)構(gòu)組織的同一類型地理實體的定位和屬性數(shù)據(jù)。
考慮到本設(shè)計的實際用途是要描繪監(jiān)測車行車軌跡以及電臺位置,因此只需要使用電子地圖基本的繪圖編輯功能,即基本圖元點的添加、刪除和編輯。具體步驟為:
第一步:圖元樣式設(shè)置。MapX可提供點、線、面及標注的設(shè)置對話框,通過調(diào)用該對話框,可以修改默認樣式,這是一種批量添加圖元的簡單方法。調(diào)用代碼如下:
CMapXStyle style= m_ctrlMapX.GetDefaultstyleO;//獲取默認工具
Style.PicksSymbol();//調(diào)用符號選取對話框
第二步:圖層編輯設(shè)置,設(shè)置為插入圖層。
Layer.SetEditable(TRUE);//設(shè)置圖層為可編輯
m_ctrlMapX.GetuyersO.Sethisertionuyer(layer.m_lpDispateh)://插入圖層
第三步:點圖元的添加及刪除。
M_ctrlMapX.setCurrentTool(miaddpointTool)://添加點圖元
點圖元的刪除:首先將圖元所在圖層設(shè)置為當前編輯圖層,選定需刪除的圖元,按delete鍵即可。
小結(jié):本設(shè)計主要實現(xiàn)四個功能:(1)利用MapX實現(xiàn)程序?qū)﹄娮拥貓D的開發(fā)利用;(2)通過MScomm控件實現(xiàn)GPS數(shù)據(jù)的接收;(3)在電子地圖上繪制監(jiān)測車輛行車軌跡并保存數(shù)據(jù);(4)通過電臺定位算法得到電臺經(jīng)緯度,在電子地圖上描繪電臺位置。在無線電頻率日益緊張的今天,對無線電實現(xiàn)優(yōu)化管理,研制性能優(yōu)良的無線電監(jiān)測機勢在必行。