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