GPS定位替代系统的FPGA实现 概述:本文在分析目前使用的GPS定位系统的基础上,探讨了一种替代系统,系统通过接收不同城市广播电台的发出的报时信号,算出这些地方距离定位设备所在地的距离,进而确定本地的确切地理位置,设计了系统的FPGA实现。 1 引言 全球卫星导航定位系统GPS(Global Positioning System)作为一门新兴的信息通讯技术,已被广泛应用在飞机船舰的导航、高精度测量、农业监控、车辆定位等领域。现有的卫星定位系统主要是美国的GPS和俄罗斯的GLONASS等系统;欧洲拟建的伽利略系统将是世界上第一个完全向民用开放的全球性卫星定位系统;中国的北斗卫星导航定位系统由2000年、2003年发射的3颗北斗卫星组成,作为一个区域性的定位系统,仅能满足当前陆、海、空运输导航定位的需求,在覆盖范围及用户数量等方面受到一定的限制。目前,我国卫星导航定位设备的设计基本是以美国进口的GPS接收机为基础,公安部门使用的车载卫星定位系统,由于仅局限于在车上使用而缺乏一定的灵活性;因此,研制新型的便携式集群手持卫星定位设备取代现有的车载定位设备成为定位系统发展的必然。; 2 GPS系统的特点 最早的卫星定位系统是美国的子午仪系统,1964年正式投入使用。由于该系统卫星数目较小(5-6颗),运行高度较低(平均1000KM)。为满足军事部门和民用部门对连续实时和三维导航的要求。1973年美国国防部制定了GPS计划。GPS实施计划共分三个阶段:第一阶段从1973年到1979年,发射了4颗试验卫星。研制了地面接收机及建立地面跟踪网;第二阶段从1979年到1984年,又陆续发射了7颗试验卫星,研制了各种用途接收机;第三阶段为实用组网阶段,从19*2月4日到1993年底 GPS网即(21+3)GPS星座建成。整个GPS系统由三部分组成: (1)GPS卫星星座 由21颗工作卫星和3颗在轨备用卫星组成GPS卫星星座,记作(21+3)GPS星座。24颗卫星均匀分布在6个轨道平面内,轨道倾角为55度,各个轨道平面之间相距60度,即轨道的升交点赤经各相差60度。每个轨道平面内各颗卫星之间的升交角距相差90度,一轨道平面上的卫星比西边相邻轨道平面上的相应卫星超前30度。对于地面观测者来说,位于地平线以上的卫星颗数随着时间和地点的不同而不同,最少可见4颗,最多可见11颗。在用GPS信号导航定位时,为了计算观测站的三维坐标,必须观测4颗GPS卫星,称为定位星座。 (2)地面监控系统 GPS卫星是一动态已知点,星的位置是依据卫星运动及其轨道的参数计算。每颗GPS卫星所播发的星历,是由地面监控系统提供的。地面监控系统一个重要作用是保持各颗卫星处于同一时间标准。这就需要地面站监测各颗卫星的时间求出钟差,然后由地面站发给卫星,卫星再经由导航电文发给用户设备。 (3)GPS信号接收机 GPS信号接收机的任务是能够捕获到按一定卫星高度截止角所选择的待测卫星的信号,并跟踪这些卫星的运行,对所接收到的GPS信号进行变换、放大和处理,以便测量出GPS信号从卫星到接收机天线的传播时间,解译出GPS卫星所发送的导航电文,实时地计算出测站的三维位置、速度和时间。 3 GPS定位原理 GPS定位的基本原理是根据运动卫星瞬间位置作为已知的起算数据,利用空间距离确定待测地点的位置。如图1所示,假设t时刻在地面待测地点上安置GPS接收机,可以测定GPS信号到达接收机的时间△t,再加上接收机所接收到的其它数据可以确定以下四个方程式:
图1 定位系统原理图
假设其中(x1,y1,z1)代表北京的具体位置坐标,(x2,y2,z2)代表上海的位置坐标;(x3,y3,z3)代表武汉的位置坐标,(x, y, z)表示接收机所在地的位置坐标,也就是我们要计算的数据。设C为传播速度,Δt1,Δt2,Δt3 分别为信号从北京、上海和武汉传送到接收机花费的时间,经过FPGA芯片的运算,即可得出所要得到的本地位置坐标。
5 替代系统的FPGA实现 FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA 的核心部分是逻辑单元阵列(LCA -LogicCell Array);LCA 的主体部分是由相同的可编程逻辑模块(CLB) 构成的矩阵,每个LCA 含有可编程的组合逻辑和寄存器,LCA通过内部的可编程布线通道的内部互连网络,把逻辑晶体管按设计要求连接在一起以综合阵列中的逻辑功能。这些功能和互连是由存储在单片存储器(EEPROM)中的可配置程序控制。LCA 的配置文件由这些存储器自动装入或由微处理器将其作芯片初始化的一部分进行初始定义。FPGA 芯片逻辑功能的配置基于内部阵列分布的SRAM,即通过对分布的SRAM 的不同的加电配置来决定各个部分的逻辑定义。FPGA 由五部分组成: 1) 输出块(IOBs):提供封装腿与CLB 之间的接口它支持多种IO 接口信号标准; 2) 配置逻辑块(CLBs):提供构造逻辑的功能元件; 3) 多个4K的专用块RAM; 4) DLL:共4个位于片子四个角,用于时钟分布延时补偿和时钟域控制; 5) 三态缓冲器,将驱动专用分段水平布线资源。
本设计主要包括输入、输出,子模块黑盒子(Black Box)声明,以及子模块之间的连接关系,子模块间的接口以及子模块与顶层模块的接口,设计所做的实验是基于Quartus II,它是Altera前一代FPGA/CPLD集成开发环境 MAX+plusII 的更新换代产品,其界面友好,使用便捷。在Quartus II提供了一种与结构无关的设计环境,使设计者能方便的进行设计输入、快速处理和器件编程。由于FPGA的原理、编程和使用方法已经有大量的文章论述了,本文不在此进一步解释程序中的编程。从结构上讲,本设计的整个定位系统总共由3部分组成, 它们分别是:功能控制键输入系统,3个无线电收音机报时接收器的并行输入系统,计算部分和显示部分。系统的结构框图如图2所示。每一个地方发送过来的信号的频率都是不一样的,所以系统根据设置不同的频率接收不同的电台报时。本设计中规定来自北京的接收信号1,来自上海的接收信号2,而来自武汉的接收信号3。在所需要的信号接受完后,经过FPGA芯片系统对接收信号时间间隔的运算,可以计算出设备所在地的具体位置,这个位置在显示部分显示出来,按键的作用是控制输入信号接受器和启动计算并显示。 6 结论 本文在分析目前使用的GPS定位系统的基础上,探讨了通过接收不同城市广播电台的同时发出的报时信号,算出这三个地方距离定位设备所在地的距离,进而确定本地的确切地理位置。设计了系统的FPGA实现,本系统可以作为廉价的汽车定位系统嵌入到汽车的FPGA或单片机控制系统中。
|