Mikrokontrollerek 2. fejezet
A mikrokontrollerek szövege 2. fejezet
2019.08.02. Mikrokontrollerek 2. fejezet

A memória a mikrovezérlő része, amelynek feladata az adatok tárolása. A megmagyarázás legjobb módja egy nagy szekrény, sok fiókkal leírva. Ha feltételezzük, hogy a fiókokat olyan módon jelölték meg, hogy ne keverjék össze, akkor bármelyik tartalmuk könnyen hozzáférhető lesz. Elég tudni a fiók nevét, így annak tartalma biztosan ismeretes lesz számunkra.
A memória komponensei pontosan aa. Egy bizonyos bejegyzéshez megkapjuk a megnevezett memóriahely tartalmát, és ennyi. Két új fogalom van jelen: a címzés és a memória helye. A memória minden memóriahelyből áll, és a címzett nem más, mint az egyik kiválasztása. Ez azt jelenti, hogy ki kell választanunk a helyet
egyik végén, a másik végén pedig meg kell várnunk az adott hely tartalmát. Amellett, hogy memóriahelyről dönt, a memóriának lehetővé kell tennie az írást is. Ez úgy történik, hogy biztosítunk egy további vonalat, az úgynevezett vezérlővonalat. Ezt a sort nevezzük R/W (olvasás/írás). A vezérlővonalat a következőképpen használjuk: ha R/W = 1 beolvasásra kerül, akkor idac R/W = 0, majd írjon a memóriahelyre. A memória az első elem, de másokra van szükségünk a mikrovezérlőnk működéséhez.
1.2 Központi feldolgozó egység
Adjunk hozzá további 3 memóriahelyet egy adott blokkhoz, amelynek beépített függvénye lesz az összeadás, szorzás, osztás, kivonás. Az imént hozzáadott részt "központi feldolgozó egységnek" (CPU) hívják. Memóriahelyeit regisztereknek nevezzük.
2019.08.02. Mikrokontrollerek 2. fejezet
A regiszterek tehát olyan memóriahelyek, amelyek szerepe különféle matematikai vagy egyéb adatműveletek végrehajtása, bárhol is találnak adatokat. Nézzük meg a jelenlegi helyzetet. Két független entitásunk van (memória és CPU), amelyek összekapcsolódnak, ezért minden információcsere rejtve van, csakúgy, mint annak funkcionalitása. Ha például hozzá akarjuk tenni
két memóriahely tartalmát, és visszaadja az eredményt a memóriába, kapcsolatra lesz szükségünk a memória és a CPU között. Egyszerűen fogalmazva, rendelkeznünk kell egy bizonyos "úttal", amelyen keresztül az adatok egyik blokkból a másikba kerülnek.
Az utat "busznak" - busznak hívják. Fizikailag egy 8, 16 vagy több szálból álló csoportot képvisel. Kétféle busz létezik: cím busz és adat busz. Az első annyi sorból áll, ahány memória címet (bitben) meg akarunk címezni, a másik pedig olyan széles, mint az adatok, esetünkben 8 bit vagy a csatlakozási vonal. Az első a címek továbbítását szolgálja a CPU-ból a memóriába, a második pedig a mikrokontrolleren belüli összes blokk összekapcsolására szolgál.
A funkcionalitás tekintetében a helyzet javult, de új probléma is felmerült: van egy egységünk, amely képes egyedül dolgozni, de nincs kapcsolata a külvilággal vagy velünk! Ennek a hiányosságnak a kiküszöbölése érdekében adjunk hozzá egy blokkot, amely olyan memóriaértékeket tartalmaz, amelynek egyetlen feje csatlakozik az adat buszhoz, a másik pedig
mikrokontroller kimeneti vonalak, amelyek szabad szemmel láthatók, mint az elektronikus alkatrész csapjai.
2019.08.02. Mikrokontrollerek 2. fejezet
Ezeket a most hozzáadott helyeket "portoknak" nevezzük. Különböző típusú portok léteznek: belépési, kilépési vagy kétirányú portok. A portokkal való munkavégzés során először is ki kell választani, hogy melyik porttal dolgozzon, majd adatokat kell küldeni a portra, vagy adatokat kell onnan elvinni.
Ha vele dolgozik, a port memóriahelyként viselkedik. Valami egyszerűen le van írva vagy leolvasható belőle, és ezt könnyű észrevenni a mikrovezérlő csapjain.
Ezzel hozzáadtuk a már létező egységhez a külvilággal való kommunikáció lehetőségét, ennek a kommunikációs módnak azonban vannak hátrányai. Az egyik alapvető hátrány az adatok továbbításához használt sorok száma. Mi lenne, ha néhány kilométerrel arrébb kellene áthelyezni őket? A vonalak száma szorozva a kilométerek számával nem
költséghatékony projektet ígér. Csak annyit kell tennünk, hogy a sorok számát olyan mértékben csökkentjük, hogy ne csökkentsük a funkcionalitást. Tegyük fel, hogy csak 3 vonallal dolgozunk, és az egyik sort az adatátvitelhez, a másikat a vételhez, a harmadikat pedig referencia vonalként használják mind a bemeneti, mind a kimeneti részhez. Ennek működéséhez meg kell állapítanunk az adatcsere szabályait. Ezeket a szabályokat protokollnak nevezzük. Ezért a protokollt előre meghatározták, hogy ne legyen félreértés közöttük
egymással kommunikáló lehetőségek. Például, ha az egyik franciául, a másik pedig angolul beszél, nem valószínű, hogy gyorsan és hatékonyan kijönnek egymással. Tegyük fel, hogy c
a következő protokoll áll rendelkezésünkre: Az "1" logikai egységet az átvitel megkezdéséig a távvezetéken állítjuk be. Egyszer
megkezdődik az átvitel, a távvezetéket egy időre leengedjük a logikai "0" értékre (amelyet T-ként jelölünk meg), hogy a fogadó fél tudja, hogy van adat, amelyet fogadni kell, így aktiválja a vételi mechanizmust. Térjünk vissza a sebességváltó részhez, és kezdjünk el nullákat és egereket tenni
a távvezetéken a legkevésbé jelentős bittől a legjelentősebbig. Hagyja, hogy minden bit maradjon a vonalon egy T-vel egyenlő ideig, és a végén, vagy a 8. bit után visszahozza az "1" logikai egységet arra a vonalra, amely jelzi az adatátvitel végét. -leírják a szakirodalomban NRZ (Non-Return to Zero).
2019.08.02. Mikrokontrollerek 2. fejezet
2019.08.02. Mikrokontrollerek 2. fejezet
Természetesen, ha ez számítógéppel történik, egyszerűen visszaállítjuk és tovább dolgozunk. A mikrovezérlő esetében azonban nincs újraindító gomb, amelyet meg lehetne nyomni a probléma megoldásához. Ennek az akadálynak a leküzdéséhez be kell vezetnünk egy másik blokkot, amelyet őrzőknek hívnak. Ez a blokk valójában egy másik szabadon futtatható számláló, ahol programunknak nullát kell írnia, amikor azt helyesen hajtják végre. Abban az esetben, ha a program "áthatolatlan", a nullát nem írják, és a számláló visszaállítja magát. elérve maximális értékét. Ez a program ismételt futtatását eredményezi, és ezt az időt végig javítja. Ez minden olyan program fontos eleme, amelynek megbízhatónak kell lennie az emberi felügyelet szempontjából.
1.8. Analóg-digitális átalakító
Mivel a perifériák jelei lényegesen különböznek azoktól, amelyeket a mikrovezérlő le tud olvasni (nulla és egy), azokat úgy kell átalakítani, hogy a demokratikus vezérlő megérthető legyen. Ezt a feladatot analóg-digitális átalakításra szolgáló blokk vagy AD átalakító végzi. Ez a blokk felelős azért, hogy egy bizonyos analóg értékről információt bináris számgá alakítson, és hogy egy CPU-blokknak továbbítsa azt abban a formában, amely
a CPU blokk képes feldolgozni.
Így a mikrovezérlő most elkészült, és csak annyi a tennivaló, hogy egy elektronikus alkatrészbe helyezzük, ahol a külső csapokon keresztül hozzáfér a belső blokkokhoz. Az alábbi képen látható, hogy néz ki a mikrovezérlő belül.
A mikrokontroller belsejének fizikai konfigurációja
2019.08.02. Mikrokontrollerek 2. fejezet
A mikrovezérlő belsejéből az oldala felé haladó vékony vonalak a belső blokkok természetes kapcsolatát képviselik a mikrokontroller kapszula csapjaival. Az alábbi ábra a mikrovezérlő központi szakaszát mutatja.
Valódi alkalmazáshoz önmagában a mikrovezérlő nem elegendő. A mikrovezérlőn kívül szükség van egy programra a futtatáshoz, és néhány más elemre, amelyek logikus interfészt jelentenek a végrehajtási elemekhez (amelyeket a következő fejezetek tárgyalnak).
2019.08.02. Mikrokontrollerek 2. fejezet
A programírás a mikrovezérlő speciális munkaterülete, és "programozásnak" nevezik. Próbáljunk megírni egy kis programot, amelyet mi magunk fogunk létrehozni, és amelyet bárki képes megérteni.
STARTREGISTER1 = MEMORY LOCATION_AREGISTER2 = MEMORY LOCATION_BPORTA = REGISTER1 + REGISTER2END
A program két memóriahely tartalmát gyűjti össze, és összegüket az A portban látja.
A program első sora az "A" memóriahely tartalmának áthelyezése a központi processzor egyik regiszterébe. Mivel szükségünk van a többi adatra, áthelyezzük a központi feldolgozó egység másik nyilvántartásába is.
A következő utasítás utasítja a központi feldolgozó egységet, hogy gyűjtse össze a két regiszter tartalmát, és küldje el az eredményt az A portra úgy, hogy látható legyen az összeállítás összege.
mindenki kívül. Bonyolultabb probléma esetén a program hosszabb ideig fog dolgozni a megoldásán.
A programozás több nyelven is elvégezhető, például az Assembler, a C és az Basic, amelyek a leggyakrabban használt nyelvek. Az Assembler olyan alacsony szintű nyelvekhez tartozik, amelyeket lassan programoznak, de a legkisebb memóriaterületet használják, és a legjobb eredményt adják, ha figyelembe vesszük a program végrehajtási sebességét.
Mivel ez a mikrovezérlő programozásában a leggyakrabban használt nyelv, egy későbbi fejezetben tárgyaljuk. A C nyelvű programokat könnyebben lehet írni, könnyebben megértik, de jobban futnak, mint az Assembler programok. Az Basicet a legkönnyebb megtanulni, utasításai a legközelebb állnak az ember gondolkodásmódjához, de mint a nyelv
A C programozás is lassabb, mint az Assembler-