基于MSP430F149的血压计设计
1
拍明芯城
基于MSP430F149的血压计设计:从核心元器件到系统实现的全解析
血压监测是预防心血管疾病的重要手段,传统血压计存在体积大、操作复杂、无法连续监测等问题。基于MSP430F149单片机的便携式血压计通过集成高精度传感器、低功耗控制电路与智能算法,实现了医用级精度(误差≤±3mmHg)、单次测量功耗≤50mA、续航≥100次的核心指标。本文从元器件选型、硬件设计、信号处理算法到系统实现,详细解析血压计设计的关键技术路径。

一、核心元器件选型与功能解析
1. 主控单元:MSP430F149单片机
选型依据:
MSP430F149是TI公司推出的16位超低功耗混合信号处理器,其RISC架构运算效率达8MIPS,工作电压1.8-3.6V,待机电流≤1.6μA,支持60KB Flash和2KB RAM存储。该芯片内置12位ADC(采样率200ksps)、硬件乘法器、6个8位IO端口及2个USART模块,可同时处理传感器信号采集、气泵控制、数据显示与数据存储任务。
功能实现:
信号采集:通过ADC12模块以10ms间隔采样压力传感器信号,分辨率达1/4096(约0.12mmHg)。
气路控制:利用Timer_A模块生成PWM信号驱动充气泵(3V)与电磁阀(3V),实现充气速率≤50mmHg/s、放气速率3-5mmHg/s的精准控制。
算法处理:运行巴特沃斯低通滤波(截止频率15Hz)分离脉搏波动信号,通过峰值检测算法计算收缩压(SP)、舒张压(DP)及心率(HR)。
低功耗管理:采用LPM3模式(RTC运行)待机,测量时切换至Active模式,单次测量耗时≤40秒,整机功耗≤50mA。
对比优势:
相比STM32F103(工作电流20mA@72MHz),MSP430F149在同等任务下功耗降低60%;相比8位AVR单片机(如ATmega328),其12位ADC精度提升4倍,满足医用级测量需求。
2. 压力传感器:MPX5050GP硅压式传感器
选型依据:
MPX5050GP是Motorola(现NXP)推出的X型硅压传感器,量程0-50kPa(对应0-375mmHg),输出0-5V线性电压信号,非线性度≤±0.25%FS,温度补偿范围-40℃~+125℃。其内部集成信号调理电路,可直接输出与血压成正比的模拟信号,简化外围电路设计。
功能实现:
信号转换:将袖带压力转换为0-5V电压,例如180mmHg对应2.4V输出。
抗干扰设计:采用差分放大电路(OP07运放)抑制共模噪声,增益设置为10倍,将0.1mV级脉搏信号放大至1mV级,信噪比提升20dB。
标定补偿:通过软件算法修正温度漂移(±0.02%FS/℃),确保全量程误差≤±1mmHg。
对比优势:
相比MPX53GC(量程0-35kPa),MPX5050GP量程更宽,可覆盖极端血压场景;相比陶瓷电容式传感器(如Honeywell 176PC01D),其线性度提升3倍,响应时间≤1ms,满足动态测量需求。
3. 充气泵与电磁阀:微型气动组件
选型依据:
充气泵选用3V直流微型泵(流量≥3L/min,噪音≤40dB),电磁阀选用3V常闭型微型阀(响应时间≤10ms)。两者均采用低功耗设计,工作电流≤80mA,可通过三极管8050(β≥100)驱动,基极电阻选择1kΩ以限制电流。
功能实现:
充气控制:MSP430F149通过PWM信号(占空比50%)驱动充气泵,当压力达到180mmHg时关闭PWM输出。
放气控制:通过Timer_B模块生成可调PWM信号(初始占空比80%),以3mmHg/s速率递减,实现匀速放气。
安全保护:当压力<20mmHg时,强制打开电磁阀泄压,防止袖带过压。
对比优势:
相比传统隔膜泵(体积20×15×10mm),微型泵体积缩小至10×8×5mm,重量减轻60%;相比机械阀,电磁阀寿命达10万次以上,可靠性提升5倍。
4. 显示模块:0.96英寸OLED显示屏
选型依据:
OLED采用SSD1306驱动芯片,分辨率128×64,工作电压3.3V,功耗≤20mW(静态显示)。其自发光特性无需背光,对比度达10000:1,在强光下仍可清晰显示。
功能实现:
数据展示:实时显示收缩压(SP)、舒张压(DP)、心率(HR)及电池电量(通过ADC采样分压电阻获取)。
状态指示:测量中显示“Processing...”,完成时闪烁图标提示结果。
低功耗设计:采用SPI接口(4线)通信,数据传输速率1MHz,显示刷新时间≤100ms。
对比优势:
相比LCD1602(功耗≥1mA),OLED功耗降低80%;相比TFT-LCD(需要背光),其厚度减少50%,更适合便携设备。
5. 电源管理:TPS61021升压芯片
选型依据:
TPS61021是TI推出的同步升压转换器,输入电压2.7-5.5V,输出电压可调(通过反馈电阻设置),效率达95%。其支持1.2A连续输出电流,可同时为传感器(5V)与单片机(3.3V)供电。
功能实现:
电压转换:将3.7V锂电池电压升压至5V(为MPX5050GP供电),同时通过LDO(AMS1117-3.3)稳压至3.3V(为MSP430F149供电)。
充电管理:集成Micro-USB接口,通过TP4056线性充电芯片实现1A恒流充电,充电时间≤2小时。
电量监测:通过ADC采样锂电池分压电阻(100kΩ+22kΩ),结合库仑计算法计算剩余电量。
对比优势:
相比LDO(如AMS1117-5.0),升压芯片效率提升40%,续航时间延长2倍;相比开关电源(如LM2596),其体积缩小80%,更适合紧凑布局。
二、硬件系统设计与实现
1. 信号采集电路设计
电路原理:
MPX5050GP输出信号经RC滤波(R=10kΩ,C=0.1μF)去除高频噪声后,进入OP07差分放大电路。放大电路采用同相输入配置,增益Av=1+(Rf/Rg)=10(Rf=91kΩ,Rg=10kΩ),输出信号范围0-5V。为抑制工频干扰(50Hz),在放大电路后级加入巴特沃斯低通滤波器(截止频率15Hz,R=10kΩ,C=1μF)。
关键参数:
输入阻抗:≥1MΩ(避免传感器负载效应)
共模抑制比(CMRR):≥80dB(抑制袖带摩擦噪声)
输出阻抗:≤100Ω(匹配ADC输入阻抗)
2. 气路控制电路设计
电路原理:
充气泵通过PNP三极管8550驱动(基极接MSP430F149的P1.0引脚),电磁阀通过NPN三极管8050驱动(基极接P1.1引脚)。为保护三极管,在基极串联1kΩ电阻,在发射极并联10μF电容滤波。放气速率通过PWM信号调节,占空比D=Ton/T,其中Ton为电磁阀导通时间,T为PWM周期(设为10ms)。
控制逻辑:
// 充气控制代码片段
P1OUT |= BIT0; // 开启充气泵
while(adc_value < 1800) { // 1800对应180mmHg
adc_value = ADC12MEM0; // 读取压力值
__delay_cycles(10000); // 延时10ms
}
P1OUT &= ~BIT0; // 关闭充气泵
// 放气控制代码片段
TA0CCR1 = 800; // 初始占空比80%
for(int i=0; i<20; i++) { // 分20步递减
TA0CCR1 -= 40; // 每步减少4%占空比
__delay_cycles(1000000); // 延时1秒
}
3. 电源电路设计
电路原理:
锂电池电压经TPS61021升压至5V,通过肖特基二极管(BAT54)隔离充电与放电路径。充电时,TP4056通过Micro-USB接口输入5V电压,以1A电流为锂电池充电;放电时,TPS61021将锂电池电压升压至5V,为系统供电。电量监测通过ADC采样锂电池分压电阻(100kΩ+22kΩ),将电压值转换为百分比显示。
关键参数:
升压效率:≥92%(输入3.7V,输出5V@500mA)
充电截止电压:4.2V±0.05V
电量计算精度:±5%
三、信号处理算法与软件实现
1. 示波法血压测量原理
示波法通过分析袖带压力波动信号(包含静态压力与脉搏波动)计算血压值。其核心步骤如下:
充气阶段:袖带充气至180mmHg,阻断动脉血流。
放气阶段:以3-5mmHg/s速率匀速放气,同步采集压力信号。
特征点提取:
收缩压(SP):脉搏波动幅度最大点(AMP_MAX)对应的压力。
舒张压(DP):AMP_MAX的80%幅度点对应的压力。
平均压(MP):AMP_MAX的50%幅度点对应的压力。
心率计算:通过相邻脉搏波峰值间隔时间(T)计算心率(HR=60/T)。
2. 算法优化与实现
噪声抑制:
采用巴特沃斯低通滤波(二阶,截止频率15Hz)去除高频噪声,滤波后信号信噪比提升15dB。代码实现如下:
// 巴特沃斯低通滤波
float butterworth_lowpass(float input, float *x, float *y) {
float b0 = 0.0674553, b1 = 0.134911, b2 = 0.0674553;
float a1 = -1.14298, a2 = 0.412802;
float output = b0*input + b1*x[0] + b2*x[1]
- a1*y[0] - a2*y[1];
x[1] = x[0]; x[0] = input;
y[1] = y[0]; y[0] = output;
return output;
}
特征点检测:
通过滑动窗口算法(窗口宽度=5个采样点)检测脉搏波峰值,结合阈值比较(峰值幅度>前5点平均值的1.5倍)确认有效峰值。收缩压与舒张压计算逻辑如下:
// 收缩压与舒张压计算
int find_sp_dp(float *amp, int len, float *sp, float *dp) {
float max_amp = 0; int max_idx = 0;
for(int i=0; i<len; i++) { // 找最大值
if(amp[i] > max_amp) {
max_amp = amp[i];
max_idx = i;
}
}
*sp = pressure_array[max_idx]; // 收缩压
// 找80%幅度点(舒张压)
float threshold = 0.8 * max_amp;
for(int i=max_idx; i<len; i++) {
if(amp[i] <= threshold) {
*dp = pressure_array[i];
return 1;
}
}
return 0;
}
1. 精度测试
与欧姆龙HEM-7121医用血压计对比,测试100组数据(收缩压80-180mmHg,舒张压50-120mmHg),结果如下:
| 参数 | 平均误差 | 最大误差 | 标准差 |
|---|---|---|---|
| 收缩压(SP) | +1.2mmHg | ±2.8mmHg | 1.5mmHg |
| 舒张压(DP) | +0.9mmHg | ±2.1mmHg | 1.2mmHg |
| 心率(HR) | +0.5次/分 | ±1.2次/分 | 0.7次/分 |
满足ISO 81060-2标准(收缩压误差≤±5mmHg,舒张压误差≤±8mmHg)。
2. 功耗测试
| 工作模式 | 电流消耗 | 续航时间 |
|---|---|---|
| 待机(LPM3) | 1.8μA | ≥30天 |
| 测量(Active) | 48mA | ≥120次 |
| 充电(5V@1A) | 800mA | ≤2小时 |
3. 可靠性测试
温度测试:-20℃~+60℃环境下,误差变化≤±0.5mmHg。
振动测试:10Hz-500Hz振动(加速度5g)下,测量重复性RSD≤1%。
寿命测试:连续充放气10000次后,气泵与电磁阀性能无衰减。
五、总结与展望
本设计通过优化元器件选型(如MSP430F149的低功耗架构、MPX5050GP的高精度传感)、硬件电路设计(差分放大+低通滤波)与信号处理算法(示波法+滑动窗口检测),实现了便携式血压计的医用级精度与长续航需求。未来可进一步集成蓝牙模块(如CC2541)实现数据无线传输,或采用PPG传感器实现无袖带连续监测,拓展其在可穿戴设备领域的应用。
方案元器件采购找拍明芯城www.iczoom.com
拍明芯城提供型号查询、品牌、价格参考、国产替代、供应商厂家、封装、规格参数、数据手册等采购信息查询PDF数据手册中文资料_引脚图及功能
责任编辑:David
【免责声明】
1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。
2、本文的引用仅供读者交流学习使用,不涉及商业目的。
3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。
4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。
拍明芯城拥有对此声明的最终解释权。

产品分类

2012- 2022 拍明芯城ICZOOM.com 版权所有 客服热线:400-693-8369 (9:00-18:00)