亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于STM32+ucGUI的北斗導(dǎo)航定位系統(tǒng)設(shè)計(jì)

        2014-03-21 10:00:06羅衛(wèi)兵胡健生
        液晶與顯示 2014年2期
        關(guān)鍵詞:北斗指令解析

        羅衛(wèi)兵,胡健生

        (武警工程大學(xué) 信息工程系,陜西 西安710086)

        1 引 言

        隨著導(dǎo)航模塊的小型化,在手持設(shè)備上實(shí)現(xiàn)導(dǎo)航定位的應(yīng)用越來廣泛。目前,對(duì)于帶有界面顯示功能的手持定位設(shè)備,主要都是使用GPS系統(tǒng),并且基于“嵌入式處理器+嵌入式操作系統(tǒng)+GUI”實(shí)現(xiàn)的[1-3]。然而,隨著我國(guó)自行研制的“北斗衛(wèi)星導(dǎo)航定位系統(tǒng)”不斷完善,目前已經(jīng)逐步得到應(yīng)用,將來應(yīng)用前景必將更加廣闊[4-6]。同時(shí)對(duì)于某些只需實(shí)現(xiàn)簡(jiǎn)單顯示功能,對(duì)人機(jī)界面要求不高的應(yīng)用場(chǎng)合,基于上述復(fù)雜嵌入式構(gòu)架進(jìn)行設(shè)計(jì),不僅是對(duì)資源的浪費(fèi),也提高了開發(fā)難度,同時(shí)對(duì)于成熟產(chǎn)品的擴(kuò)展也不太適用。

        本文從某款手持設(shè)備用戶需求出發(fā),只需要提供簡(jiǎn)單的定位信息,而不需要復(fù)雜的導(dǎo)航界面,同時(shí)兼顧設(shè)備已用的其他功能模塊,提出一種基于STM32+ucGUI構(gòu)架的手持北斗顯示終端系統(tǒng),用于實(shí)現(xiàn)北斗(BD2)信號(hào)的接收和解析,并實(shí)現(xiàn)簡(jiǎn)單導(dǎo)航界面顯示。本文重點(diǎn)研究系統(tǒng)的總體結(jié)構(gòu)、北斗定位數(shù)據(jù)接收解析和電子羅盤界面設(shè)計(jì)等內(nèi)容。

        2 系統(tǒng)總體結(jié)構(gòu)與設(shè)計(jì)思路

        系統(tǒng)在硬件上以STM32嵌入式微處理器為核心,擴(kuò)展了LCD、GPS模塊、存儲(chǔ)器、溫濕度傳感器和氣壓傳感器,實(shí)現(xiàn)了對(duì)經(jīng)緯度、高度、速度和溫濕度信息的實(shí)時(shí)采集,根據(jù)用戶需求,可對(duì)特定的應(yīng)用領(lǐng)域進(jìn)行精確化管理和科學(xué)預(yù)測(cè)。如圖1所示。

        圖1 系統(tǒng)組成結(jié)構(gòu)Fig.1 Structure of system

        系統(tǒng)處理器采用STM32F103BE,使用高性能的ARM Cor-texTM-M3 32 位的RISC 內(nèi)核,工作最高頻率可達(dá)72 MHz,內(nèi)置高速存儲(chǔ)器(512K 的Flash 和64K 的SRAM),不 需 要 使 用專門的外部Flash 或ROM 固化代碼,具有豐富IO 端口,以及ADC、I2C、SPI、TIMER、UART 等模塊[7],通過科學(xué)的復(fù)用可以滿足應(yīng)用需要。

        系統(tǒng)存儲(chǔ)器包括串行Flash 和大容量TF卡,均通過SPI總線與CPU 進(jìn)行數(shù)據(jù)傳輸。串行Flash使用W25X16,用于存儲(chǔ)系統(tǒng)的中英文字庫、觸摸屏校驗(yàn)參數(shù)等。TF 卡用于存儲(chǔ)系統(tǒng)圖標(biāo)、應(yīng)用圖片和文本等大容量數(shù)據(jù);LCD 模塊是由一塊真彩液晶屏(240×320)和LCD 控制器集成,LCD 控制器位ILI9320,通過16位的8080總線與CPU 進(jìn)行數(shù)據(jù)交換,同時(shí)提供4線電阻采樣端與觸摸屏的AD 芯片ADS7843 相連;CPU 使用4 個(gè)IO 端 口,模 擬SPI 總 線 與 觸 摸 屏ADS7843進(jìn)行通信;CPU 通過IIC 總線,與溫濕度傳感器STH1X 進(jìn)行通信。

        在軟件上,系統(tǒng)采用“驅(qū)動(dòng)層+GUI”的形式,即在底層硬件驅(qū)動(dòng)的基礎(chǔ)上,直接移植ucGUI圖形用戶接口。系統(tǒng)對(duì)實(shí)時(shí)性要求不高,且任務(wù)量相對(duì)較少,完全可以使用CPU 中的定時(shí)器和中斷實(shí)現(xiàn)簡(jiǎn)單的任務(wù)調(diào)動(dòng);同時(shí)為了保證GPS信息的可視化顯示,應(yīng)該使用圖形用戶接口(GUI),而ucGUI又是最合適本系統(tǒng)的,可為任何使用LCD圖形顯示的應(yīng)用,提供高效的獨(dú)立于處理器及LCD 控制器的圖形用戶接口,可獨(dú)立于操作系統(tǒng),直接使用,支持豐富的圖形庫、字體和窗口管理器[8]。

        本文重點(diǎn)闡述BDII定位信息的接收、解析和顯示等內(nèi)容的設(shè)計(jì)。

        3 北斗定位模塊控制與數(shù)據(jù)解析

        3.1 UM220模塊及其初始化

        UM220是北斗聯(lián)星公司針對(duì)車輛監(jiān)控、氣象探測(cè)和電信電力授時(shí)等應(yīng)用推出BD2/GPS雙系統(tǒng)模塊。UM220是市場(chǎng)上尺寸最小的BD2/GPS模塊,集成度高,功耗低,非常適合北斗系統(tǒng)大規(guī)模應(yīng)用的需求。這里只研究其中北斗定位信息的提取和顯示。產(chǎn)品具有尺寸小、重量輕、功耗低等優(yōu)點(diǎn),同時(shí)支持BD2 和GPS 的但系統(tǒng)獨(dú)立定位和多系統(tǒng)聯(lián)合定位,支持UART,SPI,1PPS 和I2C等多種接口。

        UM220模塊正常工作前,要通過指令對(duì)其進(jìn)行初始化。主要配置如下信息;

        (1)設(shè)置串口指令,對(duì)模塊輸出數(shù)據(jù)的端口和協(xié)議 進(jìn) 行 配 置,指 令 如 下$CFGPRT,1,0,115200,3,2。這里使用串口1,數(shù)據(jù)長(zhǎng)度為8bit,波特率為115 200,模塊輸入的數(shù)據(jù)格式為和芯星通軟件接口協(xié)議,即對(duì)模塊進(jìn)行配置,輸出的數(shù)據(jù)格式為NMEA 協(xié)議。

        (2)設(shè)置衛(wèi)星系統(tǒng)配置,接收機(jī)收到該指令后會(huì)自動(dòng)復(fù)位,設(shè)置的開啟衛(wèi)星頻點(diǎn)在復(fù)位后生效.$CFGSYS,h10。這里為了驗(yàn)證北斗系統(tǒng)的定位效果,僅啟動(dòng)北斗定位系統(tǒng)。

        (3)設(shè)置輸出NMEA 配置,$CFGNMEA,h30.輸出的NMEA 版本為在version3基礎(chǔ)上擴(kuò)展的BD2相關(guān)語句。

        (4)設(shè)置消息輸出頻度。通過該指令可設(shè)置模塊NMEA 消息類中各條指令的輸出頻率,也可屏蔽不需要指令?!鏑FGMSG,0,1,0,$CFGMSG,0,2,0,$CFGMSG,0,3,0,$CFGMSG,0,5,0,關(guān)閉GLL,GSA,GSV,VTG 等4條指令,指令輸出頻率保留默認(rèn)設(shè)置,即1Hz。

        3.2 BD2數(shù)據(jù)的接收

        UM220每條NMEA 指令都是一串以“$”開始,以“*”結(jié)束的字符串,不同指令的數(shù)據(jù)長(zhǎng)度也不同,正確的存儲(chǔ)BDGGA 和BDRMC 指令是正確解析所需的經(jīng)緯度、高度、速度和角度信息的前提。在硬件電路上,UM220模塊與STM32的UART2相連,每隔2s兩條指令發(fā)送一次,因此將使用STM32的UART2中斷函數(shù)來處理接收的數(shù)據(jù)更為方便。需要設(shè)置的變量如表1所示。

        表1 BD2數(shù)據(jù)獲取函數(shù)所需變量Tab.1 Variables of getting BD2data function

        BD 數(shù)據(jù)獲取函數(shù)分成3個(gè)部分,即BD 指令類型的識(shí)別,按照類型存儲(chǔ)兩種指令數(shù)據(jù)和BD指令接收結(jié)束。

        (1)BD 指令類型識(shí)別,在BD_RX_EN==1時(shí),如果收到指令開始符號(hào)“$”,則表明一條完整的指令開始,設(shè)置BD_BUF_FLAG 為1,GPS_RX_STA 為0,BD_RX_LEN 為0,即允許更新BD 數(shù)據(jù)緩存,開始接收指令報(bào)頭。

        (2)按照類型存儲(chǔ)兩種指令,緊隨“$”開始符后的是指令報(bào)頭字符串,即“BDGGA”或“BDRMC”,若BD_RX_STA 為0,即正在接收?qǐng)?bào)頭字符串時(shí),則將接收到的指令字符串存儲(chǔ)在HEADER_BUF[]中,由于設(shè)置模塊僅輸出“BDGGA”和“BDRMC”兩種指令,因此根據(jù)第3位判斷當(dāng)前輸出指令的類型,若HEADER_BUF

        [2]為‘G’,則表明當(dāng)前為BDGGA 指令,設(shè)置BD_RX_STA 為1,若HEADER_BUF[2]為‘R’,則表明當(dāng)前為BDRMC指令,設(shè)置BD_RX_STA 為2。在此過程中,執(zhí)行BD_RX_LEN++,當(dāng)BD_RX_LEN==5時(shí),則根據(jù)BD_RX_STA 的值,將指令的其余字符串存儲(chǔ)到相應(yīng)的緩存中,即BD_GGA_BUF[]或BD_RMC_BUF[]。

        (3)BD 指令接收結(jié)束,當(dāng)串口接收到‘*’后,則表明一條指令的結(jié)束,另BD_CMD_NUM加1,當(dāng)BD_CMD_NUM 為2時(shí),表明分別接收到1 條BDGGA 和1 條BDRMC 指 令,此 時(shí) 令BD_RX_EN 為0,停止接收模塊發(fā)送的指令,保護(hù)指令緩存,等待對(duì)指令的解析,并將計(jì)數(shù)器BD_RX_LEN 清零。

        這里需要重點(diǎn)強(qiáng)調(diào)是,BD_RX_EN 和BD_CMD_NUM 兩個(gè)變量實(shí)際上完成了BD 數(shù)據(jù)接收程序和BD 數(shù)據(jù)解析程序之間的信號(hào)量通信功能,保證了接收緩存在同一時(shí)刻只能被一個(gè)任務(wù)占用,避免了緩存讀寫沖突的發(fā)生。

        3.3 BD 數(shù)據(jù)的解析

        為了便于應(yīng)用程序調(diào)用各類信息參數(shù),系統(tǒng)必須對(duì)正確接收到的兩條指令進(jìn)行解析,即提取出用戶需要的時(shí)間、經(jīng)(緯)度、高度、速度和方向等信息,故需要定義如下變量。每條NMEA 中包含的不同信息之間以“,”相間隔,這里以對(duì)BDGGA 為 例。 $BD2GGA, 063952.000,4002.2299,N,11618.0968,E,1,4,2.788,37.254,M,0,M,*71是一條典型的GGA 指令,各 段 依 次 含 義 為 時(shí) 間(063952.000)、緯 度(4002.2299)、南 緯 或 北 緯 指 示(N)、經(jīng) 度(11618.0968)、東經(jīng)或西經(jīng)指示(E)、定位狀態(tài)標(biāo)識(shí)(1)、參與定位的衛(wèi)星數(shù)(4)、水平精度因子(2.788 3)、橢球高(37.254)、橢球高單位(M)、海平面分離度(0)、海平面分離度單位(M)、差分校正時(shí)延(空)、參考ID(空)、結(jié)束符合和校驗(yàn)和(71)。

        當(dāng)BD_CMD_NUM 為2,停止對(duì)BD2指令的接收,依次對(duì)進(jìn)行解析。通過變量seg的值確定各信息段,再根據(jù)各段信息的長(zhǎng)度即可提取出所需的信息,函數(shù)流程如圖2所示。

        表2 BD2數(shù)據(jù)解析函數(shù)所需變量Tab.2 Variables of resolution function

        圖2 BD2數(shù)據(jù)各段信息提取函數(shù)流程圖Fig.2 Flow of the information extraction of BD2data

        4 顯示界面設(shè)計(jì)

        4.1 ucGUI的移植

        ucGUI作為一種精簡(jiǎn)、高效的嵌入式圖形支持系統(tǒng),在使用過程中主要完成兩個(gè)工作,一是要將其移植到自己的硬件平臺(tái)上,二是要根據(jù)需求編寫圖形應(yīng)用程序。

        由于ucGUI可以支持任意型號(hào)的LCD 控制器和CPU,即可獨(dú)立運(yùn)行也可與ucOS操作系統(tǒng)配合使用,因此關(guān)于ucGUI移植相關(guān)的參考文獻(xiàn)很多[8-10],但是在具體移植步驟也有所不同,主要體現(xiàn)在對(duì)配置文件的修改和底層LCD 驅(qū)動(dòng)控制程序的編寫。

        本系統(tǒng)在移植ucGUI時(shí),結(jié)合LCD 控制器的型號(hào),在編寫驅(qū)動(dòng)函數(shù)和修改配置文件時(shí)主要參考了文獻(xiàn)[10],但是由于是獨(dú)立運(yùn)行ucGUI,沒有系統(tǒng)系統(tǒng)支持,因此需要在移植進(jìn)行修改。具體的修改內(nèi)容和移植過程,前期已撰寫并發(fā)表于網(wǎng)上。

        4.2 自動(dòng)設(shè)備對(duì)象(Auto device object)

        根據(jù)要求,系統(tǒng)的導(dǎo)航定位信息應(yīng)以電子羅盤的形式直觀形象地提供給用戶。電子羅盤是在2-D 圖形的基礎(chǔ)上,對(duì)幾何圖形進(jìn)行靜態(tài)(表盤)或動(dòng)態(tài)(指針旋轉(zhuǎn))的顯示。由于定位信息的實(shí)時(shí)更新,界面中的部分幾何圖形也需要實(shí)時(shí)刷新,而ucGUI中的自動(dòng)設(shè)備對(duì)象(Auto device object)就是針對(duì)需要實(shí)時(shí)更新或改變顯示內(nèi)容的需求場(chǎng)合,尤其是像指針這樣屏幕中的小部分實(shí)時(shí)更新的場(chǎng)合,它基于內(nèi)存設(shè)備(memory devices),可以自動(dòng)區(qū)分由固定對(duì)象組成的靜止區(qū)域和由移動(dòng)變化對(duì)象組成的動(dòng)態(tài)更新區(qū)域,不需要更新整個(gè)界面,因此節(jié)約CPU 計(jì)算時(shí)間,有效地避免屏幕抖動(dòng)[8]。使用對(duì)象的主要過程及關(guān)鍵代碼如下:

        (1)定義繪制路徑信息的結(jié)構(gòu)體變量。

        5 圖片顯示及界面效果

        圖3 系統(tǒng)最終效果圖Fig.3 Final effect of sysetm

        系統(tǒng)對(duì)BMP或JPG 格式的圖片顯示,主要針對(duì)以下兩種應(yīng)用:一是復(fù)雜圖形界面的顯示,如主界面的背景及按鍵LOGO;二是簡(jiǎn)易電子地圖的預(yù)覽及縮放功能,對(duì)大范圍高分辨率的電子地圖,根據(jù)需要,按照地圖上的像素位置與實(shí)際地理坐標(biāo)位置的對(duì)應(yīng)關(guān)系,對(duì)圖片上的指定區(qū)域進(jìn)行剪裁顯示,以及縮小和放大顯示。

        上述功能的實(shí)現(xiàn),需要調(diào)用ucGUI的位圖顯示功能,這里需要使用如下API函數(shù),由于篇幅限制,具體調(diào)用方法這里不再敘述。

        系統(tǒng)的主界界面、電子羅盤界面以及電子地圖界面最終效果如圖3所示。

        6 結(jié) 論

        本文研究的系統(tǒng),硬件上以STM32 嵌入式處理器和北斗II模塊UM220為核心,軟件設(shè)計(jì)上以u(píng)cGUI為核心實(shí)現(xiàn)了電子羅盤界面,實(shí)現(xiàn)了精確定位及信息的可視化顯示。分別在靜止,步行(1~2m/s)和車載(60~100m/s)等三種環(huán)境下對(duì)系統(tǒng)性能進(jìn)行測(cè)試,結(jié)果表明系統(tǒng)冷啟動(dòng)時(shí)的定位時(shí)間小于2 min,熱啟動(dòng)時(shí)的定位時(shí)間小于1min,經(jīng)度緯度不受運(yùn)動(dòng)速度影響,誤差小于3m,而由于GPS定位原理的局限性,實(shí)際運(yùn)動(dòng)速度越快,定位結(jié)果越精確。同時(shí),與其他同類定位終端相比,該系統(tǒng)的最大優(yōu)點(diǎn)是成本低,功耗小,可單獨(dú)應(yīng)用于定位領(lǐng)域,也可以此系統(tǒng)為平臺(tái),進(jìn)行二次開發(fā)和擴(kuò)展,應(yīng)用于更多領(lǐng)域。

        [1] 吳紅蘭,黃圣國(guó).嵌入式GPS數(shù)據(jù)采集與分析系統(tǒng)設(shè)計(jì)[J].實(shí)驗(yàn)室研究與探索,2011,30(1):54-57.WU H L,Huang S G.Design of embedded GPS data receiving and analysis system[J].Research and Exploration in Laborary,2011,30(1):54-57.(in Chinese)

        [2] 魏強(qiáng),王曉浩,周兆英,等.GPS的微型系統(tǒng)及其制導(dǎo)[J].光學(xué)精密工程,2009,17(7):1660-1664.Wei Q,Wang X H,Zhou Z Y,et al.Guidance and implement of micro system based on GPS[J].Optics and Precision Engineering,2009,17(7):1660-1664(in Chinese)

        [3] 張洋溢,王忠.基于ARM 的GPS/GPRS多功能手持終端的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測(cè)量與控制,2011,19(12):3050-3053.Zhang Y Y,Wang Z.Design and implementation of an embedded GPS/GPRS multi-function handheld terminal based on Linxu[J].Computer Measurement &Control,2011,19(12):3050-3053.(in Chinese)

        [4] 沈鵬,徐景碩,張建忠.北斗導(dǎo)航系統(tǒng)及其在無人機(jī)上的應(yīng)用[J].航空電子技術(shù),2007,38(2):5-9.Shen P,Xu J S,Zhang J Z.BeiDou navigation positioning system and its application to unmanned aerial vehicle[J].Electronics for Aeronautics and Astronautics,2007,38(2):5-9.(in Chinese)

        [5] 錢成越,薛原.基于北斗導(dǎo)航系統(tǒng)的移動(dòng)導(dǎo)航定位終端設(shè)計(jì)[J].現(xiàn)代計(jì)算機(jī),2010,6:165-169.Qian C Y,Xue Y.Design of a mobile navigation terminal based on Beidou(COMPASS)navigation satellite systems[J].Modern Computer,2010,6:165-169.(in Chinese)

        [6] 張曉安,逯亮清,楊彪.應(yīng)用延長(zhǎng)基線法實(shí)現(xiàn)北斗雙星的快速定向[J].光學(xué)精密工程,2010,18(11):2461-2466.Zhang X A,Lu L Q,Yang B.Fast orientation of Beidou bi-satellite by extending baseline[J].Optics and Precision Engineering,2010,18(11):2461-2466.(in Chinese)

        [7] STMicroelectronic.STM32Reference Manual[EB/OL].http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1031/LN1565/PF164485.

        [8] uc-GUI Manual v4.www.micrium.com[EB/OL].http://micrium.com/rtos/ucgui/overview.

        [9] 北京翔宇星通.UM220接口協(xié)議,2011.[EB/OL].http://download.csdn.net/download/snowdrinker/5508139.BeiJing xiangyuxingtong.UM220interface protocol,2011[EB/OL].http://download.csdn.net/download/snowdrinker/5508139.(in Chinese)

        [10] Code_HXH.基于STM32的ucGUI移植和優(yōu)化[EB/OL].http://www.haogongju.net/art/73074.2011/7/27.Code_HXH.The transplant and optimization of ucGUI based on STM32[EB/OL].http://www.haogongju.net/art/73074.2011/7/27.(in Chinese)

        [11] 張洋,劉軍,嚴(yán)漢宇.原子教你玩STM32[M].北京:北京航空航天大學(xué)出版社,2013.Zhang Y,Liu J,Yan H Y.YUAN Zi teach you how to play STM32[M].Beijing:BEIHANG University Press,2013.(in Chinese)

        猜你喜歡
        北斗指令解析
        北斗和它的N種變身
        軍事文摘(2023年20期)2023-10-31 08:42:08
        聽我指令:大催眠術(shù)
        北斗時(shí)鐘盤
        三角函數(shù)解析式中ω的幾種求法
        “北斗”離我們有多遠(yuǎn)
        ARINC661顯控指令快速驗(yàn)證方法
        LED照明產(chǎn)品歐盟ErP指令要求解讀
        睡夢(mèng)解析儀
        電競(jìng)初解析
        商周刊(2017年12期)2017-06-22 12:02:01
        相機(jī)解析
        亚洲男女免费视频| 91麻豆精品久久久影院| 不卡视频在线观看网站| 国产亚洲一本二本三道| 国产乱码精品一区二区三区久久| 国产精品三级av及在线观看| 久久免费的精品国产v∧| 97色伦图片97综合影院久久| 亚洲熟妇夜夜一区二区三区| 澳门精品一区二区三区| 白嫩少妇高潮喷水av| 中文有码无码人妻在线| 内射人妻视频国内| 亚洲 欧美 影音先锋| 国产呦系列视频网站在线观看| 永久免费观看的黄网站在线| 久久精品熟女亚洲av麻| 久久久久波多野结衣高潮| 最新亚洲精品国偷自产在线| 日韩中文字幕久久久经典网| 激情视频在线观看好大| 久久久噜噜噜久久| 激情另类小说区图片区视频区| 国产精品情侣露脸av在线播放| 国产无套粉嫩白浆内精| 激情综合色综合啪啪开心| 成人综合网亚洲伊人| 久久久久人妻精品一区5555| 精品女同一区二区三区免费播放 | 久久精品国产88久久综合| 中文字幕有码在线人妻| 国产内射爽爽大片视频社区在线| 无码人妻精品一区二区三区下载| 久久免费观看国产精品| 日本女优久久精品观看| 97人妻人人揉人人躁九色| 无码人妻一区二区三区在线视频| 国产精品国产三级国产av创 | 欧美日韩在线免费看| 中文少妇一区二区三区| 国产高清乱码又大又圆|