金龍,繆峰,路振民,梁征
(73678部隊110分隊福建廈門361009)
基于AM335X的北斗導航應用開發
金龍,繆峰,路振民,梁征
(73678部隊110分隊福建廈門361009)
隨著北斗二代系統的不斷完善,為進一步拓展北斗應用領域,本文通過采用AM335X開發板、UM220北斗模塊和嵌入式WIN CE系統,進行北斗應用開發并實現了北斗導航系統的基本功能。在以委托的方式完成串口數據讀取的基礎上,實現了NMEA數據的接收及處理,并進一步完成了經緯度、時間的顯示,給出了可視星的星座圖。經實際接收北斗衛星信號表明,定位數據顯示準確實時,應用程序可穩定運行,對北斗二代系統終端的開發有一定的借鑒意義。
北斗導航;AM335X;WIN CE;嵌入式
隨著北斗衛星導航系統的逐步完善,北斗二代終端的設計及應用也逐漸成為研究熱點。為進一步開拓發北斗在大眾服務中的市場,本文提出了一種基于AM335X和WINCE 7.0的導航開發方法。
AM335X是一款Cortex-A8架構的CPU,內核頻率高達800 MHz,WIN CE微軟公司嵌入式、移動計算平臺的基礎,它是一個開放的、緊湊的、高效的、可升級的32位實時嵌入式操作系統[1],Windows CE的圖形用戶界面相當出色,與嵌入式Linux相比,具備有良好兼容Win32API、開發難度低、開發工具強大等特點,是嵌入式開發的首選工具。
因此,文中提出基于AM335x開發板和嵌入式WINCE 7系統,采用委托的方式實現了北斗無源定位數據的接收,提取及數據的顯示的并行實現,滿足了北斗接收機應用的基本要求。實驗表明,該方法可實現北斗接收機的基本功能,對北斗接收機的開發具備一定的借鑒意義。
完整的導航接收機包括天線、射頻放大、模數轉換、基帶信號處理、微處理器等基本模塊,以及電池、外殼、各種對外接口等配套設備[2]。
文中采用UM220-III模塊和OK335X開發板作為硬件開發平臺,其中UM220-III N模塊,是BD/GPS雙系統導航模塊,將大線接收到的BD2 B1、GPS L1兩個頻點的原始信號經過濾波、放大、混頻、等一系列信號處理變成中頻信號,經過解調生成衛星下行數據后,按照協議進行解算,生成定位相關信息[3],并從串口輸出NMEA(National Marine Electronics Association)數據。
OK335X開發板基于Cortex-A8的AM3354處理器作為主控制器,通過串口的控制完成數據的讀取,在運行WINCE的基礎上,實現了數據的提取和顯示。
文中所采用的硬件平臺工作原理圖如圖1所示。

圖1 硬件開發平臺組成框圖
2.1嵌入式WINCE介紹
WINCE7全稱為WindowsEmbeddedCompact7,在Windows Embedded CE基礎上演變而來,WIN CE7最主要的新增功能是silverlight,使UI和核心功能進一步分離,有助于設計人員更高效的開發核心功能和更具現代氣息的界面。WINCE7支持范圍廣,可以運行在基于x86,ARM,MIPS和SH4四種CPU架構設計而衍生出的多種硬件平臺上,從消費型的電子商品到關鍵型的工業自動化設備,都可看到WINCE 7的身影[4]。
WINCE 7支持更大的Nand Flash讀寫,以及完備的SD卡、熱插拔支持,并采用.NET Compact FrameWork 3.5框架,使得程序的開發更加方便快捷。
2.2搭建嵌入式WINCE的開發環境
首選需要安裝Visual Studio開發套裝,文中采用的是VS2008,編程語言使用C#,在安裝好VS2008之后,還需要完成下面3個步驟:
1)下載并安裝WINCE7的安裝包,該安裝包有8G大小,安裝過程中在選擇硬件架構時,注意選擇ARM v7 Architecture。
2)是在嵌入式開發板上運行WIN7系統,可根據開發板提供的鏡像文件進行一鍵燒寫,也可自行對WINCE進行裁剪后重新編譯,完成定制系統的燒寫。
3)是開發板與系統的連接,硬件上分別使用RS232串口線和OTG線連接PC機與開發板,并分別安裝相應的驅動程序,包括CH341串口驅動和Microsoft ActiveSync 6.1同步軟件。
完成好以上步驟后,啟動開發板,就可以在VS2008的遠程管理界面中看到WINCE的界面了,并可以刷新、保存截圖。
同時,還可以利用OTG線及同步軟件實現WINCE6.0系統文件夾的映射,即在PC機上讀取開發板的一個文件夾,較好的方便了程序的開發及測試。
2.3嵌入式WINCE程序的移植
開發環境搭建好后,還需要安裝相應的SDK才可以實現程序的交叉編譯,本文安裝的是開發板提供的FLAM335XSDK。
安裝完畢后,啟動VS2008,在新建項目,選擇C#開發語言時,就可看到“智能設備”的選項。以上就是搭建開發環境的全部過程。
應用程序的開發主要包括界面設計、串口數據的管理、數據讀取,界面顯示等,其中以串口數據的提取為核心,實際上獲取北斗導航數據就是通過串口讀取UM220輸出的NMEA格式數據的過程[5]。
3.1串口設備的管理
WINCE中管理使用串口有兩種方式,一是使用Active控件,方便簡單但欠缺靈活,二是使用API函數,掌握串口通信的機制,并且自由靈活。本文為方便起見,使用第一種方式,使用C#提供的SerialPort控件。
使用控件,可直接對該控件的屬性進行賦值,如本文使用開發板第二個串口,波特率為9600。代碼示例如下:
serialPort1.BaudRate=9600;
零備件數字化制造信息平臺支持多個來源的生產訂單接收,生產準備、生產派工、生產執行和生產監控是完成訂單交付的四大核心業務過程。其中,生產準備是基礎,生產監控貫穿準備、派工與執行的全過程。零備件數字化制造信息平臺通過工藝系統、生產執行系統、分布式數控系統的IT應用,輔助三大核心業務過程的順暢高效流轉。如圖1、圖2所示。
serialPort1.PortName="COM2";
打開、關閉串口則直接使用控件自帶的Open()和Close()函數即可。
3.2串口數據的讀取
在串口數據打開后,數據的讀取需要在后臺運行,這里采用委托的方式,首先對委托進行聲明:
delegate void UpdateTextEventHandler(string text);
然后在讀取數據時調用委托:
最后再委托偵測中,實現數據的讀取
string SDateTemp=this.serialPort1.Read Exi sting();
this.Invoke(newUpdateTextEventHandler(Upd ateTextBox),new string[]{SDateTemp});
這樣,在UpdateTextBox(string)中,就傳入了讀取到的字符串,也就是本文所需要的NEMA數據。
讀取成功的界面如圖2所示。

圖2 串口管理及數據讀取圖
3.3NEMA數據的提取
當數據讀取成功后,需要根據NMEA格式對數據進行處理。NMEA協議是為了在不同的GPS(全球定位系統)導航設備中建立統一的BTCM(海事無線電技術委員會)標準,由美國國家海洋電子協會(NMEA-The National Marine Electronics Associa-tion)制定的一套通訊協議[6]。該協議中,輸入輸入的語句統稱為消息,每條消息均為全ASCII字符組成的字符串[7]。所有消息都以“$”開始,后緊跟消息名,之后有一定數量的參數或數據,消息名與數據之間均以逗號進行分隔。
NEMA格式對每一種數據類型都有嚴格的定義,其中位置數據格式如表1所示。
值得指出的是,表中的UTC時間,是格林威治時間,我們需要把它轉換成北京時間(BTC),BTC和UTC差了8個小時,要在這個時間基礎上加8個小時[8]。
特別的,如果模塊工作在組合定位模式下,$GPRMC格式包含定位系統的所有必要信息,如緯度、經度、速度,方向和日期等。格式如表2。

表1 定位數據格式及部分參數含義

表2 RMC數據格式及部分參數定義
根據以上格式,對接收到的數據進行字符串處理,提取有用信息,即可進行顯示,如圖3所示。

圖3 定位數據顯示圖
3.4星座圖顯示
同樣,利用NEMA數據可實現當前可視星的圖形化顯示。主要的步驟包括:
一是可視星的俯仰角值到圖形界面的坐標值的轉換。
二是圖形顯示,使用WINCE GDI+的相關函數,基于pictureBox控件創建圖形句柄,然后繪制相關的線條、圖形,如下面的代碼為畫橢圓:
Graphics gra=pictureBox1.CreateGraphics();
Pen p=new Pen(Color.Blue,2);
gra.DrawEllipse(p,x-r1,y-r1,2*r1,2*r1);
星座圖實現界面如圖4所示。

圖4 可視衛星星座圖顯示
文中在完成WINCE程序的基礎上,實現了從OK335開發板的串口讀取NEMA數據,并進一步完成了定位數據提取和衛星星座圖顯示。經測試,程序運行穩定,定位精度優于10米,驗證了北斗二代接收機在WINCE終端上開發的可行性,對北斗終端應用的發展有一定的借鑒意義。
[1]王莎莎.基于嵌入式系統的北斗顯控系統的設計與實現[D].西安:西安電子科技大學,2010.
[2]許友哲,高源,李健等.基于WINCE的北斗二代導航終端設計與實現[J].計算機工程與應用,2012,48(S2):181-185.
[3]卓強輝.基于S3C6410的北斗手持終端顯控系統設計[D].西安:西北大學,2013.
[4]廖珂.基于S3C6410的Windows CE的BSP開發與遠程控制設計[D].成都:電子科技大學,2012.
[5]孫良義,張勇,劉潔.基于ARM和WINCE的便攜式差分GPS導航定位系統設計及實現[J].電子設計工程,2013,22:91-94.
[6]楊勁松.一個基于QT圖形界面的GPS導航軟件系統設計與實現[D].北京:北京大學,2008.
[7]路振民,邵瓊玲,宋方.基于嵌入式Linux的北斗二代接收機應用開發[J].現代電子技術,2014,23:155-158.
[8]凡書明.基于嵌入式系統的手機導航系統研究[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—),男,吉林吉林人,工程師。研究方向:網絡通信的設計與應用,嵌入式開發等。