基于ATmega16的GPS经纬度数据接收系统

分享到:

0 引 言

      GPS(全球定位系统)是为海上、陆地和空中各种运输工具和移动设备的导航和定位而开发的,具有高精度、全天候、全球性和点间无需通视等优点, 使测量技术发生了质的飞跃。GPS技术引入我国后,特别是美国取消SA政策后的这几年发展十分迅速。目前,GPS已被广泛应用在工程测量、地理测绘、交通 运输和军事等诸多领域,取得了明显的社会和经济效益,发展前景十分广阔。在GPS的行业应用中,数据接收系统是最基本的设备。目前的数据接收系统具有智能 化和可扩展性不断增强的发展趋势,表现为内嵌的MCU性能越来越强大,外围接口越来越丰富,但软硬件成本不断上升,减缓了GPS接收系统平民化的趋势。本 文介绍一种基于AVR单片机ATmega16和Motorola M12 Oncore模块的GPS数据接收系统。

1 系统的硬件设计

      系统由ATmega16、M12模块、LCD显示器和一些外围电路组成,系统的硬件结构如图 1所示。ATmega16具有1个功能完整的异步串行通信接口(UART),在直流5V供电时,其I/O操作电压范围约为0~5V;M12模块提供一个用 于输入控制信息和输出定位与状态信息串行通信接口,在直流3V供电时,其I/O电平符合TTL电平范围,为0~3V。因此,可以将ATmega16串行接 口经电平转换电路转接后与M12模块的串行口相连,进行异步串行数据交换。系统采用一块16×2字符型LCD显示经纬度信息。系统中的ATmega16和LCD采用直流5V供电,5V电源经过由三端稳压芯片LM317组成的稳压电路将电压转换成3V后给M12模块供电。

1.1 ATmega16与M12模块的硬件接口

      由于ATmega16和M12模块的I/O操作电压范围不相同,所以两者的串行口之间需经过电平转换才能确保稳定通信,其电平转换电路如图2所示。

      这里采用光电耦合器件TLP521进行5V和3V之间的电平转换,以增强抗干扰能力。ATmega16的I/O驱动能力较强(最大输出40mA 电流),可以直接驱动TLP521。M12模块的I/O驱动能力较弱,需加一级驱动缓冲器才能驱动TLP521,这里使用7406反相驱动缓冲器。

1.2 ATmega16与LCD的硬件接口

      系统中采用基于HD44780液晶控制芯片的16×2字符型LCD,该器件内置了字符产生器,能显示192个常用字符(包括阿拉伯数字和大小写英文字母)和16个用户自定义字符,它与ATmega16的接口如图3所示。

      HD44780的数据总线DB7~DB0与ATmega16的PA7~PA0相接,RS、R/W和EN分别与单片机的PD3、PD4和PD5相连。利用ATmega16的I/O口控制LCD进行指令和数据输入,正确地显示出经纬度数据。

2 ATmega16与M12模块的接口程序设计

      系统使用ATmega16的串行口向M12模块发出控制指令和接收定位信息。M12模块支持。Motorola二进制格式和NMEA0183格 式两种数据输出模式。在Motorola二进制模式下,M12以9600bps的速率输出数据和接收指令;在NMEA0183,M12以4800bps的 速率输出数据和接收指令。默认状态下,M12模块工作在Motorola二进制模式下。为了获取更高的数据传输速度,这里使用M12模块默认的工作模式, 即Motorola二进制模式。在该模式下,串行数据传输格式为:8位数据位,1位停止位,无奇偶校验和硬件流控制。

      ATmega16以通过向M12发送AT指令的方式对其进行控制。Motorola的AT I/O指令一共有69条,其中M12模块所支持的指令有51条。利用这些指令可以很方便的对M12模块进行日期时间设定、自定义坐标设定和定位信息读取等 操作。在本系统中,只需要读取M12模块的定位信息,因此程序中只用到51条指令中的1条指令:

@@EqmC

      该指令用于控制M12模块输出定位信息。其中“@@”是I/O指令的前缀;“Eq”是指令的关键字;“m”是M12模块输出(响应)信息模式选 择,其数值可以是0~255之间的整数,当“m”为0时,响应信息只输出一次,当“m”为1时,响应信息每秒钟输出一次,当“m”为2时,响应信息每2 s输出一次,如此类推,当“m”为255时,响应信息每255 s输出一次;“C”是指令的校验和(Checksum)数据;“”是回车符;“”是换行符。为了便于采集定位数 据,将“m”的数值设置为0,使M12模块每接收一次指令就回复一次定位数据。

      M12模块在默认状态下只能接受以Motorola二进制形式输入的指令。所谓的Motorola二进制形式是指将指令的前缀、关键字和后缀 (回车和换行)变换成相应的ASCII码后,加上模式“m”与校验和“C”组合成的二进制指令代码。系统中所用到的ATmega16首先请求M12模块输 出定位数据(向M12模块发出指令“@@EqmC”),然后等待M12模块 回送数据。当M12模块回送数据时,ATmega16首先做出判断,确认其收到的是预期的定位信息,然后将定位信息(经纬度数据)截取下来,整理成可供显 示数据信息后在LCD上显示经纬度数据,最后将串口的接收缓冲区清空,以免下次接收信息时出错。由于M12模块在1 s之内只能响应一条指令,所以接收机的数据信息最快1 s更新一次。

3 定位精度测试

      为了测试M12 模块的定位精度,在华南农业大学工程学院土槽实验室的GPS基准点(坐标为:东经113°20.538541'',北纬23°09.581834'')进行试 验,用PC机连接M12开发板进行经纬度数据采集,持续运行约50 min,采集到3125组经纬度数据。通过对实测数据进行分析,M12模块的单机静态定位误差≤7.81 m,符合其用户手册上所标的无SA政策下<25 m的精度范围。

4 结束语

      从降低成本的角度出发,基于ATmega 16的GPS经纬度数据系统采用单机静态定位技术进行地理定位,这种定位技术精度不高,但易于推广普及,可用于普通民用地理定位领域。该系统也通过更换精 度更高的GPS模块或采用差分定位技术提高定位精度后用于专业定位导航领域。

继续阅读
谷歌和iPhone又吵起来了?这次又是为了啥

据报道,数据采集问题让iPhone用户又和谷歌杠上了,搜索巨头披露的法庭文件显示,这批将谷歌告上法庭的iPhone用户有数百万之众,他们索要的赔偿金更是高达惊人的42.9亿美元。

8大工业大数据应用场景,看清物联网时代的工业生产

  工业企业中生产线处于高速运转,由工业设备所产生、采集和处理的数据量远大于企业中计算机和人工产生的数据,从数据类型看也多是非结构化数据,生产线的高速运转则对数据的实时性要求也更高,因此工业大数据应用所面临的问题和挑战并不比互联网行业的大数据应用少。本文对工业大数据在制造企业的应用场景进行逐一梳理。

智能手机冬天来临?需求疲软、增长停滞

在过去的一年里,各大机构的手机季度、年度出货量研究报告都透露了同一个信息,就是出货量持续走低,离智能手机市场的寒冬期越来越近。数据之外,众多中小型手机厂商洗牌完之后,轮到乐视、金立、魅族等中大型手机厂商身陷危机当中,能不能活下去也只能听天由命了!

商业无人机越走越近,联合国欲打造全球无人机登记系统

据外媒报道,国际航空运输协会(IATA)高管周二表示,该机构支持联合国牵头开发全球无人机登记系统。眼下,无人机对商用飞机带来的安全隐患正引发越来越多的关注。

北京发放首批自动驾驶测试号牌,同时开放33条测试道路

北京市首批自动驾驶测试试验用临时号牌发放,获得首批试验用临时号牌的5辆自动驾驶车辆正式上路测试。

©2018 Microchip Corporation
facebook google plus twitter linkedin youku weibo rss