基于nRF24L01的无线心电采集系统的设计
2013-01-18姚湘陵秦实宏袁发庭
姚湘陵,秦实宏,袁发庭
(武汉工程大学 电气信息学院,湖北 武汉 430073)
由于心脏病具有突发性和不可预见性,因此心脏病已成为严重威胁人们健康和生命的三大主要疾病之一[1]。无线心电监护系统可以及时获取患者的心电信息,以便及时发现异常情况,采取相应的处理措施,是降低心脏病死亡率的有效手段之一[2-3]。它对高危人群、亚健康人群、老年人心脏疾病预警意义重大,医学实践表明,对于心脏病的防治,最有效的手段就是预防和保健,在对心脏病患者进行监护的基础上,尽早发现异常病变,及早进行治疗,以控制病情的进一步发展。人们生活中所见到的心电监控系统往往是医院里的大型心电监测工作站[4-5]。这种工作站体积大,价格昂贵,专业性强,不具备无线传输能力,因此在家庭保健和社区服务方面的应用比较少。文中针对现有心电监护系统的缺点及不足,设计了一种具备无线传输功能并且便于携带的心电采集系统。
1 系统框图设计
系统框图如图1所示,心电信号经调理模块调理后,单片机将12位A/D采集电路采集到的数据通过无线传输模块发送至接收端无线模块,最后通过RS232串口传输至上位机。
2 硬件设计
整个系统硬件主要包括以下几个部分:信号调理模块,A/D数据采集模块,单片机控制模块,无线传输模块。
图1 系统框图Fig.1 System chart
2.1 信号调理模块
人体心电信号的频率范围为 0.05~100 Hz,幅度为 0~4 mV。此外,由于心电信号中常混杂其他生物电信号以及50 Hz工频信号,因此心电信号调理模块必须具备高精度、高稳定性、高输入阻抗、高共模抑制比、低噪声及抗强干扰等性能。心电信号依次经过以下几个电路:前置放大电路,带通滤波电路,主放大电路,50 Hz陷波电路以及电平抬升电路。
2.1.1 前置放大电路
前置放大是心电数据采集的关键环节,具体电路如图2所示。由于人体心电信号十分微弱,噪声背景强且信号源阻抗较大,加之电极引入的极化电压差值较大(比心电差值幅度大几百倍),因此,通常要求前置放大器具有高输入阻抗、高共模抑制比、低噪声、低漂移、非线性度小、合适的频带和动态范围等性能,设计时一般都采用差分放大电路。本设计选用Analog公司的仪器仪表放大器AD620作为前置放大器。AD620是一款价格低廉、性能优良的仪表放大器。虽然AD620由传统的三运算放大器发展而成,但一些主要性能却优于三运算放大器构成的仪表放大器的设计。
图2 前置放大电路Fig.2 Pre-amplification circuit
为进一步减小共模干扰对心电信号的影响,由U1、R3、R4、C1构成的“浮地”驱动电路,将人体共模信号倒相放大后用于激励人体右腿,对皮肤电极阻抗不相等而引起的电压分配效应产生的交流干扰进行了有效的抑制。 U2、U3构成跟随器,可以稳定输入信号和提高输入阻抗,进一步提高共模抑制比。
2.1.2 带通滤波电路
图3所示为带通滤波器,由单运放集成电路OP07构成。OP07具有高精度、低偏置、低功耗等特性,可灵活组成各类放大和滤波电路。 其中 U6、C22、R17、C25、R15组成高通滤波器,为不损失心电信号的低频成分,截止频率应低于0.03 Hz,但因为低频信号会带来严重的基线漂移,因此应该选取可以接受的平衡点,经试验表明,下限截止频率取0.15 Hz效果相对比较理想。
2.1.3 主放大电路
主放大电路如图4所示,由U6、R21、R22构成。考虑到心电信号幅度约为0~4 mV,而A/D转换输入信号要求1 V以上,因此,整个信号电路的放大倍数需1 000倍左右。而前置放大电路放大约10倍左右,带通电路放大4倍左右,因此本级放大倍数设计为30倍左右。
2.1.4 工频陷波电路
工频干扰是心电信号的主要干扰,虽然前置放大电路对共模干扰具有较强的抑制作用,但有部分工频干扰是以差模信号的方式进入电路的,且频率处于心电信号的频带之内,加上电极和输入回路不稳定等因素,前级电路输出的心电信号仍存在较强的工频干扰,所以必须专门滤除。本模块中采用双 T 陷波网络, 由 U5、C14、C15、C20、C21、R5、R7、R9、R10组成,如图5所示。
2.1.5 电平抬升电路
图3 带通滤波电路Fig.3 Band-pass filter circuit
图4 主放大电路Fig.4 Main amplifier circuit
图5 50 Hz工频陷波电路Fig.5 50 Hz trap circuit
经过一系列信号调理后,陷波输出的心电信号为交变信号,而一般系统中ADC转换输入电压范围为0~5 V,因此,在送入ADC之前还需进行电平抬升,电平抬升电路如图6所示。其中,由于前级电路输出信号带有微量直流成分,将会影响到抬升电路的实际效果,因此同样采取阻容耦合方式。
图6 电平抬升电路Fig.6 Electrical level rising circuit
双通道心电数据采集系统的两路心电信号从人体左右手获取,因此信号频率特性相同仅波形的形状不同,因此两路信号可采用相同的信号调理电路。
2.2 A/D数据采集模块
采集电路使用内部参考电源以简化电路设计,在参考电源引脚VREF的接地线之间并联电容分别为0.1μF和2.2μF两个电容以消除干扰。待转换电压从引脚+In输入,引脚-In直接接地。由于使用2.5 V片内参考电耗,因此模拟输入电压的范围为0~5.0 V。该电路中由串行时钟输入引脚CLK、串行数据输出引脚DATA和转换信号输入引脚CONV组成的串行接口直接与单片机的输入/输出引脚连接。ADS7818的时钟信号由MCU给出,MCU采用定时中断模式,由定时/计数器0产生定时中断信号,设定采样周期为2 ms,采样精度为12 bit。
2.3 单片机控制模块
单片机采用STC公司生产的STC89C52,它是一种低功耗、高性能8位微控制器,与 MCS-51单片机产品兼容,并具有8KB在系统可编程Flash存储器,1 000次擦鞋周期,可全静态操作,同时具有32个可编程I/O口线,3个16位定时/计数器、8个中断源、全双工UART串行通道,并拥有低功耗空闲和掉电模式、看门狗定时器、双数据指针等。
2.4 无线传输模块
nRF24L01是Nordic公司2005年12月推出的一款工业级内置链路层逻辑的2.4 GHz超低成本的无线收发芯片,nRF24L01支持多点间通信,最高传输速率达2 Mbit/s,比蓝牙具有更高的传输速度。其内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst技术,其中输出功率和通信频道可通过程序进行配置。
nRF24L01功耗很低,在-6 dBm的功率发射时,工作电流只有9 mA;接收模式时,工作电流只有12.3 mA;有掉电模式和待机模式两种低功率工作模式使节能设计更方便。nRF24L01采用GFSK调制,具有自动应答和自动再发射功能,片内自动生成报头和CRC校验码的特性。
3 软件设计
3.1 nRF24L01工作原理
1)发射数据 首先将nRF24L01配置为发射模式;接着把地址TX_ADDR和数据TX_PLD按照时序由SPI口写入nRF24L01缓存区,TX_PLD必须在CSN为低时连续写入,而TX_ADDR在发射时写入一次即可,然后CE置为高电平并保持至少10μs,延迟130μs后发射数据;若自动应答开启,那么nRF24L01在发射数据后立即进入接收模式,接收应答信号。如果收到应答,则认为此次通信成功,TX_DS(数据发送完成中断)置高,同时TX_PLD从发送堆栈中清除;若未收到应答,则自动重新发射该数据 (自动重发已开启),若重发次数(ARC_CNT)达到上限,MAX_RT(重发次数溢出中断)置高,TX_PLD不会被清除;MAX_RT或TX_DS置高时,使IRQ变低,以便通知MCU。最后发射成功时,若CE为低则nRF24L01进入空闲模式1;若发送堆栈中有数据且CE为高,则进入下一次发射;若发送堆栈中无数据且CE为高,则进入空闲模式2。
2)接收数据 首先将nRF24L01配置为接收模式,接着延迟130μs进入接收状态等待数据的到来。当接收方检测到有效的地址和CRC时,就将数据包存储在接收堆栈中,同时中断标志位 RX_DR置高,IRQ变低,以便通知MCU去取数据。若此时自动应答开启,接收方则同时进入发射状态回传应答信号。最后接收成功时,若CE变低,则nRF24L01进入空闲模式1[6]。
3.2 主程序设计
本系统由两片STC89C52共同组成控制系统,发送端单片机负责AD7818和nRF24L01的初始化以及数据传送;接收端将接收到的数据通过RS232串口发送至上位PC机中。
1)发送端程序设计 发送端程序流程图如图7所示,首先将单片机设为方式1,每隔2 ms产生一次定时器中断。主程序采用查询方式判断发送标志变量flag_Tx是否被置位,如果该标志位为1,则使用无线模块将缓存数据发送至接收端模块。发送完成后如果收到应答信号将标志位flag_Tx清零,等待下次中断;否则自动重发,直至超过重发次数,此时则丢弃本组数据,开始准备传输下组数据。进入定时中断程序后,首先对AD7818进行初始化,并开始采样,由于该芯片为12位,所以采样一次可以得到两个字节数据,同时flag_Sa自加2,当flag_Sa=20即采样10次时,将数据发送至无线模块缓存数组中,并置位flag_Tx,清零flag_Sa以及重置定时器。
图7 发送端程序流程图Fig.7 Program flow chart of sending side
2)接收端程序设计 接收端程序流程图如图8所示,首先对单片机进行串口通信配置以及开外部中断0,并设置传输速率为9 600波特率,然后配置nRF24L01模块进入接收模式。当收到数据后,nRF24L01模块IRQ引脚变高产生外部中断0,并内部置RX_DR为1,进入中断函数后单片机将无线模块缓存中数据取出存入接收缓存数组中并置flag_Rx为1,返回主函数后将缓存数组数据经串口发送至上位机完成全部接收工作。
图8 接收端程序流程图Fig.8 Program flow chart of receiving side
4 实验结果
在PC机中使用Visual Basic编写了一个心电采集系统管理程序,用来显示从患者处采集到的心电信号,如图9所示。由图中可看出经过调理,采集,最终通过无线模块传输至上位机的信号很好的保持了原有信号的特性,失真度较小。
图9 系统整体实验结果Fig.9 System experimental result
5 结 论
文中详细介绍了新型2.4 GHz无线收发芯片nRF24L01的特性和在心电信号采集传输方面的应用。测试结果表明,本系统成功地实现了心电信号的采集、无线传输以及上位机显示等功能,拥有性能稳定、成本低、低功耗等特点,在医疗领域具有很大的应用前景。
[1]刘克军.我国三类主要慢性疾病的直接经济负担[J].卫生经济研究,2007(1):19-21.LIU Ke-jun.Direct economic burden of three main chronic diseases in our country[J].Health Economics Research,2007(1):19-21.
[2]郑凯,赵宏伟,张孝临.基于ZigBee网络的心电监护系统的研究[J].仪器仪表学报,2008,29(9):1908-1911.ZHENG Kai,ZHAO Hong-wei,ZHANG Xiao-lin.Research on monitor system of electrocardiograph based on zigbee network[J].Chinese Journal of Scientific Instrument,2008,29(9):1908-1911.
[3]张道明,郝继飞,谭国俊,等.多功能便携式心电信号记录仪[J].微计算机信息,2007,23(19):161-163.ZHANG Dao-ming,HAO Ji-fei,TAN Guo-jun.,et al A multifunctional and portable electrocardiogram recorder[J].Control&Automa-tion,2007,23(19):161-163.
[4]倪锋.便携式动态心电信号数据采集器的设计[J].医疗卫生装备,2006,27(7):14-15.NI Feng.Design on portable dynamic electrocardiosignal data collector[J].Chinese Medical Equipment Journal, 2006,27(7):14-15.
[5]蔡启博,李方洲.心电采集系统的可靠性设计[J].企业科技与发展,2008(5):102-104.CAI Qi-bo,LI Fang-zhou.The design of ecg collection system’s reliability[J].Enterprise Science and Technology&Development,2008(5):102-104.
[6]李闪,黄小莉,胡兵,等.基于nRF24L01的无线智能温度监测系统[J].仪表技术与传感器,2011(12):52-54.LI Shan,HUANG Xiao-li,HU Bing,et al.Design of wireless intelligent temperature monitoring systembased on nRF24L01[J].Instrument Technique and Sensor,2011(12):52-54.