В данной статье представлены некоторые результаты практической реализации высокоточного измерения сигнала ЭКГ и ФПГ.

Первый вариант реализован на основе усилителя сигнала ЭКГ AD8232  и SOC Telink8266 (не путать с ESP8266) и обеспечивает передачу по BLE сигнал ЭКГ, оцифрованный 14 разрядным АЦП внутри SOC. 

Макет устройства состоит из двух модулей и  батарейки.

В результате получаем вот такой сигнал на ПК по BLE

Второй вариант реализован на основе модуля CJMCU-1293(чип ADS1293), в состав которого входит 24 разрядный АЦП .

Вариант предназначен для стационарного размещения и является прототипом регистратора ЭКГ для больниц и поликлиник, особенно для сельской местности. 

Регистратор подключается через интерфейс USB  и может обеспечить измерения ЭКГ по 3,5, 8 или 12 отведениям.

Схема подключения ADS1293 для получения ЭКГ в 3 отведениях.
Схема подключения ADS1293 для получения ЭКГ в 3 отведениях.

Алгоритм программирования ADS1293 для 3 отведений:

  1. R[0x01] = 0x11: подключить INP канала 1 к IN2, а INN - к IN1.

  2. R[0x02] = 0x19: подключить INP канала 2 к IN3, а INN к IN1.

  3. R[0x0A] = 0x07: включить синфазный детектор на входных контактах IN1, IN2 и IN3.

  4. R[0x0C] = 0x04: подключить внутренний выход усилителя RLD к контакту IN4.

  5. R[0x12] = 0x04: внешний кристалл и подключите выход внутреннего генератора к цифровому разъему.

  6. R[0x14] = 0x24: отключить передачу сигнала по неиспользуемому каналу 3.

  7. R[0x21] = 0x02: установить частоту децимации R2 равной 5 для всех каналов.

  8. R[0x22] = 0x02: частота децимации R3 будет равна 6 для канала 1.

  9. R[0x23] = 0x02: частота децимации R3 будет равна 6 для канала 2.

  10. R[0x27] = 0x08: настроить источник DRDYB на ЭКГ-канал 1 (или самый быстрый канал).

  11. R[0x2F] = 0x30: включить ЭКГ 1-го и 2-го каналов для режима циклического считывания.

  12. R[0x00] = 0x01: запустить преобразование данных.

Схема подключения ADS1293 для получения ЭКГ в 5 отведениях.
Схема подключения ADS1293 для получения ЭКГ в 5 отведениях.

Алгоритм программирования ADS1293 для 5 отведений:

  1. R[0x01] = 0x11: подключить INP канала 1 к IN2, а INN - к IN1.

  2. R[0x02] = 0x19: подключить INP канала 2 к IN3, а INN - к IN1.

  3. R[0x03] = 0x2E: подключить INP канала 3 к IN5, а INN к IN6.

  4. R[0x0A] = 0x07: включить синфазный детектор на входных контактах IN1, IN2 и IN3.

  5. R[0x0C] = 0x04: подключить внутренний выход усилителя RLD к контакту IN4.

  6. R[0x0D] = 0x01, 0x0E = 0x02, 0x0F = 0x03: подключить первый буфер ссылки Wilson к выводу IN1, второй буфер - к выводу IN2, а третий буфер - к выводу IN3.

  7. R[0x10] = 0x01: подключить внутренний выход модуля Wilson reference к IN6.

  8. R[0x12] = 0x04: подключить внешний кристалл и преобразовать выходной сигнал внутреннего модуля генератора в цифровой.

  9. R[0x21] = 0x02: настроить частоту децимации R2 равной 5 для всех каналов.

  10. R[0x22] = 0x02: частота децимации R3 будет равна 6 для канала 1.

  11. R[0x23] = 0x02: частота децимации R3 будет равна 6 для канала 2.

  12. R[0x24] = 0x02: задать частоту децимации R3 равной 6 для канала 3.

  13. R[0x27] = 0x08: настроить источник DRDYB на канал ЭКГ 1 (или самый быстрый канал).

  14. R[0x2F] = 0x70: включить канал ЭКГ 1, канал ЭКГ 2 и канал ЭКГ 3 для режима циклического считывания.

  15. R[0x00] = 0x01: запустить преобразование данных.

    Реализовал вариант для 3 и 5 отведений.

    Вариант для 12 отведений предполагает применение трех ADS1293 (модулей CJMCU-1293).

Схема подключения ADS1293 для получения ЭКГ в 12 отведениях.
Схема подключения ADS1293 для получения ЭКГ в 12 отведениях.

При подключении по USB к ПК необходимо обеспечить гальваническую развязку регистратора и компьютера.
Для этой цели можно использовать модуль USB изолятора на основе ADUM3160.

Следует учитывать тот факт, что в данном модуле установлен преобразователь DC-DC типа BQ505S-1W, который обеспечивает ток не более 200 mA.

Чип ADS1293 обменивается информацией по протоколу SPI.

Поэтому потребовалось реализовать интерфейс с SPI<->USB. Решение этой задачи возможно следующими вариантами.

  1. Использовать модуль USB-SPI на основе чипа CH341

Это вариант самый простой, но и самый медленный. Скорость обмена по SPI не превышает 50 КБод. После тестирования, отказался от него.
2) Использовать для организации связи с компьютером модуль на основе SOC. Варианты Telink8266 или ESP8266 (Wemos) - наиболее простые в реализации.

Питание модуля берется от ПК, поэтому для экспериментов взял ESP8266 , у которого больше памяти.

Так как радио блок ESP не использую, то отключив его, получил потребляемый ток не более 15 mA.
Для питания модуля CJMCU-1293 используется аккумулятор.
В активном режиме модуль потребляет не более 0.2 mA.
В итоге получился вот такой макет устройства

Примеры результата измерений.

В данных примерах нет вторичной обработки.

Кроме того, через интерфейс I2C модуля SOC сравнительно просто подключить оптический модуль на основе MAX30105, что позволяет проводить измерения ФПГ в трех частотных диапазонах (RED,IR,GREEN).

Одновременная регистрация ЭКГ(АЦП-14 бит)  и ФПГ,диапазон IR (АЦП-18 бит)
Одновременная регистрация ЭКГ(АЦП-14 бит) и ФПГ,диапазон IR (АЦП-18 бит)

Одновременное измерение ЭКГ и ФПГ позволяет реализовать на ПК алгоритм безманжетного измерения артериального давления.

Вывод. Реализованные макеты устройств обеспечивают возможность высокоточного измерения параметров сигнала ЭКГ и ФПГ c разрядностью АЦП от 14 до 24 и частотой дискретизации сигнала до десятков тысяч Гц.

К недостаткам рассмотренных вариантов следует отнести повышенный шум встроенных в SOC АЦП и отсутствие возможности управления коэффициентом усиления инструментальных усилителей ADS1293.

Комментарии (4)


  1. jpegqs
    09.04.2024 10:59

    Использовать модуль USB-SPI на основе чипа CH341
    Это вариант самый простой, но и самый медленный. Скорость обмена по SPI не превышает 50 КБод. После тестирования, отказался от него.

    Вроде там есть 4 скорости (0=20kHz, 1=100kHz, 2=400kHz, 3=750kHz), почему-то устанавливаются через настройку от I2C:

    CH341A_CMD_I2C_STREAM
    CH341A_CMD_I2C_STM_SET | speed
    CH341A_CMD_I2C_STM_END

    Программы использующие SPI тоже дергают эту настройку. Не проверял как она работает, не было потребности в большой скорости.

    Плюс есть двухканальный режим SPI, если установить 4-й бит вместе с CH341A_CMD_I2C_STM_SET. Но у меня нет опыта использования этого режима.


    1. nikolz Автор
      09.04.2024 10:59
      +1

      Тоже не проверял. Но в документации сказано:

      "Реализует обмен по 4-проводному интефрейсу SPI.
      Тактовая частота на выводе DCK/D3, выходные данные на DOUT/D5,
      входные данные на DIN/D7, выбор чипа D0/D1/D2, скорость примерно 68 кбайт/с."

      Кроме того, не удается сократить интервалы между двумя пакетами.

      ---------------------

      На ESP8266 скорость 10 MГц (1 MБ/c) и выше, размеры меньше, цена ниже. Интервал между пакетами от нескольких мкс.

      Можно выбрать до трех ADS1293.


  1. jorikdima
    09.04.2024 10:59

    Делал что-то подобное лет 15 назад, тоже на ADS1298 :) Иногда кажется, что Холтеры и прочие ЭКГ мониторы это как какая-то стандартная практика для пост студентов :) Столько вижу подобных полулюбительских проектов. Удачи!


    1. nikolz Автор
      09.04.2024 10:59

      ADS1298 выпущен в 2010.

      ADS1293 - в 2012.

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