您现在的位置是:主页 > 电路技术 > 数字电路 >


基于ZYNQ 7000的功放数字预失真硬件电路设计及实验验证

2020-06-12 23:27数字电路 人已围观

简介数字预失真技术越来越多的用于解决功放工作在高效率时出现的非线性问题,但是价格较高的硬件阻碍了数字预失真的运用。目前国内外的学者所采用的主芯片都属于高端行列,其在具...

  数字预失真技术越来越多的用于解决功放工作在高效率时出现的非线性问题,但是价格较高的硬件阻碍了数字预失真的运用。目前国内外的学者所采用的主芯片都属于高端行列,其在具有高性能的同时价格都偏高,大家的着重点都放在了如何解决功放非线性的问题上,但是很少有人考虑数字预失真的设计成本。对于一些窄带功放数字预失真应用,使用 ZYNQ 7000 系列的XC7Z020 完全可以满足设计要求,而且相比同等级别运算能力的 Altera Cy-clone V 在价格上要低 50% 左右。为了进行一步降低数字预失真的硬件成本,本文采用 8 层 PCB 的层叠设计,与传统的 12 层 PCB 层叠设计相比,其价格降低了 70% 以上。
  
  本文采用 OrCAD 进行原理图设计,然后利用 Allegro 软件进行 Layout,通过实际的加工生产进行硬件电路的制作,最后编写预失真代码,进行效果测试。实验结果表明,利用 AX7020 可以实现低成本的数字预失真技术,其完全满足功放数字预失真的技术要求。
  

  1方案设计

  
  考虑到目前 12V 直流电源较多,而且在没有交流电提供时可以采用铅蓄电池或锂电池提供电源, 因此选择直流 12V 作为系统供电电源,电源芯片选择TLV62130。系统核心处理器SoC 芯片选择Xilinx公 司 的 XC7Z020,DDR3 选 择 2 颗 4Gb 的H5TQ4G43AFR,以太网选择 RTL8211,串口通信选择 CP2102,JTAG 选择 FT232,eMMC 选择 THGBM-HG7C1LBAIL,数模转换选择 DAC5672,模数转换选择 ADS4246。考虑到 PCB 散热问题,将上述芯片放在 TOP 层利用散热壳体进行散热。
  
  数字预失真系统原理框图如图 1 所示,模拟基带信号通过模数转换器 ADS4264 变成数字信号后传给 XC7Z020,数字预失真算法模块对输入的数字基带信号进行处理。然后将处理后的数字信号传给数模转换器 DAC5672。经过功放后的模拟反馈信号传给模数转换器 ADS4264 转成数字信号,然后传给数字预失真算法模块进行数学建模。
  图 1 数字预失真系统原理框图
  图 1 数字预失真系统原理框图
  
  1.1 原理图设计
  
  首先,需要将 12V 直流电转化为各个模块所需要的 3.3V、1.8V、1V 等电源。由 XC7Z020 的数据手册,我们可以得知,SoC 的 PS 部分和 PL 部分对上电或断电顺序以及复位都有要求。
  
  对于 PS 部分也就是内置的 Cortex A9 处理器,上电顺序要求为: 推荐上电顺序为 VCCPINT,VCC- PAUX,VCCPLL 一起上电,然后 VCCO( 包括 VCCO_ MIO0、VCCO_MIO1,VCCO_DDR) 上电,断电的顺序相反。如果 VCCPAUX,VCCPLL 以及 VCCO 具有相同电压,那么他们可以用相同的电源供电,建议 VC- CPAUX 与 VCCPLL 使用相同的电源并在电源线上使用氧化铁材质的磁珠。PS_POR_B 作为复位输入引脚,复位时此引脚一直为低电平,直到所有 PS 部分电源稳定在规定的范围内。此外,在 PS_CLK 稳定运行 2000 个时钟之前,PS_POR_B 必须保持在低电位。
  
  PL 部分也就是现场可编程门阵列 FPGA 部分, 推荐上电顺序为: VCCINT 最先上电,接着是 VC- CBRAM,然后是 VCCAUX,最后是 VCCO。断电的顺序则相反。PS 部分与 PL 部分的供电是相互独立的没有时序上的要求,其它具体的细节可以参考数 据手册。
  图 2 Bank0 供电
  图 2 Bank0 供电
  
  XC7Z020 有很多 Bank,综合设计需求分别设置供电电压: Bank13、Bank34、Bank35、Bank500 为 3.3V,Bank501 为 1.8V、Bank502 为 1. 5V,针 对 Bank0,其供电如图 2 所示。由 XC7Z020 的上电顺序及各个 Bank 所供电压值可以得到与 XC7Z020 相关的电源模块设计方案。
  
  由芯片数据手册可知,AD 模块、DA 模块、JTAG模块等可采用 3.3V 供电,由此可以得到整个电路设计中的电源模块供电方案,其中 1.0V 电源模块电路如图 3 所示,1.8V、1.5V,3.3V 等电路与 1. 0V电路结构类似。图 3 电路输入为 12V,其输出电压计算公式如( 1) 所示,当 1.0V 稳定输出后 PG 引脚会由原来的低电平变为高电平,其可以作为其他电源的使能,这样便可实现上电的顺序不会混乱。其输入电压范围为 4V 到 17V,其输出电压范围为 0.9V 到 5.0V,最大输出电流可达 3A,有短路保护和过温保护,其它芯片参数如电感的感值,去耦电容的容值等参数可以查看数据手册。
  
  公式1
  图 3  1.0V 供电电路设计
  图 3  1.0V 供电电路设计
  
  如图 2 所示,XC7Z020 具有 JTAG 模块,可以使用 FT232 进行 JTAG 通信,方便代码调试等工作,其电路图如图 4 所示。FT232 是一个单通道高速USB2.0 转串口芯片,也可以通过参数配置将其配置为其他工业标准的串行或并行接口,如 USB 转JTAG、USB 转SPI、USB 转I2C 等。为了节省PCB 布板空间与降低硬件成本,可以考虑将 FT232 模块单独作一个 PCB,仅需在此 PCB 上预留接口即可。同理,千兆网模块、UART 模块也可以单独作为一个PCB,在此 PCB 上预留接口即可。
  图 4 JTAG 模块电路图
  图 4 JTAG 模块电路图
  
  数模转换器 DAC5672 可以转换两个通道,每个通道 14bit,每个通道有独立的时钟输入,最高速率高达 275MSPS。需要注意的是,从 IOUTA 与 IOUTB的布线图( Layout) 走线要作 50 欧阻抗匹配,不仅数字地与模拟地要分开,数字电源与模拟电源也要开分。其单端供电电压为 3V 到 3.6V,在 5MHz 时最高无杂散动态范围为 84dBc。片上参考电压 1. 2V,最低功率 330mW。其原理图设计如图 5 所示。
  图 5 DA 模块电路图
  图 5 DA 模块电路图
  
  AD 模块电路图如图 6 所示,其功能为: 将一个输入的模拟信号转换成一个 14bit 的数字信号。数字电源与模拟电源都为 1. 8V,但是要分开供电,数字地与模拟地也要分开以减少数字地对模拟地的影响。
  图 6 AD 模块电路图
  图 6 AD 模块电路图
  
  本设计的 DRAM 选择两颗 DDR3,每颗 DDR3大小为 512MB,共计 1GB。DDR3 在布线时要注意阻抗匹配、数据线与地址线等长等问 题。单颗DDR3 原理图设计如图 7 所示。
  
  1.2  印制电路布线图( PCB Layout) 设计
  
  在完成原理图设计后,生成网表,将网表导入到Allegro 中。在元件布局之前,还要做层叠设计,层叠设计的目的是做阻抗匹配,默认阻抗设计应为 50 欧,差分线的阻抗设计默认为 100 欧。计算出线宽与线距后在约束规则管理器中进行设置。基于制造 成本的考虑,本文采用 8 层 PCB 的层叠设计,第 1 层为顶( TOP) 层,第 2 层、第 5 层为接地( GND) 层,第 3 层、第 4 层及第 6 层为信号层,第 7 层为电源( POWER) 层,第 8 层为底( BOTTOM) 层。其层叠结构如图 8 所示。
  图 7 单颗 DDR3 模块电路图
  图 7 单颗 DDR3 模块电路图
  图 8 8 层 PCB 层叠结构
  图 8 8 层 PCB 层叠结构
  
  对于一些数据线、地址线等需要做等长处理的网络,新建一个类或者一个匹配组,布线时做等长处理。对于等长线,信号线与信号线之间的距离设置为 3 倍线宽。对于时钟线等关键信号线,线间距设置为 4 倍线宽。对于 BGA 封装的元件需要做区域约束,对其线宽以及线间距进行相关设置。
  
  设置好线宽、线间距等约束规则后可以对元件进行布局,布局时可以使用 ROOM 属性进行布局,布局不仅需要考虑电磁兼容( EMC) 问题,还需要考虑生产的可行性,元件的散热等等。元件顶层布局如图 9 所示。
  图 9  PCB 顶层布局
  图 9  PCB 顶层布局
  
  布局完成后,就可以进行布线图( Layout) 设计了。首先走关键信号线,如时钟线、复位线等,在走线时也可以关闭不相关的飞线,对于需要做扇出( Fanout) 处理的 BGA 封装区域优先开始走线,对于一些可以交换引脚顺序的元件可以使用 Swap pin 功能。走线完成后的布线图如图 10 所示。
  图 10  印制电路布线图( PCB Layout)
  图 10  印制电路布线图( PCB Layout)
  图 11  PCB 贴片
  图 11  PCB 贴片
  
  走线完成后,需要对电源和地做敷铜处理。然后,生成光绘文件、钻孔文件等生产加工文件。在CAM350 中打开,进行相关的设计检查,如最小线宽检查、最小线距检查、钻孔文件检查等等。检查无误后提交给印制电路( PCB) 生产商加工。
  
  1.3 表面贴装( SMT)
  
  将生产加工回来的PCB 进行SMT 贴片,贴片完成后的电路板如图 11 所示。将接插件焊上,上电前进行各个功能模块短路、开路等实验,测试无误后加载 12V 直流电源进行硬件调试。连接 JTAG 进行JTAG 调试,编写简单程序测试 PL 与 PS 是否可以正常工作,如图 12 所示,其他模块调试方法类似。
  图 12 JTAG 模块调试
  图 12 JTAG 模块调试
  

  2验证测试

  
  为了验证硬件设计的完整性,我们将该功放平 台用于短波功放的数字预失真线性化实验。首先对 各个功能模块进行测试,保证其正常工作,然后将将 数字预失真程序固化到 eMMC 中。在 SOC 芯片XC7Z020 上电后,首先执行片内 Boot ROM 代码,读取 Boot mode,从 eMMC 中加载 FSBL 到片内存储器中,并将执行权交给 FSBL,FSBL 初始化 CPU,串口, SD 卡控制器等,加载 Bootloader、Kernel、文件系统和应用程序。最后,加双音信号进行线性化实验验证测试,中心频点选为 15.644Mhz,测试信号带宽 3KHz。采用数字预失真线性化前后的测试结果如图 13 所示,其中蓝色的曲线为没有预失真的双音信号输出频谱,粉红色曲线为使用数字预失真后的 双音信号输出频谱,由图可见,其三阶交调输出有 20 多分贝的改善。
  图 13 双音信号数字预失真结果对比
  图 13 双音信号数字预失真结果对比
  

  3总结

  
  采用 ZYNQ 7000 系列的 XC7Z020 加 8 层 PCB层叠设计,完全可以实现短波功放数字预失真,其硬件成本可以降低 50% 以上。对于其它频段的大带宽功放,可以参考本文的设计方法,采用 ZYNQ 7000 系列的其他 SOC 芯片进行设计与实验。

Tags:

标签云