51单片机接收GPS数据的算法与实现

时间:2022-10-16 01:22:19

51单片机接收GPS数据的算法与实现

【摘 要】 本文研究的对象为处理器为51单片机的应用系统,研究的主要内容为应用系统在编程的过程中的内存使用区划分、GPS定位信息流数据格式两方面。在应用系统在使用的过程中,51单片机具有内存较小的特点,而GPS导航具有数据流较大的特点,两者之间存在着较大的矛盾。为了解决这一矛盾,本文提出了51单片机接收GPS数据的压缩算法。

【关键词】 51单片机 GPS数据 数据压缩

在嵌入式的GPS车载系统的处理器一般情况下采用51单片机,但是这种处理器具有内存较小的特点,其内存仅为128B,而GPS定位信息数量流具有较大的特点。51单片机内存与GPS定位信息之间存在着严重的矛盾,本文针对这对矛盾提出了GPS数据的压缩算法,更好地解决了51单片机在应用过程中内存较小的问题。

1 51单片机内存较小的特点

51单片机具有内存较小的特点,其内存仅为128B,其中寄存器区为32个字节、数据缓冲区为80个字节、位寻址区为16个字节[1]。在对单片机技术人员的技术水平进行衡量的过程中,单片机内存宝贵资源的利用率是其重要的衡量标准之一。如果项目开发过程中应用了51单片机,那么程序设计人员在内存资源利用的过程中,寄存器区的主要功能为参与程序运算数据寄存单元,数据缓冲区的主要功能为对数据运算结果或中间结果进行缓存,位寻址去的主要功能为变量或标志的定义。

2 GPS定位信息量较大的特点

GPS接收机在工作状态中会不间断地进行GPS导航定位信息的传输,通过串口将这些信息传输到单片机中。如果没有对这些GPS导航定位信息进行处理,那么这些数据将是一长串字节流信息。因此,必须要通过一定的程序对GPS导航定位信息进行转化,使其具有实际意义并能够为高层决策提供依据。GPS在进行信息提取的过程中与其他的通信协议类似,首先要对帧结构进行明确,之后依据结构进行定位信息的提取。

3 51单片机内存与GPS定位信息之间的矛盾

嵌入式的GPS车载系统的使用者关注的主要内容包括日期、时间、纠度、面速度等,因此GPS系统可以采用$GPRMC记录语言。这种语言所包含的字节为70个,主要的内容包括语句标识头、世界时间、定位状态、纬度、纬度方位、经度、经度方位、地面速度、地面路线、日期、磁偏角、校验和和结束标记[2]。如果试用51单片机作为接收器,单片机内存缓冲区需要花费70个字节,导致数据缓冲区的80个字节所剩无几,根本不能够用作他途。

4 GPS接收程序的设计与算法分析

通过对GPS数据记录进行分析发现,语句之间的数据段中存在着较多的冗余位[3]。此外,数据记录中包含数字、英文字符多种形式,因此将GPS数据进行划分,为之后的压缩工作奠定基础。例如:

$GPRMC,(UTC时间)12153,(UTC时间)(定位状态)0033.4304,(纬度)(纬度半球)00118.2030,(经度)(经度半球)029.8,(地面速度)240.8,(地面航向)050712,(UTC日期) 120.E,(磁偏角)A,(校验和)。

第一,在语句标识头$GPRMC,的处理过程中,由于所有语句的标识头都是相同的,可以将这7个字节作为冗余信息进行去除,从而节约7个字节的位置。在程序处理的过程中,可以对$GPRMC,进行预置,实现标识头与GPS信息的同步信号监测处理。第二,UTC时间同样占用7个字节,通过时分秒的格式对世界时间进行指示,在加上8小时之后转换为背景时间[4]。在UTC时间中可以将“,”视为冗余位进行去除。第三,定位状态占用2个字节,依据定位状态对GPS信息定位的成功与否进行判断,定位状态中可以将“,”视为冗余位进行去除。第四,纬度占用10个字节,可以将“.”、“,”视为冗余位进行去除。第五,纬度指示器占用2个字节,其作用是对东西经进行指示,所有的$GPRMC,中的该信息段都位于东经,因此可以将其视为冗余位进行去除。第六,纬度占用11个字节,可以将“.”、“,”视为冗余位进行去除。第七,纬度指示器占用2个字节,所有的$GPRMC,语句中该段信息都相同,可以将其视为冗余信息进行去除。第八,地面速度占用6个字节,可以将“.”、“,”视为冗余位进行去除。第九,地面航向占用6个字节,可以将“.”、“,”视为冗余位进行去除。第十,其他记录段中所有无关的都可以进行保留,能够去除17个字节。

通过压缩与处理之后,共去除掉38个字节,剩余的字节数为32个。在压缩与处理的过程中最为重要的就是“.”与“,”符号的去除,其他的冗余为可以通过接受不存储的方法进行去掉[5]。为了实现直观的效果,可以进行单片机的单字节串行口接收的子程序和接收GPS数据流中的一段如时间、经度、纬度等并去掉GPS数据串中间的“,”和“.”两个符号的子程序的设置。

5 结语

通过对GPS数据流的压缩与处理,能够实现GPS车载系统中51单片机处理器存储空间的节省,还具有信道占用时间降低、数据安全性提高等特点。本文提出的压缩程序针对的对象为GPS数据格式,因此该压缩程序具有压缩比较大、通用性较差的特点。在将该程序移植到其他系统中时,需要对其进行一定的修改。各个GPS厂家执行的规范标准都是NMEA-0183输出语句,这就为改压缩程序的通用奠定了基础,而进行修改的主要原因为数据输出格式具有差别。

参考文献:

[1]王波,冬梅,刘东.基于ATMEGA644P单片机的GPS数据记录器[J].电子世界,2014(43):5-6.

[2]刘晓,伍小东,姚军光,魏权利.基于单片机采集GPS数据系统的设计[J].青岛科技大学学报(自然科学版),2011(65):172-175.

[3]郭耀华.基于单片机的GPS数据采集与传输系统的设计与实现[J].山东工业技术,2013(64):48-49.

[4]董作民,姜木霖,陈晓青,段润雪.MCS-51单片机与GPS-OEM板数据通讯的研究与应用[J].湖北汽车工业学院学报,2010(25):37-41.

[5]魏守明,周生辉.GPS数据在出租车集群调度系统中的传输方案[J].电子技术,2012(5):29-31.

上一篇:准确把握事业单位改革政策的基本精神 下一篇:五星电器携手新东家:主攻小城镇 押宝差别化