王轲,陈伟,沈兵
(1.武汉理工大学 信息工程学院,武汉430070; 2.中国交通通信中心)
王轲(硕士研究生),陈伟(教授、博士生导师),沈兵(高级工程师):主要研究方向为网络通信与嵌入式系统。
软件GPS接收机具有较高灵活性和可扩展性,是快速实现算法验证、研制原型接收机的重要手段。GPS信号的实时采集是软件GPS接收机各种功能实现的前提。本文设计了一种软件GPS接收机实时信号采集方案。该方案以McBSP接收射频前端NJ1006AK数字化输出,通过McBSP事件驱动EDMA在外部扩展SDRAM中进行乒乓缓存,并通过ms中断(即1 ms中断1次)与基带算法同步数据,很好地满足了软件GPS接收机信号采集的需要。
软件GPS接收机作为软件无线电的典型应用,其本身具有很高的数据采样率和基带算法带来的巨大运算量,跟踪环节还要求提供实时连续采样的GPS信号。这就要求处理器在实时运算的同时,对GPS信号进行高速、连续、实时的采集。软件GPS接收机中的运算目前主要由DSP实现,本文采用TMS320C6416作为核心处理器,在为基带处理提供支持的同时,利用其McBSP、EMDA、EMIF片内外设,配合Nemerix公司的NJ1006AK和相关接口电路完成对GPS信号实时、连续的采集,其结构如图1所示。
图1 基于DSP的实时采集方案
来自天线的1 575.42 MHz GPS信号直接进入集成了LNA的射频接收前端NJ1006AK,完成射频信号的滤波、放大、下变频,数字化输出2位并行数据,经并串转换电路后进入 TMS320C6416。TMS320C6416通过McBSP和EDMA配合完成数据的搬移,通过EMIF接口扩展SDRAM完成数据的存储。McBSP接收串行数据为连续的32位字,并在每个32位字接收完成时,通过McBSP接收事件触发EDMA完成接收32位字到外部扩展SDRAM的搬移。为了保证实时数据的连续接收和同步,McBSP接收事件对应EMDA通道分别在SDRAM内开辟2个1 ms数据空间缓冲区,并通过链接配置为乒乓缓存操作。当一个缓冲区搬移操作结束时,EDMA切换到另一个缓冲区并发出EDMA中断,通知CPU ms数据采集完毕,实现采集数据与基带处理同步。
NJ1006AK是Nemerix公司推出的双超外差GPS射频前端接收芯片。它内部集成了LNA,具有可通过引脚设置的本振频率,同时可直接与有源或者无源天线对接。采用NJ1006AK配合无源天线完成射频信号的接收、处理,其电路如图2所示。
图2 射频接收电路
无源天线通过 L1、C1、C3、L5耦合GPS信号进入NJ1006AK内部集成的LNA,进行低噪声放大;并由LNO引脚进入L2、L3、L4、C2、C4和SAW 晶振 TQS949-AA-7G构成的滤波电路,完成GPS L1带外信号的滤除。NJ1006AK通过MODE引脚接地选择本地振荡频率为1 554.86 MHz,与由RFI引脚进入的滤波后的信号混频,完成下变频得到20.55 M Hz中频信号。该中频信号由NJ1006AK通过内部AGC放大后经2位ADC欠采样完成二次下变频,输出SGN、MAG数字信号。ADC参考时钟通过XEN引脚接地选择由CP引脚输入基带接口提供的16.129 MHz采样时钟。此外,L6、L7、C6、C9构成中心在25.55 MHz、带宽3.5 MHz的滤波电路,以滤除A/D转换过程中引入的镜像频率;R1、C7、C10构成NJ1006AK内部PLL的外部滤波电路;AVDD、TVDD为 NJ1006AK提供3.3 V工作电压;C5、C8完成NJ1006AK片上输出电压的滤波,防止芯片内部参考偏移。
图3 并串转换及存储接口电路
并串转换和外部SDRAM存储接口电路如图3所示。50 MHz温补晶振通过CLKIN为TMS320C6416提供时钟输入,CLKMODE0、CLKMODE1上拉配置内部PLL为20倍频,使处理器工作在1 GHz。McBSP0在向射频前端提供采样时钟CLKF的同时,通过与SN54LV166A接口完成并串转换。EMIFA以32位形式与Micron公司64 Mb 32位SDRAM MT48LC2M32B2-6对接,实现外部存储的扩展。
并串转换接口中,SN54LV166A的CLR引脚接3.3 V禁止异步清零;S/L引脚接地选择并行输入方式,接收A到H并行输入;INH引脚接地使能McBSP0的CLKR提供的移位时钟;来自射频前端的数字信号SGN、MAG在CLKR上升沿,依次通过QH输出到McBSP0完成接收。
外部扩展SDRAM配置在EMIFA CE0空间,BEA16下拉,BEA17上拉设置CPU内部6分频,AECLKOUT1输出 166 MHz与MT48LC2M32B2-6的 CLK对接,其他控制信号 ASDCKE、ACE1、ASDRAS、ASDCAS、ASDWE、AEA[13 ∶3]、ABE[3∶0]、AED[31∶0]直接与M T48LC2M32B2-6对应的信号连接。由于SDRAM复用地址线,MT48LC2M32B2-6的A11~A18与A0~A7复用,BA0、BA1作为A19、A20提供组选择信号,所 以 TMS320C6416的 AEA3~AEA13对 接MT48LC2M32B2-6的 A0~A10完成 A0~A18的传送,AEA14、AEA15接BA1、BA0提供组选择信号。
McBSP负责射频前端采样信号的接收,接收配置分为时钟生成设置和接收参数设置。其控制参数主要分布在接口控制寄存器、接收控制寄存器、引脚控制寄存器和采样率寄存器。引脚控制寄存器和采样率寄存器为McBSP提供灵活的帧信号和时钟生成,既可以由外部引脚输入也可由内部时钟分频得到,同时提供输出到外部引脚的极性反转控制。本方案中,设置采样率寄存器中CLKSM=1,CLKGDV=30,FPER=1,FWID=0,使 McBSP0 的内部1 GHz时钟通过CLKGDV分频得到内部接收需要的32.258 MHz接收时钟,进而通过帧信号周期FPER、帧脉宽FWID分频产生16.129 MHz占空比为50%的帧信号。同时,设置引脚控制寄存器中CLKRM=1,CLKRP=0,FSRM=1,FSRP=1,使得极性反转后的帧信号输出到FSR引脚(其下降沿用于射频前端完成GPS信号采样和接收帧同步),接收时钟直接输出到CLKR引脚(其上升沿用于串并转换电路完成数据移位输出,下降沿用于McBSP采样外部数据)。
接收控制寄存器和接口控制寄存器主要提供接收帧长、字长、帧忽略,接收延时、时钟、帧发生、接收开始等控制功能。为了尽可能提升McBSP0和 EDMA效率,设置接收控制寄存器中RPHASE=0,RFRLEN1=1,RWDLEN1=5,RDATDLY=0,RFIG=1。选择每帧包含一个相位,每个相位包含一个字,每字32位,与帧信号同步无延迟采样接收,且忽略不恰当帧同步。设置完上述寄存器后,就可通过依次设置接口控制寄存器内GRST、FRST、RRST为1,顺次完成采样率发生器复位,帧信号发生器复位和接收使能开始接收。
EMIFA CE0空间扩展的64 Mb SDRAM位于CPU地址空间0x8000 0000~0x807F FFFF,为信号采集过程提供了高速缓存。其配置信息分布在EMIFA全局控制寄存器、CE控制寄存器0、SDRAM 控制寄存器、SDRAM时间参数控制寄存器和SDRAM扩展寄存器。复位完成后,CPU需要按照EMIFA寄存器配置必要参数,然后启动SDRAM初始化过程,使SDRAM进入正常读写状态。
SDRAM工作需要的166 MHz同步时钟,通过设置EMIFA全局控制寄存器EK1EN=1使能AECLKOUT1输出;同时,设置CE控制寄存器0中M TYP=0x03,选择CE0为32位SDRAM模式。EMIFA中SDRAM工作刷新周期通过166 MHz同步时钟计数实现,在SDRAM时间参数控制寄存器中由PERIOD设定为2 500,即2 500×(1/166 MHz)≈1.51 μ s进行刷新操作,具体刷新次数由XRFR=0设定为每1.51 μ s 1次。SDRAM 扩展寄存器提供了SDRAM操作需要的时间参数设置。具体设置为:TCL=1,TRAS=5,TRRD=0,TWR=1,THZP=2,RD2RD=0,RD2DEAC=2,RD2WR=0,R2WDQM=2,WR2WR=0,WR2DEAC=4,WR2RD=0。SDRAM控制寄存器根据器件参数设定SDBSZ=1,SDRSZ=0,SDCSZ=1,依次表示寻址bank数为4,行地址为11位,列地址为8位。同时,设定3个关键时间参数Trcd=2,Trp=2,Trc=8。CPU在复位完成设置完上述参数后,就可通过向SDRAM控制寄存器INT位写1,开始初始化外部SDRAM。
EDMA采用事件驱动机制工作,每个McBSP接收完成事件REVT驱动EDMA,完成一次McBSP DRR寄存器接收数据到外部扩展SDRAM 的搬移。在TMS320C6416中,McBSP0接收完成事件REVT对应EDMA通道13,需要先设置乒乓缓存模式的RAM参数,然后使能中断和对应通道,才能进入乒乓工作状态等待触发事件,并通过中断与处理器同步数据。
EDMA通道的RAM参数包括:通道参数OPT、源地址SRC、帧计数CNT、目标地址DST、目标地址索引IDX,以及链接加载RLD的5个连续32位控制字。其中,OPT设定传输方式,SRC设定数据传输的源地址,CNT设定帧数和帧内传输单元数,DST设定传输的目的起始地址,IDX设定目的地址修正参数,RLD设定链接RAM参数相对0x01A0 000的起始地址偏移。
要在通道13上实现乒乓缓存,需要使用位于0x01A0 0600和0x01A0 0618的2个可重新加载RAM参数块A、B,以及位于外部SDRAM 0x8000 0000~0x8000 0FBF和0x8000 1000~0x8000 1FBF的2个缓冲区BUF1和BUF2。设定A DST=0x8000 0000指向BUF1,RLD=0x0000 0618指向RAM参数块B,B DST=0x8000 1000指向BUF2,RLD=0x0000 0600指向RAM参数块B,同时置位每个RAM块中OPT中的LINK控制位。这样,当A RAM块最后一个单元传输结束时,会自动加载RLD指向的B RAM块参数。当下次触发事件到来时,EDMA就将数据搬移到0x8000 1000指向的BUF2;相反B RAM块最后一个单元传输结束时,会自动加载RLD指向的A RAM块参数将后续数据搬移到BUF1,实现乒乓缓存。此外,RAM参数块A和B的OPT设置为0x0002 0002,使通道13工作在最高优先级的固定地址到递增地址的32位一维元素同步链接模式。SRC设置为McBSP0 DRR地址0x018C 0000,CNT设置为0x0000 03F0进行1008个字的单帧传输,IDX不影响一维元素的同步传输,设置为0x0000 0000。
为了保持McBSP和EDMA操作的同步性,所有EDMA通道共享的EDMA_INT在使能通道13前,通过MXL[25:21]映射到可屏蔽中断INT_8,并置位ICR Bit8清除所有挂起中断,置位IER Bit1、Bit8使能NMI和INT_8,最后置位全局中断使能GIE。使能通道13时,需先置位EDMA事件清除寄存器ECRL和中断挂起寄存器CIPRL Bit13,以清除先前发生的McBSP0 REVT事件和挂起的中断信号;然后依次置位EDMA中断使能寄存器CIERL和通道使能寄存器EERL bit13,使能通道13和相应的中断。
采用基于McBSP、EDMA、SDRAM构成的GPS信号采集方案,主要分为接口配置和信号采集两个阶段。接口配置阶段依次完成EMIFA、EMDA、中断和McBSP0配置,使其工作在一定工作模式下,最后通过置位McBSP接口控制寄存器中的RRST启动采集过程。信号采集过程基于硬件实现,完全与CPU并发,在ms数据接收完成后与CPU通过中断INT_8同步数据。具体采集过程如图4所示。
图4 GPS信号采集过程
McBSP 32.258 M Hz接收时钟连续32个下降沿接收一个32位字,产生一个REVT事件,对应16.129 MHz射频采样时钟16次下降沿采样。REVT事件驱动EDMA完成一次DRR 32位接收数据到SDRAM缓冲区搬移,并将CNT减1,缓冲区地址加4指向下一个缓冲单元。假设EDMA当前执行RAM参数A传输,那么32.258 M Hz接收时钟1 ms内共32 258个下降沿,可接收1008个32位接收数据,产生1008次 REV事件;对应16.129 M Hz采样时钟16 128次下降沿采样,共驱动EDMA 1008次32位搬移,占用BUF1 0x8000 0000~0x8000 0FBF 4 032字节空间,CNT减少到0。一旦CNT减小为0,EDMA就触发INT_8,通知CPU ms数据采集完毕;同时,根据RLD的设定,加载位于0x01A0 0618的参数RAM B到通道13的自身参数RAM。当下次REVT事件到来时,EDMA就执行RAM参数B传输,在0x8000 1000~0x8000 1FBF BUF2缓冲,此时CPU可处理BUF1中的采集数据。当CNT再次减小到0时,EDMA再次触发INT_8,通知CPU ms数据采集完毕;同时,根据RLD的设定加载位于0x01A0 0600的参数 RAM A到通道13,实现乒乓缓冲。需要注意的是,M cBSP RFIG=1工作在帧忽略模式,在第一个CLKF下降沿完成同步后一直忽略后续同步信号,直到32位帧结束才能实现下一帧同步。
本文提出的基于NJ1006AK和 TSM320C6416的GPS实时信号采集方案,充分利用了DSP内部外设,具有电路简单可靠、配置方法灵活和CPU同步并发的特点。该方案很好地解决了软件GPS接收机中数据采集实时性和基带处理实时性冲突的问题,实现了GPS信号的实时、连续采集,对提升软件GPS接收机实时性能具有重要意义。
[1]Texas Instruments.TMS320C6000 DSP Multichannel Buffered Serial Port(McBSP)Reference Guide(SPRU580),2004-09.
[2]Texas Instruments.TMS320C6000 DSP Enhanced Direct Memory Access(EDMA)Controller Reference Guide(SPRU234),2004-11.
[3]Texas Instruments.TMS320C6000 DSP External Memory Interface(EMIF)Reference Guide(SPRU266),2004-04.
[4]Texas Instruments.TMS320C6000 EMIF-to-External SDRAM Interface(SPRA433),2007-09.
[5]NemeriX.NJ1006A datasheet.Rev.1.5,2005-09.