|
由于心脏病发病时一般具有突发性、短暂性和危险性的特点,因此有必要对患者的心电图等生理参数进行长时间实时检测,实现及时抢救和疾病预报。当前我国医疗资源仍然十分紧张,而远程医疗、社区护理是解决这一问题的有效办法[1,2]。可供社区、家庭使用的便携式心电监护仪,有着广泛的应用前景。 基于普通16位单片机的便携式心电监护仪,能够实现心电信号的存储、显示、传输及简单的判病报警[3],但由于所采用的单片机运算速度有限,难以采用耗费资源多的算法,如近年发展迅速的小波分析。有人制作以DSP芯片为核心的心电数据分析卡,插在PC机内,内嵌小波算法处理心电信号[4]。这种方法在心电分析上取得显著效果,缺点是必须配备PC机。目前,虽有使用其他系列DSP芯片的心电监护模块[5],但还没有见到使用较先进的C5000系列芯片的便携心电监护仪。随着技术的发展,DSP芯片的性能有很大提高,这使我们能够进一步扩展便携仪器的功能。 本监护仪的设计目标是患者可以带着它自由走动,能够自我监护,实现真正的便携与易用;具有较强的数据处理能力,保证心电检测的高准确率;能够便捷地与医院中心站进行通讯。这样的监护仪,将成为家庭、社区护理的有力帮手。 硬件电路的设计 监护仪主要构成如图1所示。DSP芯片TMS320VC5402通过丰富的接口控制周边器件。模拟电路通过导联线与人体相连,负责采集、放大肢体Ⅱ导联的心电信号。大容量的Flash存储器能够长时间存储心电信号,从而使监护仪具有类似Holter的功能。时钟芯片为监护仪提供准确时间信息,可用来标记每段心电信号的采集时间。液晶显示模块可以实时显示心电波形和监护信息。本监护仪采用数字通讯和模拟通讯2种通讯模块。数字通讯模块可通过Modem向医院传送完整的心电数据,而模拟通讯模块把心电信号耦合成声音信号,只要有电话的地方就可以向医院传输,十分灵活。系统采用锂离子电池供电,可以随时充电,连续使用。  
模拟电路模拟电路部分实现对心电信号的采集、放大、滤波以及A/D转换。其构成见图2。 如前置放大电路主要由仪表放大器AD620构成。AD620具有低功耗、低噪声、低温漂的特点,最大偏置电流2nA,共模抑制比达到93dB以上。AD620与外接电阻配合将心电信号放大100倍。我们利用右腿驱动电路来去除人体的交流干扰。这种做法不会损失心电信号的频率成分。由于不同患者的心电信号强弱不同,因而仪器需要自动对放大倍数进行调整,实现方法为调整下一级放大电路中反馈电阻的阻值。具体做法是用一片4路输出选择器74HC4052来控制反馈回路的选通。自学习程序将判断初始心电放大倍数的大小,然后由DSP芯片修改选择器的控制位来得到合适的放大倍数。整个放大电路的放大倍数范围为2001 500倍。电压上拉电路将使基线电压由0V变为1V,以满足A/D转换芯片的转换范围。双T型50Hz陷波电路用来去除50Hz工频信号的干扰。A/D转换芯片选用MAX1242为逐次逼近式A/D芯片,转换位数为10位,采用SPI串行总线控制,电压转换范围为02.5V。经计算,模拟电路的总共模抑制比≥80dB。 DSP芯片及存储电路TMS320VC5402是一款性价比很高的定点数字信号处理器,其最高处理速度可达100MIPS,C5402有8条总线,使得执行程序可以高度并行。它的数据/程序寻址空间达到1M×16bit,并且内置4k×16bit ROM和16k×16bit RAM。C5402有2个多通道缓冲串行口、一个8位主机接口(HPI)、2个16位定时器以及6通道DMA控制器。 我们采用闪速存储器SST39VF040来存储数据。这款Flash采用并行总线,可以存储4Mb数据,写入一个字节的速度为14μs,读取一个字节的速度为70ns,可反复擦写次,可以完全满足低采样率A/D转换数据的实时存储要求。除了存储心电信号,Flash还需要存储DSP芯片的内嵌程序。整个程序在DSP的RAM中运行,但在掉电后不能被保存,因而需要将程序保存在FLASH中。系统上电后,C5402首先运行固化在ROM中的Bootloader代码,自动把存储在闪存中的程序写入DSP的RAM,写入结束后主程序开始运行。 SST39VF040以字节为单位进行数据存储,共有19条地址线,其中的低16位直接与C5402的地址总线相连,而最高3位则连接C5402的异步串行口,这样通过控制异步串行口的输出,就可以改变对FLASH的高位寻址。例如,我们首先将连接高3位地址线的串行口输出设为“000”,然后执行寻址“010h”的指令,则最后所寻地址为0h+010h=010h;如果把连接高3位地址线的串行口输出改为“001”,然后仍执行寻址“010h”的指令,则所寻地址变为10000h+010h=10010h。可见,通过改变高3位地址,我们可以分别访问FLASH的8块起始地址不同的扇区。每块扇区的大小为64kb。其中起始地址为0h的第一块扇区被用来存储内嵌程序,其余7块用来存储心电数据。时钟芯片如果能记录下每段心电数据的采集时间,就可以方便地对心电数据进行统计分析,这十分有利于对患者的长期观察。我们用Dallas公司生产的DS1302涓滴电流式时钟芯片实现这一功能。 DS1302相当于一块电子表,存储包括年月日在内的准确时间信息。此芯片采用双电源供电方式。当系统上电后,它由3.3V系统主电源供电;当仪器关闭后,我们用一块3V钮扣电池供电,以保持芯片继续计时。当开始采集一段心电数据时,我们首先从DS1302中读出时间信息,存储于这段心电数据的开头。当用Modem传送某段心电信息时,它的时间信息首先被医院中心站接收读出。 另外,在待机状态时,监护仪通过液晶显示从时钟芯片读出的时间。 液晶显示模块我们选用精电蓬远公司的MOBI2002图形点阵式液晶,其分辨率为96×48。MOBI2002的驱动芯片为Philips公司的PCF8548。驱动芯片内有96×6字节的DDRAM,每个字节控制一列共8个象素点的状态。由于这款液晶没有自带的字库,因此所有数字与字母的字库都需要我们自行设置。 这款液晶的特点是采用总线I2C控制。总线是Philips推出的一种二线制串行总线。两条通讯线分别为串行数据线SDA和串行时钟线SCL,使用时必须为每条通讯线加一个上拉电阻以保证当总线空闲时为高电平。这两条线由C5402的HPI口模拟为通用I/O口进行控制。使用I2C总线在保证传输速度的同时,有效节省了系统资源。数字通讯模块本监护仪可以利用电话网络,通过Modem拨号将储存的心电数据传送给医院的中心站。通常Modem由RS232串行口进行控制,而C5402只能输出和接收TTL电平的信号。因此为了在C5402和Modem之间实现双向的电平和时序转换,我们选择MAX3111E来完成此项功能。MAX3111E集成了一个通用异步收发器(UART)和一个有15kV静电保护的RS232收发器。MAX3111E采用SPI串行接口,其内部的电荷泵使它通过3V电源就可以产生符合RS232电平标准的信号。UART包括晶体振荡器和可以软件设置的波特率发生器。我们将波特率设置为9600。我们要同时使用MAX3111E的UART和MAX232收发器,因此将UART的输出管脚与RS232收发器的输入管脚相连,将UART的输入管脚与RS232收发器的输出管脚相连(图3)。 
使用时,将Modem与监护仪相连,同时保证中心站端的Modem和心电接收程序处于开启状态,则按下监护仪上的Modem传输键,程序将自动拨号连接,开始传送心电数据。通过监护仪上的按键可以选择传送不同段的心电数据。 模拟通讯模块[5]监护仪的另一种通讯方式,是把数字心电信号经过D/A转换和电压/频率(V/F)转换变成频率电信号,然后通过特定发声装置将此频率信号转换为模拟音频信号,最后拨通普通电话将此音频信号传送给医院中心站,医院端的相应接收设备再将声音信号还原为心电信号。这种方式操作方便,不需要为监护仪附加特殊的通讯设备,适合短期心电数据的传送,是Mo-dem传送方式的有益补充。 D/A转换芯片采用串行控制的MAX5355,其转换精度为10位。转换后的模拟电压信号接入锁相环集成芯片CD4046进行V/F转换,成为脉冲频率信号。最后,我们用一个三极管驱动一个压电陶瓷蜂鸣片,将此频率信号转化为音频信号。压电陶瓷蜂鸣片是一种电-声能转换装置,当在压电陶瓷发声元件上施加交变的电压,发声元会产生绕曲振动而发声。在用户端,将电话机话筒置于蜂鸣器上即可进行传输。除了用于模拟通讯,压电陶瓷蜂鸣片还被用来在监护仪检测到异常心电信号时发声报警。 电源模块整个监护仪需要多种直流电源。为了使监护仪能够连续使用和实现便携性,我们采用一节1 050mA时的锂离子电池作为供电电源,并为其配备充电电路。我们采用脉冲式高效锂离子电池充电芯片MAX1879。我们在充电电路中接入一个绿色发光二极管。在充电过程中,二极管发光;当锂离子电池被充到95%以上时,二极管熄灭,表示充电结束。 C5402需要1.8V和3.3V混合供电,另外多种外设需要3.3V供电。我们使用TI仪器公司针对DSP而设计的电源芯片TPS767D318。此芯片集成了2个DC-DC转换器,分别能产生3.3V和1.8V。此外,将TPS767D318的RESET管脚与C5402、液晶模块以及闪存的复位管脚相连。当TPS767D318片内的电压比较器发现输出电压不足时,其RESET被拉低,从而对以上3种器件进行复位。 模拟电路部分需要±5V供电,74HC4052需要±3.3V。+5V由PWM型DC-DC转换器MAX1676产生。MAX1676是一款高效率、逼近型、带有同步整流器-DC变换器,其输入端接锂离子电池。此芯片有低电压检测功能。如图4,当LBI处的电压低于1.3V时,LBO由高阻态变为低电平。我们接入一个红色二极管,当锂离子电池的输出电压低于某值时,则R1、R2之间的电平低于1.3V,二极管发光,做出需要充电的提示。我们用两个反电压变换器MAX828分别将+5V和+3.3V转化为-5V和-3.3V。此外,为了使压电陶瓷蜂鸣片发出的声强足够大,我们使用MAX761从+5V得到+12V为其供电。 
系统控制程序的设计 仪器的软件开发系统为TI公司的XDS510软件开发工具包。我们采用混合编程的方式,主程序用C语言编写,控制外设的各个子程序用汇编语言编写。各子程序可以完成相对独立的功能,而主程序需要完成以下任务:1)初始化各功能子模块;2)检测用户按键输入;3)调用各子模块的功能;4)协调分配各子模块占用的系统资源。其系统控制流程如图5所示。 
4个外部中断分别对应监护仪的4个控制按钮。程序实现对中断的嵌套调用,使按键在不同工作状态下也代表不同的功能选择,就像手机按键一样。心律失常的判别算法[6]嵌在系统程序中。在硬件中,没有对心电信号进行低通滤波。 我们设计一种40阶FIR低通滤波器,对心电数据进行软件滤波。这样既节约了硬件资源,又提高了滤波效果。 结果与讨论 我们用监护仪实际采集人体的心电信号,检测心电放大电路的效果。对于算法,通过软件来检测它对MIT心电数据库的检测准确率。我们还将实验室的一台机器装上医院中心站软件,连接上Modem和模拟接收机,用监护仪与其进行数字通讯和模拟通讯试验。在把监护仪充满电后,测试了其使用时间。 各项测试结果如下: 1)经过放大和滤波处理的心电信号稳定度高,因测试者活动产生的基线漂移大大减少;高频干扰被滤得很干净。 2)监护仪操纵界面友好,液晶显示清晰快捷,能够描画出实时心电波形,实现了对心电信号的实时采集与分析。用MIT心电数据库进行检验,算法对R波的检出率达99%以上[6]。对停搏、漏搏、心动过速、过缓能及时做出报警。 3)数字通讯中,Modem拨号成功,心电信号被成功传播到中心站电脑上并显示出图形。 4)模拟通讯中,转化为音频的心电信号用普通电话传给作为医院中心站的电脑,并被成功还原为心电波形。这种方法传输的心电信号在被还原之后明显比原始信号平滑,因为多次转换造成了细节上的损失,但仍保存着概貌的信息。 5)由于采用大量贴片元件,设计合理,整个系统十分省电。锂电池充满一次电后可待机5h以上(当不使用模拟传输时达到此项指标,模拟传输模块中的蜂鸣器耗电量大,频繁使用会缩短待机时间)。 本监护仪在设计上主要针对家庭用户,目前实现了4种常见的心律失常报警。下一步可以根据使用中的实际需要来调整其功能。考虑在今后的改进中采用具有更大内部RAM的C5000系列DSP芯片,以使软件能够进一步扩展。拟加入对心电数据的压缩算法,这样闪存所能存储的心电数据长度可超过目前的水平。也可以换用更大容量的闪存。 摘自:中国计量测控网
|