随着电子技术和信号处理技术的发展,宽带数据的应用越来越多,同时窄带数据通信也仍然广泛存在。同时对宽带和窄带数据进行处理是目前无线通信遇到的问题。由于数字接收机系统中,宽带和窄带数据的需求不是事先固定的,而是在信号分析和识别后,自适应地或者由用户现场下发命令,实现宽带或者窄带信号的监测。在这种应用背景下,基于FPGA的数字下变频就面临现场编程问题,一般FPGA解决方法是将各种带宽的参数存储在其FLASH芯片中,随时根据命令来调用不同带宽下的工作参数,但需要的存储空间较大,占用FPGA的资源也较多,基于此方法设计的系统需要大容量的FPGA芯片,系统的功耗较大,价格较高。
1 GC5016及其结构
GC5016是TI公司推出的宽带4通道的可编程数字上下变频器,提供160 Msps输入速率,可以采用双通道联合处理最高320 Msps的输入速率,满足目前绝大部分A/D器件的速率要求。4个完全相同的通道可以独立配置成上变频、下变频或两个上变频、两个下变频的组合通道。本文主要介绍其下变频功能。GC5016的内部结构如图1所示。图中给出了GC5016在接收工作模式下的结构图,其内部有4个通道,图中给出了A和B两个通道的结构图,通道C和D具有和这两个通道完全一致的结构。
图1 GC5016内部结构图
输入数据经过数据选择单元进入混频器,数据选择格式有定点16位、浮点16位以及AB双路合成数据3种格式。数字混频器将按照软件配置对信号进行混频,为了便于后面的滤波,一般转换到零频为中心的基带数据。基带数据可以两路合成分别经过滤波器,也可以每路单独进行滤波。滤波器组包括CIC滤波器和可编程滤波器:CIC滤波器可以实现1~256的整数抽取,降低了数据速率;可编程滤波器一般使用FIR滤波器,对信号进一步抽取和整形,这里抽取可以为1~16,可见GC5016可以实现最大的抽取为4 096(16 256)。FIR滤波后的数据经过AGC功率检测和控制模块,数据最后经过输出格式化后输出。
图中配置口是一个并行数据接口,必须经过这个接口配置GC5016的寄存器,也可以通过配置口来读取芯片的寄存器,查看芯片工作是否正常、初始化是否正确等;GC5016具有一个同步输入和同步输出口,可以用于多个GC5016的同步,也可以用于单个芯片内几个通道的同步;JTAG口用于芯片的测试,用户一般不需要连接;电源和时钟复位接口是芯片正常工作的基本配置。
2 硬件系统设计
硬件系统主要由ADC、GC5016、FPGA和DSP组成,如图2所示。
图2 硬件系统
模/数转换芯片ADC采用ADI公司的16位芯片AD9467,其采样频率高达200 MHz,具有75 dB的SNR和90 dB的SFDR,是一款性能较高的高速ADC.其对外接口是差分LVDS数据和时钟总线,差分输出不能直接连接到GC5016,需要采用FPGA将差分信号转换成单端信号。FPGA以ADC输出的差分时钟为基准时钟对差分数据进行读取和转换,将处理好的单端信号数据仍然在该时钟基准下输出给GC5016.由于FPGA的差分端口是相对应的,因此连接ADC的差分数据线和差分时钟线要注意不能随便连接,尽量安排在FPGA的同一Bank中,否则可能导致传输路径不一致,在高速数据读写下容易产生相位畸变,使得输入和传输数据错误。
DSP和FPGA之间的数据通过HPI接口,由FPGA写入DSP,节省DSP的数据读写时间。DSP和FPGA之间还有EMIF接口,用于DSP对FPGA的控制,DSP和FPGA之间的控制状态由GPIO总线传输。同时,DSP还连接一个EMIF接口到GC5016,用于DSP对GC5016的控制和状态读取。
3 软件设计
3.1 GC5016的控制寄存器设置
GC5016的控制寄存器被划分为两部分:8个全局寄存器和总共88页的寄存器,每个页包含了16个寄存器。全局寄存器的访问地址是0x00~0x0F.页寄存器的访问地址需先在全局寄存器的地址2写入页地址,然后再访问0x10~0x1F,就可以访问该页下的寄存器。每一个控制寄存器在芯片内被分配唯一的地址。这样接口的设计就可以将GC5016作为处理器的一个外部存储器来访问。
3.2 GC5016的初始化
GC5016的初始化根据电路的不同可以分为三种情况:第一种是单个GC5016芯片,第二种是多个GC5016芯片配置由主GC5016芯片同步,第三种是多个GC5016芯片配置由外部源同步。而此次设计中只用一块GC5016进行宽带下变频的验证,所以属于独立GC5016芯片的配置。其配置步骤如下:
① 写0xFF00到地址0,复位芯片。
② 写0x0000到地址3,禁止所有输出。
③ 写0x0004到地址1,产生单触发脉冲。
④ 装载所有的配置寄存器。
⑤ 如果几个通道需要同步控制,需要选择一个同步源,可以通过在输入文件中加入如下程序来实现同步控制:
soB_sync 4; fir_sync 4; sck_sync 4; nco_sync4; cic_sync 4;
⑥ 写0x0100到地址0,清除复位。
⑦ 写0x0004到地址1,产生同步脉冲,完成GC5016的设置。
3.3 GC5016的cmd5016软件应用
可以使用专门提供的GC5016的配置软件实现对其寄存器的设置。这些配置包括以下内容。
(1) 关键字的类型
关键字的类型,共5种,分别是mandatory(M)、defaulted(D)、computed(C)、unused(X)、expert(E)。其中M是需要用户进行选择的变量,D是初始化默认值,C是软件控制的变量,X是不用的变量,E一般是一个计算变量,不需要人为设置。
(2) 伪指令
在配置文件中,伪指令mode AB receive 和mode CD receive 可以使GC5016工作在4通道DDC模式。在此模式下需要设置的伪指令有:
◆ mode AB(CD) receive(定义DDC收发模式);
◆ rin_rate(全局变量,接收输入数据速率,0代表半速率,1代表全速率,2代表双速率);
◆ rin_cmplx(全局变量,接收输入数据,0为接收的为实数数据,1为接收的为复数数据);
◆ splitiq,splitiqAB,splitipCD(两通道或者4通道模式变量);
◆ freq,fck,bypass_mix(复数混频器freq_msb,freq_mid,freq_lsb的设置);
◆ bypass_cic,cic_dec(双CIC滤波器的抽取因子);
◆ bypass_fir,fir_dec,fir_diff,fir_nchan,fir_coef(PFIR模式和滤波器抽头);
◆ gain,overall_gain(手动增益设置);
◆ agc_cf,agc_mode,agc_tc(AGC增益设置);
◆ pwr_mtr_on(接收功率计设置);
◆ routf_tdm(接收输出格式控制通道D的TDM模式)。
3.4 DSP软件流程
系统的DSP软件流程如图3所示。
DSP上电复位后,初始化相关接口,这些接口包括EMIF接口、HPI接口以及网络和GPIO接口。初始化接口后,DSP等待从网口下发的控制命令,控制命令一般包括解调频率、解调带宽和解调方式等各种信息。DSP根据这些信息设置GC5016的寄存器,并将这些寄存器值写入GC5016,使得GC5016可以正常工作,然后启动FPGA采集GC5016输出的数据,FPGA按照1024个数据一帧进行存储,满一帧后通知DSP读取这些数据,DSP对这些数据解调后输出到上位机显示或者存储。
图3 DSP软件流程
结语
GC5016是一种理想的可编程4通道数字上下变频器,根据需要可配置为两路作为上变频、两路作为下变频。当接收或发射的数据量庞大时,还可以使用多块GC5016并行处理。再加上它的高速率、宽带宽、高无杂散动态范围、低功耗和灵活配置等各种优点,使得GC5016的应用非常广泛,在CDMA/WCDMA、雷达及软件无线电中都有强大的生命力和很好的发展前景。