Jste zde

Velký přehled operačních systémů pro embeded zařízení

Embeded zařízení již nejsou jednoduchá zařízení. Komunikace s uživatelem pomocí dotykové obrazovky nebo zpracování dat ze senzorů si vyžádá dostatečný výkon pro sofistikované algoritmy. Operačních systémů existuje mnoho a každý je vhodný pro jinou situaci.

Operační systémy pro embeded zařízení často vychází z plnohodnotných operačních systémů. Jsou optimalizovány kvůli omezení velikosti paměti a výkonu. Jejich největším úkolem bývá zpracování a přenos dat přes internet. Řídicí systémy v automobilech, semaforech, inteligentních televizích, bankomatech, prodejních terminálech, digitální navigační systémy GPS, inteligentní měřiče a mnoho dalších. Tam všude je použit operační systém.

Dnes existuje mnoho vestavěných operačních systémů od otevřených po uzavřené. Každý má své výhody, ale i své úskalí. Vždy je nutné udělat kompromis a pro danou aplikaci zvolit vhodný operační systém.  

Jaké parametry vzít v potaz při výběru vhodného operačního systému?

  • Režijní náklady: Protože embeded zařízení mají omezenou paměť, očekáváme, že operační systém bude mít malé požadavky na paměť, spotřebu a výkon. Režijní náklady OS by měly být minimální.
  • Přenositelnost: Operační systém by měl být nezávislý na použitém hardwaru. Obvykle je OS standardně přenášen na různé hardwarové platformy a rozhraní pomocí podpory BSP, například pomocí volání POSIX.
  • Modularita: Operační systém by měl mít pevné jádro a všechny další funkce by měly být přidány ve formě doplňků. Uživatel si pak může daný operační systém přizpůsobit dané aplikaci, a tím zredukovat velikost, kterou operační systém v embeded zařízení zabírá.
  • Konektivita: Operační systém by měl podporovat různé protokoly připojení, například Ethernet, Wi-Fi, BLE, IEEE 802.15.4 a další.
  • Škálovatelnost: Operační systém by měl být škálovatelný pro jakýkoli typ zařízení. To znamená, že vývojáři a integrátoři budou znát pouze jeden operační systém pro uzly i brány.
  • Spolehlivost: Tato vlastnost je nezbytná nejen pro kritické systémy. Zařízení jsou často na odlehlých místech a musejí pracovat roky bez selhání. Spolehlivost také znamená, že OS by měl splňovat příslušné certifikáty pro určité aplikace. Například zdravotnictví.
  • Bezpečnost: Operační systém má doplňky, které přinášejí zabezpečení zařízení pomocí bezpečného spouštění, podpory SSL a ovladačů pro šifrování.

Jaké certifikace můžeme vyžadovat po operačním sytému?

  • DO-178B pro systémy avioniky
  • IEC 61508 pro průmyslové řídicí systémy
  • ISO 62304 pro zdravotnické zařízení
  • SIL3 / SIL4 IEC pro dopravu a jaderné systémy

 

Operační systém RIOT

Tento operační systém je poměrně hodně rozšířen. Jedná se o bezplatný operační systém s otevřeným zdrojovým kódem, na kterém se podílí firmy, akademická veřejnost a nadšenci. RIOT podporuje většinu nízkoenergetických mikrokontrolérů(32bitové, 16bitové i 8bitové architektury). RIOT si klade za cíl implementovat všechny relevantní otevřené standardy podporující internet věcí. Klade důraz na konektivitu, bezpečnost, odolnost a soukromí. To znamená, že jej můžete dále distribuovat nebo upravovat. Programování je v jazyku C nebo C++. Podporuje standardní nástroje jako jsou gcc, gdb nebo valgrid.

Software je vyvinut komunitou RIOT a je k dispozici za podmínek GNU Lesser General Public License zveřejněné Free Software Foundation, verze 2.1 (LGPLv2.1).

Podporované architektury:

AVR, ARM7, Cortex-M0, Cortex-M0 +, Cortex-M3, Cortex-M4, Cortex-M7, ESP8266, MIPS32, MSP430, PIC32, x86.

Desky a moduly

Airfy Beacon, Arduino Due, Arduino Mega 2560, Arduino Zero, Atmel samr21-Xplained Pro, f4vi, mbed NXP LPC1768, Micro :: bit, Nordic nrf51822 (DevKit), Nordic nrf52840 (DevKit), Nucleo desky (téměř všechny) a mnoho dalších.

Více informací na https://www.riot-os.org

Mongoose OS - rámec pro vývoj firmwaru IoT

Mongoose OS je framework pro vývoj firmwaru internetu věcí dostupný pod licencí Apache License verze 2.0. Podporuje nízkoenergetické mikrokontroléry, jako jsou: ESP32, ESP8266, TI CC3200, STM32. Jeho cílem je být úplným řešením pro vývoj a správu připojených zařízení.

Podpora MCU

STMicro: STM32 F4, L4, F7; TI: CC3200, CC3220; Espressif: ESP32, ESP8266

Cloudové integrace

AWS IoT, Google IoT, Microsoft Azure, IBM Watson a podpora MQTT / REST

K dispozici je Dashboard mdash, kde získáte plnou správu svých připojených zařízeních. mdash poskytuje mnoho funkcí, jako je aktualizace firmwaru OTA, stav webového rozhraní online / offline a metadata (verze firmwaru, doba provozu atd.). K dispozici je také mobilní aplikace pro iOS i Android.

Více informací na https://mongoose-os.com

Contiki OS: Open Source OS pro IoT

Contiki je operační systém s otevřeným zdrojovým kódem. Contiki je výkonný nástroj pro vytváření komplexních bezdrátových systémů. Contiki podporuje plně standardní IPv6 a IPv4 a nejnovější bezdrátové standardy: 6lowpan, RPL, CoAP.

Contiki poskytuje multitasking a má vestavěný Internet Protocol Suite (TCP / IP stack) a přesto potřebuje pouze asi 10 kilobajtů RAM paměti a 30 kilobajtů paměti ROM. Celý systém, včetně grafického uživatelského rozhraní, potřebuje asi 30 kilobajtů paměti RAM. Aplikace Contiki jsou psány ve standardním jazyku C a se simulátorem Cooja mohou být sítě Contiki emulovány před vypálením do hardware. Instant Contiki poskytuje celé vývojové prostředí. Contiki lze bez omezení používat v komerčních i nekomerčních systémech.

Podporované MCU

TI CC2538, nRF52832, RL78, TI MSP30x, Atmel AVR, Freescale MC1322x, Atmel Atmega 128 RFA1, Microchip pic32mx795f512l, TI CC2530 a další

Více informací na https://github.com/contiki-ng/contiki-ng/wiki

Windows 10 IoT

Windows IoT, dříve Windows Embedded je rodina operačních systémů od společnosti Microsoft navržená pro použití ve vestavěných systémech. Společnost Microsoft má v současnosti různé podskupiny operačních systémů pro vestavěná zařízení, která cílí na široký trh, od malých zařízení až po zařízení prodejních míst jako jsou kiosky.

Společnost Microsoft spolupracuje s NXP. Verzi Preview systému Windows 10 IoT Core je na procesorech NXP i.MX 6 a i.MX 7. Produktové portfolio i.MX je jednou z vůbec nejoblíbenějších řad procesorů pro IoT. Windows 10 IoT Core využívá jedinečnou vlastnost procesorů NXP i.MX 6 a i.MX 7, kterou je možnost povolit důvěryhodné vstupy a výstupy. Je tak zajištěno, že škodlivé aplikace nebo neautorizované strany nemůžou nijak manipulovat s fyzickým ovládáním zařízení, a to ani v případě, že se jim podaří proniknout do softwaru operačního systému.

Několik předních dodavatelů hardwaru představilo zařízení postavená na procesoru i.MX 6 a systému Windows 10 IoT Core. Jedná se jak o moduly SOM, tak o jednodeskové počítače, což rozšiřuje možnosti výrobců, kteří mají zájem budovat produkty postavené na NXP, Windows 10 IoT Core a Azure.

 

Podporovaný prototypové desky

AAEON Up Squared, DragonBoard 410c, Keith & Koep i-PAN M7 CoverLens, Keith & Koep i-PAN T7 CoverLens, MinnowBoard Turbot, NXP i.MX 6, NXP i.MX 7, NXP i.MX 8M/8M Mini, Raspberry Pi 2 a Raspberry Pi 3B

Více informací na https://developer.microsoft.com/cs-cz/windows/iot

Azure RTOS

Druhým prostředím, kde Microsoft podporuje embedded zařízení, je Azure. Zde je vývojářům k dispozici Azure RTOS a další bloky, jako Azure IoT device SDK for C, IoT Plug and Play, IoT Central a IoT Hub. Azure RTOS existuje paralelně s Windows IoT a bude tomu tak nadále. Má to své důvody. Zatímco Windows IoT se zaměřuje primárně na vývoj uživatelského rozhraní věcí, Azure RTOS řeší zejména samotný chod zařízení. Z toho plynou také hardwarové limity.
Azure RTOS je poměrně novou značkou Microsoftu, přesto jde o známé a rozšířené vývojové prostředí. Důvodem je rebranding. Pod značku Azure se začlenil ThreadX, systém, který od roku 1997 úspěšně vyvíjela a prodávala americká firma Express Logic, podepsaná také pod dále zmíněným Nucleus RTOS . Tu v dubnu 2019 koupil Microsoft a celý ThreadX začlenil do prostředí Azure, které tak získalo velký potenciál pro embedded aplikace. Seznam podporovaných platforem (https://en.wikipedia.org/wiki/ThreadX)  je v tomto případě poměrně dlouhý.  
https://azure.microsoft.com

Android Things

Android Things umožňuje vytvářet inteligentní zařízení pro širokou škálu spotřebitelských, maloobchodních a průmyslových aplikací. Jedná se o operační systém vydaný společností Google pro IoT a vestavěná zařízení. Je založen na Androidu, který používá linuxové jádro. Má proto podporu pro multitasking a virtuální paměť.

AndroidThings používá stejné spodní vrstvy zásobníku jako Android. Byla přidána knihovna pro podporu IoT. Tato knihovna poskytuje nízkoúrovňový přístup k hardwaru (GPIO, PWM, I2C, SPI, UART atd.), Což u Androidu není možné. Systémové aplikace typické pro telefony Android nejsou nainstalovány.

Android Things vs Android

Více informací na https://developer.android.com/things/

ARM Mbed OS

Mbed OS je operační systém s otevřeným zdrojovým kódem pro platformy využívající mikrokonřadiče Arm navržené speciálně pro IoT zařízení. Mbed OS poskytuje abstrakční vrstvu pro mikrokontroléry a vývojáři se mohou soustředit na psaní aplikací. Mají přitom velmi dobrý základ konektivity bezpečnosti i hardwarové kompatibility.

Mbed OS používá hardwarovou abstrakční vrstvu (HAL) k podpoře nejběžnějších částí mikrokontroléru, jako jsou časovače. Tento základ usnadňuje psaní, protože Mbed OS zahrnuje potřebné knihovny a podporu ovladačů pro standardní periferie MCU, jako jsou I2C, sériové a SPI. Mbed OS má jádro RTOS, takže podporuje deterministické, vícevláknové provádění softwaru v reálném čase. RTOS využívá vlákna, semafory, mutexy a další funkce.

Více informací na https://vyvoj.hw.cz/mbed-operacni-system-pro-iot-zarizeni-usity-na-miru.mikrokontroleru-arm.html

Amazon FreeRTOS

Amazon FreeRTOS je operační systém mikrokontroléru IoT, který zjednodušuje vývoj, zabezpečení, nasazení a údržbu edge zařízení na bázi mikrokontroléru. Amazon FreeRTOS rozšiřuje jádro FreeRTOS knihovnami, které umožňují místní a cloudové připojení, zabezpečení bezdrátové aktualizace.

Historicky byl „FreeRTOS“ používán jako zkratka pro jádro „FreeRTOS Kernel“. Jádro FreeRTOS vždy poskytovalo a stále poskytuje plánovač v reálném čase a sadu primitivní komunikace mezi úkoly. Amazon FreeRTOS poskytuje open source knihovny zabezpečení a připojení, které jsou navrženy pro práci s tímto jádrem. Jsou dodávány plně integrované se stejným jádrem FreeRTOS, které je k dispozici na webu www.FreeRTOS.org

Amazon FreeRTOS nemění jádro FreeRTOS, ale rozšiřuje o další funkce. Podívejte se také na časté otázky ohledně Amazon FreeRTOS vs FreeRTOS? Amazon Web Services (AWS) také poskytují konzolu pro online správu online připojených zařízení.

Více informací na https://aws.amazon.com/freertos/ a https://freertos.org/index.html

Ubuntu Core

Ubuntu Core je minimalistické ztvárnění Ubuntu, který je optimalizován k nasazení na vestavěná a IoT zařízení, cloudu a další. Nová verze Ubuntu Core vychází z Ubuntu 18.04 LTS a podporována bude 10 let.

Další verzí ubuntu je Snappy Ubuntu Core, která je nejmenší podoba distribuce Ubuntu, jež si vystačí s pouhými 40 MB operační paměti (celkově – tedy i pro aplikace – by jí mělo být k dispozici aspoň 128 MB). Snappy Ubuntu Core je v podstatě velmi ořezanou verzí klasického Ubuntu. Aplikace snappy apps jsou oddělené na kontejnerové bázi, distribuují se odděleně od systému, každá má své vlastní místo v adresářovém stromě.

Ubuntu je rozšířen mezi uživateli raspberry a také se používá s rodinou procesorů Artik od Samsungu.

       

Projekt Zephyr

Linux Foundation spustil projekt Zephyr, který má za cíl vybudovat nejlepší malý škálovatelný operační systém v reálném čase (RTOS) optimalizovaný pro embeded zařízení napříč různými architekturami. Vytvořit neutrální projekt, ve kterém dodavatelé procesorů a mikrokontrolérů mohou přispět technologií ke snížení nákladů a urychlení času vývoje.

Je ideální pro vytváření jednoduchých senzorových sítí, nositelné zařízení až po modemy a malé bezdrátové brány IoT. Zephyr OS je modulární a podporuje více architektur. Vývojáři mohou snadno Zephyr projekt přizpůsobit tak, aby vyhovoval jejich potřebám.

Jádro Zephyr je odvozeno od komerčního VxWorks Microkernel Profile. Microkernel Profile se vyvinul v průběhu 20 let z technologie DSP RTOS známé jako Virtuoso. RTOS se používá v několika komerčních aplikacích včetně satelitů, vojenského velení a řízení komunikace, radaru a zpracování obrazu. Nejnovějším příkladem úspěchu technologie je úspěšné přistání Philae na kometě Churyumov - Gerasimenko a doprovodná Rosetta Orbiter.

Seznam podporovaných desek naleznete na stránce https://docs.zephyrproject.org/latest/boards/index.html

Více informací na https://zephyrproject.org

Nucleus RTOS

Nucleus RTOS je operační systém od divize Embedded Software společnosti Mentor Graphics. Podporuje 32 a 64 bitové Embeded platformy. Nucleus RTOS byl poprvé uveden na trh již v roce 1993. Nejnovější verze Nucleus RTOS je v3.x, která obsahuje funkce, jako je správa napájení, procesní model, 64bitová podpora, bezpečnostní certifikace a podpora multi-jádrových SOC.

Nucleus RTOS je nasazen ve více než 3 miliardách zařízení a poskytuje vysoce škálovatelné řešení. Spolehlivost byla ověřena v leteckých, průmyslových a lékařských aplikacích. Vývojáři mohou plně využívat multi-jádrové řešení napříč spektrem mikrokontrolérů a mikroprocesorových SoC pomocí konfigurace SMP a AMP.

Společnost Honeywell si vybrala systém Nucleus Real Time OS pro systém varování před přiblížením k zemi v aplikaci pro letecký průmysl.  Operační systém Nucleus poskytl společnosti Garmin úplný zdrojový kód a flexibilní obchodní model, který potřebovali k vývoji systému Avionics Navigator CNX80. Společnost ZOLL si vybrala Nucleus k vytvoření svého automatizovaného externího defibrilátoru AED Plus. Tyto příklady svědčí o jeho spolehlivosti.

Seznam podporovaného hardware je k dispozici na https://www.mentor.com/embedded-software/nucleus/processor-support

Více informací na https://www.mentor.com/embedded-software/nucleus/

NuttX

NuttX byl poprvé vydán v roce 2007 na základě povolení BSD. NuttX je POSIX RTOS. Pro programování není nutné se učit nové API. Můžete napsat aplikaci v operačním systému podporující POSIX, jako je Linux nebo MacOS, ověřit ji a poté ji zkompilovat tak, aby fungovala na NuttX.

Pokud nechcete vytvářet aplikace od nuly, můžete uchopit některé malé Linuxové knihovny a provést drobné úpravy, aby pracovaly na NuttXu. NuttX je operační systém v reálném čase (RTOS) s důrazem na dodržování norem. Primární standardy v NuttX jsou Posix a ANSI.

NuttX má také mnoho subsystémů, které se podobají subsystémům v Linuxu. Například Virtual File System (VFS), Memory Technology Device (MTD), Audio subsystém, USB systém s podporou USB Composite a mnoho dalších.  Základní verzi NuttX lze spustit na mikrokontrolérech s méně než 32 kB Flash a méně než 8 kB RAM.

Samozřejmě, pokud firmware má obsahovat další funkce - USB, Ethernet / WiFi s IPv6, CAN atd. - pak je lepší použít mikrokontrolér s více než 64 kB Flash a 32 kB RAM.

Seznam podporovaného hardware naleznete na http://www.nuttx.org/Documentation/NuttX.html#platforms

Více informací na https://nuttx.org

TinyOS

Začalo to jako spolupráce mezi Kalifornskou univerzitou, Berkeley, Intel Research a Crossbow Technology. Byla vydána jako bezplatný open-source software na základě licence BSD a od té doby se rozrostla na mezinárodní konsorcium, TinyOS Alliance.

TinyOS je integrovaný operační systém a platforma pro bezdrátové senzorové sítě (WSN), osobní sítě, automatizace budov a inteligentní měřiče. Je psán v programovacím jazyce nesC, jako soubor spolupracujících úkolů a procesů. nesC je rozšíření programovacího jazyka C. TinyOS je operační systém řízený událostmi určený pro uzly senzorových sítí, které mají velmi omezené zdroje (např. 8 kB bytů programové paměti, 512 bytů RAM)

Více informací na http://www.tinyos.net

Apache Mynewt

Je operační systém s bohatou sadou knihoven, které mají usnadnit vytváření prototypů, rozmístění a správu 32bitových zařízení. Jméno Mynewt znamená velmi malé. Jádro má velikost pouze 6 KB. Jedná se o bezplatný a open-source software distribuovaný Apache Software Foundation se zdrojovým kódem distribuovaným v rámci Apache License 2.0. Je dodáván s plnou implementací Bluetooth low energy 4.2 stackem. Velikost image pro Nordic nRF51822 Bluetooth SoC je přibližně 76 KB bez bootloaderu.

Více informací na https://mynewt.apache.org

Huawei LiteOS 

Jedná se o operační systém s otevřeným zdrojovým kódem pro inteligentní terminály IoT. Podporuje ARM (M0 / 3/4/7, A7 / 17/53, ARM9 / 11), X86, RISC-V, mikrokontroléry různých architektur, postupuje podle BSD 3. Velikost jádra je do 10 KB a spotřebovává velmi málo energie - může běžet na AA baterii až pět let!  Huawei LiteOS umožňující terminálům IoT rychlý přístup k síti. Usnadní vývoj inteligentního hardwaru. Tím se zrychluje realizace propojení všech věcí.

Více informací na https://www.huawei.com/minisite/liteos/en/

Micrium od Silicon labs

µC / OS má plnou podporu funkcí pro TCP / IP, USB, sběrnice CAN a Modbus. Zahrnuje robustní systém souborů a grafické uživatelské rozhraní. Software Micrium zahrnuje komplexní dokumentaci, plný zdrojový kód, výkonné funkce pro ladění a podporu pro širokou škálu architektur CPU. Software Micrium nabízí bezprecedentní snadné použití, malou paměťovou stopu a vysokou energetickou účinnost. A to vše s plnou sadou protokolů. Inženýři na celém světě, kteří vyrábějí průmyslové ovládací prvky, zdravotnická zařízení a letecké systémy, vědí, že se mohou při vytváření výjimečných produktů spolehnout na software Micrium.

Více informací na https://www.micrium.com

 

Hodnocení článku: 

Komentáře