В данной статье представлены некоторые результаты практической реализации высокоточного измерения сигнала ЭКГ и ФПГ.
Первый вариант реализован на основе усилителя сигнала ЭКГ AD8232 и SOC Telink8266 (не путать с ESP8266) и обеспечивает передачу по BLE сигнал ЭКГ, оцифрованный 14 разрядным АЦП внутри SOC.
Макет устройства состоит из двух модулей и батарейки.
В результате получаем вот такой сигнал на ПК по BLE
Второй вариант реализован на основе модуля CJMCU-1293(чип ADS1293), в состав которого входит 24 разрядный АЦП .
Вариант предназначен для стационарного размещения и является прототипом регистратора ЭКГ для больниц и поликлиник, особенно для сельской местности.
Регистратор подключается через интерфейс USB и может обеспечить измерения ЭКГ по 3,5, 8 или 12 отведениям.
Алгоритм программирования 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 отведений:
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).
При подключении по USB к ПК необходимо обеспечить гальваническую развязку регистратора и компьютера.
Для этой цели можно использовать модуль USB изолятора на основе ADUM3160.
Следует учитывать тот факт, что в данном модуле установлен преобразователь DC-DC типа BQ505S-1W, который обеспечивает ток не более 200 mA.
Чип ADS1293 обменивается информацией по протоколу SPI.
Поэтому потребовалось реализовать интерфейс с SPI<->USB. Решение этой задачи возможно следующими вариантами.
Использовать модуль 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).
Одновременное измерение ЭКГ и ФПГ позволяет реализовать на ПК алгоритм безманжетного измерения артериального давления.
Вывод. Реализованные макеты устройств обеспечивают возможность высокоточного измерения параметров сигнала ЭКГ и ФПГ 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.