ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

ADRV9026 4T4R射频系统从零搭建:JESD204B链路配置与多通道同步实战

ADRV9026 4T4R射频系统从零搭建:JESD204B链路配置与多通道同步实战 1. 为什么4T4R射频系统值得从ADRV9026开始折腾如果你正在看ADRV9026这颗芯片大概率你已经翻过ADI那本上千页的数据手册也大概率已经被JESD204B的链路配置、多芯片同步、通道校准这些概念绕得有点晕。我最初接触这颗芯片的时候手上只有一个需求搭一套能跑起来的4T4R射频系统四个发射通道、四个接收通道同时工作带宽要够宽通道间相位要一致。听起来不复杂但从零开始把板子点亮、把链路跑通、把数据对齐中间踩的坑足够写满一个笔记本。ADRV9026是ADI出品的一款高度集成的射频收发器单芯片覆盖4个发射通道和4个接收通道频率范围从几百兆到6GHz通道带宽可以做到200MHz以上。它内部集成了本振、混频器、滤波器、ADC/DAC、数字信号处理链路外部只需要配合时钟芯片、电源芯片和FPGA就能构成一套完整的射频前端。相比用分立器件搭射频链路它的集成度省掉了大量匹配和调试工作但代价是配置复杂度大幅上升——寄存器数量多、初始化顺序有讲究、JESD204B链路参数必须和FPGA侧严格对齐。这套系统适合谁如果你在做软件无线电、相控阵原型、MIMO通信验证、雷达信号采集这类项目4T4R的架构能给你足够的空间做波束成形、空间复用或者多通道同步采集。但如果你只是想做一个单通道的简单收发那用ADRV9026有点杀鸡用牛刀功耗和配置复杂度都不划算。我写这篇东西的目的很直接把从零搭建4T4R系统的完整路径讲清楚包括硬件选型时容易忽略的细节、JESD204B链路配置的底层逻辑、多通道同步的实际操作方法以及我在调试过程中遇到的几个典型问题和排查过程。文章里涉及的具体参数和步骤一部分来自ADI官方文档一部分来自我自己反复实测后的经验修正你可以在自己的项目里直接参考。2. 硬件架构搭建从芯片选型到电源树设计2.1 ADRV9026的通道能力与外围需求拆解ADRV9026的4T4R不是简单地把四个收发通道塞进一个封装里它在内部做了大量的共享设计。四个发射通道共用两套本振LO四个接收通道也共用两套本振这意味着如果你要做独立的四通道收发本振频率的分配需要提前规划。每个通道有独立的增益控制、相位调整和数字滤波但本振共享带来的约束是同一组LO下的通道必须工作在相同的频段内。发射通道的输出功率典型值在0dBm左右实际输出需要外部加一级PA来推到需要的功率水平。接收通道的输入范围可以通过内部衰减器调整但前端最好加一级LNA来改善噪声系数。这些外围器件的选型会直接影响系统的动态范围和灵敏度不能随便拿一个通用放大器就往上怼。电源方面ADRV9026需要多路供电1.3V给数字核心、1.8V给模拟部分、3.3V给接口电路。每一路的电流需求不同上电顺序也有要求。我见过有人直接用一颗DC-DC把3.3V降到1.3V给数字核心供电结果噪声太大导致EVM指标严重恶化。正确的做法是数字核心用DC-DC预降压再用LDO做后级稳压模拟部分全部用低噪声LDO。2.2 时钟方案的选择与抖动指标的实际影响时钟是射频系统的命脉ADRV9026对参考时钟的抖动要求非常苛刻。如果你用的是JESD204B的Subclass 1模式还需要一个SYSREF信号来做多芯片同步。参考时钟的抖动直接决定了本振的相位噪声进而影响EVM和接收灵敏度。我试过两种时钟方案一种是用一颗普通的晶振直接给ADRV9026提供参考另一种是用专用的时钟芯片比如HMC7044这类做时钟分配和抖动清理。实测下来普通晶振的方案在窄带信号下还能凑合但一旦信号带宽超过20MHzEVM就会明显变差。专用时钟芯片虽然贵但它能把参考时钟的抖动压到100fs以下对宽带信号的支持好很多。SYSREF的处理也有讲究。SYSREF的频率必须是参考时钟的整数分频而且要走等长布线到每一颗需要同步的芯片。如果SYSREF的走线长度不一致多芯片之间的确定性延迟就会对不齐导致通道间相位不一致。我在第一版板子上忽略了SYSREF的等长要求结果四个通道的相位差在±30度左右跳动后来重新布线才解决。2.3 电源树设计与上电时序的实操细节电源树的设计原则是数字部分和模拟部分分开供电大电流路径用DC-DC低噪声路径用LDO。ADRV9026的1.3V数字核心电流大约在2A左右1.8V模拟部分电流在1.5A左右3.3V接口部分电流较小。如果你用线性稳压器直接从5V降到1.3V功耗会非常大芯片会烫得没法摸。我的做法是5V输入先经过一颗DC-DC降到1.5V再用LDO降到1.3V给数字核心1.8V直接用LDO从3.3V降下来3.3V由DC-DC提供。上电顺序方面ADRV9026要求1.3V先上然后1.8V最后3.3V。如果顺序反了芯片内部的ESD保护二极管可能会导通导致电流异常。注意上电顺序不是建议是必须遵守的。我在早期调试时因为电源芯片的使能引脚接错导致3.3V先于1.3V上电芯片虽然没坏但初始化一直失败查了两天才发现是上电顺序的问题。3. JESD204B链路配置从参数计算到FPGA侧对齐3.1 JESD204B的关键参数与ADRV9026的对应关系JESD204B是连接ADRV9026和FPGA的高速串行接口它把ADC/DAC的并行数据打包成串行帧通过SerDes链路传输。配置这条链路需要确定的参数包括链路速率Lane Rate、帧结构Frame、多帧结构Multiframe、通道数L、每帧的采样数M、每个采样的比特数N等。ADRV9026的每个收发通道对应一条或两条SerDes Lane具体取决于你选择的采样率和带宽。以4T4R、每通道200MHz带宽为例ADC采样率通常在500Msps左右DAC采样率在1Gsps左右。如果每个采样16bit那么单通道的数据率就是500M×168Gbps。四条接收通道加起来就是32Gbps需要分配到多条Lane上传输。JESD204B的Lane速率不能超过SerDes的最大能力ADRV9026的SerDes最高支持15Gbps左右。所以你需要根据总数据率来反推需要几条Lane。比如32Gbps的总数据率用4条Lane的话每条Lane跑8Gbps这在ADRV9026的能力范围内。3.2 链路参数计算的实际操作与常见误区计算JESD204B参数时最容易出错的地方是混淆了采样率和数据率的关系。ADC的采样率是500Msps但实际有效数据率取决于抽取因子。如果你在ADRV9026内部做了2倍抽取那么输出到JESD204B的数据率就是250Msps而不是500Msps。另一个容易踩的坑是帧对齐。JESD204B的帧结构必须和FPGA侧的IP核配置完全一致包括每帧的字节数、多帧的帧数、是否使用扰码等。如果两边对不上链路就起不来或者起来了但数据错位。我一般会先用ADI提供的软件工具比如ACE或Transceiver Evaluation Software生成一组推荐的JESD204B参数然后把参数抄到FPGA侧的IP核配置里。但要注意软件生成的参数不一定是最优的有时候需要根据实际布线长度和信号完整性做微调。参数典型值说明Lane Rate8-12 Gbps根据总数据率和Lane数计算M4每帧的采样数对应4个通道N16每个采样的比特数L4Lane数量F2每帧的字节数K32每个多帧的帧数3.3 FPGA侧IP核配置与链路建立过程FPGA侧的JESD204B IP核配置需要和ADRV9026侧完全一致。以Xilinx平台为例你需要配置IP核的Lane数、帧结构、参考时钟频率、是否使用Subclass 1等。配置完成后IP核会通过SYNC信号和ADRV9026进行链路握手。链路建立的过程大致是FPGA拉低SYNC信号ADRV9026检测到SYNC有效后开始发送K码同步字符FPGA的IP核检测到K码后开始对齐帧边界对齐完成后拉高SYNC信号ADRV9026收到SYNC拉高后开始发送实际数据。整个过程如果顺利的话几毫秒就能完成但如果参数不匹配可能会卡在某个阶段反复重试。我在调试时遇到过一个情况链路能建立但数据偶尔会错位。后来发现是SYSREF的时序不满足要求。JESD204B Subclass 1要求SYSREF在参考时钟的上升沿附近保持稳定如果SYSREF的边沿太靠近时钟边沿就会导致确定性延迟不确定。解决办法是调整SYSREF的相位让它落在时钟周期的中间位置。4. 多通道同步与校准让四个通道真正对齐4.1 多芯片同步的确定性延迟概念4T4R系统里四个通道可能分布在两颗甚至四颗ADRV9026芯片上。即使在同一颗芯片内不同通道之间的延迟也可能有差异。多芯片同步的目标是让所有通道的采样时刻对齐这样你在做波束成形或者MIMO处理时通道间的相位关系才是确定的。JESD204B Subclass 1通过SYSREF信号来实现确定性延迟。SYSREF是一个低频的周期信号它的边沿标记了所有芯片的公共时间参考点。每颗芯片在收到SYSREF后会把自己的内部计数器复位从而保证所有芯片的采样时刻相对于SYSREF的延迟是固定的。但“固定”不等于“相同”。不同芯片的SerDes延迟、内部处理延迟可能有差异这些差异需要通过校准来补偿。ADRV9026内部有延迟调整寄存器可以以采样周期为单位调整每个通道的延迟。4.2 通道间相位校准的实际操作步骤相位校准的第一步是确保所有通道使用相同的本振。如果四个通道分属两组LO那么两组LO之间的相位关系是不确定的校准就无从谈起。所以硬件设计时就要规划好LO的分配尽量让需要同步的通道共用同一个LO。第二步是发送一个已知的测试信号比如一个单音信号然后观察四个通道接收到的信号相位差。如果相位差是固定的说明确定性延迟已经建立只需要在数字域做相位补偿即可。如果相位差在跳动说明SYSREF或者时钟有问题需要先解决同步问题。第三步是在数字域做相位补偿。ADRV9026内部有数字上变频和下变频模块可以调整每个通道的相位偏移。补偿值可以通过计算通道间的相位差来得到然后写入对应的寄存器。提示相位校准的精度受限于ADC的采样率和信号的频率。如果信号频率是100MHz采样率是500Msps那么一个采样周期对应的相位是72度。要获得更精细的相位调整需要在数字域做插值或者使用更高的采样率。4.3 增益与直流偏移校准的注意事项增益校准的目的是让四个通道的幅度响应一致。如果通道间的增益差异太大波束成形的方向图会畸变。ADRV9026的接收通道有独立的增益控制可以通过写入增益寄存器来调整。但要注意增益调整会影响噪声系数所以在校准时要兼顾增益一致性和噪声性能。直流偏移校准是另一个容易被忽略的环节。ADC的直流偏移会在频谱的零频处产生一个尖峰如果后续做数字信号处理时没有去掉这个尖峰可能会影响解调性能。ADRV9026内部有直流偏移校正电路可以通过寄存器使能和调整校正范围。我在实际调试中发现直流偏移校正的效果和输入信号的幅度有关。如果输入信号太小校正电路可能无法准确估计偏移量如果输入信号太大校正电路可能会饱和。所以校准时最好用一个幅度适中的测试信号。5. 调试过程中遇到的典型问题与排查路径5.1 链路起不来从SYNC信号开始逐级排查链路起不来是最常见的问题表现是FPGA侧的JESD204B IP核一直报错或者SYNC信号一直处于低电平。排查的思路是从物理层开始逐级往上查。先看SerDes的参考时钟有没有。ADRV9026的SerDes需要一个独立的参考时钟通常是和JESD204B的Lane速率相关的。如果这个时钟没有或者频率不对SerDes根本不会工作。用示波器或者频谱仪测一下时钟引脚确认频率和幅度都正常。再看SYNC信号有没有。SYNC是FPGA发给ADRV9026的如果FPGA侧的IP核没有正确配置SYNC可能一直不动作。用逻辑分析仪抓一下SYNC的波形确认它在链路建立过程中有拉低和拉高的动作。如果物理层没问题再检查JESD204B的参数配置。最常见的错误是Lane速率不匹配、帧结构不一致、或者Scrambler的使能状态不同。把这些参数逐项对照ADRV9026的寄存器和FPGA IP核的配置确保完全一致。5.2 数据错位SYSREF时序与确定性延迟的坑数据错位的表现是链路能建立但接收到的数据偶尔会跳变或者错位。这种问题往往和SYSREF的时序有关。JESD204B Subclass 1要求SYSREF相对于参考时钟的建立时间和保持时间满足一定要求如果SYSREF的边沿太靠近时钟边沿就会导致确定性延迟不确定。排查方法是用示波器同时抓参考时钟和SYSREF的波形观察SYSREF的边沿是否落在时钟的稳定区域。如果太靠近边沿可以通过调整时钟芯片的相位或者增加SYSREF的延迟来改善。另一个可能的原因是SYSREF的频率和参考时钟不匹配。SYSREF必须是参考时钟的整数分频如果分频比不对SYSREF的边沿和时钟边沿的关系就会漂移导致确定性延迟失效。5.3 通道间相位不一致从LO分配到数字补偿的完整链路通道间相位不一致的表现是四个通道接收同一个信号时相位差不是固定的而是随时间变化。这种问题通常有两个原因一是LO不共享二是SYSREF没有正确同步。如果四个通道分属两组LO那么两组LO之间的相位关系是随机的每次上电都可能不同。解决办法是让需要同步的通道共用同一个LO或者使用LO同步技术让两组LO锁定在一起。如果LO已经共享但相位仍然不一致那就要检查SYSREF的走线。SYSREF到每颗芯片的走线长度必须等长否则到达时间不同确定性延迟就对不齐。我在第一版板子上没有做等长结果四个通道的相位差在±30度左右跳动后来重新布线才解决。5.4 接收灵敏度不达标噪声系数与增益分配的优化接收灵敏度不达标的表现是接收小信号时信噪比不够解调误码率高。这个问题往往和噪声系数有关。ADRV9026的接收通道噪声系数在10dB左右如果前端没有LNA整个接收链路的噪声系数就会很高。优化方向是在接收前端加一级低噪声放大器把噪声系数降下来。但LNA的增益不能太高否则会压缩ADRV9026的输入范围导致大信号失真。一般LNA的增益在15-20dB左右比较合适具体要看ADRV9026的输入范围和系统的动态范围要求。另一个影响灵敏度的因素是增益分配。ADRV9026内部有多个增益级包括TIA、PGA、ADC驱动等。如果增益分配不合理某一级增益太高会导致饱和太低会导致噪声贡献过大。我一般会先用ADI的软件工具算一组推荐的增益值然后根据实测的灵敏度和线性度做微调。6. 从点亮到稳定运行系统联调与性能验证6.1 发射通道的EVM测试与优化发射通道的EVM是衡量发射信号质量的关键指标。EVM差的原因可能来自多个方面本振相位噪声、DAC量化噪声、PA非线性、滤波器带内波动等。排查时可以先测基带信号的EVM如果基带EVM很好但射频EVM差那问题就在射频链路。本振相位噪声对EVM的影响在宽带信号下更明显。如果本振的相位噪声在100kHz偏移处是-100dBc/Hz那么对于100MHz带宽的信号EVM可能会恶化到3%以上。改善的方法是选用相位噪声更好的本振源或者使用外部本振输入。PA非线性是另一个常见原因。如果PA工作在饱和区附近AM-AM和AM-PM失真会导致EVM严重恶化。解决办法是让PA工作在回退状态或者使用数字预失真来补偿。6.2 接收通道的灵敏度与动态范围实测接收通道的灵敏度测试方法是输入一个已知功率的小信号测量解调后的信噪比然后反推灵敏度。动态范围测试则是输入一个大信号和一个小信号看小信号是否被大信号阻塞。ADRV9026的接收动态范围在80dB左右如果系统需要更大的动态范围可以在前端加可变衰减器或者使用自动增益控制。自动增益控制的响应时间需要根据信号的变化速率来调整太快会导致增益波动太慢会跟不上信号变化。我在实测中发现接收通道的灵敏度对电源噪声很敏感。如果电源的纹波太大接收灵敏度会明显下降。所以接收通道的电源一定要用低噪声LDO并且要做好滤波。6.3 长时间运行稳定性与温升问题的处理长时间运行稳定性是很多人在实验室调试时容易忽略的问题。实验室里通常只跑几分钟但实际使用时可能需要连续跑几个小时甚至几天。长时间运行后芯片温度会上升温升会导致增益和相位漂移影响系统性能。ADRV9026的功耗在4T4R全开时大约在5W左右如果没有散热措施芯片温度可能会升到80度以上。我的做法是在芯片背面加一块散热片必要时加一个小风扇。如果系统对温度稳定性要求高还可以考虑加温度补偿电路根据温度传感器读数调整增益和相位。另一个稳定性问题是时钟漂移。如果参考时钟的温漂太大本振频率会跟着漂移导致接收信号的频率偏移。选用温漂小的晶振或者带温度补偿的时钟芯片可以缓解这个问题。7. 几个让我印象深刻的踩坑记录第一个坑是电源上电顺序。前面提过我因为使能引脚接错导致3.3V先上电芯片初始化一直失败。这个问题的隐蔽性在于芯片没有损坏只是初始化不成功很容易误以为是配置问题。后来用示波器抓上电时序才发现顺序反了。第二个坑是SYSREF走线不等长。第一版板子上SYSREF到四颗芯片的走线长度差了将近10mm对应的时间差大约60ps。这个时间差在低速系统里可能无所谓但在JESD204B的确定性延迟要求下就是致命的。四个通道的相位差在±30度左右跳动查了很久才定位到走线问题。第三个坑是JESD204B的Scrambler使能状态不一致。ADRV9026侧默认开启了Scrambler但FPGA侧的IP核配置里没有使能结果链路一直起不来。这个问题的排查难度在于两边都有配置项但文档里没有明确说必须一致。后来逐项对照才发现是Scrambler的问题。第四个坑是接收通道的直流偏移校正范围不够。输入信号幅度较大时直流偏移校正电路饱和导致零频处的尖峰无法消除。解决办法是减小输入信号幅度或者扩大校正范围。这个问题的教训是校准时用的测试信号幅度要覆盖实际工作范围不能只测小信号。8. 关于这套系统后续可以怎么扩展如果你已经跑通了4T4R的基本收发下一步可以考虑几个方向。一是增加通道数用多颗ADRV9026级联做到8T8R甚至16T16R这需要解决多芯片之间的同步和校准问题。二是加入数字预失真算法来改善发射EVM这需要在FPGA里实现DPD引擎。三是做波束成形验证用四个通道的相位差来控制波束方向。我个人在实际操作中的体会是ADRV9026的配置复杂度确实高但一旦跑通它的灵活性和集成度是分立方案没法比的。关键是要把JESD204B链路和多芯片同步这两个基础打牢后面的校准和优化才有意义。如果你在调试过程中遇到链路起不来或者相位不一致的问题优先检查SYSREF的时序和走线这两个地方出问题的概率最高。
返回列表