网站首页 全球最实用的IT互联网站!

人工智能P2P分享Wind搜索发布信息网站地图标签大全

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

基于STM32物联网开发板(6)--AD8232心电图监测模块

时间:2023-05-16 09:08

人气:

作者:admin

标签:

导读:AD8232是一款用于ECG及其他生物电测量应用的集成信号调理模块。该器件设计用于在具有运动或远程电极放置产生的噪声的情况下提取、放大及过滤微弱的生物电信号。该设计使得超低功...

1.概述

AD8232是一款用于ECG及其他生物电测量应用的集成信号调理模块。该器件设计用于在具有运动或远程电极放置产生的噪声的情况下提取、放大及过滤微弱的生物电信号。该设计使得超低功耗模数转换器(ADC)或嵌入式微控制器能够轻松地采集输出信号。

AD8232采用双极点高通滤波器来消除运动伪像和电极半电池电位。该滤波器与仪表放大器结构紧密耦合,可实现单级高增益及高通滤波,从而节约了空间和成本。AD8232采用一个无使用约束运算放大器来创建一个三极点低通滤波器,消除了额外的噪声。用户可以通过选择所有滤波器的截止频率来满足不同类型应用的需要。

对于可穿戴式运动器械, AD8232通常置于心脏附近的容器中。两个检测电极置于胸肌下面;无需使用驱动电极。由于从心脏到AD8232的距离很短,因此心脏信号很强并且肌肉伪像干扰较小。

应用

  • 健身及运动心率监护仪
  • 便携式ECG
  • 远程健康监护
  • 游戏外围设备
  • 生物电信号采集
pYYBAGRiN-iAJxafAAJE-ntT5jE846.png
  • 硬件接口:

引脚

说明

SIGNAL_OUT

PC0信号ADC采集硬件

LO-

PC1比较强输出端

LO+

PC2比较器输出端

SDN

PC3控制输出端(高电平启动)

poYBAGRiOCaAcgYPAALZMBEJZDc863.pngpYYBAGRiODuAFxPFAABhYklY6sU975.png
  • 连接方式

OUT运放输出端,接到ADC的输入端,LOD-、LOD+接到身上的三个电极,导联脱落,这两个口某一个口会变为高电平,所以将这两个口接到输入口上。SDN开启和关闭模块功能,接到GPIO输出口,给它高电平则模块工作,给低电平则不工作。

2.工作原理

poYBAGRiOJ6AIpdeAAFePEs6a3w108.png

AD8232是一款集成前端,适用于对心脏生物电信号进行信号调理来进行心率监护。它内置一个专用仪表放大器(IA)、一个运算放大器(A1)、一个右腿驱动放大器(A2)和一个中间电源电压基准电压缓冲器(A3)。此外,AD8232内置导联脱落检测电路和一个自动快速恢复电路,该电路可在导联重新连接后迅速恢复信号。

AD8232集成专用仪表放大器,可放大ECG信号,同时抑制的电极半电池电位。这是通过间接电流反馈架构实现的,与传统方案相比,该架构还能减小尺寸和降低功耗。

3.硬件配置

开发平台:STM32CubeMx +KEIL5

核心控制器:STM32F103RET6

数据采集方式:ADC

AD8232数据采集通过ADC方式处理,ADC模式配置如下:

1.时钟配置

STM32本身自带ADC功能,是一个12位ADC是一种逐次逼近型模拟数字转换器。它有多达18个通道,可测量16个外部和2个内部
信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。 ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。
模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。

ADC的输入时钟不得超过14MHz,它是由PCLK2经分频产生。

pYYBAGRiOaqAE-IzAAF-8LV3Q_s965.png

2.ADC模式配置

poYBAGRiOqqAcYDVAAGXskKSAe0615.png

4.数据处理

//ADC初始户此处略过
//读取ADC通道数据
u16 Get_Regular_Channelx(u16 ch)
{
	ADC_ChannelConfTypeDef sConfig = {0};
	sConfig.Channel=ch;//通道号

	sConfig.SamplingTime=ADC_SAMPLETIME_239CYCLES_5;//采样周期
	if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)//ADC通道初始化
   {
     Error_Handler();
   }	
	HAL_ADC_Start(&hadc1);//开启ADC
	HAL_ADC_PollForConversion(&hadc1,20);//等待规则通道转换完成
	return HAL_ADC_GetValue(&hadc1);
}
/*多次测量求平均值*/
u16 AD8232_GetVal(void)
{
  u16 data[10];
  u8 i=0,j=0;
  for(i=0;i<10;i++)
  {
    data[i]=Get_Regular_Channelx(10);
  }
  /*排序*/
  u32 count=0;
  u16 temp;
  for(i=0;i<9;i++)
  {
    for(j=0;j<9-i;j++)
    {
      if(data[j]>data[j+1])
      {
        temp=data[j];
        data[j]=data[j+1];
        data[j+1]=temp;
      }
    }
  }
  for(i=2;i<8;i++)
  {
    count+=data[i];
  }
  temp=count/6;
  return temp;
}

5.运行效果

poYBAGRiOuaAPkDWABWZZiV7vf8470.png 审核编辑:汤梓红
温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信