没有合适的资源?快使用搜索试试~ 我知道了~
嵌入式系统/ARM技术中的嵌入式Linux平台的GPS数据采集研究
0 下载量 156 浏览量
2020-11-06
09:12:30
上传
评论
收藏 90KB PDF 举报
温馨提示
试读
3页
随着GPS(全球定位系统)和便携移动设备的飞速发展,各种各样以GPS为基础的便携式定位系统相继出现.嵌入式Linux以其开放性、安全性、健壮性和 稳定性越来越成为各种便携设备的主要开发平台,因此GPS模块与嵌入式Linux平台之间的通信成了实现定位系统的基础. GPS模块与嵌入式Linux平台之间进行数据传送,大多采用异步串行传送方式,GPS作为终端设备(DTE)与嵌入式平台之间通过RS-232C串行通 信接口进行数据交换.因此,与GPS的数据通信在实现上即是LinuX下的串口编程,对于两者之间的通信协议,可选的协议有很多种,而NMEA0183是 目前普遍采用的一种。 1 NMEA
资源详情
资源评论
资源推荐
嵌入式系统嵌入式系统/ARM技术中的嵌入式技术中的嵌入式Linux平台的平台的GPS数据采集研数据采集研
究究
随着GPS(全球定位系统)和便携移动设备的飞速发展,各种各样以GPS为基础的便携式定位系统相继出现.嵌入
式Linux以其开放性、安全性、健壮性和 稳定性越来越成为各种便携设备的主要开发平台,因此GPS模块与嵌入
式Linux平台之间的通信成了实现定位系统的基础. GPS模块与嵌入式Linux平台之间进行数据传送,大多
采用异步串行传送方式,GPS作为终端设备(DTE)与嵌入式平台之间通过RS-232C串行通 信接口进行数据交
换.因此,与GPS的数据通信在实现上即是LinuX下的串口编程,对于两者之间的通信协议,可选的协议有很多
种,而NMEA0183是 目前普遍采用的一种。 1 NMEA
随着GPS(全球定位系统)和便携移动设备的飞速发展,各种各样以GPS为基础的便携式定位系统相继出现.嵌入式Linux以
其开放性、安全性、健壮性和 稳定性越来越成为各种便携设备的主要开发平台,因此GPS模块与嵌入式Linux平台之间的通信
成了实现定位系统的基础.
GPS模块与嵌入式Linux平台之间进行数据传送,大多采用异步串行传送方式,GPS作为终端设备(DTE)与嵌入式平台之
间通过RS-232C串行通 信接口进行数据交换.因此,与GPS的数据通信在实现上即是LinuX下的串口编程,对于两者之间的
通信协议,可选的协议有很多种,而NMEA0183是 目前普遍采用的一种。
1 NMEA0183通信协议通信协议
NMEA0183是GPS数据的通信协议,GPS的通信协议有很多种,但目前绝大多数GPS模块生产厂商都采用NMEA0183协
议作为其遵循的标准,因此在实现GPS与嵌入式Linux平台之间的通信时,应先对NMEA0183协议有一定的了解。
(1)NMEA0183的通信参数.波特率:4800baud;数据位:8;奇偶校验:无;停止位:1位.
(2)NMEA0183的报文格式.NMEA 0183协议报文的语句串(ASCII字符)格式全部信息如图1.
图1 NMEA0183的报文格式
图1中具体内容:$为串头,表示串开始;AA为识别符;XXX为语句名;ddd...ddd为数据字段,字母或数字;*表示串尾;
hh表示$与*之间所有字符代码的校验和;<CR>为回车控制符;<LF>为换行控制符.
在实际的GPS应用中,并不会用到NMEA的全部信息,而是根据具体的需要,从中选取有用的信息,忽略其余的信息内
容.
例如:$GPRMC,152252,A,2513.3072,N,10346.3723,E,0.0,230.4,250503,1.3,W,A,* 02
其中,$GPRMC为串头,表示此语句为定位语句;“*”之前的内容为数据字段,“152252”为UTC24小时制的标准时间,格
式为“时时/分分/秒 秒”;“A”表示信号接收状态,“A”表示接收正常,也可能为“V”,则表示一个警告,与卫星通信不正
常;“2513.3072”表示纬度值;“N”标明 南北半球,“N”表示北纬,“S”表示南纬;“10346.3723”表示经度值;“E”标明东西半
球,“E”表示东经,“W”表示西经;“0.0”表示 速度;“230.4”表示方位角,它的范围为000.0-359.9;“251205”表示UTC标准时间
的日期,格式为“日日/月月/年年 ”;“1.3”表示磁偏角,范围为000.0-180.0;“W”表示地磁变化方向.
2 GPS数据的采集数据的采集
嵌入式Linux平台下的GPS数据采集涉及到Linux串口编程技术,因此首先介绍Linux串口编程的相关知识,再给出一个简
单的代码段,实现GPS定位信息的获取.
2.1 Linux串口通信串口通信
在Linux操作系统中,所有的设备都是被当作文件来进行操作的,所有的设备以设备文件的形式存储在目录/dev/下,串口
的设备文件为/dev/ttyS*,其中,ttyS0为串口一,ttyS1为串口二,以此类推.
Linux下定义了一个查询和操纵终端的标准接口,该接口被称为termios,在系统头文件<termios.h>中定义.它包括一个数
据 结构和一系列操纵这些数据结构的函数组成.有关串口的所有参数配置都保存在接口termios的结构struct termios中,该结
构定义如下:
struet termios
{
unsigned short c_iflag; /*输入模式标志*/
unsigned short c_oflag; /*输出模式标志*/
weixin_38744207
- 粉丝: 343
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0