Szolgáltatások · Beágyazott szoftver- és firmware-fejlesztés

Orvostechnikai firmware-fejlesztés IEC 62304 szerinti dokumentációval

A sebészeti és robotikai rendszerek, terápiás eszközök, laboratóriumi műszerek, viselhető és otthoni használatú eszközök hardverét firmware vezérli, amelynek az auditon is meg kell felelnie. A Silurus Software új firmware-t fejleszt és meglévő firmware-t vesz át beágyazott C és C++ nyelven, RTOS-on és bare metal környezetben. A kóddal együtt elkészíti a követelményeket, a SOUP-listát (az eszközben használt, ismeretlen eredetű, külső féltől származó kódok jegyzékét) és a tesztelési dokumentációt. Mindezt az EU MDR és az FDA követelményei szerint végzi.

Programozási nyelvek
Embedded C · C++ · Python
Célplatformok
RTOS · bare metal
Folyamat
IEC 62304 · ISO 13485 · ISO 14971
Szabályozási eljárás
EU MDR · IVDR · FDA
Mivel foglalkozunk

A hardver első indításától az eszköz használatba vételéig fejlesztjük a firmware-t

01

Board bring-up és driverek

Elvégezzük a board bring-upot, megírjuk a drivereket és kialakítjuk a hardverabsztrakciós réteget. Erre építjük a firmware többi részét.

02

Vezérlési és biztonsági funkciók

Valós idejű vezérlést, riasztásokat, watchdogokat és plauzibilitás-ellenőrzéseket fejlesztünk. Ezeket összekapcsoljuk a kockázatkezelési dokumentációval, és verifikáljuk a működésüket.

04

Bootloader és frissítések

Digitálisan aláírt firmware-image-eket használunk. Ha egy frissítés sikertelen, a bootloader (az eszközt elindító és a frissítéseket telepítő program) visszaállítja az előző jóváhagyott verziót. Biztonsági számlálóval megakadályozzuk a korábbi verzióra történő visszaállítást. Azt is nyilvántartjuk, hogy melyik eszközön melyik verzió fut.

05

Az eszköz felhasználói felülete

Az eszközön futó felhasználói felületek fejlesztésekor figyelembe vesszük az IEC 62366-1 szerinti használhatósági követelményeket.

06

Tesztelés hardver nélkül

Minden kódmódosítás után automatikusan futtatjuk a unit teszteket a fejlesztői gépen, a CI-folyamat részeként. Ahol a hardverfüggőségek engedik, szimulációs módot is kialakítunk. A fizikai áramköri lapot hardware-in-the-loop tesztrendszerekkel vizsgáljuk. A release verifikációját a célhardveren végezzük.

07

Meglévő firmware

Átvesszük a meglévő firmware-t, tesztelhető modulokra bontjuk és refaktoráljuk a kódot. Az IEC 62304 szerinti hiányzó dokumentációt is elkészítjük.

IEC 62304 gap analysis →
08

Műszerek és viselhető eszközök

Műszervezérlő szoftvereket, LIS (laboratóriumi információs rendszer) interfészeket, alacsony fogyasztású firmware-t és kísérőalkalmazásokat fejlesztünk, egységes szoftver-életciklus szerint.

A gyakorlatban

Feladatok, amelyekkel hozzánk fordulnak

Kiindulási helyzet

Elkészült a firmware, közeleg a benyújtás határideje, de hiányzik a dokumentáció

Egy akkumulátoros eszköz firmware-je már működik, és közeledik az FDA-benyújtás. Az architektúra, a részletes tervdokumentáció, a SOUP-nyilvántartás, a tesztspecifikációk, a threat model (az eszköz elleni lehetséges támadások módszeres elemzése) és az SBOM (a buildben szereplő összes szoftverkomponens jegyzéke) azonban hiányzik vagy elavult.

Így dolgozunk

Először gap analysist (a szabvány követelményeihez képest fennálló hiányosságok vizsgálata) végzünk a dokumentáció, a kód és a folyamatok alapján. A hiányzó feljegyzéseket a forráskódból állítjuk helyre. Ezután ellenőrizzük őket a tervezett felhasználás, a rendszerkövetelmények és a kockázatkezelési dokumentáció alapján. Ha az eredeti fejlesztésből nem maradtak bizonyítékok, ezt a jelentésben rögzítjük. Elkészítjük az architektúrát, a szoftvertervezési specifikációt, a nyomon követhető követelményeket és a verifikációs specifikációkat. Az RTOS-t, a gyártói SDK-t, a Bluetooth Low Energy (BLE) stacket és a külső fejlesztésű bootloadert felvesszük a SOUP-listába. Rögzítjük a verziókat, az ismert rendellenességeket és a kockázatértékelést. Az SBOM-ot a buildből állítjuk elő, majd a gyártói bináris állományok felülvizsgálatával egészítjük ki.

Az együttműködés kizárólag a dokumentáció elkészítésére is kiterjedhet. Mérnökeink átvizsgálják a kódot, szabályozási szakértőink és FDA-tanácsadóink pedig összeállítják a benyújtáshoz szükséges dokumentumokat. A fejlesztést ezalatt a saját csapatod folytatja. Ha hiányoznak a végrehajtott tesztek jegyzőkönyvei, a gap analysis során meghatározzuk, mely teszteket kell még lefuttatni a benyújtás előtt.

Kiindulási helyzet

Viselhető eszköz prototípusa, amelyből terméket kell fejleszteni

Egy viselhető eszköz Nordic nRF52 mikrokontrolleren, Zephyr RTOS-szel működik. A prototípus elkészült, de a firmware-frissítés időnként megakad. A csapatban nincs beágyazott rendszerekre szakosodott fejlesztő.

Így dolgozunk

Először átvizsgáljuk a kódot és a frissítési folyamatot. Ellenőrizzük a bootloadert, az image-ek aláírását, a BLE-adatátvitelt és a sikertelen frissítés utáni helyreállítást. Ellenőrzött körülmények között reprodukáljuk a hibát, majd megszüntetjük a kiváltó okát.

Ezután tesztelhető modulokra bontjuk a firmware-t, elkészítjük a fejlesztési tervet és a szoftverbiztonsági osztálynak megfelelő, IEC 62304 szerinti dokumentációt. Ezzel folytathatjuk az eszköz CE-jelöléséhez vagy FDA-benyújtásához szükséges munkát.

Kiindulási helyzet

Nehezen módosítható, régóta használt RTOS-alapú firmware

Egy eszköz STM32 mikrokontrolleren, FreeRTOS-szel futó firmware-e tízéves. Minden módosítás kockázatos, a teszteléshez szükség van a fizikai eszközre. Az eredeti fejlesztők már nem dolgoznak a projekten.

Így dolgozunk

Szimulációs módot és hardverabsztrakciós réteget alakítunk ki. Így a unit és integrációs tesztek a fizikai eszköz nélkül is futhatnak a CI-folyamatban. A fennmaradó teszteket hardware-in-the-loop tesztrendszerekkel végezzük. Rögzítjük a fejlesztőeszközök verzióit, hogy a build reprodukálható legyen.

Ezután a nálatok alkalmazott változáskezelési folyamat szerint, modulonként refaktoráljuk a firmware-t. Csapatunk hosszú távon is átveheti a karbantartást, a SOUP-komponensek frissítését és az új release-ek elkészítését.

Kiindulási helyzet

Többmodulos mérőeszköz

Egy betegvizsgálati mérőeszköz külön modulokkal méri az EKG-t, a vérnyomást, az SpO2-t vagy a hőmérsékletet. Minden modulnak saját mikrokontrollere van. Közeleg a tervezési verifikáció egyik mérföldköve.

Így dolgozunk

Az egyes modulok firmware-je közös hardverabsztrakciós interfészre épül, amelyet az adott mikrokontrollerhez implementálunk. A modulok saját interfészen kommunikálnak a központi egységgel. Szoftverbiztonsági osztályukat (A, B vagy C, a szoftverhiba okozta lehetséges ártalom alapján) a kockázatelemzés és a modulok közötti, verifikált elkülönítés alapján határozzuk meg. Önmagában a külön mikrokontroller nem indokol alacsonyabb besorolást. A riasztásokat, a hibákra adott reakciókat és a plauzibilitási ellenőrzéseket az ISO 14971 szerinti kockázatkezelési dokumentációhoz kapcsoljuk. Az eszközszintű bizonyítékokat az ügyfél rendszermérnökeivel együtt készítjük el. Ezeknek az IEC 60601-1 és az egyes mérési funkciókra vonatkozó különös szabványok követelményeit kell teljesíteniük.

A verifikációt már a fejlesztés kezdetén megtervezzük. Minden buildnél automatizált regressziós teszteket futtatunk. Így a mérföldkőig a kóddal párhuzamosan elkészül a verifikációs dokumentáció is.

A folyamat menete

A firmware-t egységes szoftver-életciklus szerint fejlesztjük

Tervezés

Fejlesztési terv

Meghatározzuk a szoftverbiztonsági osztályt, kiválasztjuk a fejlesztőeszközöket, és megtervezzük a konfigurációkezelést és a projekt dokumentációját.

Részletes tervezés

Követelmények és architektúra

A firmware követelményeit összekapcsoljuk a rendszerkövetelményekkel és a kockázatcsökkentő intézkedésekkel. Meghatározzuk a szoftverelemeket, az interfészeket és az időzítési követelményeket.

Fejlesztés

Kód és tesztek

A kódot szimulációban futó unit és integrációs tesztekkel ellenőrizzük. A fizikai áramköri lapon hardware-in-the-loop teszteket végzünk.

Release

A release dokumentációja

Minden firmware buildhez tesztjelentéseket, nyomon követhetőségi dokumentációt és jegyzéket készítünk az ismert rendellenességekről.

Karbantartás

Release után

Javítjuk a használatban lévő firmware hibáit, kezeljük a módosításokat, frissítjük a SOUP-listát és az SBOM-ot, és biztonsági javításokat készítünk.

Mit adunk át

A firmware-hez készülő dokumentumok

D-01

Fejlesztési terv és követelmények

Elkészítjük a szoftverfejlesztési tervet, meghatározzuk a firmware követelményeit, és összekapcsoljuk őket a rendszerkövetelményekkel.

D-02

Architektúra és részletes terv

Meghatározzuk a szoftverelemeket, az interfészeket és az időzítési követelményeket. Ezután részletesen megtervezzük a szoftveregységeket.

D-03

SOUP-lista és SBOM

Az RTOS, a gyártói SDK, a könyvtárak és a protokollstackek esetében rögzítjük a verziót, az ismert rendellenességeket és a kockázatértékelést. Dokumentáljuk a támogatás szintjét és megszűnésének időpontját is.

D-04

Tesztek és nyomon követhetőség

Unit, integrációs, hardware-in-the-loop és rendszerteszteket végzünk. A követelményektől a teszteredményekig dokumentáljuk a nyomon követhetőséget.

EU és USA

Mindkét piac követelményei szerint fejlesztünk firmware-t

Európai Unió

EU MDR

Szabályozási szakértőinkkel közösen elkészítjük az EU MDR szerinti műszaki dokumentáció firmware-re vonatkozó részét. In vitro diagnosztikai rendeltetésű műszereknél az IVDR követelményeit követjük.

Egyesült Államok

FDA

FDA-tanácsadóinkkal közösen elkészítjük a benyújtáshoz szükséges szoftver- és kiberbiztonsági dokumentációt.

Technológiák és szabványok

Amivel dolgozunk

Technológiák és eszközök

CEmbedded CC++RustRTOSFreeRTOSZephyrMCUbootNordic nRF52STM32ESP32MicroPythonBluetooth LEBare metalGoogleTestCppUTestUnityHardware in the loopPolyspacePC-lint

Szabványok, előírások és fejlesztési gyakorlatok

MISRA CIEC 62304IEC 60601-1IEC 61010-1ISO 14971IEC 81001-5-1IEC 62366-1ISO 13485EU MDRFDA

Silurus Software

  • A Silurus Software 2017-ben alakult, irodái Budapesten és Szingapúrban találhatók
  • Több mint 40 mérnök, EU MDR szabályozási szakértők és FDA-tanácsadók
  • Az ügyfél ISO 13485 szerinti minőségirányítási rendszerében dolgozunk. A feladatokat és a felelősségi köröket még a munka megkezdése előtt írásban rögzítjük. Ha az ügyfélnek még nincsenek dokumentált szoftverfejlesztési eljárásai, IEC 62304 szerinti sablonokat adunk. Ezeket az ügyfél beépítheti a saját rendszerébe.
  • Többéves mérnöki együttműködés egy európai MedTech-gyártóval
  • Török Péter alapító és CTO 1999 óta foglalkozik orvostechnikai szoftverekkel. Korábban a Siemens Healthcare (syngo.via) szoftverfejlesztési igazgatója, majd a Mediso Medical Imaging Systems K+F vezetője volt.
  • ISO 9001:2015 (NQA, 171041 számú tanúsítvány, érvényes 2027. márciusig) és ISO/IEC 27001:2022 (NQA, 728872 számú tanúsítvány, érvényes 2029. augusztusig)
  • 2025-ben AAA minősítést kaptunk a Dun & Bradstreet hitelképességi értékelésében, amely a legmagasabb minősítési fokozat
  • A budapesti Eötvös Loránd Tudományegyetem (ELTE) kutatási partnerei vagyunk
  • 2027-től ipari partnerként veszünk részt az EU Horizon Europe LOGOS projektjében a Bolognai Egyetemmel, a Pisai Egyetemmel, az Amszterdami Egyetemmel és a brnói Masaryk Egyetemmel
  • Dr. Szántó Linda ügyvezető 2025-ben elnyerte a Female Business Leader of the Year, 2026-ban pedig a The Pioneer Award díjat
Hogyan dolgozunk →Minőség és szabványok →Dokumentumminták →Esettanulmányok →
FAQ

Gyakori kérdések

01

Át tudjátok vizsgálni a meglévő firmware-t, és elkészíteni az IEC 62304 szerinti dokumentációt?

Igen. Először gap analysis keretében megvizsgáljuk a kódot, a dokumentációt és a fejlesztési folyamatot. Ezután a forráskód alapján elkészítjük a hiányzó dokumentumokat.

02

Régi firmware refaktorálását és karbantartását is vállaljátok?

Igen. Először tesztelhető modulokra bontjuk a firmware-t. Ahol a hardverfüggőségek engedik, szimulációs módot is kialakítunk. Így minden módosítást ellenőrizhetünk a CI-folyamatban, mielőtt a kódot a hardveren futtatnánk. A release verifikációját a célhardveren végezzük.

03

Hogyan kezelitek a már használatban lévő eszközök firmware-frissítéseit?

Aláírt firmware image-eket és olyan bootloadert használunk, amely sikertelen frissítés után visszaállítja az előző jóváhagyott verziót. Biztonsági számlálóval akadályozzuk meg a korábbi, sérülékeny verziók telepítését. A megszakadt frissítés utáni helyreállítást is kezeljük. Ezeket a kockázatkezelési dokumentációban és a threat modelben is elemezzük.

04

A saját hardverünkön is teszteltek?

Igen. Az adott áramköri lapra épített hardware-in-the-loop tesztrendszerekkel dolgozunk. Minden módosításnál szimulációs teszteket is futtatunk.

05

Az alkalmazást és a felhőalapú részt is fejlesztitek?

Igen. A firmware-t, a kísérőalkalmazást és a felhőalapú backendet közös fejlesztési terv szerint is fejleszthetjük.

06

Hardverközeli fejlesztéssel is foglalkoztok, vagy elsősorban alkalmazásokat és felhőalapú szoftvereket fejlesztetek?

Hardverközeli fejlesztéssel is foglalkozunk. Beágyazott rendszerekkel dolgozó mérnökeink C és C++ nyelven fejlesztenek mikrokontrollerekre, bare metal és RTOS környezetben. Board bring-upot végzünk, drivereket és hardverabsztrakciós réteget fejlesztünk. A vezérlési logikát és az eszköz felhasználói felületét is elkészítjük.

07

Van tapasztalatotok Nordic nRF52, Zephyr, STM32 és FreeRTOS használatával?

Igen. Mérnökeink dolgoztak Nordic nRF52 platformon, Zephyr környezetben az nRF Connect SDK-val, valamint STM32 mikrokontrollerekkel FreeRTOS alatt. ESP32 és bare metal célplatformokon is szereztünk tapasztalatot.

08

Mely IEC 62304 szerinti szoftverbiztonsági osztályokban dolgoztok?

Mindháromban, az A, B és C osztályban. Az egyes szoftverelemek besorolásától függ, mely IEC 62304 szerinti tevékenységeket kell elvégezni. A B és C osztályban például kötelező a szoftveregységek verifikációja, a C osztályban pedig a részletes tervezés is. A kockázatcsökkentő intézkedéseket összekapcsoljuk az ISO 14971 szerinti kockázatkezelési dokumentációval. Mindezt az ISO 13485 szerinti minőségirányítási rendszeredben végezzük.

09

Vállaltok kizárólag dokumentációkészítést FDA-benyújtáshoz, fejlesztés nélkül?

Igen. A dokumentációt az FDA 2023-as szoftverútmutatója szerinti Basic vagy Enhanced documentation level követelményeihez igazítjuk. Ez a besorolás független az IEC 62304 szerinti szoftverbiztonsági osztálytól. A meglévő kód alapján elkészítjük az architektúra leírását, szükség esetén a Software Design Specification dokumentumot és a követelményeket. Dokumentáljuk a nyomon követhetőséget, összeállítjuk a verifikációs specifikációkat és a SOUP-listát. Elkészítjük a threat modelt, a kiberbiztonsági kockázatértékelést és az SBOM-ot, majd összeállítjuk az eSTAR-benyújtás dokumentációját. Az 524B szakasz hatálya alá tartozó cyber device esetében az SBOM és a forgalomba hozatal utáni sérülékenységkezelési terv is része a dokumentációnak. Ha hiányoznak a tesztjegyzőkönyvek, a gap analysis során meghatározzuk, mely teszteket kell még lefuttatni a benyújtás előtt.

10

Hogyan érinti a Zephyr és a gyártói SDK-k használata az IEC 62304 szerinti dokumentációt?

A Zephyr és a gyártói SDK-k külső fejlesztésű szoftverek, amelyekhez nem áll rendelkezésre IEC 62304 szerinti fejlesztési dokumentáció. Ezért SOUP-nak minősülnek. Minden firmware-be épülő komponenst felveszünk az SBOM-ba. Azokat a komponenseket a SOUP-listában is rögzítjük, amelyekhez nincs IEC 62304 szerinti fejlesztési dokumentáció. Feltüntetjük a verziójukat, az ismert rendellenességeket és a kockázatértékelést. A frissítéseket a változáskezelési folyamat szerint kezeljük. A saját IEC 62304 szerinti folyamatunkban fejlesztett bootloader vagy modul szoftverelemnek számít, nem SOUP-nak.

11

Fejlesztetek Bluetooth LE-kapcsolatokat viselhető és otthoni használatú eszközökhöz?

Igen. Megtervezzük a GATT-struktúrát, implementáljuk a pairing és bonding funkciókat, a titkosított kapcsolatot és az újracsatlakozást. Kezeljük az adatpufferelést és az alacsony energiafogyasztású működést. Szükség esetén a kísérőalkalmazást is elkészítjük.

12

Milyen gyorsan indulhat egy firmware-projekt, és mennyibe kerül?

A gap analysist a megrendeléstől számított két héten belül megkezdjük. A mérnöki csapat a szerződés aláírását követő két-három héten belül kezdhet dolgozni. Minden projektre külön árajánlatot készítünk, miután előzetesen áttekintettük a kódot és a dokumentációt.

13

MCUboottal és MicroPythonnal is dolgoztok?

Igen. Az MCUbootot biztonságos bootloaderként használjuk az aláírt firmware-frissítésekhez. Sikertelen frissítés után visszaállítjuk az előző jóváhagyott verziót. Biztonsági számlálóval akadályozzuk meg a korábbi verziók telepítését. MicroPythonnal is fejlesztünk mikrokontrollerekre, például ESP32-re, laboratóriumi és kutatási műszerekhez. Ilyenkor a felhasználói felületet külön, PC-n futó Python-alkalmazás kezeli.

Vedd fel velünk a kapcsolatot

Írd meg, milyen firmware-ről van szó

Írd meg, milyen eszközről és platformról van szó, és hol tart a dokumentáció. Válaszunkban javaslatot teszünk az első lépésre.

Foglalj időpontot egy 30 perces szakmai egyeztetésre
Egy munkanapon belül válaszolunk.