当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]GPS的定位测向系统的软件实现

全球定位系统(GPS)是由美国国防部主要为满足军事部门对海、陆、空设施进行高精度导航和定位而研制的全球性被动式无线电的应用,探讨用VB实现GPS信息处理的方法仍是大家普遍关注的问题。在Windows环境下通过VB编程语言及其提供的专门用于串口通信的MSComm控件,实现GPS接收机与计算机的串口通信。将GPS接收机的小型化OEM板与计算机相结合,利用其输出的数据信息,配置相应的外围设备,即可方便、自主地实现基于GPS的卫星测量及无线电导航、定位和定时于一体的多功能系统。

1 NMEA-0183协议

1.1 协议简介

NEMA协议是为了在不同的GPS导航设备中建立统一的RTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(The National Marine ElectronicsAssociation,NMEA)制定的。目前大部分的GPS接收设备都遵循这一标准。该接口协议定义了在波特率为19 200的串口数据总线上传输电信号的需求、数据传输协议和时间以及详细的语句格式。

1.2 NMEA-0183语句格式

NMEA-0183语句格式一般为:“$”为语句起始标志;“,”为域分隔符;“*”为校验和识别符,其后面的两位数为校验和;“<CR>/<LF>”为终止符,表示回车、换行。本文以GPGGA信息语句为例,进行详细分析。

GPGGA:Global Positioning System Fix Data(GGA)(GPS定位信息)

$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*hh<CR><LF>

<1>UTC时间(世界协调时),hhmmss(时分秒);

<2>纬度:格式为度度分分、分分分分(ddmm.mmmm,前面的0也将被传输);

<3>纬度半球N(北半球)或者S(南半球);

<4>经度:格式为度度分分、分分分分(ddmm.mmmm,前面的0也将被传输);

<5>经度半球E(东经)或W(西经);

<6>GPS状态:0=未定位,1=非差分定位,2=差分定位,6=正在估算;

<7>正在使用解算位置的卫星数量(00~12)(前面的0也将被传输);

<8>HDOP水平精度因子(0.5~99.9);

<9>海拔高度(-9 999.9 m~99 999.9 m);

<10>地球椭球面相对大地水准面的高度;

<11>差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空);

<12>差分站ID号:0000~1023(前面的0也将被传输,如果不是差分定位将为空)。

2 MSComm控件的应用及数据采集

2.1 端口设置

由于GPS串行通讯参数是固定的“波特率=19200;无奇偶校验;数据位=8;停止位=1”,在编程时直接设置串口通讯参数便可以了。

主要程序段为:NMEA协议设置 MSComml.Settings=“19200,n,8,1”。

2.2 数据采集

MSComm控件提供两种处理通信的方式:事件驱动方式和查询方式

(1)事件驱动方式

On Comm事件被用于捕获Communications事件及错误。因此可在MSComm控件的On Comm事件中加入处理函数,以便在文本框区实时显示、数据采集。

(2)查询方式

查询方式实质上还是事件驱动,在程序的每个关键功能之后,可以通过检查CommEvent属性的值来查询事件和错误。

本程序采用查询式串口通讯,利用Timer控件,程序如下:

3 核心功能及其VB实现

软件的核心部分主要是对获取数据进行预处理以提取完整的语句信息,同时解析出测向所需的位置、时间以及航向信息。

3.1 数据预处理

(1)预处理必要性。实际工作中,由于各种外界条件的影响接收机获取的卫星数据可能存在质量问题,同时采用查询方式从串口提取数据也存在自身的限制性,比如:常常出现一条完整的语句(GPGGA/GPRMC语句等)在一次查询中只接收了其中一部分的情况,我们需要对获取的信息采用一些必要的预处理措施,以便于得到完整的语句信息进行解析。[!--empirenews.page--]

(2)预处理思路。鉴于NMEA 0183协议规范,一条完整的卫星语句是始于“$”,终于“CrLf(回车换行)”,我们可以利用VB内部的字符串函数Split()函数对从串口缓冲区获取的语句块进行分割,以CrLf为分割标志,将分割结果存放于一个字符串数组中,然后检查数组中的每一个字符串是否是一条完整的语句,剔除不完整信息。

(3)核心代码

3.2 信息提取

程序以Select…Case…分支选择结构按照不同语句的句头标识(如$GPGGA,$HEHDT等)进行相应语句的解析模块选择。

(1)时间、位置信息解析模块

(2)航向信息解析模块

航向信息语句格式:$HEHDT,23.254,T*cc

(3)卫星信息解析模块

卫星信息语句格式:

4 信息显示

经过以上数据采集、数据预处理以及信息解析过程,我们已经获得了测向工程中所需要的位置信息、海拔高程信息以及航向角度信息。实现航向信息的图形化显示的实现思路:可以采用表盘式显示方式,以粗短针表示航向角度的整数度数,以细长针表示小数位置的航向度数。代码实现方式如下:[!--empirenews.page--]

软件界面整体效果图如图1所示。

5 结 语

本文利用VB6.0 MSComm控件实现了GPS接收机定位测向功能的软件开发,通过对GPS通讯NMEA协议的分析,以GPGGA语句的“$GPGGA”串为例,给出了开发GPS各项数据处理的方法。该方法具有简单、高效、实用的特点,并具有良好的实时性。该算法一般应用于车载、户外高山测量、以及实时动态物体的定位和测向。也可用于实现导弹飞行过程中或快速移动物体的方向测量和控制。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

4月25日消息,据央视新闻报道,国家航天局日前公布了探月工程的最新进展。

关键字: 月球 卫星

上海2024年4月22日 /美通社/ -- 恶性的攻击和意外事件总是防不胜防,提前部署灾备方案可以在遭遇意外时尽可能减少企业损失。那么面对无处不在的勒索病毒和潜在风险,为什么依然有很多企业还会遭遇数据丢失?

关键字: 勒索病毒 软件 电脑 群晖数据

SAP(思爱普)近日发出的裁员计划,不仅涉及全球范围内约8000个职位,更是在中国区造成了近1500名正式员工和合同工不续的情况。

关键字: 软件 互联网

上海2024年4月17日 /美通社/ -- 每年4月17日是世界血友病日。今年,世界血友病日以"认识出血性疾病,积极预防和治疗"为主题,呼吁关注所有出血性疾病,提升科学认知,提高规范化诊疗水平,让每一位出血性疾病患者享有...

关键字: VII 动力学 软件 BSP

德国埃朗根2024年4月16日 /美通社/ -- Elektrobit 今日宣布推出 EB zoneo GatewayCore——首款支持、配置和集成现代微控制器新一代硬件加速器的软件产品,可应用于先进的汽车电子/电气架...

关键字: 汽车 软件 硬件加速 通信网络

Windows Embedded Compact 7(简称WinCE)是一种专为嵌入式系统设计的操作系统,具有体积小、效率高、可定制性强的特点。在WinCE中设置自动运行软件,通常是为了满足设备在启动后自动执行特定任务的...

关键字: 嵌入式系统 软件 操作系统

是德科技(Keysight Technologies, Inc.)被德国电信卫星 NB-IoT 早期采用者计划选中,成为其测试合作伙伴。是德科技将为该计划提供端到端窄带物联网(NB-IoT)非地面网络(NTN)测试平台,...

关键字: 物联网 卫星 NB-IoT

业内消息,近日中国汽车制造商吉利控股集团表示,该公司已经发射了 11 颗近地轨道卫星,这是该公司的第二次发射,旨在扩大为自动驾驶汽车提供更准确导航的能力。吉利称这些卫星是从西南部四川省西昌卫星发射中心发射的。

关键字: 吉利 卫星 自动驾驶

业内消息,日前欧洲软件巨头SAP宣布了一项重组计划推动人工智能增长,该计划将涉及大约8000名员工的岗位调整,这些员工将被纳入自愿休假计划和内部再培训措施,即鼓励员工自愿离职或进行内部转岗。

关键字: AI 重组 软件 裁员 SAP

利用通信卫星和广播卫星传输广播电视节目是卫星应用技术的重大发展。那么,通信卫星是怎样工作的呢?

关键字: 通信卫星 卫星 广播卫星
关闭
关闭