当前位置:   article > 正文

MAX30102 模块-心率血氧传感器_max30102传感器

max30102传感器

一、简介

1、概述

MAX30102是一个集成的脉搏血氧仪和心率监测模块。它包括内部发光二极管,光电探测器,光学元件,以及低噪音的电子设备。

MAX30102是一套完整的脉搏血氧仪和心率传感器系统解决方案模块,专为可穿戴设备的要求而设计。该设备保持一个非常小的解决方案的大小,而不牺牲光学或电气性能。集成到可穿戴系统中,只需要最少的外部硬件组件。

通信是通过一个标准的I2C兼容接口。它有一个固定的I2C地址:0xAE HEX(用于写操作)和0xAF HEX(用于读操作)。

芯片内部框图:

2、SpO2子系统

MAX30102的SpO2子系统包含了环境光取消(ALC),连续时间sigma-delta ADC以及专有的离散时间滤波器。这些特性使得MAX30102能够精确地测量血氧饱和度(SpO2)并提供可靠的脉搏率读数。


(1)ALC

ALC是一种自动调节技术,可以消除环境光线的影响。这有助于提高测量的准确性和可靠性,因为环境光可能干扰到血氧饱和度的测量。ALC有一个内部轨道/保持电路来取消环境光和增加有效的动态范围。


(2)sigma-delta ADC

连续时间sigma-delta ADC用于将模拟信号转换为数字信号,以便进行后续处理和分析。这种ADC具有高精度和低噪声的优点,能够提供高质量的数据。内部ADC是一个连续时间过采样的sigma-delta变换器,具有18位分辨率。ADC采样率为10.24MHz。ADC输出数据速率可以从50sps(每秒样本)到3200sps。


(3)离散时间滤波器

专有的离散时间滤波器用于去除噪声并提取有用的信号。这种滤波器可以有效地处理各种复杂信号,从而得到更准确的测量结果。

MAX30102芯片上还有一个温度传感器,用于校准SpO2子系统的温度依赖性。


该设备包括一个接近功能,当用户的手指不在传感器上时,可以节省电力和减少可见光发射。

MAX30102的SpO2和HR模式用于测量脉搏血氧饱和度(SpO2)和心率(HR)信号。通过使用红光和红外光的测量,该传感器可以计算出血氧饱和度和心率。这些测量数据可以在医疗、健康监测、运动健身等领域中应用。

二、测量脉搏和心率原理

1、模块构成

MAX30102有一对高强度的LED灯,一个是发射红光(波长660nm),一个是发射红外光(波长880nm),还有一个光电检测器。

2、工作原理

光电容积法(PPG)红光和红外光穿透人体组织,并使用光电探测器测量反射光量。通过光电探测器检测脉搏,利用人体组织在血管搏动时造成透光率不同来进行脉搏和血氧饱和度测量的。(将光信号转换为电信号,并将其放大和输出。)

直流信号DC反映:静脉血、组织、骨骼、肌肉

直流信号AC反映:动脉血

根据AC和DC信号,能够计算出心率和血氧。

3、心率测量

含氧血红蛋白(HbO2)具有吸收红外光的特性,血液越红,吸收的红外光就越多。当心脏跳动时,血液被泵入和泵出,其反射光的强弱会发生变化(吸收红外光的量会变化),光电探测器接收透过皮肤的光线,将其转化为电信号,产生变化的波形。通过测量这些电信号的变化,可以计算出心率。

所以,只要得到的PPG信号比较理想,就能够较为准确的算出心率。但是,由于测量时总会出现某些干扰,所以我们需要进行滤波处理。然后得到在一段时间内的波峰数量即可计算出心率。

例如:在时间T秒内,有N个波峰。

Heart rate=(N/T)*60 = 60N / T (单位:次/min)

4、血氧测量

血液中有含氧血红蛋白(HbO2)和脱氧血红蛋白(Hb),这两个血红蛋白的吸收光谱不一样。脱氧血红蛋白(Hb)吸收更多的红光,而含氧血红蛋白(HbO2)吸收更多的红外光。而MAX30102能够同时发射红光和红外光,通过光电检测器检测反射光量,可以判断出红光、红外光被吸收的多少,从而推断出含氧血红蛋白(HbO2)和脱氧血红蛋白(Hb)所占的比例。最后,可以计算出血压中的氧含量。

R = (ACred / DCred) / (ACired / DCired)

    =((ir_max+ir_min)(red_max-red_min) )/ ((red_max+red_min)(irmax-ir_min))

SpO2 = -45.060 * R * R+ 30.354 * R + 94.845 

三、引脚说明

VIN:主电源输入端。1.8v-5v。(具体看相应的MAX30102的类型)

SCL:连接I2C总线的时钟。

SDA:连接I2C总线的数据。

INT:MAX30102的中断引脚,当中断发生时,INT 引脚变为低电平并保持低电平直到中断被清除。

IRD:MAX30102的IR LED接地端,一般不接。

RD:MAX30102的RED LED接地端,一般不接。

GND:接地线。

四、FIFO

MAX30102的FIFO(先进先出)是一种存储数据的缓存区,它可以用于临时保存传感器采集到的数据。当你想要获取传感器数据时,你可以从FIFO中读取这些数据。使用MAX30102的FIFO功能可以帮助更有效地管理和处理传感器采集的数据,并确保在处理大量数据时系统的稳定运行。

(1)FIFO写指针


FIFO写指针指向MAX30102写入下一个示例的位置。每个样本的指针都向前推进到FIFO。当模式为010,011或111时,也可以通过I2C界面进行更改。


(2)FIFO溢出计数器


FIFO溢出计数器用于计算FIFO中丢失的样本数目。当FIFO满时,如果样本没有被推进到FIFO中,则会丢失样本。OVF_COUNTER在0xf时溢出。当一个完整的样本被“弹出”(即删除旧的FIFO数据,并将样本从FIFO中移除,当读取指针前进时),OVF_COUNTER会被重置为零。


(3)FIFO读指针


FIFO读指针是指向处理器通过I2C接口获取下一个样本的位置的指针。每次从FIFO中取出一个样本时,读指针会向前移动。如果有数据通信错误,处理器还可以在读取示例后写入这个指针,以允许重新读取FIFO的样本。


(4)FIFO数据寄存器


FIFO数据寄存器是一个圆形的FIFO,深度为32,可以容纳32个数据样本。样本的大小取决于被配置为活动的LED通道的数量。当每个通道信号被存储为一个3字节的数据信号时,FIFO宽度可以是3字节或6字节大小。

在I2C寄存器中,FIFO_DATA寄存器指向下一个要从FIFO中读取的样本。FIFO_RD_PTR指向这个样本。读取FIFO_DATA寄存器时,不会自动增加I2C寄存器地址。每次读取这个寄存器时,都会读取同一个地址。每个样本由每个通道的3字节数据组成(例如:3字节为红色,3字节为红外线等)。

可以对FIFO寄存器(0x04-0x07)进行写入和读取操作,但实际上只有FIFO_RD_PTR寄存器可以进行写入操作。其他寄存器会自动增加或填充MAX30102的数据。

建议在启动新的SpO2或心率转换时,首先清除FIFO_WR_PTR、OVF_COUNTER和FIFO_RD_PTR寄存器,以确保FIFO为空且处于已知状态。

当通过burst-read I2C事务读取MAX30102寄存器时,寄存器地址指针通常会递增,以便从下一个寄存器中发送下一个字节的数据。当读取FIFO_RD_PTR寄存器时,地址指针不会增加,但是FIFO_RD_PTR会增加。因此,发送的下一个字节数据表示FIFO中可用数据的下一个字节。

通过设置写入和读取指针,可以清除FIFO中的输入和退出接近模式(当pro_int_en = 1)。


(5)阅读(Read)的先进先出

FIFO数据是左对齐的,无论ADC分辨率设置如何,MSB位始终处于位17的数据位置。

通常情况下,通过I2C接口读取寄存器会自动增加寄存器地址指针,这样可以在没有I2C启动事件的情况下读取所有寄存器,除了FIFO_DATA寄存器。读取FIFO_DATA寄存器时,不会自动增加寄存器地址,而是从同一个地址反复读取数据。
每个示例包含多个字节的数据,因此应该在同一个事务中从FIFO_DATA寄存器读取多个字节,以获得完整的示例。
另一个异常是0xFF寄存器,读取0xFF寄存器之后的更多字节不会将地址指针提前到0x00,并且读取的数据没有意义。
先进先出(FIFO)数据结构由一个32个样本存储库组成,可以存储IR和红色ADC数据。
每个样本由两个数据通道组成,每个样本有6个字节的数据,因此可以在FIFO中存储192个字节的数据。


(6)先进先出的数据结构

数据FIFO由一个32个样本存储库组成,可以存储IR和红色ADC数据。由于每个样本由两个数据通道组成,每个样本有6个字节的数据,因此可以将192个字节的数据存储在FIFO中。

FIFO数据是左对齐的,这意味着无论ADC分辨率设置如何,MSB总是位于相同的位置。不使用FIFO数据[18]-[23]。
 

(7)FIFO数据

FIFO数据包含每个通道3个字节。

FIFO数据的[18]-[23]位不使用。每个数据样本包括两个数据三胞胎,每个三胞胎包含3个字节。为了读取一个样本,需要进行6次I2C字节读取。

在读取每个样本的第一个字节后,FIFO读指针会自动递增。写/读指针用于控制FIFO中的数据流。

每次添加新示例时,写指针增加;每次读取一个样本时,读取指针递增。

要重读FIFO中的一个示例,需要将读取指针的值递减1,并再次读取数据寄存器。

在输入SpO2模式或HR模式时,应该清除FIFO写/读指针,将其回到0x00,以确保FIFO中没有显示旧数据。如果VDD是动力循环或低于其UVLO电压,指针会自动清除。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/452605
推荐阅读
相关标签
  

闽ICP备14008679号