

基于LINUX的GPS的应用
- 期刊名字:传感器世界
- 文件大小:583kb
- 论文作者:陈雪小
- 作者单位:厦门大学物理与机电工程学院电子学实验室
- 更新时间:2020-06-12
- 下载次数:次
Technollogy Application被测与回用葚!N的GP齣应周摘要:基于凵-box公司的LEA-5S模块,介绍了GPS在inux俄人式操作系统上的应用以及具体买现,并洋细分析了模块的硬件实现以及软件方面NEA数据的接收和解析的方法,最后在实际平台进行了调试与论证。结果表明,该模块具有硬件简单、定位精度高,稳定性好的优点,相应的软件有较好的可移植性,实际应用中效果良好关键词:Lnux;GPs;NEMA;接收;解析中图分类号:TP3文献标识码:A文章编号:1006-883×(2012)020018-04收稿日期:2011-12-12陈雪小引言随着信息化、智能化、网络化的发展,嵌入式系统技术已经全面渗透到日常生活中的每个角落。嵌入式 linux操作系统由于它可以移植到多个不同的结构的CPU和硬件平台上,具有很好的稳定性,各种性能的升级能力,并且其是开放的,提供标准的API,能够方便地与众多第三方的软硬件沟通,使其得到了广泛的应用叫。GPS即全球定位系统,这个系统可以保证在任意时刻,地球上任意一点都可以同时观测到4颗卫星,以保证用户GPS模块可以采集到各观察点的经纬度和高度,以便实现导航、定位、授时等功能。GPS模块分为软GPS和硬GPS。软GPS一般需要主控芯片控制其运行状态,直接输出卫星数据,利用应用处理器端进行解析计算再转换为标准NMEA(国际海洋电子协会),因此驱动相对复杂。而硬GPS是功能独立的模块,上电就可以运行,直接输出NMEA数据(。本文采用的是ubox公司生产的LEA-5S模块介绍其硬件实现以及相应的软件实现。二、GPS模块硬件GPS RFIN走线按500阻抗匹配实现LEA-5s模块B定位精度为25m,定位性能优异准C:160803U60IT确,在防漫反射及数BHD OLT抗干扰能力方面十分强劲,并且其外围电路十分简单TMIEPLLSE中国煤化工其电路图如图1所图1LEA5S外围电路图CNMHG示H传感器世界201202Technology Application如图1所示,模块采用33V供电,需要注意的是: options. c cc[VTIME]可以通过UART、USB以及SPI与应用和 options. c cc [Vmin对read函数影响处理器连接和通讯,本文采用UART接较大。VTME指定了等待的时间,VMIN口。图中VANT引脚可以对有源天线的初始化指定了读取字节的最小数量正常、开路及短路进行检测,并可以自2、NMEA数据的接收动在NMEA数据里输出。接收NMEA数据本文在非阻塞的方式下采用o多路转接 select对串口文件描述符的状态三、GPS模块软件实现解析NMEA数据进行监视。 select函数原型为:int由于LEA58通过UART直接与处elect( int nfds, fd set * readfds, fd set理器进行通讯,因此对处理器而言,驱显示NMEA数据.writefds, fd set*exceptfds, struct timeval动主要为 linux标准的串口驱动,应用时"timeout);当串口句柄没有变化时,程序只要打开相应串口即可。其程序的总体将阻塞,阻塞的时间取决于 select的第三框图如图2所示。图2模块总体程序流程图个形参 struct timeval'" timeout 3.本文将1、模块初始化timeout值设为NULL,程序将一直停留模块初始化主要是对GPS相关GPo直到串口句柄发生变化,即只有串口接的设置和串口的设置。首先设置引脚NMEA数据收到数据时才不会阻塞。解析GPS ON为高电平,处理器发出一个脉当串口文件描述符发生变化后,调冲对引脚 GPS RST进行复位,最后打开利用“,·解析出各数据域井用read函数读取一个字符到缓存 buffer;电源对其供电。然后打开串口,设置波存于二维数据 Comma[(n]中由于本文串口设置为: options.c_cc特率,数据位,奇偶校验位以及停止位[VTIME]=150; options. c cclVMIN]0等信息。 termios函数族提供了一个常规“GGA所以read调用读到数据则立即返回,否的终端接口,用于控制非同步通信端口。则将为每个字符最多等待ⅤTIME时间。结构体为:为使程序有较好的规范性和可移植hh: mmstruct termio性,本文在程序设计中采用状态机的设经度 Comma12]了符型转化为计方法。由于所接收到的NMEA数据unsigned short c_iag,/·输入模式标整型“度分”格式首字符和次字符均为“$”和“G”,本文unsigned short c_onag;P·输出模式标纬度comm4]字子符型转化为将依此为状态改变的触发条件。程序首志整型“度分格式先定义一个缓存数组 recvbuf并初始化一unsigned short c cflag;/·控制模式标个起始状态,当缓存buer收到首字符卩星使用数景 Comma[门字符型转化为整型$”时,触发了状态改变为第二个状态,unsigned short c Iflag: / local modeags·若不是,则归为无效数据,状态机恢复unsigned char c_ line; / line discipline将 Comma(n全部显示为起始状态,并清空 recvbuf缓存;当串口接收到下个字符并判断是否为“G”字unsigned char c cc[NCC]; / control符,若是,则触发第三种状态,若不是,characters则为无效数据,状态机恢复为起始状态。串口具体设置是首先定义了一个●●●其具体程序如下类型的结构体通过#define STATE REC NULL O#define STATE REC FIRSt 1tcgetattr(fd,& options)来获得设置,再对#define STATE REC SECOND 2options进行设置,最后通过 tcsetattr(fd,TCSANOW,&apin.来实现设置和同图3NMEA数据解析流程图H中国煤化工CNMHG9 2012.02 SengoNworldTechnology Application被测与画用char recvbuf[150 ];据格式上分析,所有的报文以“$”为起始标志,“,”为switch(rec state)域分隔符,“·”为识别符,其后两位为校验值,字符回if(revbuf ="S)4车和换行为结束符。基于以上分析,本文采用逗号来分rec state= STATE REC SECOND;隔各个数据域,把各个数据域的需要的UTC,经度,纬recvbufncount++]=buffer;度等信息提取出来并分别存到数组中。具体的程序框图如图3所示ase STATE REC SECON整个过程对一帧GPS报文进行解析,有着较高的解if( rebut=G”){析效率。我们利用C语言实现了该解析算法,因此代码rec state STATE REC FULL:也具有很强的可移植性。recvbuf[ncount++]-buffer;3 elset表 I NMEA数据分析表ncount = 0144A APprintf("It received a unvalib character and the recvbuf序号数据域说明is %sn"recvbuf)1 SGPGGA语句ID,GPS定位信息memset(recvbuf, 0, sizeof(recvbuf));UTC时间, hhmmss sss,时分秒格式rec stateSTATE REC FIRST;34250.5纬度 damm, mmmm,度分格式(前导位数不足则补0)s纬度N(北纬)或S(南纬case STATE REC FULL:514718.5084经度 dddmm mmmm,度分格式(前导位数不足则补0)recvbuf[ncount++]=buffer经度E(东经)或W(西经)GPS状态,0=未定位,1=非差分定位parse nmea datai( recvbuf;/对接收数据进行解析2=差分定位,3=无效PPS,6=正在估memset(recvbuf, 0, sizeof(recvbuf));rec state STATE REC FIRST;正在使用的卫星数量(00-12)(前导位数不足则补0)breakHDOP水平精度因子00.5999)default:10海拔高度(99999999999printf("The data are not valid! n")19.7地球椭球面相对大地水准面的高度break12M差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将3、NMEA数据解析为空)NMEA-0183是一套定义了接收机输出的标准信息130000差分站ID号0000-1023(前导位数不标准的NMEA数据包括$ GPGGA、 SGPGSA、$ GPGSV、足则补0,如果不是差分定位将为空)校验值SGPRMC、sGPⅤTG、 SGPGLL等。其中,GPGA定位信息, GPGSA—当前卫星信息, GPGSV.可见卫星信息, GPRMC—推荐定位信息数据格式, GPVTG地面四、小结速度信息, GPGLL一地理定位信息。本文基于 linux嵌入式操作系统设计了一种GPS接收例: SGPGGA,092204999,机,硬件方面介绍了U-blox的工作原理,软件方面较详细地介绍了如何接收和解析NMEA数据的过程,并基于4250.5589S,147185084,E,104,244,197,M,,0000*1F
-
C4烯烃制丙烯催化剂 2020-06-12
-
煤基聚乙醇酸技术进展 2020-06-12
-
生物质能的应用工程 2020-06-12
-
我国甲醇工业现状 2020-06-12
-
JB/T 11699-2013 高处作业吊篮安装、拆卸、使用技术规程 2020-06-12
-
石油化工设备腐蚀与防护参考书十本免费下载,绝版珍藏 2020-06-12
-
四喷嘴水煤浆气化炉工业应用情况简介 2020-06-12
-
Lurgi和ICI低压甲醇合成工艺比较 2020-06-12
-
甲醇制芳烃研究进展 2020-06-12
-
精甲醇及MTO级甲醇精馏工艺技术进展 2020-06-12