基于ARM9的无线多床位心电监护仪的设计
1 引言随着社会生活节奏加快、人口逐渐老龄化,心血管疾病已经成为同前威胁人类生命的丰要疾病之一,此类疾病往往具有突发性、短暂性和危险性的特点,如果不能及时发现并进行治疗将会产生非常严重的后果。心电图是检查.诊断和预防该类疾病的主要手段和依据,对于心肌梗塞、心律失常等症状,心电监护仪的使用贯穿于治疗、康复的整个过程。由于传统的基于PC机平台的心电躲护仪,价格昂贵,体积庞大,不便于移动且主要集中在大医院,给医生和病人带来了很大的不便。因此,为了降低成本、缩小体积,本文设计了一种基于ARM9微处理器的新型便携式多床位遥测心电监护仪。该监护仪采用Samsung公司的一款以ARM920T为控制器内核的16/32位高速处理器S3C2410A芯片作为系统控制核心,利用nRF401无线收发芯片发送和接收心电数据,具有功耗低、体积小、可靠性高、操作简单等优点。
2 系统结构
该遥测心电监护仪可同时监护1~12个床位.系统结构框图如图1所示.其中与PC机相连的S3C2410A作为中心躲护端.其功能是传递由PC机发出的命令,与监护各个床位的监护终端进行通信,将各个临护终端所采集到的数据汇总到中心监护端,并通过USB口传递给Pc机。监护一个床位的便携式心电监护终端作为终端节点,功能是采集心电信号,对采集到的数据进行必要的处理,同时当收到中心监护端的命令时,做出回应。
http://design.eccn.com/uploads/article/201004/20100415140908691.jpg
图1 系统结构框图
3 系统硬件设计
系统硬件设计包括中心监护端的硬件设计和监护一个床位的各个心电监护终端的硬件设计两大部分。中心监护端的硬件设计包括S3C2410A与PC机的连接和nRF401与S3C2410A的连接。由于S3C2410A具有USB设备控制器,因此可通过USB口与PC机相连,并得到5V的T作电压。无线收发芯片nRF401直接与S3C2410A的串口1连接。图2为监护一个床位的心电监护终端硬件电路的结构框图,包括ARM微处理器S3C2410A、心电放大及采集电路、外部扩展的Nand FLash存储器、电源、LCD显示、键盘和nRF401尤线数传模块等。
3.1心电采集电路
心电采集电路包括放大器、低通滤波器、50Hz陷波器等。该电路的放大器由差动放大电路和放大级电路两级放大电路组成。导联系统采用通用的二电极方式,右胸上电极及左腹下电极为心电采样电极.右腹下电极为右腿驱动电极。由于采集的心电信号是筹模信号,采用三运放筹动放大电路作为第一级放大电路,增益约为22,再经第二级放大电路,总增益接近1000。由于心电信号属于低频信号,因此,为消除高频信号,本设计了采用了一阶滤波电路的低通滤波器,截止频率为100Hz。为抑制50Hz的工频干扰,还设计了二阶压控电压源带阻滤波器,即50Hz陷波器。
http://design.eccn.com/uploads/article/201004/20100415140908607.jpg 图2 监护1个床位的硬件电路结构框图
3.2 ARM微处理器模块
S3C2410A是二星公司推出的一款基于ARM920T处理器构架的嵌入式CPUS3C2410,它提供8通道的10位模数转换器,转换器以2.5MHz MD转换时钟将模拟输入信号以最大500ksps转换率转换为lO位二进制数字编码。根据美困心脏学会AHA标准和Nyquist采样定律,当信号采样频率等于或大干信号最高频率的2倍时,就可以从抽样后的信号中不失真的还原出原信号。ECG频率范围为0.05~100Hz,中心频率在17Hz左右,故取采样频率取200Hz,即采样周期为5ms即可满足要求。采集到的信号经通道1送入S3C2410A微处理器。经分析处理后在液晶屏上显示心电波形和分析结果。
3.3无线收发模块
无线收发模块采用Nordic公司研制的单片UHF无线收发芯片nRF401,该芯片工作在433MHzISM(Industrial,scientific and Medical)濒段。该频段无需申请许可证。并采用FSK调制解调技术,抗干扰能力强,并采用PLL频率合成技术,频牢稳定性好,数据传输速率可达20kbDs,传输距离可达1000m,完全满足本设计所需要的通信距离要求。不同于其他的RF单片芯片,nRF401通过单片机串口直接于MCU通信,而无需对数据进行曼彻斯特编码,这使的nRF401的外围元件很少,只包括一个基准晶振和几个无源器件,具有成本低、一致性好等特点。本设计中,nRF401直接与S3C2410A的串口1连接。
3.4存储、显示和键盘模块
为了实现大容量的数据存储,利用S3C2410A自带的Nand Flash控制器扩展了一片16Mx8位的Nand Flash存储器,可存储12小时的心电数据。为了使用户能够对采集到的心电信号有一个直观的印象和进行常识性的观察,利用S3C2410A自带的LCD控制器,设计了LCD显示屏的接口,并选用了一块240x128的LCD显示屏,用于显示所采集的心电信号及一些基本参数。系统还设计了一个4x4的键盘模块,用户可通过键盘实现一些基本功能的切换。
4 系统软件设计
本系统的软件设计是基于Windows CE操作系统的。Windows CE是为各种嵌入式系统和产品设计的一种压缩的、具有高效的、可升级的操作系统,具有多线性、多仟务、全优先的操作系统环境。由于Window CE操作系统本身没有自带独立的开发环境,因此,需要在PC机(宿主机)上完成应用程序的开发,实现仿真.并针对ARM嵌入式设备(目标机)进行交叉编译,使其与目标机的CPU体系结构相匹配,使操作系统和应用软件在目标机上也能正常运行。然后再移植到各目标机上。在Windows CE操作系统构建起来之后,就是上层应用程序的实现问题。
4.1中心监护端程序设计
Windows CE是一个多任务、多线程的操作系统。图为中心监护端的功能不只是单一的网络通信,还要进行数据分析和处理,所以不在主线程中直接进行通信。而是在主线程中创建一个单独的子线程负责等待PC机的命令,收到命令后,为其创建一个单独的通信子线程与相应的终端节点进行通信.等待子线程继续等待PC机的命令。通信子线程接收数据并进行校验,并通过USB口传递到PC机。
由于多个通信子线程可能会同时对共享资源nRF401进行访问,形成线程冲突,因此需要协调好各个线程之间的同步问题。互斥对象(Mutex)是Windows CE操作系统所提供的实现线程同步的方法之一,主要用于协调多个线程对共享资源的访问,其原理是只有拥有互斥对象的线程才具有访问共享资源的权限。由于互斥对象只有一个,因此就决定了任何情况下此共享资源都不会同时被多个线程所访问。首先,利用API所提供的函数CreateMutex()创建一个互斥对象,初始化为FALSE状态以标识该互斥对象处于未被任何线程占有状态。通信子线程通过waitForSingleobiect()来请求占用该互斥对象,若此时该互斥对象被占用,则该线程需等待直到前一线程释放后才能成功占用;若此时该互斥对象未被占用,则可以实现对共享资源nRF401的访问。例如负责与床位号为n的监护终端通信的子线程获得对nRF401的访问权后,该子线程会发送一个1字节的同步信号“n”,床位号为n的监护终端接收到命令后,返回“n”作为应答,该通信子线程收到应答,核对正确后,双方开始数据传输,监护终端将数据及其校验和以数据包的形式传送给中心监护端。该子线程接收完毕后,结束通信,用ReleaseMutex()来释放对互斥对象的拥有权,完成对于共享资源nRF401的访问,从而其它线程可有机会获取对nRF401的访问权。然后对所接收的数据进行校验,再次提出占用互斥对象请求。这样,每个通信子线程访问nRF401的机会均等,子线程问相互独立,避免了程序死锁在一个连接上,提高了系统的整体响应速度。
4.2监护终端程序设计
监护一个床位的各监护终端的程序设计同样采用多线程的结构,在主线程中对心电信号进行A/D转换、必要的处理和存储、显示等。另创建一个子线程,置nRF401为接收状态,等待接收中心监护端的命令,收到命令并检验合法后,置nRF401为发送状态发送回应,并从存储器巾读取数据打包发送,若收到中心监护端校验错误信息,则重发数据包。
4.3 QRS波的检测
在心电分析中,要进行参数测量和波形分析,计算R-R间隔和心率,首先要进行QRS波的检测。本文采用四点平均滤波器法首先对心电信号进行滤波,滤除电源工频干扰、基线漂移,肌电噪声、运动伪迹等所带来的干扰。其解析式为:
http://design.eccn.com/uploads/article/201004/20100415140908613.gif
其对心电信号的中心频率(17Hz)影响较小,同时可抑制高频噪声和50Hz的工频干扰。再对经过滤波后的心电信号的一、二阶差分值进行平滑处理,利用心电信号的二阶差分值极小值和一阶差分过零点在较短的时间窗内实现QRS波精确定位。即对四点滤波后的心电信号y(n)进行一阶和二阶差分,通过不应期判别、幅值判别等方法找到R波对应的二阶差分的极小值的位置。再根据啊二阶差分与x(n)、y(n)的时延关系,求出滤波信号和原心电信号中R波的位置。在心电信号的一阶差分信号中,R波和与其对应的Q,S波的位置关系为:如果R波在一阶差分信号中为QRS波群所对应的向下过零点(其值为负),则Q波应为R波所在位置前面的第1个向上过零点(其值为正);S波为R波所在位置后面的第1个向上过零点(其值为正)。这样,由已知的R波的位置即可检测出 Q,S在一阶差分中的位置,再根据时延关系就而可以求出R-R问期、心率等参数。由于筹分会增加部分高频噪音,上述计算是在一阶和二阶差分经平滑移动处理后进行的。该算法能抑止多种噪声对心电信号的影响,经过临床测试,在静息和慢走情况下.算法对动态心电的检测准确率非常高;即使在做体操和慢跑的情况下,其正确率还是在99.8%以上。
5 实验结果
使用此监护仪分别对12名志愿者进行了心电数据采集。实验表明,该监护仪能同时监护12个病人,也能独立监护1个病人,实时性良好.心电波形显示清晰,对心电数据分析准确,心律失常时,会自动报警,并对其进行存储和回放。佩戴者可在半径100米范围内活动得到较好的监护,采用2节5号电池供电,可连续监测20小时。
6 结论
本文设计了一种基于ARM9微处理器的新型便携式多床位无线遥测心电监护仪,该监护仪硬件集成度高,体积小,功耗低,便于患者随身携带,在不影响患者日常活动的同时使患者得纠较好的监护。本文的创新之处是采用Windows CE嵌入式操作系统作为软件平台,具有易定制、可扩展、高稳定性等优点。采用多线程编程,可同时监护多个床位,各线程之间相对独立,避免了波形显示停滞,或死锁在一个连接上,提高了系统的整体响应速度,使系统实时性更好。在Windows CE环境下,还可以通过中间驱动程序为S3C2410A扩展串口通信,实现更多床位的实时集中监护。 不错,很强 我们可以利用API所提供的函数CreateMutex()创建一个互斥对象,初始化为FALSE状态以标识该互斥对象处于未被任何线程占有状态 在吗 楼主 想问你点问题 在吗 群主 想问你i点关于心电的知识?谢谢
好文!
页:
[1]