Board logo

标题: 用于胎儿心电信号测量的嵌入式数据处理系统研究 [打印本页]

作者: Bazinga    时间: 2015-5-27 21:49     标题: 用于胎儿心电信号测量的嵌入式数据处理系统研究

 随着现代医学技术的发展,通过测量胎儿早期的心电信号(ECG)可以对评估胎儿的健康状况提供重要依据。实时方便地测量胎儿早期的心电信号具有重要的临床意义。然而检测胎儿的ECG非常困难,因为它的信号幅度非常小,并且淹没在母体自身的心电信号中。
  目前提取胎儿心电最常用的是自适应滤波方法。自适应滤波器是一种能够自己调整参数的特殊维纳滤波器,设计时不需要预先知道输入信号和噪声的统计学特性,而是在工作过程中通过计算估计出所需的统计特性,并且以此为依据调节参数,以达到最佳的滤波效果[1]。当输入信号的统计特性发生改变时,它又能够跟踪这种变化自动调整系数,使滤波器的性能重新达到最佳。应用中一般把母亲腹部的信号作为主输人,胸部信号作为参考噪声输入。由于母亲自己心电信号x(n)与母亲胎儿混合信号d(n)的提取时间不同,使得其在时域内是非对应关系。若直接将两个信号相减,则得到的不是胎儿的信号,但通过自适应滤波器的自动调整过程,将y(n)变成基于d(n)的对x(n)的估计,使得新的混合信号在时域上与母亲信号有了某种的对应关系,从而直接将d(n)-y(n)得到胎儿信号。

  除了提取胎儿的心电信号外,还需对处理后的胎儿心电信号进行提取特征值等进一步的处理与分析,一般为对心电波的平滑和各个特征点的检测。虽然使用基于神经网络算法及其他的基于统计学原理的方法能得到精确的测量结果,但是由于其软件算法的复杂度较高,会带来实时性差、能耗高等一系列问题。通用的设计方法是用差分阙值法检测特征值,阙值的选取是先验的,并且提取的信息实际上不是特征点的信息,而是由特征点所确定的各个时期的波形信息,如心率的确定是通过两个相邻周期内R点的间隔时间确定的。

  为了实现上述功能,本文设计了嵌入式的心电信号处理系统,完成对信号的滤波、分析处理过程,以满足心电数据处理的高速度、高实时性要求,并且能够做到对胎儿信号实时监测。

1 系统硬件设计

1.1 系统性能与选型


(1)DSP

  自适应滤波器要求的计算量比较高,并且由于要求实时测量,所以运算数据量极大,对处理器的要求很高,一般的单片机很难满足要求,因此需要高性能的DSP芯片来实现。如果抽头为51 200,阶数L=5,每次抽头采取5个乘加运算(MAC),则一共要采样51 200×5=256 000个;若用200Hz采样率,采样间隔为1/200=5ms,以所选取的TI公司的TMS320VC5402为例,进行一次MAC为10ns,则一次滤波运算的数据运算时间是256 000×10=2.5ms,由此可以看到C54完全可以满足系统实时性的要求。

  TI公司的定点数字信号处理器TMS320VC5402含有专门的功耗控制功能,具有很低的静态功耗;改进的哈佛结构,多总线(1条程序总线,3条数据总线和4条地址总线)和6级流水线,有40位的算术逻辑运算单元(ALU),包括2个独立的40位累加器和1个40位的桶形移位寄存器,指令周期为10ns,运算速度为100MIPS,并且具有强大的寻址能力,1M×16bit的最大寻址外部空间,内置16K×16bit RAM,4K×16bit ROM,其乘法单元和加法单元可以在一个流水线状态周期内完成一次MAC运算,数据处理能力强,支持JTAG硬件仿真[3]。

(2)MCU

  从信号特征上来说,心电信号时域特征(波形的轮廓)明显,幅度比较微弱(mV级),正常人心脏每分钟跳动65~75 次左右,也就是说,它的频率不到1Hz。但对于一些心脏病人来说,其谐波分量(QRS波群)频率可能达到100Hz,这就表明采样频率不会过高,一般在200Hz左右[2]。

  心电信号的处理对于精度没有很高的要求,一般8位左右的A/D就可以满足系统需要,出于简化电路考虑,实际选用较多的是MCU片上A/D。综上所述,本文选用了TI公司的MSP430F169,其含有一个片内的12位A/D,还有一个12位D/A,能够方便地将处理后的数据转化为模拟信号。

  MSP430系列单片机是TI公司推出的一种超低功耗的混合信号控制器,具有16位的RISC结构,极高的代码运行效率,丰富的外设资源,并且支持JTAG和FLASH在线编程[4]。

  ①极低功耗。给单片机供电的电压可低到2.5V;工作电流低,在3V供电、1MHz情况下仅消耗电流0.4mA;该系列具有5 种节能模式, 在闲置模式下的电流值是0.1LA。

  ②运算能力强。MSP430F169基于16位RISC结构,内部带有硬件乘法器,可以执行16×16 位的带符号数或不带符号数乘法运算。

  ③片内资源丰富。在MSP430F169内部集成了A/D、LCD驱动电路、16位定时器、看门狗和串行口(UART)以及专用的可编程I/O口等,片内集成2KB的RAM和60KB的ROM。

(3)存储器

  为了增强系统的扩展性和提高DSP的处理能力,系统增加了外置的FLASH和SRAM。C54x系列DSP只能同异步的存储器直接相接,并且TMS320VC5402的指令周期为10ns。为保证DSP无等待运行,需要外部存储器的速度10ns左右,考虑现有芯片的性价比做如下选择:

  FLASH:AM29LV400-55,256K×16bit/512×8bit,指令周期55ns,电源电压3.3V(加入5个软件等待);

  SRAM: CY7C1021V33-12,64K×16bit,指令周期12ns,电源电压3.3V(加入1个等待)。

(4)电源

  良好稳定的电源是电路正常工作的保证,对于DSP这样的高端处理器,还需要满足其对内核和IO不同的上电顺序,这里特别选用了TI公司专门为DSP设计的电源芯片TPS73HD318,5V输入1.8/3.3V混合输出,并且配备了专门的复位芯片。

1.2 系统架构

  本系统构建以TI公司的MSP430F169为核心,TMS320VC5402为运算单元,系统硬件框图如图1所示。

系统中MSP430F169作为MCU,控制整个电路的工作,DSP负责逻辑运算。为了能够更加有效地发挥DSP的运算能力,分别采用了FLASH和SRAM芯片扩展DSP的数据空间和存储空间,并且用CPLD对存储空间的映射进行控制,以达到对映射地址动态控制的目的。

1.3 通信模块设计

  系统设计的核心是MSP430和TMS320VC5402连接通信问题,本文采用主机接口(HPI)通信模式。HPI是一个8位的并行口,MSP430可以方便地通过这个接口访问DSP整个数据空间,直接由DSP的硬件流水进行优化,没有多余的开销。连接方式如图2所示。

  HPI有两种工作模式:

  (1)共用访问模式(SAM)。此状态下MSP430和DSP都可以访问HPI存储器,如果二者的读取周期发生了冲突,主机(MSP430)有优先权。

  (2)仅主机访问模式(HOM)。在此模式下只有主机(MSP430)可以访问HPI存储器,DSP处于复位状态或最小功耗状态。
  
  其中8位数据总线(HD0~HD7)负责与主机交换信息,因为TMS320VC5402接口为16位,所以主机与DSP之间数据传输由2个连续的字节组成。由HBIL引脚指示正在传输的是高8位还是低8位。主机通过HCNTL0和HCNTL1指定所访问的寄存器是控制寄存器HPIC、地址寄存器HPIA还是数据寄存器HPID。HPIA寄存器还可以被设置为自动增寻址方式,以提高对连续地址访问操作的效率。HCS是片选信号,在主机访问HPI时必须保持为低。HAS是地址选通信号,一般用作地址锁存或不用(接高电平)。HR/W为读写选通信号,用来确定数据传输的方向。 是数据选通信号,用于在主机访问周期控制数据的传输。当没有使用

信号,并且HCS信号处于低电平时,可用于对HBIL、HCNTL0/1和HR/W信号的采样。因为HDS1和HDS2内部互斥,所以不能同时将置低。硬件连接示意图如图3所示。

1.4 外置存储器设计

  为了增强系统的扩展性及扩展DSP存储空间,特增加了外置FLASH和SRAM,并由CPLD控制二者与DSP之间的时序关系。图4为外接存储器系统的硬件框图。

CPLD配备了JTAG接口,便于程序烧录和日后修改。由于CPLD的时序严格,并且速度快、易编程,非常适于用作接口逻辑控制芯片。本设计采用了Alreta公司的EPM7032S芯片,利用DSP的MSTRB和R/W控制SRAM和FLASH的OE与WE的选通,A15、DS和XF控制FLASH的选通,PS和A19控制SRAM的选通。

  VHDL语言描述如下:

OE<=‘0’when (mstrb=‘0’and rw=‘1’) else‘1’;

WE<=‘0’when (mstrb=‘0’and rw=‘0’) else‘1’;

CE(sram)<=‘0’ when(ps=‘0’and A19=‘0’) else ‘1’;

CE(flash)<=‘0’ when(ps=‘0’and xf=‘0’ and a19= ‘1’) or (ds=‘0 and xf=‘1 and a19=‘0’) else‘1’;

  为了减少每次开机时的工作量,将处理程序(自适应LMS算法)烧入了FLASH中,并在系统复位时由编写的Bootloader自动将外部FLASH中的程序写入DSP内部的DRAM中,采用了在线烧制的方式。具体实现方式不再给出。编写时要注意复位时内部RAM的映射问题,因为复位时DSP自动将OVLY置1[3],将内部的RAM映射到所有数据空间的每一页的0080~3fff中,所以实际编写Bootloader时程序写入数据空间的起始地址应当为4000。

  复位后FLASH映射到数据空间的0000~ffff,SRAM映射到程序空间的0000~ffff上,待烧录完成后,由通用IO引脚XF控制映射到程序空间的80000~bffff。数据空间由内部和外部RAM独占。

2 系统软件设计

  单片机与DSP软件通信流程如图5所示。由于本系统中的 位已置1,所以实际通过软件控制位置1和置0来完成每个读写周期。DSP的工作流程与其正好相反,一旦接受到MSP430传来的中断信号,便马上进入中断子程序,从发送来的地址中取出数据进行运算处理,完成后对其取反后存在相同的地址内,之后置位HINT中断单片机,退出中断子程序。

系统总软件流程由图6所示。MSP430采集完数据后,进入HPI发送子程序,发送完数据后进入低功耗模式等待DSP的处理结果,并将其显示出来;DSP上电后进入低功耗状态,待MSP430将数据传递完后启动滤波算法对数据进行处理,待处理结束后将结果传回到MSP430中,重新进入低功耗状态等待下一次中断。

3 结果分析

  图7为对实际采集的母婴混合心电信号和母亲自身信号进行分析处理后的实时数据,通过Matlab仪表控制工具箱中的Serial类函数及其相关函数,读取串口发送的数据,并绘制得到。该类函数操作虽然效率一般并且对中断的响应比较差,但是对于本文所用的串口数据的读取处理,有着操作简单、直观的优点。具体过程如下:

  (1)创建串行口设备对象Serial();

  (2)设置波特率=9 600,帧格式(停止位=0,数据位=8,校验位=0等);

  (3)设置具体函数,完成与硬件系统的连接和之间的数据交换;

  (4)设置关闭和删除设备对象函数。

  设置过程比较简单,不再给出详细的程序,具体设置方法见参考文献6。

  通过对输入和输出心电波形比较可以看到,输出波形失真度低,特征点对应准确。结果表明系统可以满足设计要求,转换精度高,实时性很好。

  本文通过对胎儿及母婴心电混合信号特点的讨论,给出了一整套的嵌入式数据处理解决方案,不但满足了信号处理的大运算量、高实时性的要求,还具备了便携特点,有很高的实用价值。





欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0