项目简介
GPS 对许多人都不是一个新名词. 很多人都用过商业成品GPS接收机. 但对大多数人来说,
GPS接收机是如何工作的还是一个谜. 如果你像我一样是个好奇心很强的人, 并且想知道GPS
接收机是如何工作的, 那么这个项目可以帮你解开这个谜团.
这个项目是基于Clifford Kelly 的 GPS 软件接收机的开源项目.
我认为他的项目最有可取之处的是
他把绝大部分GPS接收机的处理都在PC机里实现了, 象(载波和伪码的)跟踪环,导航算法等。
这一点对GPS接收机的研发人员是非常有帮助的, 因为他们可以将任何他们感兴趣的原始数据存储下来以便以后的分析.
但是他的项目是基于ISA总线和DOS操作系统. 现在你很难找到一台带有ISA总线,跑着DOS操作系统的PC机了.
当我开始读他的代码的时候,我想: 如果我能将他的代码在现在主流的操作系统,用更流行的接口方式实现,
我就能很透彻的了解GPS接收机的结构,信号的处理,以及相关的算法, 同时我还能为后来的象我一样的学生提供更多的选择.
我做这个项目仅仅出于我的兴趣, 而非商业利益驱动, 这也是我可以开放所有软硬件设计的原因.
从这个项目里我学到了很多知识.而且我从这个项目学到的东西越多, 我就对它越感兴趣(象一个正反馈:-)).
我选择USB作为接口方式有以下两个原因:
- 首先是USB接口的易用性:USB设备是真正的即插即用,无须设定IO口,中断,DMA, 热插拔,
无需打开机箱安装(这一点很酷!!);
- 其次是由于我自己的兴趣. 我总是对新的技术感兴趣.我曾经设计过串口,并口,ISA,PCI的项目,但从没做过USB,
这次为什么不试试USB?;
整个项目包含硬件和软件:
- 硬件接口板和固件一起完成USB协议,对GP2021的读写,接受PC机的命令去控制GP2021;
- 设备驱动是上层应用软件和底层硬件对话的媒介;
- 应用软件完成了绝大多数GPS相关操作,象环路的跟踪锁定,伪踞的计算,导航算法等等;
下图给出了整个项目的拓扑结构:
目前我只写了WIN2000/WINXP下的版本. 如果我有时间,我会做LINUX下的版本. 我想,主要的障碍在于LINUX下的设备驱动,
我从没有写过LINUX下的设备驱动程序( 在我的学习列表上又多了一项 :-( ).
目前的设计有以下几个问题:
- 1.受USB1.1的传输速度和DS89C420的片上RAM容量所限, 我只能实现6通道信号的跟踪锁定;
- 2.受硬件所限, 有时伪踞的计算是错误的,结果给出完全错误的用户位置信息;
- 3.硬件接口板只能工作在OHCI USB 控制器上, 而不能工作在UHCI USB 控制器上;
(想知道更多, 点这里OHCI .vs. UHCI )
Welcome to USBGPS Opensource Project Homepage
© Copyright 2004 Email:   Yu Lu