别只盯着心率芯片参数,真正决定效果的是后面这几步
同样的PPG芯片,为什么别人做得稳,你一直在调参数?
做可穿戴硬件的人,大概都经历过一种很具体的不甘心:
芯片规格看着没问题。心率能出数,血氧能显示,Demo阶段甚至觉得“这不挺好吗”。
但一进手表或手环的壳子,事情就开始变样:佩戴松一点,波形漂;换一版结构,信号又变了;PCB重新Layout一次,测试结果跟着换一副面孔。最后只能坐在那里一遍遍调参数、改算法,心里冒出一个很自然的疑问——是不是这颗芯片不行?
做过几个项目之后会发现,问题很少出在“芯片本身能不能测”。PPG心率血氧的工程难度,从Demo跑通那一刻起才真正开始。样机上能出数值,和量产后在不同佩戴状态、不同结构版本下保持稳定,是两件完全不同的事。
下面按实际排查的顺序,聊几个容易被规格表一句话盖过去的工程环节。

先看光有没有“走对路”,而不是先看参数
PPG的原理不复杂:LED打光进皮肤,血液搏动改变反射光,PD接收,AFE提取。但工程上最难的地方在于,光是不是按你设计的路径走的。
理想路径是光进入皮肤、经过组织调制后回到PD。如果结构有缝隙,光可以在设备内部直接从LED“窜”到PD,不经过任何皮肤组织。这就是串光。PD收到的信号里混了一大块不带血流信息的“假光”,算法再用力调,源头已经是错的。
所以排查顺序上,第一件事不是翻寄存器调增益,而是确认光路本身有没有问题。LED和PD的间距、角度、相对位置,差几毫米就可能在不同肤色用户身上表现出差异。有经验的团队通常会先按原厂给出的参考光路做,而不是凭直觉自定义布局。
隔光做不实,后面全是白费
串光听起来像是“结构小事”,但它在PPG里的杀伤力被严重低估。
隔光要保证的事情很朴素:LED的光只能走皮肤那条路到PD,不能从结构缝隙直接漏过去。一旦有缝,PD输出的是一个叠了大直流偏置的伪信号,波形“看起来有”,但动态范围被压缩,算法很容易把假信号当真信号处理。
实际工程里,隔光泡棉的压缩量、硅胶框与镜片之间约0.1mm量级的干涉、骨位和镜片之间的间隙,任何一项没压住,串光就可能重新出现。这些东西在结构图上看不出对错,只有在实物上配合光学测试才能确认。

PCB本身,就是信号链的一部分
PD输出的是非常微弱的信号。微弱信号最怕的不是“噪声大”,而是噪声离它太近。
PD到AFE的路径应当尽量短,这一点在很多PPG布局指引里都会提。更具体的一条是:PD正下方和紧邻区域,尽量不要走IIC、SPI或电源线。数字线上的跳变耦合到PD走线里,在示波器上可能只是几十毫伏的毛刺,但PPG的有效交流分量本来就在微伏到毫伏量级,信噪比会被直接拉低。
这就解释了一个让人很无力的现象:芯片没换,算法没动,软件版本也没变,只是重新Layout了一版PCB,测试表现就不一样了。因为对这一类前端来说,PCB走线不是“连接件”,它就是信号通路的一部分。
LED一闪,电源就不是“给个3.3V”那么简单
可穿戴设备里,很多数字芯片的供电思路是“电压对、电流够”就行。PPG前端不一样。
LED发光是脉冲式的,瞬态电流可能在极短时间内从近乎零跳到上百毫安量级。如果前面的LDO瞬态响应跟不上,供电轨上就会出现下陷和振铃。对于正在处理微弱光电信号的AFE来说,电源上的波动会直接叠加到测量结果里。
所以这类方案对LDO的要求,不只是静态功耗低。纹波、PSRR、负载瞬态响应,都需要放进选型条件里看。低功耗是第一层,电源“干净且稳”是另一层,两层都过,PPG的底噪才可控。
看功耗数字,先问一句“含不含LED”
可穿戴的电池预算很紧,PPG如果常开,功耗就不能按“芯片静态电流”去理解。
一个很实际的判断方法:看标称功耗里有没有明确写“含LED发光功耗”。有些低功耗数字是在关闭LED或占空比极低的条件下测的,对整机续航的参考价值有限。
以某类面向可穿戴的PPG前端方案公开的规格为例:心率模式典型值标的是60μA@25Hz,并明确注明包含LED功耗;血氧模式约500μA@25Hz,同样含LED。心率与血氧之间的功耗落差,主要来自血氧需要红光和红外双波长分时驱动,而不是芯片本身的静态开销变了。把这个口径搞清楚,再去和电池预算对账,比单纯比较“谁家μA数字更小”有意义得多。
芯片在变“聪明”,但替代不了系统设计
现在的PPG前端确实在承担越来越多原来丢给主控和算法的工作:自动调光、佩戴检测、FIFO缓存批量读数、中断机制减少轮询。这些东西的目的是一致的——减少整机层面的不确定性,让主控不用被每一笔传感器数据牵着走。
但“芯片做得多”不等于“系统设计可以少做”。光路、隔光、PCB、电源、结构公差,这几项里任何一项没到位,芯片内部的自动化逻辑也只能在一个已经被污染的信号上做判断。PPG前端的效果,从来不是IC单独决定的,芯片、LED、镜片、FPC、结构件和算法共同构成一个光学系统。
一个实用的排查顺序
如果项目正卡在“数据一直漂、参数一直调”的阶段,可以试着把顺序倒过来:
先确认光有没有走对路 → 再查隔光有没有做实 → 再看结构公差和镜片开窗 → 然后看PD走线和电源瞬态 → 最后才回到算法和寄存器参数。
很多时候,参数调不动,不是因为参数没调对,而是因为前端送进来的信号里本来就没有足够干净的信息。把光学和硬件层面的变量先摁住,算法才有发挥的余地。这也是做可穿戴健康监测比较反直觉的一点:决定最终稳定性的,往往不是规格表上最显眼的那个数字,而是那些规格表不会替你验证的东西。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
