Linux下接收处理GPS数据

本文介绍如何在Linux环境下使用串口接收并处理GPS数据,主要涉及硬件连接、串口监听、串口编程及GPS数据解析。首先通过硬件连接将GPS模块与FL2440开发板连接,并使用`microcom`命令监听串口数据。接着讲解串口编程,包括波特率、数据位、停止位和奇偶校验的设置。最后,解析GPS数据,重点关注$GPRMC、$GPGGA等常见GPS字符串,通过编写C程序读取串口数据并进行解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux下接收处理GPS数据

开发板平台:FL2440

Linux内核版本: 3.0

 

话不多少,开始干活,对于linux下接收并处理gps数据,那么对于新手的我来讲,一开始把这个项目分成两块,这个也是这个项目的整体方向,第一,接收数据;第二处理数据,下面咱们一块一块的进行。

1接收数据

这个名字有点笼统,确切讲是串口接收gps模块的原始数据,在fl2440开发板左侧大家可以看到有两个母头串口(如图1

 

在开发板上 ls /dev 你会发现

 

ttyS0(这个是连接到电脑的串口,也是图一中上面的那个串口)

ttyS1(这个就是图一中下面的串口,也是连接gps模块,我们需要监听的串口)

由于gps模块也是母头,所以需要自己制作一个公头线,首先进行硬件上的联通,下面看一下RS_232db9线每一个引脚的作用

 

--------------下图为引脚顺序图------------

 

Db9中有效的通信引脚2(RXD),3(TXD),5(GND)。在公头和母头进行连接时,公头2连接母头3,公头3连接母头2。5接5。这样硬件实现了连接。如下,

 

gps模块接上电,此时可以监听串口了,

监听串口命令 microcom -s 4800 /dev/ttyS1

 

有了上述结果。说明接收数据是可以实现的。看到这里不知道有没有人有疑问,这样就可以直接收到数据么,gps,串口都是设备,不需要对gps和串口进行驱动使能么?是这样的,在一开始内核中就已经对串口驱动进行了使能,而gps模块中有gps模块的驱动,这个模块通过自身的串口不断的发送数据开发板需要做的就是读取然后处理就够了,

以上步骤成功,说明硬件上的连通性没的问题,可以说只是准备工作,接下来的才是重点,

 

 

串口编程!!!

数据分析!!!

重要的事情要说三个感叹号

其实编写GPS数据解析程序就是ARM+linux串口编程,串口编程是嵌入式应用程序开发中最基础也是最重要的部分,如何从一个串口设备获取数据并将这些数据做一定的解析呢?OK,串口编程大致可以分为以下几个步骤:

 

至于串口编程的详细介绍,如何设置波特率,如何设置停止位等等,以下给出两个linux串口编程的博客链接,讲的很详细

http://www.cnblogs.com/wblyuyang/archive/2011/11/21/2257544.html

http://blog.youkuaiyun.com/mtv0312/article/details/6599162

其中串口设置其实就相当于串口通信的协议,

波特率:是为了两者信号流能同步,

数据位:是指又几位数据封装成一帧

结束位:是指以帧传输数据时,协定好结束位,便于提取有效数据

奇偶校验:检验数据的一种手段

四者的设置又通信双方协定。

数据分析!!!

 

$GPRMC,最常用的字符串,包含了时间,日期,定位,和航速航向信息。一般应用,只要有这些信息就可以了。

$GPGGA,包含了定位信息相关的详细信息。如定位时用到的星数,定位的方式,天线的海拔高度,精度等等。

$GPGSA,包含了定位,水平,海拔三种DOP信息,即精度信息,包含了定位所用到的卫星ID。

$GPGSV,包含了GPS模块可以看到的星数(注意,只是能看到的星数,实际使用到的星数在GPGGA中),以及这些卫星的ID号,仰角,方位角,信噪比。关于这种字符串要特别说明的是,它可能会由几条GPGSV字符串组成,因此,每个字符串都包含了共几条字符串,本字串是第几条这样的信息。一般的GPS最多是三条。也有的GPS模块会超过3条。

$GPVTG,包含了更详细的航向航速的信息,航向信息分为以真北为参考和以地磁北为参考(真北和地磁北是不一样的,两者相差几度),航速信息则给出了以节为单

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值