ARTICLE DETAIL

资讯详情

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

频率可编程收发器实战:从选型、调试到PCB布局全解析

频率可编程收发器实战:从选型、调试到PCB布局全解析 先说说我为什么想写这个题目。近两年我一直在折腾无线数据采集和物联网网关相关的板卡几乎每个项目里都少不了频率可编程收发器Frequency-Programmable Transceiver这颗核心器件。以前用固定频点的射频芯片一个频段就得换一块板子改版改到怀疑人生。后来换成可编程的方案频率靠寄存器配置就能动硬件改动的量瞬间小了很多。这篇文章我想把自己在这类器件上的选型经验、调参思路和踩坑记录整理出来给正在做射频相关设计的朋友做一个参考。适合看这篇内容的人我大概分三类一是准备选型但还没定方案的硬件工程师二是手里已经拿到了 AD9361、CC1120、SI4463、ADF4351 这类频率可编程收发器、正在啃 datasheet 的开发者三是做软件定义无线电或者多频段网关想搞明白内部频率合成和收发链路怎么配合的人。如果你只是刚接触射频也不用担心我会把里面关键的原理掰开讲尽量不堆公式用实际场景把逻辑说清楚。1. 频率可编程收发器的整体设计逻辑1.1 为什么非要“可编程”固定频点不行吗早期做无线设备收发器的频率往往是出厂就定死的。晶振多少兆、VCO 工作在哪个频段、SAW 滤波器中心频点多少都在生产环节就焊死了。好处是单点性能可以做到极致坏处是灵活性基本为零。你要改一个频段意味着换晶振、换滤波器、重新调匹配甚至重新画 PCB整个周期拉得非常长。而频率可编程收发器的思路是射频前端用宽带设计频率选择交给内部频率合成器去动态配置。你通过 SPI 或者 I2C 写入一组分频比和配置字芯片内部的锁相环就会把 VCO 锁到你想要的频点上。同一颗芯片上一秒跑 433MHz下一秒切到 915MHz硬件上什么都不用动。这在多频段和跳频场景里价值非常大。我做过一个多频段网关需要在 470MHz 到 510MHz 和 863MHz 到 928MHz 之间切换以前最少要两套射频前端现在一颗收发器就能覆盖。另外在抗干扰的场景里跳频通信要求快速切换频率这种能力也只有可编程方案才能提供。1.2 频率合成器的三种主流实现路径频率可编程收发器的“可编程”能力核心在频率合成器。目前主流方案有三种整数分频锁相环Integer-N PLL、小数分频锁相环Fractional-N PLL和直接数字频率合成DDS。整数分频 PLL 结构最简单输出频率是参考频率的整数倍。它的好处是杂散性能好相位噪声也比较可控但频率分辨率受限于参考频率。比如参考频率是 10MHz那输出频率就只能以 10MHz 为步进想要精细调谐就很困难。小数分频 PLL 在反馈路径里加入了小数分频器可以实现任意频率输出。代价是引入了小数杂散需要靠抖动抑制电路和环路滤波器来压。现在主流射频收发芯片基本都是这种结构比如 AD9361 内部就是小数分频加整数分频混合的设计。DDS 则是另一种思路它直接在数字域生成正弦波的相位累加值再通过 DAC 转成模拟信号。频率切换速度极快分辨率极高但输出频率上限受限于 DAC 采样率一般做到几百兆赫兹就到顶了更适合做信号源或者作为 PLL 的参考源来用。我在实际项目里很少只用单一技术。比如做宽带收发器时会用一个小数分频 PLL 做本振再用 DDS 做精细的频率偏移补偿。这样既能覆盖宽频段又能保证频率分辨率。1.3 收发链路的整体架构怎么搭一颗完整的频率可编程收发器内部通常包含发射链路、接收链路、频率合成器和控制接口四大部分。接收链路一般是 LNA低噪声放大器、混频器、基带滤波器和 ADC 的串联发射链路则是 DAC、基带滤波、上变频混频器和 PA功率放大器的串联。设计时我最关注的是“收发共用本振”这件事。因为收和发通常是分时工作的本振可以复用。收发切换时本振不能重新锁定否则切换时间会非常长。好的芯片内部会把本振保持在锁定状态只切换收发通路这样从 TX 切到 RX 的时间能做到几十微秒级别。另外射频前端的匹配网络也很关键。宽带收发器为了覆盖多个频段匹配网络必须做成宽带或者可切换的窄带。我做过一个项目为了覆盖 400MHz 到 1GHz前级匹配用了电阻反馈放大器结构牺牲了一点增益换来了平坦的宽带响应。这种取舍在设计早期就要想清楚。2. 核心模块细节与关键参数解读2.1 锁相环的环路参数怎么定锁相环是整个频率可编程收发器的核心。它的基本结构是鉴相器比较参考时钟和分频后的 VCO 输出产生误差信号经过环路滤波器滤波后控制 VCO 的调谐电压让 VCO 输出稳定在目标频率上。配置 PLL 时我最先算的是分频比和鉴相频率。假设参考时钟是 40MHz目标输出是 2.4GHz反馈分频比 N 就是 60。如果是小数分频输出频率可以写成 N.F 乘以鉴相频率比如 59.8 乘以 40MHz 等于 2.392GHz。这个计算是每次配置的起点错一个数字输出就跑偏了。环路带宽的选择直接影响切换速度和相位噪声。带宽越大锁定越快但抑制 VCO 相位噪声的能力越弱带宽越小输出信号更干净但锁定时间会变长。工程上我一般取鉴相频率的 1/10 到 1/20比如鉴相频率 40MHz环路带宽放在 2MHz 到 4MHz 之间。对于需要快速跳频的应用可以临时把环路带宽调大锁定后再切回窄带模式这是很实用的技巧。环路滤波器通常用三阶无源滤波电容电阻值芯片手册里会有参考设计。我建议不要随意改动参考值因为 PLL 的相位裕度和稳定性对滤波器的极点位置很敏感。实在要改先用仿真工具算一遍别直接上板试。2.2 接收灵敏度与发射功率的平衡收发器接收链路的灵敏度取决于噪声系数、带宽和解调门限。频率可编程收发器的 LNA 通常有多档增益可配比如高增益、中增益、低增益和旁路。AGC自动增益控制算法会动态调整 LNA 和基带增益防止强信号饱和。发射链路这边可编程收发器大多数不带外部 PA只能输出到 0dBm 甚至更低。真正要到 20dBm 以上需要在外部接功率放大器。这里有一个很关键的点PA 的非线性会产生谐波和互调产物这些杂散会串回接收机降低灵敏度。所以收发共用天线时必须用 T/R 开关做隔离必要时加一个 SAW 带通滤波器把发射带外的噪声滤掉。我吃过一次亏发射功率从 10dBm 加到 20dBm接收灵敏度直接掉了 5 个 dB排查到最后是 PA 的二次谐波从电源地串进了接收前端。后来在 PA 电源和地之间增加了铁氧体磁珠和更大的去耦电容问题才解决。2.3 控制接口和寄存器配置的坑频率可编程收发器一般通过 SPI 或 I2C 配置寄存器。看似简单但寄存器数量动辄几百个配置顺序错了就可能不工作。我习惯的做法是先把芯片手册里的初始化序列完整跑一遍确认基础通信没问题再逐步修改需要调整的寄存器。写寄存器的时候要特别留意“写入后生效”的类型。有些寄存器是立即生效有些要等一个 soft reset 或要配合其他寄存器一起写才生效。我遇到过一种情况改了频率配置字但输出频率一直不变查了半天发现频率更新需要先把一个 update 位拉高写入新值后再拉低芯片才会重新计算锁相环参数。另外控制接口的时序也很容易出问题。SPI 时钟频率太高、时序不满足建立保持时间就会出现随机性的配置错误。我建议 SPI 时钟先从 1MHz 开始验证稳定后再逐步提高。不要一上来就跑芯片支持的最高时钟否则出了问题很难判断是逻辑错还是时序错。2.4 电源设计对射频性能的影响频率可编程收发器对电源噪声极其敏感尤其是给 VCO 供电的那路。VCO 的调谐电压只要有一点点纹波输出频率就会产生明显的杂散和相位噪声恶化。所以我设计中会单独用一颗低噪声 LDO 给射频模拟部分供电数字部分和 IO 供电再做隔离。电源域在芯片内部通常分为模拟、数字、收发器供电和 PLL 供电几个部分。每个电源引脚都要单独去耦别想着共用一颗电容就把所有引脚都搞定。我一般每个电源引脚都放 100nF 高频去耦电容再配合一颗 10nF 和 1uF 做中低频去噪最后在进入芯片前再放一颗铁氧体磁珠。用示波器看 VCO 供电的纹波时要留意探头本身会引入噪声。我习惯用短地线的弹簧探头带宽限制在 20MHz 以内先测出基准噪声再对比装上芯片后的噪声才能真实反映电源质量。3. 从选型到调试的完整实操流程3.1 先拆需求再选芯片别反过来我见过很多人先选了一颗热门芯片再根据芯片规格来凑需求这是典型的反向操作。正确的顺序是先把需求拆清楚工作频段是哪些、信道带宽多大、接收灵敏度要多少、发射功率要到多少、切换时间容忍多少毫秒、功耗上限多少。举个例子如果是做 Sub-1GHz 的远距离物联网节点CC1120 或者 SI4463 这类低功耗窄带收发器就足够功耗做到几十毫安灵敏度能做到 -120dBm 级别。但如果你要做宽带跳频电台这类芯片就不够用了得选 AD9361 或者 ADRV9002 这种宽带收发器。选型时除了看射频参数还要注意控制接口的方便程度、官方驱动是否完整、参考设计的可复用性。芯片再强资料少、生态差开发周期会拉长好几倍。我宁可选性能稍弱但文档齐全的方案。3.2 频率配置寄存器实操示例以一颗典型的小数分频收发器为例配置逻辑一般分这几步复位芯片、配置时钟管理、配置频率合成器、配置收发链路、校准、使能收发。下面是一个简化的配置伪代码流程// 1. 复位 spi_write(REG_RESET, 0x01); delay_ms(10); // 2. 配置参考时钟 spi_write(REG_CLK_CONFIG, 0x03); // 片上振荡器40MHz参考 spi_write(REG_CLK_DIVIDER, 0x02); // 参考分频 2鉴相频率 20MHz // 3. 配置频率合成器 uint32_t f_target 2400000000; // 2.4GHz uint32_t f_pfd 20000000; // 20MHz uint32_t n_fractional (f_target * (1 16)) / f_pfd; spi_write(REG_PLL_DIV_INTEGER, n_fractional 16); spi_write(REG_PLL_DIV_FRACTIONAL, n_fractional 0xFFFF); // 4. 校准使能 spi_write(REG_CALIBRATION_EN, 0x01); while (!(spi_read(REG_STATUS) 0x01)) { // 等待校准完成 } // 5. 使能收发 spi_write(REG_TX_ENABLE, 0x01);这段伪代码做了几个关键事把小数分频的分子分母写入对应寄存器启动 VCO 校准等待状态寄存器确认锁定再使能发射。真正的芯片寄存器地址和位定义会不同但流程是通用的。配置频率的关键就是把目标频率换算成整数分频比和小数分频比。整数分频比 目标频率 除以 鉴相频率 的整数部分小数分频比 余数 除以 鉴相频率 再乘以 2 的小数位宽。这里最容易出错的是小数位宽不同的芯片位宽不一样有 16 位、有 20 位换算公式要严格按照手册来。3.3 校准流程为什么要每次开机都做频率可编程收发器内部的 VCO 和滤波器会随温度、电压和工艺变化产生漂移。芯片出厂时有一些默认校准值但实际工作时环境变了必须重新校准才能保证频率准确。我在项目中把校准分成两步上电初始化时做一次完整的 VCO 校准之后每次切换频率如果跨度超过 100MHz也强制重新校准。这样做的原因是VCO 有多个频段每个频段的压控增益不同跨界切换后如果不重新校准可能导致调谐电压偏移出现失锁或者相位噪声恶化。校准期间不能发射数据所以它会影响系统的启动时间。如果产品对启动时间很敏感可以在出厂测试时把校准结果存到非易失区上电直接加载这样能省掉几百毫秒的校准时间。这个技巧在做电池供电的节点设备时非常实用。3.4 PCB布局与射频走线的实测心得频率可编程收发器的 PCB 布局直接决定最终射频性能。我总结了几个必须遵守的点第一参考晶振要紧贴芯片的参考时钟引脚走线尽量短周围不要有开关电源走线。晶振的电源要单独滤波否则参考时钟的抖动会直接变成输出信号的相位噪声。第二射频走线要做 50 欧姆阻抗控制相邻层要有完整的地平面。走线尽量短减少过孔一个过孔在 2.4GHz 大约会引入 0.5dB 的插损。第三收发天线端口要对地打一排过孔把回流路径缩短防止高频信号耦合到其他区域。我上一次做 2.4GHz 收发板第一次打样因为射频走线跨了地平面分割S11 实测只有 -8dB怎么调匹配都上不去。后来重新调整走线让整个射频链路都在同一个地平面上S11 一下子到了 -20dB。这类问题在原理图上完全看不出来必须在布局阶段就规避掉。4. 常见问题与排查技巧实录4.1 频率锁定失败的典型原因频率锁定失败是频率可编程收发器最常遇到的问题表面现象是接收不到信号或者频谱仪上看到输出频率严重偏移。排查时我一般按下面这个顺序来先查参考时钟是否正常。用示波器测量参考晶振输出确认频率和幅度符合要求。晶振不起振、起振不稳、幅度不够都会导致 PLL 无法锁定。接着查 SPI 配置是否写入成功。读回寄存器对比写入值和读回值是否一致重点看分频比和配置使能位。再查锁相环锁定状态位。如果状态位一直不置位说明环路没有锁定可能是环路滤波器参数不对。我遇到过一次很难查的问题参考时钟正常、寄存器配置正确、锁定状态也显示锁定但输出频率还是偏了 50kHz。最后检查发现是 VCO 校准没做芯片用了默认的频段校准值在低温下偏得太远校准一次就恢复正常了。下面是常见锁定问题的速查表现象可能原因排查方向输出频率完全不对分频比算错或未生效读回寄存器核对计算公式输出频率偏移几十kHzVCO 未校准强制重新校准SPI 配置失败时序不满足或片选控制异常降低 SPI 时钟检查时序偶发性失锁电源纹波过大检查 VCO 供电去耦温度变化后失锁校准未跟上温度变化加温补校准机制4.2 杂散和相位噪声超标怎么办频谱仪上看到输出信号旁边出现额外的谱线就是杂散。杂散来源很复杂最常见的是参考杂散和电源杂散。参考杂散出现在鉴相频率的整数倍偏移处比如鉴相频率 20MHz那在 ±20MHz、±40MHz 处都可能有杂散。压制参考杂散的方法一是加大环路滤波器的抑制能力把滤波器带宽收紧让 PLL 对带外杂散的衰减变大二是提高鉴相频率让杂散离信号更远远端杂散更容易被滤波器滤掉。这两个方向有时互相矛盾需要根据系统需求找平衡点。相位噪声则是频谱仪上看到信号底部变胖、边带变高。相位噪声的恶化通常和参考时钟质量、VCO 供电噪声、环路带宽设置有关。我测过一颗芯片参考时钟从普通晶振换成低相噪温补晶振后1kHz 偏移处的相位噪声改善了大概 3 到 5dB。所以器件选型时别省钱省在参考时钟上它直接影响整机指标。4.3 收发切换瞬间的毛刺问题做时分双工系统时收发切换的瞬间如果产生毛刺接收机可能会被自己干扰。这个现象尤其在发射刚关断、接收刚打开的窗口期出现。排查时我一般会看两点一是 T/R 开关的控制时序有没有足够的死区二是基带 AGC 的收敛时间够不够。T/R 开关的切换速度和收发器内部本振的稳定时间是两个概念。收发器内部本振在切换期间要保持锁定但外部 T/R 开关如果切换太快发射功率还没泄放完残余功率就会进入接收机。我通常把 T/R 控制的死区时间设为 5 到 10 微秒让发射链路彻底关断后再打开接收通路。另外接收机 AGC 如果收敛太慢切换后前几个数据包会因增益不对而丢包。解决办法是在数据帧头加一段训练序列在序列期间完成 AGC 收敛。这个做法在无线通信协议里很常见但很多人一开始没想到导致误认为是硬件切换问题。4.4 发射功率异常和接收灵敏度下降的联合排查发射功率上不去和接收灵敏度差看似是两个独立问题实际上经常同源。我做过的项目里有过一次是天线匹配网络焊错导致驻波比变大发射功率反射回来收发器内部检测到过功率保护自动降低了发射功率。同时反射功率通过空间耦合进入接收机灵敏度也下降了。排查这类问题不能只看单一指标。我的经验是先测天线端口的驻波比再用频谱仪直接测量收发器芯片输出的实际功率确认是不是天线链路的问题。如果芯片输出正常但天线口功率低那问题在匹配网络如果芯片输出本身就低那问题在芯片配置或电源。天线匹配的调试我习惯用矢网看史密斯圆图。先把匹配网络的元器件全部调成设计值再逐段确认。有时候一颗电容的容值偏差就能让匹配从 -20dB 恶化到 -10dB。5. 实操中的心得体会与后续扩展建议5.1 调试频率可编程收发器要有一套自己的工具链调试这类芯片光靠一块开发板是不够的。我常用的工具包括一个频谱仪、一个信号源、一个示波器和一个矢量网络分析仪。频谱仪用来确认输出频率和杂散信号源用来测试接收灵敏度和镜像抑制示波器主要看控制时序和电源纹波矢量网络分析仪用来调天线匹配。如果预算有限可以按优先级来频谱仪是必须的没有它你完全不知道频率对不对示波器也建议有因为控制时序和电源纹波太重要了信号源可以往后放接收链路的初步调试可以先用信号发生器替代或者用另一块同型号收发板做对发。矢量网络分析仪前期可以先不买天线匹配用频谱仪加反射桥也能测个大概。软件方面芯片厂商一般都会提供寄存器配置工具比如 ADI 的 IIO Oscilloscope、TI 的 SmartRF Studio。这些工具能在开发初期帮你快速验证硬件是否正常也能生成配置代码模板。但要注意这些工具生成的配置通常是通用参数真正到系统联调阶段还是要根据自己的需求手动调整部分寄存器。5.2 频率切换时间的优化思路如果系统要求快速跳频频率切换时间是核心指标。切换时间由三块组成SPI 配置写入时间、PLL 重新锁定时间、校准时间。SPI 写入时间可以通过只改写必要的寄存器来缩短不必每次都把所有配置全写一遍。PLL 重新锁定时间可以通过调整环路带宽来压缩。前面提到锁定后可以把环路带宽切到宽带模式快速拉入锁定然后再切回窄带模式做滤波。这个“变频-宽带锁定-窄带运行”的三步流程在跳频系统中非常常用。校准时间比较难压缩因为 VCO 校准是芯片内部硬件的固定流程。如果切换频率在同一个 VCO 频段内可以跳过校准这样能省下大部分时间。我做过一个项目频率在 2.4GHz 到 2.483GHz 之间跳整体跨度都在 VCO 的同一频段内切换时间做到了几十微秒。跨越频段需要重新校准时切换时间就放大到几百微秒。5.3 后续往软件定义无线电方向扩展频率可编程收发器做扎实之后很自然就能往软件定义无线电方向走。因为硬件已经支持宽频段可编程剩下的就是基带信号处理部分。你可以在 FPGA 或者高性能 MCU 上实现调制解调、跳频序列、信道编码这些逻辑把射频部分彻底黑盒化。我个人的体会是频率可编程收发器改变的不仅是硬件设计方式更是整个研发流程的思维方式。以前改一个频率要动硬件、动版图、重新打样现在改一个寄存器就能完成研发迭代的速度完全不在一个量级。希望这篇文章能帮你少踩一些我踩过的坑。
返回列表