EB-3631C的GPS调试

来源:互联网 发布:故宫淘宝 乾隆 编辑:程序博客网 时间:2024/04/28 14:39

     EB-3631C是台湾global stat公司的一款GPS模组(采用SiRFstar III芯片组,这一芯片通过采用20万次/频率的相关器提高了灵敏度,冷开机/暖开机/热开机的时间分别达到42s/38s/8s,可以同时追踪20个卫星信道),布局相当简单,工作后通过UART传输标准的NMEA数据给GPS应用软件。由同事负责的android平台上GPS模块经过一段时间调试工作OK,总结记录如下:

1,保证6410跟GPS模块的UART通讯OK。在内核的/drivers/serial/samsung.c中添加初始化GPIO控制GPS的函数gps_init(),放在s3c24xx_serial_modinit中。该函数会用uart_register_driver注册6410的四个UART,从次设备号64开始,分别对应ttySAC0/1/2/3。而GPS用的就是UART2。

2,改变UART端口访问属性。在vendor/sec/smdk6410/init.rc中添加:

     chown system system  /dev/ttySAC2 
     chmod 777  /dev/ttySAC2

     是否有效可以通过:ls -l /dev查看信息。

3,添加库。在vendor/sec/smdk6410/BoardConfig.mk中打开属性:BOARD_GPS_LIBRARIES := libgps,是否有效可以通过在out/target/product/smdk6410/system/lib中查看是否有libgps.so文件。

4,添加接口文件,在vendor/sec/smdk6410/添加命名为gps的接口实现文件夹,包括两个:gps_real.c和Android.mk,这个才是真正的GPS接口文件。同时要在gps的同层目录的AndroidBoard.mk中添加:include vendor/sec/smdk6410/gps/Android.mk保证makefile工作。

5,在/hardware/libhardware_legacy/gps中,修改Android.mk,使之不加载gps_qemu,因为过时不用,qemu的只相当于一个模板,上述gps_real.c仿造qemu的实现就可以了。

6,从网上下载运行于android平台上的GPS软件com.google.android.apps.localdirectory.apk。谷歌地图自身也很好用。

7,连接天线,同时保证WIFI工作OK,因为android平台上GPS软件的运行依赖于连接互联网得到地图,再把从GPS模块获得的信息定位到地图中显示出来。

====================================================================================================

         GPS相关背景

      如上,GPS控制部分由1个主控站,5个检测站和3个注入站组成。作用:监测和控制卫星运行,编算卫星星历(导航电文),保持系统时间。
a,主控站:从各个监控站收集卫星数据,计算出卫星的星历和时钟修正参数等,并通过注入站注入卫星;向卫星发布指令,控制卫星,当卫星出现故障时,调度备用卫星。
b,监控站:接收卫星信号,检测卫星运行状态,收集天气数据,并将这些信息传送给主控站。
c,注入站:将主控站计算的卫星星历及时钟修正参数等注入卫星。

分布情况:

a,主控站:位于美国科罗拉多州(Calorado)的法尔孔(Falcon)空军基地。
b,注入站:阿松森群岛(Ascendion),大西洋;迭戈加西亚(Diego Garcia),印度洋;卡瓦加兰(Kwajalein),东太平洋。
c,监控站:1个与主控站在一起;3个与注入站在一起;另外一个在夏威夷(Hawaii),西太平洋。

参考原文:http://blog.csdn.net/webgeek/article/details/18220891

   

原创粉丝点击