1. april, 2018

8-bitna zgodba

microchip 300x74 - 8-bitna zgodbaMicrochip Technology Inc
Avtor: Lucio di Jasio
2018_262_34

Ko se je pri Microchipu leta 1993 prvič pojavil osembitnik, so številni industrijski strokovnjaki dejali, da so 8 bitni mikrokontrolerji “mrtvi”, vendar po 20-ih letih 8-bitniki še vedno ostajajo največji trg mikrokontrolerjev, tudi če ga merimo s prihodki. Nekateri prodajalci so spodbujali k programsko-osredotočenemu pristopu z uporabo visokozmogljivih jeder, vendar to le še povečuje kompleksnost in skriva dodatne stroške, pri čemer nekatera prizadevanja za potrditev ustreznosti programske opreme včasih trajajo dlje časa, kot samo načrtovanje.

SE262 34 01 300x214 - 8-bitna zgodbaZa številne aplikacije 8-bitni mikrokontrolerji predstavljajo idealno ravnovesje med kompleksnim programom, ki v ozadju skriva veliko porabo energije in ki je značilna za visoko zmogljive 32-bitne mikrokontrolerje in neprilagodljivim pristopom, osredotočenim na strojno opremo, povezano z ASIC. 8-bitni mikrokontroler konfigurira in nadzira periferne funkcije, ki omogočajo inteligentno in neodvisno zunanjo periferijo. Za razliko od serijske sistemske obdelave, ki temelji na programski opremi, porazdelitev inteligence na periferijo omogoča vzporedno obdelavo nalog in na koncu o tem obvesti mikrokontroler. Uravnotežen 8-bitni pristop omogoča znatno zmanjšanje časa razvoja, še posebej, če se za ustvarjanje programske kode uporabljajo sodobna grafična orodja.

S pravilnim ravnovesjem med strojno in programsko opremo ter novimi orodji, ki dramatično zmanjšujejo razvojne napore in čas razvoja, je prostor 8-bitnim mikrokontrolerjem v različnih aplikacijah zagotovljen bolj zanesljivo kot kdaj koli prej. Ta članek opisuje prednosti 8-bitnega pristopa, orodja, ki oblikovalcem omogočajo, da zmanjšajo čas razvoja in obenem poskuša napovedati, kakšna bo uporaba teh nepogrešljivih mikrokontrolerjev v prihodnosti.

Zgodba 1: Izkušnje, pridobljene po 20 letih neizbežne usode

Ko je leta 1993 Microchip prvič napovedal njihovo proizvodnjo, so mnogi strokovnjaki v industriji dejali, da je 8 bitni mikrokontroler že “mrtev”, vendar je po dvajsetih letih še vedno največji trg 8-bitnih mikrokontrolerjev, tudi če ga merimo po prihodkih. Pojasnilo, da se kljub tako trdnemu nasprotnemu prepričanju lahko vsako leto prebije v ospredje, zahteva nekaj resnih analiz. Seveda se ne bi zgodilo prvič, da se strokovnjaki zmotijo in s svojo napovedjo niso storili nič narobe, navsezadnje so tudi “strokovnjaki” človeška bitja, vsi mi pa smo kot globalna rasa presenetljivo nesposobni pri napovedovanju prihodnosti. Vedno je lažje gledati nazaj v preteklost in čeprav niti ta ni imuna pred podobno nevarnostjo, gre za poskus, ki ga je vredno narediti v upanju, da se bomo iz lastnih napak lahko nečesa naučili.

Šlo je za nekaj netočnih predpostavk, katerim bi lahko sledili v preteklost in tukaj jih bomo pet osvetlili glede na pomembnost v naraščajočem vrstnem redu:

Povezava z osebnimi računalniki, ki je nikoli ni bilo!

Pred dvajsetimi leti smo doživeli razcvet industrije računalnikov in se na lastne oči prepričali, kako očitno lahko računalniške potrebe naših namizij zlahka absorbirajo vso rast, ki jo zagotavlja Moorov zakon in še več. Arhitektura osebnega računalnika se je hitro dvignila prek vseh zmogljivosti, ki bi jih lahko nudili 8-bitni procesorji, še hitreje se je prebila prek 16-bitne in mimo 32-bitne arhitekture, trenutno pa v industriji mobilnih računalnikov predstavlja normo 64-bitna večjedrna arhitektura. Naša naravna pričakovanja so bila, da se bo to zgodilo tudi na trgu ugnezdenih krmilnih sistemov, razen, če se ne zgodi! Dinamika teh dveh trgov je presenetljivo nepovezana, saj je njun temeljni nabor vrednot povsem drugačen. Oblikovalce ugnezdenih krmilnih sistemov zavezujejo veliko strožja pravila in omejitve kot njihove kolege pri oblikovanju osebnih računalnikov. To jim daje prednost pri dolgotrajnosti oblikovanega izdelka zaradi hitrega preobrata, pri možnosti pogostejše uporabe uravnoteženega razmerja med zmogljivostjo in porabo energije in ne načrtovanje delovanja z vsemi zmogljivostmi za vsako ceno ter pri robustnosti in z doslednim doseganjem večje učinkovitosti.

2- Manjša geometrija ne pomeni nujno nižje cene!

Enako razlago bi lahko uporabili pri uporabi vse manjših in manjših procesov proizvodnje (CMOS). Medtem ko je razmerje med stroški in velikostjo naprave brez dvoma spadata v skrb za ekonomičnost industrije vgrajenih krmilnih sistemov, pa je na drugi strani napačno sklepanje, da bi iste prednosti, oziroma koristi lahko izkoristili tudi tisti, ki bi bili hitri do največjih skrajnosti – do samih tehnoloških meja. Toda oblikovalec ugnezdenih krmilnih sistemov ni mogel oceniti stopnje dodane funkcionalnosti, ki naj bi bila pridobljena s povečanim številom vrat / tranzistorjev, ne da bi upošteval negativne vplive, ki jo ob tem pogosto predstavlja dramatično povečanje porabe energije (povečani tokovi uhajanja). Poleg tega efekt dejanskega krčenja “digitalnega” dela mikrokontrolerja ni samodejno povzročil enakega krčenja “analognih” delov naprave v enakem razmerju ali njegovega I/O, vmesnika z zunanjim svetom. Dejansko so se ti v teh omenjenih primerih celo povečali, da bi nadomestili zmanjšano toleranco napetosti manjših tranzistorjev. Danes lahko 8-bitno jedro mikrokontrolerja zaradi dihotomije predstavlja manj kot 5% celotne površine na tabletki silicija. Dejstvo je, da se s stiskanjem procesne geometrije in naložbami v opremo stroški izdelave in končni stroški proizvodnje teh tabletk tako povečajo, da prekosijo vse pričakovane koristi, ki bi jih lahko prineslo načrtovano zmanjšanje velikosti.

3- Več bitov pomeni lažje delo

SE262 34 02 300x147 - 8-bitna zgodbaTo je v današnjem času še bolj dvomljiva predpostavka, kot je bila v preteklosti in še vedno na veliko buri duhove. Čeprav aplikacije z bazami podatkov, preglednice in druge vrste računalniških nalog lahko s pridom izkoristijo zmožnost procesorja, da obravnava večjo količino pomnilnika (več bitov) in izvede izračune na velikih številskih vrednostih (še več bitih), se povprečna vgrajena krmilna naprava izdela za izvajanje nalog, ki so zelo različne narave.

Branje temperaturnega senzorja, odstranjevanje vpliva odskakovanja pri pritisku vhodne tipke, merjenje vhodne frekvence signala ali dolžine delovnega cikla, ki proizvaja PWM signal za pogon motorja, so vsi primeri delovne obremenitve, ki jih večina ugnezdenih mikrokontrolerjev opravlja dnevno v milijonih (dejansko milijardah) primerov. Veliko marketinških prizadevanj in sredstev je bilo porabljenih, da bi končno dokazali, da lahko 32-bitni procesor izvede katero koli od zgoraj naštetih nalog bolje od 8-bitnega procesorja, vendar dokaza preprosto ni. To je v današnjem času še toliko bolj izraženo, saj je večina aplikacij napisanih v C jeziku in ne v zbirniku, kot včasih, zato se večina piscev programske opreme morda le malo ali pa sploh ne zaveda dejanske velikosti aritmetično logične enote (ALU) mikrokontrolerja, ko piše svojo programsko kodo, a tega jim res ne more nihče očitati.

Računska zmogljivost proti delovanju v “realnem času”

Prevara se tukaj skriva v različnih razlagah pomena besedne zveze “zmogljivost pri delovanju” v računalništvu in na področju aplikacij. Na splošno se izraz “računska zmogljivost” uporablja v primerih, ko želimo opisati zmožnost procesorja, da prehaja skozi kompleksne matematične algoritme (plavajoča vejica?), z lahkoto obdeluje ogromne količine podatkov in vse naloge opravi v najkrajšem možnem času. Pri ugnezdenih krmilnikih ima izraz “zmogljivost” mnogo različnih nians. Pravzaprav se jim pogosto pripisuje zmožnost opravljanja določenega dela (nič več, nič manj) v danem času od določenega dogodka. Najbrž opažate, da v tem primeru količina dela, ki ga je mogoče izvesti na časovno enoto, ni kritični vidik, temveč je pomembno, da je določen obseg dela (kot odgovor na zunanji dražljaj) opravljen pravočasno. To pomembno razliko bo najbolje prikazal praktični primer. Recimo, da nek industrijski proces zahteva vhod za zaznavanje stanja senzorja, merjenje dolžine trajanja impulza in posledično aktiviranje aktuatorja (na primer po pretečenem prednastavljenem številu milisekund), na primer za zaprtje ventila, da se prepreči možnost eksplozije.

32-bitni ali 64-bitni procesor (z več megabajti RAM pomnilnika, ki deluje z delovnim taktom 1 GHz med izvajanjem najnovejšega operacijskega sistema Android), bi se pri izvajanju preproste prekinitvene rutine izkazal kot slabša rešitev v primerjavi s preprostim 8-bitnim mikrokontrolerjem, ki na primer deluje pri čisto nizki frekvenci takta (1MHz, ali tisočkrat počasneje!). V tem primeru je primerjava morda malce pretirana, vendar je z njo nazorno predstavljena tista vrsta zmogljivosti, ki je potrebna za vgrajeni krmilni sistem. To je tista prava zmogljivost v “realnem času” in se veliko bolj nanaša na strojno periferijo, ki obdaja jedro, kot na lastno zmožnost jedra glede NN-bitnega računanja, oziroma velikost jedra. Pravzaprav je resnica celo takšna, da lahko najboljše rezultate dosežemo takrat, ko so periferne enote sposobne delovati neodvisno od jedra, s čimer se odstranijo ključna ozka grla v zvezi s pričakovanim ciklom izvajanja v aplikacijah. Izkušnje razvijalcev ugnezdenih krmilnih sistemov so, da je lahko izbira prave strojne periferije ključna za učinkovitost aplikacije in pravzaprav razvrednoti pomen podatka o številu izvedenih inštrukcij na sekundo (MIPS), ki jih nudi procesor.

Nizka moč in robustnost

Zadnja dva elementa, ki ju strokovnjaki v prvotnih napovedih niso pravilno upoštevali, sta poraba energije in robustnost. Fizikalni zakoni jasno povezujejo napetost in moč nerazdružljivo skupaj, poleg tega pa je vpliv napetosti v formuli kvadraten, kar potiska mikrokontrolerje, ki so grajeni za nižje napetosti in izdelani za uporabo ob manjših geometrijah, čisto na stran. Na žalost je pri sistemih ugnezdenih krmiljenja ravno robustnost tista, najpomembnejša zahteva, ki vpliva na neobčutljivost vezij pred motnjami, to pa samo po sebi narekuje uporabo mikrokontrolerjev z višjo napajalno napetostjo in višjimi logičnimi nivoji. Dvajsetletni razvoj se je v tej industriji zelo malo spremenil, saj še danes veliko število aplikacij zahteva 5V napajalno napetost, medtem ko upravlja s 5V vhodi/izhodi. Avtomobilska industrija je najbrž tisti sektor, ki najbolj nasprotuje prehodu.

Stanje v tem trenutku

Sodobni 8-bitni mikrokontrolerji kažejo neverjetno raven prilagajanja resničnim izzivom v industrije in so neverjetno pametnejši in prijaznejši za uporabo kot njihovi predhodniki pred 20 leti. Primerjava dveh ekvivalentnih (PIC16) podatkov v tehnični dokumentaciji pa po drugi strani razkriva, da se je jedro v tem času le malo spremenilo, da se v glavnem uporabljajo višji programski jeziki z dodatnimi funkcijami, ki po končnem prevajanju zagotavljajo bolj kompaktno programsko kodo. Nabor periferije pa je tisti, ki je danes res dramatično drugačen. Pravzaprav tudi najcenejši mikrokontrolerji ponujajo sistemske funkcije, ki so bile tedaj nepredstavljive. Sodobni 8-bitni mikrokontroler je postal pravi mali sistem z mešanimi signali, ki vključuje vse, kar je potrebno za izdelavo zanesljivega vira delovnega takta (na čipu je navadno prisotnih do 5 neodvisnih oscilatorjev), da se lahko napaja iz električnega omrežja (napetostni regulatorji, napetost nadzorniki, reference fiksne napetosti, reset vektorji ob vklopu in izklopu), vezja za prilagoditev (kondicioniranje) vhodnih analognih signalov (operativni ojačevalniki, hitri primerjalniki, ADC in DAC različnih tipov in resolucij). Vse to je v samem vrhu zelo bogate zbirke digitalnih perifernih naprav in celo programabilne logike. Pravzaprav so se periferne enote v tem času toliko razvile, da so sposobne delovati popolnoma neodvisno od jedra, zato je bila to tudi prelomnica, ob kateri je takšna “Od jedra neodvisna periferija” (Core Independent Peripheral, CIP) dobila svoje ime. Ko namreč takšno periferijo inicializiramo in konfiguriramo, prevzame nase v zvezi z izvajanjem predvidene funkcionalnosti celotno procesno obremenitev, ki bi se sicer izvajala v jedru. Procesor ima s tem sproščene procesne zmogljivosti, s katerimi lahko v aplikacijah zmanjšamo ali odstranimo večino programskih ozkih grl.

Prihodnost 8-bitnih mikrokontrolerjev

Če si upamo pogledati v bližnjo prihodnost, moramo razmisliti o tem, kako bo sam uspeh vgrajenih kontrolnih aplikacij prestal svoj naslednji naravni izziv. Ker se bo vsako leto proizvedlo na milijarde naprav in se bo vsako leto razvilo in pojavilo na trgu več milijonov novih projektov, bosta v svetu bogatega silicija najbolj dragocena vira čas in moč možganov. Zmanjšanje stroškov razvoja programske opreme bo dalo še večji pomen (programskim) orodjem, ki bodo na voljo za hitro izdelavo prototipov, odpravljanje napak in ponovno uporabo programske kode.

Zato bodo orodja, kot je na primer Microchipov MPLAB Code Configurator (MCC), igrala vse pomembnejšo vlogo, hkrati pa bodo razvijalcem prevzela večji del bremena. Vanje bodo namreč vključeni integrirani kompleti rešitev, ki bodo pokrivali celotne razrede aplikacij (povezljivost, nadzor motorja, moč …) in omogočali razvijalcu, da jih prilagodi specifičnim potrebam izdelka. Hkrati bo treba zmanjšati raven zapletenosti programske kode, da bi znižali nivo kompleksnosti naslednjim generacijam oblikovalcev, ki bodo morali množično razvijati izdelke za vedno bolj povezan svet. Ker je najboljša koda tista, ki vam je ni treba pisati, bo vedno bolj pester tudi nabor osrednjih pametnih in neodvisnih perifernih naprav (CIP). Ta bo konfiguriran in medsebojno povezan za oblikovanje funkcijskih blokov po meri, ki bodo v strojni opremi periferije izvajali večji del procesnih potreb aplikacije.

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: