基于ARM和WINCE的便携式差分GPS导航定位系统设计及

分享到:
590
下一篇 >

 摘要:以ARM9微处理器S3C2440A为硬件平台核心,WindowsCE嵌入式操作系统为软件平台,构建了微型化、便携的差分GPS导航定位系统。在Visual Studio2008开发环境中采用MFC编程技术,编写导航定位软件,通过RS232串口读取差分GPS接收设备输出的$GPRMC信息,解析后用于显示和导航参数计算。系统在开阔场地进行了实验,运行正常并得到了精度良好的导航定位结果,具有重要的实用价值。

差分GPS可提供连续、高精度、实时的时间基准、位置、速度、整周模糊度等数据,被广泛应用于各项海上试验中。在以小型船舶如小艇、渔船等为平台进行某些试验科目时,由于其空间狭小,防护性较差,使用常规差分GPS接收机加显控笔记本存在架设不便、供电困难、溅入海水等问题,而使用手持GPS接收机又存在精度低、稳定性差、屏幕小、导航不便等问题。嵌入式系统以其低功耗、小体积、高稳定性和便携等优势,在GPS的应用中占据重要的位置。文中研究基于嵌入式微处理器系统和WindowsCE5.0的便携式差分GPS导航定位系统。

1 系统的硬件设计

设计的导航定位系统硬件主要由3部分组成:ARM平台,差分GPS模块,移动电源模块。ARM平台主要负责整个系统的运行,差分GPS模块负责GPS定位信息的接收和发送,移动电源模块负责分别给ARM平台和差分GPS模块供电,硬件构成如图1所示。

1.1 ARM平台

由基于ARM920T内核的32位高性能嵌入式微处理器S3C2440A、64MB的SDRAM、64MB的Nand Flash的核心板和外围扩展接口资源7寸LCD触摸屏、USB口、JTAG接口、电源接口、复位电路、RTC电路、SD卡接口、1个RS232串口、1个UART接口(3个扩展串口)组成,SDRAM存储器用于运

行系统主程序,Nand Flash存储器具有掉电保护功能,用于存储操作系统内核、Boofloader的启动代码和开发程序,RS232串口COM1可用于和PC机通信,扩展串口COM0为3.3 VCMOS电平,用于采集差分GPS模块输出的数据信息。选用群创7寸TFT电阻式触摸屏,用于人机交互和显示导航软件信息,USB口用于下载WINCE内核文件及与软件开发主机进行数据交互,JTAG调试接口用于硬件调试和烧载Bootloader。

1.2 差分GPS模块

由加拿大Hemisphere公司的Crescent GPS OEM板HC12、电平转换板和差分天线组成。新月HC12是一款高性能单频12通道接收机(其中有2个通道专用于跟踪SBAS信号),体积小、功耗低,通过接收SBAS或外部差分信号,可提供亚米级定位精度,数据输出采用NMEA-0183标准,输出速率可高达20Hz.此接收机还可以输出原始观测数据,用于后处理解算。在差分信号暂时失锁情况下,其**的COAST技术可以利用已收到的差分数据保持30分钟的稳定差分级定位精度。

新月HC12有3个全双工3.3 V CMOS电平串口(A,B,C),COM A直接与ARM平台COM2相连,用于进行HC12参数设置或输出定位数据信息,COM B电平转换为RS232电平后可接入PC机,同样可用于HC12参数设置或输出定位数据信息,COM C串口备用。HC12输入电压为3.3 V,而电源模块输出电压为5 V,需要进行电平转换。电源电压转换选用AMS1117-3.3芯片,串口电平转换采用MAX3232芯片,HC12通过一34Pin(17pin X2)的转接头实现电源供电以及外部通信,电平转换电路如图2所示。

差分天线选用Hemisphere公司生产的A30天线,该天线可接收GPS、SBAS和Beacon信号,拥有多个波段接收能力,具有出色的缓解抑制噪声性能,在高电气噪声和其它**扰环境下都能够保持很好的GPS信号接收,适合使用在高精密的GPS应用中。

1.3 移动电源模块

由8块2400mAh三星18650圆柱形锂离子电芯和5V升压、保护、充电一体板组成,两个输出端口分别给ARM平台和差分GPS模块供电,输出电压5 V、电流1 A,其供电时间大于6小时。

2 系统软件设计

系统的软件是基于WINCE5.0嵌入式操作系统设计的,WINCE是一个多任务、完全抢占式的32位嵌入式操作系统,具有操作界面良好、实时性较高、占用资源少、通信能力强的特点,支持WINCE MFC、ATL、WINCE API和一些附加的编程接口及各种通信技术,可充分满足本软件的技术需求。开发工具采用微软的Visual Studio2008,安装完WINCE5.0的SDK(Software Development Kit,软件开发工具包)后,创建智能设备MFC工程,即可开始软件编写。SDK可以使用标准的,也可自行编译生成。

2.1 软件界面

图3所示为本系统接收GPS导航数据后处理并显示的软件界面。打开界面后,在“串口通信”区进行串口“端口号”和“波特率”设置,点击“打开”按钮,下方“收到”的编辑框就会不断地显示从差分GPS模块输出的NMEA格式导航数据,勾选“保存数据”可将输出的导航数据以文本格式保存,用于事后数据处理分析,在“发送”编辑框可借助NMEA0183指令进行HC12参数设置;在“定位信息”区有经纬度、航向、速度、GPS时间等参数实时显示,点击“**轨迹”可将海图显示区历史轨迹**;“导航信息”区可进行“目标点”添加、修改、删除、画圆、航线等设置,实时显示本船距目标点位置、方位、偏离等参数:在“海图操作”区可进行放大、缩小、本舰居中、目标居中、标记当前点位等操作,勾选“平移海图”后点按左侧海图区不动可进行上下左右移动;左侧蓝**域为海图显示区,可直观显示本船与各目标点位置关系、试验态势等。

2.2 设置HC12参数

通过串口建立差分GPS模块与ARM或PC机的连接,借助NMEA0183指令,通过任意一串口均可以设置HC12。可用开发软件串口通信区“发送”命令按钮或串口助手软件(WINCE或WINXP均可)进行通信,首先设置接收机应用模式为SBAS,再设置串口通信波特率、串口输出的NMEA语句及输出速率,*后设置*大差分龄期和卫星仰角。

差分GPS模块串行通讯参数为:波特率=19200,数据位=8位,停止位=1位,无奇偶校验。通过串口建立ARM和GPS的连接,GPS加电后便自动搜索卫星,并通过串口以每秒1次的频率向ARM发送GPRMC格式的定位信息,在定位信息有效后ARM便可以提取所需要的定位信息。

2.3 读取串口

获取GPS导航数据实际上就是通过串口读取HC12输出的NMEA格式数据的过程,下面介绍WINCE下读取串口程序的开发过程。

2.3.1 打开串口

点击“打开”按钮,进入此按钮的消息响应函数,函数中执行打开串口和串口参数配置等操作。首先调用CreateFile()函数打开指定的端口,接着对串口进行参数配置,包括波特率、数据位、停止位、奇偶校验等。参数设置过程为:先调用GetCommState()获取串口的当前配置,得到结构体DCB(Device Control Block,设备控制块)的指针,通过它给DCB结构体赋值,然后传给SetCommState()函数对串口进行配置。

*后设置串口的超时参数,设置方法与上述参数设置类似,先通过GetCommTimeouts()得到一个结构体指针,赋值后传给Set Comm Time outs()进行设置。

2.3.2 接收数据

串口打开后,自动开始接收,函数中调用了CreateThread()开辟了一个线程,用于接收串口数据。由于接受过程需要调用WaitCommEven()函数来不停地等待数据到来事件,会致使程序无法响应其他操作,因此采用开辟线程的办法来防止信息拥堵。

图4所示为接收串口数据的线程中执行的操作流程。程序实现了串口数据的接收,并把接收到的数据传递给Dig类,用于后期进行定位信息提取及显示等操作。

2.4 提取定位数据

NMEA-0183通信标准的输出数据采用的是ASCⅡ码,主要有GGA、GLL、GSA、GSV、RMC、VCT等不同的结构,每种类型的帧均是以“$”开头,然后是两个字母的“识别符”和3个字母的“语句名”组成ID信息头,接着就是以逗号分割的数据体,末尾为校验和,以回车换行符结束。本设计只关心日期、时间、经纬度、地面速度等,选用GPRMC语句,表1中对该语句结构作了详细说明,按图5所示的流程即可完成GPS数据的提取。注意在编写程序中不要出现m_strRecv[i+k](k>0)这样的表达式,例如以(m_strDataReceived[i]==‘$’&&m_strDataReceived[i+3]==‘R’)为判断条件来提取ID头,容易造成超出数组元素个数的错误。

3 系统实验及精度分析

实验地点选在运动场场开阔处,先采用静态内符合法进行精度测试。连接差分GPS天线,给系统上电,运行开发软件,设置好串口参数,打开串口COM2,待差分GPS模块进入稳定差分定位后开始保存数据,采集数据约3 000组,用MATLAB处理采集数据,结果如图6所示。

导航定位等功能测试:手持该系统进行直线和圆形运动,观察海图区域航迹向轨迹形状;设定1个目标点,画半径为200米的圆并设置航线,分别按直线和曲线前进,观察距离、偏离、方位等参数变化;对海图进行放大、缩小和平移,分别点选本舰居中和目标居中,观察海图显示变化。

测试表明,终端软件能平稳地运行在嵌入式WINCE5.0系统上,操作界面简洁、直观、实用、功能**,具有良好的实时性和准确性,系统定位精度(2DRMS)优于1 m。

4 结束语

文中基于ARM硬件平台,以WINCE为嵌入式操作系统,在Visual Studio2008下开发了串口通信导航数据软件,通过串行接口实现差分GPS模块与ARM之间的通信,构建了一个体积小、功耗低、功能**的便携式差分GPS导航定位系统,并给出了详细的硬件和软件设计实现。实验表明:该系统能实时显示精度较高、持久有效的GPS定位数据,具有重要的实用价值���一定的参考意义。

你可能感兴趣: 设计应用 图片 ARM GPS 操作系统
无觅相关文章插件,快速提升流量