Programiranje mcs 51. Mikrokontroleri MCS–51. Blok dijagram, ALU, memorija podataka. Akumulatorski i opći registri

22.04.2021 Sigurnost

Trenutno razne tvrtke proizvode mnoge modifikacije i analoge ove obitelji, kako od strane Intela tako i od drugih proizvođača, brzina takta i kapacitet memorije porasli su deset puta i nastavljaju se povećavati. Skup modula ugrađenih u LSI također se proširuje; velik broj modernih modela ima ugrađen rezidentni ADC velike brzine s do 12, a sada ih može biti i više bitova. Ali obitelj MCS51 temelji se na Intelovim LSI-jevima 8051, 80S51, 8751, 87S51, 8031, 80S31, čiji su prvi uzorci objavljeni 1980.

Mikrokontroleri obitelji MCS51 izrađeni su pomoću visokokvalitetne n-MOS tehnologije (serija 8HHH, analogna - serija 1816 u Rusiji i Bjelorusiji) i k-MOS tehnologije (serija 8HSHH, analogna - serija 1830). Drugi znak nakon 8 znači: 0 – nema EPROM-a na čipu, 7 – 4K EPROM s ultraljubičastim brisanjem. Treći znak: 3 – ROM na čipu, 5 – ako nema ROM-a, onda postoji maskirani ROM na čipu.

I tako 80S51 - LSI temeljen na k-MOS tehnologiji s maskom ROM na čipu, 8031 ​​- LSI n-MOS bez programske memorije (ROM, RPOM) na čipu, 8751 - LSI n-MOS s rezidentom (lociran na čipu) RPOM s ultraljubičastim brisanjem. Dalje ćemo razmotriti 8751 LSI, uz rezerve, ako je potrebno, o razlikama između drugih sklopova, navodeći one parametre koji su objavljeni za prve serijske LSI. Ako je potrebno, dodatne informacije o svim modernim modifikacijama možete pronaći u imenicima tvrtki i tehničkoj dokumentaciji.

A. Opće karakteristike i raspored igala

Obitelj MCS51 temelji se na pet modifikacija MK (imaju identične osnovne karakteristike), a glavna razlika između njih je implementacija programske memorije i potrošnje energije (vidi tablicu 3.1). Mikrokontroler je osmobitni, tj. ima naredbe za obradu osmobitnih riječi, ima harvardsku arhitekturu, taktna frekvencija osnovnih uzoraka obitelji je 12 MHz.

Tablica 3.1.

Mikro krugovi

Interna programska memorija, bajtovi

Vrsta programske memorije

Interna memorija podataka, bajt

Taktna frekvencija, MHz

Potrošnja struje, mA

MK 8051 i 80C51 sadrže ROM programsku memoriju s maskom koja se može programirati s kapacitetom od 4096 bajtova tijekom proizvodnje čipa i dizajnirani su za korištenje u masovnoj proizvodnji. MK 8751 sadrži 4096-bajtni RPOM s ultraljubičastim brisanjem i prikladan je u fazi razvoja sustava prilikom uklanjanja pogrešaka u programima, kao i tijekom proizvodnje u malim serijama ili prilikom stvaranja sustava koji zahtijevaju ponovno pisanje tijekom rada.

periodično podešavanje.

MK 8031 ​​​​i 80C31 ne sadrže ugrađenu programsku memoriju. Oni, kao i prethodno opisane modifikacije, mogu koristiti do 64 KB vanjske programske memorije i učinkovito se koriste u sustavima koji zahtijevaju znatno veći volumen (od 4 KB na čipu) ROM programske memorije.

Svaki MK iz obitelji sadrži rezidentnu podatkovnu memoriju kapaciteta 128 bajtova s ​​mogućnošću proširenja ukupne količine RAM podataka do 64 KB korištenjem vanjskih RAM IC-ova.

    osmobitni središnji procesor;

    4 KB programske memorije (samo 8751 i 87C51);

    Podatkovna memorija od 128 bajta;

    četiri osmobitna programabilna I/O porta;

    dva 16-bitna multi-mode timera/brojača;

    auto-vektorski sustav prekida s pet vektora i dvije softverski kontrolirane razine prioriteta;

    serijsko sučelje, uključujući univerzalni dupleks primopredajnik koji može raditi u četiri načina;

    generator takta.

MK sustav naredbi sadrži 111 osnovnih naredbi s formatom od 1, 2 ili 3 bajta. Mikrokontroler ima:

    32 registra Opća namjena RON, organiziran kao četiri banke od osam registara s imenima R0... R7, izbor jedne ili druge banke određuje program postavljanjem odgovarajućih bitova u statusnom registru programa PSW;

    128 softverski kontroliranih zastavica (bitni procesor, vidi dolje);

    skup registara posebnih funkcija koji upravljaju MK elementima. Postoje sljedeći načini rada mikrokontrolera:

1). Opće resetiranje. 2).Normalno funkcioniranje. 3).Način niske potrošnje energije i način mirovanja. 4). Način programiranja za rezidentni RPOM, ako je dostupan.

Ovdje ćemo se usredotočiti na prva dva načina rada; detaljan opis sastava i rada MK u svim načinima rada dat je u Dodatku P1.

RON i područje bitnog procesora nalaze se u adresnom prostoru rezidentnog RAM-a s adresama od 0 do 80h.

U gornjoj zoni rezidencijalnih RAM adresa nalaze se registri posebnih funkcija (SFR, Special Function Registers). Njihova namjena je data u tablici. 3.2.

Tablica 3.2.

Oznaka

Ime

Baterija

Registar B

Registar statusa programa

Pokazivač snopa

Pokazivač podataka. 2 bajta:

Niski bajt

Visoki bajt

Registar prioriteta prekida

Registar omogućivanja prekida

Registar načina rada mjerača vremena/brojača

Kontrolni registar mjerača vremena/brojača

Timer/brojač 0. Visoki bajt

Timer/brojač 0. Niski bajt

Timer/brojač 1. Visoki bajt

Timer/brojač 1. Niski bajt

Kontrola serijskog priključka

Serijski međuspremnik

Upravljanje potrošnjom

* - registri, dopuštajući bitwise adresiranje

Pogledajmo ukratko funkcije SFR registara prikazanih u tablici 3.2.

Baterija ACC - registar akumulatora. Naredbe dizajnirane da rade

vi s baterijom, koristite mnemotehniku ​​"A", na primjer, MOV A, P2 . Mnemonika ACC se koristi, na primjer, kada se bit-wise adresiraju akumulator. Dakle, simbolički naziv petog bita akumulatora kada se koristi asembler A5M51 bit će sljedeći: ACC. 5. .

Registar U . Koristi se tijekom operacija množenja i dijeljenja. Za ostale upute, registar B se može tretirati kao dodatni registar u stvarnom vremenu.

Registar država programa P.S.W. sadrži podatke o stanju programa i instalira se dijelom automatski na temelju rezultata izvršene operacije, a dijelom od strane korisnika. Oznaka i namjena bitova registra dani su u tablicama 3.3 odnosno 3.4.

Tablica 3.3.

Oznaka

Tablica 3.4.

Oznaka

Dodjela bitova

Bitni pristup

Nosi zastavu. Promjene tijekom izvođenja niza aritmetičkih i logičkih instrukcija.

Hardver ili softver

Dodatna zastavica za nošenje. Postavljeno/obrisano u hardveru tijekom instrukcija zbrajanja ili oduzimanja za označavanje prijenosa ili posuđivanja u bitu 3 kada se generira najmanje značajan nibble rezultata (D0-D3).

Hardver ili softver

Oznaka 0. Korisnički definirana zastavica.

Programski

Programski

Indeks banke radnog registra

Programski

Banka 0 s adresama (00N - 07N) Banka 1 s adresama (08N - 0FN) Banka 2 s adresama (10N - 17N) Banka 3 s adresama (18N - 1FN)

Preljevna zastavica. Postavlja ili briše hardver tijekom izvođenja aritmetičkih instrukcija za označavanje stanja preljeva

Hardver ili softver

Rezervni. Sadrži okidač za pisanje i čitanje koji se može koristiti

Bit pariteta. Hardversko resetiranje ili postavljanje na svakom ciklusu instrukcija za označavanje parnog ili neparnog broja bitova baterije u stanju "1".

Hardver ili softver

Pokazivač stog SP - 8-bitni registar čiji se sadržaj povećava prije upisa podataka na stog kada se izvršavaju PUSH i CALL instrukcije. Prilikom početnog resetiranja, pokazivač steka postavljen je na 07H, a područje stoga u podatkovnom RAM-u počinje na adresi 08H. Ako je potrebno, nadjačavanjem pokazivača snopa, snop se može smjestiti bilo gdje u internom RAM-u podataka mikrokontrolera.

Pokazivač podaci DPTR sastoji se od visokog bajta (DPH) i niskog bajta

(DPL). Sadrži 16-bitnu adresu prilikom pristupa vanjskoj memoriji. Može se koristiti

biti ili 16-bitni registar ili dva neovisna osmobitna registra.

Port0 - PortZ. Odvojeni bitovi registara posebnih funkcija P0, P1, P2, RZ su bitovi "zasuna" priključaka P0, P1, P2, RZ.

Pufer dosljedan luka SBUF predstavlja dva odvojena registra: međuspremnik odašiljača i međuspremnik prijemnika. Kada se podaci upišu u SBUF, oni ulaze u međuspremnik odašiljača, a pisanje bajta u SBUF automatski pokreće prijenos kroz serijski port. Kada se podaci čitaju iz SBUF-a, oni se dohvaćaju iz međuspremnika primatelja.

Registri mjerač vremena. Registarski parovi (TH0, TL0) i (TH1, TL1) obrazac 16

registri za brojanje bitova za tajmer/brojač 0 i tajmer/brojač 1, redom.

Registri upravljanje. Registri posebnih funkcija IP, IE, TMOD, TCON, SCON i PCON sadrže kontrolne bitove i statusne bitove sustava prekida, vremenske

mjere/brojila i serijski priključak. O njima će se detaljno raspravljati u nastavku.

RxD TxD INT0 INT1 T0 T1 WR

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

RST BQ2 BQ 1 E.A.

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

Kada funkcionira, MC pruža:

    minimalno vrijeme izvršenja naredbi zbrajanja je 1 μs;

    hardversko množenje i dijeljenje s minimalnim vremenom izvršenja od 4 μs.

MK pruža mogućnost postavljanja frekvencije unutarnjeg oscilatora pomoću kvarca, LC lanca ili vanjskog oscilatora.

Prošireni sustav instrukcija pruža adresiranje bajtova i bitova, binarnu i binarnu decimalnu aritmetiku, indikaciju preljeva i određivanje parnih/neparnih brojeva te mogućnost implementacije logičkog procesora.

Najvažnija i najistaknutija značajka arhitekture obitelji MCS51 je da ALU može manipulirati jednobitnim podacima uz izvođenje operacija na 8-bitnim tipovima podataka. Pojedinačni softverski dostupni bitovi mogu se postaviti, izbrisati ili zamijeniti svojim komplementom, mogu se proslijediti, provjeriti i

sl.3.2. Vanjske igle

mikrokontroler

koristi u logičkim proračunima. Dok podrška za jednostavne vrste podataka (ako je dostupna)

Dok se trenutni trend prema duljim riječima na prvi pogled može činiti kao korak unatrag, ova kvaliteta čini obitelj mikrokontrolera MCS51 posebno pogodnom za aplikacije temeljene na kontroleru. Radni algoritmi potonjeg pretpostavljaju prisutnost ulaznih i izlaznih Booleovih varijabli, koje je teško implementirati korištenjem standardnih mikroprocesora. Sva ova svojstva zajednički se nazivaju Boolean procesor obitelji MCS51. Ovaj moćni ALU čini obitelj mikrokontrolera MCS51 prikladnom i za upravljačke aplikacije u stvarnom vremenu i za algoritme koji intenzivno koriste podatke.

Dijagram sklopa mikrokontrolera prikazan je na sl. 3.2. U osnovnoj izvedbi pakiran je u 40-pinsko DIP kućište. Pogledajmo svrhu pribadača.

Počnimo s iglama za napajanje «0 U" I "5 U" , kroz koji dobiva osnovnu prehranu. Trenutna potrošnja data je u tablici. 3.1.

Zaključak "RST" - resetiranje mikrokontrolera. Kada se na ovu iglu primijeni aktivna visoka razina, način rada Općenito resetirati i MK obavlja sljedeće radnje:

Postavlja programski brojač računala i sve registre posebnih funkcija, osim zasuna portova P0-P3, pokazivača SP stoga i registra SBUF, na nulu;

    pokazivač steka uzima vrijednost jednaku 07H;

    onemogućuje sve izvore prekida, brojač vremena i serijski

    odabire BANK 0 RAM, priprema portove P0-RZ za prijem podataka i određivanje

dijeli ALE i PME pinove kao ulaze za vanjsko taktiranje;

      u posebnim funkcijskim registrima PCON, IP i IE, rezervirani bitovi uzimaju slučajne vrijednosti, a svi ostali bitovi se vraćaju na nulu;

      SBUF registar je postavljen na slučajne vrijednosti.

      postavlja zasune priključaka P0-PZ na "1".

Stanja registara mikrokontrolera nakon resetiranja prikazana su u tablici 3.5.

Tablica 3.5.

Informacija

neizvjesno

0HHH0000V za k-MOS 0XXXXXXXB za n-MOS

RST pin također ima alternativnu funkciju. Preko njega se dovodi rezervno napajanje kako bi sadržaj RAM-a mikrokontrolera ostao nepromijenjen kada se glavni ukloni.

zaključke BQ1, BQ2 namijenjeni su za spajanje kvarcnog rezonatora koji određuje taktnu frekvenciju MK.

Zaključak EA` (E vanjski A haljina vanjski adresa) - dizajniran za aktiviranje načina čitanja kontrolnih kodova iz vanjska memorija programira kada se na ovaj pin primijeni aktivna niska razina. Izlaz ima alternativnu svrhu (funkciju). Napaja se naponom za programiranje iz RPOM u modu za programiranje.

Zaključak PME (P rogram M emory E plemenit dopuštenje memorija programa) - dizajniran je za kontrolu ciklusa čitanja iz programske memorije i automatski ga aktivira MK u svakom strojnom ciklusu.

Zaključak PIVO (A haljina L dužina E plemenit dopuštenje mlađi adrese) strobira izlaz nižeg reda adrese preko porta P0. Izlaz se također koristi kod programiranja RPOM-a, dok mu se daje stroboskopski impuls za proces programiranja.

MK sadrži četiri skupine priključaka: P0, P1, P2 i P3. Ovo je preostalih 40 pinova mikrokontrolera. Ti priključci mogu služiti za bit-po-bit unos i izlaz informacija, ali osim toga, svaki od njih ima svoju specijalizaciju. Generalizirani funkcionalni dijagram priključka prikazan je na sl. 3.3. Priključak sadrži FET izlazne sklopke spojene na pin, funkcijsku sklopku, D flip-flop zasun i upravljačku logiku. Jedinica ili nula mogu se upisati na zasun na unutarnjoj sabirnici MK. Ova informacija se šalje preko funkcijske sklopke na izlazne sklopke i izlaz MK. U jednom stanju, oba tranzistora N i N1 su zatvorena, ali je N2 otvoren. U nultom stanju N se otvara-

Xia, a N2 se zatvara. U trenutku kada port izvede alternativnu funkciju za koju je specijaliziran, stanje zasuna izlaza se briše. Mikrokontroler može odvojeno očitati stanje zasuna porta i stanje njegovog izlaza, postavljeno vanjskim signalom. U tu svrhu MK asembler sadrži posebne naredbe koje aktiviraju odgovarajuće retke. Za očitavanje stanja pina u odgovarajući zasun priključka,

biti unaprijed snimljen

Od internih

Kontrolni zasun

Funkcijski prekidač

Vcc

Vikend

jedinica. Kada se aktivira linija "read latch", pojavljuje se izlaz ćelije "AND" na koju je ova linija povezana.

njene gume MK D Q

Pišite na zasun C Q

Read brava

Zatik priključka

Stanje zasuna se prenosi na internu sabirnicu MC-a kada se aktivira

“read output” - stanje vanjskog pina porta.

Luka P0 – univerzalni dvosmjerni priključak

I/O Izvan ove luke

funkcija organiziranja vanjskih adresnih sabirnica i

Riža. 3.3. Funkcionalni dijagram porta mikrokontrolera

podataka za proširenje programske memorije i podatkovne memorije

mikrokontroler. Kada se pristupi vanjskoj programskoj memoriji ili se izvrši naredba za pristup vanjskoj podatkovnoj memoriji, dio adrese nižeg reda (A0...A7) postavlja se na pinove porta, koji je postavljen visoko na ALE pinu. Zatim, prilikom pisanja podataka u memoriju, snimljene informacije iz interne sabirnice MK šalju se na igle priključka P0. U operacijama čitanja, naprotiv, informacije s pinova porta šalju se na internu sabirnicu. Značajka priključka P0 je odsutnost "pull-up" tranzistora N2, koji daje snagu izlazu. Prilikom pisanja na zasun priključka jedinice, on se jednostavno prebacuje u stanje visoke impedancije, što je neophodno za normalan rad sabirnice podataka. Ako je potrebno napajati bilo koji vanjski uređaj preko izlaza, potrebno je osigurati vanjske otpornike od strujnih krugova do izlaza priključka.

Luka P1 – univerzalni dvosmjerni I/O port bez alternativnih funkcija.

Luka P2 – univerzalni dvosmjerni I/O port, koji kao alternativnu funkciju izdaje viši dio adrese (A8...A15) prilikom pristupa vanjskoj memoriji.

Luka P3 – univerzalni dvosmjerni I/O port, čiji svaki bit omogućuje implementaciju različitih alternativnih funkcija. U ovom slučaju, alternativne funkcije se implementiraju samo ako su one upisane na zasune pinova porta; u suprotnom, izvršavanje alternativnih funkcija je blokirano. Nabrojimo ih zasebno za svaki bit:

P3.0 RxD (R ead e x unutarnje D jeo, čitao vanjske podatke) – ulaz ugrađenog serijskog primopredajnika.

P3.1 TxD (T ype e x unutarnje D jeo, prenosi vanjske podatke) – izlaz ugrađenog serijskog primopredajnika.

P3.2 INT0` (INT errupt, interrupt) – vanjski prekidni ulaz 0.

P3.3 INT1` – vanjski prekidni ulaz 1.

P3.4 S/T0 – nula ugrađeni timer/brojač ulaz.

P3.5 C/T1 – unos prvog ugrađenog timera/brojača.

P3.6 WR` (W rite, write) – izlaz za kontrolu ciklusa pisanja u podatkovnoj memoriji.

P3.7 RD` (R ead, read) – kontrolni izlaz ciklusa čitanja iz podatkovne memorije.

Pinovi priključaka P1, P2 i P3 mogu proizvesti struju od oko 0,2 mA po jedinici i primiti struju od 3 mA na nuli; kontakti priključka P0 su snažniji i sposobni su isporučiti struju od oko 0,8 mA u jednoj jedinici i prima struju od 5 mA na nuli. Kratki podaci o namjeni pinova mikrokontrolera dani su u tablici 3.6.

Tablica 3.6.

Oznaka

Namjena izlaza

8-bitni dvosmjerni port P1. Unos adrese A0-A7 prilikom provjere unutarnjeg ROM-a (RPM)

ući izlaz

Opći signal resetiranja. Izlaz rezervne snage RAM-a iz vanjskog izvora (za 1816)

8-bitni dvosmjerni P3 priključak s dodatnim značajkama

ući izlaz

Serijski podaci prijemnika - RxD

Serijski podaci odašiljača - TxD

Ulaz vanjskog prekida 0-INT0`

Ulaz vanjskog prekida 1-INT1`

Ulaz vremena/brojača 0: - T0

Ulaz tajmera/brojača 1: - T1

Izlaz stroboskopskog signala pri upisivanju u vanjsku podatkovnu memoriju: - WR`

Izlaz stroboskopskog signala pri čitanju iz vanjske memorije podataka – RD`

Izvodi za spajanje kvarcnog rezonatora.

izlazni ulaz

Opći zaključak

8-bitni dvosmjerni port P2. Izlaz adrese A8-A15 u načinu vanjske memorije. U modu interne provjere ROM-a, pinovi P2.0 - P2.6 koriste se kao ulaz adresa A8-A14. Pin P2.7 - dozvola za čitanje ROM-a.

ući izlaz

Rezolucija programske memorije

Izlazni signal omogući fiksiranje adrese. Kod programiranja RPOM signala: PROG

ući izlaz

Blokiranje rada s internom memorijom. Prilikom programiranja RPOM-a daje se UPR signal

ući izlaz

8-bitni dvosmjerni port P0. Adresa/podatkovna sabirnica za rad s vanjskom memorijom. Izlaz podataka D7-D0 u internom ROM (RPM) test modu.

ući izlaz

Izlazna snaga iz izvora napona +5V

Osnovna verzija MCS–51 Kratke informacije. Moderni 8-bitni mikrokontroleri (MC) imaju takve resurse upravljanja u stvarnom vremenu, za koje su ranije korišteni skupi rasporedi s više čipova u obliku zasebnih ploča mikroračunala, naime:

● imati dovoljan kapacitet memorije, njenu fizičku i logičku podjelu na programsku memoriju i podatkovnu memoriju (harvardska arhitektura) te sustav naredbi usmjeren na izvršavanje upravljačkih algoritama;

● uključuju sve uređaje (procesor, ROM, RAM, ulazno/izlazne portove, sustav prekida, alate za obradu bitnih informacija, itd.) potrebne za implementaciju mikroprocesorski sustav minimalna kontrola konfiguracije. 70-ih godina prošlog stoljeća tvrtka Intel razvijena je i puštena u industrijsku proizvodnju obitelj 8-bitnih mikrokontrolera MCS-48, ujedinjenih nizom zajedničkih značajki (bitni kapacitet, sustav naredbi, skup glavnih funkcionalnih blokova itd.). Osnovna verzija ove obitelji uključuje:

● 8-bitni procesor;

● interna programska memorija (1/2/4K bajtova);

● interna podatkovna memorija (64/128/256 bajtova);

● do 27 unutarnjih i 16 vanjskih I/O linija;

● jedan 8-bitni brojač vremena;

● jednorazinski sustav prekida s dva izvora zahtjeva. Godine 1980. ista tvrtka razvila je novu obitelj osmobitnih mikrokontrolera MCS-51, koja je kompatibilna s arhitekturom obitelji MCS-48, ali ima više široke mogućnosti.

Arhitektura obitelji MCS-51 pokazala se toliko uspješnom da je još uvijek jedan od standarda za 8-bitne MK. Stoga su za predmet istraživanja odabrani mikrokontroleri ove obitelji koji imaju široku primjenu u relativno jednostavnim sustavima upravljanja.

Za obitelj MCS-51 razvijeni su različiti alati za pripremu programa (kompilatori, hardversko-softverski emulatori itd.) i postoji veliki broj biblioteka standardnih rutina. Obitelj uključuje različite modifikacije mikrokrugova (verzija čipova) mikrokontrolera. U člancima u ovom odjeljku detaljno se raspravlja o osnovnoj verziji mikrokontrolera obitelji MCS-51 (mikrokrug 8051 odgovara domaćem analognom KP1816BE51), najjednostavniji u strukturnom i funkcionalnom smislu i sa stajališta razumijevanja.

Naknadna serija čipova, uz zadržavanje kompatibilnosti s osnovna verzija, razlikuju se od njega poboljšanom tehnologijom proizvodnje, električni parametri, dodatni hardver i funkcionalnost. Sljedeći članci posvećeni su strukturnim i funkcionalnim značajkama naknadnih modifikacija obitelji mikro krugova MCS-51.
Generalizirani blok dijagram MCS-51. Sastav MC-a, čiji je generalizirani blok dijagram prikazan na Sl. 7.1.1, uključuje:

● 8-bitna središnja procesorska jedinica (CPU) koja se sastoji od ALU, upravljački uređaji UU i generator adresa F;

● mask ROM kapaciteta 4K bajta za pohranjivanje programa;

● RAM s kapacitetom od 128 bajtova za pohranu podataka;

● četiri programabilna priključka P0–P3 za ulaz– izlaz informacija;

● jedinica serijskog sučelja BPI za razmjenu informacija s vanjskim uređajima putem dvožilni vod;

● blok BT/C tajmera/brojača za održavanje načina rada u stvarnom vremenu;

● BP prekidni blok za organiziranje prekida izvršnih programa. Ova sredstva oblikuju Rezidencija dio mikrokontrolera smješten izravno na čipu. MK uključuje veliki broj registara, koji su dodijeljeni posebnim funkcionalnim blokovima i nisu prikazani na dijagramu.

Dijagram također ne prikazuje upravljačke krugove. Dvosmjerna razmjena informacija između blokova provodi se preko internih 8 bita sabirnica podatakaŠD-8.

Internim 16-bitnim adresna sabirnicaŠA-16 Adresa generirana u CPU izlazi u ROM (12 adresnih bitova) i u RAM (8 nižih bitova).

Kada koristite vanjsku memoriju, 8 najmanje značajnih bitova adrese šalje se na priključak P0, a 3 ili 8 najvažnijih bitova na priključak P2.

Za logično proširenje sučelja koristi se kombiniranje funkcija port linija. Kao primjer na Sl. 7.1.1 isprekidana linija prikazuje linije priključka P3 koji rade alternativa funkcije prijenosa upravljačkih signala, čija će svrha biti razmatrana u nastavku. Za stvaranje unutarnjeg generatora takta, kvarcni rezonator i dva kondenzatora spojeni su na stezaljke mikro kruga MK (slika 7.1.1). Umjesto internog generatora takta, možete koristiti vanjski izvor oklijevanje. Konvencionalna grafička oznaka MK mikro kruga prikazana je na sl. 7.1.2, oznaka i svrha igala - u tablici. 7.1.1. Razmotrimo funkcionalne blokove MK i princip njihovog rada. Aritmetičko logički uređaj. Aritmetičko-logički uređaj dizajniran je za izvođenje aritmetičkih (uključujući množenje i dijeljenje) i logičkih operacija na osmobitnim operandima, kao i operacija logičkog pomaka, nuliranja, postavljanja itd. Blok dijagram ALU prikazan je na sl. 7.1.3.

ALU uključuje

● paralelni osmobitni guja SM kombinacijskog tipa sa sekvencijalnim prijenosom, izvođenjem aritmetičkih (zbrajanje i oduzimanje) i logičkih (zbrajanje, množenje, disparitet i identitet) operacija;

baterija A, pružanje funkcija glavnog aritmetičkog registra;

Registar B, koji se koristi za provedbu operacija množenja i dijeljenja ili kao dodatni superoperacijski registar, čije funkcije određuje korisnik;

registri(softver nije dostupan) privremeno skladištenje RVH1, RVH2, namijenjeni za primanje i pohranjivanje operanda za vrijeme trajanja operacije;

● ROM konstante ROM, koji pohranjuje kod korekcije za binarnu decimalnu reprezentaciju podataka, kod maske za bitne operacije i kod za konstante;

registar riječi statusa programa PSW, koji bilježi stanje ALU nakon završene operacije. U tablici 7.1.2 daje informacije o dodjeli bitova pojedinih bitova PSW registra. Kontrolni uređaj. Upravljačka jedinica (CU) središnjeg procesora namijenjeni za koordinaciju suradnja svi MK čvorovi koristeći generirane taktne impulse i upravljačke signale. Sastoji se od (Sl. 7.1.4):

jedinica za sinkronizaciju i upravljanje Sustav upravljanja, koji generira taktne impulse koji definiraju cikluse stroja i njihova pojedinačna stanja (S) i faze (P), te, ovisno o načinu rada mikrokontrolera, generira potreban skup upravljačkih signala. Za izvršenje naredbe potreban je jedan, dva ili četiri strojna ciklusa.

Svaki strojni ciklus ima šest država S1–S6, A svako stanje uključuje dvije faze P1, P2, čije je trajanje period titranja generatora takta T 0SC.

Trajanje strojnog ciklusa je 12T 0SC. Svi strojni ciklusi su isti, počevši s fazom S1P1 i završavajući s fazom S6P2.

Osim impulsa takta, uređaj za sinkronizaciju generira dva (ponekad i jedan) signala usmjeravanja za niži bajt ALE adrese u svakom strojnom ciklusu u obliku pozitivnog impulsa u fazama S1P2–S2P1 i S4P2–S5P1. Vremenski dijagrami na sl. 7.1.5 ilustrirati organizaciju strojnih ciklusa;

● registar naredbi RK, dekoder naredbi DC i PLM, omogućujući u svakom strojnom ciklusu generiranje skupa mikrooperacija u skladu s mikroprogramom izvršene naredbe;

● LVV ulazno/izlazna logika za primanje i izdavanje signala koji osiguravaju razmjenu informacija između mikrokontrolera i vanjski uređaji kroz priključke P0–P3;

● PCON registar, koji ima jedan omogućeni SMOD bit na poziciji PCON.7 za udvostručenje brzine podataka serijskog porta. Preostali bitovi su rezervirani za kasniju upotrebu.
Generator adresa. Generator adresa (FA) ili brojač PC naredbi, namijenjeni za formiranje trenutne 16-bitne adrese programske memorije i 8/16-bitne adrese vanjske podatkovne memorije. Sastoji se od (sl. 7.1.6):

● 16-bitni pufer B, koji komunicira između 8-bitne SD podatkovne sabirnice i 16-bitne interne sabirnice (IB) formatora adrese;

● SI inkrementalni krug za povećanje vrijednosti trenutne adrese programska memorija po jedinici;

● registar za pohranu trenutne adrese PTA naredbi koje dolaze iz SI;

● registar pokazivača podataka DPTR , koji se sastoji od dva 8-bitna registra DPH i DPL. Služi za pohranu 16-bitne adrese vanjske podatkovne memorije i može se koristiti kao dva neovisna softverski dostupna RON-a;

● registar XRF generatora adresa za pohranu izvršne 16-bitne adrese programske memorije ili 8/16-bitne adrese vanjske podatkovne memorije. Ovaj se registar također koristi za prijenos podataka preko porta P0 do vanjskih uređaja kada se izvršavaju naredbe MOVX @Rm, A i MOVX @DPRT, A.

Memorija podataka. Memorija podataka namijenjeni za primanje, pohranjivanje i izdavanje informacija koje se koriste tijekom izvođenja programa. Interna (rezidentna) podatkovna memorija (slika 7.1.7) sastoji se od RAM-a kapaciteta 128 bajtova, stack pokazivač S.P. adresni registar RAM RA i dekoder Dsh. Pokazivač steka SP je 8-bitni registar dizajniran za primanje i pohranjivanje adrese ćelije stoga kojoj je zadnji put pristupljeno. Nakon resetiranja, pokazivač steka se postavlja na adresu 07H, što odgovara početku steka s adresom 08H. PA adresni registar zajedno s Dsh dekoderom omogućuje pristup potrebnoj memorijskoj ćeliji koja sadrži bajt ili bit informacije.

MK pruža mogućnost povećanja kapaciteta podatkovne memorije do 64 KB povezivanjem vanjski uređaji za pohranu. Kao primjer na Sl. 7.1.8 prikazuje organizaciju stranica vanjske VPD podatkovne memorije s kapacitetom od 2K bajta pomoću naredbi tipa MOVX @ Rm(m = 0; 1). U ovom slučaju port P0 radi kao multipleksirana adresna/podatkovna sabirnica, tri linije porta P2 koriste se za adresiranje stranice vanjskog RAM-a, a preostalih pet linija može se koristiti kao ulazno/izlazne linije.
Na sl. 7.1.9 prikazuje vremenske dijagrame ciklusa čitanja i pisanja kada MK radi s vanjskim RAM-om. Dijagrami pokazuju:

● RSN - visoki bajt brojača PC naredbi;

● DPL, DPH - niski i visoki bajt registra pokazivača podataka DPTR, koji se koristi kao registar za neizravno adresiranje u naredbama MOVX @DPTR,A i MOVX A,@DPTR;

● P2 SFR - zasuni ulaza P2;

● Rm (m = 0, 1) - registri koji se koriste u naredbama MOVX @Rm, A i MOVX A, @Rm kao neizravni adresni registri;

● Z - stanje visokog otpora;

● D - period tijekom kojeg se podaci s porta P0 unose u mikrokontroler. Programska memorija. Programska memorija dizajnirana je za pohranu programa, ima vlastiti (odvojen od podatkovne memorije) adresni prostor i samo je za čitanje. Uključuje Dsh dekoder i ROM (Sl. 7.1.10). 16-bitni PC brojač koristi se za adresiranje programske memorije, tako da je njegov maksimalni kapacitet 64K bajta. Interna programska memorija sastoji se od 4K bajta ROM-a i 12-bitnog dekodera. Vanjska memorija spojena je prema dijagramu na sl. 7.1.11. Ako se 0 V primijeni na ¯EA pin MK (kao što je prikazano na slici 7.1.11), interna programska memorija je onemogućena. Svi pristupi memoriji počinju na adresi 0000h. Kada je ¯EA pin spojen na izvor napajanja, pristup internoj programskoj memoriji na adresama 0000h–FFFFh i vanjskoj programskoj memoriji na adresama 0FFFh–FFFFh događa se automatski.

Za čitanje vanjske memorije MK programa generira se signal ¯PSEN. Prilikom rada sa Unutarnja memorija Signal očitanja se ne koristi. Prilikom pristupa vanjskoj programskoj memoriji uvijek se formira 16-bitna adresa. Niži bajt adrese prenosi se preko porta P0 u prvoj polovici strojnog ciklusa i fiksira se rezanjem ALE stroboskopa u registru. U drugoj polovici ciklusa, port P0 se koristi za unos bajta podataka iz vanjske memorije u MK.

Najznačajniji bajt adrese prenosi se kroz priključak P2 tijekom cijelog vremena pristupa memoriji.

Vremenski dijagrami ciklusa čitanja i pisanja kada MK radi s vanjskim RAM-om prikazani su na slici. 7.1.12.
Dijagrami pokazuju:

● PCL OUT - izlaz nižeg bajta brojača PC programa;

● RSN OUT - izlaz visokog bajta brojača PC naredbi;

● DPH - visoki bajt registra pokazivača podataka DPTR, koji se koristi kao registar za neizravno adresiranje u MOVX @DPTR,A i MOVX A,@DPTR instrukcijama;

● P2 SFR - zasuni ulaza P2;

● INS IN - unos instrukcijskog (naredbenog) bajta iz programske memorije;

● ADDR OUT - izdavanje niskog bajta adrese vanjske podatkovne memorije iz Rm registara (m = 0, 1) ili iz DPL registra (DPTR niski registar). I/O portovi. Dodjela luka. Priključci P0, P1, P2, P3 namijenjeni za razmjenu informacija između MK i vanjskih uređaja, kao i za obavljanje sljedećih funkcija:

● niži bajt adrese A7…A0 izlazi kroz priključak P0; podatkovni bajt izlazi iz MK i unosi se u MK pri radu s vanjskom programskom memorijom i vanjskom podatkovnom memorijom (vremenski odvojena);

● preko porta P2 izlazi visoki bajt adrese A15...A8 pri radu s vanjskom programskom memorijom i vanjskom podatkovnom memorijom (samo pri korištenju naredbi MOVX A,@DPTR i MOVX @DPTR,A);

● vodovi priključka P3 mogu se koristiti za izvođenje alternativnih funkcija ako se u zasun ovog voda unese 1, inače je na izlazu linije fiksiran 0. Alternativne funkcije pinova priključka P3 dane su u tablici. 7.1.3.

Značajke sklopova priključaka

Na sl. 7.1.13 prikazuje dijagrame za jedan kanal svakog od MK priključaka, uključujući:

● zasun za fiksiranje bita primljenih podataka;

● izlazno pojačalo kaskada(vozač);

● čvor veza sa izlazni stupanj (osim P2);

● krug za prijenos bita podataka s izlazne strane porta, koji se sastoji od međuspremnika B2 i B3 (za port P4). Zasun je D-flip-flop, taktiran internim signalom "Write to latch". Podatkovni bit iz izravnog izlaza D flip-flopa može se programski očitati kroz međuspremnik B1 pomoću signala "Read Latch" na liniju interne podatkovne sabirnice (ID) MK.

Izlazni stupanj priključak P0 je pretvarač, čije se značajke očituju u činjenici da se tranzistor opterećenja VT2 otvara samo pri pristupu vanjskoj memoriji (prilikom prijenosa adresa i podataka kroz priključak). U svim ostalim modovima, tranzistor opterećenja je zatvoren. Stoga, za korištenje P0 (sl. 7.1.13, a) kao izlaznog priključka opće namjene, potrebno je spojiti vanjske otpornike opterećenja na njegove terminale. Prilikom upisa 1 u zasun priključka, tranzistor pretvarača VT1 je zaključan, a vanjski pin priključka P0.X prebačen je u stanje visokog otpora. U ovom načinu rada, izlaz porta P0.X može poslužiti kao ulaz. Ako se P0 port koristi kao I/O port opće namjene, svaki od njegovih P0.X pinova može neovisno raditi kao ulaz ili izlaz. Izlazni stupnjevi priključci P1, P2, P3 (Sl. 7.1.13, b, c, d) izrađen prema inverterskim krugovima s unutarnjim otpornikom opterećenja, koji se koristi kao tranzistor VT2.

Kako bi se smanjilo vrijeme prebacivanja kada pinovi priključka prijeđu iz stanja 0 u stanje 1, uveden je dodatni tranzistor VT3 paralelno s tranzistorom opterećenja VT2. Tranzistor VT3, koristeći elemente u krugu vrata, otključava se na vrijeme jednako dvama periodima oscilacije glavnog kvarcnog oscilatora (tijekom faza S1P1, S2P2 ciklusa stroja). Izlazni stupnjevi priključci P0, P2 (Sl. 7.1.13, A, c) pomoću MX multipleksera mogu se spojiti ili na zasune ili na interne sabirnice "Adresa/podaci" i "Adresa". Izlazni stupanj priključka P1 (sl. 7.1.13, 6) trajno je spojen na zasun.

Ako je pin porta P3 izlaz i njegov zasun sadrži 1, tada njegov izlazni stupanj kontrolira hardver unutarnji signal"Alternativna izlazna funkcija" koja omogućuje izvršenje odgovarajuće alternativne funkcije, tj. jedan od signala ¯WR, ¯RD ili RxD generira se na vanjskom pinu. Ako se izlaz porta koristi kao ulaz, tada se alternativni signal koji dolazi na njega (TxD, ¯INT0, ¯INT1, T0, T1) prenosi na internu liniju "Funkcija alternativnog ulaza".

Način snimanja porta.

Kada se izvrši naredba pisanja porta, nova vrijednost se zapisuje u zasun u fazi S6P2 i šalje izravno na izlazni pin porta u fazi S1P1 sljedećeg strojnog ciklusa.

Način čitanja porta

Read port naredbe čitaju informacije izravno iz vanjski kontakti pinovi porta ili izlazi zasuna. U prvom slučaju, podatkovni bit s pina priključka programski se čita kroz međuspremnik B2 pomoću signala "Read Pins" na liniju interne sabirnice podataka (SD) MK. Imajte na umu da se signali "Pisanje u zasun", "Čitanje zasuna", "Čitanje pinova" generiraju u hardveru kada se izvrše odgovarajuće naredbe.

U drugom slučaju implementiran je takozvani način rada "Read-Modify-Write", u kojem naredba čita signal stanja zasuna, modificira ga ako je potrebno, a zatim ga zapisuje natrag u zasun. Način rada “Čitanje-Mijenjanje-Pisanje” implementiran je prilikom izvršavanja sljedećih naredbi: ANL, ORL, XRL, JBC; CPL; INC; DEC; DJNC; MOV PX,Y; CLR PX.Y; SETB PX,Y.

Čitanje informacija s izlaza zasuna omogućuje vam uklanjanje pogrešaka pri tumačenju logičke razine na pinu porta. Pročitajte nastavak članka.

Arhitekturu obitelji MCS-51 uvelike određuje njegova namjena – konstrukcija kompaktan I jeftino digitalni uređaji. Sve funkcije mikroračunala implementirane su pomoću jednog mikro kruga. Obitelj MCS-51 uključuje cijela linija mikrosklopova od najjednostavnijih mikrokontrolera do prilično složenih. Mikrokontroleri obitelji MCS-51 omogućuju obavljanje oba zadatka upravljanja razne uređaje, te implementirati pojedine komponente analognog sklopa. Svi mikro krugovi ove obitelji rade s istim MCS-51 komandni sustav, većina ih se provodi u identičnim slučajevima s odgovarajući pinout(numeriranje nogu za tijelo). To vam omogućuje korištenje mikro krugova za razvijeni uređaj različite tvrtke- Maxim, Atmel, NXP itd. (catalog..php?page=components_list&id=39"> pogledajte Pretraživanje po parametrima) bez prerade shematski dijagram uređaja i programa.

Slika 1. Blok dijagram I8751 kontrolera

Blok dijagram regulatora prikazan je na slici 1. i sastoji se od sljedećih glavnih funkcionalnih jedinica: upravljačka jedinica, aritmetičko-logička jedinica, mjerač/brojač jedinica, serijsko sučelje i prekidna jedinica, programski brojač, podatkovna memorija i programska memorija. Dvosmjerna komunikacija provodi se pomoću interne 8-bitne sabirnice podataka.

Pogledajmo pobliže svrhu svakog bloka. Gotovo svi članovi obitelji MCS-51 izgrađeni su prema ovoj shemi. Razni mikro krugovi ove obitelji razlikuju se samo u registrima posebne namjene (uključujući broj priključaka). Sustav upravljanja svim kontrolerima obitelji MCS-51 sadrži 111 osnovne naredbe s formatom od 1, 2 ili 3 bajta i ne mijenja se pri prelasku s jednog čipa na drugi. To osigurava izvrsnu prenosivost programa s jednog čipa na drugi.

Jedinica za upravljanje i sinkronizaciju

Jedinica za mjerenje vremena i upravljanja dizajnirana je za generiranje sinkronizirajućih i upravljačkih signala koji osiguravaju koordinaciju zajedničkog rada jedinica glavnog računala u svim dopuštenim načinima rada.Upravljačka jedinica uključuje:

  • - uređaj za formiranje vremenskih intervala,
  • - ulazno-izlazna logika,
  • - registar naredbi,
  • - kontrolni registar potrošnja električne energije,
  • - dekoder naredbi, logika upravljanja računalom.

Uređaj za formiranje vremenskih intervala dizajniran za generiranje i izdavanje internih taktnih signala faza, taktova i ciklusa. Broj ciklusa stroja određuje trajanje instrukcija. Gotovo sve računalne naredbe izvršavaju se u jednom ili dva strojna ciklusa, osim naredbi množenja i dijeljenja, čije je trajanje izvršenja četiri strojna ciklusa. Označimo frekvenciju glavnog oscilatora s F g. Tada je trajanje strojnog ciklusa jednako 12/F g ili iznosi 12 perioda signala glavnog oscilatora. I/O logika dizajnirana je za primanje i izlaz signala koji osiguravaju razmjenu informacija s vanjskim uređajima preko ulazno/izlaznih priključaka P0-P3.

Registar naredbi dizajniran za snimanje i pohranjivanje 8-bitnog operacijskog koda naredbe koja se izvršava. Operacijski kod se uz pomoć dekodera naredbi i računalne upravljačke logike pretvara u mikroprogram za izvršavanje naredbe.

Registar kontrole potražnje (PCON) omogućuje vam zaustavljanje mikrokontrolera kako biste smanjili potrošnju energije i smanjili razinu smetnji mikrokontrolera. Još veće smanjenje potrošnje energije i smetnji može se postići zaustavljanjem glavnog oscilatora mikrokontrolera. To se može postići mijenjanjem bitova registra kontrole potrošnje PCON-a. Za opciju proizvodnje n-MOS (serija 1816 ili strani čipovi koji nemaju "c" u sredini svog imena), PCON registar kontrole potrošnje sadrži samo jedan bit koji kontrolira brzinu prijenosa podataka serijskog porta SMOD, i nema kontrolnih bitova potrošnje energije.

Aritmetičko-logička jedinica (ALU) je paralelni osmobitni uređaj koji izvodi aritmetičke i logičke operacije. ALU se sastoji od:

  • - registri akumulatora, registri privremene memorije TMP1 i TMP2,
  • - ROM konstante,
  • - zbrajalo,
  • - dodatni registar (registar B),
  • - baterija (ACC),
  • - registar statusa programa (PSW).

Registar baterija I registri posjeda- osmobitni registri dizajnirani za primanje i pohranjivanje operanda tijekom izvođenja operacija na njima. Ovi registri nisu programski dostupni.

Konstantan ROM osigurava generiranje korekcijskog koda za binarno decimalno predstavljanje podataka, koda maske za bitne operacije i konstantnog koda.

Paralelno osmobitno zbrajalo je sekvencijalni prijenosni kombinacijski sklop dizajniran za izvođenje aritmetičkih operacija zbrajanja, oduzimanja i logičkih operacija zbrajanja, množenja, dispariteta i identičnosti.

Registar B- osmobitni registar koji se koristi tijekom operacija množenja i dijeljenja. Za ostale upute, može se tretirati kao dodatni registar u stvarnom vremenu.

Baterija- osmobitni registar dizajniran za primanje i pohranjivanje rezultata dobivenog prilikom izvođenja aritmetičko-logičkih operacija ili operacija pomaka

Serijsko sučelje i prekidna jedinica (SIP) dizajniran za organiziranje ulaza/izlaza sekvencijalnih tokova informacija i organiziranje sustava prekidanja programa. Blok uključuje:

  1. - PIP međuspremnik,
  2. - upravljačka logika,
  3. - kontrolni registar,
  4. - međuspremnik odašiljača,
  5. - međuspremnik prijemnika,
  6. - primopredajnik serijskog porta,
  7. - registar prioriteta prekida,
  8. - registar omogućenih prekida,
  9. - logika obrade zastavice prekida i sklop za generiranje vektora.

Programski brojač dizajniran za formiranje trenutne 16-bitne adrese unutarnje programske memorije i 8/16-bitne adrese vanjske programske memorije. Programski brojač uključuje 16-bitni PC međuspremnik, PC registar i sklop inkrementiranja (povećanje sadržaja za 1).

Memorija podataka (RAM) namijenjen je za privremenu pohranu informacija koje se koriste tijekom izvođenja programa.

Priključci P0, P1, P2, P3 su kvazi-dvosmjerni ulazno-izlazni priključci i dizajnirani su da osiguraju razmjenu informacija između računala i vanjskih uređaja, tvoreći 32 ulazno-izlazne linije.

Uređaj za mjerenje vremena Osnovni modeli obitelji imaju dva programabilna 16-bitna mjerača vremena/brojača (T/C0 i T/C1), koji se mogu koristiti i kao mjerači vremena i kao vanjski brojači događaja

Registar statusa programa (PSW) dizajniran za pohranu informacija o stanju ALU tijekom izvođenja programa.

Programska memorija (EPROM) dizajniran za pohranu programa i radi se o memoriji samo za čitanje (ROM). Različiti mikrosklopovi koriste maskirane ROM-ove koji se mogu izbrisati ultraljubičastim zračenjem ili BLJESAK ROM.

Registar pokazivača podataka (DPTR) dizajniran za pohranu 16-bitne adrese vanjske podatkovne memorije ili programske memorije.

Pokazivač snopa (SP) je osmobitni registar dizajniran za organiziranje posebnog memorijskog područja podataka (stog), u kojem se može privremeno pohraniti bilo koja memorijska ćelija.



Na početku proizvodnje mikrokontrolera nalazi se Intel s obiteljima osmobitnih mikrokontrolera 8048 i 8051. Arhitektura MCS-51 dobila je ime po prvom predstavniku ove obitelji - mikrokontroleru 8051, koji je pušten u prodaju 1980. godine i temelji se na HMOS tehnologiji. Uspješan set perifernih uređaja, mogućnost fleksibilnog odabira vanjske ili unutarnje programske memorije te pristupačna cijena osigurali su uspjeh ovog mikrokontrolera na tržištu. S tehnološkog aspekta, mikrokontroler 8051 bio je vrlo složen proizvod za svoje vrijeme - u kristalu je korišteno 128 tisuća tranzistora, što je bilo 4 puta više od broja tranzistora u 16-bitnom mikroprocesoru 8086.

Glavni elementi osnovne arhitekture su:
- 8-bitni ALU temeljen na baterijskoj arhitekturi;
- 4 banke registara, po 8 u svakoj;
- ugrađena programska memorija 4KB;
- interni RAM 128 bajtova;
- Booleov procesor
-2 šesnaestobitna mjerača vremena;
- kontroler serijskog kanala (UART);
- kontroler obrade prekida s dvije razine prioriteta;
- četiri 8-bitna I/O porta, od kojih se dva koriste kao adresna/podatkovna sabirnica za pristup vanjskoj programskoj i podatkovnoj memoriji;
- ugrađen generator takta.

Upravo je ovaj mikrokontroler najpoznatiji programerima i popularan je alat za upravljanje u širokom rasponu uređaja. Dostupni su mnogi emulatori, debuggeri i 8051 čip programeri, tako da je razvoj softvera povjetarac.

Sljedeći temeljni korak u razvoju MCS-51 bio je prijenos proizvodne tehnologije na CHMOS. To je omogućilo implementaciju načina mirovanja i isključivanja, što je dramatično smanjilo potrošnju energije kristala i utrlo put za korištenje mikrokontrolera u energetski ovisnim aplikacijama, na primjer, u samostalnim uređajima s baterijskim napajanjem.

I posljednja temeljna faza u razvoju ovog smjera od strane Intela u okviru 8-bitne arhitekture bilo je izdanje mikrokontrolera 8xC51FA/FB/FC, koji se radi kratkoće često nazivaju 8xC51FX. Glavna značajka razlikovanja ove skupine kristala je prisutnost programabilnog brojača (PCA). PCA blok dijagram prikazan je na slici 2.

PCA uključuje:

Brojač vremena opslužuje svih pet modula za uzorkovanje i usporedbu, koji se mogu programirati za obavljanje jedne od sljedećih funkcija:

16-bitno uzorkovanje vrijednosti timera na pozitivnom rubu vanjskog signala;
16-bitno uzorkovanje vrijednosti timera na negativnom rubu vanjskog signala;
16-bitno uzorkovanje vrijednosti timera na bilo kojem rubu vanjskog signala;
16-bitni softverski mjerač vremena;
16-bitni izlaz velike brzine (HSO);
8-bitni PWM

Sve gore navedene funkcije izvode se u PCA na hardverskoj razini i ne opterećuju središnji procesor, što omogućuje povećanje ukupne propusnost sustava, povećati točnost mjerenja i obrade signala te smanjiti vrijeme odziva mikrokontrolera na vanjske događaje, što je posebno važno za sustave u stvarnom vremenu. PCA implementiran u 8xC51FX pokazao se toliko uspješnim da je arhitektura FX mikrokontrolera postala de facto industrijski standard, a sam PCA je reproduciran mnogo puta u raznim modifikacijama mikrokontrolera različitih tvrtki.

U početku, većina "uskih grla" mjesta MCS arhitektura-51 je imao 8-bitnu baterijsku ALU i relativno sporo izvršavanje instrukcija (najbrže instrukcije zahtijevaju 12 ciklusa za izvršenje taktna frekvencija). To je ograničilo upotrebu mikrokontrolera iz obitelji u aplikacijama koje zahtijevaju povećanu brzinu i složene izračune (16- i 32-bitni). Aktuelno je postalo pitanje temeljne modernizacije stare arhitekture. Problem modernizacije bio je kompliciran činjenicom da je početkom 90-ih već stvoreno mnogo razvoja u području softvera i hardver, a jedan od glavnih zadataka u razvoju nove arhitekture bio je implementirati hardversku i softversku kompatibilnost sa starijim razvojem temeljenim na MCS-51. Za rješavanje ovog problema stvorena je zajednička skupina stručnjaka iz Intela i Philipsa. Kao rezultat toga, 1995. pojavile su se 2 značajno različite obitelji: MCS-251/151 od Intela i 51XA od Philipsa (o potonjem ćemo raspravljati u nastavku).

Glavne karakteristike arhitekture MSC-251:

24-bitni linearni adresni prostor koji adresira do 16M memorije(proizvedeni mikrokontroleri obitelji MCS-251 imaju memorijski adresni prostor od 256K);
Sustav naredbi obitelji mikrokontrolera MCS-251 sadrži svih 111 naredbi koje su uključene u sustav naredbi obitelji mikrokontrolera MCS-51 (“stare” naredbe), a uz to uključuje i 157 “novih” naredbi. Neki novi kodovi naredbi su u formatu od 4 bajta.
Prije korištenja mikrokontrolera potrebno ga je konfigurirati, tj. pomoću programatora "spržite" konfiguracijske bajtove koji određuju koji će od skupova instrukcija postati aktivan nakon uključivanja napajanja. Ako instalirate MCS-51 set instrukcija, tada će MSC-251 biti kompatibilan s MCS-51 na razini binarnog koda. Ovaj način rada naziva se binarni način rada. Međutim, proširene instrukcije u ovom načinu su također dostupne kroz "prozor" - rezervirani kod instrukcija 0A5h. Naravno, duljina svake proširene instrukcije se u ovom slučaju povećava za 1 bajt. Ako inicijalno instalirate skup proširenih uputa, tada će u ovom slučaju programi napisani za MCS-51 zahtijevati rekompilaciju pomoću unakrsnih alata za MCS-51, jer sada će standardne upute biti dostupne kroz isti "prozor" 0A5h i njihova će se duljina također povećati za 1 bajt. Ovaj način rada naziva se Izvorni način rada. Omogućuje vam korištenje proširenih uputa s maksimalnom učinkovitošću i postizanje najviših performansi, ali zahtijeva preradu softvera.
arhitektura registara, koja omogućuje pristup registrima kao bajtovima, riječima i dvostrukim riječima;
način adresiranja stranica za ubrzavanje dohvaćanja uputa iz vanjske programske memorije;
red instrukcija;
prošireni skup instrukcija, uključujući 16-bitne aritmetičke i logičke instrukcije;
prošireni adresni prostor steka do 64K;
izvođenje najbrže instrukcije u 2 takta;
Binarna kompatibilnost s programima za MCS-51.

Za korisnike usredotočene na korištenje MCS-251 mikrokontrolera kao mehaničke zamjene za MCS-51, Intel proizvodi MCS-251 mikrokontrolere s već programiranim konfiguracijskim bitovima u stanju binarnog načina rada. Takvi mikrokontroleri dobili su indeks MCS-151.

Osim samog Intela, Temic Semiconductors proizvodi MCS-251 mikrokontrolere po svojoj licenci.

Univerzalna serijska sabirnica (USB) proširuje plug-and-play tehnologiju na vanjske ulazno/izlazne uređaje koji se koriste na modernim osobnim računalima visokih performansi.

Kako bi se omogućilo povezivanje raznih perifernih uređaja, USB standard Definirana su četiri načina prijenosa: Kontrolni, Izokroni, Impulsni i nizovi prijenos. Svaki periferni uređaj mora podržavati način upravljanja za prijenos konfiguracijskih parametara, naredbi i informacija o statusu uređaja. Izokroni prijenos osigurava zajamčeni pristup sabirnici, stalnu propusnost i toleranciju na pogreške te se može koristiti u audioizlaznim uređajima i aplikacijama računalne telefonije. Prijenos impulsa namijenjen je ulaznim uređajima poput miša, joysticka ili tipkovnice koji prenose informacije rijetko iu malim obrocima, ali s ograničenim radnim vremenom. Skupni prijenos omogućuje uređajima kao što su skeneri, faks uređaji ili digitalne kamere da prenesu velike količine podataka na osobno računalo čim magistralni kanal postane dostupan.

Glavne značajke proizvoda

Potpuno kompatibilan s "Universal Serial Bus Specification 1.0"
Ugrađeni USB primopredajnik Serial Bus Interface Engine (SIE)
Četiri FIFO reda za prijenos
Tri 16-bajtna FIFO reda
Četiri FIFO reda čekanja
Tri 16-bajtna FIFO reda
Jedan konfigurabilni FIFO red (do 1024 bajta)
Automatska kontrola slanja/prijema u FIFO redovima čekanja
Zaustavi/nastavi operacije
Tri vektora prekida USB sabirnice
Ciklus zaključavanja faze
Brzine prijenosa podataka: 12 Mbit/s i 1,5 Mbit/s
Način sporog ciklusa
256 KB vanjski adresni prostor
Načini uštede energije: stanje pripravnosti i isključivanje
Korisnički definirani parametri
Čekanje u stvarnom vremenu
1 KB RAM memorija na čipu
Četiri I/O porta
Programabilni niz brojača (PCA)
Standardni (MCS 51) UART mikrokontroler
Hardverski nadzorni mjerač vremena
Tri 16-bitna mjerača vremena/brojača s fleksibilnim mogućnostima
Kompatibilan sa skupom uputa mikrokontrolera arhitekture MCS 51 i MCS 251
Arhitektura mikrokontrolera MCS 251 temeljena na registrima
Radna frekvencija 6 ili 12 MHz

Kontroler 8x930Hx ima dodatne značajke:

USB čvorište
Mogućnosti upravljanja USB čvorištem
Upravljanje vezom
Detekcija spajanja/prekida s izlaznim uređajem
Upravljanje napajanjem uključujući zaustavljanje/nastavljanje
Otkrivanje kvara sabirnice i oporavak
Podržava izlazne uređaje pune i niske brzine
Izlazni kontakt za napajanje priključka za prebacivanje
Ulazni kontakt za detekciju preopterećenja

Četiri različita načina USB prijenosa podataka omogućena su suradnjom tri elementa: Host, Hub, Functional Device. Host kontrolira prijenos sadržaja i kontrolnih informacija putem sabirnice. Funkcionalni uređaji proširuju host sustave. To uključuje tipične vrste rada s računalom: unos s tipkovnice ili joysticka, izlaz na monitor; kao i složenije djelatnosti poput digitalne telefonije i prijenosa slike. Mikrokontroler Intel 8x930Ax dizajniran je za upravljanje funkcionalnim uređajima. Konačno, čvorišta pružaju USB točku proširenja koja omogućuje pristup drugim funkcionalnim uređajima. Intel 8x930Hx mikrokontroler, koji kombinira funkcije upravljanja funkcionalnim uređajem i USB čvorištem, prvi je komercijalno dostupan USB čvorište dizajniran za periferne uređaje modernog računala.

USB čvorišta igraju značajnu ulogu u širenju svijeta korisnika osobnih računala. S pojavom perifernih uređaja - tipkovnica, monitora, pisača i drugih - opremljenih ugrađenim čvorištima, spajanje ili odspajanje novog uređaja jednostavno je poput uključivanja u utičnicu. Nova razina performanse i napredne metode USB veze mogao dovesti do nove generacije uređaja za rad i zabavu. Dani ugrađenih kartica, IRQ sukoba i zapetljanih žica su odbrojani.

USB kabel sabirnice sastoji se od samo četiri žice: Vbus, D+, D- i GND - što vezu čini jednostavnijom i ujednačenijom. Jedna standardna utičnica za spajanje perifernih uređaja na USB sabirnicu služi istoj svrsi. Podaci se prenose različito na D+ i D- kabelima: bilo punom brzinom od 12 Mbps, ili malom brzinom od 1,5 Mbps. Primopredajnik je ugrađen u čip, tako da nema potrebe za vanjskim elektroničkim sklopovima. Iznimka je terminalni otpornik opterećenja na D+ i D- vodovima, koji je neophodan za određivanje je li uređaj brzi ili spori.

Pregled obitelji
Obitelj Intel 8x930 sastoji se od dva kontrolera s jednim čipom.

Intel 8x930Ax kontroler je 8-bitni uređaj koji se temelji na MCS 251 mikrokontrolerskoj arhitekturi i dizajniran je za rad s perifernim uređajima spojenim na USB sabirnicu. S druge strane, 8x930Hx koristi istu jezgru mikrokontrolera MCS 251 plus poboljšane mogućnosti ugrađenog USB koncentratora sabirnice. Korištenje MCS 251 arhitekture u oba USB kontrolera sabirnice daje sljedeće prednosti:

Visoke performanse
Primjena mješovitih vrsta memorije i adresiranja
Mala potrošnja energije
Niska razina buke
Učinkovita podrška za jezike visoke razine
Prošireni skup naredbi
Ugrađene mogućnosti

8x930Ax kao upute može koristiti instrukcije iz seta mikrokontrolera MCS 51 i seta mikrokontrolera MCS 251. Ovaj pristup čuva korisnička ulaganja u softver i izvlači maksimalnu izvedbu iz aplikacija.

8x930 mikrokontroleri toliko su bogati raznim ugrađenim značajkama da izgledaju moćnije od samih mikrokontrolera. Programabilni niz brojača (PCA) pruža fleksibilnost za aplikacije koje zahtijevaju usporedbu ili snimanje podataka u stvarnom vremenu, komunikaciju velike brzine ili modulaciju širine pulsa. Dodatno, kontroler uključuje prošireni serijski port, tri 16-bitna mjerača vremena/brojača, hardverski nadzorni pas, četiri 8-bitna I/O porta i dva načina rada za uštedu energije: mirovanje i isključivanje.

Obitelj kontrolera 8x930Ax opremljena je s 1 KB memorije i može se koristiti u verzijama bez trajne memorije ili s 8 ili 16 KB trajne memorije. Mogu adresirati do 256 KB vanjske memorije za upute i podatke i 40 bajtova registara opće namjene, koji se nalaze u središnjem procesoru kao datoteka registra. Ovisno o korištenoj kombinaciji, registarska datoteka može sadržavati 16 bajtnih registara, 16 dvobajtnih registara i 10 četverobajtnih registara.

Upravljači pružaju fleksibilno sučelje s vanjskom memorijom. Za pristup uređajima sa sporom memorijom moguće je dodati tri ciklusa čekanja, a za generiranje više ciklusa moguć je poziv funkcije u stvarnom vremenu. Dohvaćanje vanjskih uputa može poboljšati izvedbu korištenjem straničnog načina, koji miješa podatke u visokom bajtu adrese.

Oba 8x930 kontrolera imaju osam FIFO redova za podršku unutarnji uređaji izlaz: četiri reda za prijenos i četiri reda za prijem. Četiri FIFO reda čekanja za prijenos/primanje podržavaju četiri krajnje funkcionalne jedinice (0 do 3). Red 0 sastoji se od 16 bajtova i namijenjen je prijenosu kontrolnih informacija. Red 1 može konfigurirati korisnik i ima kapacitet do 1024 bajta. Redovi 2 i 3 sastoje se od po 16 bajtova i mogu se koristiti za prijenos informacija u burst, isochronous i array načinima. Kada se koristi 8x930Hx kontroler, ovi redovi su pojačani parom FIFO redova za ulazne uređaje. Ove redove čekanja u 8x930Hx kontroleru podržava dodatni repetitor, koji je odgovoran za ponovni prijenos tokova podataka koje generiraju izlazni uređaji.

Pregled arhitekture
Strukturno USB implementacija Mikrokontroleri 8x930Ax i 8x930Hx mogu se podijeliti u četiri bloka: FIFO redovi, funkcionalni blok sučelja uređaja, blok sučelja serijske sabirnice i primopredajnik. Kontroler 8x930Hx ima dodatne blokove za upravljanje funkcijama huba: blok sučelja huba i repetitor.

FIFO redovi čekanja za prijem i prijenos na oba kontrolera su kružni. Redovi čekanja podržavaju do dva odvojena skupa podataka promjenjive veličine i sadrže registre brojača bajtova koji pokazuju broj bajtova u skupovima podataka. Redovi čekanja imaju zastavice koje pokazuju je li red čekanja pun ili prazan, a također mogu ponoviti prijem ili prijenos trenutnog skupa podataka. Jedinica sučelja funkcionalne jedinice (FUI) distribuira poslane ili primljene USB podatke prema vrsti prijenosa i stanju čekanja. Dodatno, FFU blok nadzire status transakcije, upravlja FIFO redovima čekanja i, koristeći zahtjev za prekidom, prijavljuje pojavu kontrolnih događaja središnjem procesoru 8x930.

Blok sučelja serijske sabirnice implementira protokol USB prijenos: sekvencijalno raspoređuje pakete, generira i prepoznaje signale, generira i provjerava kontrolne zbrojeve, kodira/dekodira podatke koristeći NRZI metodu, punjenje bitova, generira i prepoznaje identifikator paketa (PID).

Integrirani primopredajnik na USB mikrokontrolerima kompatibilan je s jednostavnim četverožičnim sučeljem definiranim specifikacijom USB 1.0. Obitelj kontrolera 8x930 ima tri prekida vezana uz USB. Javljaju se pri svakom početku okvira, kraju primanja/prijenosa podataka terminalnim funkcionalnim uređajima, u slučaju globalne obustave ili nastavka rada. U 8x930Hx hubu, jedinica sučelja huba koristi se za kontrolu i praćenje statusa veze izlaznih portova. Repetitor je odgovoran za distribuciju gore-dolje signala iz USB priključaka.

Arhitektura mikrokontrolera

Razumijevanje arhitekture mikrokontrolera ključno je pri učenju asemblerskih programskih jezika. Struktura asemblera, format njegovih instrukcija, adresiranje operanda itd. potpuno su određeni arhitekturom. Svrha studija arhitekture je:

· identificiranje skupa registara dostupnih za programiranje, njihovu funkcionalnost i strukturu;

· razumijevanje organizacije RAM-a i redoslijeda njegove uporabe;

· poznavanje tipova podataka;

· proučavanje formata strojnih naredbi;

· pojašnjenje organizacije rukovanja prekidima.

Arhitektura obitelji MCS-51 uvelike je određena njezinom namjenom – konstrukcijom kompaktnih i jeftinih digitalnih uređaja. Sve MK funkcije implementirane su pomoću jednog mikro kruga. Obitelj MCS-51 uključuje cijeli niz mikrokrugova od najjednostavnijih mikrokontrolera do prilično složenih. Mikrokontroleri obitelji MCS-51 omogućuju vam obavljanje zadataka upravljanja za različite uređaje i implementaciju pojedinačnih komponenti analognog kruga. Svi mikro krugovi ove obitelji rade s istim sustavom naredbi, većina ih je implementirana u istim paketima s istim pinoutom (numeriranje pinova za paket). To vam omogućuje korištenje mikrosklopova različitih proizvođača (kao što su Intel, Dallas, Atmel, Philips itd.) za razvijeni uređaj bez mijenjanja dijagrama sklopa uređaja i programa.

MCS-51 temelji se na Harvardskoj arhitekturi, gdje su adresni prostori programske i podatkovne memorije odvojeni.

Blok dijagram regulatora prikazan je na sl. 2.3 i sastoji se od sljedećih glavnih funkcionalnih jedinica: upravljačka jedinica, aritmetičko-logička jedinica, mjerač vremena/brojač, serijsko sučelje i prekidi, programski brojač (brojač programa), podatkovna memorija i program. memorija.

Dvosmjerna komunikacija provodi se pomoću interne 8-bitne sabirnice podataka. Pogledajmo pobliže svrhu svakog bloka. Gotovo svi članovi obitelji MCS-51 izgrađeni su prema ovoj shemi. Razni mikro krugovi ove obitelji razlikuju se samo u registrima posebne namjene (uključujući broj priključaka). Sustav naredbi svih kontrolera obitelji MCS-51 sadrži 111 osnovnih naredbi s formatom od 1, 2 ili 3 bajta i ne mijenja se pri prelasku s jednog čipa na drugi. To osigurava izvrsnu prenosivost programa s jednog čipa na drugi.

Jedinica za upravljanje i sinkronizaciju(Timing and Control) dizajniran je za generiranje sinkronizirajućih i upravljačkih signala koji osiguravaju koordinaciju zajedničkog rada glavnih računalnih jedinica u svim dopuštenim načinima njegovog rada. Upravljačka jedinica uključuje:


  • uređaj za formiranje vremenskih intervala,
  • kombinacijski ulazno-izlazni krug,
  • registar naredbi
  • dekoder naredbi.

Ulaz i izlaz signali jedinica za upravljanje i sinkronizaciju:

1 PSEN– razlučivost programske memorije;

2 PIVO– izlazni signal dozvole za fiksiranje adrese;

3 PROG– signal za programiranje;

4 E.A.– blokiranje rada s internom memorijom;

5 VPP– napon programiranja;

6 RST– opći signal resetiranja.

Uređaj za formiranje vremenskih intervala neophodan je za sinkronizaciju slijeda CPU stanja koja tvore strojni ciklus, kao i za pravilan rad sve unutarnje zasune i izlazne međuspremnike portova. Strojni ciklus sastoji se od šest uzastopnih stanja (stanja) od S1 do S6, od kojih je svako zauzvrat podijeljeno u dvije faze:

faza 1 (Faza 1 - P1) i faza 2 (Faza 2 - P2). Stoga se strojni ciklus može definirati kao niz vremenskih intervala S1P1, S1P2, S2P1,...,S6P2. Trajanje faze jednako je periodu impulsa takta, tako da strojni ciklus traje 12 perioda takta.

Broj ciklusa stroja određuje trajanje instrukcija. Gotovo sve instrukcije se izvršavaju u jednom ili dva strojna ciklusa, osim instrukcija množenja i dijeljenja, za čije izvršenje su potrebna četiri strojna ciklusa. I/O logika dizajnirana je za primanje i izlaz signala koji osiguravaju razmjenu informacija s vanjskim uređajima preko ulazno/izlaznih priključaka P0-P3.

Registar naredbi dizajniran za snimanje i pohranjivanje 8-bitnog operacijskog koda naredbe koja se izvršava. Operacijski kod se uz pomoć dekodera naredbi i računalne upravljačke logike pretvara u mikroprogram za izvršavanje naredbe.

Slika 2.3. Blok dijagram mikrokontrolera Intel 8051 s jednim čipom

(obitelj MCS-51)

Aritmetičko logička jedinica(ALU) je paralelna osmobitna jedinica koja izvodi aritmetičke i logičke operacije. ALU se sastoji od:

  • registri privremene pohrane - TMP1 i TMP2,
  • ROM konstante,
  • guja,
  • dodatni registar - registar B,
  • baterija - ACC,
  • registar riječi statusa programa (registar zastava) - PSW.

Registri privremene pohrane TMP1, TMP2- osmobitni registri dizajnirani za primanje i pohranjivanje operanda tijekom izvođenja operacija na njima. Ovi registri nisu programski dostupni.

Konstantan ROM osigurava generiranje korekcijskog koda za binarno decimalno predstavljanje podataka, koda maske za bitne operacije i konstantnog koda.

Paralelno osmobitno zbrajalo je sklop kombinacijskog tipa sa sekvencijalnim prijenosom, dizajniran za izvođenje aritmetičkih operacija zbrajanja, oduzimanja i logičkih operacija zbrajanja, množenja, dispariteta i identičnosti.

Registar B- osmobitni registar koji se koristi tijekom operacija množenja i dijeljenja. Za ostale upute, može se tretirati kao dodatni registar u stvarnom vremenu.

Baterija- osmobitni registar dizajniran za primanje i pohranjivanje rezultata dobivenog prilikom izvođenja aritmetičko-logičkih operacija ili operacija pomaka.

Registar statusa programa PSW (Riječ statusa programa) dizajniran za pohranjivanje riječi statusa izvršenih naredbi. Kada se mnoge instrukcije izvršavaju u ALU-u, generiraju se brojni atributi operacije (flagovi), koji se bilježe u registar statusne riječi programa (PSW). U tablici 1 daje popis PSW zastava, daje njihova simbolična imena i opisuje uvjete za njihovo formiranje.

Blok prekida i serijskog sučelja - UART (Univerzalni asinkroni prijemnik/odašiljač) dizajniran za organiziranje ulaza i izlaza sekvencijalnih tokova informacija i organiziranje sustava prekidanja programa.

Po definiciji, prekid znači privremeno zaustavljanje glavnog procesa računanja radi izvođenja neke planirane ili neplanirane radnje uzrokovane radom hardvera ili softvera.

Te radnje mogu biti servisne prirode, zahtjevi korisničkog programa za održavanje ili odgovor na hitne situacije.