基于手机耳机口的便携式血氧含量检测仪
2013-11-19刘维亭
李 俊, 郝 鹏, 刘维亭, 邢 倩, 周 扬
(江苏科技大学 电子信息学院,江苏 镇江 212003)
近年来,随着居民生活水平的日益提高,大众的健康意识日益增强,越来越多的心血管方面的疾病引起了大家的广泛关注.血氧饱和度是与该类疾病直接相关的重要生理指标之一[1],人们越来越迫切地要求能够随时随地对其进行监测.然而,传统血氧含量检测仪体积大、价格贵、功耗高、便携性差;有的血氧含量检测仪为了降低功耗和价格,牺牲了部分精度和功能.这些因素无疑阻碍了血氧仪的普及.
考虑到便携性、低成本、低功耗和高精度等要求,一款能够与智能手机配合工作的便携式血氧含量检测仪就有了其存在的必要[2].文中提出了一种基于智能手机耳机口通信的便携式血氧仪设计.它主要包括基于MSP430芯片的前端传感器模块以及基于智能手机应用程序(以下简称APP)的软件平台.文中将主要介绍前端电路设计以及软件中关键的滤波算法.
低功耗是前端传感器电路的重要特点.在非监测状态下,该血氧仪上的主控芯片MSP430处于待机休眠状态.当它通过耳机口与智能手机连接时,也不会立刻进入监测状态.这时手机耳机口没有能量输出,血氧仪升压电路输出低电平.而当通过手机上的APP在耳机右声道上循环产生正弦波后,右声道上有微弱的能量输出,血氧仪则通过对这些能量进行升压,产生3.3 V的高电平,即电平的跳变,它能够唤醒MSP430,使其进入工作状态.当血氧仪与手机非正常分离或者手机端关闭相应的APP后,右声道不再提供能量,此时必然出现高电平至低电平的跳变,该跳变使得MSP430进入休眠状态.血氧仪电路主要完成信号的采集、初步滤波与编码传输工作,不做复杂的运算,也不增加显示模块,这样可以降低功耗,提高便携性.手机通过耳机口电平的跳变识别接收到的数据,解码后处理,这样相对于传统血氧仪的内核而言,处理能力更强,精确度更高.
高精度是本设计的另一个特点.脉搏的大小一般是根据脉搏波相邻波峰或者波谷间距进行计算的,因此脉搏的计算对波形具有很高的要求.由硬件初步采集的信号存在多种外部干扰,无法准确描绘出脉搏波形.FIR低通滤波器具有线性相位的优点,即不改变波形而仅仅引入一个常数延迟,这对于准确计算脉搏波非常重要.由于理想滤波器的单位脉冲响应是无限长序列,且是非因果的.这时候可以通过窗函数对该单位脉冲响应进行截断以获得有限长单位脉冲响应序列[3-4].
1 测量方法
简言之,血氧饱和度即SpO2,是通过血液中氧合血红蛋白与总的血红蛋白(主要包括氧合血红蛋白与还原血红蛋白)含量的比值来反映的.而在实际测量中,往往通过运用光电容积脉搏波法[5]结合分光光度法来获得SpO2,即利用氧合血红蛋白和还原血红蛋白分别对波长660 nm的可视光和波长940 nm的红外光具有不同吸光光谱的特点来实现.其中,氧合血红蛋白对可见光吸收较多,而还原血红蛋白对红外光吸收较多.此外,人体组织包含静态吸光部分和动态吸光部分.当一束光穿过人体后,血氧饱和度与穿过的光强间有如下关系:
(1)
SpO2=α×Ratio+β
(2)
当一束光穿过人体时,入射光被人体中静态吸光部分和动态吸光部分分别吸收掉一部分,剩余的出射光Iout可表示如下:
Iout=Iac+Idc
(3)
式中:Idc为出射光中的直流成分,它在出射光中占较大比重;Iac为出射光中的交流成分,它主要受人体中动态吸光部分影响.由于人体中静态吸光部分基本保持不变,所以出射光的强度主要与动态吸光部分有关,则式(3)可以表达如下:
IoutMAX=Idc+IacMAX
(4)
IoutMIN=Idc+IacMIN
(5)
IoutMIN和IoutMAX分别为出射光强的最小值和最大值;IacMIN和IacMAX分别为血液中动态吸光部分为最大和最小时,出射光中的交流成分的大小.式(4)与式(5)相减得到式(6):
ΔIac=IacMAX-IacMIN=IoutMAX-IoutMIN
(6)
故式(1)可表达如下:
(7)
结合式(2)和式(7),即可获得血氧饱和度值.
2 硬件设计
MSP430FG437是德州仪器生产的一款低功耗16位芯片,其片内资源丰富,具有多路ADC以及3路运放,2路DAC,32KB Flash和1KB RAM,工作电流在微安级[7-8].该芯片能够有效降低功耗,减少外围电路设计,降低成本,并大大缩减研发周期.
通用的四段式3.5 mm耳机插头如图1.
图1 四段式耳机示意图Fig.1 Headset with four channels
血氧仪前端电路主要包括3部分:通信电路,硬件升压触发电路,血氧采集电路等.其中,通信电路与图1中的MIC相连,升压触发电路与右声道相连,电路上的地与耳机上的GND相连.
2.1 血氧采集电路
血氧采集电路主要包括LED驱动电路和光电
信号采集处理电路.LED主要通过H桥驱动,如图2.MSP430的两个GPIO以及一个DAC接口用来共同驱动血氧探头[9].其中,GPIO口主要用来控制LED的通断,DAC则用来控制LED的亮度,这样能够使得可视光和红外光光强在一定范围内波动,使得后端采集的信号中的直流成分基本相等.
图2 LED驱动电路Fig.2 LED drive circuit design
LED光线透过人体后照射在光电管上产生微弱的感应电流.感应电流通过一级跨阻运放被放大成电压信号.该信号一方面被MSP430FG437的ADC模块采集,另一方面通过一阶RC电路进行初步的低通滤波,然后送至二级运放的反相输入端.由于桥式电路功耗较大,如果直接采用可视光-红外光-可视光这样的驱动时序,即每秒打开可视光和红外光各128次,其工作电流接近60 mA,功耗较高.在实际运行时,采用如图3中改进的驱动时序.
图3 驱动时序改进后的LED驱动波形Fig.3 Improved LED driving waveforms
图3为通过示波器采集到的改进后的驱动波形,上下两个波形分别是可视光的驱动波形和红外光的驱动波形.以上面的波形为例,低电平阶段表示可视光LED的打开,任意两个低电平的间隔为7.8 ms,即表示1 s内该LED打开128次.该时序下可视光与红外光分别工作较短时间,然后关闭并等待下一次中断的到来,这样相对于可视光与红外光连续交替工作而言,能够较大程度降低功耗.
2.2 升压触发电路
手机耳机口每通道可提供15.8 mW功率,最大传输功率发生在240 mV[10]处,该电压通过升压电路后可作为触发电平.硬件升压与触发电路见图4.
图4 升压与触发电路Fig.4 Boost and trigger circuit
首先,手机右声道产生20 kHz规则正弦信号.该信号通过1:20的升压线圈进行升压,再通过整流桥与肖特基二极管以及稳压芯片获得3.3 V的电压.单片机I/O口循环采用上升沿触发和下降沿触发中断.由图4稳压芯片出来的3.3 V可被单片机端口识别为高电平.当要启动血氧仪前端电路时,右声道产生正弦波,此时稳压芯片输出口电平由低到高跳变,并保持高电平状态,血氧仪前端电路工作,同时自动将I/O口中断模式设置为下降沿触发.当将手机与前端电路分开,或者在手机上停止右声道的信号输出时,稳压芯片输出端的信号则由高电平跳变为低电平,血氧仪前端电路处于休眠状态,同时自动将I/O口中断模式设置为上升沿触发.电阻R1主要是为了在高电平向低电平跳变时瞬间拉低电压.
2.3 通信电路
通信方面主要采用前端电路到手机端的单向通信方式实现数据的传输.即前端电路利用手机的MIC接口向手机发送数据.其电路由一个RC低通滤波器及隔直电容组成,主要用来降低通信过程中的高频干扰,并且隔离耳机口输入电压中的直流成分,防止由于高电压造成的耳机口损坏.整个电路的地部分通过网络DGND相连.该网络通过一颗0欧姆电阻与模拟地隔开.通信电路见图5.
图5 通信电路Fig.5 Communication circuit design
3 软件设计
软件实现主要包括两个部分:底层单片机端软件实现和手机端应用软件实现.这里主要介绍单片机端的软件实现,并同时给出手机端的设计思路.
当硬件上电之后,MSP430工作,初始化并打开反向并联的LED灯中的一个.灯亮一段时间后开始采样,采样完成后进入采样中断,在采样中断中关闭当前打开的LED灯,并对采样的数据进行编码发送.完成发送后退出采样中断,等待定时器中断的到来.当定时中断到来后,打开另一个LED,配置DA功能,并根据上一次采样数据调节LED光的亮度.完成后等待采样中断的到来,完成另一个LED的采样等,依此循环工作.MSP430程序运行流程见图6.
图6 MSP430程序运行流程Fig.6 Flow chart of MSP430 program
由于手机的耳机端口不能很好地识别数字信号,所以当前端电路向手机发送数据时,使用曼彻斯特编码来实现数据的传输,即通过电平的跳变来帮助手机耳机口识别判断输入的信号[10].
曼彻斯特编码亦被称为相位编码,是将码元分成两个相等的间隔:即在编码位的1/2位处,若被编码数据位为“1”,则负跳,反之为正跳;编码位的开始处,若被编码数据位为“1”,则为高电平,反之为低电平[11].
这里使用1 kbyte/s的传输速率,并且设定每一个编码位的1/2位处,低电平到高电平跳变表示“1”,高电平到底电平的跳变表示“0”,首位不跳变.此处使用延时程序来实现每个字节125微秒的发送时长,即对“1”而言,发送62.5微秒低电平,再发送62.5微秒的高电平,以此来实现一个“1”的传输.由于需要交替传输可视光和红外光数据给手机,所以在数据开头针对不同的光增加一个字节的高电平或低电平来区分可视光和红外光,由于传输的数据的大小不会超过4 096(0~4 095),所以12位数据位即可满足设计要求.
对前端电路传输的信号进行编码后需要向手机端发送.图7,8为采用示波器捕捉到的某一时刻前端电路通过耳机口发送给手机的波形.通过解码图7,8的波形,并与实际的数据对比,即可判断前端电路向手机端发送的波形是否正常.以图7为例,首先出现高电平到低电平的跳变,并且低电平持续一个字节,则该低电平作为起始判断位,且起始位为低电平表示该次传输的为红外光信号;后面依次为1001 1011 0001,该二进制数需要转换成十进制数,即2 481,该数与通过IAR仿真环境设置数组获得的单片机内部的数据一致,表示该次传输无问题;最后由于首位为低电平,所以传输完后末尾置低电平.由于可视光与红外光信号是交替传输的,那么将终止电平与起始电平设为一致,即都为低电平,在下一次信
图7 红外光信号Fig.7 Signal of infrared light
图8 可视光信号Fig.8 Signal of visible light
号传输的起始状态必然会出现电平的跳变,这样有助于手机端判断当前传输的是可视光信号还是红外光信号.
手机端需对单片机端传输的数据进行处理,图9给出了手机端软件流程图.当用户打开软件,并点击开始后,手机端右声道产生正弦信号.单片机端开始工作,并交替向手机传输编码后的信号.手机端接收信号,通过软件进行处理并显示.当用户点击关闭之后,手机右声道停止产生正弦信号,单片机端断电,同时手机端停止接收数据.
图9 手机端软件流程Fig.9 Flow chart of smart phone software
4 FIR软件滤波
人体脉搏波的频率一般在10 Hz以内.对脉搏波的干扰主要包括50/60 Hz工频干扰以及100 Hz/120 Hz室外光干扰.因此数字滤波具有如下要求:
① 通带截止频率ωc<10 Hz;
② 阻带起始频率ωs<50 Hz;
③ 滤波效果好;
④ 计算量尽可能小.
综上考虑,基于Hamming窗[12]的FIR低通滤波器较为适合.其原因在于:
① FIR具有线性相位,这对于计算脉搏波时尤其重要;
② 系统稳定,设计简单;
③ 在过渡区衰减达到50db[13-14];
④ 能有效消除频谱泄露.
根据Hamming窗主瓣带宽8π/N可得到窗函数的长度N:
(8)
式中:Fs为采样频率.当通过式(8)求得的N不为整数时,N取其右端相邻整数.这里取Fs=128 Hz,ωc=9 Hz,ωs=40 Hz时,得到N=16.5,实取N=17.为了计算简便,直接利用MATLAB的FDATool工具箱帮助完成设计,该工具箱在MATLAB的Toolboxes里面,设置如图10.其中采样频率、通带截止频率根据各人要求设定,滤波器的阶数N是通过式(8)计算获得,Filter Order栏所填的阶数为N-1.点击设计,即可获得所需要的滤波系数:
图10 FDATool工具箱设置Fig.10 FDATool box setting
h=[-0.001 362 679 829 261 412 9, 0.000 287 083 116 319 590 02,
0.006 007 364 635 028 256, 0.020 819 596 020 479 468,
hucMSCs由重庆医科大学附属儿童医院干细胞中心实验室分离并鉴定,Piwil2-iCSCs由重庆医科大学附属儿童医院儿童泌尿生殖发育与组织工程重点实验室转染并保存[22-23]。主要试剂和仪器为DMEM、DMEM/F-12培养基(Gibco)、胎牛血清(Gibco)、CCK-8试剂盒(日本株式会社同仁化学研究所)、BCA蛋白浓度测定试剂盒(碧云天)、CD9、CD63、Piwil2、MMP9抗体(Abcam)、MMP2抗体(Genetex)、PKH26红色荧光细胞连接试剂盒(Sigma)、超速离心机(Beckman)。
0.047 147 847 993 987 76, 0.082 442 758 296 406 71,
0.119 086 009 482 187 75,0.146 915 164 985 451 79,
0.157 313 710 598 800 17, 0.146 915 164 985 451 79,
0.119 086 009 482 187 75, 0.082 442 758 296 406 71,
0.047 147 847 993 987 76, 0.020 819 596 020 479 468,
0.006 007 364 635 028 256, 0.000 287 083 116 319 590 02,
-0.001 362 679 829 261 412 9]
(9)
由式(9)看出,该滤波系数具有对称性,实际运算时通过化简可以降低一半的乘法运算量.
y(φ)=h×[x(φ),x(φ-1),…,x(φ-N+1)]T
(10)
式中;y(φ)表示第φ个滤波的数;x(φ)表示第φ个被滤波数;N为窗函数长度.
通过MATLAB绘制出滤波前与滤波后的脉搏波形图,如图11.
图11a),b)是经过式(10)滤波后的可视光与红外光数据通过MATLAB的绘图指令直接获得的波形图.图11c),d)分别为软件滤波前的可视光与红外光波形图.从图中可以看出,滤波前后波形相位没有发生偏移.并且滤波后的波形图能够如实的反应人体的脉搏和血氧饱和度.
a) 可视光下滤波后的脉搏波形
b) 红外光下滤波后的脉搏波形
c) 可视光下脉搏波形
d) 红外光下脉搏波形图11 滤波前后波形对比Fig.11 Comparison between the waveforms before and after filtering
5 测试数据
使用图3的时序,将血氧仪探头置于封闭不透光的盒子里.示波器测试整个电路运行情况.测试要求:① 探头灯亮;② 前端电路向手机端发送的数据波形正常;③ 确保通过串口读取的前端传感器数据描绘出正常波形图;④ 电压不低于1.8 V.若满足上述各要求,则记录当前时间点电压值;若不满足上述任一要求,测试停止.前6日波形正常,血氧仪工作正常;第7日,可视光波形与条件③出现不符.最终统计数据如表1.
通过计算得到图11中任意两个波峰之间的间隔K,将K代入下式即可获得脉搏数值:
(11)
在较短时间间隔内,实际测量的脉搏数值与通过鱼跃血氧仪测得的脉搏值的数据对比如图12.
表1 血氧仪电压测试情况Table 1 Voltage test of oximeter
图12 脉搏数值走势Fig.12 Trend of pulse value
在图11的基础上,结合式(7)对4个正常人各采集了5组数据,最终获得的R值见表2.
表2 测试获得的血氧R值Table 2 R-value obtained by testing
6 结论
在传统血氧仪的基础上,通过改进通信方式,最终实现了血氧仪与智能终端的连接以及手机对前端电路的控制.前端电路负责数据采集,手机负责数据处理,耳机口作为数据与命令传输的桥梁.该设计一方面提高了现有血氧仪的便携性、精度和处理速度,另一方面为医疗设备与智能终端的通信与连接提出了一种很好的解决方案,同时,通过改进时序使得前端电路中的传感器部分功耗降低,通过将数据传输给手机处理,降低了前端电路中MCU的功耗.最后,该血氧仪能够实时地将血氧和脉搏数据通过手机传输至数据云,方便数据的存储、调用和共享等后续功能的实现.
参考文献(References)
[ 1 ] 党彦平,耿秀双,马继香,等.脉搏血氧饱和度监测在心血管疾病中的应用[J].医学综述, 2009,15(5): 795-797.
Dang Yanping,Geng Xiushuang,Ma Jixiang,et al.Application of pulse oxygen saturation monitoring in cardiovascular disease[J].MedicalRecapitulate,2009,15(5): 795-797.(in Chinese)
[ 2 ] 郝鹏.基于耳机传输数据的血氧含量监测仪:中国, 201210513392.2[P]. 2012-10-05.
[ 3 ] 郧刚,张阿卜.适合单片机实时处理的简单FIR滤波器设计[J].现代电子技术,2007,30(11): 46-48.
Yun Gang,Zhang Abu.Design of fir filter suitable for processing of the single chip in real-time[J].ModernElectornicsTechnique,2007,30(11):46-48.(in Chinese)
[ 4 ] 田新广,高立志,孙春来,等.基于窗函数法的非选频型FIR数字滤波器优化设计[J]. 数据采集与处理, 2008, 23(2): 228-232.
Tian Xingguang,Gao Lizhi,Sun Chunlai,et al.Optimal design of non-frequency-selective fir digital filters based on windowing method[J].JournalofDataAcquisiton&Processing,2008, 23(2): 228-232.(in Chinese)
[ 5 ] 张彬.基于脉搏波的血氧饱和度检测算法的研究[D].北京:北京交通大学, 2009: 9-12.
[ 6 ] 严新忠,杨静,郭略.人体血氧饱和度监测方法的研究[J].医疗装备,2005,18(12):1-4.
Yan Xinzhong,Yang Jing,Guo lue.Study on measuring method of human oxygen saturation[J].ChineseJournalofMedicalDevice,2005,18(12):1-4.(in Chinese)
[ 7 ] Texas Instruments Incorporated. MSP430FG43x mixed signal microcontroller [EB/OL]. USA: Texas Instruments Incorporated, 2004. http://www.ti.com/lit/ds/symlink/msp430fg437.pdf.
[ 8 ] Texas Instruments Incorporated. Msp430x4xx Family User's Guide [EB/OL]. USA: Texas Instruments Incorporated, 2013.http:∥www.ti.com/lit/ug/slau056l/slau056l.pdf.
[ 9 ] Chan V, Underwood S. A Single-Chip pulsoximeter design using the MSP430 application report: Technical documents from Texas Instruments[R]. USA: Texas Instruments Incorporated, 2005:3-7.
[10] Kuo Y S, Verma S, Schmid T, et al. Hijacking power and bandwidth from the mobile phone′s audio interface[C]∥ProceedingsoftheFirstACMSymposiumonComputingforDevelopment. [S.l.]:ACM, 2010: 24.
[11] 郗大海,李中跃.曼彻斯特编码的解码及其应用[J].辽宁省交通高等专科学校学报, 2010, 12(4): 24-26.
Xi Dahai,Li Zhongyue.The decoding of Manchester code and its application[J].JournalofLiaoningProvincialCollegeofCommunications,2010,12(4):24-26.(in Chinese)
[12] 王帅,陈亮,徐建锋.FIR数字滤波器设计中各种窗函数的比较[J].科技创新导报, 2009,(15): 89, 92.
[13] 谭家杰,罗昌由,黄三伟, 等. 用改进的窗函数设计FIR 数字滤波器[J].衡阳师范学院学报, 2010, 31(6): 31-34.
Tan Jiajie, Luo Changyou,Huang Sanwei,et al.Research on FIR digital filter design using an improved window function[J].JournalofHengyangNormalUniversity,2010,31(6):31-34.(in Chinese)
[14] 苏玉萍,郑琼琼,余冬菊.基于MATLAB 的FIR滤波器设计[J].中国科技信息, 2008 (8): 144-145.
Su Yuping, Zheng Qiongqiong,Yu Dongju.Design of FIR digital filter based on MATLAB[J].ChinaScienceandTechnologyInformation,2008 (8): 144-145. (in Chinese)