基于ARM的胎儿心电信号数据采集系统
扫描二维码
随时随地手机看文章
1 引 言
胎儿心电(FetalElectrocardiogram,FECG)是反映胎儿心脏电生理活动的一项客观指标,反映了胎儿在孕期中的生长和健康状况。对围产期的胎儿心电提取及分析可以确定胎儿心率、胎儿心脏功能参数,及时发现胎儿宫内缺氧等妊娠期或分娩期的病理情况,以便尽早采取措施,保证胎儿健康.但是,由于测量得到的原始信号成分非常复杂,干扰严重,胎儿心电信号被淹没在强背景噪声中(尤其是母体心电干扰),从而使其对胎儿心电的提取造成很大困难。因此,研究如何准确、有效地从孕妇腹壁电极中提取胎儿心电信号的方法具有重要的理论价值和临床应用价值。
胎儿受孕期生理现象及生物电信号的特殊影响,母体腹部记录的胎儿心电信号相当微弱,几乎被淹没在强烈的噪声中,胎儿心电与母亲心电(MECG)在时域和频域上重叠,且具有较强的随机性和非平稳性,用何种方法来消除干扰,提取胎心电波形,获得无损的胎儿心电信号是问题的关键。本系统采用基于ARM核的32位低功耗微处理器S3C44B0X作为核心,配合电极,高放大倍数放大器和高共模抑制比的放大电路,获取实时母婴心电信号;在嵌入式操作系统uC/OS-Ⅱ下,对从母体上得到的混杂信号进行处理,实现胎儿心电信号的数据采集分离与显示,从而获得单一的、噪声干扰小的胎儿心电信号。
2 系统设计及工作原理
基于S3C44B0X为核心的系统结构如图1所示,其工作原理如下:首先通过医用Ag-AgCl电极分别获取母体胸部和腹部混合心电信号,信号调理电路对生物电信号进行放大和滤波,然后A/D转换,进而通过32位微处理器对采集过来的数据进行算法分离,实时显示胎儿PQRS波形并存储数据;嵌入式实时操作系统(RTOS) µC/OS-Ⅱ协调各功能模块工作,使系统具有很高的实时性和可靠性。结构如图1所示。
3 硬件电路设计
3.1 信号调理
信号调理主要包括导联部分,前置放大电路,基线漂移稳定电路,带通滤波、陷波电路及后级放大电路,隔离电路,框图如图2所示。
由于胎儿心电信号十分微弱,一般几十微伏到几百微伏之间,而且在检测生物电信号的同时存在着强大的干扰,这对调理电路的设计提出了很高的要求
。本方案设计采用共有7个的电极:两个母体胸部导联电极,作为分离出胎儿心电的参考电极;两个腹部母胎混合导联电极,用来采集母亲和胎儿混合心电信号;一个公共端电极,作为胸部和腹部导联电极的公共端;其余两个接地电极,作为接地端。干扰源主要有以50Hz的工频干扰以及导联线与皮肤接触形成的极化电压。工频干扰主要以共模形式存在,幅值可达几伏甚至几十伏,抑制这种干扰的目的主要是提高整个电路的共模抑制比;极化电压是由于测量电极与生物体之间构成化学半电池而产生的直流电压,最大可达300mV。本系统采用AD公司仪表放大器AD620作为系统的前置放大器,输人阻抗高、失调温漂小、共模抑制比高、输入噪声小。AD620放大倍数G由单一电阻Rg决定,增益公式G=1+(49.4 kΩ/Rg),根据工程经验,前置放大倍数一般在6~10倍,防止前置放大电路出现饱和现象。利用集成运算放大器OP90输出反馈到AD620引脚5,防止基线漂移。由于胎儿心电信号主要集中在0.05~100Hz频段,在前置放大电路之前设计一个限幅电路和无源低通滤波器,前者防止肌电脉冲对前置放大电路破坏,后者有效去除各种高频干扰。然而50 Hz工频干扰和35Hz肌电干扰仍存在于频带之内,通常采用专用陷波电路进行处理,但由于模拟器件本身的特性不可能实现理想的状态,加上胎儿心电信号微弱,可能滤掉部分有用信号,为此本系统采用软件滤波的方法。后级放大电路主要用集成运算放大器OP90,可以设置增益量程。隔离电路主要为防止人体安全,实现与电气设备的隔离,与此同时,为了避免通道间由于共同接地而形成闭合环流,在各通道进入A/D之前需要进行隔离,考虑到噪声的关系,将隔离电路放在放大器后,对放大后的大信号进行隔离,可以大大减少隔离放大器引入的噪声。该部分电路核心为1片开关电容耦合式隔离放大器ISO124,其隔离电阻高达 Ω以上,隔离电容仅有几个pF,非线性度小于0.01%,这也是其他方法,如光电隔离所无可比拟的。采用DC-DC模块使其前后级间电源独立供电,并特别采用π型滤波以减弱DC-DC的纹波干扰。因为开关电容工作机理的关系,开关电容式隔离放大器都会在输出端叠加有内部开关时钟频率的纹波干扰。为了减少这一干扰,在隔离放大器之后加入一级二阶低通有源滤波器,用以滤除开关频率500 kHz的干扰。具体电路结构如图3所示。[!--empirenews.page--]
3.2 A/D采集与控制
考虑到胎儿心电信号数据采集量很大,实时性要求高,同时为了保证数据流动的连续性,系统专门设置C8051F020片上系统为核心的数据采集模块,通过一双端口RAM,将采集来的数据传送到嵌入式主控处理器,该主控处理器对整个系统协调管理和控制,主要完成系统的设置、指挥指令的下达、系统工作状态的监测,数据保存等。采用C8051F020特点如下:运算速度快;片内集成了多通道12位和8位A/D转换器,采样速率100 ksps;具有64 K B的Flash存储器,4KB内部数据RAM以及外部64 KB数据存储器接口等。双端口RAM采用的是IDT公司的先进先出(FIFO)存贮器芯片IDT7134芯片,缓存容量为8KB,接口方便,结构如图4所示。
3.3 嵌入式微控制器ARM单元
整个目标平台以S3C44B0X处理器为核心,由于数据量大,本系统扩展了容量为2MByte Flash器件SST39VF160,用来下载启动系统及对系统进行初始化的程序BIOS,嵌入式操作系统µC/OS-Ⅱ,图形界面系统µC/GUI及应用程序,Flash ROM映射在S3C44B0X的Bank 0上;系统上电时处理器从Flash ROM的0x0000000地址处取指令开始运行[1] ;64MByte SDRAM芯片HY57V641620HG,系统启动后BIOS把应用程序搬移到SDRAM中运行,SDRAM还开辟出一部分充当LCD显示缓冲区(显存),其余部分用来存储临时数据、堆栈等,SDRAM映射在S3C44B0X的Bank 6上,也就是OxC000000地址处;320×240彩色LCD显示屏,提供良好的人机交互界面,由S3C44B0X自带的LCD控制器驱动;4×4键盘,对整个终端进行操作和控制。
4 系统软件设计
软件设计主要包括:µC/OS-Ⅱ在S3C44B0X上的移植,胎儿心电数数据采集和存储,LCD显示以及键盘程序。本系统采用可重入代码编译器EmbestIDE Pro for ARM。
[!--empirenews.page--]
4.1 µC/OS-Ⅱ在S3C44BOX上的移植
µC/OS-Ⅱ是源代码公开的嵌入式操作系统,是基于优先级的抢占式实时多任务内核,代码采用ANSIC编写,具有很强的可移植性和较好的可裁剪性。µC/OS-Ⅱ提供了实时系统所需的基本功能包括任务调度、任务管理、时间管理、任务间的通信与同步及内存管理等,总是执行处于就绪条件下优先级最高的任务,最多可以管理64个任务,它把连续的大块内存按分区来进行动态管理,可以有效地解决内存碎片的问题。在移植过程中只需对与处理器相关的一些代码进行修改,包括:
(1)处理器头文件OS_ CPU.H ,其中包括了用#define定义的与处理器相关的变量、宏和定义类型;
(2)在OS_CPU_A.ASM中编写4个简单的汇编语言函数:OSStartHighRdy(),OSCtxSw(),OSIntCtxSw()和OSTickISR(),分别用于启动当前就绪的优先级最高的任务、任务间的切换,从ISR中执行切换功能以及时钟节拍ISR功能;
(3)在OS_ CPU_C. C中编写任务堆栈初始化函数OSTaskStInit()和5个必须声明但不需包含代码的HOOK()函数。
4.2 应用程序设计
根据胎儿心电采集系统的特性.将系统主要任务划分如下:系统监控任务(优先级4),按键扫描任务(优先级5),LCD显示刷新任务(优先级6)、存储任务(优先级7),优先级0,1,2,3保留以供系统使用。系统初始化以后,µC/OS-Ⅱ根据优先级和就绪状态对任务进行调度和执行。初始化工作包括初始化所有数据结构、分配堆栈空间、建立任务及任务间通信的信号量、消息队列和优先级。在运行OSStart()函数后,最先运行优先级最高的系统监控任务,查询其他任务是否向其发送消息.如果没有则将监控任务挂起。此时,键盘扫描任务从就绪态切换到运行态。该任务执行完毕,如果检测到有按键操作,则向响应任务发送消息,使它们进入就绪态,同时向监控任务发送消息以示此任务工作正常,并且调用延时函数OSTimedly()使该任务进入挂起态。由于监控任务收到消息,将再次进入运行态,重新查询其他被监视任务的运行信息,没有则进入挂起态。此时其他处于就绪态中优先级相对较高的任务开始执行。当键盘延时时间到,系统内核自动将该任务转入就绪态。如果在运行过程中出现异常,监控任务将按照设定处理表对其进行相应处理.使系统顺利运行。
5结束语
本文设计的胎儿心电信号数据采集系统在Embest S3CEV4O开发板的基础上进行改进和实验,充分利用其本身提供的硬件资源,在实时操作系统µC/OS-Ⅱ基础上进行应用程序开发,显示与存储胎儿心电数据。
本文作者创新点:合理有效设计胎儿心电信号提取电路,结合ARM微处理器自身的优势,进行算法分离,具有良好的工程意义。