В данной статье представлены некоторые результаты практической реализации высокоточного измерения сигнала ЭКГ и ФПГ.
Первый вариант реализован на основе усилителя сигнала ЭКГ AD8232 и SOC Telink8266 (не путать с ESP8266) и обеспечивает передачу по BLE сигнал ЭКГ, оцифрованный 14 разрядным АЦП внутри SOC.
Макет устройства состоит из двух модулей и батарейки.
![](https://habrastorage.org/getpro/habr/upload_files/2ab/ccf/009/2abccf009c6576c6b2578047d1bc3345.jpg)
В результате получаем вот такой сигнал на ПК по BLE
![](https://habrastorage.org/getpro/habr/upload_files/39f/209/d00/39f209d00eb42ffcc57a6e177598bcd5.png)
Второй вариант реализован на основе модуля CJMCU-1293(чип ADS1293), в состав которого входит 24 разрядный АЦП .
Вариант предназначен для стационарного размещения и является прототипом регистратора ЭКГ для больниц и поликлиник, особенно для сельской местности.
Регистратор подключается через интерфейс USB и может обеспечить измерения ЭКГ по 3,5, 8 или 12 отведениям.
![Схема подключения ADS1293 для получения ЭКГ в 3 отведениях. Схема подключения ADS1293 для получения ЭКГ в 3 отведениях.](https://habrastorage.org/getpro/habr/upload_files/19b/a09/998/19ba09998562420fc5a2b0a870b042fc.png)
Алгоритм программирования ADS1293 для 3 отведений:
R[0x01] = 0x11: подключить INP канала 1 к IN2, а INN - к IN1.
R[0x02] = 0x19: подключить INP канала 2 к IN3, а INN к IN1.
R[0x0A] = 0x07: включить синфазный детектор на входных контактах IN1, IN2 и IN3.
R[0x0C] = 0x04: подключить внутренний выход усилителя RLD к контакту IN4.
R[0x12] = 0x04: внешний кристалл и подключите выход внутреннего генератора к цифровому разъему.
R[0x14] = 0x24: отключить передачу сигнала по неиспользуемому каналу 3.
R[0x21] = 0x02: установить частоту децимации R2 равной 5 для всех каналов.
R[0x22] = 0x02: частота децимации R3 будет равна 6 для канала 1.
R[0x23] = 0x02: частота децимации R3 будет равна 6 для канала 2.
R[0x27] = 0x08: настроить источник DRDYB на ЭКГ-канал 1 (или самый быстрый канал).
R[0x2F] = 0x30: включить ЭКГ 1-го и 2-го каналов для режима циклического считывания.
-
R[0x00] = 0x01: запустить преобразование данных.
![Схема подключения ADS1293 для получения ЭКГ в 5 отведениях. Схема подключения ADS1293 для получения ЭКГ в 5 отведениях.](https://habrastorage.org/getpro/habr/upload_files/e00/19a/a76/e0019aa7677f72a07262f24b944a4cd8.png)
Алгоритм программирования ADS1293 для 5 отведений:
R[0x01] = 0x11: подключить INP канала 1 к IN2, а INN - к IN1.
R[0x02] = 0x19: подключить INP канала 2 к IN3, а INN - к IN1.
R[0x03] = 0x2E: подключить INP канала 3 к IN5, а INN к IN6.
R[0x0A] = 0x07: включить синфазный детектор на входных контактах IN1, IN2 и IN3.
R[0x0C] = 0x04: подключить внутренний выход усилителя RLD к контакту IN4.
R[0x0D] = 0x01, 0x0E = 0x02, 0x0F = 0x03: подключить первый буфер ссылки Wilson к выводу IN1, второй буфер - к выводу IN2, а третий буфер - к выводу IN3.
R[0x10] = 0x01: подключить внутренний выход модуля Wilson reference к IN6.
R[0x12] = 0x04: подключить внешний кристалл и преобразовать выходной сигнал внутреннего модуля генератора в цифровой.
R[0x21] = 0x02: настроить частоту децимации R2 равной 5 для всех каналов.
R[0x22] = 0x02: частота децимации R3 будет равна 6 для канала 1.
R[0x23] = 0x02: частота децимации R3 будет равна 6 для канала 2.
R[0x24] = 0x02: задать частоту децимации R3 равной 6 для канала 3.
R[0x27] = 0x08: настроить источник DRDYB на канал ЭКГ 1 (или самый быстрый канал).
R[0x2F] = 0x70: включить канал ЭКГ 1, канал ЭКГ 2 и канал ЭКГ 3 для режима циклического считывания.
-
R[0x00] = 0x01: запустить преобразование данных.
Реализовал вариант для 3 и 5 отведений.
Вариант для 12 отведений предполагает применение трех ADS1293 (модулей CJMCU-1293).
![Схема подключения ADS1293 для получения ЭКГ в 12 отведениях. Схема подключения ADS1293 для получения ЭКГ в 12 отведениях.](https://habrastorage.org/getpro/habr/upload_files/508/745/fc3/508745fc3cce07342847c137512698bd.png)
При подключении по USB к ПК необходимо обеспечить гальваническую развязку регистратора и компьютера.
Для этой цели можно использовать модуль USB изолятора на основе ADUM3160.
![](https://habrastorage.org/getpro/habr/upload_files/e55/27c/0e3/e5527c0e3f6bf9d854b134b71fdb4458.jpg)
Следует учитывать тот факт, что в данном модуле установлен преобразователь DC-DC типа BQ505S-1W, который обеспечивает ток не более 200 mA.
Чип ADS1293 обменивается информацией по протоколу SPI.
Поэтому потребовалось реализовать интерфейс с SPI<->USB. Решение этой задачи возможно следующими вариантами.
Использовать модуль USB-SPI на основе чипа CH341
![](https://habrastorage.org/getpro/habr/upload_files/be6/be4/922/be6be4922f582deaf7a3d101617f0660.jpg)
Это вариант самый простой, но и самый медленный. Скорость обмена по SPI не превышает 50 КБод. После тестирования, отказался от него.
2) Использовать для организации связи с компьютером модуль на основе SOC. Варианты Telink8266 или ESP8266 (Wemos) - наиболее простые в реализации.
Питание модуля берется от ПК, поэтому для экспериментов взял ESP8266 , у которого больше памяти.
Так как радио блок ESP не использую, то отключив его, получил потребляемый ток не более 15 mA.
Для питания модуля CJMCU-1293 используется аккумулятор.
В активном режиме модуль потребляет не более 0.2 mA.
В итоге получился вот такой макет устройства
![](https://habrastorage.org/getpro/habr/upload_files/7eb/927/bc4/7eb927bc41d024cf5a09e5d47fb47969.jpg)
Примеры результата измерений.
![](https://habrastorage.org/getpro/habr/upload_files/e95/a7a/ea0/e95a7aea00c16ff5f7d8cccdf7cb8f9a.png)
![](https://habrastorage.org/getpro/habr/upload_files/b7d/e34/3cb/b7de343cb62dd27125461bd52c8b799f.png)
В данных примерах нет вторичной обработки.
Кроме того, через интерфейс I2C модуля SOC сравнительно просто подключить оптический модуль на основе MAX30105, что позволяет проводить измерения ФПГ в трех частотных диапазонах (RED,IR,GREEN).
![Одновременная регистрация ЭКГ(АЦП-14 бит) и ФПГ,диапазон IR (АЦП-18 бит) Одновременная регистрация ЭКГ(АЦП-14 бит) и ФПГ,диапазон IR (АЦП-18 бит)](https://habrastorage.org/getpro/habr/upload_files/9e4/e84/0b7/9e4e840b7f610c0f0ae8b9c773cd24c1.png)
Одновременное измерение ЭКГ и ФПГ позволяет реализовать на ПК алгоритм безманжетного измерения артериального давления.
Вывод. Реализованные макеты устройств обеспечивают возможность высокоточного измерения параметров сигнала ЭКГ и ФПГ c разрядностью АЦП от 14 до 24 и частотой дискретизации сигнала до десятков тысяч Гц.
К недостаткам рассмотренных вариантов следует отнести повышенный шум встроенных в SOC АЦП и отсутствие возможности управления коэффициентом усиления инструментальных усилителей ADS1293.
Комментарии (4)
jorikdima
09.04.2024 10:59Делал что-то подобное лет 15 назад, тоже на ADS1298 :) Иногда кажется, что Холтеры и прочие ЭКГ мониторы это как какая-то стандартная практика для пост студентов :) Столько вижу подобных полулюбительских проектов. Удачи!
nikolz Автор
09.04.2024 10:59ADS1298 выпущен в 2010.
ADS1293 - в 2012.
Проблема не в мониторах, а в их точности, экономичности и возможности обнаружения опасных ситуаций в реальном времени. Немного писал об этом во второй части статьи. В данном варианте совмещено измерение ЭКГ и ФПГ , что позволяет реализовать измерение артериального давления.
jpegqs
Вроде там есть 4 скорости (0=20kHz, 1=100kHz, 2=400kHz, 3=750kHz), почему-то устанавливаются через настройку от I2C:
Программы использующие SPI тоже дергают эту настройку. Не проверял как она работает, не было потребности в большой скорости.
Плюс есть двухканальный режим SPI, если установить 4-й бит вместе с CH341A_CMD_I2C_STM_SET. Но у меня нет опыта использования этого режима.
nikolz Автор
Тоже не проверял. Но в документации сказано:
"Реализует обмен по 4-проводному интефрейсу SPI.
Тактовая частота на выводе DCK/D3, выходные данные на DOUT/D5,
входные данные на DIN/D7, выбор чипа D0/D1/D2, скорость примерно 68 кбайт/с."
Кроме того, не удается сократить интервалы между двумя пакетами.
---------------------
На ESP8266 скорость 10 MГц (1 MБ/c) и выше, размеры меньше, цена ниже. Интервал между пакетами от нескольких мкс.
Можно выбрать до трех ADS1293.