您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 基于LabVIEW串口的心电信号传输
龙源期刊网串口的心电信号传输作者:周到黄敏来源:《科技创新与应用》2019年第02期摘要:心电信号能够反映心脏的受损程度,对各种常见心脏病的诊断有重要参考意义。随着技术的发展,各种模块化的心电信号采集装置陆续推出,有助于快速搭建心电监护系统。本研究使用AD8232模块采集心电信号,通过Arduino进行模数转换,最后使用LabVIEW软件从串口读取采集到的心电信号,并将心电信号展示出来。整个系统模块清晰、成本低廉、信号清晰,有较强的实用性。关键词:LabVIEW;串口通信;心电中图分类号:TN919文献标志码:A文章编号:2095-2945(2019)02-0032-02Abstract:ECGsignalscanreflectthedegreeofheartdamage,andhaveimportantreferencesignificanceforthediagnosisofvariouscommonheartdiseases.Withthedevelopmentoftechnology,avarietyofmodularECGacquisitiondeviceshavebeenintroduced,whichisconducivetotherapidconstructionofECGmonitoringsystem.Inthisstudy,AD8232moduleisusedtocollectECGsignal,andanalog-to-digitalconversioniscarriedoutthroughArduino.Finally,LabVIEWsoftwareisusedtoreadthecollectedECGsignalfromtheserialportanddisplaytheECGsignal.Themoduleofthewholesystemisclear,thecostislow,thesignalisclear,andithasstrongpracticability.Keywords:LabVIEW;serialcommunication;ECG引言心肌细胞收缩时产生的电信号可以传导到体表的任何部位,在人体皮肤的某个部位放上测量电极,然后通过测量电极可以记录被测者的心脏电变化曲线,这就是临床意义上的心电图(Electrocardiogram,ECG)[1]。心电图的采集和分析,对心脏疾病的监测和诊断,有重要的研究意义,通常认为,心电信号对心律失常、心肌梗死等病症具有重要的参考价值。心电信号是较早应用于医学研究的人体生物电信号,心电信号的采集和分析,是生物医学工程专业教学中的一个重要内容[2]。以往的教学安排中,模拟放大电路、单片机的采样和数字信号处理,会在不同的专业课中讲授,缺乏连贯和一致性。本文依托中南民族大学实验室开放与技改项目,建立一个基于虚拟仪器的心电采集分析平台。为了尽可能让大部分学生熟悉心电的采集分析流程,整个平台需要具有模块化、信号精度可靠、简单易用、成本低廉等特点。基于此,本文设计出一款基于AD8282心电采集模块,龙源期刊网的心电监测系统。该系统中,AD8232实现心电放大,Arduino实现模数转换,LabVIEW通过串口读取最终的心电信号并显示。1AD8232心电采集模块AD8232是美国ADI公司出产的一款单导联心电采集芯片,尺寸小、成本低廉,共模抑制比80dB,能用于运动心率监护、便携式心电装置开发等[3]。在该芯片的基础上构建的心电采集模块,包括运算放大、右腿驱动、导联脱落监测等电路。AD8232模块的实物图如图1所示,从图中可以看到,其主要接口包括接地(GND),接电源(3.3V),信号输出(OUTPUT),导联脱落监测(LO+和LO-)和停机检测(ISDN)。进行心电采集时,将三个电极分别粘贴在左手手腕、右手手腕和右脚脚踝处,并与导联线连接。心电信号通过导联线从右侧的3.5毫米连接线头子接入采集模块,经过放大后的模拟心电信号,可以从“信号输出(OUTPUT)”端口获取。2Arduino实现模数转换为了将心电模拟信号转换为数字信号,我们使用了Arduino开发板。Arduino是一款以ATmega单片机为控制核心的开发板,包含ATmega最小系统、稳压、USB转串口等电路,是一种价格低廉、开发库丰富的微控制器平台[4]。我们使用Arduino的A0通道进行心电信号的模数转换(与AD8232模块的OUTPUT端相连),A10和A11通道作为电极脱落监测通道(与AD8232模块的LO+与LO-相连),Arduino上的3.3V与GND与AD8232模块上对应的端口相连。在Arduino上,编写模数转换程序如下所示。通过这个程序,设定串口传输的波特率为9600,从A10和A11读入电极脱落信号,从A0读入心电模拟信号,再从串口将数字化后的心电信号传送出去。voidsetup(){Serial.begin(9600);//设置串口波特率pinMode(10,INPUT);//电极脱落监测+pinMode(11,INPUT);//电极脱落监测-}voidloop(){if((digitalRead(10)==1)||(digitalRead(11)==1)){龙源期刊网('!');//如果监测到电极脱落,输出感叹号}else{Serial.println(analogRead(A0));//从A0口读入当前电压值}delay(1);//延时等待}3LabVIEW从串口获取数据串口通信(SerialCommunication),是指外设和计算机间,通过数据信号线、地线、控制线等,按位进行传输数据的一种通讯方式。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度较低。生物医学信号通常为低频信号,数据量不太大,因此,串口通信协议在生物医学信号的传输中很常见。LabVIEW是实验室虚拟仪器集成环境(LaboratoryVirtualInstrumentEngineeringWorkbench)的简称,是一种图形化的编程语言和开发环境,具有测试方便、开发速度快等特点。LabVIEW依靠VISA(VirtualInstrumentSoftwareArchitecture)库来实现串口的通讯[5]。VISA库是仪器编程的标准函数库,支持串口、GPIB、USB、以太网等多种不同的通讯协议。在串口通讯时,常用的函数有“VISA配置串口”、“VISA打开”、“VISA读取”、“VISA写入”、“VISA设备清零”、“VISA查找资源”、“VISA解锁”、“VISA关闭”等。我们这里仅涉及到从串口中读取数据,用到了“VISA配置串口”、“VISA读取”和“VISA关闭”这三个VISA函数。如图2所示,给出了从串口读取心电数据的程序框图。从图2中可以看到,为了LabVIEW能顺利从串口中读取出数据,需要选定当前数据传输串口号(如果不确定,可以在计算机的设备管理器中查看)。该程序使用了一个属性节点(BytesatPort),这个属性节点能够获取串口缓冲区的剩余字节量,将这个值作为参数传给“VISA读取”函数,可以一次性将串口中的数据全部读出。LabVIEW从串口读出的数据是字符串格式,可以直接创建一个字符串控件“读取缓冲区”查看读取出的数据,也可以使用字符串选板的“十进制符串至数值转换”函数转换为数值,再在波形图表中显示出来。程序如果被手动停止或出错,将终止循环,并关闭串口。为了和传入的数据频率保持一致,这里设定循环延时为1毫秒。最后,在前面板查看到,获取的心电信号波形如图3所示,从图中能够清晰地看到心电信号的特征波形。4结束语本文实现了基于LabVIEW串口的心电信号传输,搭建了一个模块化、低成本、精度满意的实时心电监测平台,适合作为生物医学工程专业的实验平台。本文的工作还可以从以下两个方面深入改进,一是Arduino与计算机连接最好可以采用无线的方式,降低导线的约束;二是龙源期刊网计算机获取心电信号后,还需要对信号进行进一步分析和处理,实时监测心率变化,对异常心率给出报警。参考文献:[1]李中健,井艳,李世锋,等.心电图波形特征分析[J].临床心血管病杂志,2008(03):195-197.[2]王昌,秦鑫,岳小萍.基于心电的生物医学工程教学系统开发[J].数字技术与应用,2014(09):146.[3]陈嘉绪,周颖.基于AD8232的心电实时监测及分析系统设计[J].计算机测量与控制,2017,25(02):26-31.[4]付久强.基于Arduino平台的智能硬件设计研究[J].包装工程,2015,36(10):76-79+100.[5]魏义虎,陈雷.基于LabVIEW-VISA方式的串口通信研究[J].电子设计工程,2015,23(24):129-131.
本文标题:基于LabVIEW串口的心电信号传输
链接地址:https://www.777doc.com/doc-4522207 .html