ADS1292R 使用 过程 心电图 高精度ADC模块

2023-10-23 22:50

本文主要是介绍ADS1292R 使用 过程 心电图 高精度ADC模块,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

https://www.ti.com.cn/product/cn/ADS1292R
在这里插入图片描述

文章目录

  • 1 Fundamentals of Precision ADC Noise Analysis 精密模数转换器噪声分析基础
  • 2 心电图定义和用途
  • 3 测量原理
  • 4 ADS1292R 芯片数据
  • 5 ADS1292R 呼吸阻抗测量
  • 6 ADS1292R 电路图设计
  • 7 效果测试
  • 8 总结

1 Fundamentals of Precision ADC Noise Analysis 精密模数转换器噪声分析基础

https://www.ti.com.cn/cn/lit/wp/slyy192/slyy192.pdf?ts=1600659610730&ref_url=https%253A%252F%252Fwww.ti.com.cn%252Fproduct%252Fcn%252FADS1292R
在电子电路中,噪声有多种形式,包括:
1 Broadband (thermal, Johnson) noise 宽带(热、约翰逊)噪声,这是由电导体内部电荷的物理运动引起的温度相关噪声。
2 1/f (pink, flicker) noise 1/f(粉红、闪烁)噪声,这是一种功率密度与频率成反比的低频噪声
3 Popcorn (burst) noise爆米花(爆裂)噪声,本质上是低频噪声,由设备缺陷引起,具有随机性,在数学上不可预测。
这些形式的噪声可能通过多种来源进入信号链,包括:
1 模数转换器,它产生热噪声和量化噪声的组合。
2 内部或外部放大器,可以增加宽带和1/f噪声,然后由模数转换器采样,从而影响输出代码结果。
3 内部或外部基准电压源,也会产生宽带和1/f噪声,出现在模数转换器的输出代码中。
4 非理想电源,可能会给您试图通过几种耦合方式测量的信号增加噪声。
5 内部或外部时钟会产生抖动,进而导致采样不均匀。这似乎是正弦输入信号的一个额外噪声源,通常对高速ADC更为关键。
6 印刷电路板布局不佳,可能会将来自系统其他部分或环境的噪声耦合到敏感的模拟电路中。
7 传感器,可能是高分辨率系统中噪音最大的组件之一。

在这里插入图片描述
ADC的固有噪声可以将ADC总噪声分为两个主要来源:量化噪声和热噪声quantization noise and thermal noise。这两个噪声源是不相关的,因此可以使用平方根法来确定模数转换器的总噪声:
在这里插入图片描述
量化噪声是模数(或数模)转换过程的副产品,与量化噪声不同,热噪声是所有电气元件中固有的现象,是电导体内部电荷物理运动的结果。因此,即使不施加输入信号,也可以测量热噪声。

热噪声通常具有高斯分布。
在这里插入图片描述
低分辨率模数转换器是总噪声更依赖于量化的任何器件。在这里插入图片描述

高分辨率模数转换器是总噪声更依赖于热噪声的任何器件。
在这里插入图片描述
低分辨率和高分辨率之间的转换通常发生在16位级别,任何小于16位的都被视为低分辨率,任何大于16位的都被视为高分辨率。虽然不总是正确的,但我将在本电子书的其余部分保持这一一般惯例。

为什么要在16位级别进行区分?让我们看看两个ADC数据手册来了解一下。在16位ADS114S08的噪声表中,无论数据速率如何,所有输入的噪声电压都是相同的。与24位ADS124S08的折合到输入端的噪声值相比,这些噪声值都是不同的,随着数据速率的降低而降低/提高。
在这里插入图片描述
虽然这本身不会得出任何明确的结论,但假设参考电压为2.5,让我们使用等式3和4来计算每个模数转换器的最小二乘大小:
在这里插入图片描述
可见,不同分辨率的ADC器件里面的噪声成分是不一样的:
在这里插入图片描述
你怎么能利用这个结果对你有利呢?对于量化噪声占主导地位的低分辨率ADC,可以使用较小的参考电压来减小LSB大小,从而降低量化噪声幅度。这具有降低模数转换器总噪声的效果,如图7a所示。对于热噪声占主导地位的高分辨率ADC,使用更大的基准电压来增加ADC的输入范围(动态范围),同时确保量化噪声水平保持在热噪声以下。假设其他系统没有变化,这种增加的参考电压可以实现更好的信噪比,如图7b所示。
在这里插入图片描述
在这里插入图片描述
测量噪声方法:
短接测热噪声,接正弦波测量化噪声。
在这里插入图片描述

2 心电图定义和用途

https://zh.wikipedia.org/wiki/%E5%BF%83%E7%94%B5%E5%9B%BE
心电图是一种经胸腔的以时间为单位记录心脏的电生理活动,并通过皮肤上的电极捕捉并记录下来的诊疗技术。
心电图的工作原理:在每次心跳心肌细胞去极化的时候会在皮肤表面引起很小的电学改变,这个小变化被心电图记录装置捕捉并放大即可描绘心电图。
通常在肢体上可以放置2个以上的电极,他们两两组成一对进行测量(如左臂电极(LA),右臂电极(RA),左腿电极(LL)可以这样组合:LA+RA,LA+LL,RA+LL)。每个电极对的输出信号称为一组导联。导联简单的说就是从不同的角度去看心脏电流的变化。心电图的种类可以以导联来区分,如3导联心电图,5导联心电图与12导联心电图,等等。12导联心电图是临床最常见的一种,可以同时记录体表12组导联的电位变化,并在心电图纸上描绘出12组导联信号,常用于一次性的心电图诊断。 3导联及5导联心电图多用于需要通过监视器连续检测心电活动的情况,如手术过程中或在救护车转运病人时的监护中。根据仪器的不同,这种连续监测的结果有时可能不会被完整地记录下来。
在这里插入图片描述

3 测量原理

某个导联下,人体是一个阻抗。下途中PGA是可编程放大器。
在这里插入图片描述

4 ADS1292R 芯片数据

芯片内部结构,PGA是可编程放大器,一共2个PGA,每个PGA前面有个EMI 滤波器。ADS1292R也可以不用于测心电(用导联线+电极片),而用于测呼吸(也是用导联线+电极片,但硬件电路和芯片寄存器设置不一样的)。ADS1292R含有2路差分输入:IN1P IN1N是一组,IN2P IN2N是一组。IN3P IN3N不是直接连接到ADC的,在不使用呼吸调制器输出的应用中,RESP_MODN/IN3N和RESP_MODN/IN3P信号可以用作第三个多路复用差分输入通道,这些输入可以复用到任意一个模数转换器通道。如果ADS1292R的通道1用于呼吸测量,则建议使用47 nF外部电容。代价是电容值越大,总谐波失真性能越差。
在这里插入图片描述
时钟
ADS1291、ADS1292和ADS1292R提供两种不同的器件时钟方法:内部和外部。内部时钟非常适合低功耗、电池供电系统。内部振荡器经过调整,可在室温下保持精度。在规定的温度范围内,精度有所不同;参见电气特性。时钟选择由CLKSEL引脚和CLK_EN寄存器位控制。CLKSEL引脚选择内部或外部时钟。CONFIG2寄存器中的CLK_EN位使能和禁用CLK引脚中输出的振荡器时钟。

虽然称为导联脱落检测,但这实际上是一种电极脱落检测。基本原理是注入激励信号,测量响应,找出电极是否关断。
在这里插入图片描述

下图是测呼吸时候的。
在这里插入图片描述
SPI读取时序:START引脚必须从低电平转换到高电平。该器件DIN在SCLK下降沿锁存数据。DOUT上的数据在SCLK上升沿移出。
DRDY是一个输出。当转换为低电平时,新的转换数据准备就绪。CS信号对数据就绪信号没有影响。
在这里插入图片描述

ADS1292R的一个典型应用是结合呼吸阻抗测量采集心电信号。启用呼吸模式的ADS1292R通道1不能用于采集心电信号。如果右臂(RA)和左臂(LA)导线旨在测量呼吸和心电图信号,这两根导线可以连接到用于呼吸的通道1和用于心电图信号的通道2,如图68所示。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5 ADS1292R 呼吸阻抗测量

阻抗呼吸描记术是一种常用的监测人的呼吸速率的技术。它通过使用两个电极(图1a)或四个电极(图1b)来实现。这项技术的目的是测量呼吸引起的人体胸腔电阻抗的变化。
在这两种方法中,高频交流电流通过驱动电极注入组织(参见参考文献。1)。交流电流会在驱动电极之间的任意两点产生电位差。该电位差与电压感测或接收电极之间的组织电阻率有关。等效电阻定义为两个接收电极之间的电压差与流经组织的电流之比。双端测量配置(如图1a所示)会引入一些误差,因为在两个电极之间检测到的电势差包括由流经电极-组织界面处的极化阻抗的电流产生的非线性电压。图1b所示的四电极配置产生了更精确的测量,因为电流注入和电压测量的位置在物理上是分开的,但需要两个额外的电极。所以最常用的是图1a所示的双电极测量;正常的心电图电极也可以用于呼吸。
Prutchi, D. and M. Norris. (2004). Design and development of medical electronic instrumentation: A
practical perspective of the design, construction, and test of medical devices. Hoboken, NJ: Wiley
Interscience.(参考文献。1)
在这里插入图片描述
在这里插入图片描述
ADS1298R-EVM演示了基于阻抗肺造影术原理的呼吸速率测量,使用ADS1298R。ADS1298R使用方波进行调制。使用的调制频率为32千赫,片内基准用作调制信号。解调是用前面解释的阻塞方案完成的。有关使用EVM的更多详细信息,请参考ADS1298R-EVM用户指南。图11显示了电路呼吸部分的简图。
在图11中,患者模拟器可以连接在导线ELEC和ELEC之间,以提供基线阻抗和变化分量。电阻R96和R97限制流入人体的交流电流量。电容器C108和C109阻止任何直流电流从传输侧流入人体。电容器C99和C100在接收器侧起到相同的作用。电容器C113和C114作为辅助手段,防止单个故障(例如,载波发生器短路的电容器C109)导致过大的直流电流通过患者。呼吸信号被发送到具有呼吸能力的通道1。
在这里插入图片描述

6 ADS1292R 电路图设计

在这里插入图片描述

在这里插入图片描述
用MSP430F5529
在这里插入图片描述
在这里插入图片描述

7 效果测试

DC 3.5mm 扣式一体三导联线
除了L和R的另外一根是偏置线。
实际中,我将三导联线绿色RA接到了我大腿,红色RL接到了右胸乳房上方,黄色LA接到了左胸乳房上方,可以看到有一定的波形。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
另一路波形等同于没有。

我寻思这东西的噪声也太大了,生物电太难采集了。

下面这东西是pulsesensor,光学转化成电信号。
在这里插入图片描述
pulsesensor的波形就好多了。
https://blog.csdn.net/x1131230123/article/details/108722830
在这里插入图片描述

8 总结

ADS12992R是高精度ADC,能直接采集生物电信号,噪声很大,还得滤波才能达到实际使用的地步,电路需要诸多改进,但我不会。
估计就是显示波形、计算心率这种事情吧。

这篇关于ADS1292R 使用 过程 心电图 高精度ADC模块的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/270968

相关文章

使用DeepSeek API 结合VSCode提升开发效率

《使用DeepSeekAPI结合VSCode提升开发效率》:本文主要介绍DeepSeekAPI与VisualStudioCode(VSCode)结合使用,以提升软件开发效率,具有一定的参考价值... 目录引言准备工作安装必要的 VSCode 扩展配置 DeepSeek API1. 创建 API 请求文件2.

使用TomCat,service输出台出现乱码的解决

《使用TomCat,service输出台出现乱码的解决》本文介绍了解决Tomcat服务输出台中文乱码问题的两种方法,第一种方法是修改`logging.properties`文件中的`prefix`和`... 目录使用TomCat,service输出台出现乱码问题1解决方案问题2解决方案总结使用TomCat,

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时

Java中使用Java Mail实现邮件服务功能示例

《Java中使用JavaMail实现邮件服务功能示例》:本文主要介绍Java中使用JavaMail实现邮件服务功能的相关资料,文章还提供了一个发送邮件的示例代码,包括创建参数类、邮件类和执行结... 目录前言一、历史背景二编程、pom依赖三、API说明(一)Session (会话)(二)Message编程客

C++中使用vector存储并遍历数据的基本步骤

《C++中使用vector存储并遍历数据的基本步骤》C++标准模板库(STL)提供了多种容器类型,包括顺序容器、关联容器、无序关联容器和容器适配器,每种容器都有其特定的用途和特性,:本文主要介绍C... 目录(1)容器及简要描述‌php顺序容器‌‌关联容器‌‌无序关联容器‌(基于哈希表):‌容器适配器‌:(

使用Python实现高效的端口扫描器

《使用Python实现高效的端口扫描器》在网络安全领域,端口扫描是一项基本而重要的技能,通过端口扫描,可以发现目标主机上开放的服务和端口,这对于安全评估、渗透测试等有着不可忽视的作用,本文将介绍如何使... 目录1. 端口扫描的基本原理2. 使用python实现端口扫描2.1 安装必要的库2.2 编写端口扫

使用Python实现操作mongodb详解

《使用Python实现操作mongodb详解》这篇文章主要为大家详细介绍了使用Python实现操作mongodb的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、示例二、常用指令三、遇到的问题一、示例from pymongo import MongoClientf

SQL Server使用SELECT INTO实现表备份的代码示例

《SQLServer使用SELECTINTO实现表备份的代码示例》在数据库管理过程中,有时我们需要对表进行备份,以防数据丢失或修改错误,在SQLServer中,可以使用SELECTINT... 在数据库管理过程中,有时我们需要对表进行备份,以防数据丢失或修改错误。在 SQL Server 中,可以使用 SE

使用Python合并 Excel单元格指定行列或单元格范围

《使用Python合并Excel单元格指定行列或单元格范围》合并Excel单元格是Excel数据处理和表格设计中的一项常用操作,本文将介绍如何通过Python合并Excel中的指定行列或单... 目录python Excel库安装Python合并Excel 中的指定行Python合并Excel 中的指定列P

浅析Rust多线程中如何安全的使用变量

《浅析Rust多线程中如何安全的使用变量》这篇文章主要为大家详细介绍了Rust如何在线程的闭包中安全的使用变量,包括共享变量和修改变量,文中的示例代码讲解详细,有需要的小伙伴可以参考下... 目录1. 向线程传递变量2. 多线程共享变量引用3. 多线程中修改变量4. 总结在Rust语言中,一个既引人入胜又可