基于USB的实时心音信号采集系统*
2013-09-07张义敏曾庆宁
张义敏,曾庆宁,熊 伟
(桂林电子科技大学 信息与通信学院,广西 桂林 541004)
心音信号是人体重要的生理信号之一。由于心音的产生机理,它能够很好地反映心脏活动、血液流动和心脏的健康状况。音信检测与分析能够准确判断心音信号,提早发现心血管疾病,是了解心脏和血管状态的一种不可缺少的手段。但是心音信号中含有心血管病变的许多信息,单纯依靠心脏听诊很难判断心血管是否健康。目前广泛应用的心电图检查是心脏变时性和变传导性的最佳检测方法,但不能检测心脏的变力性先天心脏瓣膜受损。心电传导组织病变引起的心脏机械活动障碍不会首先反映在心电信号(ECG)上,但却能首先在心音上反映出来,因此,心音具有心电信号不可替代的诊断信息[1]。韦哲等人设计了基于声卡的心音信号采集与处理系统[2],实验表明该系统采集到的信号信噪比较低不利于后期的处理。王晓燕等人设计了基于串口的采集系统[3],但串口的传输速度慢,同时由于现在一般的计算机都不存在串口,不利于推广。本文设计了基于USB的实时信号采集系统。系统总体框图如图1所示。
图1 系统总体框图
该系统主要由心音信号采集电路、A/D转换、USB通信和上位机显示部分组成。实验结果表明该系统可以高效、实时地显示采集到的心音信号,并且可以达到视听合一的目的,得到的信号信噪比高,利于后续的研究。
1 心音信号采集电路
利用自制的心音传感器采集到的信号为毫伏级信号,经过前置放大电路进行初步放大,对放大后的信号进行低通滤波,然后经过中间级放大,通过耳机输出,因为此时的信号仅有几百毫伏,为了便于后期处理,需经过后级可调放大,得到伏级信号可经过A/D等后期处理。
1.1 前置放大电路设计
由于心音信号十分微弱,而前置放大电路又是微弱信号检测的第一级,担负着将微弱信号放大的任务,应该尽量减少测量过程中引入的观测噪声。而前置放大器则是引入噪声的主要部件之一,所以要求前置放大器应该具有很好的低噪声性能[4]。又因为处理的是声音信号,所以选取了具有超低失真低噪声的OPA2134运算放大器,同时还具有高输入阻抗、高共模抑制比、低漂移等特点。前置放大电路如图2所示。
图2 前置放大电路
J2为传感器输入接口,作为前置放大,为了抑制噪声,放大倍数不应该太大,此电路的放大倍数为1+R2/R1。电容C1的作用是平滑滤波,降低高频增益。
1.2 低通滤波器的设计
从前级放大电路得到的信号十分微弱,并且掺杂着听诊头与衣服或者皮肤摩擦的噪音以及一些高频的机械噪声,所以需要通过低通滤波器来滤除高频成分。
低通滤波器电路如图3所示。设计中采用二阶压控型低通有源滤波器,相比一阶滤波器,可以使输出电压在高频段以更快的速率下降,以改善滤波效果。为了使电路稳定工作,滤波器的增益应该小于3[5]。
图3 低通滤波器电路
1.3 中间级放大电路设计
图4为中间级放大电路,由于需要驱动耳机输出,采用了适合应用在高品质和专业音响设备、仪器、控制电路及电话通道中的放大器NE5532AP。考虑听觉的舒适度,这一级的放大倍数也不能过大。为了得到更好的效果最好采用双电源供电,R8可以调节耳机音量。
图4 中间级放大电路
1.4 后级放大电路设计
由于从中间级得到的信号只有几百毫伏,不便于后期的处理,所以在这里又加了一级放大,可以得~-5 V到+5 V之间的信号,便于A/D采样。
2 A/D转换
本系统采用STC12C5A60S2单片机作为主控芯片。该单片机自带8路10位高速A/D转换器,速度可达250 kHz(25万次/s)。STC12C5A60S2系列单片机ADC由多路选择开关、比较器、逐次比较寄存器、10 bit DAC、转换结果寄存器(ADC_RES和ADC_RESL)以及ADC_CONTR构成。
STC12C5A60S2系列单片机的ADC是逐次比较型ADC。逐次比较型ADC由一个比较器和D/A转换器构成,通过逐次比较逻辑,从最高位(MSB)开始,顺序地对每一输入电压与内置D/A转换器输出进行比较。经过多次比较,使转换所得的数字量逐次逼近输入模拟量对应值。逐次比较型A/D转换器具有速度高、功耗低等优点。
3 USB通信
本文采用南京沁恒公司的USB芯片CH372,该芯片可以实现1 MB/s的传输速度,全速USB设备接口,兼容USB V2.0,即插即用,外围元器件只需要晶体和电容。提供一对主端点和一对辅助端点,支持控制传输、批量传输、中断传输,具有简便的内置固件模式和灵活的外部固件模式。内置固件模式屏蔽了相关的USB协议,自动完成标准的USB枚举配置过程,完全不需要本地端控制器作任何处理,简化了单片机的固件编程。本文中采用STC12C5A60S2来控制CH372实现下位机与上位机的USB通信。
4 上位机软件的编写
上位机利用VS2010平台开发,开发的界面要比Microsoft Visual C++6.0美观。主要采用MFC的位图双缓冲机制对采集到的数据进行图形绘制[6],得到的图形是连续的,而不是一屏一屏地刷新。双缓冲的原理可以形象地理解为∶把电脑屏幕看作一块黑板。首先在内存环境中建立一个“虚拟”的黑板,然后在这块黑板上绘制复杂的图形。图形全部绘制完毕时,再一次性地把内存中绘制好的图形“拷贝”到另一块黑板(屏幕)上。采取这种方法可以提高绘图速度,极大地改善绘图效果。
5 实验结果
该系统已经成功采集了多例心音样本,采集时需保持现场安静,轻压传感器。图5所示为一例正常心音,从该图可清晰地分辨出心音的各种成分,其中的有效成分得到了很好的保留。
图5 心音采集系统显示界面
实验结果表明,该系统能够很好地显示采集到的心音波形,利于医生对心音进行分析。该系统采用廉价的STC12C5A60S2(市场价6元)作为单片机,利用其自带的AD大大降低了设备的成本。同时可以进一步完善该设备,使之成为大众可用的便携式医疗器械。
[1]陈天华.基于现代信号处理技术的心音与心电信号分析方法[M].北京:机械工业出版社,2012.
[2]韦哲,李战明,程自峰.基于声卡的心音信号采集与处理系统的实验研究[J].中国医疗设备,2008,23(10):7-10.
[3]王晓燕,曾庆宁,粟秀尹.基于FPGA的心音信号采集[J].微型机与应用,2012,31(11)∶28-30.
[4]刘俊,张斌珍.微弱信号检测技术[M].北京:电子工业出版社,2005.
[5]高吉祥.模拟电子技术[M].北京∶电子工业出版社,2008.
[6]孙鑫.VC++深入详解[M].北京:电子工业出版社,2006.