摘 要:以FPGA为核心控制模块,搭载MAX1300为数据采集模块,完成8通道、16位精度数据采集系统。采集数据在FPGA内部储存,DSP在适当时刻对其进行读取以完成伺服控制工作。针对以往数据采集系统的局限,FPGA内部对所采集数据进行预处理,减轻了CPU数据处理强度和负担。详细介绍了各芯片硬件电路设计,给出FPGA内部各功能模块逻辑图。
关键词:数据采集; FPGA; DSP
目前市场上的多生理参数监护设备通常采用传统意义上的工控机和前端信号采集板卡构成,这样的监护设备体积庞大,价格高昂,功耗大,不适合携带。目前也有人采用了PC104的板卡取代了传统的工控机,但是这样的监护设备价格高昂,不能满足普通消费者的需求,在便携式的远程移动监护方面也仍然存在某些缺陷。随着传感技术和电子技术的发展,病人监护仪正广泛应用于临床监护中。传统的监护仪由于监护参数单一、功能简单、体积较大而仅局限于手术过程和ICU病房的监护,极大地限制了其使用价值,不能满足所有临床科室的使用。嵌入式计算机系统强大的处理能力和网络通信能力能够方便地实现GPRS和Internet的接入,把嵌入式计算机系统应用到医疗监护系统中具有现实可行的意义。为此,开发了基于嵌入式计算机系统的体积小、功耗低、价格便宜、稳定性好的多生命参数病人监护仪,它能长时间实时监护病人的血氧饱和度(SPO2)、心电(ECG)、呼吸(RESP)、血压(BP)和体温(Temp)[1]。同时,该监护仪还能通过RS232接口实现计算机通信,把监测到的数据发送到医院的数据库中。
1多参数监护仪的整体设计
图1为多参数监护系统的整体设计框图。该系统主要分为多参数信号采集模块、嵌入式计算机系统和GPRS模块。多参数信号采集模块通过血氧信号、心电信号、呼吸信号、血压信号、体温信号处理电路采集到的血氧、心电、呼吸、血压、体温信号经A/D转换分别送入到TMS320F2812处理器中进行处理,再经过光电隔离的RS232串口送入到嵌入式计算机中[2]。嵌入式计算机系统通过RS232串口1对前端信号采集模块发出命令控制,从而获得多生理参数的采集数据。嵌入式计算机系统一方面将多生理参数的数据通过LCD进行实时显示,同时可以将数据存储到NandFlash中,另外可以利用RS232串口2通过AT指令对GPRS模块进行控制,将数据通过GPRS模块传送到医院数据库中,医护人员可以实时观察病人的情况,实现远程多参数监护。
在远程监护中,数据通信是非常重要的组成部分。而GPRS是目前解决移动通信服务的一种完美的业务,它以数据流量计费、覆盖范围广泛、数据传输速度快等优点而得到了广泛的应用。本系统选用西门子公司的GPRS模块来传送采集到的多参数数据。GPRS无线模块作为GPRS终端的无线收发模块,把从TCP/IP模块接收的TCP/IP包和从基站接收的GPRS分组数据进行相应的协议处理后再转发[3-4]。
2 多参数采集电路的设计与工作原理
多参数采集电路主要包括血氧、心电、呼吸、血压和体温5个方面的采集。
(1) 血氧信号的采集:血氧饱和度的检测方法主要有两种,一种是有创法,一种是无创法。无创法是运用光学来测量的,目前在国内外也主要是基于这种方法来研究血氧饱和度的。由于血液中氧合血红蛋白和还原血红蛋白对波长为660 nm的红光和940 nm的红外光的吸收率相差很大,故通常采用这两种光线来测量血氧饱和度[5-6]。
将血氧饱和度探头夹在手指上,上壁固定了两个并列放置的发光二极管(LED),发出波长为660 nm的红光和940 nm的红外光。下壁有一个光电检测器,将透射过手指动脉血管的红光和红外光转换成电信号,它所检测到的光电信号越弱,表示光信号穿透探头部位时,被那里的组织、骨头和血液等吸收掉的越多[7]。而皮肤、肌肉、脂肪、静脉血、色素和骨头等对这两种光的吸收系数是恒定的,因此它们只对光电信号中的直流分量大小发生影响。但是血液中的HbO2和Hb浓度随着血液的脉动作周期性改变,因此它们对光的吸收也在脉动地变化, 由此引出光电检测器输出的信号强度随血液中的HbO2 和Hb浓度比脉动地改变,即可得出SPO2值。
(2)心电信号的采集:人体的心电信号是一个很微弱的低频信号,其幅值一般在1 mV左右,可低至几十微伏,频谱分布在0.05~100 Hz,主要频谱分量集中在5~20 Hz。要采集这样的信号,必须设计合适的心电信号采集电路。图2为心电信号采集电路的原理图。
前置放大器是整个心电采集系统设计的关键,为了提高信噪比,选用了高输入阻抗、高共模抑制比、低噪声、低漂移的ADI公司的仪表放大器AD620。前置放大器输出的信号并不是纯粹的心电信号,其中除了夹杂着不少工频干扰外,还有很多直流或低频信号,因此选用了截止频率为0.03 Hz的高通滤波器来滤除这些直流或低频信号。由于有些工频干扰是以差模形式进入放大器的,所以输出的信号中有较强的工频干扰,解决的方法是采用凌特公司的LTC1068-50集成开关电容滤波器来构成50 Hz陷波器将工频干扰滤掉。然后需要再次将心电信号放大,由于混入了许多高频信号所以需要用低通滤波器滤除这些高频信号,最后让心电信号通过电平迁移电路就可以得到心电信号的雏形了。
(3)呼吸信号的采集:对于呼吸信号的检测,采用的是目前应用最广的胸阻抗原理测量呼吸参数,随着呼吸的变化,病人的胸腔阻抗也发生变化[8]。将高频脉冲施加在人体的胸腔上,从测量电极提出的是一个被呼吸信号调制的高频调幅信号,利用仪表放大器PGA206进行程控增益放大,然后利用全波整流电路对高频调幅信号进行解调,检出高频信号幅值变化的包络线,此即随阻抗变化的信号,由于呼吸信号的频率一般在0.08~10 Hz之间,所以最后还需要将检波后的调制信号通过0.08~10 Hz的带通滤波器,滤除直流分量和高频杂波干扰,就可以得到呼吸信号的原型了。
(4)血压信号的采集:本文将用示波法来进行血压的测量。示波法血压测量中采用充气袖带来阻断动脉血流,当动脉血流被阻断时,由于近端血液的脉动,在袖带内可以检测出动脉血流产生的气压振动波。首先将袖带充气到高于收缩压20 mmHg左右,然后使袖带缓慢放气。当袖带内压力高于收缩压时,动脉阻断,出现幅度较小的振动波。当袖带内压力等于收缩压时,振动波幅度增大,随着袖带内压力的不断降低,振动波幅度达到最大。当袖带内压力小于平均压力时振动波幅值逐渐减小,袖带内压力小于舒张压以后,动脉管壁在舒张期已充分扩张,管壁刚性增加,而振动波维持在较小的水平。示波法是根据不同的袖带压力下的脉搏波幅度变换特征来识别动脉收缩压、平均压、舒张压等[9]。血压信号原理框图如图3所示。
由DSP来控制气泵和电磁阀实现血压的定时自动检测,利用MPX5050GP压力传感器检测臂带的压力在这个过程中的波动即可获得血压信息,然后将血压信号通过带通滤波器,滤除干扰和噪声信号就可以得到血压信号的原型了。
(5)体温信号的采集: 体温信号的采集需要通过专门的体温传感器,一般要求传感器的温度测量范围在20~45 ℃之间,由于体温是平稳变化信号,为了提高测量精度,在A/D转换的时候,需要用过采样的方式来提高测量精度。
3 嵌入式计算机系统的设计
3.1 嵌入式系统的工作原理
嵌入式系统由硬件系统和软件系统构成。嵌入式系统硬件部分的核心部分就是嵌入式处理器,在此选用AT91RM9200。嵌入式软件部分一般来说是由嵌入式操作系统和应用软件两部分组成。软件可以分成启动代码(bootloader)、操作系统内核与驱动、文件系统、图形界面和应用程序等几部分[9]。当整个系统上电运行时,AT91RM9200首先运行固化在32 MB Flash中的bootloader程序,把64 MB Flash中的Linux内核搬移到64 MB内存中运行,完成嵌入式内核的启动,以及对U盘的挂接和Qtopia文件系统的启动,然后进入到嵌入式Qtopia的用户界面[10]。
Qtopia是Trolltech公司为采用嵌入式Linux操作系统的消费电子设备而开发的综合应用平台, Qtopia包含完整的应用层、灵活的用户界面、窗口操作系统、应用程序启动程序以及开发框架。为了实现USB的图像采集和程序设计,选择的软件操作系统是Linux和Qtopia,由于Qtopia文件系统比较大,把它固化到Flash中,会增加成本,如果被用户在使用过程中损坏,系统将难以恢复。因此本文采用把Qtopia文件系统放在U盘上。如果U盘中的Qtopia文件系统发生损坏,可以将备份在PC上的Qtopia文件系统重新拷贝到U盘中,从而将整个系统快速恢复,现在的U盘也很便宜,可以大大地降低成本和极大地扩展该系统的存储容量。该方法保证了系统的稳定性,可靠性,并且可以实现该监护系统的动态升级。
3.2 嵌入式系统的软件设计
嵌入式系统的软件设计一般采用的方法是:先在PC机上调试好应用程序然后再通过交叉编译生成可执行的二进制文件,最后将二进制文件下载到嵌入式计算机主板上运行。在此过程中交叉编译尤为重要,现将它的主要步骤介绍如下:
(1)把需要用到的可执行文件的路径写进注册表vi /etc/profile在Pathmunge/usr/local/sbin/ 后面添加Pathmunge /usr/local/arm/3.3.2/bin。
(2)./configure –xplatform linux-arm-g++ -dep ths 16–qconfig qpe (看提示进行选择,当出现qvfb时选择no)如果是多线程的程序则在qpe后面添加-thread就可以了。
(3)进行make。
(4)将应用程序生成的Makefile文件进行修改,用Vi命令打开Makefile文件,将里面的LINK=gcc改为LINK=arm-linux-g++;将LIBS=$ (SUBLIBS) –L$(QTDIR) /lib –lm–lqte改为:LIBS=$ (SUBLIBS) –L/usr/local/arm/3.3.2/lib–L$(QTDIR) /lib/-lm–lqte。
(5)再进行make。
经过上述操作一个可以在嵌入式计算机上运行的二进制文件就产生了。
4 基于Qtopia的多参数监护仪的软件设计
基于Qtopia多生命参数监护应用软件,实现了血氧、心电、呼吸、血压和体温等多参数的动态显示和远程数据的传输。程序流程图如图4所示。
从图4可以看出应用程序首先是根据用户选择,打开与多生命参数模块连接的串口1。要实现对多生命参数模块的正确控制,必须有严格的通信协议做保证,为了提高通信的效率,在数据通信的过程中对通信的数据也进行了一定的压缩处理。所以在启动多生命参数进行监护的时候,必须根据用户的设置要求,例如心电信号的采集模式、增益设置、导联方式等相关信息生成采集心电命令数据包,然后发送到多生命参数的采集模块中,多生命参数采集模块根据接收到的心电信号的采集命令包,对其进行解码,设置对心电信号的采集模式、增益控制、导联方式的选择,然后进行心电信号的采集。对于呼吸信号和血氧信号同样需要生成相应的数据命令包,控制多生命参数模块对呼吸和血氧信号的采集。当这些数据命令包都发送完后,最后还需要生成一个数据命令结束包,启动多参数模块在设定的工作模式下实现多生命参数的监护,并且启动定时器,定时读取串口缓冲区的数据。定时读取缓冲区的采集数据流程图,从图中可以看出,对串口1进行冗余检查,增加接收数据的合法性。在数据通信的过程中,为了提高通信效率,对数据进行了一定的压缩处理,传送到上位机,所以在上位机中必须对一帧数据进行检测,查找数据的帧头,校验数据累加正确否,然后从中提取有效的采集数据。在一帧数据中包含了血氧、心电、血压、呼吸和体温等数据信息,也必须根据事先约定好的通信协议对血氧、心电、血压、呼吸和体温的数据进行有效的分离,然后调用绘制波形函数QCurveWidget分别绘制血氧、心电、呼吸数据的波形。
5 多参数的远程传输与接收
5.1 多参数的远程传输
该嵌入式多参数监护系统在实现本地监护的同时,也可以将采集到的数据发送到医院数据库中,监护人员可以实时地观察病人的情况,实现远程的实时监护,这时需要打开连接在嵌入式计算机主板上的串口2,通过串口2连接到GPRS模块,该系统的数据通信流程图如图5所示。
从图5可以看出,当用户启用远程监护时,嵌入式计算机首先打开连接在串口2上的GPRS模块,对GPRS模块进行初始化设置,当GPRS模块与PC机建立连接后,通过AT指令可以对GPRS模块进行控制,同时也可以进入到发送监护数据的流程。嵌入式计算机系统将收到的监护数据进行校验正确后,在本地实现数据波形的显示,同时将这些数据通过串口2发送出去。对于嵌入式计算机而言,因为是在全透明的模式下进行的数据通信,这完全等同于PC机直接进行串口通信,但是具体的数据转发过程却是通过GPRS模块对数据进行再次的封装打包,通过GPRS网络到达医院的数据中心。
5.2 多参数的接收
采集到的多参数数据是以JPEG图片格式发送到医院数据库中的,对于JPEG格式的图片数据流有数据帧头0XFFD8、数据帧尾0XFFD9做保证,在PC机上可以根据双方约定的协议正确地对接收的图片数据进行提取、解码和显示,对于图片接收的流程图如图6所示。
该监护仪将DSP技术与ARM技术相结合,充分发挥了DSP在信号处理上的优势和ARM在系统平台上的优势,从而最大限度地降低了成本与功耗。本文详细介绍了血氧、心电、呼吸、血压和体温采集电路的设计与工作原理,嵌入式计算机的组成和基于Qtopia的多参数监护仪应用软件的设计,目前已经完成了样机的设计。该监护仪具有体积小、灵活、成本低、功能强大、稳定性好、使用方便等优点,具有广泛的应用领域和良好的市场前景,对于我国的医疗事业具有一定的促进作用。
参考文献
[1] 郭兴明,张科,吴宝明.多生命参数监护仪用呼吸检测电路[J].自动化与仪器仪表,2002,2(5):35-36.
[2] 李章勇,刘丽欣,任超世.多参数麻醉深度监测仪的设计[J].中国组织工程研究与临床康复,2008,12(9):1716-1718.
[3] 黄梅英.无线数据业务GPRS发展分析及研究[D]. 北京:北京邮电大学,2002.
[4] 韩晓冰,韩冰,孙弋. 基于嵌入式系统的GPRS数据终端设计与实现.仪器仪表学报,2006,27(6):675-677.
[5] NAGASHIMA Y, KOMEDA N, YADA Y. et al. New instrument to measure oxygen saturation and total hemoglobin volume in local skin by near infrared spectroscopy. Proceedings of the 2nd International Conference on Bioeletromagnetism,1998:53-54.
[6] OKADA E, SHINOZAKI Y, MINAMITANI H. Measurement of oxygen saturation utilizing spectrophotometric determination Proceedings of the IECON 93., International Conference on Industrial Electronics, Control, and Instrumentation, 1993,3:1546-1550.
[7] 陈亚明,谭小丹,邓亲恺.监护用脉搏式血氧饱和度测试方法的研究[J].中国医疗器械杂志,1999,23(3):139-141.
[8] BAKER L E. Applications of the impedance technique to the respiratory system,Engineering in Medicine and Biology Magazine, IEEE, 1989,8:50-52.
[9] 杜晓兰,吴宝明,何庆华,等.无创式微型动态血压监护仪的设计.北京:生物医学工程,2002,21(3):212-214.
[10] 徐广毅,张晓林,崔迎炜.Qt/Embedded在嵌入式Linux系统中的应用[J].单片机与嵌入式系统应用, 2004(12):14-17.