1. 为什么需要一个“MCU+示波法”的血压监测评估套件
说实话,第一次拿到类风湿性质的产品需求——一个基于MCU的血压监测评估套件(MCU-Based Blood Pressure Monitoring Eval Kit)时,我的第一反应是“这不就是做个电子血压计吗,方案都在网上烂大街了”。真正把参考设计跑起来之后才发现,血压监测这个看着不起眼的外设组合,是整个医疗电子里少有的“电路、气路、算法三条腿走路”的系统。任何一个环节不到位,测出来的数值就是一张废纸。
先拉齐一个基本认知:这类评估套件的核心价值,不是帮你“量一次血压”,而是帮你在一个可控的硬件平台上,快速验证示波法血压测量的完整信号链路——气泵加压、压力传感器采样、脉搏波提取、特征点识别、血压数值计算。也就是说,它不是最终产品,而是给嵌入式工程师、算法工程师、甚至是刚入行的学生做方案验证和算法调试用的“试验田”。
为什么选“评估套件”而不是直接上完整产品方案?因为血压监测涉及的核心参数太多了:气路的充放气速度、压力传感器的量程与带宽、ADC采样率与分辨率、脉搏波滤波算法、收缩压/舒张压的判定比例系数,每一个参数都会影响最终读数。如果直接照着某款量产血压计的方案抄,一旦测量结果不符合预期,你根本不知道是哪一环出了问题。而评估套件把硬件接口和基础驱动全部打通,你只需关注自己需要修改的那一小部分,排查问题的范围缩小一个数量级。
我见过不少团队在评估阶段就踩了同一个坑:他们把精力全花在算法上,觉得硬件部分“采购现成的传感器模组就行”。结果到了临床对照测试时,发现舒张压的读数系统性地偏高8~10 mmHg,最后排查下来根本不是算法的问题,而是气路泄压阀的非线性导致测量阶段压力下降速率不均匀,包络线上低压侧的特征点全被压扁了。这正是这类项目里最典型的“硬件-算法耦合问题”,也是这篇文章想帮大家避开的坑。
从应用场景上看,一套完整的血压监测评估套件通常包含以下功能模块:
- 基于MCU的主控单元,负责气泵/泄压阀控制、压力采集、算法运算和人机交互
- 高精度压力传感器及信号调理电路,把袖带压力换算成电信号
- 气泵、泄压阀等气路组件,实现袖带的充气和受控放气
- 显示与按键模块,用于参数设置和测量结果展示
- 通信接口(如UART、BLE),用于把原始波形数据导出到上位机做进一步分析
这套架构决定了它天生适合做两件事:第一,作为血压计产品的前期硬件预研平台;第二,作为示波法算法研究的数据采集平台。如果你的目标是后者,那你在选型时就要特别在意传感器原始数据导出的通道质量——很多评估板只做了平均值输出,高级一点的方案才会把原始ADC数据和包络特征同步输出。
2. 硬件系统拆解:关键元器件选型与接口设计
2.1 主控MCU选型:从STM32F103到STM32G4的取舍
评估套件的“大脑”选择,直接决定了后续算法的迭代空间和整个系统的功耗水平。我在评估阶段对比过几颗主流MCU,最终的取舍逻辑可以分享给大家。
最保守的选择是STM32F103系列。这颗芯片几乎成了MCU开发者的“母语”,资料多、例程全、任何问题都能搜到答案。片上12位ADC配合定时器触发采样,可以轻松实现200 Hz以上的连续采样,应付基础示波法完全够用。但它的短板也很明显:算力有限,如果后期想上更复杂的自适应滤波算法或实时波形特征识别,CPU占用率会非常紧张;另外它没有硬件浮点单元,如果算法里大量使用浮点运算,性能会被明显拖慢。
如果评估套件面向的是中高端血压计,我建议直接上STM32G4系列。这颗MCU带硬件浮点单元和CORDIC协处理器,做FFT或者更复杂的信号处理时优势非常明显。更重要的是,G4系列内部集成了一组比较强大的模拟外设,包括运算放大器和比较器——这在血压监测场景下意味着你可以省掉一颗外置的仪表放大器芯片,把模拟前端和MCU整合进一颗芯片,对降成本和缩小PCB面积都很有价值。
当然,如果团队对成本和供应链更敏感,国产MCU(如GD32、华大、国民技术等)也在大量血压计方案里服役。这颗芯片没有绝对的“最优解”,核心是确认三件事:ADC采样率和分辨率是否满足需求、是否有足够DMA通道支撑多通道连续采样、是否有低功耗模式保证电池供电场景的续航。
2.2 压力传感器与信号调理:血压信号链中最容易出错的环节
示波法血压测量的核心,是通过袖带压力的微小振荡来提取脉搏波。这里面有两路信号要同时采集:一路是袖带的静态压力(直流分量,量程一般为0~300 mmHg),另一路是叠加在静态压力上的脉搏波振荡(交流分量,幅度通常只有0.5~5 mmHg甚至更小)。
这个动态范围差异非常大,所以压力传感器的选型是整个信号链的胜负手。我实测下来,比较稳妥的方案是选用量程在0~40 kPa(约300 mmHg)的压阻式压力传感器,比如NXP的MPXV5050DP系列或者医用级的MPS-LW系列。这类传感器内部通常已经集成了信号调理电路,输出电压与压力呈线性关系,使用非常方便。
但传感器输出只是第一步。血压监测里真正容易翻车的是“交流小信号”的提取。脉搏波振荡信号的幅度不到静态压力的百分之一,如果直接用ADC去采传感器的原始输出,你会发现在12位分辨率下,交流信号的量化步长严重不足,波形完全无法分辨。
所以典型的信号调理链路是这样的:
- 第一级:仪表放大器或运放差分放大,把传感器差分信号转成单端信号
- 第二级:一阶或二阶低通滤波,截止频率设置在20~30 Hz左右,滤掉高频噪声同时保留脉搏波有效成分
- 第三级:直流偏置调整,把静态压力信号和脉搏波信号分成两路,分别送给ADC的两个通道
关于直流和交流分路,这里多说一句。很多初学者喜欢用一个ADC通道同时采静态压力和脉搏波,然后在软件里做数字滤波分离。这个思路从原理上可行,但实际效果并不好——因为12位ADC的动态范围有限,为了能看清毫米汞柱级别的脉搏波振荡,你必须把静态压力信号压缩到ADC量程的一小部分,这相当于人为牺牲了精度。硬件上分路,静态压力通道采满量程分辨率,脉搏波通道用信号调理电路把交流信号放大到接近满量程,两块ADC的原始数据都保留最大位数,软件算法才能吃得饱。
还有一个非常容易被忽略的细节:传感器输出端的RC滤波参数不能随意选。截止频率太低会把脉搏波的高频成分削掉,导致波形升支变缓、峰值点后移;截止频率太高则工频干扰和电机噪声就会直接骑在脉搏波信号上。以心率为75 bpm(即1.25 Hz脉搏频率)计算,脉搏波的谐波分量主要集中在10 Hz以内,低通截止频率设在20~30 Hz是合理的。这里可以加一个100 Ω+100 nF的RC低通,算下来截止频率约16 kHz,这其实是给ADC采样前端做抗混叠用的,真正的窄带滤波要在软件里解决——硬件上用RC实现20 Hz的低通需要加大电容,对PCB面积和成本都不友好。
2.3 气泵与泄压阀驱动:气路控制才是算法精度的地基
很多人做血压监测评估套件时,习惯把注意力放在“传感器—MCU—算法”这条链路上,对于气泵和泄压阀的驱动总觉得“能充气能放气就行”。这个认知导致的问题非常隐蔽——你拿到的压力数据和脉搏波包络都是畸形的,算法再怎么调也救不回来。
气路系统里最关键的指标其实是“放气速率的平稳性”。示波法测量的标准流程是:气泵快速充气到180 mmHg(或高于预估收缩压30 mmHg),然后通过泄压阀控制放气速率在2~5 mmHg/s之间,整个过程大约持续30~60秒。在这段时间里,如果放气速率忽快忽慢,脉搏波的包络就会被拉伸或压缩,特征点位置随之偏移,最终计算出的血压值自然不准。
我在评估套件上遇到过一个典型问题:最开始用的是一个开关型电磁阀,靠PWM控制通断比例来调节放气速率。理论上PWM占空比与放气速率应该是单调关系,但实测中发现,在高压段(>150 mmHg)和低压段(<60 mmHg)同样的占空比对应的放气速率差异非常大,甚至出现低压段完全不放气、高压段放气猛烈的极端情况。这个非线性特性让PID参数怎么调都调不稳。
解决方案是换用比例阀,或者采用“快慢阀组合”的气路架构:快速泄压阀负责测量结束后的快速放气,慢速泄压阀(或比例阀)负责测量阶段的精密放气控制。如果预算有限,也可以保留两档开关阀,通过控制测量阶段“慢阀常开+快阀间歇开启”的方式近似实现匀速放气,但代价是算法侧需要额外做压力速率的校正。
气路的另一个坑是气泵的噪声和振动会直接耦合进压力传感器。气泵充气阶段,传感器读数会有明显的纹波,这套纹波如果在充气结束后还有几十毫秒的“余震”,就会污染测量初期的脉搏波数据。解决办法是气泵和传感器在机械结构上隔离,或至少用硅胶减震垫隔开;同时在软件上对充气结束后的200~300 ms数据进行丢弃处理,等气路稳定后再开始记录。
3. 软件与算法链路:从ADC原始数据到血压数值
3.1 采样率选择与数字滤波:先解决信噪比再谈特征识别
硬件端把血压信号调理好之后,算法端拿到手的是一串ADC采样值。如果采样率和滤波策略选择不当,后面的所有处理都像是在毛玻璃上看图像。
先说采样率。脉搏波信号的主要能量集中在0.5~10 Hz之间,按照奈奎斯特采样定理,采样率至少20 Hz,但实际工程中这个值远远不够。原因有两个:一是ADC采样值本身带有量化噪声和开关电容纹波,高采样率配合数字低通滤波可以显著提升有效信噪比;二是后期如果想做脉搏波特征点识别(比如计算收缩压斜率、面积等),时间分辨率太低会导致特征点定位精度不足。
我实测下来,脉搏波通道的采样率设置在200~500 Hz是比较合理的区间。200 Hz时每个脉搏周期(约0.8秒)能采160个点,做峰值定位已经足够;500 Hz主要用于后期算法迭代预留余量,功耗会稍有增加。静态压力通道因为变化缓慢,采样率可以降到50 Hz,但为了简单起见,多数评估套件会让两路ADC同步采样——反正MCU的DMA搬运这点数据量很轻松。
数字滤波方面,推荐的分层策略是这样的:
- 第一层:50 Hz工频陷波。注意不是所有环境都有强烈的工频干扰,但一旦有,它会让脉搏波波形上叠加明显的正弦纹波,特征点提取变得很困难。如果采样率不是50 Hz的整数倍,陷波器的实现会稍微复杂一点,但值得做。
- 第二层:10~15 Hz低通滤波。这一层把脉搏波的有效成分保留下来,把高频肌电噪声和电磁干扰滤掉。可以用IIR滤波器(如Butterworth 3阶),也可以先用滑动平均做一次粗滤再做低通,效果都不错。
- 第三层:基线去除。通过中值滤波或高通滤波(截止频率约0.3 Hz)把静态压力信号的缓变成分和呼吸引起的基线漂移去掉,得到一个干净的脉搏波交流信号。
这里有个很实用的处理技巧:把静态压力通道的采样值作为一个“慢变量”,用它做脉搏波通道的增益自动控制。因为脉搏波振荡的幅度会随着袖带压力变化而变化——在平均动脉压(MAP)附近,脉搏波幅度达到最大值;在高气压和低气压端,幅度会明显减小。如果固定增益,低压端的信号会弱到难以识别。通过静态压力值动态调整增益参数,可以让全程的脉搏波信号都保持在一个适宜的动态范围内,这比后期在软件里做归一化处理要稳得多。
3.2 脉搏波包络提取与平均压MAP判定
示波法测血压的底层逻辑其实很朴素:随着袖带压力从高到低缓慢变化,动脉血管的受压状态不断改变,脉搏波在袖带压力上的振荡幅度也随之改变。当袖带压力等于平均动脉压(MAP)时,血管壁处于无外加张力状态,脉搏波振荡幅度最大;偏离MAP越远,振荡幅度越小。你只需要找出脉搏波幅度最大的那个时刻对应的袖带压力,那就是MAP。
所以第一步是提取脉搏波包络。最直接的方法是:对每个脉搏周期,计算该周期内脉搏波信号的峰峰值(peak-to-peak),得到一个离散的幅度序列。配合每个周期对应的平均袖带压力,就能画出一条“幅度-压力”的包络曲线。如果信号噪声控制得好,这条曲线通常是近似钟形的,最大值对应的压力就是MAP。
但实际操作中包络线没那么干净。常见的干扰包括:袖带导管的晃动、测量早期血管尚未完全封闭时的伪波、以及放气速率不稳导致的包络点分布不均。所以包络提取后的平滑处理必不可少。我试过几种不同的平滑方法:三点中值滤波+五点滑动平均最实用,既能去除单点异常值,又不会过度拉伸波形;高斯加权平滑效果更好,但对异常点不鲁棒,需要先做一步异常值剔除。
包络线平滑之后,MAP的判定有两种策略。一种是直接用包络峰值对应的压力值;另一种是对包络线做二次多项式拟合,取拟合曲线的顶点位置。后者我建议优先考虑——因为离散采样点不一定会精确落在峰值位置,尤其是放气速率较快、每mmHg对应的包络点较少时,直接取最大值会引入明显的量化误差。二次多项式拟合能通过相邻几个点的信息插值出一个更接近真实峰值的估算值,实测下来MAP误差可以减小2~3 mmHg。
3.3 收缩压与舒张压判定:幅度比法的工程化实现
MAP定下来之后,收缩压(SBP)和舒张压(DBP)的判定是示波法最具争议的部分——除非你有同步的听诊法数据做对照,否则你只能靠“幅度比”这个经验法则。
幅度比法的核心逻辑是:收缩压和舒张压对应的脉搏波振荡幅度,分别是MAP处最大幅度的某个比例。当你找到包络最大值点之后,沿着包络线向高压侧寻找幅度下降到最大幅度的0.45~0.55倍时对应的压力,就是收缩压;向低压侧寻找幅度下降到最大幅度的0.75~0.85倍时对应的压力,就是舒张压。
为什么收缩压用0.5左右、舒张压用0.8左右的系数?这两组系数来自大量人群的临床试验回归分析,本质上是一种“黑盒”标定。不同人群、不同年龄段、不同血管硬化程度的患者,最优比例系数会有偏移,但如果你没有一个本地化的标定数据集,使用0.5/0.8的公版系数是相对安全的选择。如果你的评估套件是面向特定人群(比如老年人或孕妇)开发的,我强烈建议你在做临床对照测试后针对性地调整这两组系数,而不是盲目信任公版参数。
工程实现上的一个难点是:包络线上不一定刚好存在幅度等于0.5倍最大值的采样点。所以需要用线性插值或抛物线插值,在两个相邻包络点之间估算对应的压力值。插值方法对最终结果的精度影响不小。我做过对比测试:线性插值在放气速率较慢(采样点密)的情况下够用,但放气速率较快时,抛物线插值的误差更小。
还有一个容易被忽视的边界情况:如果测量的舒张压值很低(比如低于60 mmHg),低压侧包络衰减到0.8倍最大值的那一段可能非常平缓,插值结果会对包络线上的微小波动非常敏感。这种情况下,可以给舒张压判定加一个约束:判定点对应的压力不得低于30 mmHg,否则视为测量失败。这在临床上是合理的要求——低于30 mmHg的舒张压已经属于危重状态,普通示波法设备不做这个量程的承诺。
4. 调试中的真实考验:信号干扰、气路密封与功耗问题
4.1 一次典型的“波形形态漂移”排障过程
所有做血压监测评估套件的人,迟早都会遇到这个问题:传感器原始波形看起来“不错”,但提取出来的包络线形状很不规则——不是平滑的钟形,而是左高右低或者中间有凹陷的畸形曲线。我把自己近期一次排障的完整思路记录下来,希望对你排查问题有参考价值。
第一步是判断问题出在模拟前端还是算法后处理。我的做法是:先把ADC原始数据通过串口导出到上位机,用Python直接画波形,对比硬件前端的输出和软件包络提取的结果。如果原始波形中脉搏波的振荡幅度在低压段明显小于预期,说明模拟前端的增益或偏置可能有问题;如果原始波形看起来正常,但包络提取后曲线畸形,说明算法侧的包络提取参数需要调整。
那次排查中,我发现原始波形在低压段(80 mmHg以下)时脉搏波振荡幅度衰减得异常快,但在高压段又有一个不该出现的隆起。最后定位到问题出在泄压阀驱动的PWM频率上——我用的PWM频率是1 kHz,正好落在气路系统固有频率附近,导致阀门开度在微观上不是匀速变化的,而是以一个非常规律的节奏“顿挫”式放气。这种顿挫在压力数据上表现为锯齿状的微小阶梯,经过包络提取后被放大成了不规则的波动。
解决方法是把PWM频率提高到20 kHz以上,避开气路系统的机械谐振频率。同时,在压力传感器信号调理电路里增加一个20 Hz低通滤波器,进一步抑制PWM开关噪声的串扰。换完之后,包络线立刻从“毛刺山”变成了平滑的钟形曲线,问题解决。
4.2 气路系统的密封与充放气控制曲线
气路系统里有一个我在第一次做评估套件时完全没有预料到的坑:除了密封性,还有“气路死腔容积”对测量精度的影响。
所谓死腔,是指袖带与压力传感器之间导管内残留的空气体积。这个体积越大,脉搏波从血管壁传递到传感器之间的“气容”就越大,信号的衰减和延迟就越明显。我最初用的是一根30 cm长的硅胶管连接袖带和气压计,结果发现脉搏波幅度比用短导管时小了将近一半,而且波形有明显的相位延迟。
所以,评估套件的结构设计里,压力传感器的位置应该尽可能靠近袖带接口。如果线缆必须拉长,请选用内径更细、管壁更硬的聚氨酯管,而不是软硅胶管——软管在压力下有弹性形变,会进一步增大死腔体积。这个问题对产品级设计尤其重要,因为袖带的接口位置和主控板的位置往往相距较远。
关于充放气控制曲线,我再补充一个具体的经验数据:充气阶段建议采用“快充-慢停”的策略,即从启动到充到目标压力(通常为180 mmHg,或高于预估收缩压30 mmHg)的时间控制在6~8秒,充到目标压力后应立即停止气泵并快速泄放一小段压力,让气路从充气状态平滑过渡到放气状态。这个过渡过程中脉搏波信号会有2~3秒的扰动,软件里要做好标记,数据处理时把这部分直接丢弃。
测量阶段的放气速率精确控制在3~5 mmHg/s之间。我调试时用一个关键技巧:放气过程中的压力是一个斜坡信号,用简单的一阶差分计算瞬时放气速率,差值超过1.5倍平均速率时标记为“异常段”,在包络提取时跳过这些异常区间的数据点。这样即使硬件上偶尔有微小波动,算法也不会给出离谱的结果。
4.3 电池供电下的功耗优化记录
评估套件如果只用直流电源供电,那功耗优化这个环节基本可以跳过。但一旦你开始考虑“便携式”甚至“穿戴式”血压监测设备,功耗就成了决定方案可行性的关键因素。我基于一块锂电池供电的评估板,实测了不同工作状态下的功耗数据。
血压监测的功耗大头毫无疑问是气泵。一个微型电磁气泵在5V供电下的工作电流可以达到300~500 mA,单次测量约消耗15~25 mAh的电量。如果一天测三次,气泵的耗电量就接近70 mAh,这部分几乎无法优化——你只能通过缩短充气时间(比如用更高效率的气泵)来减少单次功耗。
MCU部分的功耗可以通过合理使用低功耗模式来优化。测量阶段MCU全速运行,ADC和DMA全开,功耗约5~10 mA;测量结束后立即切换到一个低速工作模式,只保留一个定时器和UART唤醒功能,功耗可以降到10~50 μA。如果设备还有显示模块,建议用电子纸屏而不是LCD——电子纸在静态显示时几乎不耗电,刷新时也只需要几十毫秒高电流脉冲,比背光LCD在续航上的优势是数量级的。
还有一个不容易想到的功耗优化点:气泵驱动的MOS管栅极电阻不要随意取值。栅极电阻太大,MOS管开关速度变慢,开关损耗增加;太小,开关振荡会通过电源层耦合进ADC信号链。我在调试时把栅极电阻从100 Ω降到10 Ω,测量阶段的电源纹波明显改善,气泵的驱动效率也提升了2~3个百分点。
5. 精度验证与产品化补全:从评估套件到可量产方案
5.1 临床对照测试如何做:BHS/AAMI分级标准与最小样本量
评估套件在实验室里测出来的数据再漂亮,也必须在真实人体上做对照测试。但“对照测试”不是拿几台设备互相测一下就完的,而是有明确的国际标准和统计要求。
目前业内通用的基准是AAMI/ISO 81060-2标准,以及英国高血压协会(BHS)的分级标准。两者的核心思想一致:用被测设备与水银柱血压计(或经过验证的电子血压计)在相同环境下同步测量,记录成对的血压数据,再统计平均误差和标准差。AAMI的要求是:收缩压和舒张压的平均误差不超过±5 mmHg,标准差不超过8 mmHg。BHS则按误差落在5/10/15 mmHg范围内的比例,将设备分为A/B/C/D四个等级,A级是临床可接受度最高的。
实际操作时,至少需要收集85组有效数据(对应AAMI标准的最小样本量要求),并且受试者人群要覆盖不同的年龄段、臂围范围和血压水平。这里面有几个容易疏忽的细节:
- 测量前受试者需要静坐至少5分钟,手臂与心脏保持同一高度——否则静水压差会直接导致系统性的读数偏差
- 袖带尺寸必须与臂围匹配:臂围22~32 cm用标准成人袖带,32~42 cm用大号袖带,袖带过紧或过松都会产生明显的测量误差
- 双人同步记录时,“同时性”的误差控制很关键——示波法设备和听诊法参考值之间必须建立严格的同步标记
如果你只是做一个评估套件的算法验证,不追求正式的临床试验数据,也可以用简化的对照方案:招募10~20名志愿者,每人对同一个手臂交替测量多次(用被测设备和参照设备交替测量),统计总体的平均误差和标准差,只要结果落在±5 mmHg/8 mmHg以内,就可以认为算法链路基本可信。
5.2 温度漂移、个体差异与自动校准策略
血压监测设备在出厂前做校准不难,难的是设备在使用一段时间后如何保持精度。压力传感器的压阻系数会随温度变化,气泵和泄压阀的机械特性也会随着使用时长和温度漂移。如果不做任何校准补偿,设备使用几个月后测量值偏移3~5 mmHg是很常见的。
最基础的补偿策略是每次测量前做“零点校准”:测量前,设备自动确认袖带完全放气、压力传感器与大气连通,此时传感器输出值即为零点偏移量。把这个偏移量记录到存储区,本次测量的所有压力值都减去该偏移量,就能消除大部分温漂带来的零点误差。
量程漂移(即增益漂移)的校准相对复杂,通常需要通过内置一个精密参考压力源,或者依赖出厂前一次性校准的参数来实现。如果评估套件使用的是较高精度的压力传感器(比如出厂精度±1%FS),增益漂移的幅度一般可控,不需要每次测量都做。
温度补偿公式可以采用线性模型,即补偿值 = 零点偏移量 + 温度系数 ×(当前温度 - 校准温度)。温度系数需要在开发阶段通过高低温箱进行标定。如果你手头没有高低温箱,也可以用冰水混合物和室温水做一个粗略的两点标定,虽然精度不高,但至少能把传感器在极端温度下的漂移方向搞清楚。
另外要关注“个体差异”的影响。示波法算法的幅度比系数在不同人群中是有差异的——老年人的动脉硬化程度高,脉搏波传导速度快,包络线形态与年轻人有明显区别。如果你希望评估套件的算法在更广的人群范围内保持精度,可以考虑在算法里加入一个“人群模式”参数:比如普通成人模式、老年模式、儿童模式,不同模式对应不同的幅度比系数。这个思路不需要复杂的自适应算法,但能显著改善特定人群的测量精度。
5.3 从评估板到产品还需补足哪些模块
评估套件跑通、算法精度达标之后,很多人会问:“这套方案是不是可以直接做成产品了?”我的回答是:评估套件解决了“功能验证”的问题,但距离“产品化”还有一些关键模块需要补足。
第一是医用级的安全设计要求。血压监测设备在欧盟和国内都按医疗器械管理,需要满足IEC 60601-1(电气安全)和IEC 60601-1-2(电磁兼容)标准。这意味着电源隔离、患者漏电流限制、静电放电防护等设计都需要重新评估。评估套件上的USB调试接口在产品化时大概率需要一个可靠的隔离方案。
第二是存储与记录功能。血压计产品通常需要保存多次测量历史,这就需要一颗非易失性存储器芯片,以及配套的Flash管理逻辑。如果评估套件的主控MCU内部Flash空间充裕,可以先把历史数据存在内部Flash里;产品化阶段建议改用外部SPI NOR Flash,方便容量升级和数据导出。
第三是通信模块从“调试用”升级为“产品级”。评估板上的UART、SWD接口在产品化时要替换为BLE或Wi-Fi模块。BLE方案选型时重点关注两个指标:广播间隔和连接间隔下的平均功耗、以及协议栈对MCU的Flash/RAM占用。部分MCU自带BLE射频前端,可以省掉一颗外部蓝牙芯片,但天线布局的设计难度会显著增加。
第四是结构设计与气路集成。评估套件在开发板上用管路连接各组件,产品化时必须把所有气路集成到一个气路模块里,通过硅胶模具或超声波焊接实现一体化。这个阶段最容易出现的问题是气路内部微小泄漏——在实验室用长管连接时泄漏可能只有1~2 mmHg/min,但一体化封装后如果密封工艺不到位,泄漏量可能飙升到5 mmHg/min以上,导致测量后期压力下降速率不达标。
最后再分享几个实测心得
这套评估套件前前后后我调试了大约一个多月,最深的体会有三个:第一,示波法血压监测是一个典型的“软硬一体”系统,硬件上的任何一个小瑕疵都会在算法结果里被放大,不要指望算法能把硬件缺陷全部补救回来;第二,调试顺序很重要——先把气路的充放气控制做稳,再处理模拟前端的信噪比,最后才轮到算法参数微调,这个顺序反过来的话,你会陷入无休止的“不知道是哪里出了问题”的循环;第三,数据可视化是最高效的调试手段,所有ADC原始数据和中间计算结果都应该通过串口导出到上位机实时绘制,光靠肉眼盯着一块小液晶屏上的数字来调参数,效率太低了。
如果你也在做类似的项目,建议第一步先别急着选型或者画板子,而是找一套成熟的参考设计(比如基于STM32G4的评估套件)烧录官方固件跑一遍完整流程,看看标准的示波法波形长什么样、包络线长什么样、幅度比系数是怎么标定的。有了这个“标准答案”做参照,后面你自己的改动才有的放矢。