1. marca, 2020

8-bitni mikrokontrolerji ostajajo vodilna izbira zahvaljujoč obdelavi po korakih

microchip 300x74 - 8-bitni mikrokontrolerji ostajajo vodilna izbira zahvaljujoč obdelavi po korakihMicrochip Technology Inc.
Avtor: Lucio di Jasio
2020_283_07

Pred nekaj več kot 40 leti se je na trgu pojavil prvi 8-bitni mikrokontroler. Inženirji so hitro videli prednosti, ki jih je prinesel. Kot ena naprava, ki je vsebovala poln mikroprocesor, pomnilnik, časovnik in vhodno / izhodna vrata, je močno poenostavil spisek materiala (BoM) in načrtovanje številnih elektronskih izdelkov. Mikrokontroler se je kmalu znašel v računalniških tipkovnicah, medtem ko so se derivati in konkurenti v naslednjih desetletjih razširili v ogromno število ugnezdenih sistemov.

Čeprav so proizvajalci mikrokontrolerjev od takrat uvedli naprave, ki temeljijo na 16-, 32- in celo 64-bitni arhitekturi, ima 8-bitna arhitektura še vedno močno vlogo pri ugnezdenih sistemih. Danes se 8-bitni mikrokontrolerji uporabljajo za široko paleto aplikacij. V veliko primerih je 8-bitni mikrokontroler edina programsko programirana naprava v sistemu. Ključni primeri so alarmi za dim in industrijski senzorski moduli. Lahko pa se poleg drugih procesorjev, ki temeljijo na 16, 32 ali 64-bitnih arhitekturah, uporablja en ali več 8-bitnih mikrokontrolerjev. Ti krmilniki tipkovnic so bili primeri slednjega: pametne zunanje naprave, ki so olajšale delo računalniškega gostiteljskega procesorja. Ni več moral porabiti veliko ciklov za debounce in skeniranja vhodnih priključkov. Uporaba večjega števila sodelujočih komponent v tem primeru je izboljšala splošno učinkovitost. V današnjih mikrokontrolerjih se uporablja podoben koncept, v katerem več komponent, ki sodelujejo med seboj, izboljšujejo splošno učinkovitost.

Ko se sooči z novim konceptom izdelka, ki zahteva ugnezdeno krmiljenje na osnovi procesorja, mora razvojnik razmisliti, kako lahko delovno obremenitev najbolje razdeli med vire. Morda gre za razmeroma zapleten sistem, ki uporablja kombinacijo različnih procesorjev, kot je pametni zvočnik. Lahko pa so sistemi veliko preprostejši, kot alarm za dim v domu, ki lahko deluje z vso programsko opremo, ki deluje na 8-bitnem mikrokontrolerju. V obeh primerih sta stroškovna učinkovitost in energetska učinkovitost ključnega pomena, razvojnika pa bosta usmerila v arhitekturo, ki ne pomeni zgolj zaposlitev enega samega programsko vodenega procesorja.

Z vidika strojne opreme je najpreprostejši pristop uporaba operacijskega sistema, ki omogoča, da na enem visoko zmogljivem procesorju sobiva več različnih nalog. Vendar to skoraj vedno ni energetsko učinkovit pristop, saj izmenjava podatkov med sistemom in njegovimi vhodi in izhodi pogosto poteka z veliko nižjo hitrostjo kot znaša največja pretočnost visoko zmogljivega procesorja. Z vidika strojne opreme je najpreprostejši pristop uporaba operacijskega sistema, ki omogoča, da na enem visoko zmogljivem procesorju sobiva več različnih nalog. Vendar to ni vedno energetsko učinkovit pristop, saj izmenjava podatkov med sistemom in njegovimi vhodi in izhodi pogosto poteka z veliko nižjo hitrostjo, kot največja pretočnost visoko zmogljivega procesorja. Toda potreba po nalaganju in branju sistemskega sklada z vsakim kontekstnim stikalom povzroči številne cikle po vsaki prekinitvi.

Prekinitve zunanjih dogodkov poganjajo veliko ugnezdenih sistemov. Počakajo na zunanji signal, preden začnejo intenzivno obdelavo vhodov. Zato je bistveno učinkovito ravnanje z njihovimi viri. Enako velja za krmilnike tipkovnic poznih sedemdesetih kot tudi danes. Namesto da bi neprestano brali vhode, bi lahko čakali, da se vzpostavi električni kontakt. Nastali impulz bi zaznala prekinitev na mikrokontrolerju, ki bi ugnezdeni programski opremi mikrokontrolerja signaliziral, da mora skenirati vrstice tipkovnice, da zazna, katera tipka je pritisnjena in gostiteljskemu računalniku poslati sporočilo o tem, kateri znak predstavlja.

Tipični IoT sistem bo večino svoje delovne dobe procesiral zelo malo; večina njegovih funkcij je potrebna le med kratkimi sunki dejavnosti. Pametni zvočnik, na primer, mora začeti poskušati prepoznati človeški govor, ko mikrofon zazna dovolj močan zvočni signal v pravem frekvenčnem območju.

Na primer, alarmu za dim ni treba izvajati meritev na zraku, ki vstopa v njegovo komoro v mikrosekundnih intervalih. Okolje se ne spreminja dovolj hitro, da bi to zahtevalo. Alarm lahko z vzorčenjem enkrat na sekundo ali manj ugotovi, ali je kakovost zraka na ravni, kjer je treba natančneje analizirati rezultate. Izračuni bodo navadno trajali le del sekunde, tudi na jedrih, ki delujejo z nizkimi megaherci. V obeh primerih bo ohranjanje jedra procesorja med meritvami v prostem teku izgubljalo energijo. Rešitev je, da jedro postavimo v stanje mirovanja z nizko porabo energije, ko vstopi v zanko v mirovanju in ga prebudimo, ko se dogodi prekinitev s sistemske ure ali števca ali če periferna naprava zazna zunanjo aktivnost.

Da bi ohranili visoko zmogljivost, vrhunski procesorji uporabljajo lokalne SRAM predpomnilnike za shranjevanje pogosto dostopnih ukazov in podatkov. Če se ne uporabljajo predpomnilniki, morajo kopirati kodo iz relativno počasnega Flash pomnilnika v SRAM ali DRAM, da ohranijo dobro prepustnost predpomnilnikov. Če želite prihraniti energijo med spanjem, bodo te spomske celice izgubile vsebino in jih je treba osvežiti po signalu za bujenje, preden bo procesor začel izvajati ukaze, kar jemlje energijo in dodaja zamudo.

Večina 8-bitnih procesorjev se bolje ujema z zmogljivostmi nezbrisljivega pomnilnika, kar neposredno nalaga ukaze iz Flash pomnilnika. Pogosto vsebujejo lokalne neizbrisljive podatke, da shranijo obstojne podatke med budnimi cikli, zato jih je le redko potrebno ponovno naložiti v SRAM. Rezultat je jedro, ki je bolj odzivno na zunanje dogodke, kljub nižji največji pretočni zmogljivosti.

Zato razvijalci sistemov pogosto uporabijo 8-bitne mikrokontrolerje poleg 16-, 32- ali 64-bitnih procesorjev v bolj zapletenih sistemih za izvajanje logike upravljanja dogodkov na bolj učinkovit način. V pametnem zvočniku lahko 8-bitni mikrokontroler uporabljate za obdelavo zvočnih vhodov, kadar ni potrebe za obdelavo govora. Lahko zažene preproste algoritme, da se najprej ugotovi, ali je dohodni zvok nad nivojem ozadja in nato, ali se zdi, da je šum oziroma ali ima lastnosti, ki so skladne s človeškim govorom. Če se zdi, da je signal dovolj pomemben, lahko zbudi primarni procesor za nadaljnjo analizo.

Arhitektura obdelave po korakih se ne ustavi v jedru procesorja. Pogosto so situacije, ko prilagodljivost programske opreme ni potrebna za obvladovanje velikega deleža zunanjih dogodkov, ki jih sistem zazna. Na primer, pri pametnem zvočniku procesorju ni treba ugotoviti, ali ima dohodni zvok značilnosti govora, če mikrofon pobira le šum ozadja. Od jedra neodvisne periferne naprave (CIP) lahko opravljajo funkcije neodvisno od jedra procesorja, kot so primerjave analognih vhodov z referenčnimi nivoji. Na primer, če amplituda signala, ki ga sprejme mikrofon, presega prag, ki ga analizira primerjalnik, lahko procesor zbudi.
Glede na del mikrokontrolerja CIPi zagotavljajo vrsto nastavljivih inteligentnih perifernih naprav, ki izvajajo kombinacijsko logiko, stanje in funkcije takta, ki jih je mogoče kombinirati za izvajanje krmiljenja motorja, zaporedja moči, modulacije podatkov in pogojne signalizacije brez neposrednih posegov iz procesorskega jedra. Naprave, kot je ATmega4809, ki ponujajo nastavljive krmilne logične krmilnike (CCL), vgrajeni ADC na voljo s programirljivimi sprožilniki in drugimi funkcijami stanja, ki iz jedra procesorja naložijo dodatne naloge.

V primeru ADC2 modula, ki ga najdemo na številnih 8-bitnih mikrokontrolerjih podjetja Microchip, kot je PIC16F18446, lahko strojna oprema izvaja funkcije obdelave signalov na digitalnih signalih, kot sta povprečenje in nizkoprepustno filtriranje. To preprečuje, da bi sistem reagiral na kratkotrajen šum in zvočne motnje, pa tudi uporabno predobdelavo, ko je treba signal, ki ga je sprejel ADC, oceniti glede vsebine govora. Funkcije strojne opreme so vgrajene tudi v ADC2 za poenostavitev kapacitivnega zaznavanja na tipkah na dotik, še ena aplikacija, pri kateri je tradicionalno potrebna visoka stopnja programske obdelave.

Celoten vpliv programirljivih strojnih perifernih naprav ni pomemben samo zaradi varčevanja z energijo, saj omogoča, da procesorsko jedro dlje ostane v stanju spanja. Dodatna obdelava pomaga znižati stroške BoM v samostojnih aplikacijah, kot so alarmi, ne da bi pri tem žrtvovali funkcionalnost. Podpora za strojno filtriranje v primeru naprav, ki vsebujejo ADC2 modul, omogoča nadomestitev 8-bitnega mikrokontrolerja, kjer se običajno 16-bitni del na začetku zdi najustreznejša izbira. Tipične ločljivostih za industrijske in zvočne vzorce pri 16-bitni arhitekturi ne zahtevajo, da se vzorčni podatki razdelijo v vzorce za obdelavo v programski opremi tako, kot bi potreboval 8-bitno vodilo. Vendar pa funkcije, kot je filtriranje, ki se izvaja v strojni opremi, 8-bitno jedro procesorja razbremeni iz velikega dela obdelave signalov, s čimer se osredotoči na upravljanje in nadzor na ravni sistema. Povečan prostor za obdelavo lahko omogoči določitev poceni 8-bitnih naprav za enostavnejšo opremo za končnega uporabnika.

Mikrokontrolerji, ki temeljijo na 8-bitni arhitekturi, se bolje ujemajo z I / O na dogodke usmerjene v aplikacije na druge načine. Številne naloge za digitalni I / O delujejo na nivoju bitov. Procesorji s širšimi registri so manj učinkoviti pri ravnanju s temi vrstami podatkov, kar zahteva premikanje celotnih besednih podatkov v registre in iz njih ter uporabo zapletenih bitnih mask za manipulacijo s pravo vsebino. 8-bitni mikrokontrolerji so zasnovani za funkcije, kot sta debounce tipke na vhodu ali generiranje PWM signalov za pogon motorjev, svetlobnih vezij in napajalnikov, ki zagotavljajo ustrezno raven funkcionalnosti za aplikacije, za katere ni potrebno opraviti večjega števila izračunov med posameznimi koraki.

Za naloge, usmerjene v I / O, so 8-bitni mikrokontrolerji na splošno bolj učinkoviti pri uporabi programskega in podatkovnega pomnilnika, zato potrebujejo manj v primerjavi z izdelki, ki uporabljajo procesorje, ki temeljijo na drugih arhitekturah. V bolj zapletenih aplikacijah bo morda potrebna večja količina pomnilnika in bi upravičila selitev kode na 16-bitno ali 32-bitno napravo, ki se običajno izvaja pri bolj močno spremenjenem postopku za podporo večjega pomnilnika. 8-bitna arhitektura omogoča izdelavo delov, ki podpirajo tudi visoko robustna analogna in vhodno-izhodna vezja, ki nudijo boljše upravljanje moči, kakovost signala in odpornost v primerjavi z deli, ki potrebujejo bolj razširjene procese na siliciju. V mnogih primerih je morda smiselno upoštevati prednosti obdelave po korakih in izbire procesa na siliciju ter razdeliti delovno obremenitev na 8-bitno napravo, usmerjeno v aplikacije, in 16-bitni ali 32-bitni procesor splošnega pomena.

Uporaba obdelave po korakih potencialno poveča zapletenost načrtovanja, saj morajo razvijalci upoštevati sinhronizacijo med več sodelujočimi procesorskimi jedri in pametnimi zunanjimi napravami. Vendar orodja, kot je Microchip-ov MPLAB Code Configurator (MCC), skrbijo za upravljanje ravni programske opreme, ki je potrebno, in nudijo rešitve, ki poskrbijo za številne razrede aplikacij, kot so povezljivost, nadzor motorja in upravljanje moči.

8-bitna arhitektura je bila uspešna desetletja. Opazovalci lahko domnevajo, da je njihov dizajn ostal statičen. Toda mikrokontrolerji, ki temeljijo na teh jedrih, so se prilagodili zahtevam vsake nove generacije razvijalcev izdelkov in dodali funkcije, kot so pametne periferne naprave in podporo jezikom na visoki ravni, ki so potrebni v sodobnem okolju skupne inteligence.
Opomba: Ime in logotip Microchip sta registrirani blagovni znamki podjetja Microchip Technology Incorporated v ZDA in drugih državah. Vse druge blagovne znamke, ki so morda tu omenjene, so last njihovih podjetij.

www.microchip.com
Tags: