Glavni tipovi mikrokontrolera i njihova arhitektura. Uvod

28.12.2023

Mikrokontroler- ovo je čitav mikroprocesorski sistem u jednom čipu (na jednom čipu). Ovaj čip je dizajniran za kontrolu svih vrsta elektroničkih uređaja i obavljanje mnogih funkcija. Interakcija između elektronskih uređaja odvija se u skladu sa programom ugrađenim u mikrokontroler.

Na našoj stranici najčešće ćemo govoriti o Arduino mikrokontroleru i njegovoj najnaprednijoj verziji u obliku Arduino Due.
Mikrokontroleri omogućavaju upravljanje raznim elektronskim i električni blokovi. Mikrokontroleri po pravilu ne rade sami, već su integrisani (proces spajanja delova u celinu) u kolo gde su povezani različiti periferni uređaji (monitori, tastature, razni senzori itd.).

Svjetska kola izumili su gotovo istovremeno Jack Kilby (Texas Instruments) i Robert Noyce (Fairchild Semiconductors) oko 1958. godine. Industrijska proizvodnja počela je tek početkom 70-ih godina. Prvi procesor (8080) izašao je 1974. godine. Izumljen je pod imenom Intel 4040 još 1969. godine, ali je u komercijalnu proizvodnju ušao tek 1974. godine.

Pojava mikroračunara sa jednim čipom povezana je sa početkom ere masovne primene kompjuterske automatizacije u oblasti upravljanja. Najvjerovatnije je ova okolnost definirala pojam "kontrolor" (engleski kontroler - regulator, kontrolni uređaj). Zbog naglog pada domaće proizvodnje i povećanja uvoza opreme, uključujući i računarsku opremu, termin „mikrokontroler” (MC) iz upotrebe je zamenio termin „mikroračunar sa jednim čipom”. Prvi patent za mikrokompjuter sa jednim čipom izdat je 1971. inženjerima Michaelu Cochranu i Garyju Booneu, zaposlenima američkog Texas Instrumentsa. Oni su osnivači ideje o postavljanju na jedan čip ne samo procesora, već i memorijskih i I/O uređaja. Godine 1976. američka kompanija Intel je objavila mikrokontroler i8048. 4 godine kasnije, 1980., Intel je objavio sljedeći mikrokontroler: i8051. Uspješan set perifernih uređaja, mogućnost fleksibilnog odabira eksterne ili interne programske memorije i pristupačna cijena osigurali su uspjeh ovog mikrokontrolera na tržištu. Sa tehnološke tačke gledišta, i8051 mikrokontroler je bio izuzetno složen proizvod za svoje vreme - u kristalu je korišćeno 128 hiljada tranzistora, što je 4 puta više od broja tranzistora u 16-bitnom i8086 mikroprocesoru.

Vrste mikrokontrolera

Uobičajeno, mikrokontroleri se mogu podijeliti u tri grupe: jednostavne, ugrađene i univerzalne.

Najjednostavniji mikrokontroleri se koriste u slučajevima kada visoke performanse nisu potrebne, ali je niska cijena važna.

Mikrokontroleri ugrađeni u uređaje i opremu su programirani za realizaciju visoko specijalizovanih zadataka.

Univerzalni mikrokontroleri su fokusirani na rješavanje brojnih problema u sistemima upravljanja, regulacije i nadzora.

Ako zamislite sve vrste savremeni mikrokontroleri, tada možete biti zadivljeni ogromnim brojem različitih uređaja ove klase koji su dostupni potrošaču. Međutim, svi ovi uređaji se mogu podijeliti u sljedeće glavne tipove:

ugrađeni (ugrađeni) 8-bitni mikrokontroleri,

16- i 32-bitni MCU-ovi,

digitalni signalni procesori (specijalizirani mikroprocesori dizajnirani za digitalna obrada signali).

Tipovi kućišta mikrokontrolera

DIP (Dual Inline Package) - kućište sa dva reda kontakata. Broj nogu u tijelu je od 8 do 56.

SOIC (Small Outline Integrated Circuit) - planarni mikro krug - noge su zalemljene na istoj strani gdje se nalazi tijelo. U ovom slučaju, mikrokolo leži s tijelom na ploči. Broj nogu i njihova numeracija su isti kao i za DIP.

PLCC (Plastic Leader Chip Carrier) - kvadratno kućište. Noge su smještene na sve četiri strane i imaju J-oblik.

TQFP (Thin Profile Quad Flat Package) - prosjek između SOIC-a i PLCC-a. Kvadratno kućište je debljine oko 1 mm, terminali se nalaze sa svih strana. Broj nogu je od 32 do 144.

Navodimo glavne komponente svakog mikrokontrolera:

Računska jedinica (aritmetičko-logička jedinica) -> ovaj minijaturni kompjuter je srce svakog mikrokontrolera. Naravno, računarski logički modul ugrađen u mali čip nije ni približno moćan kao njegov desktop kolega, ali mu nije potrebna sve te konjske snage. Dok desktop računar mora istovremeno obavljati nekoliko zadataka odjednom - traženje informacija na Internetu, izračunavanje proračunskih tablica i hvatanje virusa, tipičan mikrokontroler je obično dizajniran za rješavanje jednog zadatka.

Nestalna memorija -> Mikrokontroler uvijek ima nepromjenjivu memoriju u kojoj se pohranjuju programi. Ova memorija nastavlja pohranjivati ​​podatke čak i nakon što je napajanje isključeno. U trenutku kada se uključi baterija ili drugi izvor, podaci pohranjeni u mikrokontroleru ponovo postaju dostupni.

I/O portovi -> omogućavaju mikrokontroleru da komunicira sa spoljnim svetom.

Da bi se postigao viši nivo integracije (proces kombinovanja delova u celinu) i pouzdanosti, svi mikrokontroleri imaju ugrađene dodatnim uređajima. Ugrađeni uređaji povećavaju pouzdanost sistema jer ne zahtijevaju nikakva vanjska električna kola. Prethodno su testirani od strane proizvođača i oslobađaju prostor na ploči, budući da se sve spajaju električna kola izvršava se na čipu u mikrokontroleru. Najčešći ugrađeni uređaji uključuju memorijske uređaje i ulazno/izlazne (I/O) portove, komunikacione interfejse, tajmere i sistemske satove. Memorijski uređaji uključuju RAM(RAM), memorija samo za čitanje (ROM), programabilni ROM (EPROM), električni programabilni ROM (EEPROM). Tajmeri uključuju satove u realnom vremenu i tajmere prekida. I/O sadržaji uključuju serijski portovi komunikacije, paralelni portovi (I/O linije), analogno-digitalni pretvarači(A/D), digitalno analogni (D/A) pretvarači, drajveri za displej sa tečnim kristalima (LCD) ili drajveri za vakuum fluorescentni ekran (VFD). Ugrađeni uređaji imaju povećanu pouzdanost jer ne zahtijevaju nikakva vanjska električna kola.

ALU izvodi operacije nad brojevima i vraća rezultat operacije kao broj. Ovi brojevi su postavljeni registri opšte namene- neka vrsta privremene uspomene. Svaki mikrokontroler ima različit broj registara. Međutim, za normalan rad mikrokontroler sa registrima opšte namene nije dovoljan, jer je, na primer, 32 bajta veoma mala količina memorije. Da bi se moglo pohraniti više informacija, koristi se memorija sa slučajnim pristupom (RAM). Registri opšte namene sadrže podatke na kojima ALU radi trenutno, a RAM je ostalo. Naredbe, odnosno redoslijed naredbi koje ALU izvršava, pohranjene su u memorijski uređaj samo za čitanje (ROM). To je obično Flash memorija. Ovaj niz naredbi nije ništa drugo do program mikrokontrolera koji programer kreira. Sve komande se nalaze u ROM-u na određenim adresama. Da biste dobili naredbu iz ROM-a, morate pristupiti njegovoj adresi, što radi programski brojač ili programski brojač. Podaci iz ROM-a ulaze u registar komandi. ALU stalno „gleda“ sadržaj registra komandi i ako se u njemu pojavi komanda, ALU odmah počinje da je izvršava. Svi ovi uređaji mikrokontrolera bili bi beskorisni bez I/O portova preko kojih mikrokontroler komunicira sa vanjski svijet. I/O portovi se mogu konfigurirati da djeluju i kao ulazi i kao izlazi. Lukama se upravlja putem posebnih registara. Podrazumevano, svi portovi mikrokontrolera su konfigurisani kao izlazni.

Takođe treba napomenuti da je sav rad mikrokontrolera sinhronizovan sa generatorom takta, koji može biti interni ili eksterni. Brzina takta, tačnije brzina magistrale, određuje koliko se proračuna može izvesti u jedinici vremena.

Zbog činjenice da se mikrokontroler u suštini smatra malim računarom, njegove mogućnosti su nevjerovatno široke. Na primjer, mikrokontroleru se može povjeriti mjerenje različitih veličina, obrada različitih signala i upravljanje širokim spektrom različitih uređaja. Na mnogo načina, mogućnosti mikrokontrolera su ograničene samo maštom i sposobnošću rada s njima, ali oboje se može naučiti.

Da bi se programirao mikrokontroler, on mora biti povezan sa računarom, za šta se koristi poseban uređaj koji se zove programator. Uz njegovu pomoć, ostvaruje se odnos između mikrokontrolera i računara. Moglo bi se čak reći da je programer neka vrsta mosta. Na primjer, napišete program za mikrokontroler u programskom jeziku C, nakon čega kreirate datoteku firmvera i, koristeći program na svom računaru, flešujete svoj mikrokontroler ovim firmverom. Zapravo, sve je prilično jednostavno i, po želji, prilično lako za naučiti!

Uređaj baziran na mikrokontroleru možete sastaviti bilo na vlastitoj ploči, na matičnoj ploči ili čak metodom površinske montaže, ovisno o tome što vam je pogodnije i složenosti predviđenog uređaja.

Ako ste zainteresovani za mikrokontrolere, onda se ne plašite poteškoća u učenju programskog jezika C za mikrokontrolere.

Termin kontrolor je izveden od engleske riječi “to control” – upravljati. Ovi uređaji mogu biti zasnovani na različitim principima rada, od mehaničkih ili optičkih uređaja do elektronskih analognih ili digitalnih uređaja. Mehanički upravljački uređaji imaju nisku pouzdanost i visoku cijenu u odnosu na elektronske upravljačke jedinice, tako da takve uređaje nećemo razmatrati u budućnosti. Elektronski analogni uređaji zahtijevaju stalno prilagođavanje tokom rada, što povećava troškove njihovog rada. Stoga se takvi uređaji danas gotovo nikada ne koriste. Najčešća upravljačka kola danas su ona bazirana na digitalnim mikro krugovima.

Ovisno o cijeni i dimenzijama uređaja koji treba kontrolisati, određuju se zahtjevi za regulatorom. Ako kontrolni objekat zauzima desetine metara u površini, kao što su automatske telefonske centrale, bazne stanice ćelijskih sistema komunikacionih ili radio relejnih komunikacionih linija, tada se kao kontroleri mogu koristiti univerzalni računari. U ovom slučaju, kontrola se može vršiti preko ugrađenih portova računara (LPT, COM, USB ili ETHERNET). Kada se napajanje uključi, takvi računari se učitavaju sa kontrolnim programom, koji pretvara univerzalni računar u kontroler.

Korištenje univerzalnog računala kao kontrolera omogućava vam da u najkraćem mogućem roku razvijete nove komunikacijske sustave, lako ih modernizirate (jednostavnom promjenom programa) i koristite gotove masovno proizvedene (i stoga jeftine) blokove.

Ako se na kontroler postavljaju posebni zahtjevi, kao što su rad u uslovima tresanja, prošireni temperaturni raspon ili izloženost agresivnom okruženju, onda je neophodno koristiti industrijske verzije univerzalnih računara. Naravno, ovi računari su mnogo skuplji od konvencionalnih univerzalnih računara, ali i dalje vam omogućavaju da uštedite vreme razvoja sistema zbog činjenice da nema potrebe za razvojem hardvera kontrolera.

Kontroleri su potrebni ne samo za veliki sistemi, ali i za male uređaje kao što su radio, radio stanice, kasetofoni ili mobilni uređaji. Kod ovakvih uređaja regulatorima se postavljaju strogi zahtjevi u pogledu cijene, dimenzija i temperaturnog raspona rada. Čak i industrijske verzije univerzalnog računara ne mogu zadovoljiti ove zahtjeve. Moramo razviti kontrolere zasnovane na računarima sa jednim čipom, koji se zauzvrat nazivaju mikrokontroleri.

Svaki uređaj, uključujući komunikacijske uređaje, radio automatizaciju ili audiovizuelnu opremu, zahtijeva prisustvo kontrolnog uređaja (kontrolera). Kontrolori su potrebni u gotovo svim objektima i uređajima koji nas okružuju. Kao primjer, slika 1 prikazuje komponente automobila koje koriste mikrokontrolere.


Slika 1 Komponente automobila koje koriste mikrokontrolere

Izgled automobila i nosivog radija, koji takođe koriste mikrokontrolerske čipove, prikazan je na slici 2 i slici 3.



Slika 2. Radio stanica male veličine koja koristi mikrokontrolere

Slika 3. Radio stanica male veličine koja koristi mikrokontrolere

Kako iznutra izgleda nosiva radio stanica prikazano je na fotografiji prikazanoj na slici 4.



Slika 4. PCB prijenosni radio primopredajnik.

Najčešći mikrokontroleri trenutno su porodica
http://site/dsp/DSP/

Mikrokontroleri se danas koriste gotovo svuda: u modernim monitorima, frižiderima, tabletima, sigurnosnim sistemima, mašine za pranje veša itd. U svakom elektroničkom uređaju koji zahtijeva kontrolu, mikrokontroler može zauzeti svoju nišu. I sve zahvaljujući činjenici da se može programirati gotovo kako želite. Stoga se čak i jedan tip mikrokola može koristiti u raznim elektroničkim uređajima.

Unatoč složenosti dizajna modernog mikrokontrolera, možete reći kako funkcionira u samo jednoj rečenici: „Programski kod se jednostavno upisuje u memoriju mikrokontrolera, MK čita naredbe iz ovog programa, a zatim ih jednostavno izvršava, ” - to je cijeli princip rada.


Naravno, mikrokontroler nije u stanju da izvršava nijednu komandu, već samo one za koje je dizajniran ( osnovni set komandi), on ih razumije i zna kako ih svari. Kombinovanjem komandi možete napisati skoro svaki program sa kojim elektronski uređaj radiće tačno onako kako oni žele.

Neki MK-ovi mogu imati ogroman broj osnovne komande, drugi mnogo manje. Ovo je uslovna podjela za koju mislioci koriste dva termina: CISC i RISC. CISC je mnogo različite vrste komande, RISC - ovo su samo najpotrebnije.

Većina MK radije se moli RISC bogu. To se objašnjava činjenicom da je kada se koristi smanjeni skup naredbi, MK-ovi mnogo lakši i jeftiniji za proizvodnju, osim toga, lakše ih je probaviti programerima hardvera, posebno čajnicima. Postoje mnoge razlike između CISC-a i RISC-a, ali jedina stvar koja je fundamentalno važna da bi čajnik shvatio je da CISC ima mnogo komandi, a RISC malo. Pogledaćemo dublje malo kasnije, kada ne budeš tako zelen.

Zamislimo idealan slučaj: imamo MK i programski kod je već upisan u njegovu memoriju. Ili, kako obično kažu paprike s velikim ušima, mikrokontroler je “firmware” (u ovom slučaju programski kod se zove “firmware”).

Šta će se dogoditi ako priključite struju na kolo s ovim MK? Ispada da se ništa posebno neće dogoditi, MK će se samo ljubazno raspitati šta mu je u sjećanju. Istovremeno, on će lako pronaći prvu komandu svog programa, jer je lokacija početka programskog koda zašivena tokom proizvodnje MK-a u fabrici i nikada se ne menja. Čip čita prvu komandu, zatim je izvršava, zatim čita drugu komandu i ponovo je izvršava, zatim treću, itd. Kada MK prebroji zadnju komandu, onda će sve početi iznova, pod uslovom da nije zaustavljeno. Tako to funkcionira.

Također možete pokušati naučiti kako kreirati uređaje kojima upravlja mikrokontroler. Ali to će zahtijevati malo vašeg ličnog vremena, želje, pa čak i lave. Ali onda ga definitivno možete vratiti.

Struktura tipične MK

Svaki MK, kao i svaki mikroprocesorski sistem, zasniva se na tri stuba:

Procesor (ALU + kontrolna jedinica)
Memorija (RAM, ROM, FLASH)
I/O portovi.

Procesor, koristeći I/O portove, prima ili šalje različite podatke u obliku brojeva i na njima vrši obradu. aritmetičke operacije a zatim ih sprema u memoriju. Razmjena podataka između procesora, memorije i portova odvija se putem žica koje se u digitalnoj elektronici obično nazivaju magistrala (sabirnice se dijele na nekoliko tipova prema namjeni). Ovo je opšta ideja kako mikroprocesorski sistem funkcioniše.


Fizička struktura mikrokontrolera različitih serija može biti prilično različita, ali zajednička baza oni će biti slični i sastojat će se od sljedećih blokova: RAM, ROM, ALU, tajmeri, I/O portovi, registri, brojači.

ROM Memorija samo za čitanje ili memorija samo za čitanje. Sve što je zapisano u ROM-u ostaje u njemu i nakon isključivanja napajanja.
RAM Memorija sa slučajnim pristupom je radna memorija MK-a. U njemu se pohranjuju svi međurezultati izvršavanja programskog koda ili podaci sa eksternih senzora.
ALU MK-ov mozak. On je taj koji oduzima, sabira, množi, a ponekad i dijeli, upoređuje jedinice i nule tokom izvršavanja programa.
I/O portovi Ulazni i izlazni portovi: Uređaji preko kojih MK komunicira sa vanjskim svijetom sa vanjskim svijetom. Naš MK mora komunicirati sa vanjskim svijetom. Zahvaljujući portovima možemo slati signale sa senzora, tastatura itd. do mikrokontrolera. I nakon obrade takvih signala, MK će poslati svoj odgovor preko ovih uređaja, pomoću kojih možete podesiti svjetlinu lampe ili brzinu rotacije motora.
Tajmeri Broji intervale, izdaje okidač, itd.
Counters Neophodan kada treba nešto da izračunate.
Svaki registar je minijaturna memorijska ćelija. A obično ih u MK ima samo nekoliko desetina.

Kao što već znate iz osnovnog kursa digitalna elektronika, sve informacije u digitalnom svijetu predstavljene su u obliku binarnih brojeva, koji se zapisuju pomoću samo dvije cifre: “nula” i “jedan” u binarni sistem Računanje. Broj tri u nama poznatom decimalnom sistemu biće „11“ u binarnom, tj. 3 10 = 11 2. Subskriptovi označavaju sistem brojeva. Jedna cifra u binarnom broju naziva se cifra. Činovi imaju staž. Krajnja desna znamenka se naziva najmanje značajnom, a krajnja lijeva, odnosno najvišom. Redoslijed ranga raste s desna na lijevo:


Kada mikrokontroler radi, "u njemu se vrte isti binarni brojevi." Oni se kreću od procesora do memorije i nazad, kao i do ulazno/izlaznih uređaja (I/O). Brojevi se kreću duž žica (u MK-u su skriveni unutar mikrokola). Svaki takav dirigent u nekom određeno programom tačka u vremenu može prenijeti samo jedan bit sa vrijednošću "0" ili "1". Stoga, za prijenos 8-bitnog broja iz procesora u memoriju i natrag, trebat će vam najmanje 8 takvih vodiča.

Nekoliko takvih kombiniranih žica naziva se sabirnica. Gume dolaze u nekoliko vrsta:

Address bus
Sabirnica podataka
Kontrolna sabirnica

Duž adresne adrese se kreću brojevi koji određuju adresu memorijske ćelije ili vazdušnog uređaja sa kojeg je potrebno primati ili pisati podatke. I sami podaci će već teći duž magistrale podataka.

Širina adresne magistrale utiče na broj adresa koje se mogu proći kroz nju. Recimo da je u 4-bitnom sistemu to 2 4 = 16 adresa, u 64-bitnom sistemu će broj adresa već biti 2 64 = 18446744073709551616, tj. što je dubina bita adresne magistrale veća, to je veća količinu memorije i više etera možete koristiti, sa kojima možete raditi MK. Ovo je veoma važna tačka.

Širina magistrale podataka utiče na to koliko podataka procesor može pročitati u jednom trenutku. Što je dubina bita veća, to se više podataka može pročitati u jednom trenutku. Širina magistrale podataka je u potpunosti određena dizajnom određenog MK-a. Ali to će uvijek biti višestruko od osam. To se objašnjava činjenicom da je u gotovo svim memorijskim uređajima minimalna jedinica informacije bajt, tj. običan binarni broj od osam cifara.

Bajt je potreban da bi se označila količina informacija. Ako broj cifara govori samo o dužini binarni broj, tada će vam dubina bita reći o količini informacija koju ovaj broj prenosi. Vjeruje se da jedna znamenka binarnog broja može prenijeti jedan bit informacije. U ovom slučaju, bitovi se grupišu u bajtove, kilobajte, megabajte itd.

Usput, za razliku od uobičajenog sistema brojeva, 1 bajt = 8 bita, 1 kilobajt = 1024 bajta, 1 megabajt = 1024 kilobajta, itd. Zašto 1024? Vi pitate. Da, jer je veličina memorije višestruka stepena dvojke: tj. 2 3 = 8, 2 10 = 1024.

Pogledajmo bliže trenutak interakcije između memorije i MK-a i pokušajmo razumjeti zašto je potrebna upravljačka magistrala. Bilo koji mikrokontroler pored izvođenja aritmetike i logičke operacije sposoban za izvođenje nekoliko važnijih naredbi, kao što su: čitanje ili pisanje iz memorijske ćelije, čitanje ili pisanje na I/O port:

Da bi se mikrokontroleru rekao koja od ovih komandi treba da se izvrši, potrebna je kontrolna magistrala. Signali ga prate do memorije ili I/O portova:

Ako MK treba pristupiti memoriji, postavlja MREQ signal na kontrolnu magistralu, a istovremeno se postavlja RD/WR signal. Ako MK upisuje u memoriju, tada se postavlja WR signal, ako čita, onda RD. Ista stvar će se desiti kada MK kontaktira protivvazdušnu odbranu.

Ali signal READY je neophodan kako bi se mikrokontroleru rekao da je čitanje ili pisanje završeno.

Dakle, ako dovedete napon napajanja na MK, on ​​postavlja signal na kontrolnu sabirnicu MREQ, RD, a na adresnu sabirnicu - adresu na kojoj je prva komanda njegovog algoritma (programski kod, obično nulta memorijska adresa) treba biti u memorijskoj ćeliji. Zatim ga MK izvršava i, ovisno o upravljačkim komandama, podaci i signali koji odgovaraju programu će se pojaviti na upravljačkoj, adresnoj i podatkovnoj sabirnici.

AVR MK-ovi su stekli ogromnu popularnost u radioamaterskoj zajednici, privlačeći inženjere elektronike sa takvim pokazateljima kao što su cijena, energetska efikasnost i performanse. Osim toga, ogromna prednost su praktični načini programiranja, besplatna dostupnost softver podrška i širok izbor MK. Ova Atmel serija se koristi u automobilskoj i potrošačkoj elektronici, mrežne kartice I matične ploče kompjuteri i laptopi, pametni telefoni i tableti.

Jedna od prvih kompanija za proizvodnju veliki svijet mikrokontrolere bazirane na ARM Cortex-M3 jezgri proizvodi STMicroelectronics. Sve je počelo ne tako davne 2007. godine pojavom dvije porodice - “Performance Line” (STM32F103) i “Access Line” (STM32F101). Trenutno, STM32 MCU su predstavljeni sa deset glavnih linija za različite zadatke. Njihove glavne prednosti su “pin-to-pin” i kompletne kompatibilnost softvera po svim mogućim linijama. I sve ovo stane na ARM Cortex-M3 jezgru. Pogledajmo osnovne alate kako biste mogli početi raditi sa STM32 MK.

Pretpostavimo da vam je dat zadatak - da LED lampica treperi.
Razgovarajmo o tome kako riješiti ovaj problem:

Opcija 1 je najjednostavnija, uzmite prekidač/dugme, postavite slavea pored njega, koji će uključiti/isključiti LED pomoću prekidača. Obično se u Rusiji većina problema rješava na ovaj način. A šta treperi?)))
Opcija 2 - sastavite multivibrator. Već zanimljivije. Za treptanje je sasvim dovoljna jedna LED dioda dobra odluka. Štaviše, jednostavan je, jeftin i pouzdan.
Opcija 3 - sastaviti na mikrokontroleru. Skuplje od sklapanja multivibratora, ali po mom mišljenju lakše. Napisao sam program, pokrenuo ga i dobio rezultat. Nema podešavanja. Naravno, ovo je idealan slučaj.

Sada zakomplikujmo zadatak. Na primjer, 5 LED dioda i 5 opcija za njihovo treptanje (brzina i redoslijed njihovog treptanja se mijenja). Prva opcija odmah nestaje, metoda 2 se može učiniti, ali će se veličina uređaja naglo povećati. Opcija 3 će ostati približno iste veličine, samo dodajte nekoliko linija koda. Dakle, postoje različiti slučajevi u kojima je nemoguće bez mikrokontrolera, a gdje je on suvišan. Stoga uvijek procijenite troškove rada, vremena i finansijske troškove.

Dakle, mikrokontroler nam omogućava fleksibilno upravljanje sistemima, procesima itd., malih je dimenzija, a po funkcionalnosti je miniračunar. Mikrokontrolere proizvode različite kompanije. Jedna od varijanti AVR mikrokontrolera iz Atmela. Zašto oni? Prilično ih je lako pronaći u trgovini, lako je pronaći primjere gotovog koda, ugrađena funkcionalnost vam omogućava da riješite čak i složene probleme.

Da bi mikrokontroler shvatio šta želimo od njega, moramo u njega učitati firmver - niz radnji koje treba da izvrši. Firmware je niz jedinica i nula. Da bi bilo praktičnije, izmišljeni su programski jezici. Na primjer, pišemo uključiti, a sam kompajler to pretvara u niz jedinica i nula koji je razumljiv mikrokontroleru. Slika prikazuje HEX firmver ako ga otvorite pomoću notepada.

Mikrokontroleri su obično programirani u C ili asembler jeziku. Uglavnom, nema razlike u tome na čemu pisati. Zbog velikog broja gotovi primjeri, odlučio sam se u korist C. Osim toga, postoji nekoliko programa koji vam omogućavaju pisanje na C. Na primjer, besplatan, vlasnički AVR Studio, CodeVision, WinAVR, itd. Uprkos činjenici da pišem u CodeVision-u, vrlo aktivno koristim AVR Studio kao debugger.

Nadam se da vam je barem nešto od ovoga postalo jasno. Po mom mišljenju, najteže je napraviti prvi korak. Onaj ko to uradi, pobedi svoj strah i svoju lenjost, sigurno će postići rezultate. Sretno u učenju mikrokontrolera.

Ako zamislite sve vrste modernih mikrokontrolera (MCU), bićete zapanjeni ogromnim brojem različitih uređaja ove klase koji su dostupni potrošaču. Međutim, svi ovi priori mogu se podijeliti u sljedeće glavne vrste:

  • Ugrađeni 8-bitni mikrokontroleri;
  • 16- i 32-bitni MCU;
  • Procesori digitalnih signala.

Industrija proizvodi veoma širok spektar ugrađenih mikrokontrolera. U njima se svi potrebni resursi (memorija, ulazno/izlazni uređaji itd.) nalaze na istom čipu sa jezgrom procesora. Ako na odgovarajuće ulaze MK-a napajate impulse napajanja i takta, onda možemo reći da će "oživjeti" i da možete raditi s njim. Tipično, mikrokontroleri sadrže značajan broj pomoćnih uređaja, što osigurava njihovo uključivanje u pravi sistem koristeći minimalan broj dodatnih komponenti. Ovi MK-ovi uključuju:

  • Početni krug pokretanja procesora (Reset);
  • Clock generator;
  • CPU;
  • Programska memorija (E(E)PROM) i softverski interfejs;
  • Objekti za unos/izlaz podataka;
  • Tajmeri koji bilježe broj komandnih ciklusa.

Opšta struktura MC je prikazana na Sl. 1.1. Ova struktura daje ideju o tome kako MI komunicira sa vanjskim svijetom.


Složeniji ugrađeni mikrokontroleri mogu dodatno implementirati sljedeće mogućnosti:

  • Ugrađeni programski monitor/debuger;
  • Alati za programiranje interne programske memorije (ROM);
  • Rukovanje prekidima iz različitih izvora;
  • Analog I/O;
  • Serijski I/O (sinhroni i asinhroni);
  • Paralelni ulaz/izlaz (uključujući interfejs sa računarom);
  • Povezivanje eksterne memorije (mikroprocesorski režim).

Sve ove karakteristike značajno povećavaju fleksibilnost korištenja MK-a i čine ga većim jednostavan proces razvoj sistema na i zasnovanih na.
Neki MCU (posebno 16- i 32-bitni) koriste samo vanjsku memoriju, koja uključuje i programsku memoriju (ROM) i određenu količinu memorije podataka (RAM) potrebne za aplikaciju. Koriste se u sistemima gdje je potrebna velika količina memorije, a relativno malo veliki broj ulazno/izlazni uređaji (portovi). Tipičan primjer Upotreba takvog MK-a sa eksternom memorijom je kontroler hard disk(HDD) sa bafer keš memorijom, koja omogućava posredno skladištenje i distribuciju velikih količina podataka (reda nekoliko megabajta). Eksterna memorija omogućava takvom mikrokontroleru da radi sa više velike brzine nego ugrađeni mikrokontroler.
Procesori digitalnih signala (DSP) su relativno nova kategorija procesora. Svrha DSP-a je da prima trenutne podatke iz analognog sistema, obrađuje podatke i generiše odgovarajući odgovor u realnom vremenu. Obično su uključeni u sisteme, koriste se kao upravljački uređaji za vanjsku opremu i nisu namijenjeni za samostalnu upotrebu.

Komandni sistem

U zavisnosti od broja operativnih kodova koji se koriste, MK komandni sistemi se mogu podeliti u dve grupe: CISC i RISC. Termin CISC je skraćenica za Complex Istruction Set Computer i skraćenica je za englesku definiciju Complex Instruction Set Computer. Slično, izraz RISC znači smanjeni skup instrukcija i dolazi od engleskog Reduce Instruction Set Computer. Komandni sistem MK 8051 se može klasifikovati kao CISC tip. Međutim, uprkos širokoj upotrebi ovih koncepata, mora se priznati da sami nazivi ne odražavaju glavnu razliku između CISC i RISC sistema instrukcija. Glavna ideja RISC arhitekture je pažljiv odabir takvih kombinacija kodova operacija koje bi se mogle izvršiti u jednom ciklusu takta generatora takta. Glavna prednost ovog pristupa je dramatično pojednostavljenje hardverske implementacije CPU-a i mogućnost značajnog povećanja njegovih performansi.
Očigledno, općenito, jedna CISC naredba odgovara nekoliko RISC naredbi. Međutim, obično dobici u performansama od RISC-a nadmašuju gubitke od manje efikasnog skupa instrukcija, što dovodi do toga da su RISC sistemi sveukupno efikasniji od CISC sistema.
Međutim, danas se granica između CISC i RISC arhitekture brzo zamagljuje. Na primjer, MCU-ovi Atmel AVR porodice imaju komandni sistem od 120 instrukcija, što odgovara CISC tipu. Međutim, većina njih se izvršava u jednom taktu, što je obeležje RISC arhitekture. Danas je opšte prihvaćeno da je znak RISC arhitekture izvršavanje instrukcija u jednom taktu generatora takta. Broj timova sam po sebi više nije bitan.

Tipovi MK memorije

Postoje tri glavne vrste memorije koje se koriste u MK:
A) programska memorija;
b) memorija podataka;
V) MK registri.
Programska memorija je trajna memorija dizajnirana za pohranjivanje programskog koda i konstanti. Ova memorija ne mijenja sadržaj tokom izvršavanja programa.
Memorija podataka dizajniran za skladištenje varijabli tokom izvršavanja programa .
MK registri– ova vrsta memorije uključuje interne procesorske registre i registre koji se koriste za kontrolu perifernih uređaja.
Programi se obično pohranjuju u jednu od sljedećih vrsta memorije samo za čitanje: ROM (maskirani ROM), PROM (programabilni jednokratni ROM), EPROM (električno programabilni ROM sa ultraljubičastim brisanjem) ili EEPROM (električno upisivanje-brisanje ROM, ovo tip uključuje i moderna mikrokola Flash memorija). Sve ove vrste memorije su nepostojane - to znači da se sadržaj memorije zadržava nakon što se MK isključi.
ROM-ovi koji se mogu više puta programirati - EPROM i EEPROM (Electrically Erasable Programmable Memory) dijele se na ROM-ove sa mogućnosti brisanja ultraljubičastim (UV) zračenjem (dostupni u paketima sa prozorom), odnosno MK-ove sa električno reprogramabilnom memorijom.
Trenutno, protokoli za programiranje moderne EEPROM memorije omogućavaju programiranje MK-a direktno kao dijela sistema u kojem radi. Ova metoda programiranja se naziva ISP (In System Programming). A sada možete povremeno ažurirati softver MK bez uklanjanja sa ploče. Ovo daje ogromnu korist u početnim fazama razvoja sistema baziranih na MK ili u procesu njihovog proučavanja, kada se dosta vremena troši na uzastopno traženje uzroka neoperabilnosti sistema i izvođenje narednih ciklusa brisanja i programiranja programske memorije.
Funkcionalno, Flash memorija se malo razlikuje od EEPROM-a. Glavna razlika je mogućnost brisanja snimljenih informacija. U EEPROM memoriji brisanje se vrši zasebno za svaku ćeliju, a u Flash memoriji brisanje se vrši u cijelim blokovima.
RAM(RAM) je memorijski uređaj sa slučajnim pristupom koji se koristi za pohranjivanje podataka. Ova memorija se naziva i memorija podataka. Broj ciklusa čitanja i pisanja u RAM je neograničen, ali kada se napajanje isključi, sve informacije se gube.