基于STM32的便携式心电图仪设计
的用符合设计要求价格低廉的产品。 因此,根据上述几点本设计选用了3.2寸真彩TFT液晶触摸屏,320*240像素,26万色,16位并行接口,可以直接用AVR、ARM7、STM32等MCU驱动。相关参数:
? 分辨率:QVGA 240 x 320 ? 尺寸:3.2英寸 ? 控制器:IL9320 ? 触摸屏:4线电阻式 ? 接脚:30PIN间距2.54mm ? 背光:4 LED并联 具体接口电路设计如图4所示
图4 LCD显示界面借口
3.2.2按键设计
对于实现人机交互的场合,按键是比较常用的,通过按键来选择系统的功能,完成对系统的访问控制。本系统用了5个按键,分别定义为上、下、左、右、中键,前四个按键是对设置或访问的液晶显示对象进行选择,中键是确定键,这样就实现了既可以用触摸功能,也可以用按键来实现对系统的设置,按键电路的实现比较简单,这里不再详述。具体电路实现如图5所示。
10
基于STM32的便携式心电图仪设计
图5 按键接口电路
3.3前置放大电路以及右腿驱动电路
前置放大电路要完成的功能是实现信号的差分放大,该部分电路在整个采集电路中至关重要,因为后续信号的处理都是以此为基础的。因此要选择一款合适的差分运放芯片。选择时一般考虑以下几点:
(1) 增益
由于心电信号非常微弱,均值在1mV左右,而采集电压一般要达到1V左右,所以心电放大倍数在1000倍左右。一般为了抑制零点漂移,提高共模抑制比,应该分多级实现放大。
(2) 频率响应
所谓频率响应是指放大器对不同信号频率的反应,心电信号的范围低于100Hz,所以要求放大器要对此频率范围的信号尽可能不失真的放大出来。可以设计高通、低通滤波器来压缩频带,滤除该频带以外的干扰信号。必要时还需要设计50Hz工频干扰抑制电路,通过这样处理后,得到的信号才可能有诊断价值。
(3) 共模抑制比
电极不对称、电气设备运行时的干扰都易产生极化电压,然后通过放大电路其值极有可能远比心电信号大得多,从而将微弱的信号淹没。因此要求放大器有很高的共模抑制比。一般要求要达到80db以上。
(4) 输入阻抗
心电信号是微弱的,且具有高阻抗的特性,只有高输入阻抗才有可能不失真的引出心电信号,不然由于分压的因素,会极大的衰减心电信号,从而导致无法正确采集。
(5) 低噪声、低漂移
在心电放大器中,还有两个较重要的参数即噪声和漂移。在设计心电放大器时应尽
11
基于STM32的便携式心电图仪设计
量选用低噪声元件,提高输入阻抗。另外,温漂会引入直流电压增益从而给心电信号带来干扰。因此,选用的放大器要特别注意这两个参数。综上所述该方案选用具有上述优点的AD620,具体设计电路图如图6所示。
图6 前置信号采集电路
由于人类受到大量的外部干扰,心电电极和电力线之问由于存在电容耦合会产生位移电流Id,降低位移电流干扰的一种有效办法是采用右腿驱动法,图7为右腿驱动的具体连接电路。右腿不直接接地而是接到辅助运算放大器的输出。从两个电阻结点检出共模电压,它经过辅助的反相放大器放大后通过电阻反馈到右腿。采用右腿驱动电路,对50Hz干扰的抑制并不以损失心电信号的频率成分为代价。但由于右腿驱动存在交流干扰电压的反馈电路,而交流电流经人体,成为不安全因素,限流电阻通常在1MΩ以上。
图7 右腿驱动电路
3.4滤波电路以及陷波电路的设计
为滤除干扰需要设计带通滤波器,使频率为0.05Hz~l00Hz的心电信号通过,该范围以外的信号将大幅度衰减掉。滤波器有无源滤波器和有源滤波器两种。无源低通滤波器是由无源器件(电阻,电容,电感)组成。其带负载后,通带放大倍数的数值减小,通带截止频率升高,这个缺点不符合信号处理的要求[12]。因此本设计选用有源低通滤波器。 由RC元件与运算放大器组成的滤波器称为RC有源滤波器,其功能是让一定的频
12
基于STM32的便携式心电图仪设计
率范围内的信号通过,抑制或急剧衰减此频率范围以外的信号。具有理想幅频特性的滤波器是很难实现的。只能用实际的滤波器的幅频特性去逼近理想的特性。常用的方法是巴特沃斯(Butterworth)逼近和切比雪夫(Chebysher)[13]逼近。保证信号的原形,采用较平坦的巴特沃斯有源滤波。高通滤波器的设计与低通滤波器相似,这里不再叙述。 带通滤波器用高低通滤波器来构成,如图8所示。高通滤波器由U3、C2、Rdip11组成,其截至频率为f=0.03Hz,低通滤波器由U4、Cdip2、Rsop4组成,截至频率为f=110Hz。
图8 带通滤波电路
基于小型化和成本考虑,硬件滤波只用一阶高通滤波器和一阶低通滤波器,虽然设计了右腿驱动电路,但是仍然有50Hz干扰进入电路,所以本设计增加了50Hz陷波电路,如图9所示通过该方法来滤除工频干扰,实验结果表明,通过高低通滤波后再加上陷波电路的信号波形清晰、特征明显。
图9 50Hz陷波电路
3.5电源电路的设计
电源电路是整个系统中十分重要的一环,随着便携式产品的普及,如何降低功耗成为工程师面临的急需解决的问题。如果电源不稳定可能造成系统不能正常工作,严重的甚至烧坏芯片引发事故。因此电源管理越发显得重要。
电源管理是指如何将电源有效分配给系统的不同组件。电源电路设计主要考虑用哪种类型的电源器件,输入输出电压,输出电流以及控制状态[15]。
心电采集电路需要土5V电源,STM32工作电压为3.3V,本设计用7.2V电池供电,
13
基于STM32的便携式心电图仪设计
中正负5V电压可以采用7805和7905来产生,它通过外围的电感电容的组合提供升满足运放使用的正电压和负电压,图10是其典型应用。
图10 正负5V电源电路
3.3V的电压采用AMS1117产生,其最大的特点是简单易用,而且性价比高,输入电压5V~12V,直接输出3.3V。电路如图11所示。
图11 AMS1117稳压电路
4 便携式心电图仪的软件设计
该系统的软件设计沿用经典的是模块化的编程思想,首先根据要求设计好系统的总软件流程,然后再分别实现系统各模块的功能。在完成硬件电路设计和电路制作后,再进行整体的统一调试。本章主要讨论系统软件在STM32上的编程与实现。
4.1软件开发平台
Keil是德国Keil公司(现已并入ARM 公司)开发的微控制器软件开发平台,是目前ARM内核单片机开发的主流工具。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器在内的完整开发方案,通过一个集成开发环境(uVision)将这些功能组合在一起。uVision当前最高版本是uVision3,它的界面和常用
14