基于单片机的GPS信息处理系统
发布时间:2008/5/29 0:00:00 访问次数:895
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提供的位置、时闻信息与用户的可视信息同步。
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时间和本地时差后,可以修正为本地时间输出。时间修正要考虑到进位和借位问题。在程序设计过程中闰年、大月小月需要分别处理。
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即可。
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提供的位置、时闻信息与用户的可视信息同步。 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时间和本地时差后,可以修正为本地时间输出。时间修正要考虑到进位和借位问题。在程序设计过程中闰年、大月小月需要分别处理。 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即可。
深圳服务热线:13751165337 13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)

深圳市碧威特网络技术有限公司
付款方式