APP下载

基于AM335X的北斗导航应用开发

2016-10-22金龙缪峰路振民梁征

电子设计工程 2016年17期
关键词:星座图开发板控件

金龙,缪峰,路振民,梁征

(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系统,采用委托的方式实现了北斗无源定位数据的接收,提取及数据的显示的并行实现,满足了北斗接收机应用的基本要求。实验表明,该方法可实现北斗接收机的基本功能,对北斗接收机的开发具备一定的借鉴意义。

1 硬件平台简介

完整的导航接收机包括天线、射频放大、模数转换、基带信号处理、微处理器等基本模块,以及电池、外壳、各种对外接口等配套设备[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 开发环境搭建

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#开发语言时,就可看到“智能设备”的选项。以上就是搭建开发环境的全部过程。

3 应用程序开发

应用程序的开发主要包括界面设计、串口数据的管理、数据读取,界面显示等,其中以串口数据的提取为核心,实际上获取北斗导航数据就是通过串口读取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 可视卫星星座图显示

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—),男,吉林吉林人,工程师。研究方向:网络通信的设计与应用,嵌入式开发等。

猜你喜欢

星座图开发板控件
基于.net的用户定义验证控件的应用分析
基于STM32H7的FDCAN通信系统设计与实现∗
基于寻址的通信信号调制算法实现
基于资源块星座图的稀疏码多址接入码本设计
关于.net控件数组的探讨
浅析单片机开发板的设计与制作
ARM宣布mbed Enabled Freescale FRDM—K64F开发板通过微软认证
信号分割修正聚类的星座图恢复算法
基于嵌入式MINIGUI控件子类化技术的深入研究与应用
MiniGUI在基于OMAP5912开发板上的移植