夏兰++贾晓冬
摘 要: 介绍一种心电信号采集存储系统,该系统利用MSP430F5529串行外围接口总线与SD卡相连,解决了便携式生理信号监测系统长时间对人体健康检测所产生的大量数据问题。USB接口与文件系统设计,使得写入SD卡的心电数据能够在上位机中得到正确访问,方便进一步处理和分析。该系统适用于大容量的现场采集、存储和读取,并在便携式心电监护仪上得到了应用。经实验,该系统完全满足要求,实现了对人体心电信号实时采集、显示、存储以及后期分析。
关键词: MSP430F5529; SD卡; FAT16文件系统; 心电图
中图分类号: TN911.7?34; TP368.1 文献标识码: A 文章编号: 1004?373X(2015)21?0020?04
Design of ECG signal acquisition system based on MSP430 and SD card
XIA Lan, JIA Xiaodong
(School of Biological & Medical Engineering, Southeast University, Nanjing 210096, China)
Abstract: An ECG signal acquisition and storage system is introduced, in which MSP430F5529 serial peripheral interface (SPI) bus is connected to SD card in this system to solve the mass data problem generated from long time human health detection by portable physiological signal monitoring system. The design of USB interface and file system makes the ECG data written into the SD card can be accessed correctly in the host computer, and then processed and analyzed further. This system is suitable for large capacity on?site collection, storage and read, and has been applied to the portable ECG monitor. The experimental results show this system can meet the requirements entirely, and realize the real?time acquisition, display, storage and later analysis of human eletrocardiosignal.
Keywords: MSP430F5529; SD card; FAT16 file system; ECG
0 引 言
随着生活水平的日渐提高,医疗健康问题引起人们高度关注,使得便携式家庭医疗电子未来的前景增长甚为巨大,这就要求其性能、功耗和存储介质容量也越来越高。利用嵌入式技术开发出低成本、低功耗、高性能的便携式心电监护系统已成为可能。MSP430F5529微处理器因其具备高集成度、高性能处理、低成本以及超低功耗等特点大量应用于便携式医疗电子产品中。本文利用微处理器MSP430与大容量SD存储卡进行数据传输,设计了一个基于MSP430和SD卡便携式心电数据采集存储系统。该系统采集的心电数据以Windows标准文件的形式存储在容量大、体积小的SD卡上,然后通过USB接口将储存在SD卡中的心电数据传输到上位机以进行后期复杂的数据处理工作。在心电信号采集的基础上,实现了上位机和微处理器可以使用FAT16文件格式读/写Micro SD卡的数据。
1 系统总体设计
为便于检测,本文设计的便携式心电信号采集存储系统采用双极标准肢体导联记录心电信号。当人体心脏活动时心电电位变化可传导到人体表面,通过测量两肢体之间的电位差,检测系统的地端与右腿接在一起作为参考,可记录心电电位的变化,这种方法就是通常所说的爱氏三角法。从ECG肢体导联获得心电信号,传送到前置放大器,先后经过高通(HPF)、低通滤波器(LPF)从中滤除直流电平、低频噪声干扰以及高频干扰后,再经陷波器(也就是带阻滤波器BEF)有效地抑制信号中含有的50 Hz工频干扰信号,得到带宽范围为0.05~100 Hz的有用心电信号,这也是心电信号的有效范围。然后经次级放大器放大,最后由A/D转换后送至微处理器或上位机进行显示操作,以进一步分析处理[1]。图1为心电信号采集存储系统结构流程图。为了实现长时间的数据存储,采用存储容量大、体积小、数据传输速率快的SD卡,持续地记录心电信号的数据。同时,为了实现方便快捷地管理和维护心电数据,SD卡中数据以文件的标准格式进行存储。
2 硬件设计
2.1 心电信号模拟前端电路设计
模拟前端电路获得心电信号的主要工作流程为:采集来自双极标准导联的心电信号ECG,经由前置放大,滤波等方法得到易于处理的心电信号。根据便携式的特点,整个模拟前端电路采用了单电源、低电压的设计,取1.2 V作为参考电压。
ECG电极通过肢体导联与人体连接,所获取的是强噪声背景下的微弱、低频心电信号,并且检测电极和肢体皮肤之间的接触阻抗大、变化波动也大,这就要求前置放大电路具有较高的输入阻抗和共模抑制比 。为此选用了TI公司生产的INA118仪表放大器,该芯片具有噪声系数小、输入阻抗高、共模抑制比高、非线性小、工作频带宽等特点,提高了信噪比,适合对各种微小信号放大,其内设有输入过压保护,确保心电检测可正常进行。
前置放大器INA118的作用是将从心电电极获取的心电信号进行初步放大,根据小信号放大器的设计原则,前置放大电路增益不能设置太高,过高将不利于后续电路噪声的处理[2],一般前置放大的倍数设计为10倍左右为宜。通过调节INA118仪表放大器外部电阻[RG]可以非常方便地改变放大器增益[G:]
图2 前置放大电路和右腿驱动电路
2.2 单片机系统硬件设计
单片机系统的硬件主要由微处理器MSP430F5529,SD卡电路和稳压电源电路组成。
MSP430F5529是美国德州仪器公司(Texas Instruments)推出的一种具有128 KB闪存和8 KB SRAM的超低能耗混合信号处理器。以16位RISC CPU、极低的功耗、丰富的片内外设、方便灵活的仿真调试[4],越来越受到广大嵌入式开发者的追捧和青睐,是一款非常优秀的SoC片上系统,它自带14个ADC转换器、4个定时器、12个比较器、32×32硬件乘法器、全速USB 2.0以及2个通用串行通信接口(USCI)等丰富的资源[5],适合应用于心电信号的采集处理。MSP430F5529内置最高达200 KS/s的12位ADC转换器,带有内部的参考源和采样保持电路,利用定时器做时钟源触发ADC,能够得到准确的200 Hz采样率。将心电模拟前端电路得到满足A/D转换电压要求的心电信号,送至A/D进行数据采集,A/D采样值经过数字滤波有效滤除干扰信号后,储存在大容量SD存储卡中,同时应用阈值识别QRS波群,再结合200 Hz的采样率计算出心率,在液晶显示器LCD上显示。由于MCU具有超低功耗的架构,该解决方案的工作电流低于3 mA。
MSP430F5529与SD卡之间通信,是通过CPU内部带有的高速同步串行外设接口(Serial Peripheral Interface,SPI)[2]以串行的方式来实现的,SD卡(Secure Digital Memory Card)引脚外形以及SPI模式下各管脚功能详述分别如图3和表1所示。
3 软件设计
MSP430F5529单片机内置的12位A/D转换器,带有内部的参考源和采样保持电路,利用定时器做时钟源触发ADC,能够得到准确的采样率,ADC 12模块的工作模式设置为单通道单次采集,时钟设置为系统时钟8 MHz。为了精确控制采样率,利用Timer A定时控制。Timer A的时钟源选择的是辅助系统时钟ACLK=32.768 kHz,令CCR0=164,[1采样率=1ACLK?]CCR0,可知心电采样率为200 Hz。获取的ECG信号经A/D转换为数字信号,采用滤波和阈值检测算法来检测波峰,也就是经过数字滤波预处理消除干扰信号,再通过设定幅值阈值来识别并检测出R波,由采样时间间隔计算RR间期得出心率数值,并在LCD屏上动态的显示;同时经A/D采样转换的数据以文件的形式存入SD卡中,以便上位机通过USB接口或读卡器直接读出,可随时对数据进行进一步的处理和分析[7],例如通过LabVIEW程序回放存在SD卡中的心电数据,为医生诊断和治疗提供了重要信息。
3.1 SD卡操作[8]
对SD卡进行操作时首先需对SD卡进行初始化。MSP430F5529的P4.6(CS片选信号)输出为高, P4.0(SCLK)开始向SD卡发送至少74个CLK周期的时钟,确保供给SD卡的工作电压稳定和同步。P4.6(CS)为低,CMD0(CMD_GO_IDLE_STATE)命令由MSP430F5529通过P4.4(MOSI)端发送给SD卡,SD 卡进入SPI模式,同样当激活SD卡命令CMD1(CMD_SEND_OP_COND)由微处理器发送之后, SD卡的初始化工作就完成了。读/写SD卡的操作都是在初始化后基于SD卡命令和响应来完成的[9]。MSP430F5529通过向SD卡发送命令并接收SD卡的响应信号实现对SD卡扇区的读、写以及删除数据的操作。SD卡读/写数据是向SD卡发送读命令CMD17(CMD_READ_SINGLE_BLOCK)完成,向SD卡写入数据块是通过向SD卡发送命令CMD24(CMD_ WRITE_SINGLE_BLOCK)完成[9]。
3.2 FAT16文件系统设计[10]
为了管理SD存储卡中的心电数据,本文在SD卡上建立常用FAT16文件系统,非常方便上位机直接读取储存在SD卡上的心电数据。
FAT16文件系统是应用程序和存储介质之间的一种协议,其结构如图5所示。
主引导记录区(Main Boot Recorder,MBR)放在SD卡的起始位置的第一个扇区处,也就是物理第0扇区,存放SD卡启动代码,内容一般固定。随后存放了一段分区记录表(Disk Partition Table,DPT)记录了各分区的属性。对于SD卡来说,由于只有一个分区,它不支持多分区,所以DPT中只有一个分区表项信息。最后存放主引导记录结束标志55AA[6]。
系统引导记录区(DOS Boot Record,DBR) 放在SD卡逻辑分区的第0扇区,是操作系统可以直接访问的第一个扇区,由操作系统引导程序和BIOS参数块(Bios Parameter Block,BPB)组成。BPB记录着SD卡分区的一些重要参数,如:根目录大小、FAT表个数、磁盘介质描述、文件存储模式、分配单元大小等[8]。
文件分配表区(File Allocation Table,FAT)位于DBR之后,是记录文件所在位置的表格。在FAT文件系统中,文件不是连续地存放,而是被分成若干簇,以簇为单位保存在SD卡中,在查找整个文件时,需要通过FAT表来查找文件所有簇所在的位置[10],以确保操作系统对链式存储文件正确访问。由此看出FAT表对于文件系统十分重要,因此FAT16文件系统设计有两个FAT表,FAT2是FAT1的备份[11],进行更改FAT1操作的同时需要更改FAT2,可以保证在 FAT1被破坏的情况下通过FAT2修复文件。
根目录区(Directory,DIR)位于第2个FAT表(即FAT2表)之后,记录着根目录信息,如:根目录下每个文件(目录)的起始簇号、文件大小和创建时间等属性。操作系统根据这些属性,并结合 FAT表可知道文件在SD卡中的具体位置和大小[11]。根目录区之后是用户数据区(DATA区),存放文件数据。
本系统储存在SD卡上的心电数据是以FAT16的文件系统格式保存的,通过在MSP430F5529 上对SD卡底层驱动的编写(SD的初始化、SD卡的读/写等),对FAT区、DIR区和DATA区做更改,实现了文件的创建、打开、读取、写入和删除等操作。
首先文件在SD卡上创建则是根据所需大小在根目录中创建文件项的过程,在FAT表中找到最靠前空置的簇,并将起始簇号等信息写入根目录区,再根据文件大小在FAT表中构成簇链。最后将FAT表进行复制,填入FAT2。
文件的写入和读取操作主要根据FAT文件系统的结构,从根目录区找到文件,读取文件起始簇号和大小,再到FAT表中找到整个文件存放的位置,然后到存放文件的扇区做相应数据操作。
文件删除操作是直接将根目录区所对应的项清空,再将文件对应的FAT簇链清空。
这样通过调用MSP430F5529 上SD卡的底层驱动,完成文件和目录的创建、读取、写入以及删除等文件常用功能,便于文件的统一管理。每一步操作可通过WinHex软件容易查看大容量SD卡内部全部存储信息内容的情况。
经过实验,将便携式心电监护仪采集到的心电数据记录于非易失性大容量Micro SD储存卡中,其数据文件可通过USB或读卡器在Windows或Linux操作系统下读取,方便医生对数据处理作进一步的分析[11]。该方法为数据采集系统长时间地采集和记录海量数据提供了一种很好的解决方案。
SD卡存入的心电数据传输到上位机上显示的心电波形如图6 所示。
4 结 语
本系统利用低功耗单片机MSP430F5529采集心电信号,同时可长时间、连续将数据以FAT16文件系统实时存储在SD卡上,方便数据回放和上位机对数据的管理;系统结构紧凑、功能完善、应用范围极广,可以方便地应用于其他领域。
参考文献
[1] 刘大生,颜国正.一种采用单电源的心电信号遥测系统的设计[J].电子测量技术,2012,35(8):107?111.
[2] 黄进文.一种心电信号采集放大电路的简单设计方法[J].现代电子技术,2009,32(7):104?106.
[3] 陈红万,施继红,王威廉,等.基于ARM7的单电源心电信号采集系统设计与实现[J].电子测量技术,2009,34(3):139?142.
[4] 刘暾平,罗世亮.基于双MCU结构的路灯远程监控终端设计[J].自动化应用,2012(8):29?30.
[5] Texas Instruments. MSP430F551x, MSP430F552x mixed signal microcontroller (Rev.L) [EB/OL]. [2013?05?11]. http://www.ti.com/lit/ds/symlink/msp430f5529.pdf.
[6] 刘艳萍.基于SD卡的生理参数存储系统[J].科学之友,2013(4):146?147.
[7] 李浩.基于ARM的数据采集分析仪的设计与开发[D].西安:西安建筑科技大学,2009.
[8] 张恒.基于AT89S52和FAT16的SD卡读写系统设计[J].单片机与嵌入式系统应用,2009(8):53?55.
[9] 秦基伟.语音质量客观评价系统的研究及实现[D].重庆:重庆大学,2013.
[10] 时尧.HCS12X单片机的SD卡FAT文件系统读写设计[J].单片机与嵌入式系统应用,2010(9):25?28.
[11] 关硕,关济实.FAT16文件系统在单片机存储系统上的实现[J].科技信息:科学教研,2008(13):409?410.