引言
GPS(全球定位系统)是为海上、陆地和空中各种运输工具和移动设备的导航和定位而开发的,具有高精度、全天候、全球性和点间无需通视等优点,使测量技术发生了质的飞跃[1]。在GPS的行业应用中,数据接收系统是最基本的设备。目前,数据接收系统具有智能化和可扩展性不断增强的发展趋势,表现为内嵌的MCU性能越来越高,外围接口越来越丰富,但软硬件成本不断上升,减缓了GPS接收系统平民化的趋势[2]。综上所述,本文设计了一种基于单片机ATmega16A[3]的低成本、可存储、无线传输GPS接收系统。实验证明,该系统稳定度高,可以满足各种工程测量以及勘察测量等民用要求。
1 GPS接收系统结构及工作原理
GPS接收系统实现本地GPS信号读取、系统控制、数据接收、数据存储、数据读取和无线收发等功能。其系统结构框图如图1所示。
GPS接收系统工作过程为:ATmega16A利用GPS模块获取其所在位置的经纬度等信息,并将该测试点处的数据通过USB接口传输到PC机中,通过上位机软件完成对数据的转化。此外,ATmega16A带有片上Flash,也可实现对接收数据的存储功能,以便进行离线处理。ATmega16A通过控制无线收发模块,实现了对数据发送的功能[4]。
图1 GPS接收系统结构框图
2 GPS接收系统硬件设计
GPS接收系统主要由电源模块、GPS模块、GPS天线模块、控制模块、无线收发模块和数据存储模块等部分组成。
2.1 电源模块
电源模块是GPS接收系统工作的重要组成部分,实现的是系统供电功能。在GPS接收系统中,主要耗电的部分为无线收发模块,该模块工作在1 W接收功率时工作电流可达到700 mA,因此需要采用大电流的电源芯片,以保证系统供电需求。LM2576最大供电电流可达到3 A,完全满足系统大功率接收时对电流的要求。此外,系统中其他模块工作电压为3.3 V,采用REG1117(3.3 V)芯片为系统提供工作所需电压[5]。电源模块设计原理图如图2所示。
图2 电源模块设计原理图
2.2 GPS模块
GPS模块是影响系统测量精度的关键,该系统中GPS采用SDT11E模块进行设计。该模块具有-158 dBm的接收灵敏度,定位精度可达2.5 m。高接收灵敏度和定位精度可以有效保证该系统的适用范围[6]。其原理图如图3所示。
图3 GPS模块设计原理图
2.3 GPS天线模块
GPS天线形式是多种多样的,可以是螺旋线圈天线、偶极子天线或是微带天线。通常会在天线的前端加入一个低噪声放大器,使得接收机内维持一个低的噪声系数,这时需要由接收机前端通过RF同轴电缆对放大器供电。需要注意的是,当使用GPS接收机解算位置的时候,实际上是在估计天线的电子相位中心的位置,而电子相位中心与物理相位中心常常不在同一点。对于测量型GPS接收机天线,电子和物理相位中心会有厘米级的差异。
图4 SDT11E型接收机天线部分
系统采用的是SDT11E型GPS接收机,它的天线单元如图4所示。它具有的功能是接收由卫星发射来的信号。
2.4 控制模块
该GPS接收系统中,主要采用Atmel公司的AVR芯片ATmega16A作为系统的控制器,控制器主要实现控制GPS模块、控制无线收发模块、控制USB传输模块、处理接收的GPS信号、从Flash芯片中存取数据等功能。
由于GPS模块、无线收发模块、USB模块均采用串行接口,控制器内部只带有一个串口功能,因此采用通用I/O口模拟串口通信方信模块工作流程式完成对GPS和收发模块的控制。同时设计了带接收中断功能的串口模块,以实现系统控制功能。本收发模块中对接收到的GPS信号进行了简化处理,提取出了经纬度、高度及时间信息,增加了数据存储的有效信息量[7]。I/O口模拟串口通信模块工作流程如图5所示。
图5 I/O口模拟串口通
2.5 无线收发模块
为提高该系统的定位精度,并有效降低系统功耗,本系统采用无线收发方式实现数据传输,无线收发模块设计原理图如图6所示。
图6 无线收发模块设计原理图
该无线收发模块主要使用MaxStream公司的9XTend模块,其主要特点是:与传统无线调制方式相比,在相同的发射功率的情况下采用扩频通信方式可以传输更远的距离。它是MaxStream公司目前传输距离最长(视距传输距离为40 km)的低功耗OEM RF模块。9XTend在5 V电压下,电流消耗只有780 mA,输出功率可达1 W(30 dBm)。该收发器的接收灵敏度达-110 dBm,可使用户在1.5英里、15英里视距和40英里(通过高增益天线)接收900 MHz信号,数据吞吐量为230 kbps,数据率可达115.2 kbps。通过对该模块的使用,有效地实现了对GPS信号的接收。
2.6 数据存储模块
数据存储模块用Flash芯片来存储该系统采集的GPS位置信息,便于进行后期数据处理。该GPS接收系统使用的Flash芯片为K9F1208U0M,它是Samsung公司生产的采用NAND技术的大容量、高可靠Flash存储器。图7是K9F1208U0M芯片与ATmega16A的外围连接电路。
图7 K9F1208U0M芯片与ATmega16A的外围连接电路
K9F1208U0M的接口控制方法:K9F1208U0M在应用时必须通过外部ATmega16A来控制其内容的读写。K9F1208U0M的数据总线与ATmega16A的数据口PA口相连,用ATmega16A的地址高位引脚PB6作为K9F1208U0M的片选信号(CS);PB5接K9F1208U0M的命令数据选择端(CMD/DATA),而PB4接K9F1208U0M的地址锁存允许端(ALE)。
读写操作流程:进行写操作时先要写入命令字80H,通知K9F1208U0M要进行写操作,然后顺序写入目的地地址和待写入的数据。应该注意的是,地址只需写入一次,便可以连续写入多个字节数据。地址指针的调整是由K9F1208U0M内部逻辑控制的,不用外部干预。写入操作是以页为单位(1~528字节)进行的,即每次连续写入能超过528个字节。这是由K9F1208U0M的工作方式决定的:写入的数据先保存至Flash内部的页寄存器(528字节)中,然后再写入存储单元。数据写完之后还要给K9F1208U0M发出1个写操作指令10H,通知其将页寄存器中的数据写入存储单元,随后就应该对状态引脚进行查询。如果该引脚为低,表明此次写操作结束。最后的步骤是数据校验,如果采用了ECC校验模式,则此步骤可以省略。
使用ATmega16A控制器完成Flash驱动函数主要包括:读ID;块擦除;写入一页数据;坏块检测;读取一页数据。
另外,注意事项有:在以K9F1208U0M为数据存储介质的系统设计中,需要注意无效块的问题。无效块即包含一个和多个无效数据位的块。由于结构方面的原因,一块(32页)中有一个无效位也会导致整个块无效。因此,系统必须在写入数据时避开无效块。出厂时,每片K9F1208U0M的无效块信息均保存在一个无效块信息表中,可以根据该表中的原始无效块信息识别无效块的位置。在K9F1208U0M的使用过程中,应随时对无效块情况进行检查和更新,以保证无效块表内容的准确性。
3 微控器软件程序设计
该ATmega16A软件程序流程如图8所示。
4 实验结果
为检验该GPS接收系统的系统性能,选择一空旷地域组织了若干次实验,实验内容是固定地点接收卫星信号。图9是GPS接收系统实物图和Flash数据读取图。
图9中左边是GPS接收系统的实物图,右边是通过该GPS接收系统采集回来的数据,然后经过Flash读取而得到的信息。GPS卫星接收系统采集到的坐标是世界大地坐标系(WGS84)坐标。输出的数据格式为:“时间+维度+经度+星数+高度”,接收回来的数据充分显示系统稳定度很高。
图8 ATmega16A软件程序流程
结语
本文设计了一种基于ATmega16A的GPS接收系统。该系统具有数据存储、无线传输、定位精度高等特点。实验数据显示系统稳定度很高,易于推广普及,可用于普通民用地理定位领域,具有较高的实用价值。
图9 GPS接收系统实物图和Flash数据读取图