Решение Maxim для измерения ЭКГ и ФПГ с временной корреляцией

15 мая

медицинапотребительская электроникаMaxim Integratedстатьяинтегральные микросхемыдатчикисредства разработки и материалыАЦП/ЦАПЭКГФПГOptical Pulse Oximeter

Время прихода импульса (Pulse Arrival Time, ВПИ) – важный медицинский параметр, который может служить показателем артериосклероза и изменения кровяного давления. Для точных измерений ВПИ необходима хорошая временная корреляция между данными электрокардиографии (ECG, ЭКГ) и фотоплетизмографии (Photoplethysmography, ФПГ). В статье представлено решение на базе двух микросхем Maxim – аналогового интерфейса с ЭКГ MAX30003 и оптического пульсоксиметра MAX86171.

Решение на базе двух микросхем для измерения ВПИ, описанное в данной статье, обеспечивает временную корреляцию между измерениями ЭКГ и ФПГ порядка ±5 мкс. В статье обсуждаются аппаратная конфигурация устройства и значения контрольных регистров, позволяющие двум микросхемам собирать данные синхронно. Также подробно рассмотрены вопросы регулировки сдвига временной корреляции между данными ЭКГ и ФПГ для выбранной групповой задержки фильтра ЭКГ и времени установки и интеграции ФПГ.

В решении на базе двух микросхем используется MAX30003 в качестве аналогового интерфейса с ЭКГ (AFE), и MAX86171 для получения оптического сигнала ФПГ. Также возможно использование микросхемы MAX30001.

Обзор системы

На рисунке 1 показана система для измерения ВПИ, которая состоит из осциллятора частотой 32,768 Гц, тактирующего MAX30003 ЭКГ AFE, MAX86171 ФПГ, сбор данных которого синхронизируется выходным импульсом MAX30003, и микроконтроллера (МК) для конфигурации регистров и чтения данных из памяти FIFO с помощью трехпроводного интерфейса SPI.

Рис. 1. Система для измерения ВПИ

Рис. 1. Система для измерения ВПИ

Для достижения временной синхронизации системы необходимо сконфигурировать регистры прерываний MAX30003 таким образом, чтобы синхроимпульс генерировался после каждой записи выборки ЭКГ в буфер FIFO. При получении синхроимпульса ЭКГ MAX86171 выходит из режима ожидания и производит сбор данных. После того как ФПГ завершает цикл сбора данных и генерирует прерывание FIFO, МК читает регистры данных ЭКГ и ФПГ через интерфейс SPI. Этот процесс повторяется с частотой оцифровки, установленной для MAX30003 ЭКГ.

На рисунке 2 показана временная диаграмма системы. Несмотря на то, что в MAX86171 используются внутренние тактовые генераторы – быстрый на 10 МГц и медленный на 32 кГц, – эти тактовые генераторы периодически сбрасываются после получения сигнала выхода из режима ожидания. Среднеквадратичное отклонение между выходным синхросигналом ЭКГ и тактовым сигналом ФПГ оценивается менее 300 нс.

Рис. 2. Временная диаграмма системы

Рис. 2. Временная диаграмма системы

Единичный синхросигнал и совместно используемая трехпроводная шина SPI объединяет устройства ЭКГ и ФПГ. Каждое устройство также имеет свой собственный сигнал активации на шине SPI от МК и сигнал готовности FIFO, подключенный к МК. Сигнал прерывания FIFO MAX30003 подключен к INTB, а выходной синхросигнал – к INTB2. Подключение синхросигнала к МК может быть полезным в зависимости от конфигурации программного обеспечения. Синхросигнал подключается к входу TRIG микросхемы MAX86171, а сигнал прерывания FIFO подключен к INT1.

MAX86171 сконфигурирован для обмена данными через интерфейс SPI путем установки линии I2C_SPI в единичное значение. В данном решении единичный светодиод управляется линией LED1_DRV, а фотодиод подключен ко входу PD1_IN. Возможны другие схемы подключения светодиода и фотодиода, но они требуют настроек конфигурационных регистров, отличных от рассматриваемых в этой статье. В спецификациях на MAX30003 и MAX86171 приведены величины емкостей для различных приложений. На рисунке 3 показана аппаратная конфигурация, но в цепи не показаны развязывающие конденсаторы по питанию.

Рис. 3. Аппаратная конфигурация

Рис. 3. Аппаратная конфигурация

ЭКГ

MAX30003 – одноканальный измеритель биопотенциала, который обеспечивает выдачу электрокардиограмм и замер пульса.

В MAX30003 ЭКГ AFE можно конфигурировать такие рабочие параметры как частота оцифровки, коэффициент усиления сигнала, частоты среза цифровых фильтров высоких и низких частот, входной импеданс. Для примера, описанного в данной статье, используются следующие параметры:

  • частота оцифровки 512 выборок в секунду (далее по тексту – sps);
  • коэффициент усиления 20 В/В;
  • цифровой фильтр верхних частот (ФВЧ) не используется;
  • цифровой фильтр нижних частот (ФНЧ) не используется;
  • входной импеданс RBIAS 100 МОм.

Детектирование плохого электрического контакта электрода также отключено для простоты эксперимента.

Основы измерений ЭКГ

Самым важным фактором при использовании MAX30003 ЭКГ AFE в синхронизированных системах сбора данных является понимание того, как цифровая групповая задержка фильтров влияет на временную задержку соответствующей выборки данных, помещенной в память FIFO ЭКГ. Для каждой частоты оцифровки, указанной в таблице 1, цифровая групповая задержка фильтров определяется как целое число циклов с частотой 32 кГц. Количество циклов 32 кГц также различается для режимов активного использования ФВЧ и для режимов, где этот фильтр не используется. В зависимости от выбранного источника тактовой частоты добавляется и систематическая задержка 1,003 мс или 1,020 мс, связанная с оцифровкой АЦП, когда источник тактовой частоты FMSTR настроен на 32768 Гц или 32000 Гц соответственно.

В таблице 1 показаны расчетные задержки оцифровки ЭКГ (tECG_DELAY). Эти задержки рассчитываются относительно спада синхронизирующего импульса, который генерируется сразу после того как выборка ЭКГ скопирована в FIFO (30 мкс) и перед установкой флага ECG FIFO (15 мкс). При практических измерениях стандартное отклонение этих задержек составляет примерно 3 мкс.

Таблица 1 Задержки оцифровки ЭКГ (tECG_DELAY)

Настройки ФНЧ Тактовая частота 32000 Гц Тактовая частота 32768 Гц
Задержка 500 sps, мс Задержка 250 sps, мс Задержка 200 sps, мс Задержка 125 sps, мс Задержка 512 sps, мс Задержка 256 sps, мс Задержка 204,8 sps, мс Задержка 128 sps, мс
Не используется 21,333 92,333 39,833 106,333 20,839 90,172 38,906 103,844
40 Гц 33,333 116,333 69,833 154,333 32,558 113,61 68,203 150,719
100 Гц 33,333 116,333 Настройка не разрешена Настройка не разрешена 32,558 113,61 Настройка не разрешена Настройка не разрешена
150 Гц 33,333 Настройка не разрешена Настройка не разрешена Настройка не разрешена 32,558 Настройка не разрешена Настройка не разрешена Настройка не разрешена

Величины временных задержек ЭКГ из таблицы 1 были определены и проверены путем генерации входного импульса и последующего наблюдения за выходными данными. Для получения более высокой, чем частота оцифровки, точности измерений генерируются группы импульсов с дополнительной задержкой 5 мкс относительно синхронизирующего импульса ЭКГ. Используя эти данные, собирают набор выходных данных с временным шагом 5 мкс для вычисления времени от центра входного импульса до центра выходного импульса. Это может быть сделано для нескольких величин ширины импульса в каждой конфигурации. Стандартное отклонение задержки для различных измерений ширины импульса меньше 5 мкс характерно для всех конфигураций ЭКГ.

В таблице 2 приведены данные частоты оцифровки ЭКГ 512 выборок в секунду (sps) c опцией неиспользования ФНЧ. Значения временных интервалов от центра входного импульса до центра выходного импульса усреднены для получения средней задержки 20,839 мс со стандартным отклонением 4,1 мкс.

Таблица 2. Данные измерения задержки импульса ЭКГ

Ширина входного импульса, мкс Задержка от центра входного импульса до центра выходного импульса, мс
100 20,835
500 20,834
1000 20,835
1953 20,842
3906 20,843
5859 20,44
7812 20,843
9765 20,842
15624 20,837

Конфигурация регистров ЭКГ

В таблице 3 показаны настройки регистров MAX30003 для генерации сигналов, необходимых для синхронной работы с MAX86171. Регистры, которые не указаны в таблице 3, принимают значения по умолчанию после программного сброса системы.

Если состояние регистров неизвестно, необходимо произвести программный сброс до начала конфигурации. Для MAX30003 необходимо записать 0х000000 в регистр 0х08 (SW_RST).

Для того чтобы начать сбор данных ЭКГ, необходимо отправить три команды конфигурации регистров после завершения конфигурации ФПГ. Более подробно об этом рассказано в разделе «Последовательность включения».

Таблица 3. Конфигурация регистров ЭКГ

Адрес Данные Конфигурация Описание
0x02 0x800001 EN_EINT = 1b Установка INTB в EINT (прерывание ECG FIFO)
INTB_TYPE = 01b Драйвер CMOS
0x03 0x000201 SAMP = 1b Установка INTB2 на выходной синхроимпульс
INTB2_TYPE = 01b Драйвер CMOS
0x04 0x000000; EFIT = 0000b Генерация прерывания FIFO, когда в  FIFO одно слово
SAMP_IT = 00b Генерация синхроимпульса для каждой выборки данных
0x10 0x000007 FMSTR = 00b Основная тактовая частота 32768 Гц
EN_ECG = 0b Отключение ЭКГ (установка этого бита начинает сбор данных ЭКГ
RBIASV = 1b RBIAS = 100 МОм
RBIASP = 1b ECGP подключен к VMID через RBIAS
RBIASN = 1b ECGN подключен к VMID через RBIAS
0x14 0x000000 OPENP = 0b Замкнуть переключатель мультиплексора ECGP
OPENN = 0b Замкнуть переключатель мультиплексора ECGN
0x15* 0x000000 RATE** = 00b Оцифровка со скоростью 512 выборок в секунду
GAIN = 00b Коэффициент усиления установлен 20 В/В
DHPF = 0b Цифровой ФВЧ отключен
DLPF = 00b цифровой ФНЧ отключен
* – установки регистра 0х15 различны, в зависимости от скорости оцифровки, коэффициента усиления и настроек фильтров.
** – MAX30001 использует биты ECG_RATE[1:0] и MAX30003 использует биты RATE[1:0] для этой конфигурации.

ФПГ

MAX86171 – это двухканальный оптический пульсоксиметр с ультрамалым энергопотреблением и оптической системой сбора данных, содержащей девять светодиодов. Дополнительно используются два независимых 19,5-битных АЦП для компенсации света окружающей среды, что значительно улучшает характеристики измерений ФПГ.

В рассматриваемом примере MAX86171 сконфигурирован на обработку данных при каждом спаде входного сигнала TRIG. В режиме синхронизации от внешнего источника измерительные цепи MX86171 находятся в состоянии ожидания до момента активации триггера. При срабатывании триггера устройство переходит в активный режим, проводит измерение, копирует данные в память FIFO, генерирует прерывание и снова переходит в режим ожидания.

Измерительные цепи MAX86171 остаются неактивными при обмене данными через интерфейс SPI.

Основы измерений ФПГ

MAX86171 сконфигурирован на переход в активный режим и сбор данных после получения каждого синхроимпульса от ЭКГ. При этом возникает случайное дрожание (джиттер) частот ЭКГ и ФПГ, так как внутренний генератор частоты ФПГ асинхронен тактовому генератору ЭКГ, вырабатывающему 32768 Гц. Измерения показали, что дрожание между частотами ЭКГ и ФПГ составляет меньше ±0,3 мкс. Джиттер влияет на запуск внутреннего быстрого генератора ФПГ 10 МГц после получения синхроимпульса от ЭКГ и обычно меньше, чем два периода быстрого генератора ФПГ, или 0,2 мкс.

В центральном дифференциальном режиме (CDM) ФПГ считывает данные об освещенности окружающей среды непосредственно до и после измерения с помощью светодиодов. Среднее значение этих двух измерений вычитается из замера, полученного с помощью светодиодов.

Ожидаемое время задержки ФПГ (tPPG_DELAY) – это время между спадом синхроимпульса ЭКГ и центром времени интеграции светодиода. Внутренние тактовые генераторы ФПГ имеют погрешность менее 1%. Таким образом, если максимальная задержка tPPG_DELAY равна 526 мкс, максимальная погрешность составляет 5,26 мкс. Фактическая ошибка варьируется в зависимости от устройства, и при необходимости может быть измерена и скорректирована до 0,2% с помощью настройки регистра FR_Clock_Frequency_Select (0x15). При правильной настройке максимальная ошибка для самого длинного отрезка времени интеграции составляет менее 1,1 мкс. На рисунке 4 показана временная диаграмма для tPPG_DELAY.

Рис. 4. Временная диаграмма для tPPG_DELAY

Рис. 4. Временная диаграмма для tPPG_DELAY

В таблице 4 показаны задержки tPPG_DELAY для всех возможных комбинаций времен установки и интегрирования светодиода. Времена выбраны, исходя из числа быстрого и медленного тактов внутренних генераторов, необходимых для измерения с помощью конечного автомата ФПГ, при этом предполагается отклонение тактового сигнала 0%. В примере этой статьи используется только измерение 1, и ширина импульса равна сумме времен установки и интегрирования, установленных с помощью конфигурационного регистра MEAS1. Регистр (0х19) MEAS1_Configuration_1 используется для конфигурации времени интегрирования, MEAS1_TINT, регистр (0х1B) MEAS1_Configuration_3 используется для настройки времени установки MEAS1_LED_SETLNG.

Таблица 4. Ожидаемое время задержки ФПГ (tPPG_DELAY)

Настройки конфигурационного регистра Measurement 1
(0x1B) Meas1 Configuration 3 (0x19) Meas1 Configuration 1 Время установки, мкс Время интегрирования, мкс Ширина импульса, мкс tPPG_Delay, мкс
0x00 0x00 6 14,6 20,6 354
0x00 0x08 6 29,2 35,2 377
0x00 0x10 6 58,6 64.6 420
0x00 0x18 6 117,1 123,1 508
0x50 0x00 12 14,6 26,6 360
0x50 0x08 12 29,2 41,2 383
0x50 0x10 12 58,6 70,6 426
0x50 0x18 12 117,1 129,1 514
0xA0 0x00 18 14,6 32,6 366
0xA0 0x08 18 29,2 47,2 388
0xA0 0x10 18 58,6 76,6 432
0xA0 0x18 18 117,1 135,1 520
0xF0 0x00 24 14,6 38,6 372
0xF0 0x08 24 29,2 53,2 364
0xF0 0x10 24 58,6 82,6 438
0xF0 0x18 24 117.1 141,1 526

Конфигурация регистров ФПГ

В таблице 5 показана конфигурация регистров MAX86171 для правильной работы в режиме ведомого устройства при синхроимпульсах MAX30003 с минимальным временем дрожания между ФПГ и ЭКГ. Все регистры, не указанные в таблице, принимают значения по умолчанию после программного сброса.

Если состояние регистров неизвестно, необходима отправка команды программного сброса до начала конфигурации путем записи 0х01 в регистр 0х0С (системная конфигурация).

Таблица 5. Конфигурация регистров ФПГ

Адрес Данные Конфигурация Описание
0x09 0xFF FIFO_A_FULL = 0xFF Установка флага FIFO, заполнено, когда в FIFO один байт данных
0x0A 0x18 FLUSH_FIFO = 1b Сброс PPG FIFO
FIFO_STAT_CLR = 1b Очистка флага заполнения FIFO при чтении FIFO
0x0C AND with 0xCF Очистка SYNC_MODE путем выполнения операции логического И c 0xCF, все остальные биты в предыдущем состоянии, затем установка следующих битов:
then OR with 0x1A SYNC_MODE = 01b Синхронизация от внешнего импульса
PPG2_PWRDN = 1b Выключение питания оптического канала 2
SHDN = 1b Установка PPG в отключенный режим
0x0D 0x01 MEAS1_EN = 1b Активация измерения 1
0x0E 0x00 ALC_Disable = 0b Коррекция освещения окружающей среды включена
COLLECT_RAW_DATA = 0b Не измерять темновой ток
MEAS1_CONFIG_SEL = 0b MEAS1 used only for MEAS1, not MEAS2 thru MEAS9
0x0F 0x55 PD4_BIAS = 01b Установить сдвиг всех фотодиодов в диапазоне 0…125 пФ
PD3_BIAS = 01b
PD2_BIAS = 01b
PD1_BIAS = 01b
0x10 0x00 INT2_FCFG = 00b Деактивация INT2
TRIG_ICFG = 0b Срабатывание входа TRIG по спаду
0x11 0x04 INT2_OCFG = 00b Установка выхода INT2 в режим с открытым стоком
INT1_OCFG = 10b Установка активного состояния INT1 0 и управляющего сигнала 1 в активном состоянии
0x15 0x20 FR_CLK_SEL = 1b Установка частоты внутреннего генератора тактовой частоты 32768 Гц
FR_CLK_FINE_TUNE = 00000b Установка подстройки частоты 0%
0x18 0x10 MEAS1_AMB = 0b Отключение измерений окружающей среды
MEAS1_DRVC = 01b Установка выхода LED3_DRV на LED Driver C
MEAS1_DRVB = 00b Установка выхода LED3_DRV на LED Driver B
MEAS1_DRVA = 00b Установка выхода LED3_DRV на LED Driver A
0x19 0x00 MEAS1_PPG2_PDSEL = 0b Установка входа PD2_IN на оптический канал 2
MEAS1_PPG1_PDSEL = 0b Установка входа PD1_IN на оптический канал 1
MEAS1_TINT = 00b Установка времени интегрирования измерения 1 в 14,6 мкс
MEAS1_AVER = 000b Установка усреднения измерения 1 в одну выборку (нет усреднения)
0x1A 0x0F MEAS1_SINC3_SEL = 0b Использование фильтра децимации COI3; отключение фильтра SINC3
MEAS1_FILT_SEL = 0b Установка коррекции влияния окружающей среды методом центральной дифференциации
MEAS1_LED_RGE = 00b Установка диапазона токов светодиода 0…32 мА
MEAS1_PPG2_ADC_RGE = 11b Установка полного диапазона PD2 до 32 мкА
MEAS1_PPG1_ADC_RGE = 11b Установка полного диапазона PD1 до 32 мкА
0x1B 0x50 MEAS1_PD_SETLNG = 01b Время установки фотодиода 12 мкс
MEAS1_LED_SETLNG = 01b Время установки светодиода 12 мкс
PPG2_DACOFF = 00b Установка тока смещения PPG2 ЦАП равным 0
PPG1_DACOFF = 00b Установка тока смещения PPG1 ЦАП равным 0
0x1C 0x20 MEAS1_DRVA_PA = 0x20 Установка управляющего тока А равным 4 мА
0x1D 0x00 MEAS1_DRVB_PA = 0x00 Установка управляющего тока B равным 4 мА
0x1E 0x00 MEAS1_DRVC_PA = 0x00 Установка управляющего тока C равным 4 мА
0x78 0x80 A_FULL_EN1 = 1b Разрешение выдачи бита статуса A_FULL_EN на выходе INT1; когда A_FULL_BIT задействован, INT1 активируется

Последовательность включения

После конфигурирования MAX30003 и MAX86171 для синхронного сбора данных необходимо выполнять следующие шаги при каждом запуске системы для обеспечения правильной временной корреляции между ЭКГ и ФПГ:

  • сброс ФПГ FIFO;
  • вывод ФПГ из выключенного режима. ФПГ сконфигурирован на ожидание и сбор данных после приема каждого синхросигнала от ЭКГ;
  • перед запуском ЭКГ необходимо выполнить следующие шаги:
  • отправить команду ECG SYNCH в регистр SYNCH(0x09) для ресинхронизации всех внутренних цепей ЭКГ;
  • отправить команду сброса в регистр FIFO_RST(0x0A) для сброса ЭКГ FIFO.
  • установка бита ECG_EN в регистре ECG_CNFG_GEN(0x10). Сразу после установки этого бита ЭКГ начинает сбор данных со скоростью, заданной в регистре CNFG_ECG(0x15).

Включение ФПГ

До включения ЭКГ необходимо с помощью команд из таблицы 6 установить ФПГ в режим сбора данных после каждого синхроимпульса ЭКГ.

Таблица 6. Последовательность команд включения ФПГ

Адрес Данные Комментарии
0x0A OR with 0x10 Установить бит FLUSH_FIFO = 1 для сброса ФПГ FIFO
0x0C AND with 0xFD Очистить бит SHDN для вывода ФПГ из неактивного состояния

Включение ЭКГ

После выполнения последовательности команд для включения ФПГ необходимо активировать сбор данных ЭКГ с помощью команд из таблицы 7. Эти команды должны быть выполнены в порядке, указанном в таблице.

Таблица 7. Последовательность команд включения ЭКГ

Адрес Данные Комментарии
x09 0x000000 Команда синхронизации внутреннего тактового генератора
0x0A 0x000000 Команда сброса FIFO
0x10 OR with 0x080000 1 бит для активации сбора данных ЭКГ

После запуска система начинает периодический сбор данных со скоростью оцифровки, заданной для ЭКГ, до тех пор, пока не будет сброшен бит EN_ECG в регистре ECG_CNFG_GEN(0x10). 

Сбор данных и временная корреляция

Во время непрерывного сбора данных необходимо считывать значения из буферов FIFO блоков ЭКГ и ФПГ после каждой записи пары данных в соответствующие буферы. Важно заметить, что данные FIFO ЭКГ не считываются до тех пор, пока не завершен цикл измерения ФПГ, потому что переключение линий SPI наводит помехи на слабые измерительные токи фотодиода ФПГ. Сигнал ФПГ FIFO Ready принимает нулевое значение сразу после завершения цикла измерения ФПГ. Если данные не считываются из памяти после каждого измерения, усложняется задача чтения нескольких слов из FIFO без влияния линий SPI на измерения ФПГ.

Для получения достоверного времени прихода импульса (ВПИ) необходимо настроить задержки в паре ЭКГ и ФПГ. Данные ЭКГ, прочитанные после синхроимпульса ЭКГ во время tSYNC, представляют собой результат измерения ЭКГ во время tECG. tECG – это время измерения ЭКГ до синхроимпульса, которое выражается формулой 1:

$$t_{ECG}=t_{SYNCH}-t_{ECG\_DELAY}\qquad{\mathrm{(}}{1}{\mathrm{)}}$$

Данные ФПГ, прочитанные после синхроимпульса, представляют результат измерения ФПГ во время tPPG. tPPG – это время измерения после спада синхроимпульса, которое выражается формулой 2:

$$t_{PPG}=t_{SYNCH}+t_{PPG\_DELAY}\qquad{\mathrm{(}}{2}{\mathrm{)}}$$

На рисунке 5 показана зависимость между tECG и tPPG.

Рис. 5. Задержки пары данных

Рис. 5. Задержки пары данных

Разница во времени между данными в паре ЭКГ и ФПГ определяется по формуле 3:

$$t_{PPG}-t_{ECG}=t_{PPG\_DELAY}+t_{ECG\_DELAY}\qquad{\mathrm{(}}{3}{\mathrm{)}}$$

Это сумма задержек ЭКГ и ФПГ, которая определена в таблицах 1 и 4.

Для временной корреляции в паре данных ЭКГ и ФПГ необходимо считывать данные из FIFO через время tSAMPLE после каждого измерения. Предположим, метка времени ЭКГ равна tSAMPLE. Для определения метки времени ФПГ необходимо сложить tSAMPLE и сумму временной задержки.

Выбрано:

tECG = tSAMPLE

Рассчитываем значение для выбранной пары данных ЭКГ и ФПГ:

tPPG = tSAMPLE + tPPG_DELAY + tECG_DELAY

Преобразование «сырых» данных ЭКГ в милливольты

Каждое слово данных ЭКГ, прочитанное из FIFO, состоит из трех байт. Младшие шесть бит содержат метку, которую можно использовать для проверки качества данных. Предположим, что один блок данных, состоящий из трех байт, прочитан в переменную data, тогда старший байт данных содержится в data[0], младший байт данных – в data[2], и следующий код на языке С может быть использован для преобразования «сырых» данных в единицы АЦП:



data[2] = data[2]>>6; // сдвинуть данные на 6 бит вправо для удаления метки

ADC_count = data[0] x 1024 + data[1] x 4 + data[2];

if (ADC_count  > 131072)  ADC_count = ADC_count – 262144; // дополнение до двух

Для преобразования данных из единиц АЦП в милливольты используется формула 4:

$$ECG\_mv=1000\times \frac{ADC\_count}{2^{17}\times Gain},\qquad{\mathrm{(}}{4}{\mathrm{)}}$$

где Gain – коэффициент усиления ЭКГ – 20V/V, 40V/V, 80V/V или 160V/V, в зависимости от настроек регистра 0х15.

Более подробная информация о формате данных ЭКГ содержится в спецификации на MAX30003.

Преобразование «сырых» данных ФПГ в отсчеты ФПГ

Каждое слово данных ФПГ, прочитанное из FIFO, состоит из трех байт. Верхние пять битов самого старшего байта содержат информацию об автоматическом диапазоне и должны быть маскированы нулями до преобразования в отсчеты. Предположим, что один блок данных, состоящий из трех байт, прочитан в переменную data, тогда старший байт данных содержится в data[0], младший байт данных – в data[2], и следующий код на языке С может быть использован для преобразования сырых данных в отсчеты ФПГ:



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

Величина PPG_count прямо пропорциональна количеству света, зафиксированному фотодиодом ФПГ за период интегрирования. Абсолютная величина количества отсчетов зависит от множества факторов и не привязана к какому-либо физическому параметру. Так как обычно данные ФПГ восстанавливаются как сигнал переменного тока частотой 1 Гц с медленно изменяющейся несущей 0,2 Гц, при отображении данных ФПГ несущая удаляется. Самый простой способ удаления несущей – вычитание выборки n PPG из односекундного скользящего среднего сигнала ФПГ. Скользящее среднее отцентровано на выборке n (то есть диапазон значений составляет ±0,5 секунды от текущей выборки).

Более подробная информация о формате данных ФПГ содержится в спецификации на MAX86171.

Пример корреляции данных ВПИ

В таблице 8 показан пример «сырых» парных данных и их соответствующих корреляций, скорректированных по времени. Предполагается, что частота оцифровки ЭКГ – 512 выборок в секунду, ФНЧ выключен, время установки ФПГ – 24 мкс, время интегрирования ФПГ – 117 мкс. Для таких параметров требуется, чтобы настроечная задержка ЭКГ равнялась 20,839 мс, задержка ФПГ – 526 мкс, суммарное смещение ECG-to-PPG – 21,365 мс, которое вычисляется по формуле 5:

$$t_{PPG\_DELAY}+t_{ECG\_DELAY}=0.526\:мс+20.839\:мс=21.365\:мс\qquad{\mathrm{(}}{5}{\mathrm{)}}$$

При скорости оцифровки 512 выборок в секунду соседние выборки разделены временем 1,953125 мс. Как показано в таблице 8, для выборок ФПГ назначается время 21,365 мс после времени ЭКГ. Время ЭКГ предполагается равным n x 1,953125 мс, где n – индекс выборки.

Таблица 8. Пример временной корреляции парных данных ВПИ

Пары «сырых» данных Пары данных, скорректированные по времени
Выборка n Отсчеты ECG Отсчеты PPG ECG PPG
Время, мс Отсчеты Время, мс Отсчеты
0 -308 305513 0,0000 -308 21,365 305513
1 -230 305560 1,9531 -230 23,3181 305560
2 -94 305542 3,9063 -94 25,2713 305542
3 38 305554 5,8594 38 27,2244 305554
4 236 305561 7,8125 236 29,1775 305561
5 462 305567 9,7656 462 31,1306 305567
6 606 305588 11,7188 606 33,0838 305588
7 800 305592 13,6719 800 35,0369 305592
8 1101 305599 15,625 1101 36,99 305599
9 1358 305594 17,5781 1358 38,9431 305594
10 1621 305589 19,5313 1621 40,8963 305589
11 1971 305583 21,4844 1971 42,8494 305583
12 2255 305619 23,4375 2255 44,8025 305619
13 2322 305622 25,3906 2322 46,7556 305622
14 2143 305636 27,3438 2143 48,7088 305636
15 1780 305651 29,2969 1780 50,6619 305651
16 1270 305647 31,25 1270 52,615 305647
17 543 305645 33,2031 543 54,5681 305645
18 -273 305652 35,1563 -273 56,5213 305652
19 -872 305635 37,1094 -872 58,4744 305635
20 -1201 305660 39,0625 -1201 60,4275 305660

Заключение

На рисунке 6 показано практическое применение устройств, рассмотренных в данной статье, где электроды ЭКГ размещены на груди в измерительной точке II, а данные ФПГ снимаются с пальца левой руки. Отсчеты ЭКГ преобразованы в милливольты, данные ФПГ отфильтрованы для удаления постоянной составляющей путем вычитания каждой выборки ФПГ из секундной скользящей средней.

Рис. 6. Корреляция данных ЭКГ и ФПГ

Рис. 6. Корреляция данных ЭКГ и ФПГ

Существует множество других методов для вычисления ВПИ, поэтому читатель должен решить, какой метод лучше походит для его задачи. В данной статье рассмотрена аппаратная и программная конфигурации, позволяющие получить данные ЭКГ и ФПГ, коррелирующиеся по времени со стандартным отклонением менее 5 мкс.

Оригинал статьи

Перевел Алексей Гребенников по заказу АО КОМПЭЛ
•••

Наши информационные каналы

О компании Maxim Integrated

Компания Maxim Integrated является одним из ведущих разработчиков и производителей широкого спектра аналоговых и цифро-аналоговых интегральных систем. Компания была основана в 1983 году в США, в городе Саннивэйл (Sunnyvale), штат Калифорния, инженером Джеком Гиффордом (Jack Gifford) совместно с группой экспертов по созданию микроэлектронных компонентов. На данный момент штаб-квартира компании располагается в г. Сан-Хосе (San Jose) (США, Калифорния), производственные мощности (7 заводов) и ...читать далее

Товары
Наименование
MAX30001CWV+T (MAX)
MAX30001EVSYS# (MAX)
MAX30001CTI+T (MAX)
MAX30001CTI+ (MAX)
MAX30003CTI+ (MAX)
MAX30003CWV+T (MAX)
MAX30003CTI+T (MAX)
MAX30003WING# (MAX)
MAX30003WING2# (MAX)
MAX86171ENI+ (MAX)