ARTICLE DETAIL

资讯详情

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

PHY6270超低功耗BLE SoC:功耗账本、选型与端侧AI实践

PHY6270超低功耗BLE SoC:功耗账本、选型与端侧AI实践 1. 从 PHY6270 的功耗账本看起超低功耗 BLE SoC 究竟省在哪样片回来第一件事不是点灯是量电流。这是我做蓝牙 LE 6.1 超低功耗系统级芯片项目时雷打不动的习惯——PHY6270 这类超低功耗 BLE SoC规格书上那些漂亮的微安数字跟你板上实际跑出来的值中间往往隔着一个数量级的差距。而有意思的是这个差距通常不是芯片的锅是设计者的锅。所以聊这颗芯片我不打算从它有多少 GPIO、主频多高开始那是最没信息量的部分。我想先聊它的功耗账本因为超低功耗这四个字才是这一类系统级芯片存在的全部理由。先说清楚适用人群如果你正在做电池供电的无线传感节点、可穿戴、电子价签、资产标签、遥控器或者最近很热的电池供电端侧 AI 视觉模块那这篇内容对你直接有用。如果你只是想做一块插着 USB 的开发板跑个点灯 Demo那随便一颗 SoC 都行超低功耗对你不构成约束条件。功耗这件事只有在续航被用户拿放大镜看的产品里才从优化项变成生死线。提示下面涉及的具体电流数值我给出的都是这一类超低功耗 BLE SoC 的典型区间用于建立量级感。PHY6270 的真实参数请以官方数据手册为准不同批次、不同温度、不同供电电压下都会有出入。用典型值做架构决策用实测值做最终验收这两件事不能混。1.1 三笔账静态漏电、动态运行电流、射频突发电流任何一颗 SoC 的电流消耗都可以拆成三笔独立的账这三笔账的量级差了三个数量级所以优化顺序绝对不能搞反。第一笔是静态漏电也叫休眠电流。这是芯片在深度睡眠模式下CPU 停摆、大部分电源域断电、只有 RTC 和极少量 RAM 保持时的电流。这一类芯片的合理区间在0.5 µA 到 3 µA之间。别小看这几微安它是整个续航的地板——你后面所有的动态优化做得再好也不可能低于这个数。很多项目一开始算出来能用三年结果实测发现休眠电流是 30 µA 而不是 3 µA三年的账瞬间变成三个月。第二笔是动态运行电流CPU 跑起来、外设时钟打开时的电流通常在1.5 mA 到 5 mA每 MHz 的量级取决于工艺和架构。这笔账的特点是它很大但你完全可以控制它开多久。超低功耗设计的核心思路从来不是让它跑得省而是尽量别让它跑。能用 DMA 搬的数据不要用 CPU 搬能在硬件里算的 CRC 不要在软件里循环能靠比较器唤醒的别让 ADC 一直转。第三笔是射频突发电流也是三笔里最大的。2.4 GHz 收发瞬间的峰值电流0 dBm 发射功率下典型在5 mA 到 10 mA接收状态在4 mA 到 8 mA。这笔账的特点是高而短它只持续几百微秒到几毫秒但如果你每秒触发一次那平均下来就是几十微安。把三笔账摆在一起看你会发现一件反直觉的事决定续航的往往不是射频而是休眠电流和第二笔账的开启时长。我见过太多人把精力全花在调连接间隔上结果板子上一个上拉电阻接错或者一个 LDO 的静态电流没查直接吃掉 20 µA前面所有努力白费。1.2 蓝牙 LE 6.1 在链路层上做了哪些省电的事聊蓝牙 LE 6.1得先把一件事说清楚协议版本的迭代对功耗的影响绝大多数发生在链路层和控制器而不是应用层。你写 GATT 服务的方式从 4.0 到 6.1 几乎没变但底层链路管理的机制一直在往用更少的射频时间完成同样的信息交换这个方向走。拿几个实际影响功耗的机制举例。连接参数协商与从机延迟是省电的第一大杠杆主机和从机约定连接间隔和从机可以跳过的连接事件数让从机大部分时间可以关掉射频睡大觉。LE 功率控制允许链路两端根据实际信道质量动态调整发射功率近距离通信时把功率降下来直接省掉射频突发电流里最大的一块。**连接子速率Connection Subrating**这类机制则允许链路在某段时间内把连接间隔临时拉长进一步压低平均电流。蓝牙 LE 6.1 作为较新的核心规范版本芯片厂商在宣传时通常会重点标注协议栈在链路管理效率、抗干扰与低功耗特性上的支持情况。但这里必须提醒一句规范版本号和实际能省多少电之间没有直接公式真正决定结果的是协议栈实现质量、双端设备的协商结果以及你选的连接参数。同一个 6.1 芯片配不同的手机跑出来的功耗曲线可能差一倍因为手机端的连接参数偏好完全不同。所以选型时我的建议是别只看支持 LE 6.1这个标签而是去问清楚三件事协议栈是 ROM 固化还是可配置的、连接参数协商时从机能不能提要求、低功耗模式下链路层是否支持自动维持。这三点比版本号实在得多。1.3 什么时候该上这一类芯片什么时候真的不该超低功耗系统级芯片不是万能药它有自己的甜区。判断标准很简单看你的产品是否长期处于沉睡状态只在极少数时刻被事件触发。如果是,那这一类芯片的价值就能充分发挥。资产标签、无线传感器、门磁、温湿度记录仪、遥控器、电子价签这些场景的共同点是99.9% 的时间在睡觉剩下 0.1% 的时间在干活。芯片的休眠电流直接决定续航射频只负责把事件上报。反过来如果你的应用需要持续音频流、持续图像流、持续高速数据采集那这颗芯片就不对路。持续传输意味着射频长期在线平均电流会直接跳到毫安级再怎么优化也扛不住纽扣电池。这种场景要么接受更大的电池要么换方案——比如本地处理、只上报结论这就是后面要聊的端侧 AI 思路。还有一个容易忽略的判断维度主控的算力需求。如果你的算法需要几十 MFLOPS 的持续算力超低功耗 SoC 的 M 核撑不住强行跑会让动态电流从微安级飙到毫安级功耗模型整个崩掉。这时候正确的做法是让 BLE SoC 只做通信和调度算力活交给专门的协处理器两边用 SPI 或 UART 协作。2. 把 PHY6270 放进真实需求里三张表完成选型取舍绕过一轮选型之后我发现芯片选型最常见的错误不是选错了芯片而是用错了评判维度。大家习惯性地去比主频、比 Flash 容量、比 GPIO 数量这些参数在官网表格里一目了然但它们几乎不决定项目成败。真正决定成败的是另外三张表而且这三张表官方往往不会直接给你得自己从数据手册的字缝里抠出来。我通常在项目启动阶段就画好这三张表把候选芯片填进去。填不满的那一列往往就是后面要栽跟头的地方。2.1 功耗表三个电流数字对应三种真实场景这张表只看三行但每一行都要挖到具体测试条件。电流项同类芯片典型区间必须确认的测试条件深度睡眠电流0.5 µA ~ 3 µA哪些 RAM 保持、RTC 是否运行、是否有掉电检测、温度点连接状态平均电流20 µA ~ 200 µA连接间隔、从机延迟、发射功率、是否含 DCDC射频峰值电流5 mA ~ 10 mA发射功率、供电电压、是否开启内部 DCDC第一个数字是地板它决定了理论续航上限。第二个数字是日常工况它决定了你的产品在待机但连着状态下能撑多久。第三个数字影响的是瞬时压降——这点很多人忽略如果电池内阻大或者走线细射频突发瞬间会把供电拉塌导致复位或者丢包。这里有个细节值得单拎出来说是否内置 DCDC 转换器对功耗表的影响可能是倍数级的。LDO 供电方式下射频峰值电流会明显高于 DCDC 方式因为多余的电压都以热的形式浪费了。选型时如果看到支持 DCDC 模式基本可以认为峰值电流能压下来 30% 到 50%。但代价是外围要加电感电容BOM 成本和板面积要一起算。注意数据手册里的休眠电流经常是在特定条件下测的比如仅 RTC 运行、RAM 全部掉电、25℃。你要用的是RTC 8KB RAM 保持 看门狗开启条件一变数字能翻两三倍。看到手册数字先别高兴翻到测试条件那一页对照你的实际配置。2.2 资源表内存墙决定了你能不能塞进端侧模型第二张表是关于存储和算力的。这一行我要多写几句因为现在做电池供电端侧 AI 视觉模块的人越来越多而 Flash 和 RAM 是这类项目最硬的约束。BLE SoC 的片上 Flash 常见在 256 KB 到 1 MB 区间SRAM 在 32 KB 到 256 KB 区间。听起来还行但你要从里面扣掉协议栈、Bootloader、OTA 分区、文件系统。一颗标称 512 KB Flash 的芯片协议栈吃 150 KBOTA 双分区占掉一半留给你应用逻辑的可能只剩一百多 KB。这个数字对普通应用绰绰有余但如果你打算塞一个哪怕是小型的神经网络进去就会立刻感受到什么叫内存墙。所以看资源表的正确姿势是先把必然开销列出来减掉再看剩下的余量。协议栈占用、OTA 分区策略单分区、双分区还是外挂 Flash、是否有 ROM 化的协议栈可以把 Flash 省下来这三项先问清楚。特别是 ROM 协议栈这一点对成本敏感的产品非常关键能直接把可用的 Flash 空间翻倍。算力方面超低功耗 SoC 的 M 核通常跑在几十到一百多 MHz带 FPU 和 DSP 指令扩展的会好一些。判断标准不是主频多高而是跑一次你的算法要花多少毫秒乘以电流等于多少微安时的电量。这个计算后面第三章会详细展开。2.3 射频与封装表被严重低估的成本项第三张表最容易被跳过但它经常是项目后期最大的变数。射频这块要看的不是支持 2.4 GHz这种废话而是发射功率可调范围、接收灵敏度、是否支持内置巴伦、天线接口形式。发射功率可调很重要因为近距离场景把功率降到 -20 dBm 能显著省电接收灵敏度决定了在噪声环境下的链路余量余量不够就得靠重传补重传就是额外的射频时间。封装和引脚排布则直接影响射频性能。QFN 封装、带裸露焊盘、射频引脚单独引出、周围有足够的地引脚——这些是好的射频设计的前提。如果封装很小但射频引脚旁边挤着几个高速数字引脚那布线时会非常痛苦串扰和辐射都会成问题。还有一个隐性成本认证。射频相关的合规测试是要花钱花时间的芯片本身过没过认证、有没有可复用的参考设计直接决定你后面是省一个月还是多烧一轮。选型阶段问清楚原厂有没有现成的认证参考板、有没有配套的天线设计文件这是实打实省钱的操作。3. 从电池容量反推连接参数一套可以手算的功耗模型选型定下来之后真正决定续航的是连接参数。而连接参数这件事大多数人是凭感觉设的——连接间隔设 1 秒吧应该挺省电的。凭感觉的结果就是要么太保守导致响应慢、用户体验差要么太激进导致续航直接腰斩。其实这套东西完全可以手算而且只需要初中数学。我习惯在项目启动时先用纸笔算一遍把量级定下来再去实测校准。算出来的值和实测值差在 20% 以内就说明模型对了可以放心用于方案评估。3.1 把平均电流拆成事件电流和休眠电流核心公式只有一条平均电流 射频事件电流 × 事件持续时长 休眠电流 × 剩余时长÷ 总周期拿一个具体例子算。假设连接间隔设为 1 秒每次连接事件收发总共耗时 2 毫秒射频期间平均电流 6 mA其余时间休眠电流 2 µA。一次周期的电荷消耗是6 mA × 2 ms 12 µA·s加上 0.002 mA × 998 ms ≈ 2 µA·s合计约 14 µA·s。周期 1000 ms所以平均电流约14 µA。再看一块 CR2032 纽扣电池标称容量约 220 mAh。220 mAh ÷ 0.014 mA ≈ 15700 小时约1.8 年。这个结果说明什么说明在 1 秒连接间隔下射频本身只贡献了不到 15% 的电荷剩下 85% 是休眠电流的地板。你就算把射频优化到零续航也只能提升 15%。再把连接间隔改成 100 毫秒对比一下同样是 2 毫秒事件、6 mA 峰值平均电流变成 6 mA × 2 ms ÷ 100 ms ≈ 120 µA加上休眠那点忽略不计约122 µA。续航掉到 1800 小时约75 天。同样是这颗芯片参数从 1 秒改成 100 毫秒续航差了将近 9 倍。这就是为什么我一直说先算账再调参。很多人是先写代码跑不通了再回头改参数这时候架构已经定型改动成本极高。3.2 连接间隔、从机延迟、广播间隔三根杠杆三个参数里连接间隔决定事件频率从机延迟决定你跳过多少事件广播间隔决定未连接状态下的开销。它们的组合方式决定了整条功耗曲线。从机延迟Slave Latency是最好用的杠杆因为它允许你在保持响应及时感知的前提下大幅降低平均功耗。举个例子连接间隔 20 毫秒、从机延迟 49意味着理论上从机可以连续跳过 49 个连接事件不响应最坏情况下 1 秒内必然响应一次。看起来响应是 1 秒实际上只要从机有数据要发随时可以在下一个连接事件上传——延迟只在主机下行时生效。平均电流因此可以降到 1/50同时又保住了随时能上报的能力。这个特性对传感器类产品简直是量身定做的上行数据随时发下行配置慢一点无所谓。广播间隔则是未连接状态下的唯一开销。一次广播事件在三个广播信道上各发一包或者更少取决于配置总时长通常在 1 到 3 毫秒。广播间隔 1 秒时平均电流大约在 15 到 30 µA 区间。把间隔拉到 2 秒甚至更长电流可以再降一半代价是被发现的速度变慢。电子价签这类产品可以接受 5 秒甚至 10 秒的广播间隔因为它不需要被主动扫描发现只需要自己能发出去就行。三根杠杆的取舍逻辑可以归纳成一句话响应速度要求高就压缩连接间隔数据方向以上行为主就加大从机延迟不需要被快速发现就拉长广播间隔。三者之间不是独立的动一个要重新算一遍账。3.3 算得准却跑不住三个常见的偏差来源模型算得很漂亮实测一跑全崩这种事我遇到过不止一次。总结下来偏差基本来自三个地方。第一个是隐形漏电。板子上任何一个接错的上拉电阻、任何一个没过反向电流保护的外设、任何一颗静态电流没查的 LDO都会在休眠时悄悄吃电。一个 10 kΩ 上拉到 3 V 的电阻如果在休眠时被拉低就是 300 µA——比整个芯片的休眠电流高一百倍。这类问题的排查方法后面第六章会展开。第二个是协议栈的心跳开销。有些协议栈在连接状态下会周期性地做链路质量检测、加密密钥更新、连接参数更新请求这些都会产生额外的射频事件。手册里的平均电流值是理想状况实际协议栈可能有 10% 到 50% 的额外开销。这个只能在实测中观察用电流波形去数事件。第三个是电池本身的行为。纽扣电池在低温下内阻急剧上升脉冲放电时压降明显标称容量在高脉冲负载下根本放不出来。而且电池有自放电年自放电率通常在 1% 到 3%。算续航的时候如果只看容量除以电流实际能跑出来的时间通常要打七折到八折。4. 电源域、时钟与唤醒源超低功耗设计真正的战场参数算完了代码框架搭起来了接下来才是真正决定成败的地方。我个人的经验是超低功耗项目里80% 的功耗优化发生在电源管理、时钟配置和唤醒源梳理这三件事上剩下 20% 才轮到协议参数。但大多数人的精力分配恰恰是反过来的全花在调连接参数上。4.1 电源域划分与漏电猎杀现代超低功耗 SoC 内部通常划分了多个电源域常开域RTC、备份寄存器、可关断域CPU、内存、大部分外设、独立供电域射频、模拟前端。你要做的是搞清楚每个域在每种低功耗模式下是开着还是关着然后确保进低功耗模式前把所有不需要的域都关掉。这件事说起来简单做起来要细心。常见的漏点包括进睡眠前忘了关 ADC 的参考电压、忘了关比较器、忘了把某个 GPIO 从输出高改成输入或者模拟态、忘了关外设时钟但以为关了电源就没事。尤其是 GPIO 状态这一点一个输出高电平的 GPIO 驱动外部电路会在睡眠期间持续消耗电流而且这个电流不走芯片的电流表你查芯片手册根本查不到。我的做法是建一张睡眠前检查清单把每个外设、每个 GPIO、每个时钟开关都列进去写一个统一的enter_low_power()函数所有状态在函数里显式配置绝不依赖默认值。这张清单是随着项目推进不断补充的——每次发现新的漏点就往清单里加一条。项目做到后期这张清单通常有二三十条。提示查漏电最有效的手段不是看代码是断开式测量。把板子的电源回路串上电流表然后逐个把外设的供电或者信号线切断看电流变化。哪一项一断电流就掉一大截问题就在哪。4.2 低频时钟的取舍内部 RC 与外部晶振的账低功耗模式下必须有低速时钟维持 RTC 和唤醒定时。这里有个经典取舍用内部 RC 振荡器还是外挂 32.768 kHz 晶振。内部 RC 的好处是省两个引脚、省一颗料、省 BOM 成本而且启动快。坏处是精度差通常在 ±2% 到 ±5% 之间而且随温度和电压漂移明显。外挂晶振精度可以做到 ±20 ppm 以内代价是增加成本、占面积而且起振需要时间。那到底怎么选关键看你的唤醒精度要求。举两个场景对比每 10 秒唤醒一次采样上报内部 RC 完全够用累积几秒的偏差对业务没有任何影响省下来的成本和空间更值。需要精确对齐时间窗口或者做长周期定时比如每天定时上报内部 RC 的偏差一天累积下来可能到十几分钟这时候必须上外部晶振。还有一个折中做法很多芯片支持用射频活动来校准内部 RC——每次射频事件发生时有精确的时间基准可以反过来校正低速时钟。这个机制如果协议栈支持是非常划算的既省了外部晶振的成本又拿到了不错的精度。选型阶段值得专门问一句。4.3 唤醒源清单与中断优先级安排从低功耗模式唤醒的每一个源都要在清单上写清楚什么条件触发、唤醒后需要做什么、做完之后怎么回到睡眠。常见的唤醒源包括RTC 定时中断、GPIO 外部中断按键、传感器中断脚、比较器输出、射频事件、看门狗。这里最容易出问题的是唤醒后处理不完整——比如被按键唤醒了处理完按键逻辑之后忘了重新配置低功耗模式结果芯片就一直在运行模式待着电流从 2 µA 跳到 2 mA你能从电流曲线上看到一条明显异常的长平台。中断优先级的安排也有讲究。射频事件的中断通常必须给高优先级因为蓝牙协议对时序有严格要求中断被拖太久会导致连接丢失。而采样类的中断可以给低优先级晚几毫秒无所谓。如果优先级配反了你会看到很诡异的现象连接时不时断开但又找不到原因其实是一次低优先级长任务把射频中断堵住了。另外提醒一点唤醒源不要贪多。我见过为了灵活性把所有 GPIO 都配成唤醒源的方案结果任何一个引脚上的毛刺都能把芯片唤醒平均电流直接崩掉。唤醒源应该是明确的、经过验证的最小集合。5. 电池供电的端侧 AI 视觉节点把 PHY6270 放到系统里看前面四章讲的都是单颗芯片的事。但真实产品从来不是单颗芯片而是一套系统。最近电池供电的端侧 AI 视觉模块这个概念很热恰好能拿来说明 PHY6270 这类超低功耗 BLE SoC 在系统里的正确位置。先说结论这一类 SoC 通常不做视觉处理它做的是调度、唤醒决策和结果回传。把图像采集和推理塞进 BLE SoC 里绝大多数情况下是行不通的不是不能跑是跑起来不省电违背了选它的初衷。5.1 为什么不做永远在线的摄像头图像传感器是个耗电大户哪怕是很低分辨率的灰度传感器连续采集时的电流也在毫安级。更别说采集完还要搬运、还要推理算力和内存带宽都不够。在纽扣电池或小容量锂电供电的节点上让摄像头一直开着续航会直接掉到几小时甚至几十分钟这跟超低功耗四个字完全矛盾。所以端侧视觉节点的架构必须建立在事件驱动上绝大多数时间摄像头是断电的只有被事件触发时才上电采集一帧或者几帧。这个思路听起来简单但它的工程难度全在触发环节怎么用最少的功耗判断现在值得拍一张。5.2 分级唤醒从事件触发到图像回传的完整链路我一般把这类节点设计成三级唤醒结构。第一级是超低功耗常驻感知。用 PIR 人体感应、微波雷达、或者简单的光敏/振动传感器功耗在微安级全天在线。这一级的任务只有一个判断有没有值得关注的事发生。它不需要知道发生了什么只需要给一个信号。第二级是主控上电决策。BLE SoC 从深度睡眠中被唤醒读取第一级传感器的状态结合时间、历史记录、简单阈值做初步判断——比如五分钟内已经拍过三次了这次跳过或者现在是夜间灵敏度阈值提高。这一级完全跑在超低功耗 SoC 上耗时几毫秒算力需求极低。第三级是视觉模块上电采集与推理。只有前两级都通过才给摄像头和推理协处理器上电。采集一帧做一次推理得到结论有人/没人、有车/没车、数量是多少然后立刻断电。整个第三级的工作时间要控制在几百毫秒以内这段时间是功耗峰值但因为时间短平均下来仍可接受。回传环节就交给 BLE SoC 了。这里有个实用技巧不要在推理结束的第一时间就发起连接而是把结论缓存起来等下一个连接事件顺手带上去。这样避免了一次额外的射频唤醒开销。如果结论不紧急甚至可以等积累几条再一起上报。5.3 模型、算力与内存的三方匹配端侧视觉推理要跑起来模型大小、算力、内存三者必须互相匹配缺一个都跑不动。模型这边量化是必选项不是可选项。一个浮点的轻量分类网络量化到 int8 之后体积缩到四分之一推理速度提升两到四倍精度损失通常在 1% 到 3% 之间对有没有人这种二分类任务完全够用。量化之后再考虑结构化裁剪把冗余通道砍掉。算力这边注意区分峰值算力和持续算力。手册上标的算力指标通常是在满频满供电下的理论值实际在低功耗场景下你要降频跑持续算力可能只有标称的一半。评估时要用实测的推理耗时来算而不是用标称算力倒推。内存这边最容易被忽略的是中间激活值占用的 RAM。很多人算模型大小只看权重结果权重装得下中间张量装不下。评估时要按峰值内存来算而且要给协议栈、DMA 缓冲留出余量。如果片上 RAM 实在不够可以考虑用外部 SPI PSRAM但要注意外部内存的访问功耗和速度都会打折。三者匹配好之后回到前面第三章的公式算一遍第三级上电 300 毫秒、平均电流 15 mA那一次采集事件消耗约 1.25 µA·h如果一天触发 50 次就是 62.5 µA·h。对比一块 220 mAh 的电池这点消耗完全可以忽略。关键就在于一天触发多少次和每次跑多久这两个数字要压住。6. 实测电流超标、天线翻车与量产一致性几个真掉过的坑前面讲的是方法论这一章讲的是我实际踩过、也看别人踩过的坑。这些东西在任何一份数据手册和应用笔记里都找不到只能靠一次次烧板子换回来。6.1 电流比预期高一个数量级按这个顺序查实测休眠电流是 40 µA 而预期是 2 µA这种情况太常见了。我现在的排查顺序是固定的从外到内五分钟内基本能定位。第一步断开所有外部电路只留最小系统供电。如果电流立刻降到预期值问题在外部电路如果还是高问题在芯片配置或者芯片本身。这一步能省掉大量时间因为外部电路的问题远比芯片配置问题常见。第二步逐个上拉/下拉电阻检查。重点是那些在睡眠期间可能被拉成中间电平或者被外部反向驱动的引脚。一个被外部拉低的上拉电阻就是实打实的漏电通道而且它不体现在任何芯片参数里。检查方法很简单把所有外部信号线一根根断开看电流变化。第三步逐个外设关闭。写一段测试代码进睡眠前依次关闭 ADC、比较器、定时器、UART、SPI每关一个测一次电流。哪一个关掉之后电流掉下来问题就在哪里。我遇到过 UART 的 RX 引脚悬空导致输入级振荡的情况把引脚配成上拉之后电流立刻正常。第四步查调试接口。SWD 或者 JTAG 接口在调试模式下往往不会真正进入深度睡眠必须断开调试器再测。这个坑我至少踩过三次插着调试器测出来 200 µA拔掉之后再测就是 2 µA。测试方法一定要在文档里写清楚不然换个人测又会绕回来。第五步看芯片的勘误表。有些芯片的某些低功耗模式在特定配置下确实存在额外电流原厂会出勘误文档和规避方案。项目开始时就该把勘误表读一遍而不是出问题了才去翻。6.2 2.4 GHz 天线与地平面最容易翻车的地方射频这块我见过太多电路照着参考设计抄的但就是距离短的案例。问题通常不在原理图在 PCB。地平面是射频设计的地基。天线的正下方和净空区必须完整铺地不能走线、不能放器件、不能有分割。很多人为了塞物料在天线下面放了个电容或者走了一根信号线结果地平面被破坏天线效率掉一大截。这个错误的代价是通信距离从 30 米掉到 5 米而且很难通过后期调试补救。匹配网络要根据实物调。参考设计上的 π 型匹配网络通常是三个元件给的是起点值不是终点值。板子做出来之后必须用矢量网络分析仪测回波损耗在实际装配状态下包括外壳、电池、人手调到位。这里有个细节一定要在最终形态下调天线裸板和装壳之后的谐振点可能差几十 MHz裸板调好了装壳就废了。回流路径要短。射频信号的回流走最短路径回到源如果地平面被分割回流路径被迫绕远就会形成环路辐射既降低效率又增加干扰。高速数字信号线也要远离天线区域尤其是时钟线和开关电源的走线。发射功率不要盲目调到最大。我见过为了信号好一点把功率拉到最大的做法结果功耗上去了而且近距离时接收端饱和反而出现丢包。合理的做法是根据实际链路质量动态调整或者干脆在应用层做自适应。6.3 从样机到量产一致性与产测样机能跑量产出问题这是另一类坑。超低功耗产品的量产一致性主要卡在三个地方。第一是晶振的频率一致性。低速晶振的频率偏差会直接影响射频时序偏差过大的批次可能出现连接不稳定。所以晶振的精度等级要选对而且供应商要稳定。射频用高速晶振的要求更高通常要 10 ppm 以内这一项在 BOM 成本里占比不大但重要性极高。第二是天线的一致性。板厂的工艺波动、外壳装配的公差都会导致天线的谐振点漂移。量产阶段建议在产线上做一次射频功率或者灵敏度的抽检用简单的测试夹具测发射功率和接收灵敏度超差的产品挑出来。这一步能挡掉很多后期返修。第三是功耗的一致性。休眠电流如果某个批次整体偏高通常是物料问题某颗电容的漏电流、某颗芯片的批次差异或者工艺问题助焊剂残留导致微短路。产线上至少要做一次休眠电流的抽测把异常批次挡住。还有个经验产测程序不要用开发板的代码。开发板为了调试方便往往开了很多不必要的功能和日志直接搬到产测上会把功耗和时序都带偏。产测固件应该是精简的、只包含必要测试项的独立版本而且要能自动判断通过与否减少人工判断的误差。做到这一步一颗超低功耗 BLE SoC 从选型、功耗建模、参数设计到量产整条链路才算走通。回过头看真正难的地方从来不是某个具体的知识点而是把功耗当成一条贯穿始终的主线去对待——从第一张电流表读数开始到最后一台产品出厂中间每一个决策都要问一句这个选择会让我的平均电流变大还是变小。
返回列表