Jste zde

Jak vybrat správný RTOS a platformu pro IoT aplikace

Vývoj zařízení IoT může být náročnější, než si mnozí vývojáři nebo firmy uvědomují. Propojení vestavěného systému s cloudem dramaticky zvyšuje časovou náročnost systému. Nejlepším způsobem, jak se vyhnout psaní vlastních plánovačů nebo zabývat se načasováním na úrovni hardware, je použít operační systém v reálném čase (RTOS).

Výběr správného RTOS pro danou aplikaci může být náročný. Na trhu je k dispozici více než 100 operačních systémů v reálném čase (open source až po certifikované komerční RTOS). V tomto článku se dozvíme, jak se vybírá RTOS pro danou aplikace. Pak si představíme vývojové platformy od společnosti STMicroelectronics a Renesas, které lze použít k zahájení vývoje.

Faktory, které je potřeba zvážit při výběru RTOS

Operační systémy v reálném čase tvoří základ, na kterém vývojáři vytvářejí svůj aplikační kód. Výběr správného RTOS je rozhodující, aby aplikace byla postavena na pevném a prověřeném základu. Často se stává, že výběr RTOS je založen pouze na jediném parametru: ceně. Zatímco náklady jsou důležitým faktorem, který je třeba zvážit, neměl by být jediným argumentem.

Obecně, existuje osm různých kategorií, které by měl vývojový tým zvážit při výběru RTOS pro danou aplikaci:
  • Právní odpovědnost
  • Výkon
  • Funkce
  • Cena
  • Ekosystém
  • Middleware
  • Prodejce RTOS
  • Inženýrské preference
V rámci každé kategorie může existovat několik kritérií, která by měla být zvážena. Například v kategorii právní odpovědnosti mohou týmy zvážit následující:
  • Odpovědnost za porušení RTOS
  • Odškodnění
  • Záruka
  • Potřeba přezkumu RTOS z právního hlediska
V kategorii výkonu mohou vývojáři zvážit následující:
  • Zatížení paměti při běhu kódu
  • Paměť RAM
  • Nejvyšší stupeň determinismu
  • Efektivita běhu kódu

Každá hlavní kategorie může být zkoumána vývojovým a vedoucím týmem, aby určila, která kritéria mají být pro RTOS hodnocena. Jakmile jsou kritéria stanovena, lze pomocí matice Kepner-Tregoe (KT) porovnat několik různých RTOS. Jedná se o racionální model rozhodování, který pomáhá shromažďovat, určovat priority a vyhodnocovat informace s důrazem na hodnocení a stanovení priorit rizik. Odstraňuje osobní předsudky z rozhodovacího procesu a pomáhá člověku dosáhnout nejlepší možné volby s minimálními negativními důsledky. Podívejme se, jak můžeme pomocí matice KT vybrat RTOS.

Pomocí matice KT vyberte RTOS

Matice KT může být nastavena tak, jak je znázorněno na obrázku 1 a obrázku 2. Myšlenkou je, že pro každou z našich kategorií výběru identifikujeme kritéria výběru a uvedeme je v příslušném sloupci. Můžeme identifikovat váhu pro každé kritérium, které hodnotí, jak důležité je toto kritérium pro nás na stupnici od 1 do 5, přičemž 5 je kriticky důležité (např. náklady) a 1 není tak důležité (např. právní odpovědnost). Sloupce pak mohou být vytvořeny pro každého člena týmu, aby určil, jak důležité je každé kritérium pro každé uvažované RTOS. Každé kritérium pak bude váženo, sčítáno a bude vyhodnocen výsledek. RTOS s nejvyšší hodnotou je RTOS, který nejlépe vyhovuje kritériím.

Obrázek 1: Horní polovina KT matice obsahuje vyhodnocení odpovědnosti za škody, výkonnost RTOS, vlastnosti a náklady. (Zdroj obrázku: Beningo Embedded Group)

Obrázek 2: Spodní polovina KT matice obsahuje vyhodnocení ekosystému, middleware, dodavatele a bysnys. (Zdroj obrázku: Beningo Embedded Group)

Příklady znázorněné na obrázcích 1 a 2 jsou poměrně rozsáhlé v počtu hodnocených kritérií. To pravděpodobně přesahuje to, co by většina vývojových týmů měla zvážit při výběru RTOS. Počet kritérií lze snadno odstranit nastavením váhy na 0 nebo skrytím řádku v tabulce.

Platformy, na kterých bude zahájena práce s RTOS

Ukazuje se, že snadný a levný způsob, jak zhodnotit a otestovat příslušný RTOS, je využít existující vývojovou platformu, která ji využívá. Pojďme se podívat na několik platforem, které podporují populární operační systémy FreeRTOS a Express Logic ThreadX.

První platformou, kterou si představíme je STM32Cube od STMicroelectronics. Platforma STM32Cube podporuje FreeRTOS jako součást vývojových prostředí STM32CubeMx a STM32CubeIDE. Tyto nástroje umožňují vývojářům povolit FreeRTOS jednoduchým zaškrtnutím políčka FreeRTOS a poté pomocí konfiguračního nástroje FreeRTOS nastavit všechny konfigurační parametry. To umožňuje rychle pracovat s FreeRTOS a začít hodnotit jeho vlastnosti a výkonové charakteristiky.

STMicroelectronics nabízí mnoho různých vývojových desek. Jedním z osvědčených vývojových desek je deska STM32F429 Discovery (STM32F429I-DISC1) (Obrázek 3). STM32F429 má Arm Cortex-M4 procesor s rychlostí až 168 MHz. Mikrokontrolér má 2 Mbytes Flash paměť a 256 Kbytes SRAM. To je dostatek místa pro vývoj docela pokročilé aplikace. Vývojová deska také obsahuje LCD, několik LED diod a rozšiřitelné I / O.

Obrázek 3: Deska STM32F429I Discovery je nízkonákladová vývojová deska, která používá Arm Cortex M4 procesor a poskytuje dostatek výkonu pro zhodnocení RTOS. (Zdroj obrázku: STMicroelectronics)

Pro aplikace, které používají strojové učení je vhodnější použít desku STM32F7 Discovery (STM32F746G-DISCO) (Obrázek 4). Deska STM32F7 Discovery je založena na procesoru Arm Cortex-M7. Běží na rychlostech hodin až 216 MHz a obsahuje 1 Mbyte Flash a 340 kB SRAM paměť. Vývojová deska obsahuje 4,3 palcový displej 480 x 272 pixelů, Ethernet, slot pro SD kartu, USB, mikrofon a konektory pro připojení reproduktorů a další.

Obrázek 4: Deska STM32F746G Discovery je nízkonákladová vývojová deska, která využívá procesor Arm Cortex-M7, který umožňuje nejen vyhodnocovat RTOS, ale také jakékoliv vlastnosti strojového učení. (Zdroj obrázku: STMicroelectronics)

Další vývojovou deskou, kterou je třeba zvážit, je Nucleo Board STM32L0 (NUCLEO-L073RZ) (Obrázek 5). Deska STM32L0 Nucleo je založena na systému Arm Cortex-M0 +, který je navržen pro aplikace s nízkou spotřebou jako jsou zařízení s bateriovým napájením. Mikrokontrolér STM32L0 běží na rychlostech hodin až 24 MHz a obsahuje 192 kB Flash a 20 kb SRAM paměť. Tyto hodnoty paměti jsou velmi blízko k minimálním parametrům pro spuštění RTOS. Vývojová deska je s minimálním příslušenstvím, obsahuje pouze jedno uživatelské tlačítko a LED diodu.

  

Obrázek 5: NUCLEO-Vývojová deska L073RZ STM32L0 je založena na procesoru Arm Cortex-M0 + navrženém tak, aby poskytoval vysoký výkon při minimální spotřebě energie. (Zdroj obrázku: STMicroelectronics)

Druhou platformou, kterou si představíme je platforma Renesas Synergy. Je jedinečný v embeded světě v tom, že přichází s rozsáhlými vývojovými nástroji od různých poskytovatelů.

Pokud například někdo používal vývojovou desku STMicroelectronics a chce použít ThreadX RTOS společnosti Express Logic s kompilátorem IAR Systems Embedded Workbench, musí použít IAR pro kompilátor a Express Logic pro RTOS. To znamená nákup licencí k jejich použití. Pokud však vývojář zakoupí pouze jeden mikrokontrolér, který je součástí platformy Renesas Synergy Platform, automaticky tyto nástroje pro kompilátor a RTOS obdrží a navíc získá další middleware pro práci s daným mikrokontrolérem.

Pro vyhodnocení vlastností ThreadX je vhodnou volbou vývojová deska SK-S7G2 (YSSKS7G2E30) (Obrázek 6). SK-S7G2 je založen na procesoru Arm Cortex-M4, který běží na frekvenci 240 MHz a obsahuje 3 MB Flash a 640 kB paměti RAM. Tato vývojová deska je dodávána včetně LCD, spousta LED diod, rozšíření I / O, CAN, rozšíření PMOD, a snadného přístupu k sériovým portům a dalším I / O.

Obrázek 6: Vývojová deska Renesas Synergy SK-S7G2 je dodávána s komerčními vývojovými nástroji, které zahrnují Express Logic ThreadX RTOS. (Zdroj obrázku: Renesas)

Alternativou pro testování ThreadX je vývojová deska Renesas Synergy TB-S5D5 (YSTBS5D5E10) (Obrázek 7). Deska TB-S5D5 obsahuje procesor Arm Cortex-M4 s frekvencí 120 MHz s 1 MB Flash a 384 kB SRAM paměť. Je osazena uživatelským tlačítkem, kapacitní dotekovým snímačem a LED diodu.

Obrázek 7: Renesas Synergy TB-S5D5 poskytuje vývojářům 1 MB Flash a 384 Kbyes SRAM pro testování ThreadX. (Zdroj obrázku: Renesas)

Další zajímavé vývojové kity jsou Renesas Synergy AE-Cloud1 IoT Kit, YSAECLOUD1 (Obrázek 8) a Renesas Synergy AE-Cloud2 Cellular IoT Kit, YSAECLOUD2 (Obrázek 9).

Synergy Cloud1 IoT Kit nabízí připojení ke cloudu prostřednictvím Wi-Fi, zatímco Cloud2 Cellular Kit i připojení prostřednictvím mobilní sítě. Obě vývojové desky jsou založeny na procesoru S5D9 a mají integrovány vestavěné senzory a LED diody, které lze monitorovat a ovládat přímo z cloudu. Jsou dodávány s předinstalovaným softwarem, který obsahuje ThreadX a umožňuje si vyzkoušet celé řešení připojení s RTOS. (To může pomoci vývojářům vyhodnotit část middlewaru a zapsat správné hodnoty do KT matice, o které jsme mluvili dříve.)

Obrázek 8: Souprava Renesas Synergy AE-Cloud1 IoT Kit je vývojová deska určená speciálně pro zařízení IoT, která se připojí k cloudu prostřednictvím Wi-Fi. Má schopnost ovládat LED diody a monitorovat hodnoty senzorů od poskytovatele cloudových služeb jako jsou Amazon Web Services (AWS) nebo Microsoft Azure. (Zdroj obrázku: Renesas)

Obrázek 9: Souprava Renesas Synergy AE-Cloud2 Cellular IoT Kit je vývojová deska určená pro IoT zařízení, která se budou připojovat k cloudu prostřednictvím Wi-Fi nebo mobilní sítě. Zahrnuje schopnost ovládat LED diody a monitorovat hodnoty senzorů od poskytovatele cloudu jako AWS nebo Azure. (Zdroj obrázku: Renesas)

Jedna důležitá poznámka pro platformy: Při srovnávání RTOS je nutné se ujistit, že se porovnávají RTOS se stejnými vlastnostmi (jablka s jablky). Pokud například porovnáváte FreeRTOS na desce STM32F429 Discovery, která běží na 168 MHz. Je nutné pro srovnání s jiným RTOS použít stejnou vývojovou desku nebo jinou, ale běžící na stejné frekvenci.

Tipy a triky pro použití RTOS

Každý RTOS má své vlastní „tipy a triky“, ale existuje několik základních pravidel, které lze aplikovat na RTOS obecně:

  • Staticky přidělte úkoly a objekty RTOS. Dynamicky alokační úlohy a objekty vyžadují použití alokace paměti (malloc ()), která není deterministická a může způsobit problémy s fragmentací, které vedou ke špatnému výkonu nebo dokonce v nejhorším případě k havárii systému.
  • Změňte výchozí velikost zásobníku podle potřeb aplikace. Mnoho RTOS poskytuje výchozí hodnotu zásobníku, která je nadměrná pro většinu úloh, což má za následek plýtvání RAM. Ručně nakonfigurujte výchozí velikost zásobníku, která bude odpovídat požadavkům dané úlohy.
  • Funkce, které jsou volány by měly být reentrantní. To znamená, že pokud je funkce volána z více procesů nebude hrozit riziko poškození dat jiného procesu, pokud by nastalo přerušení úkolem s vyšší prioritou.
  • Pokud jsou k dispozici, použijte bloky paměti. Bloky paměti, které mají deterministické chování a mohou během chodu programu dynamicky alokovat paměť. To je lepší volba než použití malloc (), ale většina operačních systémů s otevřeným zdrojovým kódem tuto schopnost správy paměti nezahrnuje.
  • Minimalizujte počet úloh použitých v aplikaci. S použitím RTOS roste pokušení vytvořit spoustu úkolů. Bohužel i ty, které nejsou potřeba. To může dramaticky snížit dostupnou paměť a prostor zásobníku, který je s ním spojen.

Závěr

Složitost software ve vestavěných systémech se zvyšuje, a proto se použití RTOS stalo nutností. Vzhledem k tomu, že ne všechny RTOS mají stejné vlastnosti, je nutné se zaměřit na jeho výběr pro danou aplikaci. Je nutné zaujmout proaktivní přístup k výběru RTOS a pečlivě zhodnotit všechny různé aspekty. Nejen technické vlastnosti RTOS, ale také obchodní jako je například dodavatel RTOS a podpora, která je k dispozici, když se vyskytnou problémy. Efektivní metodou je použit KT maticí, která pečlivě vyhodnotí uvažované RTOS.

Pak spouštět vybrané RTOS na platformách mikrokontrolérů, které jej plně podporují. Je nutné zajistit stejné podmínky pro porovnání (Použití stejných vývojových desek či stejné frekvence procesorů, na kterých běží porovnávané RTOS).

 

Článek vyšel v originále „How to Select the Right RTOS and Microcontroller Platform for the IoT“ na webu DigiKey.com, autorem je Jacob Beningo

 

Hodnocení článku: