金龍,繆峰,路振民,梁征
(73678部隊110分隊福建廈門361009)
基于AM335X的北斗導航應用開發(fā)
金龍,繆峰,路振民,梁征
(73678部隊110分隊福建廈門361009)
隨著北斗二代系統(tǒng)的不斷完善,為進一步拓展北斗應用領域,本文通過采用AM335X開發(fā)板、UM220北斗模塊和嵌入式WIN CE系統(tǒng),進行北斗應用開發(fā)并實現(xiàn)了北斗導航系統(tǒng)的基本功能。在以委托的方式完成串口數(shù)據(jù)讀取的基礎上,實現(xiàn)了NMEA數(shù)據(jù)的接收及處理,并進一步完成了經(jīng)緯度、時間的顯示,給出了可視星的星座圖。經(jīng)實際接收北斗衛(wèi)星信號表明,定位數(shù)據(jù)顯示準確實時,應用程序可穩(wěn)定運行,對北斗二代系統(tǒng)終端的開發(fā)有一定的借鑒意義。
北斗導航;AM335X;WIN CE;嵌入式
隨著北斗衛(wèi)星導航系統(tǒng)的逐步完善,北斗二代終端的設計及應用也逐漸成為研究熱點。為進一步開拓發(fā)北斗在大眾服務中的市場,本文提出了一種基于AM335X和WINCE 7.0的導航開發(fā)方法。
AM335X是一款Cortex-A8架構的CPU,內(nèi)核頻率高達800 MHz,WIN CE微軟公司嵌入式、移動計算平臺的基礎,它是一個開放的、緊湊的、高效的、可升級的32位實時嵌入式操作系統(tǒng)[1],Windows CE的圖形用戶界面相當出色,與嵌入式Linux相比,具備有良好兼容Win32API、開發(fā)難度低、開發(fā)工具強大等特點,是嵌入式開發(fā)的首選工具。
因此,文中提出基于AM335x開發(fā)板和嵌入式WINCE 7系統(tǒng),采用委托的方式實現(xiàn)了北斗無源定位數(shù)據(jù)的接收,提取及數(shù)據(jù)的顯示的并行實現(xiàn),滿足了北斗接收機應用的基本要求。實驗表明,該方法可實現(xiàn)北斗接收機的基本功能,對北斗接收機的開發(fā)具備一定的借鑒意義。
完整的導航接收機包括天線、射頻放大、模數(shù)轉(zhuǎn)換、基帶信號處理、微處理器等基本模塊,以及電池、外殼、各種對外接口等配套設備[2]。
文中采用UM220-III模塊和OK335X開發(fā)板作為硬件開發(fā)平臺,其中UM220-III N模塊,是BD/GPS雙系統(tǒng)導航模塊,將大線接收到的BD2 B1、GPS L1兩個頻點的原始信號經(jīng)過濾波、放大、混頻、等一系列信號處理變成中頻信號,經(jīng)過解調(diào)生成衛(wèi)星下行數(shù)據(jù)后,按照協(xié)議進行解算,生成定位相關信息[3],并從串口輸出NMEA(National Marine Electronics Association)數(shù)據(jù)。
OK335X開發(fā)板基于Cortex-A8的AM3354處理器作為主控制器,通過串口的控制完成數(shù)據(jù)的讀取,在運行WINCE的基礎上,實現(xiàn)了數(shù)據(jù)的提取和顯示。
文中所采用的硬件平臺工作原理圖如圖1所示。
圖1 硬件開發(fā)平臺組成框圖
2.1嵌入式WINCE介紹
WINCE7全稱為WindowsEmbeddedCompact7,在Windows Embedded CE基礎上演變而來,WIN CE7最主要的新增功能是silverlight,使UI和核心功能進一步分離,有助于設計人員更高效的開發(fā)核心功能和更具現(xiàn)代氣息的界面。WINCE7支持范圍廣,可以運行在基于x86,ARM,MIPS和SH4四種CPU架構設計而衍生出的多種硬件平臺上,從消費型的電子商品到關鍵型的工業(yè)自動化設備,都可看到WINCE 7的身影[4]。
WINCE 7支持更大的Nand Flash讀寫,以及完備的SD卡、熱插拔支持,并采用.NET Compact FrameWork 3.5框架,使得程序的開發(fā)更加方便快捷。
2.2搭建嵌入式WINCE的開發(fā)環(huán)境
首選需要安裝Visual Studio開發(fā)套裝,文中采用的是VS2008,編程語言使用C#,在安裝好VS2008之后,還需要完成下面3個步驟:
1)下載并安裝WINCE7的安裝包,該安裝包有8G大小,安裝過程中在選擇硬件架構時,注意選擇ARM v7 Architecture。
2)是在嵌入式開發(fā)板上運行WIN7系統(tǒng),可根據(jù)開發(fā)板提供的鏡像文件進行一鍵燒寫,也可自行對WINCE進行裁剪后重新編譯,完成定制系統(tǒng)的燒寫。
3)是開發(fā)板與系統(tǒng)的連接,硬件上分別使用RS232串口線和OTG線連接PC機與開發(fā)板,并分別安裝相應的驅(qū)動程序,包括CH341串口驅(qū)動和Microsoft ActiveSync 6.1同步軟件。
完成好以上步驟后,啟動開發(fā)板,就可以在VS2008的遠程管理界面中看到WINCE的界面了,并可以刷新、保存截圖。
同時,還可以利用OTG線及同步軟件實現(xiàn)WINCE6.0系統(tǒng)文件夾的映射,即在PC機上讀取開發(fā)板的一個文件夾,較好的方便了程序的開發(fā)及測試。
2.3嵌入式WINCE程序的移植
開發(fā)環(huán)境搭建好后,還需要安裝相應的SDK才可以實現(xiàn)程序的交叉編譯,本文安裝的是開發(fā)板提供的FLAM335XSDK。
安裝完畢后,啟動VS2008,在新建項目,選擇C#開發(fā)語言時,就可看到“智能設備”的選項。以上就是搭建開發(fā)環(huán)境的全部過程。
應用程序的開發(fā)主要包括界面設計、串口數(shù)據(jù)的管理、數(shù)據(jù)讀取,界面顯示等,其中以串口數(shù)據(jù)的提取為核心,實際上獲取北斗導航數(shù)據(jù)就是通過串口讀取UM220輸出的NMEA格式數(shù)據(jù)的過程[5]。
3.1串口設備的管理
WINCE中管理使用串口有兩種方式,一是使用Active控件,方便簡單但欠缺靈活,二是使用API函數(shù),掌握串口通信的機制,并且自由靈活。本文為方便起見,使用第一種方式,使用C#提供的SerialPort控件。
使用控件,可直接對該控件的屬性進行賦值,如本文使用開發(fā)板第二個串口,波特率為9600。代碼示例如下:
serialPort1.BaudRate=9600;
零備件數(shù)字化制造信息平臺支持多個來源的生產(chǎn)訂單接收,生產(chǎn)準備、生產(chǎn)派工、生產(chǎn)執(zhí)行和生產(chǎn)監(jiān)控是完成訂單交付的四大核心業(yè)務過程。其中,生產(chǎn)準備是基礎,生產(chǎn)監(jiān)控貫穿準備、派工與執(zhí)行的全過程。零備件數(shù)字化制造信息平臺通過工藝系統(tǒng)、生產(chǎn)執(zhí)行系統(tǒng)、分布式數(shù)控系統(tǒng)的IT應用,輔助三大核心業(yè)務過程的順暢高效流轉(zhuǎn)。如圖1、圖2所示。
serialPort1.PortName="COM2";
打開、關閉串口則直接使用控件自帶的Open()和Close()函數(shù)即可。
3.2串口數(shù)據(jù)的讀取
在串口數(shù)據(jù)打開后,數(shù)據(jù)的讀取需要在后臺運行,這里采用委托的方式,首先對委托進行聲明:
delegate void UpdateTextEventHandler(string text);
然后在讀取數(shù)據(jù)時調(diào)用委托:
最后再委托偵測中,實現(xiàn)數(shù)據(jù)的讀取
string SDateTemp=this.serialPort1.Read Exi sting();
this.Invoke(newUpdateTextEventHandler(Upd ateTextBox),new string[]{SDateTemp});
這樣,在UpdateTextBox(string)中,就傳入了讀取到的字符串,也就是本文所需要的NEMA數(shù)據(jù)。
讀取成功的界面如圖2所示。
圖2 串口管理及數(shù)據(jù)讀取圖
3.3NEMA數(shù)據(jù)的提取
當數(shù)據(jù)讀取成功后,需要根據(jù)NMEA格式對數(shù)據(jù)進行處理。NMEA協(xié)議是為了在不同的GPS(全球定位系統(tǒng))導航設備中建立統(tǒng)一的BTCM(海事無線電技術委員會)標準,由美國國家海洋電子協(xié)會(NMEA-The National Marine Electronics Associa-tion)制定的一套通訊協(xié)議[6]。該協(xié)議中,輸入輸入的語句統(tǒng)稱為消息,每條消息均為全ASCII字符組成的字符串[7]。所有消息都以“$”開始,后緊跟消息名,之后有一定數(shù)量的參數(shù)或數(shù)據(jù),消息名與數(shù)據(jù)之間均以逗號進行分隔。
NEMA格式對每一種數(shù)據(jù)類型都有嚴格的定義,其中位置數(shù)據(jù)格式如表1所示。
值得指出的是,表中的UTC時間,是格林威治時間,我們需要把它轉(zhuǎn)換成北京時間(BTC),BTC和UTC差了8個小時,要在這個時間基礎上加8個小時[8]。
特別的,如果模塊工作在組合定位模式下,$GPRMC格式包含定位系統(tǒng)的所有必要信息,如緯度、經(jīng)度、速度,方向和日期等。格式如表2。
表1 定位數(shù)據(jù)格式及部分參數(shù)含義
表2 RMC數(shù)據(jù)格式及部分參數(shù)定義
根據(jù)以上格式,對接收到的數(shù)據(jù)進行字符串處理,提取有用信息,即可進行顯示,如圖3所示。
圖3 定位數(shù)據(jù)顯示圖
3.4星座圖顯示
同樣,利用NEMA數(shù)據(jù)可實現(xiàn)當前可視星的圖形化顯示。主要的步驟包括:
一是可視星的俯仰角值到圖形界面的坐標值的轉(zhuǎn)換。
二是圖形顯示,使用WINCE GDI+的相關函數(shù),基于pictureBox控件創(chuàng)建圖形句柄,然后繪制相關的線條、圖形,如下面的代碼為畫橢圓:
Graphics gra=pictureBox1.CreateGraphics();
Pen p=new Pen(Color.Blue,2);
gra.DrawEllipse(p,x-r1,y-r1,2*r1,2*r1);
星座圖實現(xiàn)界面如圖4所示。
圖4 可視衛(wèi)星星座圖顯示
文中在完成WINCE程序的基礎上,實現(xiàn)了從OK335開發(fā)板的串口讀取NEMA數(shù)據(jù),并進一步完成了定位數(shù)據(jù)提取和衛(wèi)星星座圖顯示。經(jīng)測試,程序運行穩(wěn)定,定位精度優(yōu)于10米,驗證了北斗二代接收機在WINCE終端上開發(fā)的可行性,對北斗終端應用的發(fā)展有一定的借鑒意義。
[1]王莎莎.基于嵌入式系統(tǒng)的北斗顯控系統(tǒng)的設計與實現(xiàn)[D].西安:西安電子科技大學,2010.
[2]許友哲,高源,李健等.基于WINCE的北斗二代導航終端設計與實現(xiàn)[J].計算機工程與應用,2012,48(S2):181-185.
[3]卓強輝.基于S3C6410的北斗手持終端顯控系統(tǒng)設計[D].西安:西北大學,2013.
[4]廖珂.基于S3C6410的Windows CE的BSP開發(fā)與遠程控制設計[D].成都:電子科技大學,2012.
[5]孫良義,張勇,劉潔.基于ARM和WINCE的便攜式差分GPS導航定位系統(tǒng)設計及實現(xiàn)[J].電子設計工程,2013,22:91-94.
[6]楊勁松.一個基于QT圖形界面的GPS導航軟件系統(tǒng)設計與實現(xiàn)[D].北京:北京大學,2008.
[7]路振民,邵瓊玲,宋方.基于嵌入式Linux的北斗二代接收機應用開發(fā)[J].現(xiàn)代電子技術,2014,23:155-158.
[8]凡書明.基于嵌入式系統(tǒng)的手機導航系統(tǒng)研究[D].太原:中北大學,2011.
Application development of compass navigation based on AM335X
JIN Long,MIAO Feng,LU Zhen-min,LIANG Zheng
(73678 Troops 110 Unit,Xiamen 361009,China)
With the increasing improvement of the Beidou second generation system,in order to further expand the Beidou application field,this paper has achieved the basic functions of the Beidou navigation system by the use of AM335X development board,UM220 Beidou module and the embedded CE WIN system.The receiving and processing of the NMEA data has been completed on the basis of reading the serial data by means of the delegate.Meantime,the latitude,the longitude and the time are further displayed.Finally,the constellation diagram of the visual star is given.Some conclusions can be obtained by receiving the Beidou satellite signal.The positioning data display of the system is accurate and in real-time.The application of the system can run stably for a long-term.Therefore,the research has certain reference significance to the development of the BD-2 terminal.
BD-2 navigation;AM335X;WIN CE;embedded
TN962
A
1674-6236(2016)17-0139-03
2015-08-25稿件編號:201508128
金龍(1980—),男,吉林吉林人,工程師。研究方向:網(wǎng)絡通信的設計與應用,嵌入式開發(fā)等。