基于linux3.0内核fl2440开发板下的gps数据采集与处理

—————————————————————————————————————————————
主机操作系统:Centos 6.5
交叉编译器环境:arm-linux-gcc-4.5.4
开发板平台: FL2440
Linux内核版本: linux-3.0
开发模块: FIT-GPS-SF2820
作者:hulu<1334528355@qq.com>

—————————————————————————————————————————————
开发提醒:在开发gps模块之前需满足fl2440开发版能正常加载linux内核及文件系统,同时fl2440开发板上的dm9000网卡能正常上网(ping通自己的主机)。

==================================================================================================================================================
GPS(Global Positioning System)即全球定位系统,是由美国建立的一个卫星导航定位系统,利用该系统,用户可以在全球范围内实现全天候、连续、实时的三维导航定位和测速;另外,利用该系统,用户还能够进行高精度的时间传递和高精度的精密定位,通过GPS系统可以实现跟踪定位、防盗、里程统计、汽车导航、电子地图等等现实生活不可或缺的功能。本文着眼于在嵌入式linux系统上GPS功能的实现和研究。
==================================================================================================================================================

由于GPS,串口都是设备,难道就不需要再在linux内核中使能驱动吗?是这样的,在一开始内核中就已经对串口驱动进行了使能,而GPS模块中有GPS模块的驱动,这个模块通过自身的串口不断的发送数据开发板需要做的就是读取然后处理就够了。


有了上面的预热是不是感觉对这个模块简单了许多,所以我们接下来要做的就是通过编程配置好串口的状态获取GPS数据,然后提取GPS传回来的数据,并解析出来。


开发步骤:
1.linux下c语言编程配置串口(串口参数的配置主要包括:波特率、数据位、校验位、停止位)
2.获取GPS传回的数据包
3.解析GPS数据包,提取有效数据

一:GPS模块与fl2440开发板硬件连接
==================================================================================================================================================
fl2440开发板有两个串口ttys0和ttys1,其中ttys0用来连接电脑终端,则ttys1连接GPS模块的串口,linux中的串口设备文件放于/de/目录下,串口一,串口二分别为”/dev/ttyS0”,”/dev/ttyS1”.在linux下操作串口与操作文件相同.
==================================================================================================================================================

GPS模块接上电,监听串口了发回的数据包

 ~> microcom -s 4800 /dev/ttyS1
$GPGGA,024907.000,3029.6642,N,11423.6203,E,1,10,1.0,35.7,M,-13.7,M,,0000*41
$GPGSA,A,3,04,08,32,17,28,30,07,11,20,01,,,1.9,1.0,1.7*3B
$GPRMC,024907.000,A,3029.6642,N,11423.6203,E,0.07,244.07,210914,,,A*67
$GPGGA,024908.000,3029.6643,N,11423.6202,E,1,10,1.0,35.3,M,-13.7,M,,0000*4A
$GPGSA,A,3,04,08,32,17,28,30,07,11,20,01,,,1.9,1.0,1.7*3B
$GPGSV,3,1,11,04,78,178,38,01,74,066,31,30,56,242,44,11,54,043,31*75
$GPGSV,3,2,11,28,47,328,27,07,40,194,40,08,31,177,47,17,29,277,27*74
$GPGSV,3,3,11,20,23,145,36,32,21,098,33,19,15,059,*4C
$GPRMC,024908.000,A,3029.6643,N,11423.6202,E,0.09,238.16,210914,,,A*6D
$GPGGA,024909.000,3029.6643,N,11423.6202,E,1,10,1.0,35.0,M,-13.7,M,,0000*48
$GPGSA,A,3,04,08,32,17,28,30,07,11,20,01,,,1.9,1.0,1.7*3B
$GPRMC,024909.000,A,3029.6643,N,11423.6202,E,0.07,251.95,210914,,,A*66

有了上述结果。说明接收数据是可以实现的,且硬件连接成功,注意:microcom是内核自带的监听串口的命令


本次开发包含以下这几个文件:gps_main.c gps_analysis.c set_com.c gpd.h makefile 主函数在gps_main.c文件中,gps_analysis.c主要是GPS数据解析函数设计,set_com.c主要是设置GPS串口设备函数设计,gpd.h是头文件!

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值