- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
DVB-S射频调制的FPGA设计方案
DVB-S标准只是规定了信道编码及调制方式,没有提供具体的射频调制方案,DVB-S标准要求载波的频率范围为950 MHz-2150 MHz,由于受到FPGA内部资源运算速度的限制,一般只能实现中频调制[1]。传统的射频调制是在中频调制后加模拟上变频,如中频调制之后采用 AD8346[2]进行射频调制,但这样就增加了设计的复杂度及成本。本文采用ADI公司最新推出的AD9789与FPGA相结合的方法实现了全数字 DVB-S标准射频调制。
1 系统构架
AD9789[3] 14 bit TxDAC芯片内部集成了QAM编码器、内插器和数字上变频器,可为有线基础设施实现2.4 GHz的采样率。AD9789 TxDAC支持DOCSIS-III、DVB_C 2个标准,并不支持DVB-S标准。配置选项可以设置数据路径来为QAM编码器和SRRC滤波器设置旁路,从而使DAC能够用于诸如无线基础设施等多种应用中。本文就是利用这一点实现了DVB_S的射频调制,在FPGA内部实现DVB-S信道编码[3](随机化、RS编码、卷积交织、卷积压缩编码)、星图映射、SRRC 滤波器(滚降系数为0.35),经ODDR模块给AD9789提供复数数据。其射频调制方案如图1所示。
2 可变符号率的设计
DVB-S调制器符号率一般支持1 MS/s~45 MS/s可调,这就需要对TS流进行速率调整。整个DVB_S信道编码有2次速率的变化:(1)RS编码,它将188的包结构变成204的包结构,数据输出的速率为输入的204/188倍。(2)卷积压缩编码,由于卷积压缩编码采用不同的编码比率,如1/2、2/3、3/4、5/6、7/8,对应的输出数据速率就变成输入数据速率的1、3/4、2/3、3/5、4/7倍,针对符号率的设计,本文提出了符号率的设计公式:FBAND=A×204 /188×8×1/2×(N/N-1),其中A为TS流的输入数据速率,N的取值为2、3、4、6、7,之所以乘以8是因为在卷积编码时要进行数据的并串转换。
本文采用插空包的方式实现RS编码速率调整,其设计思路是在信道编码之前对TS流进行一次速率调整,将188的数据包变成204的数据包,这样大大简化了后端的设计,具体的操作就是通过FIFO实现,由于TS流速率慢,所以先写FIFO,等到写满一半,开始读,读的时候每次只读188个数据,然后再在其后添加16 B数据,添加0即可,这样就变成了204个字节的包结构。由于读的速率很快,有可能读空,所以要判断FIFO内部所剩下的数据,当不满188 B时,就插入204 B的空包,这样可以保证速率调整之后的数据是连续的。符号率的设计公式变成:FBAND=B×8×1/2×(N/N-1),只需要改变B及N的值就可以实现符号率的可变。
针对卷积压缩编码速率调整,本文采用重配置DCM[4]与FIFO结合的方式实现,由于调制采用不同的编码率,导致输出的数据速率是可变的,这就使得数据的输出时钟是输入时钟的非整数倍,很难做到小数分频,所以提出了用重配置DCM的方式提供可靠的时钟对应关系。经卷积压缩编码后的数据输出是不连续的,为了便于后续数据升采样的处理,通过一个FIFO将数据打成匀速的。
3 AD9789基本结构[5]
AD9789 包含一个用于器件配置和状态寄存器回读的 SPI(串行外设接口)端口。灵活的数字接口可以适应4 bit~32 bit的数据总线宽度,并且可以接收实数或复数数据,最多可接收4路输入信号。每一路信号最大能经过5级半带插值滤波,插值之后的数据与NCO生成的正余弦信号相乘,再经过通道增益变化,4路信号相加后再通过总增益调整、16倍插值和带通滤波器实现数字上变频,最后经数模转换输出,其原理如图2所示。4个通道的基带处理模块内部结构相同,如图3所示。在本设计中,旁路掉QAM编码器和SRRC滤波器,经过5级半带插值后,通过调节P/Q值,可实现不同符号率的调整。
4 AD9789上变频原理及配置流程[5]
基带信号经过插值后与NCO生成的正余弦信号相乘,从而把基带信号频谱调制到0~fDAC/16之间完成基带调制,即实现图4(a)~图(b)的转换。经过16倍插值滤波器后,形成16个奈奎斯特区,后15个区内的频谱为第1奈奎斯特区基带调制信号的镜像频谱,通过配置带通滤波器的中心频率,可滤除不需要的15个镜像,得到要想的调制信号,如图4(c)所示。AD9789的这种特殊架构,使得输出的调制信号频率范围为0~fDAC,而fDAC最高可达 2.4 GHz,完全可以满足DVB-S标准L波段输出的要求。
AD9789通过SPI接口进行参数配置,配置时钟SCLK不能超过25 MHz。写操作时,在SCLK上升沿有效。读操作时,数据在SCLK下降沿有效。AD9789的配置指令由指令控制字和操作数2部分组成。指令控制字包括 3部分:读写操作指示位、一次读写的字节个数和起始寄存器的地址。如果执行写操作,操作数就是要写入寄存器的值。如果执行读操作,则操作数就是从相应寄存器中读到的值。缺省情况下,SDIO是输入,SDO是输出,读写数据高位在前。
配置AD9789时需要注意,大部分寄存器都是立即更新,但0x16~0x1D,0x22~0x23除外。只有在0x1E[7]为1 后,0x16~0x1D寄存器数据才更新。只有当0x24[7]位由0变为1后,0x22~0x23才更新。0x1E[7]会自动清零,但0x24[7] 不会。为了保证来自FPGA的数据与AD9789的采样时钟相位一致,AD9789内部集成可编程重定时器,使用三级寄存器来实现重定时功能,具体由内部寄存器0x21[2:0]、0x23[7:0]控制。配置AD9789的流程如表1所示。
5 FPGA与AD9789的接口设计
AD9789的工作时钟由ADF4350与ADCLK914联合提供。ADF4350[6]是ADI公司推出的业界首款全集成的频率合成器,内置片上 VCO(压控振荡器)与PLL(锁相环),支持137.5 MHz~4.4 GHz范围内的连续调谐,且支持整数小数分频,具有出色的相位噪声性能,完全可以满足本系统的要求。
ADCLK914[7]是一款采用ADI公司专利的互补双极性(XFCB-3)硅锗(SiGe)工艺技术制造的超快型时钟/数据缓冲器。ADCLK914 具备高压差分信号(HVDS)输出,适合用于驱动ADI最新的高速数模转换器(AD9789、AD9739)。
本系统中,在FPGA内部完成信道编码、星座映射及基带成形。AD9789数据接口总线采用32 bit,LVDS模式,只使用一个通道。所以输入为一路复数数据信号,数据为16 bit的差分信号。根据所选的接口模式,在采样时钟上升沿,采样得到的16 bit数据为I, 在采样时钟下降沿,采样得到的16位数据为Q,调用一个ODDR模块,将基带成形后的I路数据和Q路数据合二为一,以LVDS模式输出,分别与 AD9789的DP[15:0]和DN[15:0]相连。ODDR的工作时钟直接来自DCO,DCO是AD9789数据的采样时钟输出,由FDAC分频产生,具体由内部寄存器0x22[5:4]决定,确保FPGA输出数据和AD9789的数据采样时钟速率相等。
本文详细介绍了DVB_S可变符号率的设计,利用新器件AD9789能实现数字上变频的特性,结合FPGA,提出了一套解决全数字DVB-S射频调制的方案,并给出了配置AD9789的详细流程。结合具体实例,给出了重要参数的设置方法,与传统的射频调制相比,免去对片外混频器和低通滤波器的需求,具有更佳的性能、更低的成本和更好的灵活性,可广泛用于电缆调制解调器系统。