基本的工作原理:由射频前端GP2015对天线接收的信号进行下变频,输出模拟中频信号,ADC对中频信号进行采样和量化,然后传输到TMS320C6416 DSP进行相关的运算处理,完成卫星信号的捕获、跟踪和定位解算等功能,最后将解算的结果通过输出模块传送到显示终端显示定位结果及相关信息。
1.1 TMS320C6416简介
TMS320C6416是TI公司推出的高性能定点DSP[2],其时钟频率可达1 GHz,最高处理能力为8 000 MIPS,软件与C62X完全兼容,采用先进的甚长指令结构(VLIW)的DSP内核有6个ALU(32/40 bit),每个时钟周期可以执行8条指令,所有指令都可以条件执行。该DSP采用二级缓存结构,一级缓存(L1)由128 Kbit的程序缓存和128 Kbit的数据缓存组成,二级缓存(L2)为8 Mbit,有2个扩展存储器接口(EMIF),1个为64 bit(EMIFA),1个为16 bit(EMIFB),可以提供64条独立的DMA通道[3]。
本系统使用50 MHz有源晶振作为DSP的外部输入时钟,内部锁相环使用×20模式(CLKMODE1=1,CLKMODE0=0),系统的主频为1 GHz。
1.2 多星座数据采集模块
为了使软件接收机能够支持多卫星导航星座的中频数据采集与处理功能,本系统同时提供了模拟中频采集接口和数字中频采集接口,2个接口可以同时使用,也可以任选其一,从而使系统具备较高的软件可扩展性。多星座中频数据采集模块的原理框图如图2所示。
在本系统的设计中,采用ADI公司的高速A/D转换器AD9283实现模拟中频信号到数字中频信号的转化。由于接收到的卫星导航信号能量比噪声信号能量低约为20 dB,因此量化位数的高低对检测卫星导航信号的影响是有限的,若采用高位数量化会增加数据运算量和系统的复杂度,通常的商用接收机大多采用1 bit或2 bit量化。本设计中量化位数为1 bit和2 bit可选配置。经过ADC数字化的中频信号送到DSP的McBSP0和McBSP2端口,并随后触发EDMA事件,完成数据拷贝和缓存[4]。与此同时,采样时钟作为McBSP口的外部时钟同步输入信号,将8 bit同步减法计数器74HC40103D设计成32进制计数器对采样时钟进行分频来产生帧同步信号,实现串并数据转换。为避免因负载过多时钟驱动能力不足,采用了可配置时钟驱动芯片CY2308作为时钟驱动。图3所示为多星座数据采集的硬件连接原理图。
为避免数据丢失,采用乒乓缓存的方法缓冲采集到的数据流,在DSP的片上内存为每个McBSP通道开设乒缓冲区和乓缓冲区。以12 MHz、1 bit采样为例,在片上内存开辟2个30 KB的数据缓冲区,即每个缓冲区能够存放20 ms的数据。系统运行后,EDMA控制器先将McBSP0采集到的数据写入乒缓冲区,20 ms后乒缓冲区满,EDMA控制器向CPU发出中断请求,对缓冲区数据进行运算处理。同时,EDMA向乓缓冲区写数据,这样通过不断的乒乓切换完成数据的缓冲存储。
1.3 查找表数据存储管理
在捕获、跟踪中需要用到大量查找表,为了降低接收机的启动时间,直接把这些数据表格作为固件烧入到Flash中,而不用每次都由DSP通过程序重新生成。所有查找表需要约15 MB的空间,为了降低存储空间,使用LZW无损压缩算法进行压缩至约2 MB。系统初始化时,DSP先读取Flash中的数据表格,然后执行解压程序对其解压,并存于片外的SDRAM中提供给接收机做运算时调用。
本设计中使用了2片4 MB×32位的SDRAM芯片MT48LC4M32并联连接到DSP的EMIFA口,把程序运行过程中对实时性要求较低的数据段和查找表分配到SDRAM中。总线运行在166 MHz的高速状态,由专用的可配置的时钟芯片ICS525对50 MHz的时钟倍频产生。
1.4 定位结果输出模块
卫星导航接收机需要周期性地输出定位结果以及其他相关信息,通常输出速率为1 Hz~5 Hz,DSP的串行接口McBSP即可满足要求。为了能够将结果在显示设备上显示,数据的输出需要兼容NMEA0183协议,因此需要将McBSP口扩展成符合RS-232标准的异步串行接口。
将DSP的McBSP端口的工作模式设为SPI模式作为主设备,直接与MAX3111进行连接,DSP通过执行相关的指令,设置MAX3111的相关控制字,完成波特率、数据位、奇偶校验等的设定,然后向MAX3111输出有效信息,利用其片内的转换器实现UART到RS-232格式及电平的转换,从而实现DSP与RS-232设备进行异步数据传输。