新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 嵌入式系统中实时时问的获取

嵌入式系统中实时时问的获取

作者:时间:2009-05-05来源:网络收藏

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>*hhCR>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数据帧中提取时间信息的代码如下:

本文引用地址:http://www.eepw.com.cn/article/152515.htm


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


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

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭