基于MSP430的心电监控系统.docx
- 文档编号:4822854
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:25
- 大小:448.71KB
基于MSP430的心电监控系统.docx
《基于MSP430的心电监控系统.docx》由会员分享,可在线阅读,更多相关《基于MSP430的心电监控系统.docx(25页珍藏版)》请在冰点文库上搜索。
基于MSP430的心电监控系统
2011-2012德州仪器C2000及MCU创新设计大赛
项目报告
题目:
基于MSP430的心电监控系统
学校:
兰州大学
组别:
专业组
应用类别:
仪器仪表类
平台:
MSP430
题目:
基于MSP430的心电监控系统
摘要(中英文)
本项目以MSP430微控制器设计实现远程心电智能监护系统。
通过传感器从V1导联实时检测心电信号,用前置电路对信号进行放大,对放大后的模拟信号转换为数字信号输入到MSP430系统中。
在MSP430程序设计中,首先,用整数小波对信号滤波,并实时显示波形和心率;然后,程序智能地检测心律失常,如果检测到PVC或其他症状,则通过无线模块向基站、病人、或亲友报警。
Itisdevelopedanelectrocardiogram(ECG)tele-monitoringintelligentdiagnosissystemonMSP430.ItdetectsandamplifiestheECGsignalatV1lead,andthesignalisconvertedtodigitalvaluesasinputsfortheMSP430processor.Forthedevelopmentoftheprograminthesystem,firstly,itfiltersthedigitalsignalwithinteger-waveletanddisplaysbothECGwaveandheartrateonLCDintime.Secondly,theprogramdetectssignalintelligently,oncethesignalisclassifiedasPVCorothersymptoms,alarmmessagesaresendtobasestation,patientsorrelatives.
1.引言
1.1系统设计的背景与目的
心电图(ECG信号)是利用心电图机从体表记录心脏每一心动周期所产生电活动变化的曲线图形。
ECG诊断方法简便可靠,对病人无损,是心血管疾病诊断十分重要的一种方法。
早期的ECG分析完全由医生用人工的方法完成,计算机辅助的心电分析与诊断系统的研究始于50年代末,使得ECG分析中的特征提取从相对人工定性分析过程转变为数字化处理过程。
目前,绝大多数心电监护仪只具备简单的监护报警功能,不能实施急救,且体积较大不适合随身携带[1]。
设计一款低功耗、便携式,能够实时监测心律,自动诊断心律失常并发出救援信号的心电监护仪的研发意义十分重大。
1.2项目所要解决的问题
本项目基于MSP430低功耗、高速实时运算特性,设计了一款新型的心电监控系统。
该系统主要功能包括采集待测人员体表心电信号,监测实时心率,实时分析有无心律失常并进行自动诊断。
当出现突发性心律失常如室性心动过速、心室颤动、停博等症状时,该系统能实时蜂鸣报警,提醒携带者。
并能将相应报警信息通过无线模块发送给医生或病人亲友,以便能够实施急救。
2.系统方案
本系统的设计关键模块有:
信号采集模块、信号处理模块、波形/心率显示模块、蜂鸣器报警模块以及短信发送模块。
系统整体框图如图1所示。
信号采集模块将由心电电极贴片在人体皮肤表面采集到的峰峰值小于4mV微弱信号通过放大滤波电路放大到适合MSP430F2618中ADC12模块进行模数转换的电压范围。
经AD转换后,用MSP430F2618进行信号处理,其关键算法为CDF97小波滤波、差分阈值检测、逻辑法诊断病例三部分。
MSP430F2618通过SPI、I2C和UART接口分别与LCD示波器、段式LCD和EM310无线模块相连接,实时显示滤波后的心电波形与计算得到的心率值,并对异常情况进行短信报警。
MSP430F2618通过P3.0口与蜂鸣器相连接,对异常情况进行蜂鸣报警。
图1系统框图
Fig.1SystemBlockDiagram
3.系统硬件设计
3.1放大滤波电路
系统的放大滤波电路选用TI公司的低功耗单电源CMOS仪表放大器INA331与单电源微功耗CMOS运算放大器OPA2336搭建而成,将采集自人体皮肤表面的微弱信号放大到适合MSP430内部ADC12模块进行模数转换的电压范围。
INA331的主要特点是:
轨至轨输出、低功耗的COMS工艺、高共模抑制比、低静态电流、带宽范围0~2.0MHz、工作温度范围-55~125℃;OPA2336的主要特点是:
轨至轨输出、微功耗的COMS工艺、低静态电流、低失调电压、工作温度范围-40~85℃。
这些特点决定了放大前置滤波电路在极端环境条件下仍能正常工作且功耗低,可以用电池供电。
放大滤波电路可分为前置放大电路、右腿驱动电路和低通滤波放大电路。
如图2所示,前置放大电路中INA331的正负输入引脚通过心电电极分别与人体的左臂和右臂相连接,INA331的1脚与6脚连接,使VOUT=VREF+5(VIN+–VIN–),防止因增益过大、输入电流过大导致的电极极化高压。
共模电压设置由2MΩ电阻完成。
VR为两片OPA2336提供偏置电压,使其以此偏置电压为工作点变化。
将一片OPA2336的一个输出端连接至INA331的REF端构成反馈,使INA331的输出电压以此偏置电压为工作点变化。
另一片OPA2336作为电压跟随器,用于右腿驱动。
图2前级放大电路与右腿驱动电路
Fig.2PrimeAmplificationCircuitandRightLeg DriveCircuit
低通滤波放大电路如图3所示,由同相比例运算电路与二阶有源低通滤波电路组成。
图3低通滤波放大电路
Fig.3Low-pass FilterandAmplifierCircuit
同相比例运算电路的增益为:
(1)
二阶有源低通滤波电路的频率特性表达式为:
(2)
其中,通带内增益理论值
,特征角频率理论值
,品质因数理论值
,可见这是一个巴特沃斯滤波器,截止频率理论值
,其幅频特性如图4所示。
图4巴特沃斯滤波器幅频特性
Fig.4Amplitude-frequencyCharacteristics of the ButterworthFilter
3.2ADC12模块与DMA控制器相结合的数据采集
将放大滤波电路的输出与MSP430F2618的P6.0相连接,利用ADC12模块的通道A0对输入模拟电压进行模数转换。
ADC12模块的工作原理如图5所示。
图5ADC12原理图
Fig.5SchematicdiagramofADC12
选择ACLK作为定时器B的时钟源,设置定时器B工作在增计数模式和输出模式7,由Timer_BOUT1产生周期、占空比均可调节的PWM波。
本系统中设置TBCCR0=256,TBCCR1=230,即PWM波的
,
,PWM波的上升沿触发采样,下降沿触发转换,即
ADC12的采样率
。
设置ADC12模块工作在单通道重复转换模式,选择2.5V内部参考电压作为参考源,ADC12IFGx作为DMA0的触发源,重复转换结束时,ADC12IFGx被置位,继而触发DMA操作[2]。
选择DMA0传输源地址为ADC12MEM0,目的地址为手动分配RAM存储空间的物理地址(本系统中为0x1200),设置DMA0传输源地址不变,目的地址增量,传输基本单元个数DMA0SZ=512。
这样,4秒的转换结果经DMA0通道送至固定的RAM空间。
AD转换与DMA传输在LPM3模式中进行以降低功耗,设置中断向量为DMA_VECTOR,当512个转换结果全部传输到指定地址后,CPU才被唤醒。
3.3LCD数字示波器模块
系统所用的开发板提供了LM240160GCW液晶模块,利用此模块可以设计数字示波器来实时显示心电波形。
数字示波器基本原理为:
数据采集+图形显示,该过程循环进行。
LM240160GCW液晶的显示RAM中,一个单元的地址由行地址和列地址组合成,以显示屏自上而下排序1-160行为行地址,以水平三个像素点为一组,为一个列地址。
RAM中得单元数据位为15位,每5位为一个像素点的显示数据,一个RAM单元容纳了3个像素数据,即数据字节中DB7-DB3为数据,DB2-DB0无用。
每一次读写RAM时,必须以3个数据连续写入/读出为一个最小操作。
液晶模块内置ST7529液晶显示模块系列的指令系统,分基础基本指令集EXT0和扩展指令集EXT1。
实现对模块的初始设置。
包括启动LCD驱动电源工作、灰度数据设置、调节对比度电压、扫描时序的设置等;显示数据的操作,有数据的读写、修改写、局部显示以及卷动设置等。
GT23L32S4W是一款内含11X12点阵、15X16点、24X24点阵、32X32点阵的汉字库芯片,支持GB2312国标汉字及SCII字符。
排列格式为横置横排。
用户通过字符内码,可计算出该字符点阵在芯片中的地址,可从该地址连续读出字符点阵信息。
由上述可知,GT23L32S4W支持SPI、PLII两种通讯方式,本项目采用SPI方式。
示波器设计中,先对软件滤波后的信号进行采集,对LCD以最小3个像素进行操作,向指定位置写入灰度数据,灰色为点,白色为背景。
本项目采用了波形逐帧显示的方法,当软件滤波完成后,开始进行LCD操作,在下一组数据的采集与滤波过程中LCD显示内容保持不变,等待下一次滤波完成后刷新波形。
在逐单元(3个像素)显示中,每一个单元的数据采集,AD转换,数字量到液晶屏幕高度换算,显示数据进入显示RAM,将显示数据送到屏幕显示的时间都是单独的,整个过程要占用毫秒级以上时间,采用逐帧显示,扫描频率只由每屏显示数据的采样总时间决定,不受点阵液晶显示速度限制。
图6为LCD操作的流程图:
图6LCD操作流程图
Fig.6OperationFlowChartofLCD
LCD3个像素点的像素数据是软件滤波后的数据,每一个行地址对应3个像素点,即绘制出的曲线是由“点”组成,每列只有一个点,效果不理想,故考虑使用矢量绘图的方法对其进行优化,将一个单元3个像素和下一个单元第一个像素一起考虑,根据其位置在两点之间差值填充点,得到连贯的曲线。
优化前后的对比如图7所示:
图7矢量优化前后对比
Fig.7ComparisonbeforeandafterVectorOptimization
3.4段式LCD显示心率模块
MSP430F2618开发板提供了段式液晶模块,利用此模块可以实时显示心率。
在MSP430F2618开发板上使用了一片LCD驱动器BU9796FS,其具有较低工作电压范围,200bit的显存空间,标准2线制I2C通讯。
根据指令集以I2C协议配置BU9796FS,将计算好的心率值显示到段式LCD上,每隔4s刷新一次。
具体流程如图8所示:
图8段式LCD操作流程图
Fig.8OperationFlowChartofSegmentLCD
3.5UART发送短信模块
当心电波形失常或者心率有问题的时候,可以通过无线模块发送中文或英文短信息到患者或医生手机上实现报警功能。
利用MSP430F2618单片机的USCI_Ax的UART模式实现单片机与EM310无线通讯模块的通信。
EM310模块是华为公司推出的一款GSM/GPRS无线模块。
通过串口向EM310写入AT指令即可实现单片机控制EM310发送短信。
配置UART包括设置UART模块的寄存器,设置传输需要的时钟XT2、波特率为9600、无校验位、8个数据位和1个停止位。
通过UART模块向EM310发送AT指令集,完成EM310发送短信的功能。
通过C语言程序将AT指令集写成字符串的形式,再向串口发送字符串,即完成了AT指令集的发送。
EM310接收到UART端口发送过来的AT指令后根据指令返回相应指令符号,完成发送中文或英文短信的任务。
4.系统软件设计
由于心电信号本身微弱、多变,容易受外界干扰,所以在分析诊断过程中需要预处理去除干扰。
本系统软件设计主要包括:
数字滤波、R波检测、心律失常诊断。
4.1CDF97小波滤波
数字滤波算法采用CDF97小波滤波,根据经小波变换后,有效信号对应的小波系数很大,而噪声对应的系数很小的原理,对ECG信号进行三层小波分解后,采用软阈值方法,先求出各层高频信号的门限阈值,然后去除每层高频信号中小于该门限阈值的系数。
最后从后往前一层一层重构,得出滤波后的ECG信号。
考虑硬件平台选用低功耗MSP430系列,我们选取基于提升算法的CDF97小波滤波。
Sweldens的提升小波变换是实现DWT的一种新方法,比原有的基于卷积的DWT方法计算量少、复杂度低,且在运算过程中可实现原位计算,存储空间需求少,更加适合硬件的实现[3]。
其中CDF97小波是一种典型的离散小波提升算法,其对应五个提升系数如下:
(3)
我们根据CDF97小波原理先构造出小波基函数,用matlab仿真出CDF97小波滤波器组如图9所示,经matlab仿真验证其具备较好的滤波效果。
a.分解低通滤波器b.分解高通滤波器
a.Decomposition low-pass filterb.Decomposition high-pass filter
c.重构低通滤波器d.重构高通滤波器
c.Reconstructionlow-passfilterd.Reconstructionlow-passfilter
图9CDF97小波滤波器组
Fig.9CDF97Waveletfilterbank
硬件乘法器是存在于MSP430F2618芯片中通过内部总线与CPU相连的16位外围模块,它最多可支持16
16位无/有符号数的乘法运算与乘加运算,若能对其进行有效利用,必能增加对数据处理的速度。
本系统利用硬件乘法器实现了心电信号的小波滤波与重构。
由于硬件乘法器只支持整数的乘法运算与乘加运算,对于提升系数为小数的CDF97小波,如何实现运算结果不溢出与运算精度的最优折中成为设计的难点。
项目采取的方法如图10所示,将提升系数扩大16384(214)倍写入有符号乘法的操作数1寄存器,将AD转换得到的心电数据扩大2倍写入操作数2寄存器,运算完成后,提升系数与心电数据相乘或乘加的运算结果
,为了提高运算精度,需要利用RESLO的最高位与次高位对result进行校正:
(1)如果RESHI15=0且RESLO15=1,说明result为正数且最低整数位为1,要对其进行+1校正;
(2)如果RESHI15=0且RESLO14=1,说明result为正数且小数部分大于0.5,要对其进行+1校正;
(3)如果RESHI15=1且RESLO15=0,说明result为负数且最低整数位为1(以补码形式存放),要对其进行-1校正;
(4)如果RESHI15=1且RESLO14=0,说明result为负数且小数部分绝对值大于0.5,要对其进行-1校正;
(5)特殊情况:
如果RESHI15=1且RESLO=0,说明result为负数且
,但它满足(3)和(4)的校正条件,所以要对其进行+2校正以消除(3)和(4)引入的误差。
图10硬件乘法器滤波算法示意图
Fig.10Filtering algorithm schematicdiagram of thehardwaremultiplier
利用上述方案,便可基于硬件乘法器实现高速度高精度的97小波滤波与重构,对实测心电信号的小波滤波与重构如图11所示,蓝色为ADC12模块得到的心电数据,红色为经硬件乘法器进行小波滤波与重构后的数据,可以看出高频噪声被有效滤除,使数据能够更好地显示、处理与分析。
图11实测心电信号的小波滤波与重构
Fig.11WaveletFilteringandReconstructionofmeasuredECGsignal
4.2R波检测算法
QRS波群是一个心电周期中特征最显著的部分,它具有高幅度和高斜率、具有一定的宽度的时域波形特征和频谱分布在ECG信号的中、高频区域的频域特征(峰值频率在10~20Hz)。
本项目基于MSP430平台且需要R波实时检测,这使得算法必须具有占有硬件资源小、检测精度高、运行速度快的特点。
综合考虑,我们采用了基于滤波和阈值检测的算法。
根据QRS波群时域特点,我们采用如下方法确定R波位置:
①固定一个时间窗,在该时间段内采用二次差分方法,寻找波形奇异点。
对N个(本系统中N=512)数据进行奇点检测。
②保留得到的所有极大值在一个数组A内,并记录其对应波形位置。
取阈值Rth,与上述数组A内值比较,保留大于Rth的极大值在数组B内,并记录其对应波形位置。
认为B中数据为检测到的R波幅值,其对应位置为R波位置。
在此,算法难点在于阈值Rth的确定。
因为ECG信号个体差异较大,即便是同一人,在不同时间段内其波形也不稳定。
所以,不能单纯采用固定阈值,而要求阈值具有动态自适应性。
否则会造成R波误检、漏检而导致诊断错误。
动态阈值设置,我们采用直方图分布法,这也是本项目创新点之一。
根据极大值点的分布特点,做点数与幅值段的直方图。
根据极大值点的统计特性做出的直方图中,会出现连续的一段无极大值分布的区域。
在该区域之后的幅值段内存在的极大值就是R波幅值。
根据此特征确定Rth,由于该分布随着数据刷新而更新,则具有实时的自适应性。
经matlab试验验证该算法确实可行、简洁、快速、空间占用小、阈值具有动态适应性且准确度很高,适合在MSP430上实现。
4.3心律失常诊断算法
临床上医生通过观察一段时间的ECG波形来根据相关经验来判断患者病情。
心率失常智能诊断是主要借助计算机,根据医生的临床经验,采用逻辑判断来确定患者心律失常情况的。
心电自动分析系统如图12所示,主要包括心电数据采集、预处理,心电参数自动检测、心电异常诊断分类等内容。
图12心电自动分析系统
Fig.12ECGautomaticanalysissystem
其中心电参数自动检测与心电异常诊断分类尤为重要。
由于ECG信号的时域特征提取方法符合临床医生的诊断习惯,并且算法运算量小,适合应用于便携式心电仪。
时域心电参数主要包括:
平均心率Rate,RR间期Trr,以及相邻RR间期差HRV等。
该系统诊断算法采用简单的逻辑判断算法:
比较实际测得平均心率Rate与各病例中的Rate参考值或比较实际测得RR间期差HRV与室性心律失常HRV参考值来确定心脏活动是否正常,存在何种异常。
心律失常逻辑判断方法如表1所示。
表1心律失常逻辑判断方法
Table.1Arrhythmialogicjudgemethod
病例名称
算法
正常
————
室性早搏
HRV(i)>0.12s&&HRV(i+1)>0.12s&&HRV(i+2)>0.12s
停博
Rate<20次/分
房性颤动
Rate:
500~600次/分
房颤或室颤
Rate:
350~500次/分
房扑或室颤
Rate:
240~350次/分
室上速或室颤
Rate:
160~240次/分
心率过缓
20<=Rate<40次/分
心率过速
120<=Rate<160次/分
基于上述诊断算法,需要进行算法正确性验证,此时需要输入一些带有明确注释的心律失常信号。
通常采用MIT-BIH标准心律失常数据库中数据作为检验算法。
MIT-BIH[4]数据库数据的采样频率为360Hz,采样精度为11位。
该数据库一共大约有109933拍,都是经过至少两个以上的心电图专家手工独立标注的。
算法评估流程如图13所示,评估结果见评测与结论部分。
图13算法评估流程图
Fig.13AlgorithmEvaluation Flow Chart
4.4系统算法流程与状态机设置
图14系统算法流程图
Fig.14Systemalgorithm flow chart
系统算法流程如图14所示。
由于系统每4秒采集512个心电数据并进行分析与诊断,而且人为运动等因素有可能影响心电数据的采集情况造成误检,若对每次诊断出的异常状态都进行短信报警是没有必要的,所以我们对系统进行状态机设置防止短信报警过于频繁。
图15室上速或室颤症状的状态机示意图
Fig.15State machine schematicofSupraventricularTachycardiaorVentricularFibrillation
图15为室上速或室颤症状的状态机示意图,Rate_flag为表示状态机当前工作状态的标志位,系统状态的跳转由每4秒心电数据分析得到的特征参数与Rate_flag共同决定。
S0为系统的初始状态也是正常状态,Rate_flag=0。
处于S0状态时,如果计算得到的各项指标均正常,则保持S0状态不变;如果心率值在160(含)与240之间,则跳转到S1状态,Rate_flag变为501。
S1与S2状态为短信报警前等待状态,可以消除因人为运动等因素造成的误检。
处于S1状态时,如果心率值在160(含)与240之间,则跳转到S2状态,Rate_flag变为502;如果心率值在其他范围,则跳转到S0状态,Rate_flag变为0。
处于S2状态时,如果心率值在160(含)与240之间,则跳转到S3状态,Rate_flag变为503;如果心率值在其他范围,则跳转到S0状态,Rate_flag变为0。
处于S3状态时,说明已出现连续12秒左右的室上速或室颤症状,便进行短信报警,报警后跳转到S4状态,Rate_flag变为504。
S4状态为短信报警后的等待状态,以保证系统进行过短信报警后约7分钟的时间内不会再次进行短信报警。
处于S4状态时,如果Rate_flag在504(含)与600之间,则保持S4状态不变,Rate_flag加1;如果Rate_flag=600,则跳转到S0状态,Rate_flag变为0。
表2列出了系统各状态时Rate_flag的值。
由于人为运动因素而产生室性早搏误检的几率较小,所以没有为室性早搏设置短信报警前的等待状态,即检测出一次房性早搏病例立刻进行报警,报警后跳转至等待状态。
另外需要说明的是,状态机的等待状态只影响短信报警的时间间隔,对蜂鸣器报警并无影响,只要4秒内的数据出现异常,蜂鸣器便立即进行报警。
表2系统各状态Rate_flag值
Table.2ValueofRineverystates
Rate_flag状态
病例
短信报警前等待
短信报警
短信报警后等待
室性早搏
无
1
2~100
停博
101、102
103
104~200
房性颤动
201、202
203
204~300
房颤或室颤
301、302
303
304~400
房扑或室颤
401、402
403
404~500
室上速或室颤
501、502
503
504~600
心率过缓
601、602
603
604~700
心率过速
701、702
703
704~800
5.系统创新
1.算法中采用直方图统计法设定自适应阈值,准确定位R波位置。
2.利用MSP430内部的硬件乘法器实现CDF97
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MSP430 监控 系统
![提示](https://static.bingdoc.com/images/bang_tan.gif)