FőoldalKonstruktőrA PIC fejlődéstörténetének 20 esztendeje
2017. szeptember 06., szerda ::

A PIC fejlődéstörténetének 20 esztendeje

A PIC16F877 mikrokontroller (MCU – Micro Controller Unit) családot 1997-ben alkotta meg a Microchip, amely egyben a cég első, flash-alapú mikrovezérlő-családja volt. Ezeket az alkatrészeket a bemutatkozásuk óta generációkon át megszámlálhatatlanul sok fejlesztési projektben, szakmai értekezésben, könyvben és blogbejegyzésben használták fel a világ minden táján, minden nyelvjárásban

A PIC16F877 sikerességét jelzi, hogy a bemutatkozását követő húsz év után is gyártásban van, hovatovább a hivatalos gyártói termékoldala a Microchip webportálja leglátogatottabb részének számít!

Mindez annak ellenére, hogy azóta a hasonló jellemzőkkel rendelkező mikrovezérlőknek számos, új generációja jelent meg, lásd a PIC16F877A, PIC16F887, PIC16F1938, illetve végezetül a PIC16F18877 modellszámú variánsokat!

Ez minden kétséget kizáróan bizonyíték arra, hogy a Microchip felfogásában egy termék akkor él életciklusa végére, amikor az azt felhasználó beágyazottrendszer-tervezők is úgy gondolják. A Microchip termékbeszüntetési programjának lényege egy mondatban tehát az, hogy egész addig nem kerül ki a termék az aktív kínálatból, amíg arra rendelések érkeznek, így ha akár csak minimális mennyiségben is érdeklődés mutatkozik rá, a Microchip felveszi és teljesíti a rendeléseket.

Ez tökéletes biztonságérzetet ad azoknak, akik a már működő rendszerüket szeretnék az adott állapotában megtartani, és erőforrásaikat inkább új, többletjövedelmet biztosító fejlesztésekre összpontosítanák. Jóllehet a régebbi termékek elesnek az olyan új technológiai előnyöktől, mint a magfüggetlen perifériák, a fejlesztőcsapatok egyúttal szabadságot kapnak az innovációs ciklusok hatékonyabb kezelésére ahelyett, hogy mindenáron rákényszerítenék őket a már működő, jól bevált rendszerek újratervezésére, csupán azért, mert annak gyártója a végtermék egyik központi rendszerének megszüntetéséről döntött.

A kivezetőkiosztások és a funkcionalitás kompatibilitása a korábbi generációkkal

Ha eddig netán elkerülte volna a figyelmét a Microchip önkéntes kötelezettségvállalása a termékkompatibilitás megőrzésére a korábbi generációkkal, most minden bizonnyal kellemes meglepetésben volt része. Ahogy az évek során bemutatkoztak a PIC mikrovezérlők újabb generációi, a Microchip minden alkalommal biztosította a felhasználókat, hogy fejlesztőcsapatai megőrizték a kompatibilitást a korábbi generációs eszközök kivezetőkiosztásával, sőt adott esetben még akár bináris tekintetben is. Ennek az elkötelezettségnek a pontos mértéke a hosszú távú migrációs stratégia mellett talán nem nyilvánvaló, ezért elmondjuk, hogy a PIC mikrokontroller-családban több mint 250 különböző modell létezik (ha csak a 40 tűs tokozással rendelkező változatokat tekintjük), amelyek pontosan illeszkednek ugyanabba a DIP foglalatba, amit még 1989-ben specifikáltak. Mi ez, ha nem feltétlen elkötelezettség?

Az alapjellemzők összehasonlítása

Ezen a ponton felütheti a fejét a kísértés, hogy alaposabban megnézzük az érintett időszak két végét, és összehasonlítsuk az első és eredeti PIC16F877 és legújabb iterációja, a PIC16F8877 alapjellemzőit és tudását.

A ’18877 előzetes adatlapjának 660 oldalnyi terjedelme közel háromszorosa a ’877-es sorozat adatlapjának, és terjedelme a grafikonok, táblázatok és egyéb jellemzők hozzáadásával tovább fog bővülni.

Ám kinek van manapság ideje adatlapokat olvasgatni, ráadásul ilyen terjedelemben? A legtöbbünk energiája/érdeklődése csupán annyira futja, hogy az adatlap első oldalain szereplő, alapjellemzőket összefoglaló 1. táblázatra vessenek egy pillantást, amelyből a következő jellegű/mélységű ismeretekkel lesznek gazdagabbak:

17 5 microchip 1t

Az 1. táblázatból már felületes vizsgálódás során is kiderül, hogy az évek során a fejlődés az integrált memóriák méretét (bármelyikről is legyen szó) és perifériáikat illetően teljesen nyilvánvaló. A flash memória mérete ez idő alatt megnégyszereződött, így gyakorlatilag a 8 bites architektúrában megcímezhető 64 KiB egésze elérhetővé vált. Az operatív tár, vagyis a RAM mérete pedig ugyanebben a periódusban közel megtízszereződött!

Noha ez nem feltétlenül igazodik a Moore-törvény állításához, ne feledjük, hogy itt beágyazott eszközökről van szó, amelyeknél a robusztusság és az energiafogyasztás sokkal fontosabb és nehezebben kielégíthető szempontok, mint a tipikus asztali, szórakoztatóelektronikai vonalat erősítő személyi számítógépek esete!

Jól tetten érhető a bővülés az időzítő alrendszerben és a PWM-ek számában is. A beágyazott alkalmazásokban, vezérlésnél az időzítés szerepe óriási, és a valósidejű működés sokkal nagyobb érték, mint a nagy mennyiségű adatok feldolgozása vagy további számítási kapacitás.

Valójában, ha közelebbről szemügyre vesszük az adatlapok tartalmát, láthatjuk, hogy az új generációs eszközök komplex belső órajelrendszerrel rendelkeznek, amelyekben akár hét oszcillátor és két PLL áramkör is helyet kap, így a nagy pontosságú órajeleket mindenféle külső áramköri támogatás nélkül saját maguk is elő tudják állítani, míg az első generációs eszközöknél ilyen lehetőség nem volt adott.

Az újabb eszközök a kódvégrehajtás sebességében is jeleskednek, hiszen közel kétszer akkora sebességet kínálnak, jóllehet a MIPS egységben kifejezett számítási teljesítmény megtévesztő lehet.

A C programozási nyelv támogatása

A C programozási nyelv elterjedése a beágyazott rendszerek fejlesztői körében az egyik legfőbb kiváltó oka a mikrokontrollerek memóriaéhségének. A megváltozott követelményekhez az évek során az új generációs PIC mikrokontrollerek architektúrája is igazodott. A PIC16F1-sorozatnál a processzormag új utasítások kezelésére is képessé vált, amelyek egyetlen célja a kódsűrűség növelése a cél érdekében. Az új utasítások célja a pointerek és nagyobb méretű operatív memória hatékonyabb kezelése, ill. kihasználása.

A PIC architektúra egyik legfőbb ismertetőjegye az operatív memória ún. bankokban történő kezelése. Az igazán kompakt, assembly nyelvű programkód szempontjából kezes memóriaszervezési megoldás egy programkódfordító-barátabb, lineáris memóriacímzési lehetőséggel egészült ki. A régi, bankalapú mechanizmus továbbra is elérhető, biztosítandó a kompatibilitást az előző generációs alkalmazásokkal.

Továbbá az új, lineáris címzési séma egyesíti a PIC16F1 mikrovezérlő adat- és programmemóriáját, amely lehetővé teszi nagy méretű adattáblák definiálását a flash memóriában, és korlátlan méretű RAM-tömböket és általános pointereket is támogat.

Érdekes módon ezek az igazán nagymérvű, architekturális változások a legtöbb C nyelvű fejlesztő számára fel sem tűntek, hiszen ez az alapértelmezésben elvárható alapműködés.

Egyebek mellett ez is az oka annak, hogy a régi ’877-es mikrovezérlőknél a MIPS-ben kifejezett teljesítmény közvetlenül nem vethető össze az új, F1-sorozatú processzormagos mikrovezérlők értékeivel.

A megszakításkezelés alrendszere

A másik architekturális egység, ami jelentősen változott az évek során, a megszakításkezelő alrendszert érinti. Míg az új PIC16F1 magok továbbra is támogatják az eredeti, egyvektoros megszakításkezelési rendszert, négy új árnyékregisztert is biztosítanak, amelyekkel a megszakítási mentési és visszaállítási szekvenciák optimalizálhatóak. Az alábbi 1. lista a hagyományos PIC16 programindításhoz generált (prológus) és az eljárás befejezéséhez generált (epilógus) kódját mutatja:

17 5 microchip 1l

A standard megszakítási prológus és epilógus nem kevesebb, mint 56 órajelciklus-ideig tart. Az új PIC16F1 árnyékregiszteres támogatásával a két szekvencia teljes egészében mellőzhető, a megszakításkezelés költsége nem több, mint a CPU-ágban szükséges négy alapciklus. Magyarra lefordítva ez azt jelenti, hogy végeredményben a mikrokontroller reakcióideje lényegesen lerövidül, valósidejű teljesítménye pedig akár egy nagyságrenddel javul.

Rugalmasság

Figyelmes elemzésünk során a sokat hivatkozott 1. táblázat alján észrevehettünk egy újabb érdekes részletet: bár a gyártó kivezetőkiosztás-kompatibilitással hirdeti az új generációs PIC mikrovezérlőket, ám az általános célú I/O kivezetők számában eltérést tapasztalhatunk. A titok nyitja nem más, mint az, hogy az új generációs eszközök további három kivezető multiplexálására képesek, így a korábban kristályoszcillátor és külső reset számára fenntartott kivezetők opcionálisan általános célú I/O-hoz is rendelkezésre állnak.

A rejtély igazi kulcsa viszont a terjedelmes adatlapból kerül elő, amelynek tanúsága szerint MINDEN digitális periféria be- és kimenetmultiplexált valamennyi kivezetőre. Ez a funkció perifériakivezető-kiválasztás (PPS – Peripheral Pin Select) néven ismert, és a közvélekedés szerint nagyságrendekkel javítja a PIC16F18877, ill. néhány PIC16F1-sorozatú mikrokontroller rugalmasságát.

Az új PIC16F1-sorozatú mikrovezérlő analóg-digitális átalakítóit immár egy igen nagy méretű analóg bemeneti multiplexerrel csatolták, amelynek révén az áramkör analóg bemenetként nem kevesebb, mint 35 kivezetőt tud hasznosítani. A gyakorlatban ez azt jelenti, hogy minden, a mikrokontrollerre jutó vagy arról lekerülő analóg és/vagy digitális jel optimális feltételek mellett vezethető el az áramköri hordozón zajimmunitás, robusztusság, egyszerűség és sebesség szempontjából, hiszen ezáltal csökkenthető az áramkörikártya-rétegek és -viák száma, amely ráadásul költségmegtakarításhoz is hozzásegíti a vállalkozókat.

Magfüggetlen perifériák

Sajnálatos módon kizárólag az 1. táblázat elemzésére hagyatkozva rengeteg hasznos és valóban fontos információtól fosztja meg magát az érdeklődő, ami a PIC16F1-sorozatú mikrovezérlők újdonságait illeti. Ezek egyike a magfüggetlen perifériák (CIP – Core Independent Peripherals).

A mikrovezérlő egyedi perifériái csupán egy dolog, hiszen az SMT, HLT, CWG, NCO, CLC stb. perifériákról egész fejezeteket lehetne megtölteni. És ami azt illeti, ez meg is történt, hiszen a PIC16F1 adatlapja mintegy 400 oldalon keresztül részletezi ezeket. Talán jobban számít kezdetben a mögöttük álló tervezési filozófiát ismerni.

Az új generációs mikrokontroller-perifériák annyiban eltérőek, hogy közvetlen összeköttetésben állnak egymással, így a mikrokontroller központi vezérlőjétől függetlenül is, autonóm módon képesek feladatok végrehajtására.

17 5 microchip 1

A magfüggetlen perifériák, vagyis a CIP-ek a mikrovezérlőn belül olyan hardvertámogatást valósítanak meg, amely segít kiküszöbölni azt, hogy a CPU váljék a beágyazott rendszer szűk keresztmetszetévé. Mivel a CIP-ek egymással összeköttetésben állnak és autonóm módon képesek feladat-végrehajtásra, a megszakítások nemcsak gyorsabbak lehetnek, hanem egyenesen mellőzhetőek is az alkalmazásból.

A végeredmény egy sokkal kiegyensúlyozottabb rendszer lehet, amelyben a konfigurálható és párhuzamosítható működésű hardverek hatékonysága és a szoftverek rugalmassága tökéletes elegyet alkot. Ezeken felül további olyan CIP-ek is rendelkezésre állnak, amelyek a fenti ábrán nem szerepelnek, de más PIC mikrovezérlőkön elérhetőek, és még hatékonyabban dolgoznak azon fejlesztők keze alá, akiknek alapfeladata az optimalizálás.

Robusztusság

A PIC16F18877-ben az új hardvermodulok jelentős hányada szolgálja a mikrovezérlő robusztusságának biztosítását. A hagyományos watchdog áramkört egy innovatív, ablakos rendszer váltotta fel, amely gazdag skálázási lehetőségeket kínál. A feszültségkiesés ellen védő áramkör (BOR – Brown-Out Reset) számos küszöbszintet, kis fogyasztású működési üzemmódot és dedikált CRC SCAN áramkört támogat, amelyekkel a memóriatartalom állandóan megfigyelés alatt tartható a háttérben, a mikrokontroller számítási kapacitásának terhelése nélkül.

Alacsony energiafogyasztás

Bár az 5 V tápfeszültségről való működés megmaradt, és az I/O pontokon a folytonos kimeneti áram immár akár 50 mA is lehet, a PIC16F18877 elektromos jellemzői részletesen tesznek említést arról, hogy a teljes bemeneti tápfeszültség-tartományban (1,8 … 5,5 V) mennyivel lehet alacsonyabb az aktív állapotbeli fogyasztás (a kíváncsiak kedvéért: akár a negyedére is leszorítható). A passzív állapotbeli, vagyis készenléti áramfelvétel még meggyőzőbb, ugyanis akár századára is csökkenthető a korábbi generációs mikrokontrollerekéhez képest.

A teljes igazságot ezúttal is csak a komplett műszaki adatlap részletes, mélyre ható elemzése során fedhetjük fel. Ennek során megismerhetjük, milyen finoman lehet már bánni az új generációs eszközökben a fogyasztást optimalizáló lehetőségekkel, milyen újfajta üzemmódok használatára nyílik lehetőség (pl. tétlen és mélyalvó üzemmódok stb.). Létezik továbbá egy új regiszterkészlet is, amely PMD név alatt fut, és a totális rugalmasság jegyében lehetőséget ad az egyedi perifériák fogyasztásának optimalizálására.

Az eszközök hatalma

Az új generációs beágyazott rendszerek fejlesztésénél még a legjobb, leghatékonyabb mikrokontrolleres funkciók sem érnek fabatkát sem, ha nem szolgálják kellőképpen a szűkös fejlesztési idők adta feladatok teljesítését, és támogatják az átlapolt munkafolyamatokat.

Az új generációs PIC16F18877-sorozatú mikrovezérlők egyik legfőbb vonzerejét a gyors és hatékony fejlesztést, automatizálást és programozást támogató fejlesztőeszközök elérhetősége jelentheti, amely nagyságrendekkel felgyorsíthat minden egyes tervezésre vonatkoztatható folyamatot.

A PIC mikrovezérlők legújabb generációját teljes mértékben támogatja az MPLAB® Code Configurator (röviden: MCC) nevű fejlesztőeszköz, amely a kontrollerek perifériakészletének inicializálásához köthető, fáradságos feladatot néhány perces, egyszerű folyamatra redukálja. Sok felhasználó egyenesen azt állítja, hogy a mikrovezérlő adatlapjának áttanulmányozása sem feltétlenül szükséges, amely igen jelentős mennyiségű időmegtakarítást jelent már a fejlesztési folyamat elején.

A manapság oly divatos, felhőalapú szolgáltatásból természetesen a Microchip sem maradhat ki. A cég felhőalapú eszköztára MPLAB Xpress névre hallgat, lényegében pedig a fejlesztés és prototípusgyártás végtelenül egyszerűen, webböngészős alkalmazásból történhet. Már nem is szükséges minden esetben letölteni az integrált fejlesztőkörnyezet és programkód-fordító nemritkán több száz megabájt méretű telepítőcsomagjait, különidőt szentelve a telepítésükre, konfigurálásukra, verzió- és könyvtárfrissítésükre stb. A korábban szükséges néhány óra helyett egy új mikrokontroller-modell fejlesztésbe vétele egy mintaprojektben ma már percek alatt teljesíthető.

Legyen körültekintő, és használja ki az új termékgenerációk tudását!

Ahogy láthattuk, a Microchip kötelezettséget vállal a termékei benntartására az aktív kínálatban mindaddig, amíg a felhasználók részéről igény mutatkozik rá. Ez elősegíti a felhasználók számára a tervezési ciklusaik optimalizálását, így mindannyiuknak megadatik a lehetőség eldönteni, hogy rendszereiket megtartsák-e a már kifejlesztett állapotukban és erőforrásaikat új fejlesztésekre összpontosítsák-e, vagy régi rendszereiket gondolják újra az új mikrokontrollerek biztosította újdonságok implementálásával.

Új fejlesztés indításánál fontos felismerni és elfogadni a tényt, hogy a „már jól bevált”, de kétségtelenül öregecske és az elavulás felé vezető utat már régóta taposó mikrokontroller-modell mellett való voksolással számos lehetőségtől és funkciótól foszthatja meg magát a felhasználó. A Microchip által demonstrált, konzisztens versenypiaci viselkedés és az elkötelezettség a termékek aktív kínálatban tartása mellett azt a látszatot kelthette, hogy az elmúlt évtizedekben kevés fejlődés történt, de ahogy a cikkből láthattuk, ez nagy tévedés. A magfüggetlen mikrokontroller-perifériák és a felhőalapú fejlesztéstámogató eszközök új magasságokba emelik a beágyazott rendszerek rugalmasságát, ezekhez pedig igenis szükség van az új generációs mikrokontrollerekre.

Ha legközelebb lehetősége adódik mikrokontroller-modellt választani egy tervezési feladathoz, amelyben egy új generációs beágyazott rendszert kell megvalósítani, szánjon rá néhány percet, és tanulmányozza át a Microchip PIC mikrokontrollerek választékát, nehogy megfossza magát nagy lehetőségektől! (Ha megfogad egy tanácsot, a keresést a PIC16F1 kezdetű kulcsszavakkal kezdje!)

A Microchip honlapja

Tudomány / Alapkutatás

tudomany

CAD/CAM

cad

Járműelektronika

jarmuelektronika

Rendezvények / Kiállítások

Mostanában nincsenek események
Nincs megjeleníthető esemény