资讯详情

资讯详情

BLE产品RF测试实战:Nordic芯片从研发到量产的关键指标

很多人做BLE产品研发的时候都会有这种阶段固件跑通了手机连得上数据传输正常于是潜意识里觉得RF这一块“应该没什么问题”。等产品真正进了产线或者准备送认证的时候才发现同一批板子的射频指标高低不一有的板子距离砍半有的杂散超标有的频率误差贴着限值走这时候才意识到RF测试是BLE硬件里最容易欠账、又最绕不过去的一环。我最早接手Nordic BLE芯片的RF测试也是被现实教育过的。一款nRF52832产品固件层面跑得顺顺当当结果到了产测阶段发现十几块板子里有三四块TX功率比设定值低了差不多6dB排查了很久才发现是匹配网络里的电容值贴错了。那次之后我把Nordic BLE芯片RF测试从仪器选型、环境搭建、测试项、判定标准到自动化方案完整梳理了一遍这篇文章就把整套思路和实操细节写下来给正在做BLE产品开发、量产或者马上就要送认证的朋友做个参考。1. 为什么BLE芯片一定要做RF测试手机连得上不等于指标达标1.1 RF指标直接决定连接距离、功耗和认证结果BLE产品最容易被“幸存者偏差”骗过。手机连得上、数据能传很多人就觉得RF没问题但实际上一款BLE设备的RF性能好坏最终会体现在三个非常现实的地方连接距离和穿墙能力。链路预算由发射功率和接收灵敏度共同决定。举个例子nRF52840典型发射功率8dBm接收灵敏度-96dBm软硬件配合好可以有100dB以上的链路预算但如果天线匹配失配导致实际辐射功率掉了6dB链路预算就少了6dB对应的室内穿墙距离往往会缩水百分之三四十。手机在旁边能连上是因为距离近、环境好一旦用户真的把设备放到房间另一头或者隔一道墙断连、丢包的抱怨就来了。平均功耗。BLE的低功耗依赖快速完成广播、连接和通信然后立刻睡过去。RF性能差会导致重传率上升每次重传都意味着额外的射频开启时间整机的平均电流就会明显上去。很多“待机功耗怎么都降不下来”的案子最后查出来根本不是睡眠代码的问题而是RF通信反复失败导致系统醒着反复重传。认证和法规。无论出口欧美还是做国内市场蓝牙产品都要过相应的射频法规认证FCC、CE、SRRC都会直接查看发射功率、杂散、频率误差等指标。杂散一旦超标认证直接被退回来返工成本和周期都很难看。所以RF测试不是研发收尾之后才想起来的事它是从原理图阶段就要开始考虑的一条贯穿线。嵌入式软件跑得再好也替代不了射频指标的量化验证。1.2 Nordic BLE芯片的RF测试特殊性Nordic的nRF5系列在BLE市场占有率很高集成度高、SDK完善、文档也全但这不代表RF部分可以躺平。它有自己几个很突出的“脾气”第一芯片集成度高外部匹配元件少但反而是少数的几个电感电容对最终指标影响极大。一颗贴错的电容、一个布局不合理的过孔都会让发射功率和灵敏度明显劣化。元件少意味着排查链路短但也意味着每一步都重要。第二Nordic芯片出厂支持直接进入RF测试模式这一点对产线极其友好。空片通过UART或者USB连上PC用官方工具就能让它发射载波、发射调制信号、接收测试包不用先烧录任何固件。这意味着RF测试可以作为产线的第一道工序不需要依赖应用固件发现问题可以提前拦截。第三片上的射频前端和天线匹配、晶振、电源、PCB布局深度耦合。芯片原厂参考设计的指标是拿官方开发板测出来的你自己的板子layout、晶振选型、电源纹波都会在RF指标上重新“写一遍答案”。这也是为什么同一个芯片不同团队做出来的产品实测性能可以差很多。所以做Nordic BLE芯片RF测试本质上是在验证“芯片你的板级设计”这个整体是否达标而不只是验证芯片本身。2. 测试环境和设备选型传导、OTA与屏蔽箱的取舍2.1 必备仪器清单和预算方案做Nordic BLE芯片的RF测试首先要把仪器和环境配齐。这里列一份我在项目中实际用到的清单按功能和预算两个维度给参考仪器/工具用途推荐型号方向预算参考频谱分析仪TX功率、频率误差、调制特性、杂散扫描Keysight N9020A/N9010ARS FSV系列或国产普源/鼎阳同级中高端占大头信号发生器接收灵敏度测试、路径损耗校准Keysight N5172BRS SMBV100A或支持BLE信号格式的矢量源较大投入功率计可选功率校准基准Keysight N1912A探头或热敏功率计中等蓝牙综测仪自动跑蓝牙RF-PHY全套测试LitePoint IQxelRS CMW500Anritsu MT8852B预算充裕推荐屏蔽箱OTA测试隔离环境、产线隔离干扰鼎阳/思博伦等成熟品牌带天线耦合板中等射频线缆、转接头、衰减器传导测试链路连接注意频率范围到6GHz以上推荐SMA/3.5mm接头消耗品直流电源给DUT供电同时观察电流普源DP832等常规可编程电源较低串口转USB模块连接DUT进入RF测试模式CP2102/FT232等很低如果你的预算只支持先买一台频谱仪加一台信号源研发阶段的RF验证是完全可以做的。产线大批量测试建议直接上蓝牙综测仪速度快、操作简单、报告完整省下的人工和时间成本很快就回本。2.2 传导测试与OTA测试怎么选RF测试按信号路径分两大类传导测试和OTA测试。传导测试是把DUT的射频引脚通过线缆直接接到仪器上不经过天线辐射。这种方式测出来的是“芯片板级匹配网络”的真实射频性能排除天线和空间环境因素重复性好、精度高。研发阶段最推荐这种方式因为一个问题板子值不值得修靠它才有可比对的数据。OTA测试是让DUT用天线辐射信号通过屏蔽箱内的耦合天线由仪器接收。这种方式更接近产品真实使用状态但引入了天线效率、方向性、耦合位置等因素测试重复性对夹具要求极高。产线上如果没有射频测试座或者不愿意加测试座成本就会用OTA方案。实际操作中我的建议是研发阶段传导测试为主OTA为辅。先通过传导测试确认板级RF性能达标再做OTA确认天线整体辐射效率正常。产线阶段优先设计射频测试座预留射频引脚做传导测试速度快且稳定如果产品形态不允许加测试座比如穿戴设备内部空间极小再做屏蔽箱定位治具的OTA方案。2.3 路径损耗校准不做校准等于白测这是RF测试里最容易被忽略、但影响最大的一个环节。无论是传导还是OTA信号从DUT射频引脚到频谱仪之间会经过线缆、转接头、测试夹具、衰减器每一段都有插入损耗。不经校准直接读数测出来的发射功率会偏低而且损耗值往往和频率相关低端频点和高端频点不一样。校准方法很简单把信号源接到DUT端也就是测试链路中本来接DUT的位置频谱仪端保持不变。信号源输出一个已知功率的CW单音信号比如0dBm。在频谱仪上读取实际功率比如读到-1.8dBm那这条链路的损耗就是1.8dB。分别在2402MHz、2440MHz、2480MHz三个频点做同样操作得到每个频点的损耗补偿值。在后续测试软件里把对应频点的补偿值加到测量结果上。需要注意校准完成之后链路里的线缆不要再弯折、不要再插拔转接头否则损耗会变。射频接头建议用扭矩扳手固定避免松动导致接触电阻变化。我见过有同事校准完链路后把线缆重新盘了一下结果同一根线损耗变了0.5dB虽然不大但对一致性要求高的产测来说已经足够影响判断了。3. 进入Nordic RF测试模式从工具链到参数配置3.1 RF PHY工具连接方式Nordic芯片有一个非常好的传统芯片内部固化了一段RF测试引导程序可以让芯片在没有任何应用固件的情况下进入RF测试模式。这个功能对生产测试来说是巨大的便利意味着你不需要先烧录一套测试固件再用这套固件去发射频信号。具体操作上我用的是nRF Connect for Desktop里面的RF PHY工具连接方式有两种USB连接如果板子上预留了USB接口直接用USB线连PC工具会自动识别DUT。UART/串口连接通过串口转USB模块接芯片的UART引脚工具通过串口协议和DUT通信。这里有一个容易踩的坑RF PHY工具连接的是芯片的UART或者USB口不是SWD调试口。我第一次用的时候习惯性把开发板的SWD口接上工具一直识别不到DUT后来才反应过来RF测试走的是串口/USB通信不是调试口的SWD协议。如果你的板子两个接口都有优先用USB稳定性和速度都好一些。3.2 HCI命令和DTM模式除了图形化工具标准蓝牙协议栈还定义了一套Direct Test ModeDTM通过HCI命令控制芯片发射和接收。产线自动化测试的时候用脚本直接发HCI命令比操作图形界面高效得多。Nordic的SoftDevice使能后可以直接通过串口或USB使用标准HCI命令。最常用的几个命令如下HCI_LE_Transmitter_Test (0x001E) 参数 - tx_channel: 0~39对应2402MHz 2MHz * channel - test_data_length: 数据包长度通常设为37字节 - packet_payload: 0x00表示PRBS9伪随机序列0x01表示固定111100000x02表示固定10101010 HCI_LE_Receiver_Test (0x001D) 参数 - rx_channel: 0~39 - modulation_index: 0表示标准调制指数1表示稳定调制指数 - rx_payload: 接收payload类型 HCI_LE_Test_End (0x001F) 说明结束测试并返回接收数据包统计结果如果你的板子没有跑SoftDevice也可以直接用Nordic的串口bootloader协议进入RF测试模式nRF Connect工具底层调用的就是这套协议。差异只在于你是在写自动化脚本还是用图形界面手动测。3.3 测试参数配置细节RF PHY工具里需要配置的参数看着简单但每一项都有讲究通道ChannelBLE一共40个通道0~39对应频率2402MHz到2480MHz。常规产测会选低、中、高三个频点比如通道02402MHz、通道192440MHz、通道392480MHz覆盖频段两端和中间。研发阶段如果要完整摸底建议40个通道全测看有没有个别频点特别差。速率PHYBLE 5.0以后有1M、2M、Coded S2/S8多种PHY。产测至少要覆盖你产品实际使用的PHY。如果产品用了2M PHY做高速传输2M下的发射功率和灵敏度也必须测不能只测默认1M就完事。发射功率档位Nordic芯片支持多档发射功率从-40dBm到8dBm不等。产测一般测最高档位因为最高档位最能反映问题。研发阶段建议扫几个不同档位比如-20dBm、0dBm、4dBm、8dBm看每个档位的实际输出是否在线性范围内有没有饱和或者异常跌落。payload类型测试调制特性的时候通常选PRBS9伪随机序列它模拟真实数据的比特分布如果做特定模式的调制度验证也可以选10101010固定模式辅助分析。测试模式还有一个隐藏用途测电流。让芯片持续发射载波用直流电源观察电流稳定值可以侧面判断PA工作是否正常也能用来做整机功耗的快速筛查。4. 发射端三项核心指标功率、频率误差、调制特性4.1 发射功率实测与匹配网络影响发射功率是最直观、也最容易出问题的指标。用频谱仪测量时建议用信道功率Channel Power方式读取RBW设为1MHz左右VBW可以设成3MHz打开信道积分功能统计整个1MHz带宽内的总功率。Nordic芯片的典型发射功率范围是-20dBm到8dBm以默认配置来说nRF52832的典型最大发射功率约4dBmnRF52840则可以达到8dBm。实际项目里我通常会把产测的判定阈值设成“设定值-3dB以内”比如设定4dBm那实测值只要不低于1dBm就算Pass。设太严会把PCB正常误差范围内的板子误杀掉设太松又达不到质量管控效果。如果某块板子发射功率明显偏低排查优先级排序如下匹配网络元件值是否贴对。2.4GHz频段对容感值极其敏感1.5pF和4.7pF看起来都是小电容但高频下阻抗特性完全不同差一个电容号功率就能掉6dB以上。天线或测试座接触是否可靠。特别是产测中反复插拔的射频测试座时间长了弹片氧化、接触阻抗变大会让传导测试结果偏低。供电是否稳定。PA在最高功率档时电流会冲高如果电源走线太细或LDO压降太大功率就会起不来。4.2 频率误差盯紧晶振频率误差是BLE设备最让人头疼的指标之一因为它往往不是射频链路本身的问题而是晶振系统的映射。蓝牙RF-PHY规范要求的频率误差限值是±150kHz实际做产品我强烈建议把内控标准压在±50kHz以内理由很简单频率偏差过大即使没有超Flag也会压缩相邻信道的接收余量让设备在弱信号场景下更容易丢包。晶振对频率误差的影响是全方位的初始精度晶振本身出厂精度一般做到±10ppm到±20ppm对应2400MHz频段就是±24kHz到±48kHz的偏移。选晶振的时候可以关注这一项。负载电容匹配晶振电路的两个外部负载电容值会影响振荡频率和起振稳定时间。负载电容不匹配时芯片内部频率校准虽然会尝试修正但修正范围有限测出来频率误差就会明显偏大。温漂BLE设备工作环境可能从-20℃到55℃晶振温漂曲线如果比较陡频率误差会在高低温下明显恶化。这也是为什么很多产品做高低温测试时RF指标会不如常温。测频率误差的方法比较简单让DUT发射PRBS9调制的连续包在频谱仪上用解调功能或者直接看中心频率偏移。综测仪会直接给出“Frequency Offset”数值同时区分初始频率误差和频率漂移IE、FE、CFE等项目这些细节能帮你判断是晶振问题还是锁相环Settle问题。4.3 调制特性和载波泄漏的判定调制特性是衡量GFSK信号质量的指标很多人容易忽略但它在认证测试中是必测项。核心参数有两个Δf1avg调制指数相关的平均频偏要求185kHz到370kHz之间且至少80%的符号满足。Δf2max最大瞬时频偏要求至少99.9%的符号峰值频偏大于370kHz。这两个参数反映的是GFSK调制器在数据模式下的频偏控制能力。如果Δf1avg偏低接收端解调的信噪比就会下降如果Δf2max不稳定涉及大跳变的码型就会产生符号间干扰。实际测量用综测仪一键读取没有综测仪的话用高端频谱仪的矢量解调功能也能看。载波泄漏Carrier Leakage要求≤-20dBm它本质上是本振泄漏和IQ不平衡的体现。Nordic芯片的I/Q调制器做得比较扎实正常情况下这个指标会很轻松地通过。但如果你发现载波泄漏异常变差同时伴随发射功率偏低、调制特性不佳那大概率是射频链路出了硬件问题而不是芯片本身的问题。下面是发射端测试项的汇总表格方便后续做测试报告的模板测试项判定限值实测参考nRF52832主要影响因素发射功率设定值±3dB内4dBm设定时实测3~4dBm匹配网络、供电、测试链路损耗频率误差±150kHz建议≤±50kHz典型±10~±20kHz晶振精度、负载电容、温度Δf1avg185~370kHz约250kHz调制器配置、晶振Δf2max至少99.9%符号≥370kHz400kHz调制器、数据码型载波泄漏≤-20dBm典型-35dBm以下IQ平衡、匹配网络5. 接收灵敏度和杂散测试数据链路质量怎么量化5.1 灵敏度测试方法接收灵敏度是BLE设备“能听多远”的核心指标。测试方法用统一定义的数据包格式信号源或综测仪在指定频点以某个功率电平发送标准BLE测试包DUT接收后统计包错误率PER。蓝牙RF-PHY规范的判据是PER ≤ 30.8%对应的测试数据包长度为37字节。操作步骤上信号源设置到指定频点比如通道192440MHz。选择发送数据包类型通常用PRBS9伪随机序列包长37字节。设置发射功率从高往低扫比如从-70dBm开始逐步降到-96dBm、-100dBm。每个功率电平连续发送几百个包统计DUT的PER。找到PER刚好不超过30.8%时的最低输入功率这个值就是该频点的接收灵敏度。Nordic nRF52832在1M PHY下的典型灵敏度约-96dBmnRF52840也基本在这个水平。2M PHY会牺牲几个dB大约-93dBm左右Coded PHY S8由于有编码增益可以做到-103dBm甚至更低。灵敏度测试最容易碰到的问题是“你测的不是DUT而是信号源”。如果信号源产生的BLE信号本身质量差那测出来的灵敏度就会偏“好”——因为信号源在低功率档可能已经有频谱杂散或者调制不干净DUT能解调出来一些假信息。解决方法是先拿一块已知良好的测试板做基准确认测试系统本身没有问题再开始测其他板子。5.2 杂散测试限值和实测杂散发射测试主要为了保证设备在所有工作状态下不会对其他无线系统产生干扰。测试分传导杂散和辐射杂散。传导杂散在DUT射频端口直接测量辐射杂散则在整个空间内扫频测量。限值会因目标市场而不同这里列几个常见的参考值标准测试频段限值FCC Part 15.24730MHz~1000MHz非Restricted Band-20dBm100kHz RBWFCC Part 15.247Restricted Band内-41.3dBm/MHzETSI EN 300 32830MHz~1GHz-36dBm100kHz RBWETSI EN 300 3281GHz~12.75GHz-30dBm1MHz RBW实际测试中杂散超标最常见的两个来源一是DC-DC开关噪声。BUCK变换器的开关频率通常是几百kHz到几MHz它的谐波如果通过电源线耦合到射频前端再和射频本振信号混频就会在2.4GHz频段附近生成杂散频谱成分。排查方法是用频谱仪在DUT发射状态下扫描第三信道旁边的杂散然后把DC-DC的LC滤波参数改一下或者换屏蔽电感看杂散有没有降下来。二是晶振谐波。32MHz晶振的高次谐波如果屏蔽处理不好会在射频频段形成多个离散谱线。这种情况要检查晶振的接地和布局必要时在晶振输出端增加RC滤波。我们曾经遇到一个项目杂散测试发现在2480MHz附近总有超过-41dBm的尖峰排查了芯片配置、匹配网络一圈都没有结果最后用近场探头扫PCB才发现是DC-DC电感的漏磁场直接辐射到了天线区域。把电感从非屏蔽封装换成屏蔽封装之后杂散直接跌了十几dB顺利过认证。5.3 接收端最大输入电平测试还有一个容易被漏掉的接收指标是最大输入电平。规范要求DUT在输入功率达到-10dBm时PER仍然要满足≤30.8%。这个测试的目的是验证接收机在高输入功率下不会因为饱和、压缩而解调失败。实际测试中确实遇到过接收链路增益设置不合理导致高输入功率下灵敏度反而变差的情况特别是如果前端LNA增益档位切换逻辑有问题强信号下会产生互调或者失真。这个指标虽然产测不一定会覆盖但研发阶段最好做一次心里有底。6. 实际踩坑记录与自动化产测思路6.1 几个典型案例案例一匹配网络电容值贴错发射功率掉了6dB。当时产测发现一批板子的TX功率只有-2dBm设定值是4dBm。用VNA矢量网络分析仪看了输入端口的S11和S21发现匹配网络的谐振点明显偏了最终确认是1.5pF电容被贴成了4.7pF。RF匹配网络需要的容值非常敏感产线的首件确认和物料IQC对这种小容值电容必须格外上心。案例二晶振负载电容不匹配频率误差飙升。某项目换了晶振供应商之后频率误差从原来的15kHz一下子变成了120kHz虽然没有顶到±150kHz的Flag但已经严重影响余量。查下来发现新晶振的负载电容CL规格和原晶振不一样而板上外部电容没有同步调整。把外部负载电容从18pF换成10pF之后频率误差回到12kHz。案例三屏蔽箱耦合位置不一致OTA测试复现性差。同一个板子OTA测灵敏度上午测是-90dBm下午测变成-85dBm。检查发现屏蔽箱内没有给DUT设计定位治具板子靠重力放进去每次放的偏转角度和位置都有差异天线辐射方向图和耦合板之间的损耗就变了。后来做了3D打印治具固定DUT位置和天线朝向复测三遍都能稳定在±1dB以内。案例四电源纹波导致灵敏度劣化。一块板子灵敏度比参考设计差了4dB怎么排查都找不到问题。后来用示波器量射频芯片电源引脚的纹波发现BUCK的输出纹波有30mV左右且开关频率落在了BLE中频附近。给BUCK输出增加一级LC滤波、把电感换成屏蔽电感后灵敏度恢复正常。这个案例说明供电质量对射频性能的影响往往比想象中大得多。6.2 自动化产测脚本产线测试如果全靠人工操作频谱仪和信号源不但效率低而且容易出错。我自己的做法是用Python pyvisa库控制仪器DUT侧通过串口发HCI命令切换测试模式一套流程下来单板测试时间可以控制在30~60秒内。下面是一段简化版的发射功率自动化测试示例import pyvisa import serial import time # 仪器初始化 rm pyvisa.ResourceManager() sa rm.open_resource(TCPIP0::192.168.1.100::INSTR) # 频谱仪地址 sa.timeout 5000 # DUT串口初始化 ser serial.Serial(COM10, 115200, timeout1) # 让DUT进入发射模式通道192440MHz4dBmPRBS9 # 这里通过串口发送HCI_LE_Transmitter_Test def set_tx_mode(channel19, power_index4): hci_cmd bytearray([0x01, 0x1E, 0x20, channel 0x3F, 37, 0x00]) ser.write(hci_cmd) time.sleep(0.5) # 配置频谱仪中心频率2440MHzRBW1MHzVBW3MHz sa.write(:FREQ:CENT 2440MHz) sa.write(:BAND 1MHz) sa.write(:BAND:VID 3MHz) # 读取信道功率 def read_channel_power(): power sa.query_ascii_values(:MEAS:CHP?)[0] return power # 执行测试 set_tx_mode(channel19, power_index4) p read_channel_power() print(fTX Power at 2440MHz: {p:.2f} dBm) # 判断Pass/Fail limit 1.0 # 设定4dBm最低1dBm if p limit: print(PASS) else: print(FAIL) # 结束测试 ser.write(bytearray([0x01, 0x1F, 0x20, 0x00])) ser.close()实际的产测软件还要处理扫频、多个频点、极限值判定、序列号记录、数据存储等逻辑但核心框架就是这样仪器用VISA通信DUT用串口发命令数据自动记录到数据库或Excel。6.3 测试数据管理和追溯产测数据一定要做归档而且不要只存Pass/Fail最好把每个测量值都存下来。我习惯的做法是每块板子烧录前先分配一个唯一序列号产测脚本把序列号和所有测试项的实际测量值存到一条记录里包含TX功率、频率误差、调制指标、灵敏度等。后来有一批产品客户反馈连接距离偏短我回头查产测数据发现这批板子的TX功率整体比正常批次低了2dB左右但都卡在判定线以上。顺着这条线索排查才定位到是某种物料批次问题。如果没有存原始数据这种隐性劣化根本无从追踪。最后说一个我自己的习惯RF测试做了这么久我最大的感触是射频指标的问题99%都不是芯片本身的问题而是板级设计、物料、装配、供电这些环节的问题。所以排查问题的时候不要一开始就怀疑芯片先把链路、匹配、晶振、电源这些基础项排干净再往芯片内部想。另外产测数据尽量积累成长期曲线同一款产品生产三个月后的RF数据分布如果比刚开始宽了那往往意味着某些物料在漂移或者劣化提前发现比客户投诉后再追责要省力得多。RF测试不是出厂前的一道闸门那么简单它其实是帮你盯着生产一致性、材料和工艺变化的最灵敏的眼睛。
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →