999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于UM220的北斗數(shù)據(jù)接收處理及簡(jiǎn)單應(yīng)用

2017-09-08 14:03:25索菲
科技創(chuàng)新與應(yīng)用 2017年24期

索菲

摘 要:文章以北斗2號(hào)和GPS雙系統(tǒng)接收模塊UM220為硬件平臺(tái),利用嵌入式C#二次開(kāi)發(fā)BD2/GPS-OEM板的方法,開(kāi)發(fā)出了能同時(shí)運(yùn)行于PC和Windows CE的跨平臺(tái)程序,實(shí)現(xiàn)了PDA與OEM板之間的串行通訊,同時(shí)對(duì)接收到的北斗數(shù)據(jù)進(jìn)行簡(jiǎn)單的解析應(yīng)用,如利用GDI+繪制北斗二維星空?qǐng)D、采集PDA終端運(yùn)行軌跡等。

關(guān)鍵詞:北斗2號(hào);Windows CE 操作系統(tǒng);PDA;串口通訊;網(wǎng)絡(luò)通訊

中圖分類(lèi)號(hào):TN967.1 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):2095-2945(2017)24-0001-03

1 概述

北斗衛(wèi)星導(dǎo)航系統(tǒng)是中國(guó)正在實(shí)施的自主研發(fā)、獨(dú)立運(yùn)行的全球衛(wèi)星導(dǎo)航系統(tǒng),是除美國(guó)的全球定位系統(tǒng)(GPS)、俄羅斯的GLONASS(GLOBAL NAVIGATION SATELLITE SYSTEM)之后第三個(gè)成熟的衛(wèi)星導(dǎo)航系統(tǒng)。北斗衛(wèi)星導(dǎo)航系統(tǒng)可在全球范圍內(nèi)為用戶(hù)提供全天候、全天時(shí)、高精度的定位、導(dǎo)航、受時(shí)服務(wù),并具有短報(bào)通信能力。近年來(lái)隨著北斗導(dǎo)航系統(tǒng)的逐步建設(shè)完善,北斗巨大的經(jīng)濟(jì)效益已初具端倪,但是由于北斗導(dǎo)航系統(tǒng)建設(shè)不久,整體用戶(hù)數(shù)量少,未形成一定規(guī)模的產(chǎn)業(yè)化機(jī)制,從而導(dǎo)致北斗系統(tǒng)的終端價(jià)格昂貴,所以如何將北斗數(shù)據(jù)有效接收加以廣泛利用成為了當(dāng)前中國(guó)衛(wèi)星導(dǎo)航產(chǎn)業(yè)的關(guān)鍵課題[1]。

加快推進(jìn)北斗民用化進(jìn)程,不僅需要設(shè)備有較好的性能,而且具有便攜、低功耗、低價(jià)格等特點(diǎn)。UM220接收機(jī)模塊是目前市場(chǎng)上尺寸最小的BD2/GPS雙系統(tǒng)模塊,具有集成度高,啟動(dòng)時(shí)間快,功耗低,協(xié)議簡(jiǎn)單通用等特點(diǎn),可用于車(chē)輛導(dǎo)航、車(chē)輛監(jiān)控、氣象探測(cè)、海洋漁業(yè)和電信電力受時(shí)等領(lǐng)域[2],特別適合北斗系統(tǒng)大規(guī)模應(yīng)用的需求。

2 UM220接收機(jī)模塊性能特點(diǎn)和通訊協(xié)議

作為BD/GPS接收機(jī)的核心部件,BD/GPS-OEM板接收來(lái)自BD/GPS天線(xiàn)單元的衛(wèi)星信號(hào),通過(guò)變頻、放大、濾波等處理過(guò)程產(chǎn)生大量的數(shù)據(jù)信息,通過(guò)進(jìn)一步的解析數(shù)據(jù)可以為地理信息系統(tǒng)、車(chē)載導(dǎo)航、氣象探測(cè)等領(lǐng)域提供三維定位功能[3]。本文所用的UM220模塊支持NMEA-0183通信標(biāo)準(zhǔn)格式,輸入ASCII形式的數(shù)據(jù)信息。BD/GPS-OEM板輸出的NMEA-0183語(yǔ)句有多種數(shù)據(jù)句型,每種句型包含的數(shù)據(jù)信息不同,通過(guò)解析提取可以得到所需要的數(shù)據(jù),例如:經(jīng)緯度、高程、方位角、地面速率、UTC時(shí)間、幾何精度、衛(wèi)星顆數(shù)、仰角、信噪比等。UM220模塊提供的北斗語(yǔ)句有$BDGGA、$BDGLL、$BDGSA、$BDGSV、$BDRMC、$BDVTG等,每條語(yǔ)句都以特定的格式承載著不同的數(shù)據(jù)信息,例如$BDGSV語(yǔ)句,它的信息內(nèi)容是當(dāng)前衛(wèi)星狀態(tài)信息,其格式如下:

$BDGSV,NoMsg,MsgNo,NoSv,sv1,elv1,az1,cno1,sv2,elv2,az2,cno2,sv3,elv3,az3,cno3,sv4,elv4,az4,cno4*cs

其中:$為起始符;BD為信息來(lái)源;GSV為句型識(shí)別符;其后依次為GSV消息總數(shù)(NoMsg);本條GSV消息的編號(hào)(MsgNo);本系統(tǒng)可見(jiàn)衛(wèi)星總數(shù)(NoSv);第一~第四顆衛(wèi)星的衛(wèi)星號(hào)(sv1~sv4);第一~第四顆衛(wèi)星的仰角(sv1~sv4);第一~第四顆衛(wèi)星的方位角(sv1~sv4);第一~第四顆衛(wèi)星的信噪比(sv1~sv4);校驗(yàn)和(cs)。

3 PDA與BD/GPS-OEM之間的串行通訊

PDA終端軟件是從串口接收數(shù)據(jù),首先判斷是否需要數(shù)據(jù),如果不需要,則不進(jìn)行緩存,僅僅顯示數(shù)據(jù),如果需要?jiǎng)t將接收到的數(shù)據(jù)緩存起來(lái),繼續(xù)接收數(shù)據(jù),與此同時(shí)異步調(diào)用緩存起來(lái)的數(shù)據(jù)。發(fā)送之前,需要先檢驗(yàn)數(shù)據(jù)的完整性,如果不完整則將數(shù)據(jù)緩存起來(lái),將下一次接收到的原始數(shù)據(jù)補(bǔ)充在不完整數(shù)據(jù)之后,接收校驗(yàn)數(shù)據(jù)的完整性。如果數(shù)據(jù)完整,則對(duì)數(shù)據(jù)進(jìn)行校驗(yàn),校驗(yàn)不通過(guò),校驗(yàn)不通過(guò)的數(shù)據(jù)直接舍棄,若校驗(yàn)通過(guò),則將數(shù)據(jù)發(fā)往各個(gè)子窗體,解析處理數(shù)據(jù),數(shù)據(jù)流程圖如圖1所示。

由于.NET Framework 2.0類(lèi)庫(kù)中提供了Serial Port類(lèi),方便地實(shí)現(xiàn)了所需要串口通訊的多種功能。Serial Port中數(shù)據(jù)的讀取與寫(xiě)入有較大不同。由于串口不知道數(shù)據(jù)何時(shí)到達(dá),因此有兩種方法可以實(shí)現(xiàn)串口數(shù)據(jù)的讀取:一、線(xiàn)程實(shí)時(shí)讀串口;二、事件觸發(fā)方式實(shí)現(xiàn)。由于線(xiàn)程實(shí)時(shí)讀串口的效率不是十分高效,因此本文采用事件觸發(fā)的方式。在Serial Port類(lèi)中有Data Received事件,當(dāng)串口的讀緩存有數(shù)據(jù)到達(dá)時(shí)則觸發(fā)Data Received事件,需要注意的是Serial Port. Data Received事件運(yùn)行在輔線(xiàn)程,不能與主線(xiàn)程中的顯示數(shù)據(jù)控件直接進(jìn)行數(shù)據(jù)傳輸,必須用間接的方式實(shí)現(xiàn),本文采用了同步委托的方法Invoke[4],實(shí)現(xiàn)結(jié)果如圖2所示。

{

int n = com.BytesToRead;

byte[] buf = new byte[n];

com.Read(buf, 0, n);

if(getBinaryData!=null&&com.IsOpen)

{

lock (thelock)

{

binaryData.Enqueue(buf);

}

}

stringbuilder.Remove(0, stringbuilder.Length);

this.Invoke((EventHandler)(delegate

{

stringbuilder.Append(Encoding.ASCII.GetString(buf, 0, n));endprint

this.txtShowData.Text+= stringbuilder.ToString();

}));

}

4 北斗數(shù)據(jù)簡(jiǎn)單應(yīng)用

前面我們已經(jīng)通過(guò)串口通訊獲得了北斗數(shù)據(jù),本文在移動(dòng)終端開(kāi)發(fā)出了一個(gè)簡(jiǎn)單的程序?qū)Λ@得的北斗衛(wèi)星數(shù)據(jù)加以簡(jiǎn)單的分析利用。

本文所選的PDA終端操作系統(tǒng)為Windows Embedded CE 6.0,其設(shè)計(jì)的內(nèi)核具有32,000個(gè)處理器的并發(fā)處理能力,每個(gè)處理有2GB虛擬內(nèi)存尋址空間,同時(shí)還能保持系統(tǒng)的實(shí)時(shí)響應(yīng),這使得Windows Embedded CE 6.0具備更強(qiáng)的圖形處理能力[5]。

GDI+(Graphics Device Interface Plus)也就是圖形設(shè)備接口,它提供了各種豐富的圖像處理功能,在Windows CE 6.0系統(tǒng)中,它充當(dāng)應(yīng)用程序和硬件設(shè)備之間的中間層,封裝與硬件交互所需的低級(jí)API,這些API函數(shù)可用于繪制圖形和文本。作為GDI的升級(jí)版,GDI+新增了諸如漸變畫(huà)筆、基數(shù)樣條、alpha混合等功能,并且實(shí)現(xiàn)了繪制邊框和填充的分離,使得GDI+在繪圖方面比GDI更加出色[6],使用GDI+的這些新特性可以輕松繪制出漂亮的衛(wèi)星視圖界面和PDA終端運(yùn)行軌跡。

4.1 二維星空?qǐng)D的繪制

為了繪制星空?qǐng)D,首先需要對(duì)包含衛(wèi)星方位信息數(shù)據(jù)的$BDGSV語(yǔ)句進(jìn)行解析,以$BDGSV數(shù)據(jù)為例,$BDGSV,2,1,7,161,50,126,38,163,47,235,40,164,32,109,37,166,65,148,40*53

可以看出本系統(tǒng)中的GSV消息總數(shù)2,本條消息為1號(hào)消息,本系統(tǒng)可見(jiàn)的衛(wèi)星總數(shù)為7顆,第1~第4顆衛(wèi)星的衛(wèi)星號(hào)依次為:161、163、164、166, 第1~第4顆衛(wèi)星的仰角(0~90度)依次為:50、47、32、65,第1~第4顆衛(wèi)星的方位角(0~359度)依次為:126、235、109、148,第1~第4顆衛(wèi)星的信噪比(0~99dBHz)依次為:38、40、37、40。提取繪圖所需的衛(wèi)星的顆數(shù)以及各個(gè)衛(wèi)星的衛(wèi)星號(hào)、方位角、仰角、信噪比等信息,利用GDI+繪制出北斗二維星空?qǐng)D,實(shí)現(xiàn)結(jié)果如圖3所示。程序運(yùn)行繪制過(guò)程中為避免繪制時(shí)間過(guò)長(zhǎng)或者星空?qǐng)D界面閃爍,采用了雙倍緩沖的方法,即先把文本繪制到圖像上,再在完成了所有的繪圖操作后,把整個(gè)圖像繪制到窗口中。

4.2 PDA移動(dòng)終端的軌跡采集

當(dāng)前基于衛(wèi)星導(dǎo)航系統(tǒng)的巡檢、監(jiān)控和導(dǎo)航等軟件已經(jīng)非常成熟,但是大多都是基于美國(guó)的GPS系統(tǒng)的,基于北斗衛(wèi)星導(dǎo)航系統(tǒng)的巡檢監(jiān)控軟件剛開(kāi)始發(fā)展不久,還處于起步階段,而其中,PDA終端的軌跡采集無(wú)疑是這類(lèi)應(yīng)用軟件中的核心功能之一,這類(lèi)導(dǎo)航監(jiān)控軟件大部分的其他擴(kuò)展應(yīng)用功能都是建立在此基礎(chǔ)之上完成的。因此本文對(duì)PDA終端的軌跡采集功能的實(shí)現(xiàn)原理進(jìn)行了初步討論并且編寫(xiě)了程序進(jìn)行實(shí)現(xiàn)。

首先對(duì)$BDGGA數(shù)據(jù)進(jìn)行解析,提取出經(jīng)緯度等信息。以$BDGGA數(shù)據(jù)為例:$BDGGA,071437.000,2258.8881,N,11321.4923,E,1,5,0.702,48.137,M,0,M,*58

可以看出當(dāng)前移動(dòng)終端所處的位置是:北緯22度58.8881分,東經(jīng)113度21.4923分,橢球高是48.173米,接收時(shí)間是7點(diǎn)14分37秒(UTC),參與定位的北斗衛(wèi)星是5顆,定位狀態(tài)為單點(diǎn)定位,這里每隔1秒接收一次數(shù)據(jù),因此在進(jìn)行跟蹤定位時(shí)可以實(shí)時(shí)得到所處的位置。然后提取出精度、緯度信息,通過(guò)高斯正算轉(zhuǎn)換為平面坐標(biāo),通過(guò)屏幕校正處理,利用GDI+將坐標(biāo)繪制在終端屏幕上,繼而得到終端的運(yùn)行軌跡。

5 網(wǎng)絡(luò)通訊

PDA終端作為客戶(hù)端,通過(guò)IP地址和PC端服務(wù)器進(jìn)行網(wǎng)絡(luò)通信,將采集的衛(wèi)星數(shù)據(jù)發(fā)送至PC服務(wù)端,這樣可以利用PC機(jī)對(duì)衛(wèi)星數(shù)據(jù)進(jìn)行進(jìn)一步的存儲(chǔ)應(yīng)用。為節(jié)省資源同時(shí)提高通信效率手持機(jī)端將數(shù)據(jù)重新組織按照自定義的格式發(fā)網(wǎng)PC服務(wù)端,自定義數(shù)據(jù)格式表1所示,PC服務(wù)器端接收自定義的定位數(shù)據(jù)進(jìn)行相關(guān)的解析和應(yīng)用。

本文采用Socket接口進(jìn)行PDA端和PC端的網(wǎng)絡(luò)通訊,Socket接口是TCP/IP網(wǎng)絡(luò)的API,通常也稱(chēng)作“套接字”,應(yīng)用程序通常通過(guò)“套接字”向網(wǎng)絡(luò)發(fā)出請(qǐng)求或者應(yīng)答網(wǎng)絡(luò)請(qǐng)求[7]。Socket接口定義了許多函數(shù)或例程,可以用它們來(lái)開(kāi)發(fā)TCP/IP網(wǎng)絡(luò)上的應(yīng)用程序,程序根據(jù)連接啟動(dòng)的方式以及本地套接字要連接的目標(biāo),套接字之間的連接過(guò)程可以分為三個(gè)步驟:服務(wù)器監(jiān)聽(tīng),客戶(hù)端請(qǐng)求,連接確認(rèn)。

PDA客戶(hù)端:

socketSender = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

IPHostEntry ipHost = Dns.GetHostEntry(ipaddress);

PAddress ipAddress = ipHost.AddressList[0];

IPEndPoint ipEndPoint = new IPEndPoint(ipAddress, portnumber);

socketSender.Connect(ipEndPoint);//連接

socketSender.Send(bytesenddata);//發(fā)送組織好的數(shù)據(jù)

PC服務(wù)端:

listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

portnumber = int.Parse(txtPortNumber.Text.Trim());endprint

listener.Bind(new IPEndPoint(IPAddress.Any, portnumber));

listener.Listen(10);

byte[] receivedBytes = new byte[4096];

int bytesNum = socket.Receive(receivedBytes);

receivedValue = Encoding.ASCII.GetString(receivedBytes, 0, bytesNum);

6 結(jié)束語(yǔ)

本文討論了在Windows CE6.0操作系統(tǒng)基礎(chǔ)之上如何接收北斗衛(wèi)星數(shù)據(jù),實(shí)現(xiàn)了OEM板與PDA之間的通訊,并且對(duì)接收到的北斗數(shù)據(jù)進(jìn)行解析,初步實(shí)現(xiàn)了對(duì)于北斗數(shù)據(jù)的簡(jiǎn)單應(yīng)用,可進(jìn)一步應(yīng)用于車(chē)輛監(jiān)控、車(chē)載導(dǎo)航、氣象探測(cè)、海洋漁業(yè)和電信電力受時(shí)等領(lǐng)域,對(duì)推動(dòng)實(shí)現(xiàn)北斗衛(wèi)星導(dǎo)航系統(tǒng)民用化、產(chǎn)業(yè)化有著現(xiàn)實(shí)的意義。

參考文獻(xiàn):

[1]劉偉.基于“北斗一號(hào)”車(chē)載導(dǎo)航終端系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2010:1-80.

[2]劉興,王德明,劉維亭.基于Windows CE的GPS-OEM板的數(shù)據(jù)接收與處理[J].華東船舶工業(yè)學(xué)院學(xué)報(bào),2005,19(2):50-53.

[3]Zhou Jing translate. Visual C# 2005 From approaches to master. Beijing Tsinghua University presse [M].2006.

[4]李永隆.PDA程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2002.

[5]徐成,秦云川,劉彥.Windows CE內(nèi)核定制與驅(qū)動(dòng)程序開(kāi)發(fā)[M].中國(guó)電力出版社,2011.

[6]John C.Database design and programming with access,SQL and visual C[M].[S1]:The MacGraw-Hill Co.Ltd,2002.

[7]Joan Daemen,Vincent Aijme. The Design of Rijindael:AES-the Advanced Eneryption Standard[J]. Springer Verlag, 2003:57-72.endprint

主站蜘蛛池模板: 久久国产精品国产自线拍| 国产精品夜夜嗨视频免费视频| 国产精品毛片在线直播完整版 | 国产麻豆福利av在线播放 | 中日无码在线观看| 91色综合综合热五月激情| 欧美日韩一区二区在线免费观看| 福利姬国产精品一区在线| 亚洲日本精品一区二区| 在线中文字幕网| 国产精品一区在线麻豆| 波多野结衣无码AV在线| 麻豆国产精品视频| 亚洲天堂成人在线观看| 一边摸一边做爽的视频17国产 | 91无码网站| 九色视频最新网址| 午夜精品福利影院| 欧类av怡春院| 人人看人人鲁狠狠高清| 91无码人妻精品一区| 97精品伊人久久大香线蕉| 亚洲系列无码专区偷窥无码| 国产91视频免费| 亚洲一级色| 五月婷婷亚洲综合| 色婷婷综合激情视频免费看| 亚洲专区一区二区在线观看| 视频二区国产精品职场同事| 国产h视频免费观看| 久久精品66| 成人国产三级在线播放| 最新亚洲人成网站在线观看| 99久久婷婷国产综合精| 超碰精品无码一区二区| 最新国产网站| 热这里只有精品国产热门精品| 丰满人妻久久中文字幕| 国产黄色免费看| 精品国产美女福到在线不卡f| 天天色天天综合| 波多野结衣久久高清免费| 亚洲码在线中文在线观看| 国产成人亚洲精品蜜芽影院| 国产精品香蕉在线观看不卡| 在线毛片免费| 亚洲第一香蕉视频| 成人综合久久综合| 亚洲一级色| www.youjizz.com久久| 热久久国产| 亚洲欧美成人综合| 久久精品免费国产大片| 午夜一区二区三区| 在线精品自拍| 国产免费福利网站| 国产成人精品18| 国产91视频免费观看| 国产成人无码久久久久毛片| 欧美a级完整在线观看| 尤物精品视频一区二区三区| 韩日无码在线不卡| 欧美劲爆第一页| 国产网站免费看| 国产欧美在线观看精品一区污| 强乱中文字幕在线播放不卡| 99er这里只有精品| 谁有在线观看日韩亚洲最新视频 | 91九色国产porny| 青草视频网站在线观看| 99视频在线观看免费| 精品无码一区二区在线观看| 在线中文字幕日韩| 国产av剧情无码精品色午夜| 亚洲色图欧美一区| 亚洲区欧美区| 久久久受www免费人成| 67194在线午夜亚洲| 国产成人1024精品| 狠狠亚洲婷婷综合色香| 亚洲成AV人手机在线观看网站| 亚洲最新地址|