kaiyun官方注册
您所在的位置: 首页> 可编程逻辑> 业界动态> 基于FPGA+DSP结构的三星无源定位系统设计

基于FPGA+DSP结构的三星无源定位系统设计

2009-02-06
作者:李成军,冯振明

摘 要:提出了一种基于FPGA+DSP结构的北斗一代三星无源定位系统设计方案。介绍了三星无源定位的原理,给出了系统硬件结构设计、软件功能划分以及功能调度方法,实际测试表明该系统达到了预期的设计目标。
关键词:FPGA;DSP;北斗卫星定位系统;无源定位

  北斗双星定位系统是我国自主开发研制的一种全天候、高精度、区域性卫星导航定位系统,可以实现定位、通信和定时授时三大功能,其中通信是GSP、Glonass等其他定位系统所不能提供的。该系统由空间卫星、地面控制中心站、标校站和用户机四部分组成。空间部分由三颗地球同步轨道卫星(CEO)组成,东星、西星和一颗在轨备份星。北斗卫星导航采用应答式体制:中心站发出询问信号,用户机响应询问信号向中心站发出定位申请,中心根据时延解算出用户位置并发射出去。该系统存在三大局限性:(1)所有用户的定位处理均在地面控制中心内完成,故对中心控制系统的数据处理能力要求相当高,同时也导致了定位数据有较大的滞后误差。假如中心控制系统被毁坏,则整个系统瘫痪;(2)系统工作在有源方式,由于用户需要向卫星发射定位申请信号,用户容易暴露目标;(3)用户数量有限,限制了定位信息的更新频度,不能满足高动态用户的需要。基于以上的原因,就必须研究用户自主导航定位方法,利用现有的“北斗一号”的三颗卫星资源,外加高程信息,可以实现用户设备的无源定位。
  北斗无源定位需要同时对三颗卫星六个波束信号进行处理,处理数据量巨大,单纯靠通用计算机很难达到实时性的要求。随着数字信号处理器(DSP)和现场可编程门阵列器件(FPGA)的发展,采用DSP+FPGA架构的数字硬件系统显示出其优越性。FPGA适用于运算量大、算法相对简单的场合,而DSP适合于算法结构复杂,但涉及的数据量较小的场合。本系统采用了FPGA+DSP架构的硬件设计方案,通过算法的合理分配充分地利用两种器件的优点实现了北斗卫星信号的实时处理。
1 无源定位系统的组成
1.1 硬件系统构成
  该系统由三部分组成,如图1所示。系统的信号处理流程见图2所示。天线接收的北斗一号卫星信号经过射频前端放大、变频处理转换为中频信号,经AD采样变为数字信号后送入到由FPGA和DSP组成的数字信号处理单元,在其中完成捕获、跟踪、解调、帧同步以及定位结算等功能。北斗卫星定位方式采用扩频通信体制,每颗卫星都分配不同的扩频码来区别。由于卫星和用户之间存在相对运动,所以用户接收信号的载波和扩频码都存在多普勒频移。捕获就是通过将本地复制卫星信号同接收信号在伪码域和频率域进行二维搜索,从而达到两者粗略同步,跟踪就是在捕获结果的基础上利用延迟锁定环(DLL)和锁相环实现伪码和载波的精确同步,根据伪码NCO和载波NCO提取卫星和用户之间的距离。对精确同步后的信号进行解调、解码、帧同步提取描述卫星位置的导航电文,利用导航电文计算三颗卫星的位置,有了卫星位置和距离就可在DSP中利用迭代算法解出用户的位置以及用户时钟同北斗时间的差值,最后通过串口将定位结果传送到PC上,信号处理部分还可以输出基于北斗时间秒脉冲(1pps)用于其他设备时间同步。

1.2 处理器芯片
  AD芯片采用AD公司生产的一种高速、高性能、低功耗8位模数转换器。该芯片内部集成了高性能采样和保持放大器,输入信号可以采用单输入或差分输入;处理输入电压峰峰在0~1V之间的模拟信号;采用单+3V模拟电源和单+3V数字电源;片内提供+1.2V~1.3V的参考电压;最高采样率可达100Mb/s;在100Mb/s采样下功耗只有90mW;最大模拟输入带宽高达475MHz;在100Mb/s采样下信噪比(SNR)为46.5dB。
  FPGA芯片采用Altera公司近期推出的采用65nm工艺的Cyclone III 系列的EP3C120,该系列芯片是目前为止工艺最先进、低功耗、低成本的平台级可编程逻辑器件。EP3C120芯片内部具有120K逻辑单元(LE)和530个用户I/O引脚,还具有4Mbit嵌入式存储器、288个嵌入式18×18乘法器、专用外部存储器接口电路、4个锁相环以及高速差分I/O等,特别适合对功耗和价格敏感的大批量应用。
  DSP采用TI公司推出的目前最为先进的浮点DSP芯片TMS3206713。该芯片最高时钟频率达225MHz,内部有8个并行处理单元,分为两组。其体系结构采用超长指令字(VLIW)结构,指令长32位,8个指令组成一个指令包,总共字长为256位。芯片内部设置了专门的指令分配模块,可以将每个指令包同时分配到8个处理单元运行。TMS3206713的存储器寻址空间为32位,芯片内部集成了7Mbit片内SRAM。该芯片利用32位的外部存储器接口可以配置不同速度、不同容量和存储器。TMS3206713还包含丰富的片上外设,包括16通道增强型直接存储器存取协处理器,用于控制数据的EDMA传输;16位主机端接口,可以将该芯片配置为主机的DSP加速器;两个32通用定时器;两个多通道音频串行口以及用于芯片开发和调试的边界扫描接口。
2 数字信号处理模块设计
  数字信号处理模块相互间的接口关系如图1所示。信号处理板上的晶振提供10MHz时钟输入到FPGA中,经过FPGA的锁相环(PLL)分频后作为FPGA的工作时钟和A/D采样时钟。板上A/D将8位的采样数据送到FPGA,FPGA对其进行截断后送入数字接收通道进行处理。在FPGA的内部实现了FPGA和DSP的读写接口电路, DSP与FPGA之间的数据交互是以32位数据总线的形式设计的,FPGA内部寄存器组连接到DSP的EMIF接口的CE2空间,这样DSP就把 FPGA当做一块异步SRAM来读写访问。DSP的10根地址线连接到FPGA上,因而DSP 最多可以访问FPGA内部1 024个32位的寄存器。在FPGA内部,通过对高5位地址线的译码逻辑,将1 024个地址分成32个地址段,每个地址段包括32个32位的寄存器,每个地址段分配给不同的通道,用以存储累积值载波NCO、伪码NCO以及各个信号处理模块的状态等。FPGA的数据上报申请是通过DSP的两个中断管脚实现的。其中DSP_EINT5用于指示有新的相关累积值需要上报,中断周期为31.25μs(一个伪码周期为16kHz,由于各个通道的计算不一致,所以采用1/32K的中断),而DSP_EINT6用于指示有新的基本观测量需要上报,中断周期为31.25ms(一帧信息的长度为31.25ms)。
3 无源点位算法与实现
3.1 三星无源定位的原理及算法

  北斗一号星座包括两颗同步卫星、一颗备份星,分别位于东经80°、东经140°和东经110.5°。同GPS定位方式一样,如果同时利用天上的三颗卫星同用户之间的距离可以联立三个方程,但是如果需要同时求解用户的三维位置及用户钟和北斗时之间的时钟差的话,必须再建立一个方程。用户的坐标满足椭球方程,因此可以通过气压测高的方式得到用户的海拔高度来建立第四个方程,由于联立的四个方程是非线性的,可以通过迭代的方式求解。
  通过导航电文可以知道3颗卫星的位置坐标(xi,yi,zi),i=1,2,3和卫星信号的发射时间tTj,根据用户的接收时间tR,可以得到卫星到用户的伪距ρj=(tR-tTj)×c,j=1,2,3。设用户的三维位置(xu,yu,zu)和偏移量tu,产生3个方程,组成如下方程组:


如果近似知道接收机的位置,则可以将真位置(xu,yu,zu)和近似位置()之间的偏离用位移(Δxu,Δyu,Δzu)来标记。将式(1)~(4)按泰勒级数绕近似位置展开,则可以将位置偏移(Δxu,Δyu,Δzu)表示为已知坐标点和伪距测量值的线性函数。这个过程如下:

  一旦算出了未知量,便可以算出用户的坐标(xu,yu,zu)和接收机时钟偏移tu。只要位移(Δxu,Δyu,Δzu)是在线性化点的附近,这种线性化方法便是可行的。可以接收的位移取决于用户的精度要求。如果位移的确超过可接受的值,便重新迭代上述过程,即以算出的点坐标(xu,yu,zu)作为新的估计值,重新迭代过程。
3.2 无源定位算法的软件实现
  整个无源定位算法的实现分为FPGA处理单元和DPS处理单元两个部分,FPGA实现六路并行的数字接收通道(北斗一号有三颗卫星六个波束)完成载波剥离、接扩、积分累加以及伪距、载波相位等基本观测量的提取等。DSP主要完成伪码捕获、载波和伪码跟踪环路的滤波以及数据解调、位同步、帧同步等算法和整个软硬件的协调功能。为了使如此之多的模块能够顺利运行,在DSP的主程序中采用了任务调度的机制,以两个中断时间间隔为基准,根据信号处理的流程在不同时刻抛出各种不同的优先级的任务,主程序不停地查询任务队列,如果队列中有多个任务等待处理,则取出优先级高的进行处理。整个信号处理的流程如图3。系统上电后首先进行DSP和FPGA的初时化,然后对一颗卫星某个波束进行处理通道分配,DSP程序进入任务调度状态,FPGA根据设置的载波NCO参数、伪码NCO参数产生本地复制的卫星信号,将该复制信号同实际信号进行相关累积运算,31.25μs后产生5号中断通知DSP某一通道中存在新的累积值,同时FPGA重新开始下一个相关累积运算,DSP得到新的累积值后开始顺序进行捕获、跟踪和定位解算,同时抛出Viterbi译码、串口通信、组建导航信息和提取命令四个任务;31.25ms后产生6号中断通知DSP读取伪距、载波相位等观测量,同时抛出分配通道、定位解算和发送消息任务。整个系统在DSP的调度下循环往复运行。

FPGA算法设计采用VHDL在Altera公司的Quartus.II.v6.0集成开发环境下成功实现;DSP算法设计采用C语言在TI公司的CCS3.1集成开发环境下成功实现。整个系统联机运行稳定,满足设计要求。
  系统基于软件无线电的概念设计了一个通用的硬件平台,只要修改相应的算法就可以实现利用GPS信号定位。软件上采用任务调度的方式,利用累积值中断和测量值中断抛出不同的任务。如果需要增加新的功能,只需要添加一个新的任务即可。该系统在实际的测试中,冷启动首捕时间≤2s,失锁重捕时间≤1s,定位精度小于100m,测速精度小于2m,满足系统的设计要求。


参考文献
[1] 张常云.三星定位原理研究.航空学报,2001,(2).
[2] 孙国良,丁子明.双星系统工作方式改进的探讨.电子学报,2001,(9).
[3] 卢子建,李德华.FPGA+DSP实时三维图像信息处理系统.电子技术应用,2007,(3).
[4] 陆海东,吴明赞.基于DSP+FPGA结构的小波图像处理系统设计.电子技术应用,2006,(3).
[5] TI Inc.TMS3206713 Datasheet,2005.

[6] AD Inc.AD9283 Datasheet,2001.
[7] Altera Inc.Cyclone III Datasheet,2007.

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306116;邮箱:aet@chinaaet.com。
Baidu
map