ATmega16A低成本的GPS接收系统设计
通过对该模块的使用,有效地实现了对GPS信号的接收。
2.6 数据存储模块
数据存储模块用Flash芯片来存储该系统采集的GPS位置信息,便于进行后期数据处理。该GPS接收系统使用的Flash芯片为K9F1208U0M,它是Samsung公司生产的采用NAND技术的大容量、高可靠Flash存储器。图7是K9F1208U0M芯片与ATmega16A的外围连接电路。
K9F1208U0M的接口控制方法:K9F1208U0M在应用时必须通过外部ATmega16A来控制其内容的读写。K9F1208U0M的数据总线与ATmega16A的数据口PA口相连,用ATmega16A的地址高位引脚PB6作为K9F1208U0M的片选信号(CS);PB5接K9F1208U0M的命令数据选择端(CME)/DATA),而PB4接K9F1208U0M的地址锁存允许端(ALE)。
读写操作流程:进行写操作时先要写入命令字80H,通知K9F1208U0M要进行写操作,然后顺序写入目的地地址和待写入的数据。应该注意的是,地址只需写入一次,便可以连续写入多个字节数据。地址指针的调整是由K9F1208U0M内部逻辑控制的,不用外部干预。写入操作是以页为单位(1~528字节)进行的,即每次连续写入能超过528个字节。这是由K9F1208U0M的工作方式决定的:写入的数据先保存至Flash内部的页寄存器(528字节)中,然后再写入存储单元。数据写完之后还要给K9F1208U0M发出1个写操作指令10H,通知其将页寄存器中的数据写入存储单元,随后就应该对状态引脚进行查询。如果该引脚为低,表明此次写操作结束。最后的步骤是数据校验,如果采用了ECC校验模式,则此步骤可以省略。
使用ATmega16A控制器完成Flash驱动函数主要包括:读ID;块擦除;写入一页数据;坏块检测;读取一页数据。
另外,注意事项有:在以K9F1208U0M为数据存储介质的系统设计中,需要注意无效块的问题。无效块即包含一个和多个无效数据位的块。由于结构方面的原因,一块(32页)中有一个无效位也会导致整个块无效。因此,系统必须在写入数据时避开无效块。出厂时,每片K9F12 08U0M的无效块信息均保存在一个无效块信息表中,可以根据该表中的原始无效块信息识别无效块的位置。在K9F1208U0M的使用过程中,应随时对无效块情况进行检查和更新,以保证无效块表内容的准确性。
3 微控器软件程序设计
该ATmega16A软件程序流程如图8所示。
4 实验结果
为检验该GPS接收系统的系统性能,选择一空旷地域组织了若干次实验,实验内容是固定地点接收卫星信号。图9是GPS接收系统实物图和Flash数据读取图。
图9中左边是GPS接收系统的实物图,右边是通过该GPS接收系统采集回来的数据,然后经过Flash读取而得到的信息。GPS卫星接收系统采集到的坐标是世界大地坐标系(WGS-84)坐标。输出的数据格式为:"时间+维度+经度+星数+高度",接收回来的数据充分显示系统稳定度很高。
结语
本文设计了一种基于ATmega16A的GPS接收系统。该系统具有数据存储、无线传输、定位精度高等特点。实验数据显示系统稳定度很高,易于推广普及,可用于普通民用地理定位领域,具有较高的实用价值。
- 是福音还是侵犯隐私?先进定位技术可精确判断位置(09-12)
- 基于位置的服务在3G系统中的应用(上)(09-30)
- 基于位置的服务在3G系统中的应用(下)(09-30)
- 基于GPS的车辆导航及GPRS网络监控(10-02)
- 便携时代风起云涌,Wi-Fi携手微型硬盘引领潮流(11-18)
- TFT-LCD在GPS导航仪中的应用(11-26)