首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
»
ARM
» 基于ARM和WINCE的便携式差分GPS导航定位系统设计及实现(2)
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于ARM和WINCE的便携式差分GPS导航定位系统设计及实现(2)
发短消息
加为好友
yuyang911220
当前离线
UID
1029342
帖子
9914
精华
0
积分
4959
阅读权限
90
在线时间
286 小时
注册时间
2014-5-22
最后登录
2017-7-24
论坛元老
UID
1029342
性别
男
1
#
打印
字体大小:
t
T
yuyang911220
发表于 2015-1-27 17:21
|
只看该作者
基于ARM和WINCE的便携式差分GPS导航定位系统设计及实现(2)
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
==‘$’&&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定位数据,具有重要的实用价值和一定的参考意义。
收藏
分享
评分
继承事业,薪火相传
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议