远程心电医疗信号监测系统设计
扫描二维码
随时随地手机看文章
1 引言
HHCE(Home Health Care Engineering)这门学科正随着人类对健康的重视和远程医疗的发展而逐渐走进人们的生活,它提倡的是一种“在家就医,自我保健,远程诊断”的理念,把高科技与医疗结合起来。HHCE的出现符合21世纪社会老龄化、医疗费用日益高涨以及人们生活健康质量高要求的趋势,同时可实现医疗资源共享,提高边远地区的医疗水平,因此具有特别旺盛的生命力。
HHCE系统提供一种对于家庭、社区医疗、出诊医生有效便捷的医疗监测解决方案,具有心电信号监测功能的监测器是HHCE系统的重要组成部分。就国内而言,该类产品的研究也属于刚起步阶段,远程网络也只是简单的完成数据库医疗数据的存储和传输,还没有真正完成将网络与医疗器械相结合。在国际方面,世界各国在此的研究均投入大量资金,但依然主要是使用价格昂贵的仪器完成医疗数据采集,然后依托PC/internet网络完成数据采集以及网络诊断。
本设计采用了Altera公司的NiosⅡ软核处理器作为CPU,并移植了当今主流的μClinux操作系统。该系统具有系统稳定、便携式、功能可升级扩展、面向用户、远程控制等特点。一方面,它将家庭保健和远程医疗结合起来,主要面向用户终端设计,使个人能够方便的对自身心电信号的进行自我检测与分析,实时了解自己的身体健康状况;另一方面,采集到的数据还可以通过存储卡存储,以便对数据进行长期分析处理和诊断;除此之外,系统还可以通过网络等远端通讯设施与医疗保健服务端(如医院、私人医师、监护中心、保健中心等)快速建立连接,将测量数据传递给远程数据库或医生。有利于医疗信息的数据库管理和远程实时监护、诊断,使用户不用出门就能得到最及时有效的诊断。
2 系统介绍
远程心电医疗信号监测系统主要由心电信号的前端采集与调理模块、心电信号处理与存储模块、数据显示模块和远程传输控制模块等4个关键模块组成,系统功能结构如图1所示。
该监测系统的硬件平台采用Altera公司CycloneⅡ2C35 FPGA芯片,采用SOPC(片上可编程系统)技术将NiosⅡ软核处理器、存储器、功能接口和扩展I/O口等集成在一块FPGA芯片上,外围扩展心电数据采集板、网络、LCD屏、触摸屏/键盘、SD存储卡等硬件来实现系统的硬件架构,且带有可扩展的I/O接口,便于以后系统功能升级与扩展。
3 系统关键模块的设计
3.1 NiosⅡ嵌入式软核处理器简介
NiosⅡ系列嵌入式处理器是Altera公司推出的软核处理器。用户可以获得超过200 DMIPS的性能,而只需花费不到35美分的FPGA逻辑资源。NiosⅡ支持MicroC/OS-Ⅱ、μClinux等多种实时操作系统,支持轻量级TCP/IP协议栈,允许用户增加自定义指令和自定义硬件加速单元,无缝移植自定义外设和接口逻辑,在性能提升的同时,方便了用户的设计。
NiosⅡ处理器采用Avalon交换式总线,该总线是Altera开发的一种专用的内部连线技术。Avalon交换式总线由SOPC Builder自动生成,是一种用于系统处理器、内部模块以及外设之间的内联总线。Avalon交换式总线使用最少的逻辑资源来支持数据总线的复用、地址译码、等待周期的产生、外设的地址对齐、中断优先级的指定以及高级的交换式总线传输。
3.2 心电信号采集调理模块设计
对ECG信号采集采用模块化的设计方式,主要由前端的导联传感器、信号滤波放大调理电路和A/D采样电路组成。人体心电信号的主要频率范围为0.05~100 Hz,幅度约为0~4 mV,信号十分微弱。同时心电信号中通常混杂有其他生物电信号,加之体外以50 Hz工频干扰为主的电磁场干扰,使得心电噪声背景较强,测量条件比较复杂。为了不失真地检测出有临床价值的心电信号,信号滤波与放大调理部分主要由一下几个电路组成:前置放大电路、高低通滤波电路、陷波电路与A/D转换电路,电路原理图如图2所示。
首先心电导联采集过来的微弱心电信号通过前置放大电路进行放大,此部分包括右腿驱动以抑制共模干扰、屏蔽线驱动以消除引线干扰,增益设成10倍左右。设计前置放大采用美国模拟器件公司生产的医用放大器AD620。AD620由传统的三运算放大器发展而成,为同相并联差动放大器的集成。其具有电源范围宽(±2.3~±18 V),设计体积小,功耗低(最大供电电流仅1.3 mA)的特点,因而适用于低电压、低功耗的应用场合。此外还具有有较高的共模抑制比,温度稳定性好,放大频带宽,噪声系数小等优点。放大后的信号经滤波、50 Hz陷波处理后再进行二次放大,后级增益设成100倍左右。由于ECG信号幅度最大就几mV,而A/D转换中输入信号的幅度要求在1 V以上,所以总增益设成1 000倍左右。其中,滤波采用压控电压源二阶高(低)通滤波电路,用于消除0.05~100 Hz频带以外的肌电等干扰信号,工频中的其余高次谐波也可被滤除掉。同时,采用有源双T带阻滤波电路进一步抑制50 Hz工频干扰。
A/D采样芯片采用TI公司的8位串行芯片TLC549,该芯片采用SPI接口,仅用三条线即可实现采集控制和数据传输;具有4 MHz的片内系统时钟和软、硬件控制电路,转换时间小于17μs,采样速率达40kS/s;采用差分基准电压技术这个特性,TLC549可能测量到的最小量值达1 000 mV/256,也就是说0~1 V信号不经放大也可以得到8位的分辨率。
3.3 数据采集控制器设计
为了得到经过前端TLC549芯片转换的心电信号,必须设计一个数据采集控制器,实现对AD芯片的控制与数字化心电数据的获取。该控制器根据TLC549芯片的工作时序与后端数据处理的需要,采用VerilogHDL自行设计。该控制器具有多路采集的特点。
在自TLC549的I/O CLOCK端输入8个外部时钟信号期间需要完成以下工作:读入前次A/D转换结果;对本次转换的输入模拟信号采样并保持;启动本次A/D转换。则一路采集时间为:0.5μs×(3+8×2+1)=10μs,而芯片转换时间小于17μs,则整个过程时间花费为27μs。为了有效的利用该控制器,在一路A/D转换期间,同时进行另外一路A/D采样,这样就可以在40μs时间内完成对四路信号的采集,大大提高了工作效率。同时,设计中还加入了一个FSM信号来控制采样时间,从而适应不同频率信号的采样频率。AD芯片的时序仿真图如图3所示。
Din为采集数据的串行输入,时钟由系统时钟通过分频系数得到。设计中,设置了fsm作为采样控制时钟,这样可以根据需要来调整采样速率。由于进行一次AD采样的时间很短,无论采用查询还是中断直接读取都是不现实的,这就需要利用缓冲设计,通过把N次转换的数据暂存在缓冲存储器中来降低中断次数。为了取得连续和正确的采集数据,实现无缝缓冲,鉴于FPGA设计的灵活性,本设计采用了双缓冲存储的乒乓操作结构。本设计通过将AD采样时序控制器交替存储在两个512 B的双口RAM(DPRAM)中实现数据的缓存,当其中一个DPRAM1存储满后即转为存储到另一个DPRAM2中并产生一次中断,这样在控制器写数据到DPRAM2中时系统将有非常充足的时间将DPRAM1中的数据取出。
3.4 显示模块设计
为了能够直观地显示出采集的心电波形,需要显示设备的支持。本设计采用的LCD面板是TFT 320*240 LCD。该LCD模块没有显示控制器,因此需要设计显示控制器IP核来驱动LCD面板。本设计实现的显示控制器IP核采用Verilog HDL设计,支持多种颜色模式,包括18bpp,16bpp,8bpp和自定义模式。图像存储器lcd_fifo是采用片内FIFO,可以根据需要进行词整。256色的颜色查找表采用片内RAM来存储。图像信息能够通过AvaIon总线主端口写入的突发块传输方式进行传输,利用DMA从内存中自动读取,在SDRAM图像存储器image_ram与片上图像数据缓存器lcd_fifo之间建立了一条专用DMA通道,该控制器结构如图4所示。
该LCD控制器IP核主要由4个模块组成:接口模块、内存模块、颜色转换模块和时序模块。
接口模块主要是NiosⅡ处理器对LCD控制器进行控制及状态读取。接口模块主要是以寄存器方式存在的,其中寄存器有:控制寄存器、状态寄存器、DMA地址寄存器和中断寄存器。
内存模块是Avalon总线的主接口部分,在系统启动之后,利用DMA传输模式,通过Avalon总线主端口写入的突发块传输方式,完成图像数据存储器image_ram中的图像数据到片上图像数据缓存器lcd_fifo的独立读取。采用DAM传输方式是为了把NiosⅡ软核处理器从频繁地进行数据读取操作的工作中解脱出来,这样可以大大提高系统的工作效率。
颜色转换模块将读取后的数据根据4种颜色模式不同进行数据读取的转换,其中8bpp和自定义模式由于颜色不足,需要接入颜色查询表处理。自定义模式可以手动对调色板的地址进行预设来定义输出的颜色。
时序模块严格按照LCD的时序编写,其中LCD时钟为5 MHz。通过控制数据使能信号启动lcd_fifo数据输出,逐行扫描显示。同时,设计该模块时,在数据有效信号(DE)有效前,须检查lcd_fifo中是否存有数据,以确定是否进行数据读取和传输;须进行调色板模式设置,在帧传输过程中需要进行模式锁定,以免出现传输错误;须根据不同bpp模式,确定不同的读取时间段,18bpp每次都读取,16bpp间隔1次读取,8bpp间隔4次读取。
3.5数据存储模块设计
本设计选用SD卡作为外接存储硬盘。SD存储卡具有大容量、高性能、安全性好等特点的多功能存储卡,被广泛用于数码相机、掌上电脑和手机等便携式设备中。SD卡上所有单元由内部时钟发生器提供时钟,接口驱动单元同步外部时钟的DAT和CMD信号到内部所用时钟。SD卡有两种通信协议,即SD通信协议和SPI通信协议,与SPI通信协议相比,SD通信协议的最大优点是读写速度快,单根数据线理论上可以达到25 MB/s,四线传输可以达到100 MB/s,本设计采用的是四线SD通信协议。
本设计中对SD卡的协议采用软件编写:首先在SoPC Builder里定义了6个I/O口:SD_CMD,SD_DAT0-DAT3,SD_CLK,分别对应SD卡的命令、数据、时钟端口,然后在NiosⅡIDE上按照SD卡的传输协议编写C程序来对6个I/O口进行操作,以此来实现SD卡的传输协议。在完成SD卡数据块的读写基础上移植了文件系统。FAT16,这样在不影响读写速度的条件下节省FPGA的资源。
3.6 数据传输模块设计
为了实现远程的数据交换,本系统采用以太网络进行数据传输。设计采用DM9000A作为以太网控制芯片。DM9000A是DAVICOM公司的一款高速网络控制器,具有通用处理器接口、一个10/100M PHY和4kB的SRAM。为了实现数据的网络传输,设计需要完成的任务有:在NiosⅡ上移植了μClinux操作系统、完成网络底层驱动程序的设计、基于网络协议的应用程序开发。其中在NiosⅡ上移植了μClinux操作系统的工作已经完成,因此本设计的关键任务是完成网络驱动程序设计与应用程序开发。
基于DM9000A的HAL设备驱动设计主要分为两步:首先是DM9000A的Avalon总线接口逻辑设计;其次DM9000A的读写驱动程序设计;最后按照HAL的驱动模式将DM9000A的驱动程序移植进HAL。DM9000A是作为Avalon总线的从外设与NiosⅡ进行通信。DM9000A的Avalon总线接口逻辑主要完成芯片信号与Avalon总线接口信号的对接。
DM9000A不允许直接访问芯片内部的寄存器,需要通过数据端口和索引端口来读写。而这两个端口由CMD管脚控制:当CMD接高电平时为数据端口,CMD接低电平为控制端口。
创建HAL设备驱动包括:创建设备实例和登记设备。设计中针对LWIP的结构,定义一个结构体作为DM9000A设备的alt_dev结构:
在NiosⅡ启动时,将在aIt_sys_init()中对设备初始化,初始化程序如下:
应用程序设计采用TCP/IP、HTTP协议,把监测器作为Web服务器端,远程PC端作为客户端通过网页显示采集到的心电波形。
4 实验结果
系统对人体心电信号进行了采集,通过LCD面板进行实时显示。通过SD卡存储数据,同时采用以太网网络将数据发送到远程的PC端上,以下是对系统功能的验证与测试结果。
4.1 信号采集调理模块
心电信号采集调理模块是自行设计的采集板,主要测量参数为前置放大器的通道带宽、放大能力和陷波特性。经测试,测试信号在1~1 kHz的频带带宽内放大增益基本稳定在12.1 dB,即其通道带宽能≥1 kHz;在频率为20 Hz和50 Hz时,放大器对40~800 mV信号的放大能力增益并无明显变化,基本稳定在11.7~13.1 dB;同时,陷波器在对50 Hz信号滤波时能将放大增益控制到0.5 dB以下。因此,基于心电信号的特点所设计的采集调理模块能稳定地获得人体的心电信号。
4.2 信号显示模块
图5是采集后的心电信号通过本地的LCD面板实时显示。从显示结果看,心电信号的PQRST五个特征点明显,波形平滑,并且在实际测量中稳定无干扰,能真实反映出采集后的心电信号。
4.3 网络传输模块
在设计中,网络接口功能的实现使采集到的心电信号通过以太网发送到远程PC端,实现数据的远程传输。根据TCP/IP协议与HTTP协议,信号经过打包处理后发送到网络上。在远程PC端,通过网页浏览器就可以观看到服务器端采集到的心电波形。图6是心电信号在远程PC端的网页浏览器上显示结果。该测试结果显示其与本地的LCD面板显示波形基本一致,实现了远程传输功能。
实验表明,该心电监护系统能实时准确的实现数据的采集、显示、存储和传输功能。
5 结 语
本文描述了一种基于NiosⅡ软核处理器的远程心电医疗信号监测系统的设计,该设计已完成了系统平台的搭建,并通过了EDA软件仿真验证和在DE2开发板上板级验证,能够实现对心电信号的采集调理、信号波形和数据的LCD显示、数据的存储、网络传输。
设计中采用了SOPC技术与IP核复用技术,缩短了系统开发周期,同时使系统具有便携式、灵活性、功能可扩展等功能。通过移植μClinux操作系统,使系统具有了强大的网络功能与更加强健的系统稳定性。