Mikrokontrolery STM32 w aplikacjach biomedycznych

Udostępnij

Rodzina STM32 obejmuje zarówno proste mikrokontrolery zastępujące starsze układy 8-bitowe, jak i wielordzeniowe procesory aplikacyjne zdolne do obsługi rozbudowanych interfejsów użytkownika. Tak szerokie portfolio ułatwia skalowanie projektu, ale jednocześnie sprawia, że wybór konkretnego układu na samym początku projektu jest zadaniem bardzo złożonym.

Podczas dobierania mikrokontrolera do urządzenia (bio)medycznego trzeba wziąć pod uwagę szereg uwarunkowań – tak funkcjonalnych, jak i normatywnych (związanych m.in. z bezpieczeństwem pacjenta i jego danych wrażliwych), finansowych, a także logistycznych – związanych chociażby z gwarancją dostępności układu przez cały planowany czas życia produktu. W artykule analizujemy cztery przykładowe aplikacje oraz przedstawiamy propozycje układów, które dobrze nadają się do tych zastosowań.

Podstawowe założenia projektowe

Wybór mikrokontrolera powinien być bezpośrednim następstwem pogłębionej analizy założeń obejmujących wszystkie istotne wymagania techniczne urządzenia. W pierwszej kolejności trzeba oczywiście rozważyć docelowe funkcjonalności urządzenia i odpowiedzieć sobie na kilka podstawowych pytań:

  1. Jakie funkcje zasadnicze ma realizować urządzenie (np. pomiary, stymulację funkcji fizjologicznych, obsługę jednego lub kilku napędów bądź też całego systemu mechatronicznego, etc.)?
  2. Ile wejść sygnałowych ma mieć urządzenie oraz jakiego typu są to sygnały/dane (np. 1 odprowadzenie EKG, kilkanaście kanałów EEG, czujnik ciśnienia, potencjostat, etc.)?
  3. Czy można (lub trzeba) skorzystać ze zintegrowanych bloków analogowych STM32 (przetworników ADC i DAC, komparatorów, wzmacniaczy operacyjnych)?
  4. Ile pamięci musi zawierać mikrokontroler w swojej strukturze oraz czy będzie potrzebna dodatkowa pamięć zewnętrzna?
  5. Jaki mamy dostępny budżet energetyczny oraz jakie będzie źródło (lub źródła) zasilania?
  6. Czy potrzebne będą zaawansowane funkcje związane z cyberbezpieczeństwem (TrustZone, secure boot, koprocesory kryptograficzne, etc.)?
  7. Jakie są maksymalne możliwe rozmiary mikrokontrolera oraz ile wyprowadzeń GPIO będzie potrzebnych do obsługi wszystkich współpracujących z nim układów i modułów?

Znając odpowiedzi na powyższe pytania będzie znacznie łatwiej dobrać optymalny model mikrokontrolera z niewątpliwie szerokiej oferty STM32. Aby jeszcze lepiej zobrazować to zagadnienie, przyjrzyjmy się czterem przykładowym aplikacjom oraz spróbujmy wspólnie wybrać modele mikrokontrolerów, które dobrze nadają się do tych zastosowań.

Glukometr

Klasyczny glukometr wykonuje pojedynczy pomiar elektrochemiczny, przelicza wynik na podstawie danych z toru analogowego, zapisuje wynik, datę i godzinę w pamięci oraz prezentuje informacje na prostym wyświetlaczu. Nie wymaga ciągłego przetwarzania dużego strumienia próbek ani rozbudowanych algorytmów DSP. Naszymi priorytetami w takiej aplikacji będą:

  • niski koszt,
  • niewielkie wymiary obudowy,
  • mały pobór mocy.

Dwa pierwsze założenia idealnie realizują mikrokontrolery z rodziny STM32C0, w której znajdują się obecnie najtańsze układy w całej ofercie ST – spróbujmy więc sprawdzić, czy znajdziemy w niej idealnego kandydata do budowy naszego glukometru.

Portfolio układów STM32C0 (źródło: st.com)

Układy STM32C0 z rdzeniem Cortex-M0+, taktowanym częstotliwością do 48 MHz, zapewniają wystarczający zapas wydajności dla takiej aplikacji. Przykładowy mikrokontroler STM32C031 może z powodzeniem obsłużyć zewnętrzny przetwornik lub układ AFE przez interfejs SPI, a oprócz niego także zestaw przycisków membranowych, czujnik temperatury, ewentualną pamięć nieulotną (np. przez I2C) oraz niewielki ekran z wbudowanym kontrolerem. W bardziej rozbudowanej wersji można rozważyć użycie STM32C071, oferującego większą pamięć i interfejs USB.

Rodzina STM32C0 jest warta rozważenia, jeżeli zasilanie elektroniki zostaje po pomiarze fizycznie odcięte albo prąd spoczynkowy całego urządzenia jest ograniczany innymi metodami – np. przy użyciu wyspecjalizowanego, scalonego kontrolera zasilania, co jednak podniosłoby koszt układu. Krótki czas samego pomiaru nie oznacza bowiem automatycznie, że pobór energii w wielomiesięcznym okresie przechowywania można pominąć – a STM32C0 nie należą do kategorii mikrokontrolerów ULP (Ultra Low Power). Drugie ograniczenie wynika z braku sprzętowego sterownika pozwalającego na bezpośrednie sterowanie segmentowym wyświetlaczem LCD. Użycie wyświetlacza innego typu, wyposażonego w zintegrowany sterownik (np. OLED), byłoby niezbyt ekonomicznym rozwiązaniem. Tak więc, przymierzając się do projektu glukometru, musimy szukać dalej.

Przeglądając ofertę mikrokontrolerów ULP marki STMicroelectronics dość szybko trafimy na układy STM32U073 lub STM32U083 z wbudowanym kontrolerem LCD. Pierwszy z układów jest uboższy od modelu STM32U083 o koprocesor AES – w przypadku typowego glukometru nie będziemy go jednak potrzebowali, dlatego z powodzeniem możemy zdecydować się na wersję STM32U073. Do wyboru mamy układy w obudowach UFQFPN 32 oraz LQFP 48, 64 i 80. Wybór będzie zależny głównie od liczby segmentów LCD, które musimy obsłużyć, przy czym wersja w obudowie LQFP 48 (STM32U073CC) wydaje się w tym zastosowaniu optymalna.

Ubieralny patch EKG

Ubieralne monitory pracy serca typu „ECG patch” pracują już w zupełnie innych warunkach. Sygnał jest rejestrowany przez wiele godzin lub dni, a urządzenie najczęściej musi jednocześnie prowadzić nie tylko akwizycję, ale także filtrację, wykrywanie zdarzeń, zapis i transmisję bezprzewodową. O czasie działania decyduje nie tylko średni pobór mocy przez procesor, lecz także możliwość wykonywania prostych operacji przez DMA i peryferia przy uśpionym rdzeniu.

Opisane poprzednio układy z rodziny STM32U0 znów mogą być tutaj dobrym wyborem. Uwagę zwraca w szczególności układ STM32U083KC w 32-odprowadzeniowej obudowie UFQFPN o wymiarach 5 x 5 x 0,55 mm – sprawdzi się on w prostym patchu jednoodprowadzeniowym, w którym stosowane są relatywnie proste filtry cyfrowe, nieskomplikowana detekcja zespołów QRS oraz okresowa transmisja danych. Koprocesor AES pozwala realizować szyfrowanie danych bezpośrednio w mikrokontrolerze i dopiero w takiej postaci przesyłać je do modułu radiowego. Rdzeń Cortex-M0+ pracujący z częstotliwością do 56 MHz pozwala utrzymać niski koszt rozwiązania, a zarazem niewielki pobór energii. Trzeba jednak pamiętać o braku jednostki zmiennoprzecinkowej, dlatego algorytmy powinny być przygotowane w sposób zoptymalizowany do użycia w arytmetyce stałoprzecinkowej.

Przy bardziej zaawansowanym przetwarzaniu danych znacznie lepszym wyborem stają się układy STM32U3 oraz STM32U5. Szczególnie kusząca jest seria STM32U3C5, która oprócz zaawansowanej kryptografii oferuje rdzeń Arm Cortex-M33 @ 96 MHz, obszerną pamięć RAM (640 kB) i Flash (aż 2 MB). Niestety, jak widać na poniższym zrzucie ekranu, dostępne obecnie układy w ramach tej podrodziny są dość duże (UQFPN 48, 7×7 mm lub większe).

Portfolio układów STM32U3C5, stan na lipiec 2026 r. (źródło: st.com)

Zajrzyjmy zatem do katalogu STM32U5. Tutaj także mamy dostępny szybki rdzeń Arm Cortex-M33 (160 MHz), pojemność SRAM dochodzi nawet do 3 MB (!), a aż 6 z 12 serii należących do tej rodziny wspiera szyfrowanie AES 128 i deszyfrowanie danych w locie. Jednostka FPU, wsparcie dla instrukcji DSP oraz znacznie większa pamięć umożliwiają realizację filtrów wielokanałowych, analizy widmowej i klasyfikacji sygnału w czasie rzeczywistym. Mechanizmy LPBAM pozwalają natomiast wykonywać sekwencje transferów i operacji peryferyjnych w trybach obniżonego poboru mocy, bez udziału oprogramowania.

Portfolio rodziny STM32U5 (źródło: st.com)

Jeżeli przyjmiemy, że zależy nam szczególnie na miniaturyzacji urządzenia, a na mikrokontroler możemy poświęcić co najwyżej obszar rzędu 5 x 5 mm, do dyspozycji zostają nam już tylko 3 modele układów. Biorąc pod uwagę, że urządzenie ma współpracować z modułem Bluetooth i szyfrować dane medyczne od razu po akwizycji sygnału, nasz wybór znacznie się uprości – idealnym kandydatem okaże się układ STM32U585OI w obudowie WLCSP 90 (4,2 x 3,95 mm, raster 0,4 mm). Pomimo małych rozmiarów wyposażenie sprzętowe jest tu imponujące – nie tylko ze względu na 786 kB pamięci SRAM i 2 MB Flash, ale także pod względem peryferiów analogowych i cyfrowych. Warto zwrócić uwagę, że jeżeli urządzenie miałoby mierzyć sygnał analogowy prosto ze wzmacniacza pomiarowego lub prostego AFE, to w przypadku rodziny STM32U5 może to mieć sens praktyczny z uwagi na dostępny „na pokładzie” 14-bitowy przetwornik ADC (większość rodzin STM32 ma standardowe przetworniki 12-bitowe).

Zestaw funkcji sprzętowych układu STM32U585OI (źródło: st.com)

Podstawowy monitor funkcji życiowych

W zastosowaniach transportowych, podstawowym monitorowaniu pooperacyjnym czy też w opiece ambulatoryjnej zastosowanie znajdują monitory funkcji życiowych, których zakres funkcji ogranicza się przeważnie do pomiaru ciśnienia krwi, saturacji krwi tętniczej i temperatury ciała. Wprawdzie same pomiary są w takich aplikacjach wciąż relatywnie proste do realizacji algorytmicznej (przynajmniej w podstawowych implementacjach), ale pożądaną cechą staje się możliwość wysterowania wyświetlacza graficznego. Dobrym wyborem mikrokontrolerów, które oprócz realizacji podstawowych funkcji pozwalają także na wykonywanie bardziej złożonych algorytmów wykrywania i redukcji artefaktów, jest seria STM32H5. Układy te zapewniają taktowanie do 250 MHz, mają wbudowaną jednostkę FPU, koprocesor matematyczny przyspieszający działanie filtrów cyfrowych (FMAC – tylko w niektórych modelach) oraz rozbudowane mechanizmy bezpieczeństwa oparte na Cortex-M33 i TrustZone.

Portfolio rodziny STM32H5 (źródło: st.com)

Przyjmijmy dla przykładu, że urządzenie nie będzie wyposażone w interfejsy komunikacyjne, narażające je na potencjalne ataki za pośrednictwem sieci Ethernet czy Wi-Fi. Dlatego możemy zrezygnować z zaawansowanych algorytmów szyfrujących. Potrzebna będzie za to obsługa TFT-LCD (blok LTDC), a najlepiej mieć także do dyspozycji akcelerator Chrom-ART2, co pozwoli na zrealizowanie wydajnego interfejsu graficznego. Nasz wybór zawęzimy zatem do wariantów STM32H5E5 i STM32H5F5. Ponieważ źródłem zasilania w tego typu urządzeniach jest przeważnie dość spory akumulator, nie będziemy musieli intensywnie optymalizować poboru mocy – wybierzemy zatem wersję bez przetwornicy SMPS, czyli STM32H5E5ZJ. Oferuje ona aż 4-megabajtową pamięć Flash i 1,5 MB SRAM. Układ jest dostępny m.in. w obudowie LQFP144, która umożliwia obniżenie kosztów produkcji PCB, nie wymaga bowiem stosowania zaawansowanych stosów HDI z przelotkami ślepymi i zagrzebanymi, bez których nie sposób obejść się w przypadku układów BGA bądź WLCSP o drobnym rastrze.

Kardiomonitor anestezjologiczny z ekranem dotykowym

Kardiomonitory stosowane na salach operacyjnych oraz oddziałach intensywnej terapii łączą wielokanałową akwizycję sygnałów, jednoczesne wyświetlanie wielu przebiegów biosygnałowych, obsługę alarmów, archiwizację danych, komunikację sieciową (przede wszystkim przewodową), a także rozbudowane interfejsy dotykowe i sloty rozszerzeń do podłączenia dodatkowych modułów. Przy takiej skali projektu klasyczny mikrokontroler wymagałby wielu kompromisów dotyczących pamięci, systemu plików, grafiki czy aktualizacji oprogramowania. Jeżeli mimo to chcemy pozostać przy układach klasyfikowanych jako (bardzo zaawansowane) mikrokontrolery, to „automatycznie” trafiamy do portfolio układów STM32H7, które umożliwiają równoległe przetwarzanie danych z kilku strumieni, realizację rozbudowanych algorytmów adaptacyjnych oraz interfejsów graficznych o relatywnie dużej rozdzielczości. Mikrokontrolery STM32H7 oferują jeden rdzeń Arm Cortex-M7 @ 600 MHz bądź dwa rdzenie 480-megahercowe, dużą pamięć SRAM, kontrolery zewnętrznej pamięci oraz liczne warianty wyposażone w sterownik LTDC, akcelerator grafiki i kodek JPEG. Serie STM32H745, STM32H755 STM32H747 i STM32H757 zawierają ponadto dodatkowy rdzeń Arm Cortex-M4, który daje sporą swobodę w obsłudze krytycznych czasowo operacji (np. akwizycji danych z front-endów i czujników), podczas gdy główny rdzeń M7 odpowiada za uruchomienie systemu czasu rzeczywistego.

Portfolio układów STM32H7 (źródło: st.com)

Ograniczeniem rodziny STM32H7, które utrudnia implementację bardziej rozbudowanych systemów operacyjnych, jest brak wbudowanej jednostki zarządzania pamięcią wirtualną (MMU). Jeżeli w projekcie decydujemy się na zastosowanie Linuksa, trzeba rozważyć przejście z mikrokontrolerów na procesory aplikacyjne – STM32MP1 lub STM32MP2.

Portfolio procesorów aplikacyjnych z serii STM32MP1 i STM32MP2 (źródło: st.com)

Rodzina STM32MP1 łączy jeden lub dwa rdzenie Arm Cortex-A7 z „małym” rdzeniem Arm Cortex-M4. System Linux może obsługiwać interfejs graficzny, sieć Ethernet, pamięć masową i aktualizacje, natomiast Cortex-M4 przejmuje akwizycję sygnałów oraz inne zadania wymagające deterministycznego czasu reakcji. Jednym z modeli godnych rozważenia jest układ STM32MP157, który oferuje ponadto procesor grafiki 3D i interfejs MIPI DSI, dlatego nadaje się do dojrzałych projektów z ekranem dotykowym. W ofercie STMicroelectronics dostępne są rozbudowane zestawy ewaluacyjne pozwalające na szybkie rozpoczęcie testów oprogramowania oraz zewnętrznych bloków sprzętowych – przykładem może być płyta STM32MP135F-DK, zawierająca nieco mniej rozbudowany, ale wciąż bardzo wydajny układ STM32MP135FAF.

Zestaw ewaluacyjny STM32MP135F-DK (źródło: masters.com.pl)

Linia produktowa STM32MP2 rozwija tę koncepcję o 64-bitowe rdzenie Arm Cortex-A35, wspierane przez Arm Cortex-M33 do zadań czasu rzeczywistego oraz – w wybranych wariantach – dodatkowy Cortex-M0+, procesor grafiki i akcelerator AI. STM32MP257 może obsługiwać kilka interfejsów Ethernet, wyświetlacze MIPI DSI lub LVDS, zewnętrzną pamięć DRAM oraz złożone stosy komunikacyjne. Co ciekawe, niektóre układy umożliwiają montaż nawet na płytach 4-warstwowych z przelotkami PTH, co znakomicie upraszcza proces produkcji i wyraźnie obniża koszty wdrożenia. Najwyższy model – STM32MP257F – oferuje dwurdzeniową jednostkę główną Arm Cortex-A35 @1,5 GHz, dodatkowy rdzeń Arm Cortex-M33 @ 400 MHz, koprocesor graficzny (3D GPU) oraz jednostkę obliczeniową ze wsparciem sieci neuronowych i algorytmów AI. Ze względu na fakt, że rozbudowane kardiomonitory zawsze muszą oferować możliwość łączenia z sieciami lokalnymi w celu telemetrii, STM32MP257F także pod tym względem jest wyborem odpowiednim – oferuje bowiem 3-portowy Ethernet i bogaty zestaw sprzętowych bloków szyfrowania.

Grafika marketingowa rodziny STM32MP25x (źródło: st.com)

Podsumowanie

W artykule opisaliśmy cztery przykłady urządzeń medycznych – począwszy od banalnie wręcz prostego glukometru, a na rozbudowanym kardiomonitorze kończąc. Portfolio układów STM32 jest obecnie na tyle szerokie, że poruszając się tylko i wyłącznie w obrębie tej rodziny mikrokontrolerów i procesorów aplikacyjnych możemy z powodzeniem realizować szeroką gamę urządzeń medycznych.

Warto wspomnieć, że w dobie rosnącego udziału algorytmów brzegowej sztucznej inteligencji (edge AI) zapotrzebowanie na moc obliczeniową będzie coraz większe także w segmencie urządzeń medycznych. W tej branży bowiem fundamentalne znaczenie ma zarówno bezpieczeństwo funkcjonalne, jak i ochrona danych wrażliwych – a właśnie ten ostatni powód sprawia, że rozwiązania brzegowe mają szczególny sens. Pod koniec 2024 roku swoją premierę miała rodzina STM32N6 oferująca wbudowany akcelerator Neural-ART. Układy te łączą rdzeń Arm Cortex-M55 o taktowaniu 800 MHz, wsparcie instrukcji wektorowych Helium, NPU o wydajności do 600 GOPS oraz 4,2 MB pamięci SRAM.

Warto jednak pamiętać, że nawet najbardziej wydajny akcelerator AI nie zastąpi procesu walidacji algorytmu, który w przypadku urządzeń medycznych jest szczególnie złożony i to na wszystkich poziomach (zarówno technicznym, jak i logistycznym oraz prawnym). Model musi zostać oceniony na reprezentatywnych danych, a jego zachowanie w warunkach zakłóceń, braków sygnału i nietypowych przypadków zawsze powinno być uwzględnione w analizie ryzyka całego urządzenia.

Sponsorem artykułu jest firma Masters

Masters jest Oficjalnym Dystrybutorem STMicroelectronics w Polsce, Czechach, Słowacji, Ukrainie i Mołdawii. Współpracujemy nieprzerwanie od 2003 roku. Dowiedz się więcej o produktach, usługach i warsztatach, które wspólnie tworzymy na www.masters.com.pl

Przemysław
Przemysław
Redaktor Naczelny portalu HardwareDesginer.pl. Konstruktor elektronik i programista embedded z ponad 20-letnim doświadczeniem w projektowaniu PCB. Z wykształcenia elektronik medyczny i elektroradiolog, specjalizuje się w projektowaniu i badaniach aparatury medycznej, laboratoryjnej i pomiarowej.

Czytaj więcej

Wybrane dla Ciebie