注册登录才能更好的浏览或提问。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
摘要:介绍了由低功耗大容量Flash闪速存储器K9K2G08及低功耗单片机MSP430F149等组成的微型低功耗大容量心电记录仪的设计,有效地解决了Holter需要大存储容量与低功耗的问题。该记录仪可完整地记录超过200小时的心电信息,具有体积小、功耗低的特点,可在需要的时候将数据传送到PC机中查看和分析心电图,特别适合于家庭监护和心电短暂异常病人的疾病诊断。
关键词:动态心电记录仪 大容量Flash存储器 低功耗单片机
常规心电图记录仪是医生诊断心脏疾病的主要手段之一,但它仅能记录短暂心搏情况。由于在相当多的情况下难以记录到即刻发作时的心电图改变,导致无法作出正确的诊断和治疗。因此对病人进行长时间的心电图记录有着极其重要的临床价值。而微型动态心电记录仪能及时记录到普通心电图检测时病人不易出现的短暂异常心电活动,为临床分析病情提供重要客观依据。目前的便携式心电记录仪存储容量偏小,最多只能记录八小时的心电数据;而微机控制的监控分析仪,虽然性能优良,但其体积大,不适合病人家庭监护及心电短暂异常病人携带。因此开发了低功耗大存储容量的微型动态心电记录仪,该记录仪可完整地记录下超过200小时的心电信息;且功耗低,使用常见的五号两节镍氢、碱性或普通干电池供电,适合于中小型医院以及家庭使用。
1 心电记录仪主要器件
图1是微型心电记录仪的基本电路组成框图,该电路中全部芯片均为3.3V低电源电压、低功耗芯片,整机耗电约12mA×3.3V。
1.1 低功耗大容量Flash存储器K9K2G08
微型心电记录仪的数据存储器采用的三星公司的NAND结构的Flash数据存储器件K9K2G08。该存储芯片是目前容易较大的Flash芯片之一,单片容量达256M+8M字节。存储器按页进行读写,按块擦除,通过分时复用I/O口完成命令/地址/数据的读写和擦除。K9K2G08存储芯片由2048个块(block)组成,每个块有64页,每页有2K+64字节,另有2K+64字节的缓冲RAM。如表1所示,对每一页的寻址需要通过I/O口送出五个地址,第三至第五行地址(A11~A27)指明寻址到某一页,第一、第二列地址指明寻址到页的指定区中某一字节。
表1 存储器的地址
|
I/O 0 |
I/O 1 |
I/O 2 |
I/O 3 |
I/O 4 |
I/O 5 |
I/O 6 |
I/O 7 |
|
1 |
A0 |
A1 |
A2 |
A3 |
A4 |
A5 |
A6 |
A7 |
列地址 |
2 |
A8 |
A9 |
A10 |
A11 |
L |
L |
L |
L |
列地址 |
3 |
A12 |
A13 |
A14 |
A15 |
A16 |
A17 |
A18 |
A19 |
行地址 |
4 |
A20 |
A21 |
A22 |
A23 |
A24 |
A25 |
A26 |
A27 |
行地址 |
5 |
A28 |
L |
L |
L |
L |
L |
L |
L |
行地址 |
该存储器允许用户对任意页或字进行编程和写缓冲操作,随机读数据的时间为25μs,连续读数的时间为50ns。芯片的块擦除时间为2ms,连续读数的时间为50ns。芯片的块擦除时间为2ms,编程时间为300μs,擦除/编程循环高达10万次,数据保存时间可达10年。芯片使用2.7V~3.6V的电源电压,读写工作时电流为10mA,在待机方式下电流仅为50μA,功耗非常小。它的存储容量为256M字节,是一种低功耗、高密度、非易失的动态数据存储介质,非常适合作为动态心电记录仪的数据存储器,平均功耗小于2mA×3.3V。
按每分钟采样200次心电信号计算,24小时存储的数据容量大约为34M,256M容量的存储器存储时间可超过180小时,按一定规律去掉连续重复的数据后存储时间甚至可超过500小时,可以满足要求。同时在软件设计上采用循环记录的形式,当256M记录完毕时,擦除一个块,再写入新的心电数据。所以该仪器记录的总是最近几天的心电数据。
当PC机通过USB接口读记录仪时,对于256M数据,大约需要30分钟。为此将Flash数据存储器焊接在单独的印制板上并加抗静电封装,与单片机之间采用可插拔接口连接。这样医生可以将记录心电数据的存储器板拔下插到USP接口电路上,如图2所示,由PC机读取数据进行心电波形的处理、显示、分析。而且可以在极短的时间内更换存储器板,而不耽误病人使用。存储器板上设置接入标识、容量标识等硬件标志,单片机能识别出是否插上存储器板及其容量。存储有64M、128M、256M字节等多种容量供用户选择。
1.2 低功耗单片机MSP430F149
MSP430F149是TI公司推出的一款低电源电压范围(1.8V~3.6V)的低功耗16位单片机。该芯片内含60Kbyte的Flash EPROM以及2KByte的RAM。有一个性能齐全的基础时钟模块,包括一个数据控振荡器(DCO)和两个晶体振荡器。另外还包括硬件看门狗、三个捕获/比较寄存器的16位定时器Timer_A3、七个捕获/比较寄存器的16位定时器Timer_B7、8通道12位A/D转换器ADC12和两个串行通信接口等。
特别值得一提的是其低功耗应用。采用外接低速晶振32768Hz产生准确的定时信号和设置异步握手通信波特率,而A/D转换及运行使用内部数控振荡器产生的速度较快的400kHz时钟信号,其功耗小于3mA×3.3V。另加一个8MHz高速晶振,平时关闭不工作,当USB接口电路接上时,由USB接口电路提供电源,这时单片机根据握手信号指令启动高速晶振,按指令要求设置合适的波特率进行高速数据传输,无疑又是一种降低功耗的办法。因此选择MSP430F149作为CPU芯片是基于低功耗设计的最佳方案。
2 微型动态心电记录仪的结构
由图1可以看出,记录仪的设计分为模拟心电信号的检测、放大与滤波、数字心电信号的存储与处理等部分。即通过导联输入心电信号,经放大与滤波、A/D转换后得到数字化的心电信号,送入单片机系统,由软件完成处理以及存储,最后通过UART接口或存储器板送出检测的波形数据到微机时,供医生分析诊断使用。下面分别加以介绍。
2.1 模拟心电信号的检测放大与滤波
心电信号由三片高精度低功耗运放MAX4240构成的高共模输入的仪表放大器放大后,经低通滤波器滤除高频干扰,再经50Hz陷波器进一步抑制电源干扰后,输入到MSP430F149中进行A/D转换,从而得到数字化的心电信号。
2.2 数字心电信号的存储与处理
本文设计的心电记录仪的最大特点是存储容量大,存储器由一片256M闪速存储芯片K9K2G08构成。为了高保真地记录心电数据,医生一般不希望进行数据压缩,故不采用任何数据压缩方法,直接记录原始12位二进制心电数据。K9K2G08通过分时复用I/O口完成命令/地址/数据的读写和擦除。因此通过可插拔接口直接与单片机MSP430F149相连进行控制。
2.3 其它硬件接口
电源模块采用高效率、低功耗升压式DC/DC变换器MAX1674,输出3.3V电压供系统使用。其静态电流仅为16μA,效率高达90%以上,输入电压低到0.7V还能工作。
为了准确分析信息,加入时间参数,采用I2C接口的PCF8583时钟芯片,并加后备电源,将当前完成的Flash页写入地址保存在PCF8583的备用RAM中,每次开机或断电都会按日期、时间顺序进行Flash的数据存储。
LCD使用段显示式串行SPI接口,工作电流仅为25μA,主要显示记录页数、电池的容量、日期和时间等。如果需要实时查看心电图,则需要改用较大的点阵式液晶屏,但是耗电量增加到几倍至几十倍,无法达到较长的连续工作时间。故不采用实时查看心电图的方式。
心电记录仪使用两节五号2AH镍氢电池时,平均耗电小于20mA,充电电后可连续工作100小时,在15秒时间内更换电池,记录仪工作不受任何影响。当电池的能量仅能工作30分钟时有声音提示。
3 附加的USB接口电路
如图2所示,USB接口电路提供两种功能,一是提供PC机的USB接口与记录仪的高速串行通信接口,可读取Flash数据或对记录仪进行初始化设置。二是提供PC机的USB接口作为直接读取Flash数据存储器板接口,更换存储器板能进一步为短暂心电异常病人提供更好的家庭服务。USB接口电路主要由CYGNAL公司的USB转UART的单芯片桥接口CP2101、MSP430F149单片机和电源芯片SE117-3.3V等组成。单片机的一个UART口与CP2101相联,另一个UART口与记录仪相联,其最高通信速率可达900kbps。
4 软件设计
心电记录仪软件的主要任务是心电数据采集、对闪速存储器的存储控制、电池电压及时间显示和电极脱落或故障时报警以及与微机的数据串行通信等。
软件以5sps采样速率控制A/D采样,对采集来的ECG信号进行峰值检测和运算,以页为单位动态调整A/D转换的参考电压以得到最佳A/D转换动态范围,并将12位A/D转换数字增加四位二进制数字编码成为两字节,按一定规则去掉连续重复的数据以增加存储空间,以页为单位加入时间标记和动态调整系数等参数。将这些数据全部存储于闪速存储器中,通过串口或存储器板输入到微机中。使用专门设计的程序,在微机中将按一定规则去掉的连续重复的数据恢复,再根据医生的需要通过各种算法提取各种参 数,并显示图形和参数,供医生通过微机进行心电波形的处理、显示、分析和诊断。
本文介绍的微型心电记录仪,硬件全部采用低功耗器件设计,并且对心电数据未采用任何压缩算法,ECG信号的保真度度、记录时间长。该记录仪体积小、功耗低、病人携带方便,是一种经济实用的小型心电记录仪。
- <SCRIPT event=onload for=window type=text/javascript><br>ImgLoad(document.getElementById("BodyLabel"));<br></script>
复制代码 |