ComAp je českou firmou s globální působností, která patří ke světové špičce v oblasti vývoje a výroby řídicích systémů pro záložní a nezávislé zdroje energie. Letos slaví 30 let od svého vzniku. Pro ComAp jako technologickou firmu, která je lídrem ve svém oboru, jsou stěžejní inovace. Co obnáší návrh a realizace nové generace řídicích systémů, které ovlivní trh na následujících několik let? Představíme vám výzvy, před kterými jsme stáli, jaká řešení jsme zvolili, a popíšeme některé principy, kterých jsme se při realizaci drželi.
Na projektu jsme spolupracovali s firmou STMicroelectronics (ST), která ve své pražské pobočce zaměstnává více než 150 inženýrů se specializací od návrhu analogových a digitálních integrovaných obvodů po aplikační a technickou podporu svých zákazníků v celém evropském regionu.
Před jakými výzvami vývojový tým na začátku stál? Kromě základních technologických požadavků, které vycházejí ze stávajících produktů, přišly i další: navýšit kapacitu datové komunikace, lépe ji zabezpečit nebo zvýšit přesnost zpracování měřených signálů.
Vývojový tým, který začal v analytické fázi řešit nejprve hardwarový koncept řešení, velmi rychle vyloučil řešení na bázi SoC (System On a Chip). To by sice umožnilo efektivně vyřešit některé úlohy z oblasti komunikací a komunikačních protokolů, ale oblast řízení v reálném čase by byla zcela nedostatečná. Taktéž požadavky na vstupně-výstupní periférie nebylo možné jednoprocesorovým konceptem realizovat.
Rozsah požadované specifikace nás nakonec přivedl k řešení založeném na spolupráci více procesorů. Po důkladné analýze jsme zvolili koncepci na bázi perspektivní řady výkonných mikrokontrolerů z rodiny STM32H7x od STMicroelectronics.
Jedná se o jedno-, respektive dvoujádrové MCU s jádrem Arm® Cortex®-M7, resp. Arm Cortex-M4 (u dvoujádrové varianty). S využitím 40nm technologie je dosažen výpočetní výkon až 550 MHz. Zástupci řady STM32H7 mají vnitřní programovou paměť Flash až do velikosti 2 MB a datovou paměť RAM s kapacitou až 1,4 MB. Vnitřní napájení je řešeno pomocí lineárního zdroje LDO, variantně také pomocí spínaného zdroje DCDC. K dispozici je také „Value Line“ řada, která je cenově optimalizovaná a zároveň přizpůsobená pro aplikace, které vyžadují externí paměť.
Produkty dnešní doby vyžadují větší počet výkonných komunikačních rozhraní – jak pro samotný běh produktu, tak pro konektivitu s vnějším světem. Počínaje běžně používanými sériovými rozhraními typu U(S)ART, SPI, I2C až po defacto standardní rozhraní ETH. Dle daného typu procesoru je možné použít až 10 U(S)ART jednotek, 6 SPI jednotek a 5 I2C jednotek. Zajímavostí řady STM32H7 je pak LPUART, který je funkční i v okamžiku, kdy je jádro STM32H7 uspané a šetří tím energii. Pro rychlé připojení sériových externích pamětí poslouží QuadSPI či OctoSPI jednotky, včetně XiP podpory (decpypt on fly). Pro připojení paralelních rozhraní slouží jednotka FMC s až 16bitovým datovým kanálem, který podporuje paměti typu SRAM, PSRAM, SDRAM/LPSDR SDRAM a NOR/NAND.
Další komunikační periférie, které jsou k dispozici na procesorech řady STM32H7, jsou SAI (serial audio interface), FD/TT-CAN, FD-CAN, Ethernet MAC s podporou DMA, USB 2.0 high-speed/full-speed device/host/OTG jednotky (opět s podporou vlastního DMA a integrovaným PHY pro full speed rychlosti) či ULPI rozhraním pro externí PHY při vysokých rychlostech. Seznam možných komunikačních rozhraní doplňují jednotky pro připojení kamery (šířka 8 až 14bitů) a LCD-TFT kontroler pro připojení externího displeje velikosti až XGA. Při návrhu a jako pomocníka pro správnou konfiguraci periférií lze užít nástroj STM32CubeMX.
Ruku v ruce s hardwarem řídicích systémů ComAp bylo nutné navrhnout i firmware. A my jsme stáli před obvyklým dilematem technologických firem: jak efektivně využít již vyvinuté softwarové moduly, dodržet potřebnou míru zpětné kompatibility a zároveň zvýšit úroveň a kvalitu vyvíjeného softwaru.
Vývoj programového vybavení ve společnosti ComAp probíhá pomocí objektově orientovaného přístupu (C++). Platforma Arm a prostředky pro vývoj splňují požadavky na kvalitu vývoje a nezávislost kódu na platformě v cyklu kontinuálního vývoje (Continuous Development), a to i s výhledem do budoucna.
Požadavky na měření elektrických signálů (zde hovoříme o řízené technologii – tj. výrobě elektrické energie) zahrnují potřebu měřit tři na sobě nezávislé trojfázové soustavy síťového kmitočtu (tj. 50, resp. 60 Hz) s vyhodnocením proudů a napětí jednotlivých fází a rovněž příslušných výkonů. Tyto veličiny jsou následně používány k vyhodnocení elektrických ochran, což přináší nutnost je počítat na časovém rozlišení jednotlivých period, aby bylo, mimo jiné, možné splnit normativní požadavky na rychlost reakce těchto ochran. Požadavky na jejich chování definují potřebnou přesnost měření výkonů lepší než 1 %; u frekvence měření rozlišení na 1 mHz.
Takto definované požadavky na měření elektrických veličin jsme následně realizovali pomocí interních AD převodníků, kdy byly výstupy vzorkování pomocí třech nezávislých DMA přenosů předávány ke zpracování. Využili jsme plnou konfiguraci tří integrovaných 16bitových AD převodníků, včetně vnitřního propojení, což nám výrazně zjednodušilo celkový návrh. Protože se jedná o celkem nezanedbatelný objem dat (vrstva měření poskytuje nadřazené aplikační vrstvě datový tok cca 80 kB/s), potřebovali jsme dobře zvolit jak efektivitu výpočetních algoritmů, tak je také správně umístit do TCM RAM.
Pro následné zpracování signálů jsme využili skutečně vysoký výpočetní výkon o maximální hodnotě až 2778 CoreMark (Cortex-M7 @550MHz ve variantě jednoho jádra). U některých variant rodiny STM32H7 jsou ještě doplněny matematické akcelerátory Cordic a FMAC, které zásadně dokážou zrychlit trigonometrické početní operace či výpočetní řešení FIR a IIR filtrů, takže máme jistotu dostatečného výkonu i pro další vývoj.
Jak jsme již představili v úvodu, software nové generace kontrolerů ComAp vychází z již vyvinutých programových modulů. To s sebou na jednu stranu nese výhodu: můžeme znovu použít stejný kód. Na druhou stranu to vyžaduje udržování zpětné kompatibility kódu a precizní testování.
Z pohledu systému běhu v reálném čase jsme zvolili koncept RTOS (konkrétně FreeRTOS), tj. systém vícevláknového vykonávání úloh, který byl doplněn pro specifické úlohy obsluhou programových úrovní v systému přerušení. Při vývoji softwaru ve vícevláknové architektuře přicházejí kromě výhod i obtíže. Ty vyplývají jak z potřeby kvalitního návrhu architektury, tak z nutnosti mít efektivní nástroje pro ladění a detekci programových chyb.
Proto jsme si vyvinuli programový modul, který umožňuje za běhu monitorovat chování jak jednotlivých vláken, tak části obsluh přerušení. Při vzniku anomálie lze tak získat ucelený přehled o stavu celého systému a dodatečně tak analyzovat příčinu vzniku anomálie v graficky přehledném prostředí. Tento nástroj je součástí finálního programu. V případě výskytu anomálie během reálného provozu má tak uživatel k dispozici jeho výstupy, což umožňuje kontinuálně zvyšovat kvalitu a spolehlivost vyvíjených systémů.
V roce 2021 uvedla společnost ST na trh ve spolupráci s firmou Microsoft soubor „real-time“ operačního systému (RTOS) a knihoven pod názvem Azure RTOS. Azure RTOS efektivně využívá výhody STM32 a vývojářům umožňuje použít ThreadX RTOS a další komponenty Azure RTOS. Jsou to konkrétně USBX pro zařízení vyžadující USB komunikační rozhraní, NETX Duo pro implementaci síťových protokolů IPv4, IPv6, TCP a UDP, dále pak FileX umožňující realizaci souborových systémů FAT12, FAT16, FAT32, exFAT a konečně LevelX pro pokročilou práci s připojenými externími flash pamětmi typu NAND a NOR. Vývojářům se tak nabízí cesta k vylepšení aktuálních řešení a rychlé vytvoření pokročilých funkcí v koncových zařízeních. Azure RTOS je jediný bezplatný operační systém pro vestavěné systémy, který je dodáván s mnoha certifikacemi, a to jak pro bezpečnost (IEC 61508 SIL 4, ISO 26262 ASIL D, IEC 62304 Medical Class C), tak pro zabezpečení (EAL4 +, FIPS 140-2).
Uživatelé, kteří chtějí proniknout mimo jiné na průmyslový, automobilový nebo zdravotní trh, se tak mohou obrátit na společnost Microsoft, aby z těchto standardů mohli těžit a svým zákazníkům nabídnout větší záruky. Společnost ST bude nadále spolupracovat s Microsoftem, aby zajistila, že Azure RTOS bude nejlépe využívat klíčové zdroje přítomné v STM32 mikrokontrolerech, jako je např. hardwarové krypto jádro a další.
Vývoj zmiňované nové generace řídicího systému v ComApu začal podstatně dříve, než se objevil Azure RTOS. Ve vývojovém oddělení ho vnímáme jako velmi zajímavý produkt a je možné, že ho rádi využijeme v příštích projektech.
Protože řídicí systém výroby elektrické energie je kritickým uzlem, je zcela nezbytné se při návrhu zabývat i otázkami bezpečnosti (safety) a zabezpečení (security). Na úrovni firmwaru je nutné řešit ochranu vykonávání algoritmů v reálném čase – aby byl systém spolehlivý, robustní a zároveň i bezpečný. Pro zabránění nesprávného přístupu do paměťových regionů, které nepřísluší danému programového modulu, se s výhodou užívá jednotka MPU.
Samozřejmostí je také zabezpečení dat vnější komunikace a systém správy přístupových práv uživatelů. To v ComApu řeší strategie systémové bezpečnosti, která si klade za cíl vyvíjet systémy s úrovní zabezpečení nejméně SL3 (dle ANSI/ISA-62443-3-3). Ve svém důsledku to znamená nutnost brát v úvahu požadavky zabezpečení již při analytické fázi procesu vývoje softwaru, stejně tak i jistý nárůst složitosti řešení a zvýšení nákladů na vývoj.
Z hlediska zabezpečení přináší řada mikrokontrolerů STM32H7 širokou podporu, a to jak přímo ze strany samotných čipů, tak i podpůrných softwarových prostředků. Uživatel má volbu mezi variantou s a bez integrované hardwarové krypto jednotky. Ta umožňuje akceleraci funkcí jako AES-128/256, DES/TDES, SHA-256 či generátor náhodných čísel. Další funkce, které mohou zvýšit zabezpečení finálních aplikací, jsou anti-tamper detekce, zabezpečený zavaděč (Secure Boot), zabezpečená uživatelská paměť, zabezpečený běh kódu (PC-ROP), pojistka J-TAG linek či zabezpečené a kontrolovatelné programování na výrobních linkách třetích stran (Secure Firmware Install). To je podpořeno funkcí Root Security Services (RSS), která je na STM32H7 přítomna společně s krypto jednotkou. Finální aplikace poté mohou použít zabezpečeného zavaděče k bezpečné instalaci nového firmwaru. Vzhledem k tomu, že STM32H7 uchovává přímo uvnitř šifrovací klíč, mohou společnosti zaslat zašifrovaný firmware na montážní linku odpovědnou za jeho nasazení a dešifrovací operace budou probíhat pouze v rámci MCU za účelem ochrany IP a zabránění zneužití. Kromě toho tento mechanismus nabízí také ochranu proti nekontrolované výrobě pro šedý trh – to znamená, že je možné definovat počet programovacích cyklů a samotné programování se zastaví, pokud systém dosáhne definované horní hranice. Vývojový prostředek STM32CubeProgrammer pak snadno umožní vytvoření zašifrovaného firmwaru.
Řídicí systémy nové generace založené na výkonných mikrokontrolerech rodiny STM32H7 tvoří výbornou platformu pro budoucí produkty společnosti ComAp.
Přesvědčuje nás o tom jak kvalita a schopnosti zvolené řady mikrokontrolerů, tak zkušenosti získané během vývoje a vzájemné spolupráce s kolegy z STMicroelectronics.