magyar elektronika

E-mail cím:*

Név:

eye MicrochipA mikrovezérlők teljesítményének és szóhosszúságának növekedtével egyre jobban terjed az a nézet, hogy „komoly” feladatot már nem érdemes 8 bites mikrovezérlőre bízni. A Microchip sajátos koncepciójával, a magfüggetlen perifériákkal azonban még az is előfordulhat, hogy egy új generációs nyolcbites még egy tisztán szoftveralapú 32 bites MCU-nál is jobban teljesít.

 

Van a 8 bites mikrovezérlőknek (MCU) egy olyan új generációja, amely új szintre emeli a tervezési rugalmasságot – és ennek a kulcsát az ún. magfüggetlen perifériák integrációja jelenti. Ezek a konfigurálható perifériák, mint egy egyszerű digitális időzítő vagy egy összetett AC/DC tápegység – amelyet az integrált, intelligens analóg elemekből állíthatunk össze – kiegyensúlyozott és testre szabott megoldást jelentenek számos tervezési feladat esetén. Ahol a hagyományos 8 bites MCU-k elégtelennek bizonyulnak, ezek az új, 8 bites MCU-k léphetnek a helyükre.
Számos újdonságot láthattunk az első, csak olvasható programmemóriával ellátott MCU-k 40 évvel ezelőtti megjelenése óta.
A 8 bites mikrovezérlők az egyszerű logikai vezérlőkből nagy mértékben integrált, „okos” áramkörökké fejlődtek, beépített analóg funkciókkal. A 8 bites mikrovezérlők beépített perifériáiról az a hagyományos kép él bennünk, hogy egy fix funkciót képesek megvalósítani, és semmi mást. A legújabb nyolcbiteseket azonban – az alapoktól kezdve – ettől eltérőknek tervezték, ami már paradigmaváltásnak tekinthető, és ez teljesen új megközelítést tesz szükségessé a végtermék megtervezésekor. Ezek az új mikrovezérlők egy bizonyos számú újszerű perifériát is tartalmaznak, amelyek többféle funkciót és feladatot is végrehajthatnak az igényeknek megfelelően. Ráadásul ezek a perifériák úgy konfigurálhatók és kombinálhatók, hogy olyan funkciókat is képesek legyenek megvalósítani, amelyeket korábban csak nehézkesen vagy egyáltalán nem lehetett ellátni a mikrovezérlők többi típusával. Ezen újszerű perifériák nagy többsége önállóan, a processzormagtól függetlenül is képes működni, amellyel processzor-erőforrásokat szabadítanak fel más feladatok ellátására. Továbbá ezen perifériák többsége a processzor alvó üzemmódjában is működőképes, amely komoly előnyt jelent az energiafogyasztásra kényes alkalmazásokban.

A magfüggetlen perifériák használata

Az új generációs perifériák közül talán a legtöbbet használt típus a konfigurálható logikai cella (Configurable Logic Cell – CLC). Ez a nagyon egyszerű, mégis nagyon hatékony modul a jól ismert logikai funkciókat (AND, OR, XOR, RS tároló és J-K flipflop) képes megvalósítani, amelyeket a felhasználó úgy konfigurálhat, hogy logikai jelek kondicionálására alkalmas logikai hálózatot alkossanak. A CLC be- és kimeneti jelei belső csatlakozásokon keresztül bármelyik I/O-pontra, perifériára vagy regiszterre csatlakozhatnak. A CLC felhasználható például egyszerű jelirányítóként, logikai „ragasztó” segédáramkörként vagy intelligens állapotgépként a processzor alvó állapotból való felébresztésére. Egy hagyományos mikrovezérlőnek ehhez egy külső, programozható logikai áramkörre (Programmable Logic Device – PLD) vagy a kívánt logikai vezérlést megvalósító programozásra lenne szüksége, és még így sem tudná megvalósítani azt a flexibilitást, amit a CLC használata tesz lehetővé.
A numerikus vezérlésű oszcillátor (Numerically Controlled Oscillator – NCO) egy másik konfigurálható modul, amely akár 20 bites időzítőként, nagy felbontású PWM-vezérlőként vagy változtatható frekvenciájú jelgenerátorként is használható, amint az az 1. ábrán is látható. Ez nem egy hagyományos PWM/időzítő, amelynél a teljesítőképesség és a képességek majdnem pontosan egymás ellentétei.

 

01Microchip abra

1. ábra Példa a numerikusan vezérelt oszcillátor alkalmazására


Az NCO a nagyobb felbontásával és a lineáris frekvenciavezérlésével segíthet egyszerűsíteni azokat a bonyolult algoritmusokat, amelyeket gyakran használnak tápegységekben és fényerőszabályozási lehetőséget is biztosító világítástechnikai előtétekben, mivel nagyon pontosan szabályozzák a terhelés áramát. Az NCO egy másik lehetséges alkalmazása a füstjelzők riasztó hangjának előállítása, mivel könnyen beállítható a kívánt hangmagasság.
Minél finomabban tudjuk szabályozni az előállított hangfrekvenciát, annál pontosabban hangolható az előállított hang magassága és hangszíne – és mindez külső analóg alkatrészek hozzáadása nélkül lehetséges.
Az nem csoda, hogy ezek az integrált perifériák képesek ellátni azt a feladatot, amelyre tervezték őket. Az igazi „varázslat” akkor történik, ha több modul képességeit kombináljuk egy összetettebb funkció megvalósítására. Vegyük példaként a Manchester-kódolást, amelyet széles körben használnak az adattárolásban és a telekommunikációban. A hagyományos Manchester-algoritmus jelentős firmware-kapacitást és CPU-erőforrásokat igénylő feladat. Az NCO és a CLC modulok összefűzésével viszont olyan, teljesen hardveralapú Manchester-dekódoló építhető, amely CPU-használat nélkül működik. Mellesleg, a Manchester-kódolók megépítése még egyszerűbb: csupán egyetlen CLC-modulból előállítható mindenféle firmware-es „bitpattogtatás” nélkül.
Más perifériák, mint az Angular Timer (AT – szögelfordulás időmérő), a Signal Measurement Timer (SMT – jelidőzítés-mérő) és a Math Accelerator (MathAcc – matematikai gyorsító), a CLC- és az NCO-modulokhoz képest kissé összetettebbek.
Az AT tetszőleges periodikus jelek mérésére szolgál, mint amilyenek például az optikai forgásérzékelők, nullátmenet-detektorok és a Hall-szondás érzékelők kimeneti jelei, amelyeket a motorvezérlésnél vagy a váltakozóáramú teljesítményelektronikákban használhatunk, tekintet nélkül a motor fordulatszámára vagy a jel frekvenciájára. Az AT-modul azonnali konverziót végez az időtartomány és a szögelfordulás[1]-tartomány között, teljes mértékben célhardver által végrehajtva, a CPU közreműködése nélkül. Ha az ilyen feladatokat egy hagyományos mikrovezérlővel szeretnénk megoldani, akkor tipikusan több időzítőegységre lenne szükségünk az impulzusszámlálás, illetve az időmérés végrehajtásához, majd ezeket az adatokat firmware-alapú matematikai számításokkal vagy – ha a periódusidő ismert – a programmemóriában tárolt táblázatokkal (lookup table) kell tovább feldolgozni. A hagyományos megközelítés több firmware-előkészületet és CPU-erőforrást kíván a matematikai számítások végrehajtásához, illetve a táblázatok méretkorlátai miatt annak felbontása korlátozott lehet, amely közelítések használatára kényszerít és pontatlanságokat eredményez. Az AT-modul automatikusan generálja a szükséges megszakításokat és eseményeket, közvetlenül a tervező által konfigurált fázisszög-értékeknél. Ráadásul az AT három Compare/Capture PWM (CCP – összehasonlításos elven működő impulzusszélesség modulátor) funkciót is a felhasználó rendelkezésére bocsát.

A hagyományos és a magfüggetlen megoldások összehasonlítása

Egy másik példa, amelyben több perifériát kapcsolunk össze egy összetettebb feladat megoldása érdekében, egy kapacitás-kisütéssel működő gyújtásvezérlő elektronika (Capacitive Discharge Ignition – CDI, lásd a 2. ábrát), amelyet gyakran használnak kis belső égésű motorokban. A mikrovezérlőnek két fontos feladata van egy digitálisan vezérelt CDI-rendszerben:

  • Meghatározza az adott gyújtógyertyához tartozó gyújtási szöget a különféle szenzorokból érkező jelek alapján.

  • Beállítja a PWM-jelek kitöltési tényezőit a DC/DC átalakító indítóimpulzusához, amelyből a gyújtógyertyára jutó jelet előállítjuk.

02Microchip abra

2. ábra Kapacitás-kisütéses gyújtásvezérlő elektronika egy integrált AT-modul felhasználásával

 

Anélkül, hogy végigmennénk egy belső égésű motor vezérlőrendszerének minden tervezési részletén, megállapíthatjuk, hogy egy PIC16F161x MCU-alapú CDI-megvalósítás, az AT, a CLC és néhány más periféria felhasználásával, mint az SMT és a MathAcc jelentősen növeli a rendszer teljesítőképességét, mivel ezek a perifériák hatékonyan képesek meghatározni a fordulatszámot és a gyújtószikra időpontját – és mindezt nagyon kis mértékű CPU-terheléssel. Ennek az áramkörnek a mélyebb vizsgálatát az AN1980 alkalmazástechnikai összefoglalóban találhatja meg az érdeklődő (lásd a cikk végén található hivatkozásjegyzéket).
A 1. táblázat összehasonlítja a gyújtásrendszer hagyományos megvalósítását a magfüggetlen perifériák használatával tervezett áramkörrel. Amint az jól látható, az AT-módszer jelentősen növeli a rendszer teljesítőképességét azáltal, hogy több mint 50%-kal csökkenti a processzor által végrehajtandó utasítások végrehajtási idejét és a processzor kihasználtságát, miközben a programkód tárolóigénye is 40%-kal kisebb.

 

1 Microchip tablazat

1. táblázat A kapacitás-kisütéses gyújtórendszer tulajdonságainak összehasonlítása


Jó néhány módszer létezik egy PWM-jel előállítására (részben firmware-, részben hardveralapon), de ha az a feladat, hogy egy beérkező PWM-jelből kell kinyerni az információt, a megoldásváltozatok száma korlátozott. A tipikus megközelítés időzítőket és CCP-ket, valamint nagy számú CPU-ciklust használ az impulzus-periódusidő vagy a kitöltési tényező értékének meghatározására. A feladat azonban a CLC- és az NCO-modulok kombinációjával is megoldható, minimális további kódolási munka ráfordításával. Szóba jöhet az előző példában említett SMT periféria is, amely egy 24 bites számláló/időzítő, fejlett órajel- és kapuzási logikával, és ezáltal különféle jelbegyűjtési módok megoldására konfigurálható. Ezek az üzemmódok magukban foglalják a periódusidő és a kitöltési tényező mérését és tárolását, és mindezt automatikusan, a processzormag felügyelete vagy bármilyen számítási terhelése nélkül. Az SMT rendkívül jól használható például a motorvezérlésben használatos PWM-jelek mérésére.
Ezeknek a fejlett perifériáknak a megnövekedett képességeit felhasználva a tervezők egyik problémája az, hogyan használják fel az MCU korlátozott I/O-képességeit és erőforrásait az eszköz teljesítőképességének maximális kihasználása érdekében. A túl sok modul és az elégtelen kivezetésszám azon hiányosságok egyike, amelyek akadályozzák a hagyományos kis kivezetésszámú 8 bites mikrovezérlők képességeit. A nemrég bevezetett új tulajdonságokkal, mint a Pin Peripheral Select (PPS – perifériakivezetés kiválasztó), a tervezők mostantól bármelyik digitális jelet működés közben is bármelyik I/O-vezetékre irányíthatják, külső alkatrészek hozzáadása nélkül. Egy hagyományos tervben, amely több UART (aszinkron soros kommunikációs egység) használatát igényli, a feladat megoldásához egy nagy kivezetésszámú mikrovezérlőt kell választani, amelyben a szükséges mennyiségű UART-modul foglal helyet. A 8 bites MCU-k új generációjával mindez bármelyik mikrovezérlővel megvalósítható, amelyben legalább egyetlen UART mellett egy PPS vagy CLC is megtalálható annak érdekében, hogy a kommunikációs jeleket a megfelelő kivezetésekre irányíthassuk.
Összegezve, a magfüggetlen perifériák nagyobb tervezési szabadságot adnak a tervezőmérnöknek azáltal, hogy több periféria kombinációjával hozhatnak létre alkalmazásspecifikus funkciókat a processzorteljesítmény feláldozása és a teljesítményigény megnövekedése nélkül. Ezek az új hardverperifériák megszüntetik a hagyományos megoldásoknál tapasztalható processzormag-függést és determinisztikusabbá teszik a teljes rendszer működését. A legújabb generációs 8 bites mikrovezérlők így nagyobb teljesítményűnek és hatékonyabbnak tűnnek a hagyományos 8 bites MCU-knál, sőt, gyakran még a 32 bites MCU-kkal megvalósított, szoftvercentrikus megoldásoknál is nagyobb teljesítőképességet kínálnak azáltal, hogy számos funkciót hajtanak végre párhuzamosan az integrált magfüggetlen hardverelemek segítségével.

Hivatkozások
Megjegyzés: a PIC a Microchip Technology Incorporated bejegyzett védjegye az USA-ban és más országokban. A fentiekben említett bármely más védjegy a megfelelő vállalat tulajdona.

 

Szerző: Jin Xu, üzletfejlesztési igazgató, Ázsia és Óceánia – Microchip Technology Inc, MCU8 részleg

 


[1]A szögelfordulás jelentheti valamilyen forgó alkatrész geometriai értelemben vett szögben mérhető fizikai elfordulását éppúgy, mint a váltakozó áramú alkalmazásokban gyakran használt „forgó vektor” virtuális szögelfordulását. – A szerk. megj.

www.microchip.com

 Még több Microchip