基于单片机的GPS信息处理系统

本文介绍了一种基于AT89C2051单片机的GPS信息处理系统设计方案,详细阐述了GPS数据格式、主程序及数据处理子程序的设计,并实现了GPS信息的时差修正。

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

基于单片机的GPS信息处理系统




        全世界定位系统(Global Positioning System,GPS)是美国从20世纪70年代开始研制,于1994年全面建成,以接收导航卫星信号为基础的非自主式导航与定位系统

        他以全世界覆盖、全天候、连续实时提供高精度的三维位置、三维速度和时间信息的能力,很好地解决了人类导航和定位问题 随着全世界定位系统的不断改进,软硬件的不断完善,应用领域正在不 断的开拓,无论在军事还是民用领域都得到广泛地应用和发展 实 际应用中,GPS接收机收到轨道卫星的信号后,经过解调输出的,是标准格式的GPS定位数据,该数据必须经过进一步处理,才能在用户数据终端上显示 基于单片机的GPS信息处理硬件结构框图如图1所示

        1 GPS接收机输出数据格式

        NMEA-0183是美国国家海洋电子协会制定的用于航海仪器数据异步通信的通用接口标准,他是由ASCII字符组成的字符串 GPS接收机以NMEA-0183标准格式输出GPS定位数据, 数据终端设备需要实时从GPS输出的NMEA0183数据流中得到位置信息、时间信息 GPS接收机提供了多种语句格式,有 GPGGA,GPGSA,GPGSV,GPRMC,GPZDA和GPGLL等 用户可以根据需要选择一种或多种语句输出 本系统选择接收并解析GPGLL和GPZDA,分别获取地理位置信 息和UTC时间信息(含日期),UTC时间通过时差修正得到本地时间信息

        NMEA0183语句包含多个数据项,数据项之间以逗号分隔,语句以回车(CR)和换行(LF)符结尾

        GPZDA语句格式如下:

        上述语句中,各数据项的意义如下:


        ①语句类型:$GPZDA;②UTC时间:14523.62;③UTC日:01~31;④UTC月:01~12;⑤UTC:年2001;⑥本地时差:10 时;⑦本地时差:34分;⑧校验和:6E 其中校验和包 括$符

        GPGLL语句格式如下:

        上述语句中,各数据项的意义如下:

        ①语句类型:$GPGLL;②纬度值;③北纬;④经度值;⑤西经;⑥UTC时间,时时分分秒秒.秒秒秒格式;⑦状态,A=定位,V=未定位;⑧校验 和:2C 其中校验和包括$符

        接收上述GPS信息由AT89C2051单片机的UART完成 GPGLL为55个字符,GPZDA为38个字符 考虑到单片机内部RAM单元有限,为适应GPS同时输出的数据句型 比较多,数据量比较大的情况,因此,需要对句型进行选择性接收

        2 主程序设计

        主程序主要包括以下几个部分:初始化、接收GPS数据、GPS信息处理、超时处理判断等 GPS数据采用中断方式接收,数据处理由独立子程序完成,主要包括 时间、位置信息的提取 数据接收处理完毕后,传送到LCD 显示 超时判断时间间隔设定与GPS数据更新速度匹配即 可,其目的是保证GPS提供的位置、时闻信息与用户的可视信息同步

        主程序流程图如图2所示

        GPS接收机通常采用RS 232C/RS 485/422标准:传输速率可以设定,有4 800 b/s等,数据位:8 b,停止位:1 b

        对于AT89C2051单片机,选择定时器1作为波特率发生器,波特率取决于溢出速率 波特率计算公式如下:

        系统时钟取11.059 2 MHz,则对于波特率4 800 b/s,定时器1重载值为FAH

        3 数据处理子程序设计

        接收缓冲区存储的内容是ASCII码(字符),因此在处理成数据的时候要进行转换

        对于时间数据,处理成压缩BCD格式,如对于以下的GPZDA信息:

        $GPZDA,114523,18,11,2006,10,34*6E<CR><LF>

        经处理后,得到如下信息:11 H(时),45 H(分),23 H(秒),18 H(日),11 H(月),20 H(世纪)-06 H(年代),10 H(时差)

        GPS数据处理子程序首先将接收的时间数据转换为上述BCD数据 根据GPZDA得到UTC时间和本地时差后,可以修正为本地时间输 出 时间修正要考虑到进位和借位问题 在程序设计过程中闰年、大月小月需要分别处理

        带时差修正的GPS信息处理流程图如图3所示 图中,Hour表示UTC时,Min表示UTC分,Sec表示 UTC秒,Day表示UTC日,Mon表示UTC月,YearH表示UTC世纪,YearL表示UTC年代;D_Hour和D_Min表示时差的时和分

        常用GPS接收机输出NMEA0183数据有V2.1,V2.0和V1.5三种版本,其中V2.1版本时差修正到分钟,而V2.0和V1.5只到小时 为满足程序通用,在实际信息解析时以V2.1为准,当接收的信息 为V2.0和V1.5时,只需将上述程序中D_min置为0即可

        4 结语

        GPS信息处理系统解决了GPS标准数据式的解读、信息的提取、转换和显示问题 另外,他具有时差修正功能,便于全世界各地用户使用 以AT89C2051单片机为控制核心,LCD和键盘作为人机界 面,以较低的成本满足了用户的一般需求 目前,该系统已在 船用导航系统中得到了成功应用

 

 

 

原著:  黄 凌    (南京信息职业技术学院 江苏 南京 210046)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值