ADXL345与EB3631在GPS导航中的应用
扫描二维码
随时随地手机看文章
摘要:为实现用户到目标点的距离测量和方向控制,设计并实现了基于加速度传感器ADXL345和EB3631的GPS模块的实时导航系统。系统选用EB3631搭建GPS模块,通过串口与ATMEGA644P控制器通信采集GPS定位信息;采用加速度传感器ADXL345,通过IIC协议与控制器通信实现位移测量。在0m-500m范围内,时系统稳定性和准确性的反复测试,最终实现了相对误差在10%以内的准确度较高的导航系统。
随着GPS用户设备价格不断下降及GPS应用研究的不断深入,大量GPS定位导航系统被应用于航海、飞机的导航、导弹卫星测控、精密授时、石油开采等方面。由于受测量环境的干扰或者信号被阻挡导致GPS不能定位,同时受GPS定位芯片的影响,使得GPS接收机定位精度大大降低。为解决这些问题,获得精准的定位。文中以三轴加速度传感器ADXL345为基础,详细描述了基于第三代GPS芯片EB3631的硬件和软件设计方案,使得用户可以实时获取当前位置到目标位置的距离及方位,系统实用性较高。
1 硬件设计
GPS测距系统总体设计框架如图1所示。主控制器采用基于AVR内核的8位低功耗控制器ATMEGA644P,芯片具有64K的片内FLASH,2K的EEPROM,4K的片内SRAM。芯片通用I/O接口32个,集成了IIC接口、SPI接口、JTAG接口及8通道的10为ADC转换接口,丰富的外围接口,能更好的满足系统的设计要求。GPS MODULE采用台湾环天公司的EB3631为核心器件,由于采用TTL电平输出,可以直接通过串口与控制器进行通信,为用户提供定位信息。三轴加速度传感器ADXL345实现加速度的测量,从而得到用户位移。电源模块采用8节AA电池,经过π型滤波电路,LM7805稳压为ATMEGA644P、LCD1602液晶提供5 V电压,5 V电压经过AMS1117系列低压差稳压芯片稳压,为GPS模块和加速度传感器ADXL345供电。
1.1 加速度传感器接口电路
ADXL345是ANALOG DEVICES公司的一款数字式的三轴加速度感器,测量范围最小+2g,测量范围最大达到±16g。芯片输出数据采用16位的二进制补码形式,控制器可以通过三线制或四线制SPI接口访问,也可以通过IIC接口访问。ADXL345非常适合移动设备应用,不仅可以测量静态重力加速度,还可以测量运动或者冲击导致的动态加速度。芯片分辨率非常高,能够测量倾斜角度小于1°的变化。ADXL345的工作流程为:首先由三轴敏感单元感知3个方向的比力,通过电子感应器件获得模拟量,经过AD转换为数字信号,经过数字滤波后送往控制欲中断逻辑,在命令字的控制下通过I/O口与控制器交互。
ADXL345在IIC模式下工作时,CS引脚必须接VDD,芯片支持单字节或多字节的读写,读写地址是由7位的IIC器件地址和R/W位组成。IIC器件地址与ALT ADDRESS引脚的逻辑电平密切相关,当ALT ADDRESS引脚处于高电平时,7位器件地址是0x1D,相应的读写地址就转换为0x3B,0x3A;当ALT ADDRESS引脚处于低电平时,7位器件地址是0x53,相应的读写地址就转换为0xA7,0xA6[4];加速度传感器的接口电路如图2所示。SCL作为IIC总线的时钟线,SDA是IIC总线的数据线,通过1~20K上拉电阻至VDD;INT1、INT2是ADXL345的中断引脚。
1.2 NMEA-0813协议
NMEA-0813是美国海洋电子协会为海用电子设备制定的标准格式,数据输出采用ASCII码字符,目前广泛采用的版本是V2.0。数据传输以$开始,后面的是5个字母的语句头。其中语句头的前两个字母代表系统“ID”,如果是GP,则表示该语句属于GPS定位系统;如果是HC,则表示该语句属于罗经方位系统。语句“ID”由最后3个字母决定,语句头之后是数据集合,不同类型的数据字段以“,”分割,每条语句以回车换行符结束。
$GPGGA是GPS定位系统中标准的GPS定位信息语句,$GPRMC是推荐最小的定位信息语句。GPS数据传输采用标准的RS232异步传输,通信的波特率一般默认是4800,1个起始位,8个数据位,一个停止位,无奇偶校验位。
1.3 EB3631 GPS模块设计
GPS(Global Positioning System),也是我们通常所说的全球定位系统,一个完整的GPS定位系统由太空部分、监控部分、用户部分组成。用户部分由GPS接收机、数据处理软件及相应的设备组成,GPS接收机是由前置放大器、信号处理、控制与显示、记录和供电单元组成。GPS系统定位的原理:每颗GPS卫星时刻发送自身的位置和时间信号,用户接收机可以测量出每颗卫星到接收机的时间延迟,根据信号传输的速度,将速度与时间延迟相乘便可得出接收机到不同卫星的距离。三维坐标、速度和时间的确定至少需要接收到4颗卫星的数据才能解算。
基于EB3631的GPS接收板,是高性能的、低功耗的GPS接收板。核心器件采用第三代芯片SiRFstar III,高速的GPS芯片,-159dBm超高的灵敏度,4Mb的flash存储空间,该芯片具有两个串行口,方便与ATMEGA644P控制器通信,采用NMEA-0183和SIRF binary协议,一次最大可接收20颗卫星,即使在信号很微弱的环境,定位也很快。图3所示是GPS接口电路。
2%20软件设计
GPS测距系统的软件开发采用WINAVR/GCC编译器,程序设计采用模块化方式编写,其中包括ADXL345测量程序、GPS接收程序、LCD1602液晶驱动程序。在编写程序前需要采集目标点坐标,这些数据将存储在ATMEGA644P控制器的片内2K的EEPROM中,在PC机上通过Google地图获得目标点经纬度坐标。表1所示是阿坝师专校园坐标记录。
2.1 ADXL345程序
ATMEGA644P通过IIC总线访问三轴加速度传感器ADXL345,IIC总线是飞利浦公司推出的一种串行总线,是具备多主机系统所需的总线裁决和高低速器件同步功能的高性能串行总线。IIC总线由数据线SDA和时钟线SCL组成。IIC总线的数据线上提供起始、停止、应答、非应答四种信号。在使用ADXL345测量加速度时,需要对电源寄存器、数据格式寄存器初始化,初始化完成后,方可测量x、y、z方向的加速度。电源寄存器不仅可以设定供电模式,而且配合BW_RATE寄存器,还可对数据速率进行设定,默认情况下是100 Hz。配置数据格式寄存器,可以设定SPI工作模式是三线制还是四线制、分辨率位数、量程、是否将自测应用到传感器。以下是ADXL345初始化的主要代码。
本题中将三轴加速度传感器ADXL345的分辨率设置为13位,从寄存器DATAX0,DATAX1中读出数值,将DATAX1中低5位数据和DATAX0的数据进行拼接,DATAX1的高3为作为符号位,就能实现X方向的加速度测量,Y轴、Z轴方向加速度读取方法与X轴方向一致。
2.2 GPS接收程序
由于GPS板接收到的语句格式不只一条,所以要完整的接收到“$GPGGA*”数据,就必须对语句头进行检测,当接收的字符和这7个字符完全相同后,才能将数据进行存储,当接收到“*”字符,表示该条语句接收结束,可以对数据进行处理。图4所示是串行口中断函数接收子程序流程。
2.3 主程序
主程序的设计包括初始化相关寄存器、I/O端口、USART、IIC以及LCD1602液晶初始化,初始化完成之后显示开机LOGO。在循环体中,先进行键盘扫描,以选择目标点,ATMEGA644P控制器通过串口中断接收GPS接收板发回的$GPGGA数据,以获得当前的坐标,经过计算得到当前位置距离目标点距离及相对方向,通过LCD1602液晶显示。然后每隔5秒,判断是否需要采集当前的经纬度数据,通过公式(1)计算获得最新数据信息,以便数据信息及时更新。图5是主程序流程图。
d=R*arccos(θ)*PI/180
其中θ=sin(LatA)*sin(LatB)+cos(LatA)*cos(LatB)*cos(LongA-LongB),(LatA,LongA)是A点的经纬度坐标,(LatB,LongB)是B点的经纬度坐标。经度按照东正西负来计,纬度按照北纬取90-纬度值,南纬取90+纬度值,地球半径R为6 371 004 m,PI取值3.141 592 6。
3 测试结果
在阿坝师专校园试运行,接收当前位置信息时要确保接收到3颗及以上的卫星,使得GPS定位准确,所采集的经纬度数据有效,获得较准确的距离。表2所示是实测距离结果是以行政楼作为当前位置。
通过表2可以看出测量距离在500 m以内,相对误差范围控制在10%以内,达到了较高的精度。
4 结束语
文中设计了一种基于ATMEGA单片机的低功耗、低成本的跟踪系统。主要阐述了整个系统的硬件设计原理、主要模块电路设计及软件设计流程,系统在户外运行,通过实验测得的数据误差较小,能提供长达8h以上连续稳定工作,为用户导航提供很大的帮助。