随着现在社会的发展,人们也日益开始关注健康事业的发展,对医学技术的要求也越来越高。现实中很多病例无法通过现实病例学习,更多的医生培养只能通过模拟设备进行,心电波形模拟波形发生系统的设计就是其中一个例子。
心电模拟发生系统使用4种不同频率的标准心电波形及用于测试的方波、锯齿波、三角波和正弦波,通过算法拟合出病人的34种异常心电波形(包括成人和儿童的),各周期波形可采用插入不同的延时子程序来实现。提取医院病人的异常心电波形,通过拟合的方法可以模拟和转换除颤后的正常波形,依据此方法设计出一个心电信号发生系统,系统可以采集、模拟任意导联心电信号,并将结果存储到心电数据库供研究分析使用。最后设计出一种用微控制器和波形输出以及键盘转换电路构成的心电模拟波形发生器。
1 系统设计
心电模拟波形系统主要以ARM9处理单元为核心,另外还有高压除颤采集电路、D/A转换模块、波形输出电路、键盘接口电路与监护仪信号匹配以及应用程序的设计等几个部分。
ARM微处理器是一种高性能、低功耗的32位微处器,它被广泛应用于嵌入式系统中。ARM9代表了ARM公司主流的处理器,已经在手持电话、机顶盒、数码像机、GPS、个人数字助理以及因特网设备等方面有了广泛的应用。
本系统采用的ARM9嵌入式开发平台,主要利用ARM9丰富的I/O资源和快速处理的强大功能。ARM9处理器的主要结构及其特点如下:
(1)32 b定点RISC处理器,改进型ARM/Thumb代码交织,增强性乘法器设计。支持实时(real-TIme)调试。
(2)片内指令和数据SRAM,而且指令和数据的存储器容量可调。
(3)片内指令和数据高速缓冲器(cache)容量从4 KB~1 MB。
(4)设置保护单元(protcction unit),非常适合嵌入式应用中对存储器进行分段和保护。
(5)采用AMBA AHB总线接口,为外设提供统一的地址和数据总线。
(6)支持外部协处理器,指令和数据总线有简单的握手信令支持。
(7)支持标准基本逻辑单元扫描测试方法学,而且支持BIST(built-in-self-test)。
(8)支持嵌入式跟踪宏单元,支持实时跟踪指令和数据。
新一代的ARM9处理器通过全新的设计,采用更多的晶体管,能够达到高于ARM7处理器两倍以上的处理能力。这种处理能力的提高是通过增加时钟频率和减少指令执行周期实现的。
2 硬件电路和原理
该部分主要分为ARM9硬件平台、D/A转换、波形输出电路、信号的采集以及右脚驱动电路的共模负反馈电路。系统在ARM9处理单元的控制下,D/A转换电路把波形数据转换为模拟量进行输出。当接收到高压除颤信号后,处理器就会把异常心电波形采集转换成为正常的心电波形图。
系统硬件连接图如图1所示。
2.1 D/A转换原理
心电模拟信号就必须通过采样量化为数字量并将其存储在数据存储器内,供软件进行分析使用。这个过程必须通过AD转换器来实现。有数字量转化为模拟量的D/A转换模式:
(1)采用D/A转换芯片;
(2)采用PWM方式,即脉宽调制;
(3)采用f-v方式,即频率电压转换。
通过对心电图信号波形的分析可知,波形变化周期大约是1 s,因此采用频率电压转换方式已经具备足够的数模转换精度,频率转换指标也满足要求,而且该方式所用硬件少,一般都是用软件来实现的。
该部分是系统的核心,为了实现数字系统对这些电模拟量进行检测、运算和控制,需要一个模拟量与数字量之间的相互转换的过程,即常常需要将数字量转换成模拟量,简称D/A转换,完成这种转换的电路为数模转换器(Digital to Analog Converter,DAC)。
为了保证系统的稳定和信号的要求,D/A转换芯片采用8位并行的DAC0832芯片,由12 V单电源供电,每个DAC有各自独立的基准输入。 DAC0832芯片结构框图如图2所示。
芯片内有一个8位DAC寄存器,形成两级缓冲方式,这样可使DAC在转换输出前一个数据的同时,采集下一个数据并送到8位输入寄存器,以提高D/A的转换速度。更重要的是,能够在多个转换器分时进行D/A转换时,可以同时输出模拟信号,使多个转换器并联工作,以增加转换位数,达到提高转换精度目的。考虑到要采用三路D/A,如果每一路独占8个I/O端口,再加上若干控制端口,处理器提供的I/O端口数远不能满足要求。所以计划采用共用数据端口,外接I/O口片选的方式来实现。这样可以节约16个I/O口,也满足了信号输出同步性的要求。
2.2 信号采集电路
根据除颤高压发生器的要求,当有高压放电信号时,由于高压除颤信号具有的放电电流具有双向性,并且是在5ms时间内将电压由12 V直流电压转换为4 000 V以上的高压,使电容容量达到较高的程度,所以在安全性能上要充分考虑。
由除颤的高压特性可以知道,除颤高压发生器采用单端正激式升压控制模式,除颤高压有两个明显的特性:
(1)变压比较大,由12 V直接升到4 000 V以上;
(2)对充电速度要求也比较高。
正激式变换优点是电路比较简单,工作稳定,可靠性高,不存在由于电路不平衡造成的偏饱和问题。
2.3 波形输出电路
选择4个不同心率的正常心电波形作为信号源,模拟输出Ⅰ,Ⅱ,Ⅲ,aVR,aVL,aVF心电信号。设探测电极在左上肢(LA)、右上肢(RA)、左下肢(LL)各点的电位分别为VL,VR,VF。
标准肢体导联关系式如下:
威尔逊中心电端电压为0,故有:
2.4 右腿驱动电路
右腿驱动电路是将采集到的心电信号进行反向放大,传到右腿驱动电极,对共模干扰信号来说这是个负反馈,因此可有效地削弱人体上感应的共模干扰信号,以达到较强抑制频率干扰的目的,采用右腿驱动,还可以使干扰电压降到1%以下,能够很好地达到所要求的效果。
3 系统软件
系统软件设计主要是在嵌入式Linux硬件平台的基础上完成的。系统软件主要有主程序和产生的各种波形的子程序构成以及系统硬件驱动程序的编写。主程序主要是对各个子程序的调用和组织,使整个系统能够有序运行。驱动程序是为了能让系统内核和系统之间的接口正常运行的。软件也配合硬件电路进行心电采集、传输和模拟等。
3.1 应用程序的设计界面
软件开发工作主要涉及界面程序的开发。界面程序的编写主要是用Qt来完成的,驱动主要是用C编写的。界面设计是两种波形同时输出,反映正常的心电除颤过程。
系统的软件界面设置框图如图3所示。
3.2 系统应用程序设计
嵌入式Linux系统的有代表性的GUI系统主要有MiniGUI,MicroWindows,TIny X以及Qt/Embedded,这些GUI系统在接口定义、体系结构、功能特性等方面存在着很大的差别。而Qt/Embedded延续了Qt的强大功能,可以运行在多种不同的处理器上部署的嵌入式Linux操作系统。Qt/Embedded是著名的Qt库开发商Trolltech的面向嵌入式系统的Qt版本。这个版本的主要特点是可移植性较好,许多基于Qt的X Window程序可以非常方便地移植到嵌入式系统。
Qt/Embedded以原始Qt为基础,并做了许多出色的调整以适用于嵌入式环境。Qt/Embedded通过QtAPI与Linux I/O设施直接交互,成为嵌入式Linux端口。同Qt/X11相比,Qt/Embedded很省内存,因为它不需要一个X服务器或是Xlib库,它在底层摒弃了Xlib,采用framebu-ffer作为底层图形接口。同时,将外部输入设备抽象为keyboard和mouse输入事件。Qt/Embedded的应用程序可以直接写内核缓冲帧,这避免开发者使用繁琐Xlib/Server系统。该部分主要分为波形界面实现和用户按键控制的实现。波形显示采用Qt的函数类库Qpainter,由于波形界面显示两路心电波形,会产生延迟效果,所以引入了多线程机制协调,Qt支持多线程,有独立于平台的线程类,线程安全方式的时间传递和一个全局Qt允许不同的线程调用Qt方法。
程序实现的流程图如图4所示。
4 结语
ARM系列处理器是当今在国内最流行的嵌入式处理器之一。Linux操作系统是一个开源的操作系统,开发人员可以免费获取Linux内核的源代码。因此系统设计采用嵌入式Linux操作系统并结合外围的D/A转换电路、高压信号采集、右腿驱动、低通滤波和应用程序控制部分等实现了心电波形模拟发生系统的设计。该系统可以很好地模拟心电除颤的过程,并且输出符合医学标准的34种常见异常心率波形,用于正常的医学教学。
本系统的优点是由于系统使用嵌入式Linux实时多任务操作系统,因此设计具有很高的实时性、稳定性和可靠性,并且可以实时采集显示心电波形。结合心电除颤的过程以及病人心电波形设计一套心电模拟波形发生系统,极大地方便医学培训机构的教学,具有很高的使用价值和广阔的应用前景。