首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
嵌入式系统中实时时问的获取
来源:本站整理  作者:佚名  2009-05-05 13:47:37




2 从GPS接收机获取实时时间
    GPS是美国开发研制的最初主要作为军用的一种全球定位系统,有三个部分组成:空间部分、地面监控部分和用户部分。一般来说,在地面上的GPS接收机能接收5~12个卫星信号,而为了获得地面上的定位坐标,至少需要4颗卫星的信号,三个用来确定GPS接收机的纬度、经度和海拔高度,第四个则提供同步校正时间。
    GPS接收机只要处于工作状态就会源源不断地把计算出的GPS导航定位信息通过串口传送到计算机中。GPS接收机送出的数据都是格式化的,NMEA一0183协议是GPS接收机应当遵循的标准协议,大多数常见的GPS接收机、GPS数据处理软件、导航软件都遵守或者至少兼容这个协议。下面介绍下如何从符合NMEA—0183协议的接收机接收数据中提取时间信息。
    接收机通过串口发送到计算机的数据主要由帧头、帧尾和帧内数据组成,根据数据帧的不同,帧头也不相同,主要有“$GPGGA”、“$GPGSA”、“$GPGSV”以及“$GPRMC”等。这些帧头标识了后续帧内数据的组成结构,各帧均以回车符和换行符作为帧尾标识一帧的结束。对于通常的情况,我们所关心的定位数据如经纬度、速度、时间等均可以从“$GPRMC”帧中获取得到,该帧的结构及各字段释义如下:
    $GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>*hh<CR><LF>
    <1>当前位置的格林尼治时间,格式为hhmmss
    <2>状态,A为有效,V为接收警告,即当前天线视野上方的卫星个数少于3颗。
    <3>纬度,格式为ddmm.mmmm
    <4>标明南北半球,N为北半球、S为南半球
    <5>径度,格式为dddmm.mmmm
    <6>标明东西半球,E为东半球、W为西半球
    <7>地面上的速度,范围为0.ON999.9
    <8>方位角,范围为000.O到359.9度
    <9>日期,格式为ddmmyy
    <lO>地磁变化,从000.0到180.O度
    <ll>地磁变化方向,为E或W
    在Linux操作系统中,从$GPRMC数据帧中提取时间信息的代码如下:


    程序首先打开串口,然后对串口参数进行配置,随后进入无限循环主体。这段代码是作为主进程的一个线程实现串口数据的接收,当串口接收缓冲区中无数据时,read函数阻塞。程序中只提取了时间信息,若需导航数据可以类似方法提取。


3 结束语
    本文分别介绍了两种嵌入式系统中获取实时时间的方法:时钟芯片方法和GPS接收机方法。时钟芯片方法的优点是硬件连接简单、成本低;缺点是存在积累误差、易受环境影响、可靠性差。GPS接收机的优点:由于GPS卫星使用的是可以精确到十亿分之一秒的原子钟,所以不存在时间误差问题。同时也应该看到,目前GPS核心技术在国外,国内GPS市场主要还是做代理或是在购买国外GPS模块的基础上做产品开发,这就使得开发成本偏高。GPS方法中还有一个问题就是在某些情况下接收不到GPS信号,如在高楼林立的环境下或是在地下室之类的地方。此时就应该让GPS接收机方法与处理器内部的实时时钟(RTC)配合工作,这样在短时接收不到GPS信号的情况,仍可以从RTC读取时间。

上一页  [1] [2] [3]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:80,441.41000 毫秒