基于MSP430的十二导联同步心电图机的设计

发布者:幸福的人生最新更新时间:2011-01-07 关键字:MSP430  心电图机设计 手机看文章 扫描二维码
随时随地手机看文章

  MSP430系列单片机在医疗设备行业应用很广泛,以其低功耗,外围设计简单的优点得到了设计者的喜欢。而心电图或CT的复杂的医疗设备应用的很多。心电图机是诊断心脏病的重要仪器之一,能够为医生提供最直观的心电波形。欧美国家已经普遍使用十二导心电图机。十二导联心电图同步记录能客观表达各波、段和间期,可以对早博、心动过速、预激综合征、束支阻滞及分支阻滞等进行定位诊断与鉴别诊断;将心电数据存入数据库,可以进行各种电参数的统计学处理,为临床医疗和科研工作带来了极大便利。根据目前的微电子、单片机和计算机技术成功研制出一种便携式心电图机,它可通过液晶显示器显示心电图,同时将数据在计算机上显示并通过网络实现信息远传,是一种新颖的临床和家庭兼用的心电图机。

标准十二导联简介

  人体是一个导体,心脏壁收缩引起的动作电势使电流由心脏传播至整个人体,所传播的电流在人体的不同部位产生不同的电势,可以通过电极在皮肤表层感应得出。为了完整地记录心脏的电活动状况,常用水平和垂直方向的十二种不同导联作记录,称为标准十二导联,即Ⅰ、Ⅱ、Ⅲ、aVR、aVL、aVF、V1、V2、V3、V4、V5、V6导联。测量时须在人体上安放10个电极,分别为:右手电极VR、左手电极VL、右腿电极RL、左腿电极VF、胸部6个电极C1~C6。根据国家标准,由这些电极可以合成标准12导联心电图,合成方式如下:

  (1) 标准肢体导联:

  导联I=VL-VR;

  导联II=VF-VR;

  导联III=VF-VL;

  (2) 加压单极肢体导联:

  aVR=VR-(VL+VF)/2;

  aVL=VL-(VR+VF) /2;

  aVF=VF-(VL+VR)/2;

  (3) 常用的胸导联:

  胸导Vi=Ci-(VR+VL+VF)/3,式中,VR、VL、VF和Ci(i=1~6)表示右臂、左臂、左腿和胸壁的电位。

系统总体方案

  本十二导联同步心电图机采用德州仪器公司的MSP430系列的MSP430FG4616作为控制核心,可方便地实现心电信号的采集、处理、显示以及传输。系统主要由五部分组成:前置放大电路部分用来放大各导联心电信号;带通滤波电路部分用来滤除心电信号频率范围以外的噪声;陷波电路用于滤除50Hz工频干扰和35Hz肌电干扰;生物电信号数据采集电路部分用来采集放大后的各导联心电信号并将数据发送给单片机;右腿驱动电路部分不仅可以抑制50Hz工频干扰,还可根据检测到的心电信号适当调整人体电平,便于ADC采样;数据处理显示部分用来采用滤波算法处理采集的数据并实时显示心电波形;网络传输部分用来将采集的心电数据传输至医院或疾病控制中心,便于随时了解病人的状况。系统功能在液晶显示的菜单下通过按键选择完成,系统总体框图如图1所示。

图1 系统总体框图

系统硬件设计

  心电信号由专用电极获取后送入前置放大器初步放大,在对各干扰信号进行一定抑制后送入带通滤波器以滤除心电频率范围以外的干扰信号,再经50Hz和35Hz陷波器滤除工频和肌电干扰后送入主放大器,最后主放大器将滤波后的信号进一步放大到合适范围后送入A/D采样电路以进行高精度A/D转换,单片机接收到A/D转换的数据进行滤波及相关处理后在液晶屏上显示。


图2 心电信号前置放大电路

  心电信号前置放大电路

  电极获取的心电信号是十分微弱的体表电信号且在心电信号检测的过程中常伴有强干扰,因此必须经特定处理后才能用于临床诊断。本设计采用TI公司的精密仪表放大器INA326,设计了八通道心电信号采集电路,同时提取I、II及V1~V6八导联心电信号,其它四导联心电信号则在经ADC变换后在数字处理部分根据需要利用I导和II导组合实现。心电信号前置放大电路如图2所示。前级共模信号由被测者的左、右手以及左腿获取,该电路在前级增加了一级共模信号驱动,用来降低共模信号的输出阻抗和提高共模信号驱动能力,确保在多导联情况下共模信号电平的稳定。后级采用仪器放大器INA326获得8路心电信号,INA326可以消除共模至双端输入的AC线路噪声并放大输入端所残余的非直流信号,经高倍放大后心电信号被送至ADC采样电路。Ro、Co为输出滤波器,可以滤除电路输出的噪声,同时可以作为ADC电路的输入滤波器。INA326用独特的内部技术实现极好的共模抑制比。为了实现更好的高频CMR,在2和3脚之间加了一个小电容,同时在仪器放大器的反相输入端串接了与正相输入端阻值相同的电阻,以减小INA326输入偏置电流对输出信号的影响。



图3 右腿驱动电路

  ADC恢复放大电路

  由于电极电势很高,实际可达500mV,因此通过交流耦合消除电极电势的影响就至关重要。本设计反馈配置中的ADC恢复放大器可以消除直流偏置。当INA326的输出电压增大以后,反馈积分器将施加一个等量的负相电压至INA326基准端,通过此类线性化求和,可实现电极偏置的消除。直流恢复器的作用是将原本的直流耦合放大器转变为交流耦合放大器,随着直流固有模式电压的消除,输出级可以放大交流心电图信号而不会产生过饱和。

  右腿驱动电路

  50Hz工频干扰是心电测量中最重要的干扰,仅靠前置放大器的高共模抑制比还不足以完全抑制,良好的右腿驱动电路可以提高电路的抗工频干扰能力,并与人体和放大电路共同形成闭合回路,保证心电放大电路的正常工作。

  由于源自人体的不同端点,左臂与右臂的心电图信号处于不同的电平,且须被INA326放大,为了更好地抑制50Hz的噪声,通过INA326所得到的人体共模电压被用于反相共模信号,并与2.5V基准电压比较后通过运算放大器OPA2335驱送至人体的右腿,仅需少量的小型放大器即可实现有效的共模态抑制改善。该方法不仅可以抑制50Hz工频干扰还可根据心电信号适当调整人体电平,便于ADC采样。右腿驱动电路如图3所示,其中COM端为前级运放INA326的共模输出信号,同时在前级还增加了一级电压跟随器用于隔离。

  [page]

  陷波电路

  虽然前置放大电路对共模干扰具有较强的抑制作用,但部分工频干扰是以差模信号方式进入电路的,且频率处于心电信号的频带之内,加上电极和输入回路不稳定等因素,前级电路输出的心电信号仍存在较强的工频干扰,因此通常要进行陷波。本设计利用美国凌力尔特有限公司的LTC1068-50集成开关电容滤波器设计了一个8阶巴特沃斯50Hz陷波器,经测试陷波深度可达50dB,可衰减100倍左右,效果比较理想。

  心电数据采集电路

  TI公司的ADS1258元件采用了低噪声的delta-sigma ADC架构,可有序地循环16个通道,单周期(零延迟)高速转换速率可编程,速率1.8K~23.7KSPS每通道,不会产生性能衰退。附带的内置系统监测寄存器提供了电源电压、温度、基准电压、增益、以及偏置的测量,已被广泛用于诸如患者监测及心电图系统等高精度、多通道应用,简化的数据采集模块的原理图如图4所示。注意要在ADS1258的模拟信号输入端跨接一个2.2nF的电容来旁路ADC采样电流。对±1V的输入信号,可以不用分压电阻桥,直接在其输入端串接一个保护电阻即可。外部运放OPA365将单端输出转变为全差分输出用来驱动ADC,另外还要对2.5V的参考电压进行滤波及通过运放OPA350缓冲来提供低噪声参考电压。

  数据处理存储显示

  单片机通过P1接口读取ADS1258采集的数据,进行特定处理后将数据依次存放在外部存储器中。数据存储器使用ATMEL公司的AT29LV1024,它具有1M位的存储空间且具有掉电保护功能,可以在意外掉电或关闭电源的情况下保存数据。本系统通过液晶显示器显示实时采集的心电波形及分析结果。另外系统采用MAX3232扩展串口,并最终将心电数据传送至医院或疾病控制中心,便于医院随时了解病人的状况。

系统软件设计

  心电图机的主控模块和功能模块按照系统功能框图设计、执行,微型十二导心电图机的系统软件功能框图如图5所示。



图4 数据采集模块原理图




图5 系统软件功能框图

  心电信号的软件数字滤波

  由于心电信号会不可避免地混入50Hz工频干扰,同时从人体获得的心电信号还含有由皮肤阻抗、呼吸及放大器的温度漂移等产生的基线漂移,而仅仅依靠硬件很难将其理想滤除,因此采用软件数字滤波的方法。图6显示了用MATLAB对加噪心电信号利用FFT方法滤除50Hz工频干扰的仿真实验结果。实验原始数据取自MIT/BIH心电数据库中的一段波形。由于实验采用的是矩形窗模拟滤波,在恢复时域信号时会有振铃效应,因此在实际使用中可根据需要选用合适的窗函数。

  从滤波与处理效果看,快速傅里叶变换可得到信号的全部频谱,便于进行针对性处理,且可选择的窗函数多,对50Hz频移有很好的滤除效果。而自适应模板法与数学形态滤波法则分别适用于50Hz工频干扰的去除与基线漂移及高频噪声干扰的去除。本系统将以上三种滤波方法结合起来使用,当需要在液晶屏上显示心电波形时采用自适应模板法与数学形态滤波法,将数据传输到PC机中时可以采用快速傅里叶变换法对心电信号进行精确处理。

  心电图机PC机端辅助软件的开发

  本文设计的心电图机配有基于Visual C++6.0开发环境编写的PC机软件以扩展系统功能。将心电图机与PC机连接后,启动Windows心电数据采集程序即可在计算机屏幕上看到实时采集的心电波形,PC机心电信号显示界面如图7所示。



图6 利用FFT方法滤除50Hz工频干扰后的心电信号


图7 PC机心电信号显示界面

结束语

  本文设计的心电图机采用了TI公司的高性能单片机MSP430FG4616和16通道低噪声Δ-Σ架构的24位模数转换器,能准确获取反应心电特征及其变化规律的心电信号,并可通过单片机的控制在液晶屏上以图形方式显示和存储,为实现家庭医疗远程诊断进行了前瞻性的研究。与常规设计相比,本系统具有性能稳定、精度高、抗干扰能力强等特点,具有良好的应用前景。

关键字:MSP430  心电图机设计 引用地址:基于MSP430的十二导联同步心电图机的设计

上一篇:远程医疗保健是便携医疗电子发展的终极目标
下一篇:中国医疗监护仪市场存在大量潜在空间

推荐阅读最新更新时间:2024-03-16 11:41

MSP430F249ADC
/****************************************************************** ** ** File : ADC.c | Analog to Digital converter | ** Version : 1.0 ** Description : led 7 segment display Analog to Digital converter ** Author : LightWu
[单片机]
msp430程序跑飞相关总结
=============================================================================================================================== 1.中断或主函数中有死循环,现象是程序停在某处。 2.堆栈溢出。现象是程序跑飞。 解决办法: A.看中断有没有用 _EINT(),引起中断嵌套. B.Project--Options--General Options---Stack/Heap 将Stack size设置大一些。 ===================================================
[单片机]
MSP430之枚举变量大小
一直都很好奇枚举变量到底是如何让占用存储空间的,网上好多文章都说是占用int字节的大小,但是今天测试了一下,发现不是那么回事。 操作系统:WIN7 64bit IDE:IAR 5.5 实验平台: MP430F4793 先说结论: 实际使用发现枚举变量的大小并不是固定不变的,而是跟随成员的取值范围而变化, 并且枚举变量为2个字节(正好是MSP430字节对齐的大小)时,存储占用反而变小。 下面是编译后的结果: 初始情况: 成员取值范围UINT8足以满足,所以是一个字节; 另外,增加成员并不会改变编译结果 给最后一个成员赋值65535: 此时,成员的取值范至少需要两个字节才能存储,所以可以看到枚举变量的大
[单片机]
<font color='red'>MSP430</font>之枚举变量大小
学习STM32总结的单片msp430,c8051等)一般学习方法
1,一块板子有必须的供电线,和必要的仿真下载调试线(如STM32的J-link) 2,安装开发环境:keil4(c51或者ARM系列注册),好像还有msp430系列首先清楚板子是什么系列,IAR EWARM是(IAR System公司开发的ARM系列环境) 3,安装驱动:软件里的各种驱动 4,在开发环境里配置选择DEVICE设备(注册不同的系列有很多不同的设备),选择下载调试驱动 (1)创建新工程,保存文件夹a (2)创建新文件(参照一下文件规范化),保存在a里,或者拷贝已有的配套文件 (3)把文件添加到工程 5,单片机有配套的中文资料,文件,和实例程序 6,对照中文资料,看懂配套文
[单片机]
MSP430番外——BSL介绍
1.介绍 引导加载程序提供了在MSP430项目开发和更新期间对闪存进行编程的方法。它可以由程序使用UART协议发送命令激活。BSL使用户能够控制MSP430单片机的活动,并使用个人计算机或其他设备交换数据。 为了避免意外覆盖的BSL代码,该代码存储在一个安全的内存位置,ROM或特别保护的闪存。为了防止不需要的源读取,任何直接或间接允许数据读取的BSL命令都有密码保护。 为了调用引导加载程序,一个BSL入口序列必须应用到专用的引脚。在此之后,一个同步字符,后面跟着特定命令的数据帧,启动所需的函数。 1.1 与JTAG共享引脚 在RST/NMI和TEST引脚上应用适当的入口序列,会强制MSP430单片机在BSL复位向量上开
[单片机]
<font color='red'>MSP430</font>番外——BSL介绍
总结的MSP430G2553点亮1602例程
作为小白,总结了一些例程,希望对新手有用 main.c主程序 unsigned char *s1= welcome! ;这句话显示有警告,不知道是什么问题,不过也可以执行。 void main(void) { uchar i; WDTCTL=WDT_ADLY_250; LcdReset(); Dispstr(04,0,s1); LocateXY(0,9); LcdWriteCommand(0x07,1); //0x07表示n=1,s=1整屏左移。 for(i=12;i 0;i--) { LcdWriteData(0x20); IFG1 &=~ WDTIFG; while(!(IFG1 & WDTIFG)); IFG1 &
[单片机]
MSP430F149学习随笔
1.延时函数 #define CPU_F ((double)8000000) #define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0)) 其中,__delay_cycles((long)(CPU_F*(double)x/1000.0))并不是真正的函数, 只是提供编译器内联展开,该函数并不支持变量参数, 其参数只能是常数。 在头文件intrinsics.h中可以找到如下定义: /* Insert a delay with a specific number of cycles. */ __intrinsic void __delay_cycle
[单片机]
<font color='red'>MSP430</font>F149学习随笔
嵌入式RTOS在MSP430单片机上的实现
  随着信息社会的发展,信息家电、智能仪表和智能安保系统等产品已经越来越多地出现在人们的生活中。可以预见,为了满足人们对舒适、便捷、安全生活环境的需求,嵌入式信息产品的设计、应用将得到快速发展。   单片机作为嵌入式信息产品的一个重要应用方面,其使用、设计面临着全新的挑战。一方面,人们对嵌入式产品的要求越来越高,稳定可靠、功能丰富、物美价廉的信息产品将成为人们的首选。另一方面,随着微电子工艺水平的发展,单片机处理器的能力不断提高,从最初的8位单片机到16位,进而32位单片机,功能越来越强大,执行速度越来越快,集成度、精确度也越来越高,应用领域进一步拓宽。可以说,单片机芯片的性能已经能够满足现代人们对嵌入式信息产品的更高要求。为
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新医疗电子文章
换一换 更多 相关热搜器件

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 医学成像 家庭消费 监护/遥测 植入式器材 临床设备 通用技术/产品 其他技术 综合资讯

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved