用单片机实现三导联远程心电监护系统 | |||||
| |||||
1 引 言 随着人们生活水平的提高、生活节奏的加快,心血管疾病的发病率迅速上升,已成为威胁人类身体健康的主要因素之一。而心电图则是治疗此类疾病的主要依据,具有诊断可靠,方法简便,对病人无损害的优点,在现代医学中,变得越来越重要。常规心电图是病人在静卧情况下由心电图仪记录的心电活动,历时仅为几s~1 m,只能获取少量有关心脏状态的信息,所以在有限时间内即使发生心率失常,被发现的概率也是很低的。因此有必要通过相应的监护装置对患者进行长时间的实时监护,记录患者的心电数据。又由于心脏病的发生具有突发性的特点,患者不可能长时间地静卧在医院,但又需实时得到医护人员的监护,所以研发相应的便携式无线心电监护产品就显得更加重要。 目前虽说国内已有成型的无线心电监护产品,但其采用的方案大都是“采集器+发送器(PDA或手机)”,这必然导致其价格昂贵,且PDA或手机的其他功能对于绝大部分患者完全没有必要,所以到目前为止国内实用的无线心电监护产品领域还是空白。本文所述的远程心电监护系统是在医院的提案基础之上,进行充分调研之后设计的总体方案,主要实现如下功能: 三导联心电信号采集; 无线传输紧急情况下40 s的心电数据及诊断结果; 24小时心电图连续记录; 通过高速USB上传心电数据至PC机; 紧急呼叫。 2 系统总体设计 作为便携式手持远程移动终端,在设计时应充分考虑其体积小,功耗低,存储容量大和处理速度高的要求,因此在CPU的选择上十分慎重。经过资料收集和反复比较,最终选择了Samsung公司推出的基于ARM920T内核的S3C2410处理器,该处理器资料丰富,性价比高。 采用RISC架构的ARM微处理器一般具有如下特点: 体积小,功耗低,成本低,性能高; 支持Thumb(16位)/ARM(32位)双指令集; 大量使用寄存器,使指令执行速度更快; 寻址方式灵活简单,执行效率高; 指令长度固定。 可以看出基于ARM的嵌入式处理器是便携式手持终端的最佳选择,所以在设计系统方案时首先定位在该系列处理器上。S3C2410处理器基于ARM920T处理器核,采用0.18 μm制造工艺的32位微控制器,采用五级流水线和哈佛结构,最高运行频率为203 MHz。该处理器具有:独立的16 KB指令Cache和16KB数据Cache、MMU、支持TFT的LCD控制器、NAND闪存控制器、3路UART、4路带PWM的Timer、丰富的I/O口、8路10位ADC、Touch Screen接口、IICBUS接口,以及2个USB主机和1个USB设备等丰富的外围设备。 S3C2410提供了一套较完整的通用外围设备,且使整个系统的功耗最低,从而免去了添加、配置附加外围接口的麻烦,有效地缩小了线路板的面积,这也正是本系统选择该处理器的重要原因。 系统的整体结构如图1所示,以S3C2410为核心,外扩了8 MB的NOR FLASH、64 MB的NAND FLASH以及16 MB的SDRAM等存储芯片,通过GPIO口扩展了键盘、LCD和蜂鸣器等人机接口单元,对外提供USB和UART等通信接口,同时连接了Siemens公司的MC35模块,以实现无线传输和紧急呼叫功能。从系统的总体功能结构来看,可将系统划分为5个模块:电源模块、心电数据采集模块、数据无线传输模块、图形用户界面模块、数据存储管理模块。
2.1 电源模块 系统采用单节1700 mAh锂离子可充电电池供电,但随着电量的释放,电压也在不断降低,变化范围为4.2~2.75 V。而本系统中分别需要一个4.3 V的MC35工作电压、一个3.3 V的I/O电压、一个1.8 V的CPU核电压和一个1.8 V的CPU职守电压。为了满足系统的要求,电源电路中必须同时具备升压稳压器和低压差线性稳压器。为了解决该问题系统采用1个开关型升压DCDC稳压器、1个3.3 V极低压差线性稳压器和2个带有Shutdown引脚的1.8 V低压差线性稳压器来组成供电系统,供电方案如图2所示。
2.2 心电数据采集 由于心电图信号的检测是属于强噪声背景下的超低频(0.5~100 Hz)微弱(0.1~5 mV)信号检测,具有微弱性、稳定性、低频特性和随机性等特点,故要求前置级应满足高输入阻抗、高共模抑制比(CMRR)、低噪声、低漂移和高安全性。微弱的心电信号受到来自人体内外的多种干扰,其特征被淹没在复杂的信号之中,为了使其特征突出,就有必要对其进行预处理。系统采用的心电信号采集原理如图3所示。其中前置级采用差动放大电路,其放大倍数为22.4倍;后级放大电路的放大倍数为37倍,则总放大倍数为828.8倍。
由于心电信号为低频信号,因此在模拟电路上,设计截止频率为100 Hz的一阶低通滤波器来滤除高频干扰,采用二阶VCVS带阻滤波器来滤除50 Hz工频干扰。在数字处理上,为了抑制对心电信号影响较大的工频干扰和基线漂移,采用2 048点FFT对输入的一帧心电数据进行时域—频域的变换,然后去除0.5 Hz以下的低频和50 Hz的工频;同时为了抑制高频噪声和50 Hz倍频造成的干扰,又滤除了100 Hz以上的频率,然后再进行IFFT将此组数据变换回时域。 2.3 数据无线传输模块 本系统为远程移动终端,涉及数据的无线传输,为实现此功能采用了Siemens公司的MC35模块,并移植了TCPIP协议栈和PPP协议,以完成心电数据的发送和诊断结果的接收。MC35是Siemens公司推出的第一款支持GPRS的GSM/GPRS模块,它体积小,易于集成到便携式手持终端中,支持VOICE、DATA、FAX以及SMS等业务。处理器S3C2410通过异步串行通信接口与MC35相连,并通过AT命令对该模块进行控制和数据传输。 在发送数据时,首先,应用层将采集到的心电数据提交给TCPIP协议栈;然后,TCPIP协议栈根据目的地址和端口将该心电数据封装成完整的IP数据报,再提交至PPP层;最后,该IP数据报经PPP层封装之后,通过串口逐字节地提交至MC35并发送。在接收数据时,MC35首先将接收的数据逐字节地提交至PPP层;经PPP层将分散的各字节重组成一帧完整的IP数据报之后,再提交至TCPIP层进行详细的处理,具体流程如图4所示。 在开机初始化时要完成MC35的启动并登录移动梦网网关,建立与服务提供商的连接。一般在发送指令之前先要发送一条测试指令,以检测MC35的当前状态,该指令的格式为“AT”;在入网网关及流量控制等参数通过AT指令设置完成之后,便可通过服务编码99开始呼叫与服务提供商建立连接,指令格式为ATDT*99***1#。若在该指令执行之后给定的时间内返回CONNECT信息,则表明与服务提供商的连接建立成功;否则,表明拨号失败,无线传输功能无法正常启动。MC35成功登录移动梦网网关之后,将自动从命令模式切换到数据通信模式,且串口通信方式由原来的查询式变为中断方式。此时由系统主动发送一帧PPP请求信息,服务提供商接到该请求信息后主动发出询问帧,协商相关参数的设置。待服务参数及用户身份验证成功之后,服务提供商为系统分配一独立IP,至此便可认为GPRS成功上线。
GPRS成功上线后可以认为MC35主要处在两种工作状态:数据传输状态和空闲状态。在数据传输状态,MC35的峰值电流可达400 mA;在空闲状态一般为15 mA。另外,在空闲状态MC35还支持多种休眠模式。考虑到系统的功耗问题,启用了MC35的休眠功能。系统采用了MC35的休眠模式七。在该休眠模式下,电流一般为3 mA左右;MC35无论从串口还是从服务提供商接收到数据,都会立刻将MC35设置为正常模式,待数据传输结束之后自动进入休眠模式。该休眠模式的设置可以通过指令“AT+CFUN=7”来完成,且该指令必须在GPRS上线之后执行。这样在空闲状态下即可自动将MC35设置为休眠模式,将电流值从15 mA降到3 mA。在休眠指令执行前涉及MC35的状态切换,因为在执行该指令前MC35处在数据通信模式,所以要通过指令“+++”将其切换到命令模式之后再执行该休眠指令。在休眠指令执行之后还需通过指令“ATO”将MC35切换到数据通信模式;否则MC35会把将要发送的数据也当作指令来处理。 2.4 图形用户界面 系统采用深圳蓬远公司生产的低功耗、128×64点阵液晶模块MOBI2006来图形化显示系统信息。MOBI2006支持并行和串行两种数据通信方式,工作电压为3.3 V。在本系统应用中,使用S3C2410的I/O口模拟LCD的控制时序来实现对液晶的控制。 在具体实现相关信息的显示时采用了Framebuffer技术。首先预分配一块缓冲区并声明为二维数组,数组的一维长度和二维长度分别与液晶的宽和高相对应,这样数组的每个元素都代表液晶中的一个点。在系统运行中若要刷新液晶显示,则首先要更新Framebuffer缓冲区,再从Framebuffer更新液晶显示。MOBI2006列向基于点寻址;横向基于页寻址,每一页由8个点组成。基于液晶的特点,如果不采用Framebuffer技术,刷新屏幕中的一小块,则会导致整个屏幕的变动,给上层应用的开发带来很大困难。因此,虽说采用Framebuffer技术将占用一部分内存和刷新时间,但会为后续的开发带来很大方便:在上层具体应用中不再受页寻址的限制,在上层开发者看来列向、横向均为点寻址,可以方便灵活地操纵液晶。另外,为了保证Framebuffer与液晶的同步,采用基于事件的方法刷新液晶屏并且是局部刷新,这样既节省了液晶的刷新时间又减小了屏幕的抖动。 例如,应用层要显示一张图片,只须给出图片的显示位置,即对应于二维数组的行列值、图片的宽和高,以及相应的点阵数据。首先将图片的点阵数据刷新到Framebuffer缓冲区,然后再根据显示位置确定液晶的刷新区域,其中缓冲的列值对应于液晶的列值,而行值要转换为液晶的页面值,可通过如下公式转换: Page_start=row/8 Page_end=(row+high-1)/8 其中:Page_start和Page_end分别对应于液晶的起始、终止页面值;row对应于图片显示位置的横坐标;high对应于图片的高度。计算出相应的页面值之后便可通过如下过程刷新液晶的指定区域,完成预期图片的显示。
2.5 数据存储管理 在S3C2410 的BANK0中扩展了1片4M×16位的NOR FLASH;在BANK6中扩展了一片8M×16位的SDRAM,并且利用S3C2410的NAND FLASH控制器扩展了一片64M×8位的NAND FLASH。NOR FLASH主要用来存储程序代码;NAND FLASH主要用来存储采集的心电数据以及部分程序代码。S3C2410支持从NOR和NAND两种方式启动,可以通过配置S3C2410的OM[1:0]来选择CPU的启动方式。 系统可以实现全天24小时无间断心电数据采集,这样必将产生大量数据。为了将大量心电数据传输到PC机中供医护人员分析、诊断,系统采用了通用的USB端口。S3C2410内部集成了USB Device控制器,因此只须设计简单的外围电路,即可实现此功能.该USB Device控制器完全兼容USB1.1协议规范,集成了USB传输器,支持控制传输、中断传输和批量传输;5个具有FIFO的端点,为批量传输的端点提供DMA接口并且支持挂起和远程唤醒功能。 本系统具有很强的实用性,可以对心脏病患者进行实时监护。由于本系统具有无线传输功能,因而患者可以不受时间和空间的限制使用本系统,无论在家中还是在野外都能对心脏进行实时监护。系统的24小时无间断心电图记录功能,足以捕捉突发性的异常心电数据,为医护人员提供有力的诊断依据。本系统研制成功后受到医疗界专家的高度评价,在临床测试过程中也受到患者和医护人员的一致好评。
|