基于MSP430的改进型心电仪摘要:本心电系统采用MSP430F149单片机为核心器件实现对放大的心电信号进行处理。该系统的实现过程是先将采集到人体小的心电信号用仪表放大器进行放大,再进行高通、低通滤波,然后经过线性光耦TIL300进行信号隔离(改进的关键),最后将放大的心电信号输入MSP430F149单片机进行采样、数字滤波(虑除50Hz工频干扰)、LCD心电波形显示(或24C64存储、LCD回放波形、心率测量),还可以用此单片机控制DS1820进行体温测量。此系统除LCD外,所有的芯片都是低功耗的(包括MSP430F149、仪表放大器INA128、OPA2604、OPA2132等),故可以作为便携仪器。与以前没有用线性光耦进行信号隔离相比在噪声的处理上有了很大的改进。关键词:线性光耦,数字滤波,放大器主题:心脏跳动产生的电信号,使身体不同部位的表面发生电位变化,将其记录下来即可得到心电图(Electrocardiogragh,ECG)。人体心电信号的幅值约为20微伏―5毫伏,频带宽度为0.05――100Hz,心电信号源阻抗为1―50千欧。这三组基本参数是设计心电仪的主要依据。相对于环境干扰,心电信号是非常微弱的,因此本系统设计的关键和难点在于抑制噪声,为防止前后电路间的信号干扰可以加信号隔离电路。其主要原理如下:此系统硬件包括6大模块,分别是前置放大、滤波网络、后级放大、信号隔离、数字处理、波形显示。各模块原理分别介绍。一、前置放大。前置放大电路是以TI公司的INA128仪表放大器位核心,其内部原理如图四所示。INA128的主要特点是低漂移电压,高共模抑制比(120DB),宽供电范围(2.25――18V),并具有输入脚电压保护功能(40V)。INA128的外部电阻设定脚上接入了不同阻值的电阻,可以完成1――10000放大倍率的设定,其带宽在增益Av=100时,达到200kHZ,具有高增益带宽积。此外本系统采用了一个低噪声2132OPA组成右脚驱动电路来提高前置放大级的共模抑制比。其原理图如图一。图一前置放大电路图二、滤波网络。此系统要首先经过高、低通滤波,比较简单不做详细介绍。最主要的是进行50Hz的工频陷波,传统的有源滤波陷掉的频带较宽,很大一部分心电信号被陷掉不利于心电波形的分析,故我们不采用。我们可以用梳妆滤波器进行数字滤波,不仅陷掉了50Hz的工频信号,而且50Hz的一、二次谐波信号也被陷掉了。此处选择采样频率为350Hz,其系统函数为7711)(azzzH,a为0-1之间可选,用MATLAB仿真的效果如下图二(此处采样频率是350Hz,a=0.85)。图二陷波仿真频普特性图三、后级放大皮肤表面和电极之间可能会形成原电池,使电极之间存在固定的电位差,因此前置放大的增益不能太高,否则容易饱和。在此尽一步的放大,选择噪声低、选择精度高、低漂移、满电压幅度,精密型运算放大器可防止引入自身噪声,这对放大小信号来说尤为重要。这里推荐一款芯片TLC2201。电路比较简单,不做纤细介绍。四、信号隔离。这是此心电仪的不同之处,主要是为了防止后级数字处理给前级带来的地信号的干扰。这里我们采用线性光耦TIL300,主要是因为它的性价比高。TIL300是一个由红外光LED照射分叉配置的隔离反馈光二极管和一个输出光二极管组成。该器件采用特殊制造技术来补偿LED时间和温度特性的非线性,使输出信号与LED发出的伺服光通量成线性比例。TIL300的结构及一般的外围配置电路如图三所示。图三IL300的一般电路如图可知,若aV=0——4V,fI=1――10mA,则R3=iiIU=mAV104=400,R1=40K,又因为12ppII=1,所以R2=R1=40K.当然这是理想值,实际应用时还的调节。五、数字处理。MSP430单片机有很多类,我们要从中选一款对我们的设计最方便,最易容易实现且性价比高的芯片。最终我们选择了MSP430F149,其原因是,除了具有MSP430共同的优点外,MSP430F149单片机由于具有硬件乘法器,因此具备一定的DSP功能,可以ECG信号进行滤波等预处理;12位200Ksps的A/D转换器,自带采样保持;具有3个捕获/比较寄存器的16位定时器Timer_A,Timer_B;多达60KBFLASHROM和2KBRAM;价格相对较便宜。此部分包括A/D采样、数字滤波(前面陷波滤波已祥讲,此处不做进一步介绍)、波形的存储、体温的测量及波形的显示。我们在详细介绍下波形存储和体温测量。波形存储,虽然MSP430F149有60KB的FLASH,但其程序和数据在同已存储空间内,因此不能用其自身来存储采样到的心电信号。我们选择串行I2C总线型的AT24C64,其存储容量为8KB,于单片机相连的只有一根数据线(SDA)和一根时钟线(SCL),操作简单,价格便宜。体温测量,如用普通的水银温度计,实现起来较困难,和单片机相连的外围器件较复杂,编程也不容易。最后我们选择了单总线DS1820芯片,这是一款可编程的器件,测量温度可精确到小数后两位,系统拥有结构简单、精度高、实时性好的特点,便于进行网络传输,具有广阔的临床实用价值.。MSP430F149自带A/D采样,只要编程实现就可以了。因为LCD液晶是+5V的供电,MSP430F149是+3.3V的供电,电平不匹配,但是MSP430F149与LCD相连的引脚都是输出状态,因此可以不考虑电平匹配的问题,直接相连就可以了。这部分最关键的就是编程。六、波形显示。考虑到家庭应用,所以不易采用数字示波器,用普通的LCD液晶就可以了,与单片机的接口电路较简单,且易与控制。另外,就是屏蔽线,一定要买单根屏蔽且外层总屏蔽的导线,这样可以减小单根导线间的干扰。下面我们再详细介绍下软件编程。,本系统采用SPF149控制ECG的显示、存储和回放。单片机在刚开机时扫描按键,20秒内没有按键时单片机自动进入低功耗,这时可用按键唤醒低功耗,执行相应的子程序,流程图如下图四。主程序开始系统初始化扫描键盘体温执行所选择的子程序循环箭头将要执行的程序选择键是否按下确定键是否按下存储回放心率测量显示界面执行DS1820的子程序并显示体温写I2C子程序进行存储,直到完毕执行心率子程序并显示心率读I2C子程序进行显示,直到完返回键是否按下选择键是否按下循环将要显示的导联Ⅰ或Ⅱ确定键是否按下显示所选择的导联Ⅰ或Ⅱ返回键是否按下返回键是否按否按下结论:通过实际产品来看,把数字示波器接到线性光耦的前级,看到的基本是50Hz的工频信号,偶尔会看到波形突跳。把数字示波器接到线性光耦的后级,可以清楚的看到心电波形,只是上面有小的毛刺(工频信号),在经过数字陷波,出来的信号相当完美,可以清楚的在LCD液晶上显示。还可以测得人体的体温和心率。再则,对于病人不方便到医院,可以把他的心电信号存储起来,由其他人带到医院帮助医生确定病情。其性价比很高,具有使用价值。参考资料:《MSP430系列16位超低功耗单片机原理与应用》清华大学出版社《数字信号处理》西安电子科技大学出版社