秦 汉,王瑞琦,卢超波
(中科芯集成电路有限公司,江苏无锡 214072)
脉率和血氧饱和度是与人体健康状况相关的参数。脉率既可以反映出人体的健康状况,又能提示人体运动后的情况[1]。血氧饱和度与血液中氧气的浓度有关,该指标反映了人体的供氧情况,从而监测人体的循环系统和呼吸系统状况[2]。
国外开展无创血氧饱和度检测技术研究较早。BEER在1851年提出了光学测量的基本原理,就是朗伯-比尔规则,为无创血氧测量装置的研究提供了一定的理论基础。1982年,NELLCOR对先前的血氧监测仪进行较大改进,研发了一款光源选用发光二极管、光接收器选用珪管、用微型计算机对数据进行处理的性能更佳的血氧监测仪N-100,自此拉开了现代血氧监测仪的发展序幕。20世纪90年代之后,血氧饱和度监测仪经过持续发展与改进,Masimo、Philips等公司已开发出相对成熟的产品并应用于临床[3]。近年来,血氧饱和度检测研究主要集中在血氧探头结构的优化和信号提取技术的创新性改进等方面,在目前人口老龄化及医疗保健社区化的趋势下,便携式血氧仪越来越受到人们重视。
目前,国内临床上血氧饱和度检测都是通过生命体征参数检测仪来完成的,其中便携式血氧仪大多使用国外的主控芯片,以朗伯-比尔定律和血液中还原血红蛋白和氧合血红蛋白对光的吸收特性不同为理论基础[4]。本文设计了一种基于ARMCortex-M0内核单片机的指夹式脉搏血氧仪。通过两种不同波长的红光和红外光分别照射组织,经透射后再由光电接收器转换成光电容积脉搏波信号,经数字解调及信号处理后,通过提取特征值计算出相应的脉率和血氧饱和度。设计中选用905 nm红外光和660 nm红光,在该波长处,氧合血红蛋白和还原血红蛋白的吸收差别较大。
指夹式脉搏血氧仪采用中科芯集成电路有限公司MCU事业部研制的基于ARM Cortex-M0内核单片机作为主控芯片。该芯片性能强,工作频率高达48 MHz且资源丰富,拥有2个I2C接口,2个SPI接口,2个USART,1个12位ADC,1个12位DAC,最多5个通用16位定时器,1个32位定时器和一个高级控制PWM定时器,完全能够满足指夹式脉搏血氧仪的设计要求。
2.1.1 开机唤醒电路
开机唤醒电路如图1所示。单片机的一个I/O口连接总电源芯片使能引脚POWER_ON端,按键K1按下时,总电源芯片的使能引脚POWER_ON产生高电平脉冲,总电源开启,此时单片机上电,上电后单片机立即保持POWER_ON为高电平,血氧仪可持续工作,开机完成。血氧仪在8 s内未检测到有手指放入时,单片机POWER_ON引脚软件拉低置零,总电源断开,实现关机操作,由于总电源关闭,关机时血氧仪的电流不超过1.5μA。
图1 开机唤醒电路
2.1.2 发光管驱动电路
发光管驱动电路如图2所示。D1为发光对管,当RED端接地、IR端接驱动电平时,905 nm红外灯亮;当IR端接地、RED端接驱动电平时,660 nm红光灯亮。U9为双通道模拟开关,4脚为高电平时,3脚与2脚接通;4脚为低电平时,3脚与5脚接通;另外一通道原理相同;因此通过单片机IO口控制模拟开关U9的4脚和8脚交替变换高低电平,完成红光和红外的切换。
图2 发光管驱动电路
LED灯的亮度取决于流过灯的电流,红光灯或红外灯的电流都会从三极管Q1流过;当单片机DA_OUT输出为0时,三极管Q1关断,发光管不亮;当单片机的DA_OUT输出不为0时,运放U1C输出达到高电平,Q1开启;当Q1开启后,引入负反馈,此时运放反相端电压为1/5VDA_OUT值;对于反相端,R28与R29并联,其电流等于)/(R28//R29),从而通过DA_OUT控制发光强度和LED发光的占空比。
2.1.3 信号采集电路
脉搏波信号采集电路如图3所示。D2为光电二极管,当红光或红外光照射时,光电二极管会产生微安级的电流,通过U1A构成的跨阻放大器,将微弱电流转化成毫伏级的电压,U1A的输出电压为Vout=249 kΩ·ID2。U1A构成的有源低通滤波器截止频率16.4 kHz,R5=249 kΩ,C1=39 pF。U1B构成的有源低通滤波器截止频率81 kHz,R13=49.9 kΩ,C2=39 pF;通带电压放大倍数为6,R12=10 kΩ。R21和C3构成的无源低通滤波器截止频率160 kHz。
图3 脉搏波信号采集电路
调试时,根据示波器显示电压范围,将DAC输出适当调整,使得采集端电压处于ADC的合理输入范围内。
2.2.1 软件主体程序
血氧仪的整体软件流程如图4所示。设备开机键按下一瞬间,MCU上电首先将相应引脚置高保持总电源通路,系统开机完成。接着进行系统各模块初始化,完成初始化后,DAC按照一定时序调节LED两端电压,ADC按照一定时序采集信号;对采集到的信号进行数字解调去除背景光的干扰。同时判断脉搏波信号值是否偏小,直到满足要求。对得到的红光和红外脉搏波信号进行滤波处理,提取脉搏波中所需要的特征点,计算求得血氧饱和度值(SPO2)、脉率值(PR)并显示在OLED屏幕上。
图4 血氧仪的整体软件流程
2.2.2 噪声信号快速滤除方法
采用动态光谱法测量很容易受到干扰[7],本设计中分别对高频毛刺噪声、混频运动干扰噪声进行滤波。采集到的原始脉搏波信号波形如图5所示。
图5 原始脉搏波信号波形
针对高频毛刺噪声,采用20点过采样平均下抽方法,经过数字平均提升信噪比,减少输入端的噪声。本设计将1000 Hz采样率下抽到50 Hz,确保光电容积脉搏波的时域特征。与传统EDM方法相比,实时性大大提高,也比较适合在下位机中运行。
原始信号经过20点过采样平均下抽后的脉搏波信号波形如图6所示。与图5进行对比,有用信号电压和噪声电压比值趋于无穷大,高频毛刺噪声基本全部滤除,与传统EMD方法相比,系统的实时性获得了较大提高,有利于在单片机上执行。
图6 经过20点过采样平均下抽后的脉搏波信号波形
针对混频运动干扰噪声,由于人体脉搏波信号是基本恒定周期的时间序列,在不同的脉搏周期相同的相位点对应的数值基本相同,本设计采用多点中值滤波对不同周期的脉率波峰谷值进行处理,以滤除轻微突变的运动噪声。该算法计算量极小,保证实时性,有利于在单片机上执行。
脉搏波轻微突发性运动干扰滤除前后的波形对比如图7所示。从图中能够看出,脉搏波的轻微突发性运动干扰得到了有效滤除。
图7 脉搏轻微突发性运动干扰滤除前后的波形对比
2.2.3 脉搏特征点提取
根据血氧饱和度和心率算法,需要在经过解调和滤波处理的脉搏波上找到单心跳周期的波峰值和波谷值,由于人体心跳存在重搏现象(单周期内会存在2个峰值和谷值),故采用前后滑动比较的方法去除重搏干扰[5]。
具体步骤(以提取红外光的波峰和波谷为例):在连续的红外脉搏波ir[m]数组中,当满足ir[16]为ir[0]~ir[32]的最大值时,ir[16]即为峰值,ir[16]对应时间存入ir_time_top[10]中;当满足ir[16]为ir[0]~ir[32]的最小值时,ir[16]即为谷值,ir[16]对应时间存入ir_bottom[10]中;脉搏波峰值和谷值提取方法如图8所示(图中只标记了ir[0]、ir[16]、ir[32],中间的点未标记出)。类似方法求出红光的波峰和波谷值分别存入r_top[10]及r_bottom[10]中。对r_top[10]、r_bottom[10]、ir_top[10]、ir_bottom[10]数组分别取平均值,消除手指不自主抖动和呼吸等低频干扰,最终得到红光和红外光脉搏波较为准确的峰值和谷值。
图8 脉搏波峰值和谷值提取方法示意
2.2.4 血氧饱和度值、脉率值
计算血氧值的方法为将提取得到的特征点的值(红光的峰值、谷值和红外光的峰值、谷值)代入式(1):
Y为血氧SPO2值为红光脉搏波单周期内峰值和谷值,为红外光脉搏波单周期内峰值和谷值。
脉率值即脉搏跳动的频率值,使用1 min内跳动的次数表示。图9为脉搏波信号波形图,2个峰值之间的时间差值为T2-T1,脉率P=60 s/(T2-T1)。
图9 脉搏波信号波形图
本设计中,ir_time_top[10]用来存放10个波峰之间的时间,由此可以计算出10个波峰之间的时间间隔Δt,则脉率值P计算公式如下:
将自制血氧仪与鱼跃血氧仪作对比测试实验。选择100名测试者,令其在室内静坐5 min,对同一测试者同一手的食指和中指分别使用自制血氧仪和鱼跃血氧仪进行测量,测试过程保持静止,测量3次,每次测试20 s,每次测试间隔也为20 s。图10为某个测试者测试过程中的图片(左侧为本设计血氧仪)。
图10 测试者测试过程(左侧为本设计血氧仪)
血氧仪准确性试验数据如表1所示,自制血氧仪与鱼跃血氧仪测得的血氧饱和度值最大差值为1,而该公司血氧仪血氧饱和度在70%~99%段测量误差为2%,由此可得到自制血氧仪的血氧饱和度值测量误差为3%。测得的脉率值最大相差1,而该公司血氧仪脉率值测量误差为1%,由此可得到自制血氧仪的脉率值测量误差为2%。
表1 血氧仪准确性试验数据部分结果
随着社会发展和人民生活水平的提高,人们对于医疗保健和疾病预防的重视程度也越来越高,便携式医疗设备逐渐成为家庭中必不可少的设备。本文以设计便携指夹式脉搏血氧饱和度及脉率检测为导向,在低功耗、发光管驱动设计、信号接收管设计等软硬件结构以及脉搏信号采集、处理、特征点提取、准确性测试等方面进行了研究,完成了指夹式脉搏血氧仪的设计,并通过与鱼跃血氧仪产品进行对比试验,验证了设计方案的可靠性。