第7部分是接收终端的状态信息。其中,“m”是定位工作模式信息,取值为0或1,0代表单机模式(Autonomous),1代表差分模式(Differentia1);“t”是定位类型信息,取值为0~3,0代表无定位,1代表2D定位,2代表3D定位,3代表广播模式;“dd.d”是几何因子信息,取值为00.0~99.9;“nn”使用中的卫星数目,数值为00~37;“rrrr”为参考站识别码,数值为0000~1023;“aa”以秒为单位的差分数据时间,数值为00~60;“CC”为校验和。
GPS接收终端只需要M12模块提供经纬度位置,所以需要通过程序提取上述的7大部分信息中第3和第4部分信息。S3C44B0X与M12模块接口的COM0初始化代码如下:
UFCON0=0x0;
UMCON0=0x0;
ULCON0=0x3;
UCON0= 0x245;
UBRDIV0= ((int)(Fclk/(16 * 9600))-1);
S3C44B0X与M12的接口程序流程如图4所示。S3C44B0X首先请求M12模块输出定位数据(向M12模块发出指令“@@EqmC”),然后等待M12模块回送数据。当M12模块回送数据时,S3C44B0X首先做出判断,确认其收到的是预期的定位信息,然后将定位信息(经纬度数据)截取下来,整理成可供显示数据信息后在LCD上显示经纬度数据,最后将串口的接收缓冲区清空,以免下次接收信息时出错。由于M12模块在1 s之内只能响应一条指令,所以接收终端的数据信息最快1 s更新一次。
图4 S3C44B0X与M12的接口程序流程图
4 结语
本文讲述了一个基于S3C44B0X和M12模块的GPS数据接收终端的设计。通过在华南农业大学工程学院土槽实验室的GPS基准点(坐标为:东经113°20.538 541',北纬23°09.581 834')的静态定位实验测定(持续进行了约50 min,采集到3125组经纬度数据,静态定位数据分布如图5所示),M12模块的单击静态定位精度为<7.81m,符合其用户手册上所标的无SA政策下<25m的精度范围。接收终端运行稳定,定位信息每1 s更新一次,可作为对精度要求不高的民用地理定位。
图5 系统静态定位值散布图