0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嵌入式WinCE的GPS导航软件方案及应用介绍

电子设计 作者:电子设计 2018-09-23 15:23 次阅读

引言

卫星发出的信号通过GPS 接收机基带处理程序后, 可以获得相关的卫星星历和伪距、伪距律、载波相位、多普勒频移等原始观测量, 如何利用这些信息解算出接收机的位置、速度、时间等定位信息, 是定位解算程序的主要目的。

本文主要介绍了GPS OEM 接收机原始导航信息的获取、GPS 报文的解码以及位置速度等信息的解算程序设计。

1 平台设计

系统采用的操作系统为WinCE, WinCE 是一个多任务、完全抢占式的32 位嵌入式操作系统, 支持WinCEMFC、ATL、WinCE API 和一些附加的编程接口以及各种通信技术。开发工具采用eVC, eVC ( embedded visualC+ + ) 是Windows CE 上的主流开发工具, 封装了网络底层通讯、COM 互操作、RAPI 等。eVC 支持MFC 类库的子集, 使Win32 平台上的VC 程序可以很容易地迁移到WinCE 平台上。

硬件平台采用基于xscale PXA255 处理器嵌入式系统, 采用NOVAT EL OEM4 接收机获得原始的GPS 导航数据, 两个平台间采用串口进行通讯。

1. 1 串口通信设置

eVC 在实现串口数据通信中存在2 个局限性: 一是eVC 不支持串口通信控件MScomm, 另外, WinCE 不支持重叠I/ O 操作。因此, 要采用WinCE A PI 函数和多线程技术进行数据串口通信的底层开发。

对串口的操作都映射成对文件的操作, 因此, 读取串口的数据相当于读取文件的数据。在eVC 环境中, 通过调用CreateFile 函数来打开串口, 设置读写模式:

H ANDL E m_hCom=CreateFile( strCom, GENERIC _READ | GEN ERIC_WRITE, 0, NU LL, OPEN _ EXIST _ ING, FILE _AT TRIBU TE_NORMAL, NU LL)

因为WinCE 不支持重叠I/ O, 所以CreateFile 的第6个参数不能设置为:

FILE_FLAG_OVER_LAPPED, 否则串行通信处理将被系统信息阻塞。

打开串口后, 可以通过串口的初始化函数SetCommStat e( ) 来配置各项串口参数, 如波特率、奇偶校验方法、数据位和停止位数等。

1. 2 线程同步

WinCE 的API 不支持重叠I/ O 操作, 因此, 要采用多线程模式解决大量数据读写时产生的困难。当主线程忙时,可以使用单独的线程来处理串口, 也就是异步I/ O 模式。

为了保证在数据读取线程向主线程传递数据时所传递的变量不会被新的串口数据所覆盖, 可以采用互斥体技术。通过以下代码创建互斥体:

H ANDL ECreateMutex ( LPSECU RITY _ AT T RIBU T ESlpMutexAt tr ibutes,BOOL bInitialOwner , LPCTSTR lpN ame) .

线程通过一个等待函数来获得互斥体的所有权, 互斥体的线程是不会被阻断的, 完成对数据的处理后, 需要调用函数释放互斥体, 可以使用如下函数:

BOOL ReleaseMutex( HANDLE hMutex)

2 GPS 导航电文解码

2. 1 导航电文的格式

由卫星发出的导航电文是用户用来定位和导航的基础数据。导航电文一般包含卫星的星历和历书数据、工作状态、时钟改正、电离层时延修正、大气层折射修正以及相应的观测信息, 在报文中还包括奇偶校验信息, 用来验证报文接收的正确性。电文处理模块的功能, 就是根据接收从基带处理模块中获得的导航电文, 并进行奇偶校验, 确定报文完整后, 根据电文格式, 对二进制电文进行解析, 从而获得电文中的导航信息。

导航电文的格式是主帧、子帧、字码和页码, 如图1 所示。每主帧电文长度为1 500 b, 传送速率为50 b/ s, 所以发播一帧电文需要30 s 时间。

嵌入式WinCE的GPS导航软件方案及应用介绍

图1 导航电文帧结构

每帧导航电文包括5 个子帧, 每个子帧长6 s, 共有300 b.第1、2、3 子帧各有10 个字码。这3 个子帧的内容每30 s 重复一次, 每小时更新一次。第4、5 子帧各有25页, 共有15 000 b.一帧完整的电文共有37 500 b.

2. 2 导航电文的内容

导航电文的内容包括遥测码、转换码、第1 数据块、第2 数据块和第3 数据块5 部分:

第1 子帧的第3~ 10 个字码为第1 数据块。它的主要内容是: 标志码、数据龄期、卫星时钟改正系数、卫星测距精度、大气传播时延改正。

第2 数据块包括第2 和第3 子帧, 它载有卫星的星历,用来计算卫星的位置。

第3 数据块是由第4 和第5 两个子帧构成的, 它提供了GPS 卫星的历书数据。当接收机捕获到某颗卫星后, 利用第3 数据块的信息可以得到其他卫星的概略星历、时钟改正、码分地址和卫星状态等数据。用户可以根据卫星历书和自己所在的位置, 计算出该时刻能观测到的卫星及其方位角和高度角, 从而选择, 以快速捕获和定位。

3 软件编制

通过串口接收到GPS 导航电文并且经过奇偶验证和解码后, 就可以获得GPS 卫星的星历和观测信息, 包括伪距、载波相位、多普勒频移。利用卫星的星历, 可以计算出当前可见卫星的坐标和在运行速度。一般情况下, 可见的卫星数都大于解算所需的卫星数, 为了获得最优的定位精度, 要对当前可见的卫星进行选择。本系统中, 采用最小GDOP 法进行选星, 选出的最优星座的卫星信息结合观测量, 通过误差修正程序进行伪距修正后, 就可以构成接收机位置的解算方程组。解出此方程组, 即可获得接收机的当前位置和速度以及接收机钟差。

软件基本流程如图2 所示。

嵌入式WinCE的GPS导航软件方案及应用介绍

图2 软件主要流程

4 测试结果

2006 年7 月, 在北航对系统进行了测试。经过测试, 系统工作正常, 解算结果散布在较小的范围内。结果显示如图3~ 5 所示。

嵌入式WinCE的GPS导航软件方案及应用介绍

图3 卫星位置示意图和定位结果

嵌入式WinCE的GPS导航软件方案及应用介绍

图4 卫星信息显示图

嵌入式WinCE的GPS导航软件方案及应用介绍

图5 计算结果输出

5 结论

本文提出的基于嵌入式WinCE 的GPS 导航信息处理方案已经在某导航接收机的研制中得到应用, 系统工作稳定, 能够满足可靠性和实时性要求, 达到预期效果。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    4962

    文章

    18145

    浏览量

    286508
  • gps
    gps
    +关注

    关注

    22

    文章

    2735

    浏览量

    164073
  • 导航
    +关注

    关注

    7

    文章

    502

    浏览量

    41413
收藏 人收藏

    评论

    相关推荐

    基于嵌入式Linux系统的导航软件设计思路

    相结合的GPS导航终端机的设计方法,同时给出了基于嵌入式Linux系统的导航软件设计思路。##地图匹配的关键是确定匹配点,设计时可以用投影法
    发表于 04-17 10:37 4846次阅读

    嵌入式车载导航信息系统研究

    【作者】:卫小伟;【来源】:《电子设计工程》2010年02期【摘要】:分析研究嵌入式车载导航信息系统体系结构,以实时多任务嵌入式操作系统Windows CE.NET为嵌入式
    发表于 04-24 09:31

    ARM嵌入式WINCE实践教程

    ARM嵌入式WINCE实践教程
    发表于 08-18 09:51

    ARM嵌入式WINCE实践教程

    ARM嵌入式WINCE实践教程
    发表于 08-20 12:21

    ARM嵌入式WINCE实践教程

    ARM嵌入式WINCE实践教程,书目内容不能拷贝,大家自行下载看看。
    发表于 11-07 14:59

    ARM和嵌入式系统方向介绍

    学过VC++后再学WinCE,非常方便自然,通过学习WinCE同样也可了解嵌入式软件的一般开发过程,对Linux有惧怕心理的同学也很合适。很显然,
    发表于 07-05 08:04

    嵌入式导航系统DIY分享

    地理整合性应用与其因应方案,也就是手持、车载 GPS 全球卫星导航系统,便可解决对此人们急迫的需求性。基于 S3C2440A 微处理器和 Win CE 5.0
    发表于 12-10 14:25

    DIY分享:嵌入式导航系统硬件+软件设计教程

    地理整合性应用与其因应方案,也就是手持、车载 GPS 全球卫星导航系统,便可解决对此人们急迫的需求性。基于 S3C2440A 微处理器和 Win CE 5.0
    发表于 02-12 08:00

    怎么实现嵌入式GPS导航系统的设计?

    怎么实现嵌入式GPS导航系统的设计?
    发表于 05-26 07:07

    请问怎样去设计一种嵌入式船舶导航系统?

    本文介绍了一种基于GPS和电子海图、使用嵌入式Linux操作系统的船舶导航系统。
    发表于 06-04 06:43

    基于嵌入式ARM & WinCE 的小型监控系统的设计

    本文介绍嵌入式操作系统WinCE 的技术特性、构建基于WinCE嵌入式平台以及在构建的平台上开发
    发表于 06-10 14:02 22次下载

    基于GPS和电子海图的嵌入式船舶导航系统设计

    介绍了一种基于GPS和电子海图、使用嵌入式Linux操作系统的船舶导航系统,讨论了船舶导航GUI、电子海图数据的预处理和海图显示等关键技术,
    发表于 07-05 16:39 18次下载

    基于ARM嵌入式GPS导航系统软硬件设计

    基于ARM嵌入式GPS导航系统软硬件设计
    发表于 11-19 14:36 13次下载

    基于嵌入式GPS 导航信息处理方案的实现

    下的GPS 导航信息处理的软件实现方案, 描述了嵌入式处理器与GPS OEM板的连接方式与串口通
    发表于 09-07 14:41 9次下载
    基于<b class='flag-5'>嵌入式</b> 的<b class='flag-5'>GPS</b> <b class='flag-5'>导航</b>信息处理<b class='flag-5'>方案</b>的实现

    探究SQLite在嵌入式系统Wince中的应用

    首先介绍了SQLite嵌入式数据库的结构和特点与选择必要性及应用到嵌入式系统Wince中的优点;其次介绍以ARM9与
    的头像 发表于 03-31 10:39 1721次阅读
    探究SQLite在<b class='flag-5'>嵌入式</b>系统<b class='flag-5'>Wince</b>中的应用