1. septembra, 2020

Obdelujemo ali krmilimo?

Revija logo rutronik - Obdelujemo ali krmilimo?Rutronik GmbH
Avtor: Hao Wang
2020_288_23

Vsak nov projekt potrebuje mikrokrmilnik ali mikroprocesor. Pri izbiri velja upoštevati nekaj pomembnih vidikov, zato vam tukaj podajamo pregled mikrokrmilnikov (MCU), mikroprocesorjev (MPU) in heterogenih arhitektur.

Operacijski sistem
Mikroprocesor (MPU) je prva izbira za obsežne, računalniško intenzivne industrijske in potrošniške aplikacije, ki temeljijo na operacijskem sistemu, kot sta Linux ali Android, potrebujejo več hitrih povezav ali morajo podpirati uporabniške vmesnike s široko paleto funkcij. Večina mikrokrmilnikov (MCU) pa ima namesto operacijskega sistema možnost samo osnovnega programiranja, saj se programi skoraj brez posega uporabnikov izvajajo z zaporednimi obdelovalnimi zankami in končnimi avtomati. Vseeno pa lahko številni visokozmogljivi mikrokrmilniki izvajajo tudi operacijski sistem v realnem času (angl. Real-Time-Operation-System – RTOS), kot je FreeRTOS, kar omogoča hitro in deterministično odzivanje v aplikacijah, ki morajo delovati v strogem realnem času.

RTOS in Linux

288 23 01 300x180 - Obdelujemo ali krmilimo?

Bild: sipgus/stock.adobe.com

Embedded Linux je zelo uspešen kot univerzalni operacijski sistem z veliko brezplačne programske opreme, ki podpira zelo obsežen niz strojne opreme in poganja rastoč ekosistem. Dodatna prednost: Ne zahteva plačevanja stroškov za uporabo ali licence. Vendar pa zahtevajo aplikacije, ki delujejo z operacijskim sistemom Embedded Linux, vsaj od 300 do 400 DMIPS (ARM-Dhrystone MIPS) računske moči in s tem mikroprocesor. Mikrokrmilniki za to nimajo dovolj računske moči in tudi ne dovolj pomnilnika.

RTOS pa omogoča obvladovanje kompleksnosti take aplikacije tudi z zmogljivimi mikrokrmilniki, ki ponujajo najmanj 50 DMIPS računske moči. Klasični sistemi RTOS so izvedeni tako optimalno, da lahko delujejo tudi na mikrokrmilniku. To je smiselno na primer, ko gre za strojno računanje v realnem času, na primer pri protiblokirnih zavornih sistemih za vozila, kjer lahko ima prevelika zamuda odziva usodne posledice. Tudi pri potrebi po večjem številu funkcij, virov prekinitev in standardnih komunikacijskih vmesnikov je priporočljiv mikrokrmilnik z RTOS.

Pomnilnik
Druga pomembna razlika med mikroprocesorji in mikrokrmilniki je praviloma v tem, da mikroprocesorji za shranjevanje in izvajanje programa dostopajo do zunanjega pomnilnika, mikrokrmilniki pa do vgrajenega bliskovnega pomnilnika. Pri mikroprocesorjih je program praviloma shranjen v brezizgubnem pomnilniku, kot so eMMC, Serial Flash itd. Ob zagonu se prenese v zunanji pomnilnik DRAM in se tam tudi izvaja. Tako pomnilnik DRAM kot brezizgubni pomnilnik lahko imata več sto MB ali celo GB. To pomeni, da pri mikroprocesorjih praktično ni omejitev glede velikosti pomnilnika. Slabost je lahko bolj zapleteno načrtovanje tiskanega vezja zaradi zunanjega pomnilnika.

Sodobni visokozmogljivi mikrokrmilniki, kot je STM32H7 iz podjetja STMicroelectronics, zagotavljajo do 2 MB programskega pomnilnika, kar je lahko za določene aplikacije premalo. Po drugi strani pa je program shranjen v pomnilniku znotraj integriranega vezja, tako da sta zagon in ponastavitev bistveno hitrejša.

Računska moč
Računska moč je klasično merilo za izbiranje. Mikrokrmilniki in mikroprocesorji pa si na tem področju postajajo vedno bolj podobni. To je očitno, če pogledamo arhitekturo ARM, ki je med najbolj razširjenimi na trgu mikrokrmilnikov in mikroprocesorjev. Podjetje ARM ponuja različne procesorske arhitekture za različne zahteve:
Arhitektura Cortex A zagotavlja najvišjo zmogljivost in je že optimizirana za obsežne operacijske sisteme (angl. Operating Systems – OS). Uporablja se predvsem v zmogljivih napravah, kot so pametni telefoni in strežniki.

Procesorji Cortex M so manjši z več periferne opreme, vgrajene v integrirano vezje, in manjšo porabo – optimizirani so za vgrajene sisteme.

Računska moč različnih procesorjev se običajno primerja s primerjalnim algoritmom Dhrystone. Po tem merilu zagotavljajo tipični cenovno ugodni mikrokrmilniki računsko moč 30 DMIPS, najzmogljivejši razpoložljivi mikrokrmilniki z vgrajenim bliskovnim programskim pomnilnikom pa 1027 DMIPS. Pri mikroprocesorjih pa se računske moči šele začnejo pri skoraj 1000 DMIPS.

Poraba energije
288 23 02 300x245 - Obdelujemo ali krmilimo?Mikrokrmilnike odlikuje nekajkrat nižja poraba energije kot mikroprocesorje. Tudi z načini za varčevanje z energijo so mikroprocesorji še vedno bistveno bolj potratni od običajnega mikrokrmilnika. Poleg tega imajo zunanji pomnilnik, ki še oteži preklop mikroprocesorja v varčni način delovanja. Za aplikacije z ultranizko porabo, kjer je poudarek na dolgotrajnem delovanju baterije in ki nimajo uporabniškega vmesnika ali pa je zelo omejen, se zato uporabljajo pretežno mikrokrmilniki. Taki so na primer zabavna elektronika in pametni števci.

Povezljivost
Večina mikrokrmilnikov in mikroprocesorjev ima vgrajene vse običajne periferne vmesnike. Če pa so potrebne ultrahitre periferne naprave, potrebujemo temu primerne vmesnike, na primer Gigabit Ethernet, ki jih mikrokrmilniki nimajo, pri mikroprocesorjih pa so praktično standardni. To je povsem smiselno, saj mikrokrmilniki takšnih količin podatkov ne zmorejo obdelati. Ključno vprašanje je: Ali imamo dovolj pasovne širine in kanalov za obvladovanje prihajajočega podatkovnega prometa?

Sposobnost delovanja v realnem času
Ko gre za sposobnost delovanja v realnem času, je zagotovo prva izbira mikrokrmilnik. Mikrokrmilniki so s svojim procesorskim jedrom, vgrajenim bliskovnim pomnilnikom in programsko opremo (RTOS ali najosnovnejši (angl. bare metal) OS) odlično pripravljeni za delovanje v realnem času. Arhitektura procesorjev Cortex A vključuje cevovode (angl. pipeline), kjer se s povečevanjem velikosti cevovoda podaljšujejo tudi zakasnitve pri skokih in prekinitvah. Strogi realni čas je zato zaradi večopravilnosti operacijskega sistema z mikroprocesorji težko izvedljiv.

Osnovna integrirana vezja sistema
Napajalni sistem je v mikrokrmilnikih že vgrajen, potrebujejo le eno zunanje napajanje. Mikroprocesorji pa imajo več napajalnih napetosti, za jedro in druge komponente. Te je mogoče zagotoviti s posebnimi osnovnimi integriranimi vezji sistema (angl. System Basis Chip – SBC), ki jih je treba le še konfigurirati.

Prednosti heterogenih arhitektur
Mikrokrmilniki in MPU pa si vseeno postajajo vedno bolj podobni. S prihodom sistema STM32MP1, ki ima eno ali dve tipični procesorski jedri Cortex A7 in eno mikrokrmilniško jedro Cortex M4, so v podjetju STMicroelectronics svojo ponudbo razširili v smeri zmogljivejših mikrokrmilnikov za aplikacije na osnovi odprtokodne (angl. OpenSource) programske opreme, ki zahtevajo večjo zmogljivost in več sredstev. To odpira možnosti za kombiniranje prednosti obeh svetov. Procesorska jedra omogočajo na primer izvajanje operacijskega sistema Linux OpenST, na mikrokrmilniškem jedru M4 pa se izvaja FreeRTOS, ki izpolnjuje zahteve za delovanje v realnem času in nadzor procesov. S tako ločitvijo je mogoče uporabljati vse značilnosti operacijskih sistemov, na primer HMI/GUI z upravljanjem na dotik in omrežno komunikacijo, brez potrebe po poseganju v varnostne zahteve za celotno aplikacijo. Heterogene arhitekture imajo dodatno prednost pri zakasnitvah ob zagonu in porabi energije, saj lahko za vsako nalogo uporabimo primernejši procesor. Jedro M4 se lahko na primer s svojim pomnilnikom Retention-RAM zbudi v nekaj milisekundah, prebujanje jedra A7 pa lahko traja tudi sekundo. To pomeni na primer, da lahko mikroprocesorski jedri zaustavimo, dokler mikrokrmilnik izvaja A/D-pretvorbo, in s tem v primerjavi s konfiguracijo, ker delujejo vsa jedra (angl. RUN/RUN), prihranimo približno tri četrtine energije.

Referenčni projekt za STM32MP1
Mikroprocesor STM32MP1 je na voljo s preizkusno ploščo (STM32MP157C-EV1) in kompleti za raziskovanje (STM32MP157C-DK2) v obliki referenčnega projekta. Razvijalci lahko pri tem izkoristijo podporo pri razvoju sistema in prihranijo pri številu komponent ter prostoru. Za tem stoji kombinacija tehnologije STM32MP1 in preverjenih tehnoloških partnerjev, kot sta podjetje Nanya s 16-bitnim pomnilnikom SDRAM DDR3L velikosti 4 Gb in podjetje Kioxa (prej Toshiba) s pomnilnikom e-MMC velikosti 4 GB, ter optimizirana integrirana vezja za upravljanje napajanja STMPIC1 kot spremljevalna integrirana vezja za mikroprocesor.

Povzetek
Pravilna izbira med mikrokrmilnikom in mikroprocesorjem ni vedno jasna, zato vedno velja pretehtati različne vidike. Zelo groba smernica je:
Mikrokrmilniki (MCU) so optimalni za cenovno ugodnejše in mobilne načine uporabe, kjer je v ospredju poraba energije, ter za aplikacije, ki morajo delovati v realnem času.
Mikroprocesorji (MPU) so odlični za računsko intenzivne aplikacije, ki delujejo z operacijskim sistemom in potrebujejo hitre vmesnike. Za igre in podobne aplikacije s poudarkom na grafiki so potrebni posebni mikroprocesorji.

Rutronik GmbH,Podružnica v Ljubljani
Motnica 5, 1236 Trzin, Slovenia
rutronik_si@rutronik.com
Tel. +386 1 561 09-80
www.rutronik.com