一站式电子元器件采购平台

华强商城公众号

一站式电子元器件采购平台

元器件移动商城,随时随地采购

华强商城M站

元器件移动商城,随时随地采购

半导体行业观察第一站!

芯八哥公众号

半导体行业观察第一站!

专注电子产业链,坚持深度原创

华强微电子公众号

专注电子产业链,
坚持深度原创

电子元器件原材料采购信息平台

华强电子网公众号

电子元器件原材料采购
信息平台

基于时间相关的心电和PPG测量芯片| Maxim集成

来源:analog 发布时间:2023-09-13

摘要: 脉搏到达时间(PAT)是一个有用的医学参数,它可以与动脉硬度和血压变化等物理属性相关联。准确的PAT测量需要心电图(ECG)和光电容积脉搏波(PPG)数据之间良好的时间相关性。本应用报告介绍了一种使用MAX30003 ECG前端和MAX86171 PPG光脉冲血氧仪的双芯片解决方案。

为了使用同步心电图(ECG)和光容积脉搏波(PPG)测量准确测量脉冲到达时间(PAT),本应用说明中描述的双芯片解决方案在ECG和PPG信号之间建立±5µs的时间相关性。本文讨论了硬件配置和允许两个芯片同步获取数据的详细寄存器配置设置。还详细介绍了如何调整ECG和PPG数据样本之间的时间采样偏移,相对于所选的ECG滤波器组延迟和PPG沉降和集成时间。

该双芯片解决方案使用MAX30003作为ECG前端(AFE), MAX86171光学获取PPG信号。也可以使用MAX30001。

系统概述

图1如图所示,PAT测量系统由一个32,768Hz的晶体输入到MAX30003 ECG AFE,一个MAX86171 PPG,由MAX30003同步输出脉冲触发采样,以及一个微型计算机单元(MCU)配置寄存器并通过3线SPI从fifo读取数据。


图1所示 PAT测量系统。

为了实现系统时间同步,配置MAX30003中断寄存器,在每个ECG样本放入其数据FIFO后产生同步脉冲。MAX86171唤醒每个心电同步脉冲并采集采样。在PPG完成测量并设置其FIFO中断后,MCU通过SPI读取ECG和PPG FIFO数据寄存器。以MAX30003 ECG选择的采样率重复此过程。

图2显示系统定时。尽管MAX86171内部时序由其内部快速(10MHz)和慢速(32kHz)时钟信号驱动,但每次同步脉冲唤醒设备时,这些时钟都会系统地复位。心电同步输出信号与PPG时钟系统之间的1 西格马时钟抖动测量值小于300ns。


图2 系统时间。

硬件配置

单个同步信号和共享的3线SPI信号连接ECG和PPG设备。每个设备也有自己的SPI芯片选择信号从MCU和FIFO准备信号连接到MCU。MAX30003 FIFO中断信号使用INTB,同步输出信号设置在INTB2上。将同步脉冲连接到MCU可能很有用,这取决于您如何设置固件。MAX86171的同步信号连接到其TRIG输入端,FIFO中断信号设置在INT1上。

MAX86171还通过拉高I2C_SPI引脚来配置SPI通信。对于本应用笔记的范围,单个LED由LED1_DRV驱动,光电二极管连接到PD1_IN。也可以使用不同的LED和光电二极管配置,但需要与这里使用的设置不同的寄存器配置设置。参考MAX30003和MAX86171数据表的应用特定的电容值。图3显示硬件配置,但电源去耦帽未显示在电路中。


图3 硬件配置。

心电图

MAX30003是一个单生物电位通道,提供ECG波形并检测心率。

MAX30003 ECG AFE可配置不同的采样频率、信号增益、数字高通和低通滤波器角频率以及输入阻抗。对于此应用笔记,已选择以下参数:

  • 采样率= 512sps

  • 增益= 20V/V

  • 数字高通滤波器(DHPF) =旁路

  • 数字低通滤波器(DLPF) =旁路

  • 输入阻抗(R(BIAS)) = 100MO

为简便起见,导通和导断检测也被禁用。

心电图测量注意事项

在同步数据采集系统中使用MAX30003 ECG AFE时,最重要的考虑因素是了解数字滤波器组延迟如何影响放置在ECG FIFO中的每个数据样本相关的时间延迟。中列出的每个不同采样率表1,数字滤波器组延迟是32kHz时钟周期的设定数。32kHz时钟周期的数量也取决于DHPF是活动的还是处于旁路模式。根据所选择的时钟,当FMSTR时钟配置为32,768Hz或32,000Hz时,还存在与ADC采样相关的1.003ms或1.020ms的系统延迟。

表1列出了计算得到的心电样本延迟(t(ECG_DELAY))。这些延迟是指同步脉冲的下降沿,它发生在ECG样本放入FIFO后(30µs)和ECG FIFO标志设置之前(15µs)。实际上,这些延迟的测量标准偏差为3µs。

表1 心电采样延时(t(ECG_DELAY))

DLPF设置FMSTR时钟= 32000HzFMSTR时钟= 32768Hz
500sps延时(ms)250年sps
延迟(女士)
200年sps
延迟(女士)
125年sps
延迟(女士)
512年sps
延迟(女士)
256年sps
延迟(女士)
204.8 sp
延迟(女士)
128年sps
延迟(女士)
绕过21.33392.33339.833106.33320.83990.17238.906103.844
40赫兹33.333116.33369.833154.33332.558113.61068.203150.719
100赫兹33.333116.333XX32.558113.610XX
150赫兹33.333XXX32.558XXX

X =不允许设置。

表1中的心电图延时值是通过产生输入脉冲,然后查看输出数据来确定和验证的。为了获得高于采样率的测量精度,可以产生多组脉冲,这些脉冲相对于心电同步脉冲有额外的5µs延迟。利用这些数据,以5µs的时间步长构造一组输出数据,计算从输入脉冲中心到输出脉冲中心的时间。这可以在每个配置中的几个脉冲宽度中完成。对于所有ECG配置,不同脉宽测量延迟的标准差小于5µs。

表2显示了当DLPF设置为旁路时,ECG采样率为512sps的数据。将输入脉冲中心到输出脉冲中心的数据取平均值,得到平均延迟为20.839ms,标准差为4.1µs。

表2 心电脉冲延迟测量数据

输入脉冲宽度(µs)输入-脉冲中心到输出-脉冲中心延时(ms)
One hundred.20.835
50020.834
100020.835
195320.842
390620.843
585920.844
781220.843
976520.842
1562420.837

心电寄存器配置

表3列出要配置的MAX30003寄存器,以设置ECG以生成与MAX86171同步操作的信令。任何未列出的寄存器都假定在软件复位后处于默认状态。

如果寄存器的状态未知,则在配置寄存器之前发送软件复位。对于MAX30003,写0x000000来注册0x08 (SW_RST)。

为了开始心电数据采样,在配置PPG后必须发送三个寄存器命令。请参阅启动顺序部分了解更多详细信息。

表3 心电寄存器配置

地址数据配置描述
0 x020 x800001EN_EINT = 1b设置INTB为EINT (ECG FIFO中断)
INTB_TYPE = 01bCMOS司机
0 x030 x000201SAMP = 1b设置INTB2为“同步脉冲输出”。
INTB2_TYPE = 01bCMOS司机
0 x040 x000000;EFIT = 0000bFIFO中断时,一个字在FIFO
SAMP_IT = 00b为每个数据样本生成一个同步脉冲
0 x100 x000007FMSTR = 00b主时钟频率设置为32768Hz
EN_ECG = 0b禁用ECG(此位在设置时启动ECG采样)
RBIASV = 1bR(偏置)= 100mo
RBIASP = 1bECGP通过R(BIAS)连接到V(MID)
RBIASN = 1bECGN通过R(BIAS)连接到V(MID)
0 x140 x000000OPENP = 0b关闭ECGP多路复用开关
OPENN = 0b闭合ECGN复用开关

0 x15 *

0 x000000RATE** = 00b512sps采样
增益= 00b增益设置为20V/V
DHPF = 0b数字高通滤波器设置为旁路
DLPF = 00b数字低通滤波器设置为旁路

*寄存器0x15的设置取决于采样率,增益和选择的滤波器设置。
** MAX30001使用位ECG_RATE[1:0], MAX30003使用位RATE[1:0]。

MAX86171光学脉搏血氧仪是一种超低功耗、双通道、光学数据采集系统,具有9个LED驱动输出。此外,两个独立的19.5位adc利用内部环境光抵消电路,非常适合测量PPG。

在本应用笔记中,MAX86171配置为每次在TRIG输入引脚处发生下降沿时采样。当处于外部触发模式时,MAX86171测量电路处于休眠模式,直到接收到触发输入。当触发发生时,设备唤醒,进行测量,将数据放入FIFO,产生中断,然后返回睡眠状态。

MAX86171测量电路在通过SPI通信时不需要唤醒。

PPG测量注意事项

MAX86171 PPG配置为在ECG产生每个同步脉冲后唤醒并采集样本。随机时钟抖动发生在ECG和PPG之间,因为PPG的内部时钟与驱动ECG的32,768Hz晶体异步运行。经测量,ECG和PPG之间的时钟抖动小于±0.3µs。时钟抖动系统地与心电同步脉冲触发PPG唤醒后PPG 10MHz快速时钟的启动有关,通常小于两个PPG快速时钟周期或0.2µs。

在中心差分模式(CDM)中,PPG在LED测量前后立即读取环境背景光。这两个环境光测量值的平均值从LED测量值中减去。

PPG预期时间延迟(t(PPG_DELAY))是心电同步触发脉冲下降沿与LED积分时间中心之间的时间。PPG内部时钟的最大精度误差小于1%。因此,如果最大t(PPG_DELAY)为526µs,则最大精度误差为5.26µs。实际误差因设备而异,如果需要,可以使用FR_Clock_Frequency_Select (0x15)寄存器设置测量和修正为0.2%的精度。当适当调整时,最长积分设置期间的最大误差小于1.1µs。图4显示t(PPG_DELAY)计时。


图4 tPPG_DELAY时机。

表4显示了LED沉淀和LED集成时间的每种可能组合的tPPG_DELAY。时间根据内部PPG状态机测量所需的内部快慢时钟周期数,时钟精度假设为0%误差。在这个应用笔记中,只使用了测量1的寄存器,脉冲宽度是由MEAS1配置寄存器设置的稳定时间和积分时间的总和。寄存器(0x19) MEAS1_Configuration_1用于配置集成时间(MEAS1_TINT),寄存器(0x1B) MEAS1_Configuration_3用于配置沉淀时间(MEAS1_LED_SETLNG)。

表4。PPG期望时延(t(PPG_DELAY))

测量1配置寄存器设置沉降时间(µs)积分时间(µs)脉冲宽度(µs)tPPG_Delay(µs)
(0x1B) Meas1配置信息(0x19) Meas1配置信息
0 x000 x00614.620.6354
0 x00(629.235.2377
0 x000 x10658.664.6420
0 x000 x186117.1123.1508
0×500 x001214.626.6360
0×50(1229.241.2383
0×500 x101258.670.6426
0×500 x1812117.1129.1514
0 xa00 x001814.632.6366
0 xa0(1829.247.2388
0 xa00 x101858.676.6432
0 xa00 x1818117.1135.1520
0 xf00 x002414.638.6372
0 xf0(2429.253.2364
0 xf00 x102458.682.6438
0 xf00 x1824117.1141.1526

PPG寄存器配置

表5列出要配置的MAX86171寄存器,以正确地从MAX86171到MAX30003同步脉冲,具有最小的ecg到ppg采样时间抖动。任何未列出的寄存器都假定在软件复位后处于默认状态。

如果寄存器的状态未知,在配置寄存器之前发送一个软件复位,将0x01写入寄存器0x0C(系统配置)。

表5所示。PPG寄存器配置

地址数据配置描述
0 x090 xffFIFO_A_FULL = 0xFF当FIFO中有一个字节时,设置为FIFO满标志
0 x0a0 x18FLUSH_FIFO = 1b重置PPG FIFO
FIFO_STAT_CLR = 1b在FIFO数据读取上清除FIFO满标志
0 x0c

与0xCF
然后

或0x1A
使用0xCF清除SYNC_MODE,让所有其他位保持先前的状态,然后设置以下位。
SYNC_MODE = 01b外部脉冲同步
PPG2_PWRDN = 1b下电光通道2
SHDN = 1b将PPG设置为关机模式
0 x0d0 x01MEAS1_EN = 1b启用测量1
0 x0e0 x00ALC_Disable = 0bALC(环境光校正)已启用
COLLECT_RAW_DATA = 0b不收集暗电流
MEAS1_CONFIG_SEL = 0bMEAS1仅用于MEAS1,不用于通过MEAS9的MEAS2
0 x0f0 x55PD4_BIAS = 01b
PD3_BIAS = 01b
PD2_BIAS = 01b
PD1_BIAS = 01b
设置所有光电二极管偏置范围为0pF至125pF (POR默认值)
0 x100 x00INT2_FCFG = 00b禁用INT2
TRIG_ICFG = 0b设置三角输入触发器在下降沿
0 x110 x04INT2_OCFG = 00b设置INT2输出为开漏
INT1_OCFG = 10bINT1输出设置为Active Low,不活动时设置为Drive High
0连接0 x20FR_CLK_SEL = 1b设置内部帧时钟为32768Hz
FR_CLK_FINE_TUNE = 00000b将时钟修剪设置为0%
0 x180 x10MEAS1_AMB = 0b关闭环境测量
MEAS1_DRVC = 01b“LED驱动器C”选择“LED3_DRV引脚”
MEAS1_DRVB = 00bLED驱动器B选择LED2_DRV引脚
MEAS1_DRVA = 00b“LED驱动器A”选择“LED1_DRV引脚”
0 x190 x00MEAS1_PPG2_PDSEL = 0b设置光通道2的PD2_IN输入
MEAS1_PPG1_PDSEL = 0b设置1光通道的PD1_IN输入
MEAS1_TINT = 00b测量1的积分时间设置为14.6µs
MEAS1_AVER = 000b将测量1平均值设置为一个样本(不取平均值)
0 x1a0 x0fMEAS1_SINC3_SEL = 0b使用COI3抽取滤波器。关闭SINC3过滤器。
MEAS1_FILT_SEL = 0b设置环境光抑制为中心差值法
MEAS1_LED_RGE = 00b设置LED电流范围为0mA至32mA
MEAS1_PPG2_ADC_RGE = 11b将PD2范围设置为32µA满量程
MEAS1_PPG1_ADC_RGE = 11b将PD1量程设置为32µA满量程
0 x1b0×50MEAS1_PD_SETLNG = 01b设置12µs光电二极管的沉淀时间
MEAS1_LED_SETLNG = 01b设置12µs LED沉淀时间
PPG2_DACOFF = 00bPPG2 DAC偏置电流设为0
PPG1_DACOFF = 00bPPG1 DAC偏置电流设为0
0 x1c0 x20MEAS1_DRVA_PA = 0x20设置驱动A电流为4mA
0 x1d0 x00MEAS1_DRVB_PA = 0x00设置驱动器B电流为0mA
0 x1e0 x00MEAS1_DRVC_PA = 0x00设置驱动器C电流为0mA
0 x780 x80A_FULL_EN1 = 1b使能在INT1上输出A_FULL_EN状态位。当断言A_FULL_BIT时,激活INT1。

启动顺序

配置MAX30003和MAX86171进行同步数据采集后,每次系统开始数据采集时,请执行以下步骤,以确保心电和PPG数据集的时间相关性良好:

  1. 重置PPG FIFO。

  2. 关闭PPG模式。PPG配置为每次从ECG接收同步脉冲时采样,并等待第一个ECG同步脉冲发生。

  3. 在启动心电图之前,请执行以下操作:

    1. 向SYNCH (0x09)寄存器发送ECG SYNCH命令,重新同步所有ECG内部定时。

    2. 向fif_rst (0x0A)寄存器发送复位命令,复位ECG FIFO。

  4. 在ECG CNFG_GEN (0x10)寄存器中设置ECG_EN位。在设置此位之后,ECG立即以CNFG_ECG (0x15)寄存器中设置的数据速率开始采样。

PPG公司

启动心电图前,请使用表6设置每个心电同步脉冲后的PPG采样。

表6所示。PPG启动注册命令序列

地址数据评论
0 x0a或与0x10设置FLUSH_FIFO = 1b重置PPG FIFO。
0 x0c与0xFD清除SHDN位以使PPG退出关闭模式。

心电图的启动

发送PPG启动命令后,使用中的命令启动心电采样表7. 这些命令必须按照列出的顺序执行。

表7所示。心电启动注册命令序列

地址数据评论
0 x090 x000000内部时钟同步命令。
0 x0a0 x000000复位FIFO命令。
0 x10或0x080000EN_ECG = 1b使能心电采样。

当启动时,系统以选定的心电采样率连续采集数据,直到心电CNFG_GEN (0x10)寄存器中的EN_ECG位被清除。

数据收集和时间相关性

在系统持续采集数据的同时,将每对数据放入各自的FIFO后,需要读取ECG和PPG FIFO。重要的是,在PPG完成测量之前,不能读取ECG数据FIFO,因为PPG光电二极管产生的小电流信号很容易受到SPI线上的切换转换的影响。PPG FIFO就绪中断在PPG完成测量后立即变低。如果在每次测量后不读取数据,则很难管理fifo中多个样品的检测,也很难保证在PPG测量期间没有SPI活动。

根据延迟时间调整ECG和PPG数据对,以进行有意义的脉冲到达时间(PAT)测量。在给定时间t(SYNCH)的心电同步脉冲后读取的心电数据样本表示时间t(ECG)的心电测量值。t(ECG)为同步脉冲前的心电测量时间,表示为t(ECG) = t(SYNCH) - t(ECG_DELAY)。同一心电同步脉冲后读取的PPG数据样本表示时刻t(PPG)的PPG测量值。t(PPG)为同步脉冲下降沿后的测量时间,表示为t(PPG) = t(SYNCH) + t(PPG_DELAY)。

图5示t(ECG)与t(PPG)的关系。


图5 数据对延时定时。

用t(PPG)减去t(ECG),得到ECG与PPG数据对的时间差:

t(PPG) - t(ECG) = t(PPG_DELAY) + t(ECG_DELAY)

这是表1和表4中定义的ECG和PPG延迟的总和。

为了使ECG和PPG数据对时间相关,从每次测量后的fifo中读取时间t(SAMPLE)。假设ECG时间戳等于t(SAMPLE)。为了确定PPG时间戳,将t(SAMPLE)和延时总和相加。

选择
t(ECG) = t(SAMPLE)

然后
t(PPG) = t(SAMPLE) + t(PPG_DELAY) + t(ECG_DELAY)
对于给定的心电PPG数据对。

将原始ECG数据转换为ECG毫伏

从ECG FIFO读取的每个ECG样本字由3个数据字节组成。低6位包含标签,可以用来验证数据的质量。假设将3个数据字节的字读入一个名为data的3字节字符数组中,最高位字节在data[0]中,最低位字节在data[2]中,可以使用以下C代码将原始数据字转换为ADC计数:

Data [2] = Data [2]>>6;//将数据右移6位以移除数据标签
ADC_count = data[0] × 1024 + data[1] × 4 + data[2];
If (ADC_count >131072) ADC_count = ADC_count - 262144;// 2的补码

要将ADC计数转换为毫伏,请使用以下公式:
ECG_mv = 1000 × ADC_count / (2(17) ×增益)
其中Gain是由寄存器0x15选择的20V/V、40V/V、80V/V或160V/V的ECG增益。
有关ECG数据字格式的更多详细信息,请参阅MAX30003数据表。

转换原始PPG数据字到PPG计数

从PPG FIFO读取的每个PPG样本字由3个数据字节组成。最高有效字节的上5位包含自动测距信息,并在转换为计数之前用零掩码。假设将3字节的原始数据字读入一个名为data的3字节字符数组中,最高位字节在data[0]中,最低位字节在data[2]中,可以使用下面一行C代码将3字节的原始数据字转换为PPG计数:

PPG_count = (data[0]&0x07) × 65536 + data[1] × 256 + data[2];

PPG_count与在LED集成时间内由PPG器件从LED收集的光量成正比。计数的绝对大小取决于许多变量,没有绝对参考。

由于PPG数据通常以大约1Hz的交流信号在一个大的、缓慢移动的(0.2Hz)背景信号上恢复,因此PPG数据通常在删除背景信号的情况下显示。去除背景信号最简单的方法是从PPG信号的一秒运行平均值中减去样本n的PPG信号值。运行平均值以样本n为中心(即平均值从样本n之前的0.5秒到样本n之后的0.5秒)。

有关PPG数据字格式的更多详细信息,请参阅MAX86171数据表。

PAT数据相关示例

表8显示一个原始数据对样本的示例,以及每个数据样本对应的经过时间校正的相关性。校正假设心电采样频率为512sps,绕过DLPF, PPG设置为24µs-沉淀时间和117µs-积分时间。这些设置需要调整20.839ms的ECG-delay和526µs的PPG-delay,因此总的ecg - ppg偏移量为21.365ms,计算如下:

t(PPG_DELAY) + t(ECG_DELAY) = 0.526ms + 20.839ms = 21.365ms

以512sps采样的数据导致连续采样间隔1.953125ms。如表8所示,每对数据对的PPG样本的采样时间为心电时间后21.365ms。心电时间设为n × 1.953125ms,其中n为样本指数。

表8所示。PAT数据-样本对时间相关示例

原始数据对时间校正数据对
样本n心电图计数分重要的心电图
时间(女士)计数时间(女士)计数
0-308年3055130.0000-308年21.3650305513
1-230年3055601.9531-230年23.3181305560
2-94年3055423.9063-94年25.2713305542
3.383055545.85943827.2244305554
42363055617.812523629.1775305561
54623055679.765646231.1306305567
660630558811.718860633.0838305588
780030559213.671980035.0369305592
8110130559915.6250110136.9900305599
9135830559417.5781135838.9431305594
10162130558919.5313162140.8963305589
11197130558321.4844197142.8494305583
12225530561923.4375225544.8025305619
13232230562225.3906232246.7556305622
14214330563627.3438214348.7088305636
15178030565129.2969178050.6619305651
16127030564731.2500127052.6150305647
1754330564533.203154354.5681305645
18-273年30565235.1563-273年56.5213305652
19-872年30563537.1094-872年58.4744305635
20.-1201年30566039.0625-1201年60.4275305660

结论

在测试对象的真实解决方案中,图6显示了放置在胸部的湿ECG电极的实际数据,以测量铅II和PPG数据,取自左手的手指。ECG计数已转换为毫伏,并且PPG计数已经过高通滤波,通过从一秒宽的运行平均值中减去每个PPG样本来去除信号的直流分量。


图6 心电图与PPG相关数据图。

有许多不同的方法来计算PAT,因此读者必须决定哪种方法最能满足他们的需要。本应用说明显示硬件和寄存器配置,以获得ECG和PPG数据,通常时间相关的标准偏差小于5µs。

声明:本文观点仅代表作者本人,不代表华强商城的观点和立场。如有侵权或者其他问题,请联系本站修改或删除。

社群二维码

关注“华强商城“微信公众号

调查问卷

请问您是:

您希望看到什么内容: