Programozás mcs 51. Mikrokontrollerek MCS-51. Blokkdiagram, ALU, adatmemória. Akkumulátoros és általános célú regiszterek

22.04.2021 Biztonság

Jelenleg a különböző cégek számos módosítást és analógot gyártanak ebből a családból, mind az Intel, mind más gyártók által, az órajel frekvencia és a memória mérete tízszeresére nőtt, és folyamatosan növekszik. Kiegészül a beépített LSI modulok készlete is, nagyszámú modern modellbe beépítenek egy nagy sebességű rezidens ADC-t, akár 12 darabot is, és most több bit is lehet. De az MSS51 család középpontjában az Intel BIS 8051, 80C51, 8751, 87C51, 8031, 80C31 típusai állnak, amelyek első mintái 1980-ban jelentek meg.

Az MCS51 család mikrovezérlői kiváló minőségű n-MOS technológiával (8ХХХ sorozat, analóg - 1816-os sorozat Oroszországban és Fehéroroszországban) és k-MOS technológiával (8ХСХХ sorozat, analóg - 1830-as sorozat) készülnek. A 8 utáni második karakter azt jelenti: 0 - nincs EEPROM a chipen, 7 - 4K EEPROM UV törléssel. A harmadik karakter: 3 - a ROM kristályosodik, 5 - ha nincs ROM, akkor maszkolt ROM van a chipen.

Tehát a 80S51 egy k-MOS LSI maszk ROM-mal egy chipen, a 8031 ​​egy n-MOS LSI programmemória (ROM, EPROM) nélkül egy chipen, a 8751 egy n-MOS LSI rezidenssel (található). chipen) RPROM ultraibolya törléssel. Továbbra is figyelembe vesszük az LSI 8751-et, és szükség esetén fenntartásokat fogalmazunk meg a többi áramkör különbségeivel kapcsolatban, hivatkozva az első soros LSI-hez közzétett paraméterekre. Ha szükséges, minden modern módosításról további információkat találhat a cégjegyzékekben és a műszaki dokumentációkban.

A. Általános jellemzők és tűkiosztás

Az MCS51 család az MK öt módosításán alapul (azonos fő jellemzőkkel), amelyek között a fő különbség a programmemória megvalósítása és az energiafogyasztás (lásd 3.1. táblázat). A mikrokontroller nyolcbites, azaz. rendelkezik utasításokkal a nyolcbites szavak feldolgozására, Harvard architektúrájú, a család alapmintáinak órajel-frekvenciája 12 MHz.

3.1. táblázat.

mikro áramkörök

Belső programmemória, byte

Program memória típusa

Belső adatmemória, byte

Órajel frekvencia, MHz

Fogyasztói áram, mA

Az MK 8051 és 80C51 maszkkal programozható ROM programmemóriát tartalmaz, amelynek kapacitása 4096 bájt, és tömeggyártáshoz készültek. Az MK 8751 egy 4096 bájtos EPROM-ot tartalmaz UV törléssel, és kényelmes a rendszerfejlesztés szakaszában programok hibakeresésekor, valamint kis tételekben történő gyártáskor vagy olyan rendszerek létrehozásakor, amelyek megkövetelik.

időszakos kiigazítás.

Az MK 8031 ​​és 80C31 nem tartalmaz beépített programmemóriát. A korábban ismertetett módosításokhoz hasonlóan akár 64 KB külső programmemóriát is igénybe vehetnek, és hatékonyan használhatók olyan rendszerekben, amelyek lényegesen nagyobb (egy chipen 4 KB-nál nagyobb) ROM programmemóriát igényelnek.

A család minden MK-ja tartalmaz egy 128 bájt kapacitású rezidens adatmemóriát, amely külső RAM IC-k használatával akár 64 KB-ra bővítheti a RAM-adatok teljes mennyiségét.

    központi nyolcbites processzor;

    4K programmemória (csak 8751 és 87C51);

    128 bájtos adatmemória;

    négy nyolcbites programozható bemeneti-kimeneti port;

    két 16 bites multimódusú időzítő/számláló;

    autovektoros megszakítások rendszere öt vektorral és két szoftver által vezérelt prioritási szinttel;

    soros interfész, beleértve egy univerzális duplex adó-vevőt, amely négy üzemmódban képes működni;

    óra generátor.

Az MK parancsrendszer 111 alapvető parancsot tartalmaz 1, 2 vagy 3 bájt formátumban. A mikrokontroller rendelkezik:

    32 regiszter Általános rendeltetésű RON, négy, egyenként R0 ... R7 néven nyolc regiszterből álló bankba szervezve egy adott bank kiválasztását a program határozza meg a megfelelő bitek beállításával a PSW program állapotregiszterében;

    128 szoftver által vezérelt jelző (bit processzor, lásd alább);

    az MK elemeit vezérlő speciális funkciók regisztereinek halmaza. A mikrokontroller a következő üzemmódokkal rendelkezik:

egy). Általános visszaállítás. 2) Normál működés. 3). Alacsony energiafogyasztású és üresjárati üzemmód. négy). A rezidens EPROM programozási módja, ha van ilyen.

Itt az első két üzemmódra koncentrálunk, az MC összetételének és működésének részletes leírása minden üzemmódban a P1. függelékben található.

A RON és a bitprocesszor zóna a rezidens RAM címterében található 0 és 80h közötti címekkel.

A rezidens RAM címeinek felső zónájában speciális funkciók regiszterei (SFR, Special Function Registers) találhatók. Céljukat a táblázat tartalmazza. 3.2.

3.2. táblázat.

Kijelölés

Név

Akkumulátor

Regisztráció B

Programállapot-nyilvántartás

veremmutató

Adatmutató. 2 bájt:

alacsony bájt

magas bájt

A prioritási nyilvántartás megszakítása

Megszakítás engedélyezése regiszter

Időzítő/számláló mód regisztrálása

Timer/Counter Control Register

Időzítő/számláló 0. Magas bájt

Időzítő/számláló 0. Alacsony bájt

Időzítő/számláló 1. Magas bájt

Időzítő/számláló 1. Alacsony bájt

Soros port vezérlés

Soros puffer

Fogyasztás menedzsment

* - nyilvántartások, lehetővé téve lépésenként megszólítás

Vessünk egy pillantást a 3.2. táblázatban felsorolt ​​SFR-ek funkcióira.

Akkumulátor ACC - akkumulátoros regiszter. Munkavégzésre tervezett csapatok

ha akkumulátorral rendelkezik, használja az "A" emlékeztetőt, például, MOV DE, R2 . Az "ACC" emlékeztetőt például akkor használjuk, amikor bitről bitre címezzük az akkumulátort. Így az A5M51 assembler használatakor az akkumulátor ötödik bitjének szimbolikus neve a következő lesz: ACC. 5. .

Regisztráció NÁL NÉL . Szorzási és osztási műveleteknél használatos. Egyéb utasítások esetén a B regiszter egy további scratchpad regiszternek tekinthető.

Regisztráció Államok programokat PSW információkat tartalmaz a program állapotáról, és részben automatikusan az elvégzett művelet eredménye, részben a felhasználó állítja be. A regiszterbitek megnevezését és rendeltetését a 3.3. és 3.4. táblázat tartalmazza.

3.3. táblázat.

Kijelölés

3.4. táblázat.

Kijelölés

Bit hozzárendelés

Hozzáférés az ütemhez

Hordj zászlót. Változások számos aritmetikai és logikai utasítás végrehajtása során.

Hardver vagy szoftver

További hordozási zászló. Hardver beállítja/törölte az összeadás vagy kivonás utasítások végrehajtása során, hogy jelezze a 3. bit átvitelét vagy kölcsönzését, amikor az eredmény alacsony nibble-jét generálja (D0-D3).

Hardver vagy szoftver

Flag 0. A felhasználó által meghatározott jelző.

Programozottan

Programozottan

Mutasson a működő regiszterek bankjára

Programozottan

Bank 0 címek (00H - 07H) Bank 1 címek (08H - 0FH) Bank 2 címek (10H - 17H) Bank 3 címek (18H - 1FH)

túlcsorduló zászló. A hardver beállítja vagy törli az aritmetikai utasítások végrehajtása során, hogy jelezze a túlcsordulási állapotot.

Hardver vagy szoftver

Tartalék. Használható olvasási/írási triggert tartalmaz

Paritás bit. Hardver alaphelyzetbe állítja vagy állítsa be minden utasítási ciklusban, hogy jelezze az "1" állapotú akkumulátorbitek páros vagy páratlan számát.

Hardver vagy szoftver

Mutató Kazal SP - Egy 8 bites regiszter, amelynek tartalma növekszik, mielőtt a PUSH és CALL utasítások során az adatok a verembe írnának. A kezdeti alaphelyzetbe állításkor a veremmutató 07H-ra áll, és az adat-RAM-ban lévő veremterület a 08H címen kezdődik. Szükség esetén a veremmutató újradefiniálásával a veremterület bárhol elhelyezhető a mikrokontroller belső adat-RAM-jában.

Mutató adat DPTR magas bájtból (DPH) és alacsony bájtból áll

(DPL). 16 bites címet tartalmaz a külső memória elérésekor. Használható

16 bites regiszterként vagy két független nyolc bites regiszterként tárolható.

Port0 - PortZ. A P0, P1, P2, P3 speciális funkciók regisztereinek külön bitjei a P0, P1, P2, P3 portok kimeneteinek "reteszelései" bitek.

Puffer következetes kikötő SBUF két külön regisztert képvisel: az adó pufferét és a vevő pufferét. Amikor az adatokat SBUF-ba írjuk, az bekerül az adó pufferébe, és egy bájt SBUF-ba írása automatikusan elindítja az adatátvitelt a soros porton keresztül. Amikor az adatokat az SBUF-ból olvassa be, a rendszer a célpufferből tölti le.

Regisztrálok időzítő. A regiszterpárok (TH0, TL0) és (TH1, TL1) 16-ot alkotnak

az időzítő/számláló 0, illetve az időzítő/számláló 1 bitszámláló regiszterei.

Regisztrálok menedzsment. Az IP, IE, TMOD, TSON, SCON és PCON speciális funkcióregiszterek vezérlőbiteket és állapotbiteket tartalmaznak a megszakítási rendszerhez, idő-

mértékek/méterek és soros port. Az alábbiakban részletesen tárgyaljuk őket.

RxD TxD INT0 INT1 T0 T1 WR

P1.2 P1.3 P1.4 P1.5 P1.6 P1.7

RST BQ2 BQ 1EA

P3,0 P3,1 P3,2 P3,3 P3,4 P3,5 P3,6 P3,7

P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7

P0,0 P0,1 P0,2 P0,3 P0,4 P0,5 P0,6 P0,7

Az MC működés közben biztosítja:

    az összeadási parancsok minimális végrehajtási ideje 1 µs;

    hardveres szorzás és osztás 4 µs minimális végrehajtási idővel.

Az MK lehetővé teszi a belső oszcillátor frekvenciájának beállítását kvarckristály, LC lánc vagy külső oszcillátor segítségével.

A kibővített parancsrendszer bájt- és bitcímzést, bináris és bináris-decimális aritmetikát, túlcsordulás jelzést és páros/páratlan meghatározást, valamint logikai processzor megvalósításának lehetőségét biztosítja.

Az MCS51 család architektúrájának legfontosabb és legmeghatározóbb jellemzője, hogy az ALU a 8 bites adattípusokon végzett műveletek mellett képes egybites adatokat is manipulálni. Az egyes szoftverrel elérhető bitek beállíthatók, visszaállíthatók, vagy kiegészítésükkel helyettesíthetők, továbbíthatók, ellenőrizhetők és

3.2. ábra. Külső leletek

mikrokontroller

logikai számításoknál használják. Míg az egyszerű adattípusok támogatása (ha léteznek

A szóhosszúság jelenlegi tendenciája) első pillantásra visszalépésnek tűnhet, ez a minőség az MCS51 család mikrovezérlőit különösen alkalmassá teszi a vezérlőket használó alkalmazásokhoz. Ez utóbbiak működési algoritmusai a maguk módján feltételezik a bemeneti és kimeneti logikai változók jelenlétét, amelyek szabványos mikroprocesszorokkal nehezen megvalósíthatók. Mindezeket a tulajdonságokat együttesen az MCS51 család logikai processzorának nevezzük. Ez a nagy teljesítményű ALU teszi az MCS51 mikrokontrollercsaládot egyformán megfelelő utasításkészletté valós idejű vezérlési alkalmazásokhoz és adatintenzív algoritmusokhoz egyaránt.

A mikrokontroller kapcsolási rajza az ábrán látható. 3.2. Az alapváltozatban 40 tűs DIP csomagba van csomagolva. Fontolja meg a következtetések célját.

Kezdjük a tápkábelekkel «0 NÁL NÉL" és "5 NÁL NÉL" , amelyen keresztül kapja a fő teljesítményt. Az aktuális fogyasztást a táblázat tartalmazza. 3.1.

Következtetés "RST" - Reset a mikrokontroller. Amikor ezt a tűt aktívan magasra hajtják, a mód Tábornok Visszaállítás és MK a következő műveleteket hajtja végre:

Nullára állítja a PC utasításszámlálót és az összes speciális funkcióregisztert, kivéve a P0-P3 portreteszeket, az SP veremmutatót és az SBUF regisztert;

    a veremmutató 07H-val egyenlő értéket vesz fel;

    letilt minden megszakítási forrást, időzítő számlálót és soros számlálót

    kiválasztja a RAM 0. BANKÁT, előkészíti a P0-RZ portokat az adatok fogadására és meghatározza

megosztja az ALE és PME érintkezőket külső óra bemeneteként;

      a PCON, IP és IE speciális funkció regiszterekben a fenntartott bitek véletlenszerű értékeket vesznek fel, és az összes többi bit nullára áll vissza;

      az SBUF regiszter véletlenszerű értékekre van állítva.

      a P0-P3 portok reteszeit "1"-re állítja.

A mikrokontroller regisztereinek visszaállítás utáni állapotát a 3.5. táblázat mutatja.

3.5. táblázat.

Információ

határozatlan

0XXXX0000B k-MOS esetén 0XXXXXXXB n-MOS esetén

Az RST kimenetnek van egy alternatív funkciója is. A tartalék tápellátást ezen keresztül biztosítják, hogy a mikrokontroller RAM-jának tartalma változatlan maradjon a fő eltávolításakor.

következtetéseket bq1, BQ2 kvarc rezonátor csatlakoztatására tervezték, amely meghatározza az MC órajel-frekvenciáját.

Következtetés EA` (E xternal A ruha külső cím) - Úgy tervezték, hogy aktiválja a vezérlőkódok olvasási módját külső memória programokat, amikor ez a láb aktív alacsony. A kimenetnek alternatív célja (funkciója) van. Programozási módban az EPROM programozási feszültségével látja el.

Következtetés PME (P program M emória E nemes engedély memória programokat) - a programmemóriából történő olvasási ciklus vezérlésére szolgál, és minden gépi ciklusban automatikusan aktiválja az MK-t.

Következtetés ALE (A ruha L angol E nemes engedély junior címek) villog a cím alsó részének kimenete a P0 porton. A kimenet az EPROM programozásakor is használatos, míg a programozási folyamat során villogó impulzus kerül rá.

Az MK négy portcsoportot tartalmaz: P0, P1, P2 és P3. Ez a mikrokontroller maradék 40 tűje. Ezek a portok szolgálhatnak bitenkénti bemenetre - információ kimenetre, de emellett mindegyiknek megvan a maga specializációja. A port általánosított funkcionális diagramja a 2. ábrán látható. 3.3. A port a tűhöz csatlakoztatott FET kimeneti kapcsolókat, egy funkciókapcsolót, egy D-reteszelő reteszt és vezérlőlogikát tartalmaz. Az MK belső buszon lévő reteszre egy vagy nulla írható. Ez az információ a funkciókapcsolón keresztül a kimeneti gombokhoz és az MC kimenetéhez jut. Az első állapotban mindkét N és N1 tranzisztor zárt, de az N2 nyitott. Nulla állapotban N megnyílik-

Xia, és az N2 bezár. Abban a pillanatban, amikor egy port végrehajtja azt az alternatív funkciót, amelyre specializálódott, a kimeneti reteszelés állapota felszabadul. A mikrokontroller külön-külön tudja leolvasni a port reteszelési állapotát és a kimenetének külső jellel beállított állapotát. Ehhez az MK assemblerben speciális parancsok vannak, amelyek aktiválják a megfelelő sorokat. A tű állapotának leolvasásához a megfelelő port reteszében,

előre rögzíteni kell

Belsőről

Kezelési retesz

Funkció kapcsoló

Vcc

Hétvégén

Mértékegység. Ha a „reteszelő olvasás” sor aktiválva van annak az „ÉS” cellának a kimenetén, amelyhez ez a vonal csatlakozik,

abroncsai MK D Q

Írjon a C Q reteszbe

retesz leolvasás

Port pin

a mikrokontroller belső buszára érkező retesz állapota, ha aktiválva van

"olvasási kimenet" - a port külső kimenetének állapota.

Kikötő P0 – univerzális kétirányú port

bemenet kimenet. E kikötő mögött

a címek külső buszainak szervezési funkciója és

Rizs. 3.3. A mikrokontroller portjának működési diagramja

adatok a programmemória és az adatmemória bővítéséhez

mikrokontroller. Külső programmemória elérésekor vagy külső adatmemória-hozzáférési parancs végrehajtásakor a cím alsó része (A0…A7) a port érintkezőire kerül, amely az ALE lábon magasra villog. Ezután az adatmemóriába való íráskor az MK belső buszáról írt információ a P0 port lábaira kerül. Az olvasási műveleteknél éppen ellenkezőleg, a port érintkezőiből származó információ a belső buszra kerül. A P0 port jellemzője az N2 „felhúzható” tranzisztor hiánya, amely tápellátást biztosít a kimenetnek. Amikor egy reteszt írnak az 1-es portra, az egyszerűen az adatbusz megfelelő működéséhez szükséges nagy impedanciájú állapotba kerül. Ha bármilyen külső eszközt kell táplálni a kimeneten keresztül, külső ellenállásokat kell biztosítani a tápáramköröktől a port kimenetig.

Kikötő P1 – univerzális kétirányú I/O port alternatív funkciók nélkül.

Kikötő R2 – univerzális kétirányú I/O port, alternatív funkcióként, amely a cím felső részét (А8…А15) adja ki külső memória elérésekor.

Kikötő P3 – univerzális kétirányú bemeneti-kimeneti port, amelynek minden bitje különféle alternatív funkciók végrehajtását biztosítja. Ebben az esetben az alternatív funkciók csak akkor valósulnak meg, ha egységeket írnak a port kimeneti reteszeire, ellenkező esetben az alternatív funkciók végrehajtása blokkolva van. Mindegyik bithez külön soroljuk fel őket:

P3.0 RxD (R fej e x belső D evett, külső adatok olvasása) – a beépített soros adó-vevő bemenete.

P3.1 TxD (T igen e x belső D evett, külső adatokat továbbít) – beépített soros adó-vevő kimenet.

P3.2 INT0` (INT kitörés, megszakítás) - külső megszakítási bemenet 0.

P3.3 INT1` – külső megszakítás bemenet 1.

P3.4 С/T0 – nulla beépített időzítő/számláló bemenete.

P3.5 C/T1 – az első beépített időzítő/számláló bemenete.

P3.6 WR". (W rite, write) - az adatmemóriában lévő írási ciklus vezérlő kimenete.

P3.7 RD` (R ead, read) - az olvasási ciklus kimeneti vezérlése az adatmemóriából.

A P1, P2 és P3 portok körülbelül 0,2 mA áramot képesek kiadni, és 3 mA áramot vesznek nullánál, a P0 portok erősebbek, és körülbelül 0,8 mA áramot képesek leadni nullánál, és 5 mA áramot fogadni nullánál. A mikrokontroller érintkezőinek rendeltetéséről a 3.6. táblázat található.

3.6. táblázat.

Kijelölés

Kimeneti cél

8 bites kétirányú P1 port. Az A0-A7 bemenet címe a belső ROM (RPZU) ellenőrzésekor

lépjen be a kijáratba

Általános visszaállítási jel. RAM tartalék tápkimenet külső forrásból (1816-hoz)

8 bites kétirányú P3 port további szolgáltatásokkal

lépjen be a kijáratba

Vevő soros adata - RxD

Adó soros adata - TxD

Külső megszakítás bemenet 0- INT0`

Külső megszakítási bemenet 1-INT1`

Időzítő/számláló bemenet 0: - T0

1. időzítő/számláló bemenet: - T1

Villogó jel kimenet külső adatmemóriába íráskor: - WR`

Villogó jel kimenet külső adatmemóriából történő olvasáskor - RD`

Következtetések a kvarc rezonátor csatlakoztatásához.

kijárati bejárat

Általános következtetés

8 bites kétirányú P2 port. A8-A15 kimeneti cím külső memória üzemmódban. A belső ROM teszt módban a P2.0 - P2.6 kimenetek az A8-A14 cím bemeneteként szolgálnak. Konklúzió P2.7 - engedély a ROM olvasására.

lépjen be a kijáratba

Programmemória felbontása

Címreteszelő engedélyezése kimenet. EEPROM jel programozásakor: PROG

lépjen be a kijáratba

A munka blokkolása belső memóriával. Az EEPROM programozásakor az UPR jelet adjuk.

lépjen be a kijáratba

8 bites kétirányú P0 port. Cím/adatbusz külső memóriával való munkavégzéshez. D7-D0 adatkimenet a belső ROM (RPZU) teszt üzemmódjában.

lépjen be a kijáratba

Kimenet feszültségforrásról + 5V

Alapverzió MCS-51 Rövid információ. A modern 8 bites mikrokontrollerek (MC) olyan valós idejű vezérlési erőforrásokkal rendelkeznek, amelyekhez korábban drága többchipes elrendezéseket használtak külön mikroszámítógépes kártyák formájában, nevezetesen:

● elegendő memóriakapacitással, fizikai és logikai felosztásával program- és adatmemóriára (Harvard architektúra), valamint vezérlő algoritmusok végrehajtására orientált parancsrendszerrel rendelkezik;

● tartalmazza az összes eszközt (processzor, ROM, RAM, I/O portok, megszakítási rendszer, bitinformáció feldolgozó eszközök stb.) mikroprocesszoros rendszer minimális konfigurációs vezérlők. Az 1970-es években a cég Intel kifejlesztette és elsajátította egy 8 bites MCS-48 mikrokontroller család kereskedelmi gyártását, amelyet számos közös jellemző (számjegykapacitás, parancsrendszer, alapvető funkcionális blokkok halmaza stb.) egyesít. Ennek a családnak az alapváltozata a következőket tartalmazza:

● 8 bites processzor;

● belső programmemória (1/2/4K bájt);

● belső adatmemória (64/128/256 bájt);

● akár 27 belső és 16 külső I/O vonal;

● egy 8 bites időzítő számláló;

● egyszintű megszakítási rendszer két kérésforrással. 1980-ban ugyanez a cég kifejlesztett egy új nyolcbites MCS-51 mikrokontroller családot, amely kompatibilis az MCS-48 család architektúrájával, de több széles lehetőségeket.

Az MCS-51 család architektúrája olyan sikeresnek bizonyult, hogy a mai napig a 8 bites MK-k egyik szabványa. Ezért ebbe a családba tartozó, viszonylag egyszerű vezérlőrendszerekben széles körben használt MC-ket választottuk a vizsgálat tárgyául.

Az MCS-51 családhoz különféle program-előkészítő eszközöket (fordítókat, hardver-szoftver emulátorokat stb.) fejlesztettek ki, és számos szabványos szubrutin könyvtár létezik. A család a mikrovezérlők mikroáramkörök (chip változatai) különféle módosításait tartalmazza. Az ebben a szakaszban található cikkek kellő részletességgel tárgyalják az MCS-51 család mikrovezérlőinek alapváltozatát (a 8051-es mikroáramkör megfelel a hazai analóg KP1816BE51-nek), amely szerkezeti és funkcionális szempontból, valamint megértés szempontjából a legegyszerűbb.

Későbbi sorozat chipek, miközben a kompatibilitás alap verzió, különböznek tőle továbbfejlesztett gyártástechnológiában, elektromos paraméterekben, kiegészítő hardverekben és funkcionalitás. A következő cikkek az MCS-51 család mikroáramkörök későbbi módosításainak szerkezeti és funkcionális jellemzőivel foglalkoznak.
Az MCS–51 általánosított blokkvázlata. Az MC összetétele, amelynek általánosított blokkdiagramja a 2. ábrán látható. 7.1.1, tartalmazza:

● 8 bites központi processzor CPU, amely a következőkből áll ALU, vezérlőeszközök u ués címgenerátor F;

● maszkolt ROM 4K bájt kapacitással programok tárolására;

● 128 bájt RAM adattároláshoz;

● Négy programozható port P0-P3 a bemenethez információ kimenet;

● BPI soros interfész blokk külső eszközökkel történő információcseréhez kétvezetékes vezeték;

● BT/C időzítők/számlálók blokkja a valós idejű mód fenntartásához;

● BP megszakítás blokk a végrehajtható programok megszakításainak szervezéséhez. Ezek az alapok kialakulnak lakos a mikrokontroller része, amely közvetlenül a chipen található. Az MC nagyszámú regisztert tartalmaz, amelyek külön funkcionális blokkhoz vannak hozzárendelve, és nem szerepelnek az ábrán.

A diagram nem mutatja a vezérlőáramköröket sem. A blokkok közötti kétoldalú információcsere belső 8 biten keresztül történik adatbusz SD-8.

Belső 16 bitessel címbusz SHA-16, a CPU-ban kialakított cím megjelenik a ROM-ban (a cím 12 bitje) és a RAM-ban (8 alacsony bit).

Külső memória használata esetén a cím 8 alacsonyabb rendű bitje a P0 portra, és 3 vagy 8 magasabb rendű bitje a P2 portra kerül.

Az interfész logikai kiterjesztéséhez a portvonalak funkcióinak kombinációját alkalmazzuk. Példaként az ábrán látható. A 7.1.1 pontozott vonal a P3 port vonalait mutatja alternatív vezérlőjel átviteli funkciók, amelyek célját az alábbiakban tárgyaljuk. A belső órajelgenerátor létrehozásához az MK mikroáramkör kimeneteire egy kvarc rezonátort és két kondenzátort csatlakoztatunk (7.1.1. ábra). A szinkronizáláshoz belső óragenerátor helyett használhatja külső forrás ingadozások. Az MK mikroáramkör hagyományos grafikus jelölése a 2. ábrán látható. 7.1.2, a következtetések megnevezése és célja - táblázatban. 7.1.1. Tekintsük az MK funkcionális blokkjait és működési elvét. Aritmetikai-logikai eszköz. Az aritmetikai-logikai egység aritmetikai (beleértve a szorzást és az osztást is) és logikai műveletek végrehajtására szolgál nyolc bites operandusokon, valamint logikai eltolási, nullázási, beállítási stb. műveletek végrehajtására. Az ALU blokkvázlata az 1. ábrán látható. 7.1.3.

Az ALU tartalmazza

● párhuzamos nyolcbites vipera SM kombinációs típus szekvenciális átvitellel, aritmetikai (összeadás és kivonás) és logikai (összeadás, szorzás, diszparitás és azonosság) műveletek végrehajtása;

A elem, a fő aritmetikai regiszter funkcióinak biztosítása;

Regisztráció B, a szorzás és osztás műveleteinek megvalósítására, vagy kiegészítő szuperoperatív regiszterként, melynek funkcióit a felhasználó határozza meg;

regisztereket(programozottan nem elérhető) Átmeneti tárolóРВХ1, РВХ2, operandusok fogadására és tárolására szolgál a művelet időtartama alatt;

● ROM állandók ROM, amely egy korrekciós kódot tárol a bináris-decimális adatábrázoláshoz, egy maszkkódot a bitműveletekhez és egy konstans kódot;

program állapot szóregiszter PSW, az ALU állapotának rögzítése a művelet végrehajtása után. táblázatban. A 7.1.2 a PSW regiszter egyes számjegyeihez való bitek hozzárendeléséről ad tájékoztatást. Vezérlő eszköz. CPU vezérlőegység (CU) szándékolt az összes MK csomópont közös munkájának összehangolására a generált óra- és vezérlőjelek felhasználásával. Tartalmazza (7.1.4. ábra):

szinkronizálás és vezérlő egység A gépi ciklusokat és azok egyedi állapotait (S) és fázisait (P) beállító óraimpulzusokat generáló USU, valamint az MK működési módjától függően generálja a szükséges vezérlőjelkészletet. Egy, két vagy négy gépi ciklus van kijelölve az utasítás végrehajtására.

Minden gépciklusnak van hat állam S1–S6, A mindegyik állapot magában foglalja két fázis P1, P2, melynek időtartama a T 0SC órajelgenerátor rezgési periódusa.

A gépi ciklus időtartama 12T 0SC. Minden gépciklus azonos, az S1P1 fázistól kezdve az S6P2 fázisig.

Az órajel impulzusokon kívül minden gépi ciklusban két (néha egy) villogó jelet állít elő az ALE cím alacsony bájtjából pozitív impulzusként az S1P2-S2P1 és S4P2-S5P1 fázisokban. ábra időzítési diagramjai. 7.1.5 szemléltesse a gépi ciklusok szervezését;

● RK parancsregiszter, parancs dekóder DC és PLA, lehetővé téve minden egyes gépi ciklusban mikroműveletek halmazát a végrehajtandó parancs mikroprogramjának megfelelően;

● LPV bemeneti-kimeneti logikája jelek vételéhez és kiadásához, amely biztosítja az információcserét az MC és a külső eszközök az Р0–Р3 portokon keresztül;

● A PCON regiszter, amelynek egyetlen engedélyezett SMOD bitje van a PCON.7 pozícióban a soros port adatsebességének megduplázására. A fennmaradó bitek későbbi használatra vannak fenntartva.
Cím generátor. Címformáló (FA) vagy PC parancsszámláló, szándékolt az aktuális 16 bites programmemória cím és a 8/16 bites külső adatmemória cím kialakításához. Tartalmazza (7.1.6. ábra):

● 16 bites puffer B, amely az SD 8 bites adatbusza és a címgenerátor 16 bites belső busza (IS) között kommunikál;

● SI inkrementális séma az aktuális cím értékének növelésére programmemória egységenként;

● regiszter az SI-ből érkező PTA parancsok aktuális címének tárolására;

● Adatmutató regiszter DPTR , két 8 bites DPH és DPL regiszterből áll. A külső adatmemória 16 bites címének tárolására szolgál, és két független szoftverrel elérhető RON-ként használható;

● RFA címgenerátor regiszter a végrehajtó 16 bites program memóriacím vagy 8/16 bites külső adatmemória cím tárolására. Ez a regiszter arra is szolgál, hogy a MOVX @Rm, A és MOVX @DPRT, A utasítások végrehajtásakor a P0 porton keresztül adatokat továbbítsanak külső eszközökhöz.

Adatmemória. Adatmemória szándékolt a program végrehajtása során használt információk fogadására, tárolására és kiadására. Az adatok belső (rezidens) memóriája (7.1.7. ábra) 128 bájt kapacitású RAM-ból áll, veremmutató SP, címjegyzék RAM RA és dekóder Dsh. Az SP veremmutató egy 8 bites regiszter, amely fogadja és tárolja a legutóbb elért verem helyének címét. Az alaphelyzetbe állítás után a veremmutató a 07H címre áll, ami megfelel a 08H címû verem elejének. Az RA címregiszter és a Dsh dekódoló lehetővé teszi a hozzáférést a szükséges memóriacellához, amely egy bájtot vagy egy bitnyi információt tartalmaz.

Az MK lehetővé teszi az adatmemória mennyiségének 64 KB-ig történő növelését csatlakozással külső tárolóeszközök. Példaként az ábrán látható. A 7.1.8 a 2K bájt kapacitású VPD külső adatmemória lapozását mutatja be olyan utasításokkal, mint a MOVX @ Rm (m = 0; 1). Ebben az esetben a P0 port multiplexelt cím/adatbuszként működik, a P2 port három sora egy külső RAM-oldal címzésére szolgál, a maradék öt sor pedig I/O vonalként használható.
ábrán. A 7.1.9 mutatja az olvasási és írási ciklusok időzítési diagramjait, amikor az MK külső RAM-mal dolgozik. A diagramok a következőket mutatják:

● PCN - a PC parancsszámláló magas bájtja;

● DPL, DPH - a DPTR adatmutató regiszter alsó és felső bájtjai, amely indirekt címzési regiszterként használatos a MOVX @DPTR,A és MOVX A,@DPTR utasításokban;

● P2 SFR - P2 port reteszek;

● Rm (m = 0, 1) - MOVX @Rm, A és MOVX A, @Rm utasításokban használt regiszterek közvetett címregiszterként;

● Z - nagy ellenállású állapot;

● D - az az időtartam, amely alatt a P0 portról származó adatok bekerülnek a mikrokontrollerbe. Program memória. A programmemória programok tárolására szolgál, saját (az adatmemóriától elkülönült) címterével rendelkezik, és csak olvasható. Tartalmaz egy Dsh dekódert és ROM-ot (7.1.10. ábra). A programmemóriát egy 16 bites PC-számláló címzi, így maximális kapacitása 64K bájt. A belső programmemória egy 4K bájt kapacitású ROM-ból és egy 12 bites dekóderből áll. A külső memória csatlakoztatása az ábrán látható diagram szerint történik. 7.1.11. Ha 0 V feszültséget kapcsolunk az MCU ¯EA érintkezőjére (ahogy az a 7.1.11. ábrán látható), a belső programmemória le van tiltva. Minden memória-hozzáférés a 0000h címen kezdődik. Ha az ¯EA érintkezőt egy áramforráshoz csatlakoztatják, a belső programmemóriához a 0000h–FFFFh címen és a külső programmemóriához a 0FFFh–FFFFh címeken történő hozzáférés automatikusan megtörténik.

Az MK külső programmemóriájának olvasásához a ¯PSEN jel generálódik. Amikor dolgozik belső memória az olvasási jelet nem használják. A külső programmemória elérésekor mindig 16 bites cím jön létre. A cím alacsony bájtja a P0 porton keresztül kerül továbbításra a gépi ciklus első felében, és a regiszterben lévő ALE villogó levágása rögzíti, a ciklus második felében pedig a P0 porton lehet adatbájtot bevinni. külső memóriából az MCU-ba.

A cím magas bájtja a P2 porton keresztül kerül továbbításra a memória elérésének teljes ideje alatt.

Az MK külső RAM-mal történő működése során az olvasási és írási ciklusok időzítési diagramja a 2. ábrán látható. 7.1.12.
A diagramok a következőket mutatják:

● PCL OUT - a PC parancsszámláló alacsony bájtos kimenete;

● PCN OUT - a PC parancsszámláló magas bájtjának kiadása;

● A DPH a DPTR adatmutató regiszter magas bájtja, amely indirekt címzésregiszterként használatos a MOVX @DPTR,A és MOVX A,@DPTR utasításokban;

● P2 SFR - P2 port reteszek;

● INS IN - az utasítás (parancs) bájt bevitele a programmemóriából;

● ADDR OUT - a külső adatmemória címének alsó bájtjának kiadása az Rm regiszterekből (m = 0, 1) vagy a DPL regiszterből (alsó regiszter DPTR). I/O portok. Port hozzárendelés. P0, P1, P2, P3 portok szándékolt az MK és a külső eszközök közötti információcserére, valamint a következő funkciók végrehajtására:

● az А7…A0 cím alacsony bájtja az Р0 porton keresztül kerül kiadásra; külső programmemóriával és külső adatmemóriával (időosztással) végzett munka során egy bájtnyi adat kerül kimenőbe az MK-ból, és bekerül az MK-ba;

● Az A15…A8 cím magas bájtja a P2 porton keresztül kerül kiadásra, ha külső programmemóriával és külső adatmemóriával dolgozik (csak MOVX A,@DPTR és MOVX @DPTR,A parancsok használatakor);

● A P3 port vonalak alternatív funkciók végrehajtására használhatók, ha ennek a sornak a reteszébe 1 van beírva, ellenkező esetben a vonalkimeneten 0. A P3 port kimenetek alternatív funkcióit a táblázat tartalmazza. 7.1.3.

A portok sematikus jellemzői

ábrán. 7.1.13 diagramokat mutat be az egyes MK portok egy-egy csatornájához, beleértve:

● retesz a vett adatbit rögzítésére;

● kimenet erősítő vízesés(sofőr);

● csomópont kapcsolattal végfok (kivéve P2);

● egy áramkör adatbit átvitelére a port kimeneti oldaláról, amely B2 és B3 pufferekből áll (a P4 porthoz). A retesz egy D-flip-flop, amelynek órajelét a belső „Write to latch” jel jelzi. A D-flip-flop közvetlen kimenetéből származó adatok egy része a B1 pufferen keresztül a „Read latch” jellel kiolvasható az MK belső adatbuszának (SD) vonalára.

Kimeneti szakasz A P0 port egy inverter, amelynek jellemzői abban nyilvánulnak meg, hogy a VT2 terhelési tranzisztor csak a külső memória elérésekor nyílik meg (címek és adatok átvitelekor a porton keresztül). Minden más üzemmódban a terhelési tranzisztor zárva van. Ezért ahhoz, hogy a P0-t (7.1.13. ábra, a) általános célú kimeneti portként használhassuk, külső terhelő ellenállásokat kell csatlakoztatni a kimeneteire. Amikor 1-et ír a portreteszre, a VT1 invertertranzisztor kikapcsol, és a P0.X port külső érintkezője nagy ellenállású állapotba kerül. Ebben az üzemmódban a P0.X port tűje bemenetként szolgálhat. Ha a P0 portot általános célú I/O portként használják, minden P0.X érintkezője függetlenül működhet bemenetként vagy kimenetként. Kimeneti szakaszok P1, P2, P3 portok (7.1.13. ábra, b, c, d) belső terhelési ellenállású inverterek áramkörei szerint készült, amelyet VT2 tranzisztorként használnak.

A kapcsolási idő csökkentése érdekében a portkimenetek 0 állapotból 1 állapotba való átmenete során egy további VT3 tranzisztor kerül bevezetésre a VT2 terheléstranzisztorral párhuzamosan. A VT3 tranzisztort a kapuáramkör elemei segítségével a mester kristályoszcillátor két rezgési periódusának megfelelő időre feloldják (a gépi ciklus S1P1, S2P2 fázisai alatt). Kimeneti szakaszok A P0, P2 portok (7.1.13. ábra, A, c) az MX multiplexer segítségével a reteszekhez vagy a belső "Cím / adatok" és "Cím" buszokhoz csatlakoztathatók. A P1 port kimeneti fokozata (7.1.13, 6. ábra) állandóan a reteszhez van kötve.

Ha a P3 port tűje egy kimenet, és a reteszelése 1, akkor a kimeneti fokozatát hardver vezérli. belső jel"Alternatív kilépési funkció", amely a megfelelő alternatív funkció végrehajtását biztosítja, pl. a ¯WR, ¯RD vagy RxD jelek egyike a külső érintkezőn keletkezik. Ha a port pin-t használjuk bemenetként, akkor a hozzá érkező alternatív jel (TxD, ¯INT0, ¯INT1, T0, T1) az „Alternatív bemeneti funkció” belső vonalára kerül.

Port írási mód.

Amikor egy írás a portra parancsot végrehajtják, az új érték az S6P2 fázisban lévő reteszbe kerül, és közvetlenül a port kimeneti lábára kerül a következő gépciklus S1P1 fázisában.

Port olvasási mód

A portok olvasása parancsok közvetlenül olvasnak információkat külső érintkezők port tűk vagy reteszelő kimenetek. Az első esetben a portkimenet adatbitjét programozottan olvassa be a B2 pufferen keresztül a „Read outputs” jel az MK belső adatbuszának (SD) vonalára. Ne feledje, hogy a „Reteszelés írása”, „Reteszelés olvasása”, „Olvasási tűk” jeleket a hardver generálja a megfelelő parancsok végrehajtásakor.

A második esetben az úgynevezett "Read-Modify-Write" mód valósul meg, amelyben a parancs beolvassa a reteszelés állapotjelét, szükség esetén módosítja, majd visszaírja a reteszbe. Az olvasás-módosítás-írás mód a következő parancsok végrehajtása esetén valósul meg: ANL, ORL, XRL, JBC; CPL; I.N.C.; DECEMBER; DJNC; MOV PX,Y; CLR PX.Y; SETB PX,Y.

A reteszelő kimenetek információinak beolvasása kiküszöböli a hibákat a porttű logikai szintjének értelmezésekor. Olvassa el a cikk folytatását.

Az MCS-51 család felépítését nagymértékben meghatározza a rendeltetése - az építés kompaktés olcsó digitális eszközök. A mikroszámítógép minden funkciója egyetlen mikroáramkörrel valósul meg. Az MCS-51 család tartalmazza egész sor mikroáramkörök a legegyszerűbb mikrokontrollerektől a meglehetősen bonyolultakig. Az MCS-51 család mikrovezérlői lehetővé teszik mindkét vezérlési feladat elvégzését különféle eszközök, és megvalósítani az analóg áramkör egyes csomópontjait. Ennek a családnak az összes mikroáramköre ugyanazzal működik parancsrendszer MCS-51, legtöbbjüket ugyanazokban az esetekben hajtják végre hozzáillő pinout(lábak számozása az esethez). Ez lehetővé teszi a mikroáramkörök használatát a kifejlesztett eszközhöz különböző cégek- Maxim, Atmel, NXP stb. (catalog..php?page=components_list&id=39"> s.m. Keresés paraméterek szerint) változtatás nélkül kördiagramm eszközök és programok.

1. ábra: Az I8751 vezérlő blokkvázlata

A vezérlő blokkvázlata az 1. ábrán látható, és a következő fő funkcionális egységekből áll: vezérlőegység, aritmetikai logikai egység, időzítő/számláló egység, soros interfész és megszakító egység, programszámláló, adatmemória, ill. programmemória. A kétoldalú adatcsere belső 8 bites adatátviteli útvonalon történik.

Nézzük meg közelebbről az egyes blokkok célját. Az MCS-51 család szinte minden képviselője ennek a séma szerint épül fel.. Ennek a családnak a különböző mikroáramkörei csak a speciális célú regiszterekben (beleértve a portok számát) különböznek. Az MCS-51 család összes vezérlőjének parancsrendszere 111 alapvető parancsot tartalmaz 1, 2 vagy 3 bájtos formátumban, és nem változik az egyik chipről a másikra való váltáskor. Ez biztosítja a programok kiváló hordozhatóságát egyik chipről a másikra.

Vezérlő és szinkronizáló egység

A vezérlő és szinkronizáló egység (Timing and Control) olyan szinkronizálási és vezérlőjelek generálására szolgál, amelyek biztosítják az OEVM egységek együttes működésének összehangolását annak minden megengedett üzemmódjában. A vezérlőegység a következőket tartalmazza:

  • - eszköz az időintervallumok kialakítására,
  • - I/O logika,
  • - utasítás nyilvántartás,
  • - ellenőrzési regiszter villamosenergia-fogyasztás,
  • - parancsdekóder, számítógépes vezérlési logika.

Időbeosztási eszköz fázisok, ciklusok és ciklusok belső szinkronjeleinek generálására és kiadására szolgál. A gépi ciklusok száma határozza meg az utasítás végrehajtásának időtartamát. Szinte minden OEVM parancs egy vagy két gépi ciklusban kerül végrehajtásra, kivéve a szorzási és osztási parancsokat, amelyek időtartama négy gépi ciklus. Jelöljük a fő oszcillátor frekvenciáját F g-n keresztül, ekkor a gépi ciklus időtartama 12/F g, vagyis a mester oszcillátor jelének 12 periódusa. A bemeneti-kimeneti logika olyan jelek fogadására és kiadására szolgál, amelyek a P0-P3 bemeneti/kimeneti portokon keresztül biztosítják az információcserét a külső eszközökkel.

ParancsregiszterÚgy tervezték, hogy rögzítse és tárolja a végrehajtott parancs 8 bites műveleti kódját. A műveleti kódot egy parancsdekóder és számítógépes vezérlőlogika segítségével a parancs végrehajtására szolgáló mikroprogrammá alakítják.

Demand Control Register (PCON) lehetővé teszi a mikrokontroller működésének leállítását az energiafogyasztás csökkentése és a mikrokontroller okozta interferencia szintjének csökkentése érdekében. A mikrokontroller master oszcillátorának leállításával még nagyobb teljesítmény- és zajcsökkentés érhető el. Ez a PCON igényvezérlő regiszter bitjeinek váltogatásával érhető el. Az n-MOS gyártási opciónál (1816-os sorozatú vagy idegen chipek, amelyeknél nincs "c" a név közepén) a PCON teljesítményvezérlő regiszter csak egy bitet tartalmaz, amely vezérli a SMOD soros port adatátviteli sebességét, ill. nincsenek energiafogyasztást vezérlő bitek.

Aritmetikai logikai egység (ALU) egy párhuzamos nyolcbites eszköz, amely aritmetikai és logikai műveleteket biztosít. Az ALU a következőkből áll:

  • - akkumulátorregiszterek, ideiglenes tárolóregiszterek TMP1 és TMP2,
  • - ROM állandók,
  • - összeadó,
  • - kiegészítő nyilvántartás (B regiszter),
  • - akkumulátor (ACC),
  • - programállapot-regiszter (PSW).

Regisztráció akkumulátorés nyilvántartásokat tart- nyolc bites regiszterek, amelyek az operandusok fogadására és tárolására szolgálnak a rajtuk végzett műveletek időtartama alatt. Ezek a regiszterek programozottan nem érhetők el.

ROM állandók biztosítja a bináris-decimális adatábrázolás korrekciós kódjának, a bitműveletek maszkkódjának és a konstans kódnak a kidolgozását.

Párhuzamos 8 bites összeadó egy kombinációs áramkör szekvenciális átvitellel, amelyet az összeadás, kivonás és összeadás, szorzás, diszparitás és azonosság logikai műveleteinek elvégzésére terveztek.

Regisztráció B- szorzási és osztási műveletek során használt nyolc bites regiszter. Egyéb utasítások esetén ez egy kiegészítő scratchpad-regiszternek tekinthető.

Akkumulátor- egy nyolc bites regiszter, amely az aritmetikai-logikai vagy eltolási műveletek végrehajtása során kapott eredmény fogadására és tárolására szolgál

Soros interfész és megszakítási blokk (SIP) A szekvenciális információáramlások be- és kimenetének megszervezésére és a programmegszakítási rendszer megszervezésére szolgál. A blokk a következőket tartalmazza:

  1. - PIP puffer,
  2. - vezérlési logika,
  3. - ellenőrzési nyilvántartás,
  4. - adó puffer,
  5. - vevő puffer,
  6. - soros portos adó-vevő,
  7. - prioritási regiszter megszakítása,
  8. - megszakítás engedélyező regiszter,
  9. - logika a megszakításjelzők feldolgozásához és egy vektorgenerálási séma.

Program számlálóúgy van kialakítva, hogy a belső programmemória aktuális 16 bites címét és a külső programmemória 8/16 bites címét képezze. A programszámláló egy 16 bites PC-pufferből, egy PC-regiszterből és egy növekmény-áramkörből áll (a tartalmat 1-gyel növeli).

Adatmemória (RAM) a program végrehajtása során használt információk ideiglenes tárolására szolgál.

P0, P1, P2, P3 portok kvázi kétirányú bemeneti-kimeneti portok, és az OEVM és a külső eszközök közötti információcserét biztosítják, 32 bemeneti-kimeneti vonalat alkotva.

Időzítő eszköz A család alapmodelljei két programozható 16 bites időzítővel/számlálóval (T/C0 és T/C1) rendelkeznek, amelyek időzítőként és külső eseményszámlálóként is használhatók.

Programállapot-regiszter (PSW) célja, hogy információkat tároljon az ALU állapotáról a program végrehajtása során.

Program memória (EPROM) programok tárolására tervezték, és csak olvasható memória (ROM). A különféle mikroáramkörök maszkolt ROM-okat használnak, amelyeket ultraibolya sugárzás törl, ill VAKU ROM.

Data Pointer Register (DPTR) külső adatmemória vagy programmemória 16 bites címének tárolására szolgál.

Veremmutató (SP) egy nyolc bites regiszter, amely egy speciális adatmemória terület (stack) szervezésére szolgál, amelyben ideiglenesen bármilyen memóriacellát tárolhat.



A mikrokontrollerek gyártásának kiindulópontja az Intel a nyolcbites 8048 és 8051 mikrokontrollerek családjával. Az MCS-51 architektúra nevét a család első képviselőjéről kapta, az 1980-ban kiadott 8051 mikrokontrollerről, amely HMOS technológián alapult. A jó perifériák, a külső vagy belső programmemória rugalmas választéka és a megfizethető ár biztosította ennek a mikrokontrollernek a piaci sikerét. Technológiát tekintve a 8051-es mikrokontroller a maga idejében nagyon összetett termék volt - 128 ezer tranzisztort használtak a kristályban, ami 4-szerese a 16 bites 8086-os mikroprocesszor tranzisztorainak.

Az alapvető architektúra fő elemei a következők:
- 8 bites ALU akkumulátor architektúrán alapuló;
- 4 nyilvántartási bank, mindegyikben 8;
- beépített programmemória 4Kbyte;
- belső RAM 128 bájt;
- logikai processzor
-2 tizenhat bites időzítő;
- soros kapcsolat vezérlő (UART);
- megszakításvezérlő két prioritási szinttel;
- négy 8 bites bemeneti / kimeneti port, amelyek közül kettő cím / adatbuszként szolgál a külső program és adatmemória eléréséhez;
- beépített óra generátor.

Ezt a mikrokontrollert ismerik leginkább a fejlesztők, és az eszközök széles körében népszerű vezérlőeszköz. Számos emulátor, hibakereső és 8051 programozó áll rendelkezésre, így a szoftverfejlesztés nem nehéz.

Az MCS-51 fejlesztésének következő alapvető lépése a gyártási technológia CHMOS-ba való átadása volt. Ez lehetővé tette az Idle és Power Down üzemmódok megvalósítását, amelyek lehetővé tették a kristály energiafogyasztásának drasztikus csökkentését, és megnyitották az utat a mikrokontroller alkalmazásához illékony alkalmazásokban, például autonóm akkumulátoros eszközökben.

Az Intel ezen irányának a 8 bites architektúra keretében történő fejlesztésének utolsó alapvető szakasza a 8xC51FA / FB / FC mikrokontrollerek kiadása volt, amelyeket a rövidség kedvéért gyakran 8xC51FX-nek neveznek. Ennek a kristálycsoportnak a fő megkülönböztető jellemzője a programozható számlálók tömbje (PCA). A PCA szerkezeti diagramja a 2. ábrán látható.

A PCA a következőket tartalmazza:

Az időzítő/számláló mind az öt minta- és összehasonlító modult kiszolgálja, amelyek a következő funkciók valamelyikére programozhatók:

Az időzítő értékének 16 bites mintavételezése a külső jel pozitív élén;
Az időzítő értékének 16 bites mintavételezése a külső jel negatív élén;
az időzítő értékének 16 bites mintavételezése a külső jel bármely szélén;
16 bites szoftver időzítő;
16 bites nagy sebességű kimeneti eszköz (HSO);
8 bites PWM

A fenti funkciók mindegyike a PCA-ban hardver szinten történik, és nem terheli a központi processzort, ami lehetővé teszi a rendszer teljes áteresztőképességének növelését, a mérések és a jelfeldolgozás pontosságának javítását, valamint a mikrokontroller külső válaszidejének csökkentését. események, ami különösen fontos a valós idejű rendszerek esetében. A 8xC51FX-ben megvalósított PCA olyan sikeresnek bizonyult, hogy az FX mikrokontrollerek architektúrája de facto iparági szabvány lett, és magát a PCA-t többször is reprodukálták különböző cégek mikrokontrollereinek különféle módosításaiban.

Kezdetben a legszűkebb helyeken MCS architektúrák-51 egy 8 bites akkumulátor alapú ALU volt, és viszonylag lassú utasítás-végrehajtás (a leggyorsabb utasítások végrehajtása 12 ciklust igényel). órajel frekvenciája). Ez korlátozta a család mikrovezérlőinek használatát a nagyobb teljesítményt és összetett számításokat igénylő alkalmazásokban (16 és 32 bites). A régi építészet alapvető modernizálásának kérdése sürgetővé vált. A modernizáció problémáját nehezítette, hogy a 90-es évek elejére már rengeteg fejlesztés született a szoftverek, ill. hardver, és az új architektúra kidolgozásának egyik fő feladata az volt, hogy az MCS-51-re épülő régebbi tervezésekkel való hardver- és szoftverkompatibilitást megvalósítsák. A probléma megoldására az Intel és a Philips szakértőiből álló közös csoport jött létre. Ennek eredményeként 1995-ben 2 jelentősen eltérő család jelent meg: az MCS-251/151 az Inteltől és az 51XA a Philipstől (a továbbiakban ez utóbbira fogunk összpontosítani).

Az MSC-251 architektúra főbb jellemzői:

24 bites lineáris címtér, akár 16M memória címezésére(az MCS-251 család gyártott mikrovezérlőinek memóriacímterülete 256K);
Az MCS-251 család mikrokontrollereinek utasításkészlete tartalmazza mind a 111 parancsot, amely az MCS-51 család mikrokontrollereinek utasításkészletében található ("régi" parancsok), és ezen felül 157 "új" parancsot tartalmaz. Néhány új parancskód 4 bájtos formátumú.
A mikrokontroller használata előtt konfigurálni kell, pl. a programozó segítségével "égesse" azokat a konfigurációs bájtokat, amelyek meghatározzák, hogy az utasításkészletek közül melyik válik aktívvá a tápfeszültség bekapcsolása után. Ha telepíti az MCS-51 utasításkészletet, akkor az MSC-251 bináris kód szinten kompatibilis lesz az MCS-51-gyel. Ezt a módot bináris módnak nevezik. Azonban ebben a módban a kiterjesztett utasítások az „ablakon” keresztül is elérhetők – a fenntartott utasításkód 0A5h. Természetesen minden kiterjesztett utasítás hossza ebben az esetben 1 bájttal nő. Ha kezdetben egy bővített utasításkészletet telepít, akkor ebben az esetben az MCS-51-hez írt programok újrafordítást igényelnek az MCS-51 kereszteszközökön, mert ezentúl a szabványos utasítások ugyanazon a 0A5h "ablakon" lesznek elérhetők, és hosszuk is megnő 1 bájttal. Ezt a módot Forrás módnak nevezik. Lehetővé teszi a kiterjesztett utasítások maximális hatékonyságú használatát és a legnagyobb teljesítmény elérését, de szoftver újratervezést igényel.
egy regiszter architektúra, amely lehetővé teszi, hogy a regiszterekre bájtokként, szavakként és duplaszavakként hivatkozzanak;
oldal módú címzés az utasítások külső programmemóriából való lekérésének felgyorsítására;
utasítássor;
kiterjesztett utasításkészlet, beleértve a 16 bites aritmetikai és logikai utasításokat;
kiterjesztett veremcímtartomány akár 64K-ig;
a leggyorsabb utasítás végrehajtása 2 ciklusban;
bináris kód kompatibilitás az MCS-51 programokkal.

Azon felhasználók számára, akik az MCS-251 mikrokontrollereket használják az MCS-51 mechanikus helyettesítésére, az Intel kiadja az MCS-251 mikrokontrollereket, amelyek konfigurációs bitjei már bináris módban vannak programozva. Az ilyen mikrokontrollerek megkapták az MCS-151 indexet.

Az Intel mellett az MCS-251 mikrokontrollereket a Temic Semiconductors licenceli.

Az Universal Serial Bus (vagy USB) kiterjeszti a Plug-and-Play technológiát a mai nagy teljesítményű személyi számítógépeken található külső I/O eszközökre.

Annak érdekében, hogy különféle perifériás eszközöket tudjon csatlakoztatni, USB szabvány négy átviteli mód van meghatározva: Control, Isochronous, Impulzus és tömb átvitel. Minden perifériának támogatnia kell egy vezérlési módot a konfigurációs paraméterek, parancsok és eszközállapot-információk átadásához. Az izokron átvitel garantált buszhozzáférést, állandó sávszélességet és hibatűrést biztosít, és használható audiokimeneti eszközökben és számítógépes telefonálásban. Az impulzusátvitel olyan beviteli eszközökhöz készült, mint az egér, joystick vagy billentyűzet, amelyek ritkán és kis részletekben továbbítanak információt, de korlátozott szervizidővel. A tömbátvitel lehetővé teszi az olyan eszközök számára, mint a szkennerek, faxok vagy digitális fényképezőgépek, hogy nagy mennyiségű adatot vigyenek át a személyi számítógépre, amint egy buszcsatorna felszabadul.

A termék főbb jellemzői

Teljesen kompatibilis az "Universal Serial Bus Specification 1.0"-val
Integrált USB adó-vevő soros busz interfész motor (SIE)
Négy FIFO sor az átvitelhez
Három 16 bájtos FIFO-sor
Négy FIFO sor fogadáshoz
Három 16 bájtos FIFO-sor
Egy konfigurálható FIFO-sor (akár 1024 bájt)
Fogadás/küldés automatikus vezérlése FIFO sorokban
Műveletek leállítása/folytatása
Három USB busz megszakítási vektor
Fáziszár ciklus
Adatátviteli sebesség: 12 Mbps és 1,5 Mbps
Lassú ciklus üzemmód
256 KB kapacitású külső címtér
Energiatakarékos üzemmódok: készenléti állapot és kikapcsolt állapot
Felhasználó által meghatározott beállítások
Várakozás valós időben
1 KB véletlen hozzáférésű memória egy kristályon
Négy I/O port
Programozható mérőtömb (PCA)
Szabványos (MCS 51) UART mikrokontroller
Hardverőrző
Három rugalmas 16 bites időzítő/számláló
Kompatibilis az MCS 51 és MCS 251 mikrokontroller utasításkészletével
Regisztereken alapuló MCS 251 mikrokontroller architektúra
Működési frekvencia 6 vagy 12 MHz

A 8x930Hx vezérlő további funkciókkal rendelkezik:

USB hub
USB hub vezérlési lehetőségek
Kapcsolatkezelés
Csatlakozás/leválasztás észlelése kimeneti eszközzel
Energiagazdálkodás, beleértve a leállítást/folytatást
Buszhiba észlelése és helyreállítása
Teljes sebességű és alacsony sebességű kimeneti eszközök támogatása
Kimeneti érintkező a port tápellátásának kapcsolásához
Bemeneti érintkező a túlterhelés észleléséhez

Az USB adatátvitel négy különböző módja három elem együttműködésével érhető el: Host, Hub, Funkcionális eszköz. A gazdagép vezérli a tartalom és vezérlő információ átvitelét a buszon keresztül. A funkcionális eszközök kiterjesztik a gazdarendszereket. Ez magában foglalja a számítógépes munka tipikus típusait: bemenet a billentyűzetről vagy a joystickről, kimenet a monitorra; valamint az összetettebb tevékenységek, mint a digitális telefonálás és a képátvitel. Az Intel 8x930Ax mikrokontrollert funkcionális eszközök vezérlésére tervezték. Végül a hubok egy USB-bővítési pont, amely hozzáférést biztosít más funkcionális eszközökhöz. Az Intel 8x930Hx mikrokontroller, amely egyesíti a funkcionális eszközvezérlést és az USB-elosztót, az első kereskedelmi forgalomban kapható USB-elosztó, amelyet modern PC-perifériákhoz terveztek.

Az USB-elosztók alapvető szerepet játszanak a PC-felhasználók világának bővítésében. A beépített hubokkal felszerelt perifériák – billentyűzetek, monitorok, nyomtatók és egyebek – megjelenésével egy új eszköz csatlakoztatása vagy leválasztása olyan egyszerű, mintha egy dugót dugnánk a konnektorba. Új szint teljesítmény és fejlett módszerek USB csatlakozások a munkahelyi és szórakoztató alkalmazások új generációjához vezethet. A beágyazott kártyák, az IRQ-konfliktusok és a kusza vezetékek napjai meg vannak számlálva.

Az USB-buszkábel mindössze négy vezetékből áll: Vbus, D+, D- és GND - ezzel egyszerűsítve és egységesítve a csatlakozást. Ugyanezt a célt szolgálja egyetlen szabványos csatlakozó a perifériás eszközök USB-buszhoz való csatlakoztatására. A D+ és D- kábeleken az adatok átvitele eltérően történik, akár teljes, 12 Mbps, akár alacsony, 1,5 Mbps sebességgel. Az adó-vevő a kristályba van beépítve, így nincs szükség külső elektronikus áramkörökre. Kivételt képez a D+ és D- vonalak lezáró ellenállása, amelyre annak meghatározásához van szükség, hogy az eszköz nagy vagy alacsony sebességű.

Családi áttekintés
Az Intel 8x930 család két egylapkás vezérlőből áll.

Az Intel 8x930Ax vezérlő egy 8 bites eszköz, amely az MCS 251 mikrokontroller architektúrán alapul, és az USB-buszhoz csatlakoztatott perifériás eszközökkel való együttműködésre tervezték. Másrészt a 8x930Hx ugyanazt az MCS 251 mikrokontroller magot használja, valamint a beépített USB-elosztó továbbfejlesztett funkcióit. Az MCS 251 architektúra mindkét USB buszvezérlőben a következő előnyökkel jár:

Nagy teljesítményű
Vegyes típusú memória és címzés használata
Alacsony energia fogyasztás
Alacsony zaj
Hatékony támogatás magas szintű nyelvekhez
Bővített parancskészlet
Beépített funkciók

A 8x930Ax-hoz tartozó utasítások az MCS 51 mikrovezérlő készletből és az MCS 251 mikrokontroller készletből is használhatók.Ez a megközelítés megtakarítja a felhasználóknak a szoftverbe való befektetést, és a legtöbb teljesítményt hozza ki az alkalmazásokból.

A 8x930-as mikrokontrollerek annyira tele vannak különféle beépített funkciókkal, hogy erősebbnek tűnnek, mint a mikrokontrollerek. A programozható számlálótömb (PCA) rugalmasságot biztosít azoknak az alkalmazásoknak, amelyek valós idejű összehasonlítást vagy adatrögzítést, nagy sebességű kommunikációt vagy impulzusszélesség-modulációt igényelnek. Ezen kívül a vezérlő tartalmaz egy kiterjesztett soros portot, három 16 bites időzítőt/számlálót, egy hardveres figyelőt, négy 8 bites I/O portot és két energiatakarékos módot: készenléti és kikapcsolt állapotot.

A 8x930Ax család vezérlői 1 Kbyte memóriával vannak felszerelve, és használhatók az állandó memória nélküli változatokban, illetve 8 vagy 16 Kbyte kapacitású állandó memóriával. Legfeljebb 256 KB külső memóriát tudnak megcímezni utasítások és adatok tárolására, valamint 40 bájt általános célú regisztereket, amelyek regiszterfájlként a CPU-ban találhatók. A használt kombinációtól függően egy regiszterfájl 16 bájtos regisztert, 16 kétbájtos regisztert és 10 négybájtos regisztert tartalmazhat.

A vezérlők rugalmas interfésszel rendelkeznek külső memóriával. A lassú memóriával rendelkező eszközök eléréséhez három várakozási ciklust lehet hozzáadni, további ciklusok generálásához pedig a valós idejű funkciót. A külső utasításlekérés javíthatja a teljesítményt az oldalmód használatával, amely a cím magas bájtjában fordítja meg az adatokat.

Mindkét 8x930-as vezérlő nyolc támogatási FIFO-sorral van felszerelve belső eszközök kimenet: négy adási és négy vételi sor. A négy vételi/adási FIFO sor négy vég funkcionális egységet támogat (0-tól 3-ig). A 0. sor 16 bájtból áll, és a vezérlési információk továbbítására szolgál. Az 1. sor a felhasználó által konfigurálható kategóriába tartozik, és kapacitása legfeljebb 1024 bájt. A 2. és 3. sor egyenként 16 bájtos, és információátvitelre használható burst, izokron és tömb átviteli módban. Egy 8x930Hx-es vezérlő esetén ezeket a sorokat egy pár FIFO sor erősíti fel a bemeneti eszközök számára. Ezeket a sorokat a 8x930Hx vezérlőben egy további ismétlő támogatja, amely a kimeneti eszközök által generált adatfolyamok újraküldéséért felelős.

Építészet áttekintése
Szerkezeti USB megvalósítás A 8x930Ax és 8x930Hx mikrokontrollerek négy blokkra oszthatók: FIFO sorok, interfész blokk funkcionális eszközökkel, soros busz interfész blokk és adó-vevő. A 8x930Hx vezérlő további blokkokkal rendelkezik a koncentrátor funkcióinak vezérlésére: interfész blokk koncentrátorral és átjátszóval.

A vételi és átviteli FIFO-sorok mindkét vezérlőn gyűrű alakúak. A sorok legfeljebb két változó méretű különálló adatkészletet támogatnak, és bájtszámláló regisztereket tartalmaznak, amelyek az adatkészletekben lévő bájtok számát mutatják. A sorok jelzőkkel vannak felszerelve, amelyek jelzik, hogy a sor megtelt vagy üres, és képesek megismételni az aktuális adatkészlet fogadását vagy továbbítását. A Functional Device Interface Unit (FFU) a továbbított vagy fogadott USB-adatokat az átvitel típusának és a sorok állapotának megfelelően osztja el. Ezenkívül az IFU blokk figyeli a tranzakció állapotát, kezeli a FIFO sorokat, és egy megszakítási kéréssel jelenti a vezérlési események bekövetkezését a 8x930-as központi processzornak.

A soros busz interfész blokk valósítja meg a protokollt USB átvitel: csomagokat szekvenál, jelgenerálást és felismerést, ellenőrző összeg generálást és ellenőrzést, NRZI adatkódolást/dekódolást, bittömést, csomagazonosító (PID) generálást és felismerést végez.

Az USB mikrokontrollerek integrált adó-vevője megfelel az USB 1.0 specifikáció által meghatározott egyszerű négyvezetékes interfésznek. A 8x930-as vezérlőcsalád három USB-hez kapcsolódó megszakítással rendelkezik. Ezek minden keretkezdéskor, az adatfogadás/-továbbítás végén, a terminál funkcionális eszközökre történő továbbításakor, globális felfüggesztés vagy a munka újrakezdése esetén fordulnak elő. A 8x930Hx hubban a hub interfész blokk a kimeneti portok csatlakozási állapotának kezelésére és figyelésére szolgál. Az átjátszó felelős a felfelé és lefelé tartó USB portok jeleinek terjesztéséért.

Mikrokontroller architektúra

A mikrokontrollerek architektúrájának megértése kulcsfontosságú a programozási nyelvek, például az assembler tanulása során. Az assembler szerkezetét, utasításainak formátumát, az operandusok címzését stb. teljes mértékben az architektúra határozza meg. Az építészet tanulmányozásának célja:

a programozható regiszterkészlet azonosítása, funkcionális célja és felépítése;

a RAM felépítésének és használatának rendjének megértése;

Az adattípusok ismerete

a gépi utasítások formátumának tanulmányozása;

A megszakításkezelés szervezetének megértése.

Az MCS-51 család felépítését nagymértékben meghatározza a célja - kompakt és olcsó digitális eszközök építése. Az összes MK funkció egyetlen mikroáramkörrel valósul meg. Az MCS-51 család a mikroáramkörök egész sorát tartalmazza a legegyszerűbb mikrokontrollerektől a meglehetősen bonyolultakig. Az MCS-51 család mikrovezérlői lehetővé teszik a különböző eszközök vezérlésének és az analóg áramkör egyes csomópontjainak megvalósítását. Ennek a családnak az összes mikroáramköre ugyanazzal a parancsrendszerrel működik, legtöbbjük ugyanabban a csomagban, ugyanazzal a kivezetéssel (a csomag PIN-számozása) történik. Ez lehetővé teszi a különböző gyártók (például Intel, Dallas, Atmel, Philips stb.) chipek használatát a kifejlesztett készülékhez anélkül, hogy az eszköz kapcsolási rajza és programja megváltozna.

Az MCS-51 a Harvard architektúrán alapul, ahol a program- és adatmemória címterei el vannak választva.

A vezérlő blokkvázlata a 2.3 ábrán látható, és a következő fő funkcionális egységekből áll: vezérlőegység, aritmetikai logikai egység, időzítő/számláló egység, soros interfész és megszakítások, programszámláló (parancsszámláló), adatok memória és programmemória.

A kétoldalú adatcsere belső 8 bites adatátviteli útvonalon történik. Nézzük meg közelebbről az egyes blokkok célját. Az MCS-51 család szinte minden képviselője ennek a séma szerint épül fel. Ennek a családnak a különböző mikroáramkörei csak a speciális célú regiszterekben (beleértve a portok számát) különböznek. Az MCS-51 család összes vezérlőjének parancsrendszere 111 alapvető parancsot tartalmaz, 1, 2 vagy 3 bájtos formátumban, és nem változik az egyik mikroáramkörről a másikra való váltáskor. Ez biztosítja a programok kiváló hordozhatóságát egyik chipről a másikra.

Vezérlő és szinkronizáló egység(Időzítés és vezérlés) szinkronizálási és vezérlőjelek generálására szolgál, amelyek biztosítják az OEVM egységek közös működésének összehangolását annak minden megengedett üzemmódjában. A vezérlőegység a következőket tartalmazza:


  • időintervallumok kialakítására szolgáló eszköz,
  • kombinált I/O áramkör,
  • utasítás nyilvántartás,
  • parancs dekóder.

Bemenet és kimenet vezérlő és szinkronizáló blokkjelek:

1 PSEN– programmemória felbontása;

2 ALE– címzár engedélyezése kimeneti jel;

3 PROG– programozási jel;

4 EA- blokkolja a munkát a belső memóriával;

5 VPP– programozási feszültség;

6 RST– általános reset jel.

Az időintervallumok kialakítására szolgáló eszköz szükséges a gépi ciklust alkotó CPU állapotok sorrendjének szinkronizálásához, valamint a helyes működés minden belső reteszelő és port kimeneti puffer. A gépi ciklus hat egymást követő állapotból (állapotból) áll S1-től S6-ig, amelyek mindegyike két fázisra oszlik:

1. fázis (1. fázis – P1) és 2. fázis (2. fázis – P2.). Így egy gépi ciklus az S1P1, S1P2, S2P1,...,S6P2 időrések sorozataként definiálható. A fázis időtartama megegyezik az órajel impulzusainak periódusával, így a gépi ciklus 12 óraperiódusból áll.

A gépi ciklusok száma határozza meg az utasítás végrehajtásának időtartamát. Szinte minden utasítás egy vagy két gépi ciklusban kerül végrehajtásra, kivéve a szorzási és osztási utasításokat, amelyek végrehajtásához négy gépi ciklus szükséges. A bemeneti-kimeneti logika olyan jelek fogadására és kiadására szolgál, amelyek a P0-P3 bemeneti/kimeneti portokon keresztül biztosítják az információcserét a külső eszközökkel.

ParancsregiszterÚgy tervezték, hogy rögzítse és tárolja a végrehajtott parancs 8 bites műveleti kódját. A műveleti kódot egy parancsdekóder és számítógépes vezérlőlogika segítségével a parancs végrehajtására szolgáló mikroprogrammá alakítják.

2.3. ábra. Egy chipes Intel 8051 mikrokontroller blokkvázlata

(MCS-51 család)

Számtani logikai egység(ALU) egy párhuzamos nyolcbites egység, amely aritmetikai és logikai műveleteket biztosít. Az ALU a következőkből áll:

  • ideiglenes tárolási regiszterek -TMP1 és TMP2,
  • állandó ROM,
  • vipera,
  • kiegészítő regiszter - B regiszter,
  • akkumulátor - ACC,
  • programállapot szóregiszter (jelzők regiszter) - PSW.

Holding regiszterek TMP1, TMP2- nyolc bites regiszterek, amelyek az operandusok fogadására és tárolására szolgálnak a rajtuk végzett műveletek időtartama alatt. Ezek a regiszterek programozottan nem érhetők el.

ROM állandók biztosítja a bináris-decimális adatábrázolás korrekciós kódjának, a bitműveletek maszkkódjának és a konstans kódnak a kidolgozását.

Párhuzamos 8 bites összeadó egy kombinációs típusú áramkör szekvenciális átvitellel, amelyet az összeadás, kivonás és összeadás, szorzás, inekvivalencia és azonosság logikai műveleteinek elvégzésére terveztek.

Regisztráció B- szorzási és osztási műveletek során használt nyolc bites regiszter. Egyéb utasítások esetén ez egy kiegészítő scratchpad-regiszternek tekinthető.

Akkumulátor- egy nyolc bites regiszter, amely az aritmetikai-logikai műveletek vagy eltolási műveletek végrehajtása során kapott eredmény fogadására és tárolására szolgál.

PSW (Program Status Word) Programállapot-regiszter a végrehajtott parancsok állapotszavait tárolja. Ha sok utasítást hajtanak végre az ALU-ban, akkor számos műveleti jel (jelző) generálódik, amelyek rögzítve vannak a Program Status Word (PSW) regiszterben. táblázatban. Az 1. ábra felsorolja a PSW zászlókat, megadja szimbolikus nevüket, és leírja kialakításuk feltételeit.

Megszakítás és soros interfész blokk - UART (univerzális aszinkron vevő/adó) A szekvenciális információáramlások bemeneti-kimeneti megszervezésére és a programmegszakító rendszer megszervezésére tervezték.

Definíció szerint a megszakítás a számítástechnika fő folyamatának ideiglenes megszakítását jelenti valamilyen tervezett vagy nem tervezett művelet végrehajtása érdekében, amelyet a hardver vagy a program működése okoz.

Ezek a műveletek lehetnek szolgáltatási jellegűek, lehetnek a felhasználói programtól származó kérések a karbantartás elvégzésére, vagy reagálhatnak vészhelyzetekre.