分类: Android平台
2013-03-13 22:25:48
主控: Samsung Cortex ARM A8 smdkc110 1G
Gps: UNI-HRG001 GPS模块,单频12通道的,20hz定位数据更新率
单机:<2.5m (2DRMS)
DGPS:<0.5m(2DRMS)
系统: android 2.3
犹豫了很久自己总结的这边文档要不要发出来,主要是因为高精度在电子产品很少有用的到,最后还是为了以后可以方便自己查阅。
首先需要熟悉的是DGPS和单机定位的区别,DGPS是在普通的GPS基础上多了一个串口B,即需要两个串口,串口A用来接收GPS模块吐出的标准的NMEA数据和发命令用,串口B专门用来接收差分信息。
关于单机定位和上一篇文章讲述的是一致的,所以这里只分析DGPS定位
关于DGPS个人暂时是这样理解的:
串口A肯定还是要接收NMEA数据,同时还要告诉GPS模块要工作在DGPS mode,以及告诉GPS模块要设置其他一些配置,例如串口B的波特率等。
串口B是用来专门接收差分信号,然后发送给GPS模块来辅助提高定位的精度
所以引出以下几个我们要思考解决的问题
1、 如何保证串口A正常接收NMEA数据,还可以下发命令给GPS模块
2、 串口B的数据从何而来,又如何发送给GPS模块
为了方便用户选择,我们在上层做了一个供客户选择定位模式,
普通定位,SBAS定位,DGPS定位,以及串口波特率的设置,所以关于问题一有一个好的方法就是在原有的基础上(gps_qumu.c)增加一个进程
\hardware\libhardware_legacy\hc12a_gps\uart_a_b.c用来下发命令或者发送数据给GPS模块,因为是要由串口A发送命令给GPS模块以及配置串口B,所以要先初始化串口A
(附:串口A对应主控UART3,串口B对应主控UART1)
点击(此处)折叠或打开