您当前的位置:五五电子网电子知识电子知识资料GPS定位技术基于ARM和WINCE的便携式差分GPS导航定位系统设计解析 正文
基于ARM和WINCE的便携式差分GPS导航定位系统设计解析

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

点击数:7731 次   录入时间:03-04 12:00:14   整理:http://www.55dianzi.com   GPS定位技术

      内容摘要:以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所示。

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

    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所示。

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

    差分天线选用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时间等参数实时显示,点击“清除轨迹”可将海图显示区历史轨迹清除;“导航信息”区可进行“目标点”添加、修改、删除、画圆、航线等设置,实时显示本船距目标点位置、方位、偏离等参数:在“海图操作”区可进行放大、缩小、本舰居中、目标居中、标记当前点位等操作,勾选“平移海图”后点按左侧海图区不动可进行上下左右移动;左侧蓝色区域为海图显示区,可直观显示本船与各目标点位置关系、试验态势等。

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


www.55dianzi.com

    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()函数来不停地等待数据到来事件,会致使程序无法响应其他操作,因此采用开辟线程的办法来防止信息拥堵。

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

    图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头,容易造成超出数组元素个数的错误。

[1] [2]  下一页


本文关键字:GPS导航  GPS定位技术电子知识资料 - GPS定位技术