发布日期:2022-04-18 点击率:57
0 引 言 1.1 ATmega16与M12模块的硬件接口 这里采用光电耦合器件TLP521进行5V和3V之间的电平转换,以增强抗干扰能力。ATmega16的I/O驱动能力较强(最大输出40mA电流),可以直接驱动TLP521。M12模块的I/O驱动能力较弱,需加一级驱动缓冲器才能驱动TLP521,这里使用7406反相驱动缓冲器。 HD44780的数据总线DB7~DB0与ATmega16的PA7~PA0相接,RS、R/W和EN分别与单片机的PD3、PD4和PD5相连。利用ATmega16的I/O口控制LCD进行指令和数据输入,正确地显示出经纬度数据。 2 ATmega16与M12模块的接口程序设计
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模块供电。
由于ATmega16和M12模块的I/O操作电压范围不相同,所以两者的串行口之间需经过电平转换才能确保稳定通信,其电平转换电路如图2所示。
1.2 ATmega16与LCD的硬件接口
系统中采用基于HD44780液晶控制芯片的16×2字符型LCD,该器件内置了字符产生器,能显示192个常用字符(包括阿拉伯数字和大小写英文字母)和16个用户自定义字符,它与ATmega16的接口如图3所示。
系统使用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条指令:
下一篇: PLC、DCS、FCS三大控
上一篇: 索尔维全系列Solef?PV