Általános információk a mikrokontroller
Három alapvető típusa memória használt mikrokontroller. Program memória nem felejtő memória tárolására program kódját és állandók. Ez a memória nem változik annak tartalmát futás közben. Az adatmemória tárolására használatos változók a programban. Mikrokontroller regiszterek - az ilyen típusú memória magában foglalja a belső processzor regiszterek és regiszterek, hogy a használt perifériák.
Lehet, hogy meglepi egy kis memóriát mikrokontroller. Ezután látni fogja, hogy ez nem az ő nagy hiányossága. De amikor először találkoztunk, ez a funkció nagyon meglepő, különösen, ha összehasonlítjuk mikrokontrollereknek modern személyi számítógépek, amelyek több tíz megabyte memóriát.
Tárolására programok általában szolgál egyfajta nem-felejtő memória:
PROM (egyszer programozható ROM),
EPROM (elektromosan programozható ROM ultraibolya törlés)
EEPROM (ROM elektromos írása és törlése, hogy az ilyen típusú is modern flash-memória mikrochip)
ROM (maszk-programozható ROM).
Minden ilyen típusú memória nem felejtő - ami azt jelenti, hogy a memória tartalma megmarad kikapcsolása után a tápellátás a mikrokontroller. Ez a memória van szükség, mert a mikrokontroller nem tartalmaz olyan tárolóeszközök (meghajtók) tölti be a szoftvert a számítógépen. Szoftver tárolja a mikrokontroller.
Végrehajtása során a program olvasni a memóriából, és a vezérlőegység (utasítás dekóderrel) biztosít a dekódolás és a végrehajtó a szükséges műveleteket. A tartalmát a program memória nem lehet változtatni (átprogramozni) a program során. Ezért a funkcionalitást egy mikrokontroller nem változik, amíg a tartalmát a program memória nem törlődik (ha lehet), és programozni (tele új parancsokat).
Megjegyezzük, hogy bites mikrokontroller (8, 16 vagy 32 bit) megfelelően van megadva a kapacitás a adatbusz. A Harvard architektúra csapat lehet, hogy nagyobb kapacitású, mint az adatok lehetővé teszik az olvasást egy ciklusban az egész csapat. Például, PIC mikrokontrollerek, a modelltől függően használt parancsokat a bites 12, 14 vagy 16 bit. Az AVR mikrovezérlő parancs mindig 16 bit. Azonban mindezek az eszközök egy adatbusz 8 bit.
A készülékek adatbit architektúra Princeton rendszerint meghatározza kapacitása (sorok száma) használt gumiabroncsok. A mikrokontroller Motorola HC 68 május 24-bites utasítás található, három 8 bites programmemória sejteket. A teljes mintában a parancs, végre kell hajtania három ciklusban olvassa ezt a memóriát.
Amikor azt mondjuk, hogy a készülék egy 8-bites, az azt jelenti, bit adat, amely képes kezelni a mikrokontroller.
ROM memória (ROM) akkor használjuk, ha a programkód tárolja a mikrokontroller előállítása során. Pre-tesztelt és hibakeresés programot, majd át a gyártó, ahol a program alakítjuk maszk minta egy üveg fotomaszk. A kapott fotomaszkba egy maszkot használt megállapításának folyamata közötti kapcsolatok az elemek alkotják a program memória. Ezért ez a memória gyakran nevezik maszk programozható ROM.
ROM a legdrágább nem felejtő memória típusa tömeggyártásra. Azonban van néhány jelentős hátránya, hogy vezettek a tény, hogy ez a típusú memória alig használják az elmúlt években. A fő hátránya a jelentős költség- és időmegtakarítást a létrehozása egy sor új maszkok és azok bevezetése a termelésbe. Jellemzően ez a folyamat körülbelül tíz hétig, és költséghatékony a megjelenése több tízezer eszközök. Csak ilyen termelési volumen által nyújtott ROM előnye képest E (E) PROM. Van is egy korlátozás használatával kapcsolatos mikrokontroller csak egy bizonyos alkalmazási területen, mivel ez biztosítja, hogy a program mereven rögzített műveletek sorrendjét, és nem lehet használni, hogy megoldja a problémát más.
Az elektromosan programozható EPROM cellákból áll, amelyek úgy vannak programozva, és törlik a villamos jelek útján ultraibolya fényt. PROM memóriát lehet programozni csak egyszer. Ez a memória általában tartalmaz biztosítékokat, hogy éget a programozás során. Jelenleg ez a memória nagyon ritkán.
EPROM memóriában sejt M jelentése OS-tranzisztor úszó kapu, mely körül a szilícium-dioxid (SiO 2). Drain tranzisztor van csatlakoztatva a „föld”, és a forrás csatlakozik a tápfeszültség ellenálláson keresztül. A törölt állapotban (rögzítés előtt) nem tartalmaz egy úszó kapu töltés, és M OS-tranzisztor zárva van. Ebben az esetben a forrása a magas képesség fenntartását, és amikor hivatkozva egy sejt leolvassa a logikai egység. Memória programozása csökken a megfelelő bejegyzést a cella logikai nullát.
Programozás készül alkalmazásával nagyfeszültségű ellenőrző kapu (1.7 ábra). Ez a feszültség elegendőnek kell lennie ahhoz, hogy egy bontást a kapu és úszó kapu, ami után a töltés átkerül a ellenőrző kapu a lebegő. MOS-tranzisztor van kapcsolva, hogy a nyitott állapotban rövidre zárásával a forrása a földre. Ebben az esetben, hivatkozással a cella olvasható logikai nulla.
Ahhoz, hogy törli a tartalmát egy sejt, akkor világít az ultraibolya fénnyel, ami a töltés a lebegő gate elegendő energiát, hogy tudta hagyni a kaput. Ez a folyamat eltarthat néhány másodperctől néhány percig.

1.7 ábra Memória-sejt EPROM.
Általában, EPROM chip gyártása kerámia csomag és kvarc ablak UV fény hozzáférést. Az ilyen ház elég drága, ami jelentősen növeli a költségeit a chip. Hogy csökkentse az árakat EPROM chip zárt házban ahol nincs ablak (EPROM változat egyetlen programozás). Csökkenti a költségeit az ilyen testületek lehetnek olyan jelentős, hogy az EPROM verzió már gyakran használják helyett maszk programozható ROM.
Korábban mikrokontrollerek programozása csak el párhuzamos protokollok meglehetősen összetett végrehajtani. Jelenleg a modern protokollok programozási EPROM és EEPROM memória jelentősen megváltoztak, amely lehetővé tette a mikrokontroller elvégzésére programozás közvetlenül a rendszer, amelyen fut. Ez a programozási módszer az úgynevezett «in - rendszer programozás» vagy «ISP». ISP-mikrokontroller lehet programozni után forrasztva a fórumon. Ez csökkenti a költségeket a programozás, így nincs szükség speciális berendezések - programozók.
Egy EEPROM (elektromosan törölhető programozható memória - elektromosan törölhető programozható memória) lehet tekinteni, mint egy új generációs EPROM memóriában. Egy ilyen memória-sejtet nem törlődik ultraibolya fénnyel, és a villamosan összekötő úszó kapu a „föld”. Segítségével EEPROM lehetővé teszi, hogy törölje és programozza a mikrokontroller eltávolítása nélkül a tábláról. Ezáltal lehetőség van, hogy rendszeresen frissíti a szoftvert.
EEPROM memória drágább, mint EPROM (kétszeres áron egy EPROM-programozás). EEPROM egy kicsit lassabb, mint EPROM.
A fő előnye, hogy segítségével egy EEPROM az a lehetőség, hogy sokrétű átprogramozás nélkül kiveszi a fórumon. Ez ad egy óriási eredmény a kezdeti szakaszában a fejlődés alapuló rendszerek mikrokontroller vagy az eljárás során a tanulmány, ha sok időt töltött keres okait többszörös rendszer leállás és végrehajtása későbbi program memória törlés és programozási ciklus.
Funkcionálisan Flash memória nem nagyon különbözik a EEPROM. A fő különbség az eljárás törlése a rögzített adatokat. Az EEPROM memória törlést végezzük külön-külön minden egyes cella, mint a flash-memória törlési végezzük egész blokkokat. Ha meg akarjuk változtatni a tartalmát egy sejt Flash memória, akkor kell újraprogramozni az egész blokk (vagy az egész chip). A mikrokontroller EEPROM memória, megváltoztathatja egyes részeit a program anélkül, hogy programozza át az egész készüléket.
Gyakran azt jelzi, hogy a készülék rendelkezik egy flash-memóriát, amikor valójában tartalmaz EEPROM. Jelenleg a memória típusokat van néhány különbség, így néhány gyártó használja ezeket a kifejezéseket egyenértékű.
Amikor az első bevezetés a leírás mikrokontroller sok meglepő kis mennyiségű RAM memória adat. amely általában a tíz vagy több száz bájt. Ha a mikrokontroller használ az adatok tárolására EEPROM memóriát. akkor annak térfogata nem haladja meg a néhány tíz bájt.
Ha írsz egy programot egy személyi számítógép (PC), akkor valószínűleg van egy kérdés, mit lehet tenni egy ilyen kis mennyiségű memóriát. Valószínűleg, az alkalmazás a PC tartalmazhat változókat, a kötet, amely kilobájtos, nem számítva a felhasznált adatsorok. Ha tömbök szükséges memóriakapacitás lehet több száz kilobájt. Szóval mit lehet tenni a RAM körülbelül 25 byte?
A tény az, programozza a mikrokontroller végzi különböző szabályok, mint a PC-programozás. Alkalmazása néhány egyszerű szabályt meg lehet oldani sok problémát okoz a kis mennyiségű RAM memóriát. Amikor beállítja az mikrokontroller állandó, ha lehet, ne tároljuk változókat. Maximális kihasználása hardveres képességek mikrokontroller (például időzítő, indexregiszterek) korlátozni lehetséges elhelyezése adatok a RAM. Ez azt jelenti, hogy az alkalmazások, először meg kell vigyázni a elosztását memória források. A pályázatokat kell összpontosítani munka nélkül a használata nagy mennyiségű adat.
A mikrokontroller RAM használják a szervezet a szubrutinhívási és megszakítás kezelő. Az ilyen műveletek a tartalmát a program számláló és fontosabb regiszterek (akkumulátor, státusz regiszter, indexregiszterek stb) mentésre, majd vissza, amikor visszatér a fő program.
Stack - elektronikus adatszerkezetet, amely úgy működik, hasonlóan a fizikai megfelelője - egy köteg papírt. Ha valami kerül a verem, akkor ott marad, amíg kiveszik vissza. Tegyünk színes papírlapokat, amelyeket egymásra rakott. Amikor lapokat eltávolítják, akkor a mozgás fordított sorrendben. Emiatt a verem gyakran nevezik a sor típusa LIFO (Last In First Out). - «utolsó, first out„.
A Princeton RAM architektúrát használunk, hogy végre egy több hardver funkciók, többek között a funkciók a verem. Ez csökkenti a készülék teljesítményét, mivel hozzáférést biztosít a különböző típusú memóriák igényelnek több kezelést, hogy nem lehet végrehajtani. Ugyanezen okból Princeton építészet általában több órajel ciklust végrehajtani a parancsot, mint a Harvard.
A Harvard architektúra verem műveletek végezhetők el a memóriában kifejezetten elkülöníteni erre a célra. Ez azt jelenti, hogy a parancs «hívás» szubrutinhívás processzor Harvard architektúra műveleteket hajtja végre egyszerre. A Princeton építészet, amikor az alábbi «hívás» parancs parancs kiválasztása után a program tartalmát számláló kerül a verem.
Emlékeztetni kell arra, hogy mind a mikrokontroller architektúrák korlátozott memória kapacitás adatok tárolására. Ezt az értéket meghaladó problémákat okozhat a program végrehajtása során.
Most tekintsük a lehetőséggel, hogy fenntartsa a köteg regiszter tartalma. Egyes architektúrák nincs csapat, hogy hajtsa végre a regiszterek tartalma a verem loading «tolja» és kivonat a verem «pop». Azonban «tolja» és «pop» parancsok könnyen megvalósítható az index regiszter, mely egyértelműen jelzi a régió a verem. Ebben az esetben inkább az egyes csapatok «toló» és a «pop» két alább felsorolt parancsokat:
Nyomja :; adatok betöltése a verembe
mozog [index], A; menteni a tartalmát egy akkumulátor sor
Csökkentés index, menjen a következő cellamáglya
Pop :; kitermelése adatokat a verem
növekmény index, hogy az előző cellamáglya
Egy lépés, [index]; helyiérték az akkumulátor sor
Természetesen ez a megoldás kevésbé hatékony, mint a különleges csapatok «álljon» és a «pop», és használt indexregiszterként szükséges lehet más célra. Azonban ez a megoldás egy köteg szimuláció processzorok, amelyek nem rendelkeznek ilyen parancsot.
Van egy másik probléma a fenti példa. Mi történik, ha egy megszakítás lép egymással az első és a második csapat, amely szimulálja a műveletet «tolja» és a «pop»? Ha a megszakítás kezelő használja a verem, a tárolt adatok az el fog veszni. Ennek megelőzése érdekében, letilthatja a megszakításokat megelőzően a fenti parancsokat, vagy átrendezheti őket a következő sorrendben:
Nyomja :; adatok betöltése a verembe
Csökkentés index, menjen a következő cellamáglya
mozog [index], A; menteni a tartalmát egy akkumulátor sor
Pop :; kitermelése adatokat a verem
Egy lépés, [index]; helyiérték az akkumulátor sor
növekmény index, hogy az előző cellamáglya
Ha az első parancsot, a program megszakad, akkor nem vész el a kezelést követően, a tartalmát a verem megszakítás.