采用STM32的心电采集仪设计方案

发布者:MagicalSerenade最新更新时间:2014-12-05 来源: dzsc关键字:STM32  心电采集仪  模拟信号 手机看文章 扫描二维码
随时随地手机看文章

  如今,心血管类疾病已经成为威胁人类身体健康的重要疾病之一,而清晰有效的心电图为诊断这类疾病提供了依据,心电采集电路是心电采集仪的关键部分,心电信号属于微弱信号,其频率范围在0.03~100 Hz之间,幅度在0~5 mV之间,同时心电信号还掺杂有大量的干扰信号,因此,设计良好的滤波电路和选择合适的控制器是得到有效心电信号的关键。基于此,本文设计了以STM32为控制核心,AD620和OP07为模拟前端的心电采集仪,本设计简单实用,噪声干扰得到了有效抑制。

  1 总体设计方案

  心电采集包括模拟采集和数字处理两部分,本设计通过AgCl电极和三导联线心电采集线采集人体心电信号,通过前置放大电路,带通滤波电路,50 Hz双T陷波后再经主放大电路和电平抬升电路把心电信号的幅度控制在STM32的A/D采集范围内,STM32通过定时器设定A/D采样频率,通过均值滤波的方式对得到的数字信号进行处理,最后在彩屏上描绘出心电图形,系统总体框图如图1所示。

  2 硬件设计

  2.1 主控模块电路设计

  主控模块的STM32F103VET单片机是控制器的核心,该单片机是ST意法半导体公司生产的32位高性能、低成本和低功耗的增强型单片机,其内核采用ARM公司最新生产的Cortex-M3架构,最高工作频率72 MHz、512 kB的程序存储空间、64 kB的RAM,8个定时器/计数器、两个看门狗和一个实时时钟RTC,片上集成通信接口有两个I2C、3个SPI、5个USART、一个USB、一个CAN、一个SDIO,并集成有3个ADC和一个DAc,具有100个I/O端口。主控单片机管脚排列图如图2所示。

  2.2 前置放大电路的设计

  前置放大电路是模拟信号采集的前端,也是整个电路设计的关键,它不仅要求从人体准确地采集到微弱的心电信号,还要将干扰信号降到最低,由于心电信号属于差分信号,所以电路应采用差动放大的结构,同时要求系统具有高共模抑制比、高输入阻抗、低漂移等特点。因此,选择合适的运算放大器至关重要,这里选择仪用运放AD620实现前置放大,AD620具有高精度、低噪声、低输入偏置电流低功耗等特点,使之适合ECG监测仪等医疗应用。AD620的放大倍数由1与8脚之间的反馈电阻决定,增益G=49.4 kΩRG+1,由于心电信号中含有较大的直流分量,因此前置放大电路的放大倍数不能过大,在这里选择放大约10倍,因此反馈电阻R6取约5 kΩ,为提高电路的共模抑制能力,这里用一个OP07检测R10,R4上的共模信号驱动导线屏蔽层,消除分布电容。同时用另一个OP07运放和R5,C3,R7组成右腿驱动电路,在R10,R4上检测到的共模信号经反相放大器后经R7,反馈到人的右腿,进一步抑制了共模信号和50 Hz工频干扰,这里右腿驱动有一个对交流电的反馈通路,交流电的干扰可能对人体产生危害,因此这里要注意做好绝缘措施,同时保护电阻R7尽可能大,取1 MΩ以上。此外系统电源的不稳定也对心电信号的采集有较大影响,因此在本系统中,所有运放的电源脚都并联两个0.1μF和10μF的电容退耦,提高系统的稳定性,前置放大电路的电路图如图3所示。

  2.3 带通滤波器的设计

  从前置放大电路输出的心电信号还含有较大直流分量和肌电信号,基线漂移等干扰成分,所需采集的有用心电信号在0.03~100 Hz范围之间,因此需设计合理的滤波器使该范围内的信号得以充分通过,而该范围以外的信号得到最大限度的衰减,这里采用具有高精度,低偏置,低功耗特点的两个OP07运放分别组成二阶有源高通滤波器和低通滤波器,高通滤波器由C11,C17,R7,R10组成,截止频率f1≈0.03 Hz,低通滤波器由R8,R9,C10,C13组成,截止频率约为f2≈100 Hz,系统带通滤波器的电路如图4所示。

  2.4 50 Hz双T陷波器设计     

      工频是心电信号中最主要也最常见的干扰源,虽然前面的右腿驱动电路对其有一定的抑制作用,但是仍有较大部分进入了后面的电路,因此有必要设计截止频率为50 Hz的带阻电路来进一步滤除干扰,带阻电路也称陷波器,顾名思义,带阻电路就是使某特定频率范围内的信号大幅衰减,而对该频率范围外的信号几乎不产生影响。双T陷波电路是典型的带阻电路,在双T网络中,两个T型网络的参数是对称的,如图5所示的50 Hz双T陷波电路中,R13=R14=2R16=R=32 kΩ,C20=2C19=2C18=C=200 nF,本质上是由两个T型高通滤波器和低通滤波器并联组成,图5所示电路的截止频率f0=1/2πRC≈50 Hz。[page]

  2.5 主放大以及电平抬升电路设计

  心电信号的幅度约为0~4 mV,STM32 AD转换的输入电平要求为3.3 V,因此,为了单片机能够处理采集到心电信号,需将采集到的模拟信号放大800~1 000倍。前置放大电路已放大了10倍,理论上主放大电路约放大100倍即可。为确保信号不失真,一般单级放大不超过10倍,因此,可采取两级放大的方式来达到放大100倍的效果,U9固定放大10倍,U11的反馈电阻采用可调电阻,这样就可以通过变阻器的调节达到放大100的效果。此外,因为STM32单片机的A/D采集不能采集负电平,因此这里设计了如U7所示的电平抬升电路把心电信号提到0电平以上,方便单片机采集。

  3 软件设计

  得到心电信号后要输入STM32进行AD采集和软件滤波,最终送LCD实现波形显示,单片机初始化后,程序设计定时器每6 ms中断一次,在中断函数里,对读取到的A/D值采取均值滤波的形式滤除干扰,然后把之转换与彩屏对应的坐标值,在彩屏上画线实现波形的实时显示,整个系统的程序流程如图7所示。

  4 测试结果分析

  通过电极片和三导联线在人的左臂,右臂,右腿部采集心电信号经前端模拟电路和STM32处理后,最后在示波器和彩屏上得到的心电信号如图8所示。

  从彩屏和示波器上所得的心电图来看,50 Hz工频信号和基线漂移得到了较好的抑制,从示波器上可看出,相邻两个波峰之间的时间大约为900 ms,这与真实的心电信号基本吻合,图像清晰稳定,能够较好地反映人体心电特征。

  5 结束语

  本设计实现的是以STM32为控制核心,以AD620,OP07为模拟信号采集端的小型心电采集仪,该设计所测心电波形基本正常,噪声干扰得到有效抑制,电路性能稳定,基本满足家居监护以及病理分析的要求,整个系统设计简单,成本低廉,具有一定的医用价值。

关键字:STM32  心电采集仪  模拟信号 引用地址:采用STM32的心电采集仪设计方案

上一篇:基于STM32的嵌入式以太网门禁系统设计
下一篇:由WiFi控制的无线音乐播放系统设计方案

推荐阅读最新更新时间:2024-03-16 13:47

基于STM32的RTC实时时钟实验
RTC是什么? STM32的RTC外设,实质是一个掉电后还继续运行的定时器,从定时器的角度来看,相对于通用定时器TIM外设,它的功能十分简单,只有计时功能(也可以触发中断).但是从掉电还能继续运行来看,它是STM32中唯一一个具有这个功能的外设(RTC外设的复杂之处不在于它的定时,而在于它掉电还可以继续运行的特性)。 所谓掉电,是指电源VDD断开的情况下,为了RTC外设掉电可以继续运行,必须给STM32芯片通过VBAT引脚街上锂电池.当主电源VDD有效时,由VDD给RTC外设供电.当VDD掉电后,由VBAT给RTC外设供电.无论由什么电源供电,RTC中的数据始终都保存在属于RTC的备份域中,如果主电源和VBA都掉电,那么备份域
[单片机]
基于<font color='red'>STM32</font>的RTC实时时钟实验
关于STM32利用硬件仿真串口中断处理函数应注意的问题
我们在利用jlink或其他仿真器对串口中断处理函数的数据接收进行仿真时,如果在中断函数中设置了断点,我们向串口发送数据端会采用逐个字节发送而不能采用一次性发送多个字节,当然从广义上来讲,你一次发那么多字节我在断点处程序已经停止了再运行肯定你的数据我会丢失啊,所以需要逐个字节发送这是可以理解的。而我这里讲的是如果你一次发送多个字节将会导致什么后果的问题. 假设1:假如你的断点设置在res = USART_ReceiveData(USART1)之后,以下面发送的这串字符为例,那么实际上当你停到断点处看到接收到fe时由于DR寄存器之前已经清空,实际上01已经存到DR中了,这时你运行会再次运行到这个断点,即受到了fe 和01两
[单片机]
关于<font color='red'>STM32</font>利用硬件仿真串口中断处理函数应注意的问题
stm32的滴答时钟systick
SysTick定时器被捆绑在NVIC中,用于产生SysTick异常(异常号:15)。 Systick 部分内容属于NVIC控制部分,一共有4个寄存器,名称和地址分别是: STK_CSR, 0xE000E010 -- 控制寄存器 STK_LOAD, 0xE000E014 -- 重载寄存器 STK_VAL, 0xE000E018 -- 当前值寄存器 STK_CALRB, 0xE000E01C -- 校准值寄存器 所有的Cortex‐M3处理器内部都包含了这个定时器,软件在不同 CM3器件间的移植工作得以化简。该定时器的时钟源可以是内部时钟(FCLK,CM3上的自由运行时钟free clock),或者是外部时钟( C
[单片机]
关于STM32 NVIC配置的解释
大部分学习用的开发板在配置各个外设的中断优先级时,习惯在每个外设的初始化文件里都进行NVIC group配置,例如在ADC和Usart都有NVIC的配置如下: ADC中: void ADC_NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); NVIC_InitStructure.NVIC_IRQChannel =ADC1_2_IRQn; //开启ADC_Channel8中断 NVIC_InitStructure.NVIC_IRQChannelPreemp
[单片机]
STM32学习笔记----keil工程的建立
1、keil编译的三个按键的功能 A、第一个按钮:Translate 就是翻译当下修改过的文件,说明白点就是检查下有没有语法错误,并不会去链接库文件,也不会生成可执行文件。 B、第二个按钮:Build 就是编译当下修改过的文件,它包含了语法检查,链 接动态库文件,生成可执行文件。 C、第三个按钮:Rebuild 重新编译整个工程,跟 Build 这个按钮实现的功能 是一样的,但有所不同的是它编译的是整个工程的所有文件,耗时巨大。 综上:当我们编辑好我们的程序之后,只需要用第二个 Build 按钮就可以, 即方便又省时。第一个跟第三个按钮用的比较少 2 、core_cm3.c 跟启动文件一样都是底层文件,都是由 ARM 公司提供的,
[单片机]
STM32+按键调控PWM输出+串口输出占空比
GPIO.c #include STM32Lib\\stm32f10x.h #include hal.h /******************************************************************************* * Function Name : GPIO_Configuration * 设置PD3,PD4,PD5,PD6为键盘输入 * 设置PB0,5,8,9; PC5,7; PD7 ;PA8 为输出LED灯 *******************************************************************************/
[单片机]
STM32 外设使用的基本配置顺序
引脚重映射配置过程(串口1为例): 1.使能GPIO时钟(重映射后的IO); 使能功能外设时钟(例如串口1); 2.使能AFIO时钟。重映射必须使能AFIO时钟: RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); 3.开启重映射。 GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE); 根据第一个参数,来确定是部分重映射还是全部重映射 中断优先级设置步骤 1.系统运行后先设置中断优先级分组。 调用函数:
[单片机]
基于STM32模拟UART串口通信
UART工作原理 UART即通用异步收发器,是一种串行通信方式。数据在传输过程中是通过一位一位地进行传输来实现通信的,串行通信方式具有传输线少,成本底等优点,缺点是速度慢。串行通信分为两种类型:同步通信方式和异步通信方式。 但一般多用异步通信方式,主要因为接受和发送的时钟是可以独立的这样有利于增加发送与接收的灵活性。异步通信是一个字符接着一个字符传输,一个字符的信息由起始位、数据位、奇偶校验位和停止位组成。 每一个字符的传输靠起始位来同步,字符的前面一位是起始位,用下降沿通知收方开始传输,紧接着起始位之后的是数据位,传输时低位在前高位在后,字符本身由5~8位数据位组成。 数据位后面是奇偶校验位,
[单片机]
基于<font color='red'>STM32</font>模拟UART串口通信
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved