Обычное дело: мы используем cookie. Здесь можно узнать зачем
Хорошо

Программное обеспечение для ЭЭГ-системы

Команда КЕДР Solutions разработала энергоэффективное встроенное ПО и SDK для медицинской системы ЭЭГ. Мы обеспечили надежную передачу и сохранность данных, реализовали многозадачность на FreeRTOS и повысили безопасность соединения.
Медицинские ЭЭГ-системы предназначены для записи электрической активности головного мозга. Для этого на голову пациента накладывают электроды, улавливающие слабые импульсы нейронов, которые усиливаются и визуализируются либо на экране, либо на бумажной ленте. Благодаря такой диагностике врачи могут выявлять и анализировать различные неврологические расстройства, включая эпилепсию и проблемы с кровоснабжением.

Сегодня перед разработчиками ЭЭГ-оборудования стоит несколько важных задач:

  • повысить качество и надежность сигнала, минимизируя влияние помех за счет улучшения усилителей и электроники;
  • обеспечить совместимость ЭЭГ-систем с мобильными устройствами и облачными сервисами, чтобы сделать диагностику быстрее и удобнее;
  • строго соблюдать международные стандарты и требования сертификации для выпуска безопасного и качественного оборудования.

Комплексный подход к этим вызовам обеспечит выпуск эффективного и безопасного оборудования, которое будет востребовано на современном рынке.

Запрос

Наш клиент – компания, которая создает передовые решения для регистрации электроэнцефалограммы. Благодаря собственным запатентованным технологиям она обеспечивает высокоточную регистрацию ЭЭГ и активно сотрудничает с ведущими университетами и исследовательскими центрами.

Когда в штате возник дефицит опытных инженеров-программистов, заказчик решил привлечь внешнюю команду для разработки программного обеспечения новой ЭЭГ-системы. Выбор остановился на КЕДР Solutions – мы предложили глубокий опыт в создании сложных программно-аппаратных решений и оптимальные сроки с выгодной ценой.
Схема ЭЭГ-системы – блок обработки сигналов и ПО на планшете для отображения получаемой с прибора информации. Пунктиром отмечена софтовая часть, которую специалисты КЕДР Solutions должны выполнить в ходе проекта
ЭЭГ-система. Пунктиром выделена программная часть, которую нам поручили разработать.
В рамках проекта мы должны были выполнить следующие ключевые задачи:
  • написать прошивку для блока обработки сигналов ЭЭГ, учитывая все требования по функционалу и энергопотреблению;
  • создать SDK, который обеспечивает связь блока с ЭЭГ-приложением на медицинском планшете.

Решение

Система состоит из одноразовой повязки с четырнадцатью электродами и блоком обработки, которая крепится на голове пациента для регистрации мозговой активности. Блок собирает данные с электродов, сохраняет их на встроенную microSD-карту и передает по Bluetooth на планшет. SDK на стороне планшета принимает поток, преобразует его и обеспечивает стабильную работу приложения.

Наше устройство должно одновременно справляться с несколькими задачами – принимать команды с мобильного приложения, обрабатывать сигналы с аналого-цифровых преобразователей (АЦП) и сохранять их на карту памяти. Для этого мы выбрали операционную систему для встроенных систем FreeRTOS, которая отлично подходит для многозадачности.

FreeRTOS позволяет одновременно принимать команды, обрабатывать данные, хранить их в буфере и записывать на SD-карту. Задачи работают в тесном взаимодействии: одна ждет сигнала на запуск, другая обрабатывает данные, третья сохраняет их.

Кроме того, FreeRTOS помогает экономить энергию. В моменты, когда данные еще не готовы или запись завершена, микроконтроллер переходит в режим сна на несколько миллисекунд, что снижает расход аккумулятора и позволяет устройству работать до 16 часов подряд – идеально для длительных ЭЭГ-сеансов.

Для взаимодействия с приложением мы создали SDK – Java-библиотеку для Android-приложения заказчика. Она распаковывает сжатые данные, превращая их в удобные форматы, и отвечает за передачу команд управления на устройство.

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

Подключение планшета к устройству сделано простым и безопасным с помощью NFC и BLE. При поднесении планшета NFC считывает специальный тег с адресом BLE, и связь устанавливается мгновенно – это удобно, когда вокруг много похожих устройств.

Для защиты от посторонних мы применили аутентификацию HMAC-SHA256. После подключения ЭЭГ-сканер отправляет планшету уникальное сообщение, которое тот должен правильно обработать и вернуть в течение секунды. Если ответ отсутствует или неверен, соединение разрывается. Так только планшет с нашим SDK может управлять исследованием.

Сложности проекта и их решение

Два микроконтроллера

В предоставленной заказчиком аппаратной платформе используются два микроконтроллера: PIC32 управляет всеми функциями, а модуль NINA-B311 на основе nRF52840 отвечает только за передачу данных по BLE. Такая конструкция повышает стоимость системы и не позволяет максимально эффективно использовать ресурсы.

Команда предложила заказчику упростить систему – заменить два микроконтроллера одним nRF52840 с нужной периферией и подключить АЦП напрямую. Такой шаг позволил бы сократить расходы, повысить энергоэффективность и расширить возможности по управлению Bluetooth-соединением.

Однако клиент решил оставить прежнюю схему, и мы завершили проект на базе предоставленного оборудования.

MicroSD-карта

Наш прибор должен постоянно передавать сигналы ЭЭГ и одновременно сохранять их на microSD-карту. Из-за высокой частоты записи объем данных получался значительным. Нужно было максимально эффективно использовать пространство на карте и при этом поддерживать стабильную скорость передачи данных на планшет.

Мы применили нестандартное решение –  отказались от привычной файловой системы и записывали данные напрямую на карту. Наши специалисты досконально изучили механизмы работы карты, особенности ее кэширования и управления потоками. Это дало возможность оптимизировать процесс и добиться высокой скорости и надежности записи даже при больших нагрузках.

Протокол запаковки данных

Выбор заказчиком Bluetooth-модуля NINA-B311 ограничил свободу в организации передачи данных по Bluetooth и не позволял гибко настраивать BLE. Стандартные сервисы, которые мы обычно реализуем на nRF, здесь работали недостаточно быстро. Для достижения максимальной скорости передачи мы выбрали сервис SPS от производителя u-blox – единственный вариант, обеспечивающий высокую пропускную способность.

Из-за особенностей передачи данных SPS нам пришлось создать собственный протокол поверх этого сервиса.

Выполненные работы

  • Создание встроенного ПО;
  • Разработка протокола передачи данных;
  • Создание SDK для работы с мобильным приложением для планшета под управлением Android.

Использованные технологии

  • Микроконтроллер PIC32MX174F256DT-V/ML с 32-битной архитектурой, флеш-памятью 256 КБ.
  • ПО для микроконтроллера PIC32 создано с помощью среды разработки MPLAB X и компилятора MPLAB XC32 от компании Microchip.
  • BLE-модуль от компании u-blox NINA-B311-01B с чипом nRF52840.
  • Сервис SPS (Serial Port Service) от u-blox для передачи данных по BLE.
  • Аналого-цифровой преобразователь (АЦП) ADS1298IPAG.
  • Встроенное ПО на базе FreeRTOS написано на С/С++.
  • Среда разработки Android Studio, язык Java для создания SDK под Android.
  • Медицинский планшет Advantech AIM-75H-2 для отображения результатов тестирования.
  • MicroSD карта на 32 Гб
  • Аутентификация планшета реализована с помощью хэш-алгоритма HMAC-SHA256.

Итоги

Хотя заказчик решил не менять аппаратную архитектуру блока регистрации ЭЭГ, мы довели проект до конца и выполнили все требования:

  • Встроенное ПО, созданное командой Кедра, обеспечивает стабильную работу системы и экономию энергии.
  • Наш протокол передачи данных позволяет быстро и эффективно отправлять информацию на планшет.
  • Мы тщательно настроили работу с microSD-картой, чтобы ни одна запись не была утеряна. Независимо от режима – streaming, когда данные поступают мгновенно, или playback, когда исследование длится без подключения к планшету, а данные выгружаются позже – информация сохраняется надежно и долговременно.

КЕДР Solutions помогли заказчику вовремя завершить разработку современной ЭЭГ-системы, отвечающей высоким стандартам качества. Сейчас клиент активно готовится к сертификации, чтобы вскоре представить новое решение на рынке медицинского оборудования.

Проект позволил нам существенно расширить технический кругозор. Мы получили уникальный опыт, досконально разобравшись в принципах работы высокоточных компонентов, предназначенных для сбора ЭЭГ-сигналов. Помимо этого, проект заставил нас глубоко погрузиться в изучение архитектуры и механизмов функционирования SD-карт, что стало новым и очень полезным знанием для команды.