国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

2017-09-08 14:03索菲
科技創(chuàng)新與應(yīng)用 2017年24期
關(guān)鍵詞:操作系統(tǒng)

索菲

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

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

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

1 概述

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

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

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

作為BD/GPS接收機(jī)的核心部件,BD/GPS-OEM板接收來自BD/GPS天線單元的衛(wèi)星信號,通過變頻、放大、濾波等處理過程產(chǎn)生大量的數(shù)據(jù)信息,通過進(jìn)一步的解析數(shù)據(jù)可以為地理信息系統(tǒng)、車載導(dǎo)航、氣象探測等領(lǐng)域提供三維定位功能[3]。本文所用的UM220模塊支持NMEA-0183通信標(biāo)準(zhǔn)格式,輸入ASCII形式的數(shù)據(jù)信息。BD/GPS-OEM板輸出的NMEA-0183語句有多種數(shù)據(jù)句型,每種句型包含的數(shù)據(jù)信息不同,通過解析提取可以得到所需要的數(shù)據(jù),例如:經(jīng)緯度、高程、方位角、地面速率、UTC時間、幾何精度、衛(wèi)星顆數(shù)、仰角、信噪比等。UM220模塊提供的北斗語句有$BDGGA、$BDGLL、$BDGSA、$BDGSV、$BDRMC、$BDVTG等,每條語句都以特定的格式承載著不同的數(shù)據(jù)信息,例如$BDGSV語句,它的信息內(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為信息來源;GSV為句型識別符;其后依次為GSV消息總數(shù)(NoMsg);本條GSV消息的編號(MsgNo);本系統(tǒng)可見衛(wèi)星總數(shù)(NoSv);第一~第四顆衛(wèi)星的衛(wèi)星號(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ù),如果需要則將接收到的數(shù)據(jù)緩存起來,繼續(xù)接收數(shù)據(jù),與此同時異步調(diào)用緩存起來的數(shù)據(jù)。發(fā)送之前,需要先檢驗(yàn)數(shù)據(jù)的完整性,如果不完整則將數(shù)據(jù)緩存起來,將下一次接收到的原始數(shù)據(jù)補(bǔ)充在不完整數(shù)據(jù)之后,接收校驗(yàn)數(shù)據(jù)的完整性。如果數(shù)據(jù)完整,則對數(shù)據(jù)進(jìn)行校驗(yàn),校驗(yàn)不通過,校驗(yàn)不通過的數(shù)據(jù)直接舍棄,若校驗(yàn)通過,則將數(shù)據(jù)發(fā)往各個子窗體,解析處理數(shù)據(jù),數(shù)據(jù)流程圖如圖1所示。

由于.NET Framework 2.0類庫中提供了Serial Port類,方便地實(shí)現(xiàn)了所需要串口通訊的多種功能。Serial Port中數(shù)據(jù)的讀取與寫入有較大不同。由于串口不知道數(shù)據(jù)何時到達(dá),因此有兩種方法可以實(shí)現(xiàn)串口數(shù)據(jù)的讀?。阂弧⒕€程實(shí)時讀串口;二、事件觸發(fā)方式實(shí)現(xiàn)。由于線程實(shí)時讀串口的效率不是十分高效,因此本文采用事件觸發(fā)的方式。在Serial Port類中有Data Received事件,當(dāng)串口的讀緩存有數(shù)據(jù)到達(dá)時則觸發(fā)Data Received事件,需要注意的是Serial Port. Data Received事件運(yù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ù)簡單應(yīng)用

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

本文所選的PDA終端操作系統(tǒng)為Windows Embedded CE 6.0,其設(shè)計(jì)的內(nèi)核具有32,000個處理器的并發(fā)處理能力,每個處理有2GB虛擬內(nèi)存尋址空間,同時還能保持系統(tǒng)的實(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è)備之間的中間層,封裝與硬件交互所需的低級API,這些API函數(shù)可用于繪制圖形和文本。作為GDI的升級版,GDI+新增了諸如漸變畫筆、基數(shù)樣條、alpha混合等功能,并且實(shí)現(xiàn)了繪制邊框和填充的分離,使得GDI+在繪圖方面比GDI更加出色[6],使用GDI+的這些新特性可以輕松繪制出漂亮的衛(wèi)星視圖界面和PDA終端運(yùn)行軌跡。

4.1 二維星空圖的繪制

為了繪制星空圖,首先需要對包含衛(wèi)星方位信息數(shù)據(jù)的$BDGSV語句進(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號消息,本系統(tǒng)可見的衛(wèi)星總數(shù)為7顆,第1~第4顆衛(wèi)星的衛(wèi)星號依次為: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ù)以及各個衛(wèi)星的衛(wèi)星號、方位角、仰角、信噪比等信息,利用GDI+繪制出北斗二維星空圖,實(shí)現(xiàn)結(jié)果如圖3所示。程序運(yùn)行繪制過程中為避免繪制時間過長或者星空圖界面閃爍,采用了雙倍緩沖的方法,即先把文本繪制到圖像上,再在完成了所有的繪圖操作后,把整個圖像繪制到窗口中。

4.2 PDA移動終端的軌跡采集

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

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

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

PDA終端作為客戶端,通過IP地址和PC端服務(wù)器進(jìn)行網(wǎng)絡(luò)通信,將采集的衛(wèi)星數(shù)據(jù)發(fā)送至PC服務(wù)端,這樣可以利用PC機(jī)對衛(wèi)星數(shù)據(jù)進(jìn)行進(jìn)一步的存儲應(yīng)用。為節(jié)省資源同時提高通信效率手持機(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,通常也稱作“套接字”,應(yīng)用程序通常通過“套接字”向網(wǎng)絡(luò)發(fā)出請求或者應(yīng)答網(wǎng)絡(luò)請求[7]。Socket接口定義了許多函數(shù)或例程,可以用它們來開發(fā)TCP/IP網(wǎng)絡(luò)上的應(yīng)用程序,程序根據(jù)連接啟動的方式以及本地套接字要連接的目標(biāo),套接字之間的連接過程可以分為三個步驟:服務(wù)器監(jiān)聽,客戶端請求,連接確認(rèn)。

PDA客戶端:

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é)束語

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

參考文獻(xiàn):

[1]劉偉.基于“北斗一號”車載導(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é)報,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ū)動程序開發(fā)[M].中國電力出版社,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

猜你喜歡
操作系統(tǒng)
智能手機(jī)操作系統(tǒng)的分析與比較
國產(chǎn)桌面操作系統(tǒng)中虛擬化技術(shù)應(yīng)用研究
基于單片機(jī)的嵌入式系統(tǒng)的開發(fā)研究
“操作系統(tǒng)原理”實(shí)驗(yàn)教學(xué)設(shè)置初探