univerzitet u niŠues.elfak.ni.ac.rs/files/mmiljkovic-jjovanovic-mreza tipa... · web view- ovde...

94
UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET KATEDRA ZA ELEKTRONIKU Mreža tipa TOKEN RING realizovana pomoću mikrokontrolera AT89S8253

Upload: others

Post on 07-Mar-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET KATEDRA ZA ELEKTRONIKU

Mreža tipa TOKEN RING realizovana pomoću mikrokontrolera

AT89S8253

Studenti:

Mladen Miljković 11218 Jovica Jovanović 11173

Page 2: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

SADRŽAJ

Prenos podataka 3 Uporedne karakteristike paralelnog i serijskog prenosa 3 Lokalne računarske mreže 5 Standardi i topologije kod LAN-ova 6 Mreža tipa Token Ring 6

Mikrokontroler AT89S8253 11 Unutrašnja struktura mikrokontrolera. 11 Redukovani režim napajanja 16 Programska memorija 16 Memorija podataka 18 Programski statusni registar 22 Taktovanje mikroprocesora 23 Mašinski ciklusi 24 Brojači/Tajmeri 24 Opis prekida kod mikrokontrolera 29 Načini programiranja 40

Projekat 41 Električna šema 41 Softversko rešenje 45 Format poruke 45 Adresa primaoca 45 Adresa pošiljaoca 45 Poruka 46

Kod 47 Refinisanje funkcija i promenljivih 50 Hardverski zahtevi 51 Inicijalizacija tajmera 51 Obrada prekida tajmera T1, i definisanje paljenja dioda 51 Resetovanje RAM-a 52 Startna sekvenca 53 Adresiranje kontrolera i puštanje tokena na mrežu 53 Inicijalizacija displeja 54 Prikazivanje poruka 55 Tabele za prikaz tekstova 56 Obrada serijskog prekida 56

Glavni program 60 Ispis na LCD-u dok se menjaju parametri 62 Izvršenje komandi 64 Pot. Prog. za postavljanje reda i karaktera na LCD-u 66

Page 3: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

Programiranje mikrokontrolera AT89S8253 67 ISP prog 1.3 68 Literatura 73

1. PRENOS PODATAKA

Page 4: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

Prenos podataka predstavlja prenošenje kôdirane informacije kroz prenosni medijum (kabl, magistralu itd.) Prema načinu prenosa podataka između dva sistema (integrisana kola, računara, terminala itd.) razlikuju se dva tipa prenosa:

Paralelni: prenos n bitova (n = 8, 16, 32, 64) vrši se istovremeno (ovakav prenos se tipično ostvaruje preko sistemske ili neke druge magistrale u mikroprocesorskom sistemu);

Serijski: prenos podataka vrši se preko jedinstvene linije (provodnika, voda, žice).

1.1. Uporedne karakteristike paralelnog i serijskog prenosa

Na Slici 1.1 i Slici 1.2 ilustrovani su paralelni i serijski prenos, respektivno. Paralelni prenos podataka je brži od serijskog, ali je znatno skuplji – jer zahteva veći broj veza (vodova ili kanala za prenos). Serijski prenos je pouzdaniji, iz razloga što se prekid ili greška u prenosu uvek mogu lako detektovati. Isto tako, kod serijskog prenosa su protokoli (skup pravila za razmenu podataka između dva sistema) daleko bolje definisani (postoje međunarodni standardi i norme za prenos). Kod paralelnog prenosa, zbog različitih formata paralelnih podataka, to nije slučaj.

Slika 1.1. Ilustracija paralelnog prenosa (n=8)

Page 5: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

Slika 1.2. Ilustracija serijskog prenosa

Imajući sve ovo u vidu, paralelni prenos podataka se daleko više koristi kada se prenose podaci na kraćim rastojanjima: interno, unutar mikroprocesorskog sistema (komunikacija između mikroprocesora i memorije, UART-a, A/D konvertora itd.) i eksterno, do nekoliko metara, u okviru računarskog okruženja (npr. komunikacija između računara i štampača preko paralelnog porta).

Kada su u pitanju rastojanja veća od reda nekoliko metara, serijski prenos podataka je neizbežan.

Kod serijskog prenosa podaci se prenose bit po bit. Serijski prenos može da se ostvari preko jednog provodnika (žice). Međutim, potrebne su najmanje dve linije (provodnika, žice) za serijsku komunikaciju: jedna za podatke i druga, tzv. masa – da bi se zatvorilo strujno kolo između dva sistema koji serijski komuniciraju. Naravno, moguće je ostvariti i tzv. diferencijalni serijski prenos kod koga su nivoi logičke 0 i logičke 1 definisani razlikom potencijala između dva signala koji se prenose. Takav je slučaj kominikacije kod USB porta.

Ovde će biti navedeni neki od standarda za serijsku komunikaciju:

RS232 (nebalansirani, 1 drajver – 1 pijemnik, za rastojanja do 30m);

RS422 (nebalansirani, 1 drajver – 10 pijemnika, za rastojanja do 1200m);

RS423 (diferencijalni, 1 drajver – 10 pijemnika, za rastojanja do 1200m);

RS485 (diferencijalni, 32 drajvera – 32 pijemnika, za rastojanja do 1200m).

1.2. Lokalne računarske mreže

Pojavom na tržištu jeftinih i moćnih mikroprocesora, sve više postoji izražena tendencija da se umesto velikih centralizovanih računara koriste mali decentralizovani. Sa

Page 6: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

druge strane, sve češće korišćenje malih autonomnih mašina nameće potrebu za njihovim medjusobnim povezivanjem. Danas, računarskim mrežama ostvaruje se medjusobno povezivanje kako različitih računara tako i perifernih uredjaja (kakvi su štampači, uredjaji za masovno memorisanje). Ovim se obezbedjuje nesmetano korišćenje prvo deljive informacije, a zatim i skupih resursa. Lokalne računarske mreže (Local Area Network- LAN) obezbedjuju ove mogućnosti u okviru ograničene geografske oblasti.

LAN je komunikaciona mreža koja ostvaruje medjusobno povezivanje različitih uredjaja kakvi su računari, terminali, i periferni uredjaji u okviru ograničene geografske oblasti. Ključne karakteristike LAN-ova su sledeće:

ostvaruje se veza na kraća rastojanja; obezbedjena je komunikacija u okviru zgrade, ili kompleksa zgrada na površini od nekoliko kilometara.

karakteriše ih velika brzina kod prenosa podataka; LAN-ovi obično koriste velike brzine kod prenosa podataka (od 10 Mbps do 10 Gbps).

mali je broj grešaka u prenosu; procenat grešaka u prenosu je reda 10 -8 do 10-

11 u poredjenju sa WAN gde je 10-5 do 10-7.

jednostavno rutiranje kod velikog broja LAN-ova koriste se samo broadcast poruke pa zbog toga nema potrebe za korišćenjem algoritama za rutiranje poruka.

vlasnik LAN-a je jedna organizacija, imajući u vidu ograničenu geografsku pokrivenost obično svaka organizacija ima svoju LAN mrežu čime se značajno smanjuje cena administriranja i održavanja.

niža cena komuniciranja; niži procenat grešaka kod prenosa podataka, jednostavnost (ili odsustvo) algoritama za rutiranje, kao i niža cena za administriranje i održavanje mreže ukazuju da je celokupna komunikaciona cena LAN-a znatno niža od WAN-a.

1.3. Standardi i topologije kod LAN-ova

Jedan od glavnih ciljeva donošenja standarda je taj da se ostvari kompatibilnost u radu izmedju uredjaja različitih proizvodjača. Tako na primer, na nivou IEEE Project 802 Februara 1980 godine standardizovana, su kod LAN-ova, sledeća tri protokola za pristup medijumu:

1. CSMA/CD – Carrier Sense Multiple Access with Collision Detect

2. Token Bus

3. Token Ring

Page 7: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

Pored IEEE organizacije postoje i druge institucije koje se danas bave donošenjem mrežnih standarda. To su pre svega American National Standard Institute (ANSI), ITU-T (poznata ranije kao Consultative Committee for Internatinal Telephone and Telgraph – CCITT), European Computer Manufacturers Association (ECMA), International Standards Organiziation (ISO) National Institute for Sandards in Technologies (NIST) i druge.

U kontekstu komunikaciona mreža, termin topologija se odnosi na način kako su krajnje tačke ili stanice, prisutne u mreži, medjusobno povezane. Standardne toplogije kod LAN-ova su magistrala (bus), stablo (tree), prsten (ring) i zvezda (star).

1.4. Mreža tipa Token Ring

Ranih 80-tih godina prošlog veka IBM je razvio jedan metod višestrukog pristupa nazvan Token ring (vidi Sliku 1.8). Kod ove mreže računari su povezani na principu jednosmerne veze tipa tačka ka tački i koriste odgovarajuće interfejse. Kada računari nemaju da predaju informaciju, interfejs je taj koji sa zakašnjenjem od nekoliko bitova prenosi token (znak) oko prstena. Na ovaj način token cirkuliše veoma brzo kroz prsten.

Pretpostavimo sada da računar A želi da preda paket računaru E. Računar A smešta izvorišnu adresu A i odredišnu adresu E u zaglavlje paketa i predaje paket interfejsu koji čeka na token. Nakon dolaska token-a računar A umesto da prosledi token on predaje paket. Drugi računari prosledjuju paket, ali i prave njegovu kopiju (memorišu ga). Interfejs računara E kopira paket, dok ga ostali računari odbacuju. Nakon što je A predao i zadnji bit paketa i sačekao da paket prodje kroz prsten, on šalje token kroz prsten (prosledjuje ga susednom računaru u prstenu). Ovo znači da samo računar koji poseduje token može da obavlja prenos. Na ovaj način se ostvaruje sledeće: računar koji poseduje token je glavni računar na mreži (MASTER) i jedino on može da šalje podatke, a ostali računari koji “osluškuju“ mrežu (SLAVE računari) mogu samo da prihvate podatke namenjene njima. Brzina prenosa podataka po mrežama ovakvog tipa je od 4 Mbps do 16 Mbps.

Page 8: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

Slika 1.3. Token-ring, računari dele prsten, pristup je regulisan token-passing protokolom

Za prenos podataka kroz ring mrežu koristi se metod pristupa token passing. Token je oblik kontrolne poruke koja se neprekidno, sukcesivno prenosi od jednog do drugog računara sve dok ne stigne do računara koji želi da koristi mrežu. Na mreži uvek postoji samo jedan token. Ukoliko neki računar želi da preda poruku, a token je već u upotrebi, on mora sačekati da dobije token. Samo računar koji je primio token može da šalje podatke na mrežu. Konkretnije, algoritam rada ring mreže je sledećeg oblika:

Slika 1.4. Algoritam rada Token ring mreže

Računar koji želi da koristi mrežu čeka na slobodan token.

Računar koji je primio slobodan token, a želi da šalje podatke, modifikuje token tako da on za preostale računare postaje zauzet, i pridodaje tokenu podatke koje šalje zajedno sa MAC adresom odredišnog računara.

Podaci prolaze pored računara u mreži, sve dok ne stignu na odredište.

Odredišni računar preuzima podatke, a zatim modifikuje token, tako da označi uspešan prijem podataka, i šalje token ponovo na mrežu.

Token nastavlja put duž ringa sve dok se ne vrati do računara koji je poslao poruku.

Po prijemu tokena, a nakon provere uspešnosti prenosa podatka, predajni računar modifikuje token tako da on postaje slobodan i šalje ga na mrežu.

Treba uočiti da je za prenos jedne poruke između bilo koja dva računara neophodno da token načini jedan pun krug krećući se duž ringa. Iako to izgleda neefikasno, treba imati na umu da brzina prenosa tokena može biti veoma velika (npr. u ring mrež obima 400m, token napravi 5000 krugova u sekundi). Takođe, za razliku od bus mreža, vreme prenosa poruke kod ring mreže se može precizno odrediti - deterministički prenos, što je od velikog značaja kod industrijskih sistema za rad u realnom-vremenu.

Token Ring ima sledeće karakteristike:

podržava brzine 1 i 4 Mbps prema IEEE 802.5 odnosno 4 i 16 prema IBM-ovoj specifikaciji;

prsten kao logički a zvezdu kao fizičku topologiju;

koristi prenošenje tokena kao metod za pristup medijumu;

Page 9: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

veze čvorova održavaju redosled prenošenja tokena;

koristi kablove STP ( Shielded Twisted-pair ) sa oklopljenim uporednim paricama i UTP ( Unshielded Twisted-pair ) sa neoklopljenim uporednim paricama;

svaki čvor je povezan na pristupnu jedinicu koja predstavlja centar ožičenja i nazvana je MAU ( Multistation Access Unit );

omogućavaju upotrebu razvodnih tabli koje se smeštaju izmedju čvorova i MAU jedinica čime se olakšava upotrebe mreže;

zahteva ugrađene mogućnosti upravljanja mrežom kako bi se pratilo kretanje tokena tako da čvorovi mogu utvrditi da li je token oštećen, izgubljen ili uništen.

 Ograničenja Token Ring mreže su:

minimalna dužina kablova izmedju radnih stanica i MAU jedinica od 2.5m;

ograničenje rastojanja izmedju radnih stanica odnosno čvorova i MAU jedinica i u zavisnosti od tipova kablova se kreće do 45m za UTP, 100m za STP 100 metara;

ograničenje rastojanja izmedju MAU jedinica u zavisnosti od tipova kablova kreće se do 120m za UTP, 200m za STP pa do 1000m za optičke kablove;

svaki segment kabla mora biti sa završnim konektorom;

mreža može imati najviše 33 MAU jedinice i do 260 radnih stanica ako se koriste STP kablovi i do 72 radne stanice ako se koriste UTP kablovi.

 Token ring mreže imaju bogat skup upravljačkih mogućnosti medju kojima se:

sakuplja numeričke informacije od radnih stanica i informacije o performansama preko CRS-a (Configuration Report Server);

kontroliše adrese svih čvorova i postavljene kriterijume o priključenju na prsten preko RPS-a (Ring Parametar Server);

prikuplja informacije o lakim i teškim greškama na mreži, formira statističke podatke o greškama i šalje ih upravljaču preko REM-a (Ring Error Monitor);

daje sve informacije o aktivnostima na mostovima preko LBS-a (LAN Bridge Server) i informacije o udaljenim serverima preko LRM-a (LAN Reporting Mechanism).

Nedostaci Token ring mreže su:

parametri konfiguracije su vrlo složeni;

često skuplji elementi nego kod Ethernet ili ARC net arhitektura;

proširenje sistema dosta košta kada se dodaje novo zvezdište kao i nemogućnost proširivanja odnosno povzivanja na WAN mrežu;

Page 10: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

kabliranje je prilično komplikovano;

prekid kabla kod veće dužine teže se nalazi.

Maksimalno vreme koje računar kod Token-ring-a treba da čeka pre nego što počne da predaje podatke za najveći broj aplikacija je malo, ali je suviše veliko za interaktivne audio ili video aplikacije. Takodje, brzina prenosa kod Token-ring-a (4 do 16 Mbps) za neke multimedijalne aplikacije je suviše spora. Ova ograničenja su pospešila inženjere ranih 80-tih godina prošlog veka da razviju novu mrežu nazvanu FDDI (Fiber Distributed Data Interface). FDDI mreže za prenos podataka pri 100 Mbps koriste optička vlakna, a pristup kanalu je regulisan mehanizmom timed-token. Ovaj mehanizam je sličan pristupu upravljanja kod Token-ring mreža sa izuzetkom što je kod FDDI-a pristizanje token-a vremenski sinhronizovano čime se obezbedjuju uslovi da se slanje vrši u okviru fiksnog vremena.

Page 11: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

2. MIKROKONTROLER AT89S8253

Atmel-ov mikrokontroler AT89S8253 je 8-bitni mikrokontroler izrađen u CMOS tehnologiji i optimizovan za upravljačke aplikacije. Kompatibilan je sa MCS-51 serijom mikrokontrolera. Set instrukcija je kompatibilan sa industrijskim standardom 80C51. Proizvodi se u tri kućišta (DIP-40, PLCC44, TQFP44) i jednom specifičnom (DIP-42) kućištu. Raspored pinova je prikazan na Slici 2.1 – dok je unutrašnja struktura mikrokontrolera prikazana na Slici 2.2.

U programerskom smislu, AT89S8253 je gotovo identičan sa mikrokontrolerom AT89S53.

2.1. Unutrašnja struktura mikrokontrolera

Ukratko, ovaj mikrokontroler poseduje sledeće karakteristike:

Obimne logičke procesne mogućnosti (jednobitna logika) Ugrađena flash programska memorija (12 Kb) Ugrađena RAM memorija podataka (256 x 8 bitova) 32 dvosmerne (bidirekcione) i pojedinačno adresibilne ulazno/izlazne linije Devet izvora prekida Ugrađeni EEPROM (2Kb) Programabilni UART sa potpunim dupleksom i detekcijom greške rama

podataka SPI serijski interfejs Tri nivoa zaštite programske memorije Tri 16-bitna tajmera/brojača Programabilni watchdog tajmer Flag prestanka napajanja Režimi smanjene potrošnje Napajanje u opsegu 4-6V Ugrađeni oscilator takta Frekvencija rada do 24MHz.

Page 12: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

Opis pinova

Slika 2.1. Raspored pinova kod mikrokontrolera AT89S8253

VCC - napajanje (za sva kucista osim za 42 PDIP);

GND - masa(za sva kućista osim za 42 PDIP,za 42 PDIP masa spaja logičko jezgro i ugradjene data/program memorije);

VDD - napon napajanja za 42PDIP koji spaja logičko jezgro i ugradjenu program/data memoriju;

PWR VDD - napon napajanja za 42PDIP koji sadrži samo I/O drajvere.Aplikaciona ploča mora da spoji zajedno VDD i PWRVDD na zajedničko napajanje;

PWR GND - masa za 42 PDIP koji spaja samo I/O drajvere .PWR GND i GND su obično spojeni pomoću uobičajenih silikonskih supstrata,ali ne preko bilo kog metalnog linka.Aplikaciona ploča mora zajedno GND i PWR GND spojiti na zajedničku masu;

PORT 0 - je 8-bitni I/O port,a takodje i izlazni port. Svaki pin može pobuditi 8 TTL ulaza.Kada je 1 s upisana na port 0 može biti visoko impedansni ulaz.Ovaj pin se može koristiti kao multiplekser ali i kao prenosni put niske naredbe address-data u toku prihvatanja spoljašnjih programa i memorijskih podataka. U ovom modu Port 0 ima unutrasnje neprekidno napajanje. PORT 0 takodje prihvata kodove u toku programiranja FLASH memorije i izlazne kodove u toku verifikacije programa;

Page 13: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

PORT 1 - Ovaj port je 8-bitni obostrano prihvatni I/O port sa neprekidnim unutrašnjim napajanjem. Izlazne posebne memorijske lokacije PORT 1 mogu pobuditi 4 TTL logicka kola. Kada je 1s upisana na Port 1, pinovi su na visokom nivou uz pomoć unutrasnjeg neprekidnog napajanja i mogu se koristiti kao ulazi. Početna ulazna struja je I il=150µA zbog unutrašnjeg neprekidnog napajanja. Neki PORT 1 pinovi mogu imati i druge dodatne funkcije P.1.0 i P.1.1 mogu služiti kao 2 spoljašnja TIMER /COUNTER ulaza (P 1.0/T2) i 2. aktivni ulaz (P 1.1/T2 EX) CLOCK/COUNTER respektivno. Osim toga P 1.4,P 1.5, P 1.6, P 1.7 mogu služiti za pomoćne portove. DATA INPUT/OUTPUT i CLOCK INPUT/OUTPUT pinovi su prikazani u narednoj tabeli:

Ovaj port prihvata adrese niskih nivoa u toku programiranja i verifikacije FLASH memorije.

PORT 2 je 8 bitni dvosmerni I/O port sa unutrašnjim neprestanim napajanjem. Izlazne pomoćne memorije PORT-a 2 mogu prihvatiti/napajati 6 TTL ulaza. Kada je 1s na ulazu Porta 2 on je na visokom nivou uz pomoć neprekidnog unutrašnjeg napajanja i mogu se koristiti kao ulazi. Kod ovih ulaza tipična ulazna stuja je 150 µA zbog slabog unutrašnjeg neprekidnog napajanja. PORT 2 emituje adrese visokih naredbi u toku donošenja podataka od spoljasnje memorije i u toku prihvatanja podataka iz spoljašnje memorije koje koriste 16-bitne adrese(MOVX I DPTR). U ovom slucaju PORT2 kada emituje 1s koristi jako unutrašnje napajanje . U toku prihvatanja podataka iz spoljašnje memorije PORT 2 korist 8 bitne adrese (MOVX I RI). PORT2 takodje ima i specijalne funkcije registra. PORT 2 takodje prihvata adresne bitove visokog zahteva i neke kontrolne signale u toku programiranja i potvrde FLASH memorije.

PORT 3 je 8 bitni dvosmerni I/O port sa neprekidnim unutrašnjim napajanjem. PORT 3 pomoćne memorije mogu pobuditi 6 TTL ulaza. Kada se upisuju podaci na PORT 3, ovaj PORT dosta energije vuče od unutrašnjeg neprekidnog napajanja i tada se mogu koristiti ulazi. Kod ovih ulaza uz pomoc spoljašnjeg napajanja struja je tipicno 150 µA zbog slabog unutrašnjeg napajanja. PORT 3 takodje prihvata i pojedine kontrolne signale za programiranje FLASH memorije. PORT 3 takodje predstavlja i servis specijalnih promenljivih osobina AT89S8253 koji su prikazani u tabeli:

Page 14: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

NAPOMENA: Svi pinovi u PORT 1 i PORT 2 kao i pinovi PORT 3 (izuzev P3.2 INT 0 i P 3.3 INT 1) imaju sopstveno nepekidno napajanje koje je nedostupno u

POWER-DOWN modu. Pinovi P 3.2 (INT 0) I P 3.3 (INT 1) su aktivni podjednako i u POWER –DOWN modu ( da bi mogli da potražuju prekide za izlaz iz POWER-DOWN moda) uz stalno uključeno unutrašnje napajanje.

RST - RESET ulaz. Ovaj pin ima visoki nivo za najmanje 2 ciklusa.

ALE/PROG - omogućava blokiranje podataka. ALE/PROG je ustvari izlaz koji blokira niske byte adrese (u toku opadajuce ivice) u toku prihvatanja spoljašnje memorije. Ovaj pin je takodje ulazni impuls programa (PROG) u toku programiranja FLASH-a. U normalnom radu ALE traje 1/6 frekvencije oscilovanja i može biti upotrebljen za spoljasnji counter i clock. Važno je, medjutim, da je ALE impuls preskočen u toku svakog prihvatanja podataka iz spoljašnje memorije. ALE operacija moze biti onemogućena postavljanjem bita 0 AUX R SFR na lokaciju 8EH. Sa umetanjem bita, ALE je aktivan samo u toku MOVX ili MOVC instrukcije. Postavljanjem ALE disable, bit nema efekta na mikrokontroler u spoljašnjem izvršnom modu.

PSEN - omogućava čuvanje programa. PSEN čita strobe za programiranje spoljašnje memorije. Kada AT89S8253 izgubi code od izlazne memorije programa, PSEN je aktivan dvostruko u toku svakog ciklusa mašine izuzev 2 PSEN u toku svakog prihvatanja podataka od spoljašnje memorije.

EA/VPP - spoljašnje omogućavanje pristupa. EA mora biti na GND u naredbi za omogućavanje komponente za unošenje podataka iz spoljašnje memorijske lokacije startujući od 0000H sve do FFFFH. Uprkos tome ,to je moguce samo ako je zaključani bit 1 programiran, i EA ce biti postavljeno na RESET.

EA treba biti postavljen na Vcc za izvršenje unutrasnje naredbe, ovaj pin takodje prihvata Vpp napon pristupa u toku programiranja FLASH memorije kada je 12 V programiranje selektovano.

XTAL 1 - ulaz u invertovani pojačavač oscilatora i ulaz u unutrašnji clock električnog kola.

XTAL 2 - izlaz iz invertovanog pojačavača oscilatora.

Page 15: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

Slika 2.2. Unutrašnja struktura mikrokontrolera AT89S82532.2. Redukovani režim napajanja

U cilju uštede potrošnje električne energije, koja je dostupna za CMOS kola, Atmel-ovi flash mikrokontroleri mogu da uđu u dva režima redukovanog napajanja:

Režim praznog hoda (Idle Mode). CPU se prestaje sa radom, dok RAM i drugi ugrađeni pe-riferali u mikrokontroleru nastavljaju da rade. U ovom režimu rada, mikrokontroler se napaja strujom koja iznosi oko 15% vrednosti struje u normalnom režimu, tj. kada je mikrokontroler potpuno aktivan. U ovom modu (režimu rada), mikrokontroler tipično povlači struju oko 2 μA.

Režim smanjene potrošnje (Power Down Mode). Sve aktivnosti unutar mikrokontrolera su suspendovane, dok RAM i dalje zadržava svoj sadržaj. U ovom režimu, mikrokontroler tipično povlači struju oko 1 μA, a ponekad i manje od 0.2 μA. Kao dodatak, ovi mikrokontroleri su projektovani korišćenjem statičke logike, koja ne zahteva kontinualno

Page 16: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

taktovanje. To znači da frekvencija takta mikrokontrolera može usporiti ili čak zaustaviti, dok se čeka na unutrašnji događaj.

2.3. Programska memorija

Svi Atmel-ovi flash mikrokontroleri imaju odvojene adresne prostore za programsku i memoriju podataka, što je prikazano na Slici 2.3. Ovo logičko odvajanje omogućava da se memorija podataka adresira sa 8-bitnim adresama, koje mogu brže da se memorišu. Pored toga, 16-bitne memorijske adre-se mogu da se generišu preko DPTR registra. Mogu će sa mo čitanje programske memorije, koja može da se direktno adresira do 64 Kb. Impuls PSEN (Program Signal Enable Store) služi za čitanje spo-ljašnje programske memorije (vidi Sliku 2.3). Memorija podataka zauzima odvojeni adresni prostor od programske memorije. Do 64Kb spoljašnje memorije može da se direktno adresira u spoljašnjem memorijskom prostoru podataka. Mikroprocesor generiše signale čitanja (RD) i upisa (WR), tokom pri-stupa spoljašnjoj memoriji podataka. Spoljašnja programska memorija i spoljašnja memorija podataka mogu da se kombinuju primenom RD i PSEN signala na ulazu I (AND) kola.

Slika 2.3. Struktura programske i memorije podataka

Najniže adrese programske memorije mogu da se nalaze ili u ugrađenoj flash memoriji ili u spoljašnjoj memoriji. Da bi se ovo odabralo, treba povezati EA (External Access) pin na masu (GND), a sva programska obraćanja usmerena su prema spoljašnjoj memoriji. Impuls za čitanje spoljne me-morije, PSEN, koristi se za sva spoljašnja programska obraćanja. nutrašnja programska obraćanja ne mogu da aktiviraju PSEN .

Page 17: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

Mapa donjeg dela programske memorije prikazana je na Slici 2.4. Posle reseta, mikroprocesor započinje da izvršava instrukcije počev od memorijske lokacije 0000H. Kao što se vidi na slici, svakom prekidu je dodeljena fiksna lokacija u programskoj memoriji. Prekid inicira da mikroprocesor “skoči” na tu lokaciju, gde izvršava servisnu rutinu. Spoljašnji Prekid 0, na primer, dodeljen je memorijskoj lokaciji 0003H. Ako se koristi spoljašnji Prekid 0, njegova servisna rutina mora da započne od lokacije 0003H. Ukoliko se ne koristi prekid, pomenuta servisna lokacija je dostupna kao programska memorija opšte namene. Prekidne servisne lokacije postavljene su u 8-bitnim intervalima (razmacima):

0003H za spoljašnji Prekid 0, 000BH za Tajmer 0, 0013H za spoljašnji Prekid 1, 001BH za Tajmer 1, i tako dalje. Ukoliko je servisna rutina prekida dovoljno kratka (to je čest slučaj u upravljačkim

aplikaci-jama), ista može potpuno da se smesti unutar 8-bajtnog intervala. Duže rutine prekida mogu da koriste instrukciju skoka, kako bi preskočili sledeće prekidne lokacije – ako su u upotrebi drugi prekidi.

Slika 2.4. Programska memorija

2.4. Memorija podataka

Desna polovina Slike 2.3 prikazuje unutrašnje i spoljašnje memorijske prostore dostupne kod Atmel-ovih flash mikrokontrolera. Slika 2.4 prikazuje konfiguraciju za pristupanje do 2Kb spoljaš-nje RAM memorije. U ovom slučaju, mikroprocesor izvršava program iz unutrašnje flash memorije. Port 0 služi kao multipleksirana magistrala adresa/podataka za RAM, dok se 3 linije Porta 2 koriste za straničenje RAM-a.

Može se dodeliti do 64 Kb spoljašnje memorije podataka. Adrese spoljašnje memorije podataka mogu da budu širine 1 ili 2 bajta. Jednobajtne adrese često se koriste u vezi sa jednim ili više dru-gih ulazno/izlaznih linija za straničenje RAM-a, kao što je

Page 18: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

prikazano na Slici 2.5. Dvo-bajtne adre-se se takođe mogu koristiti, i u tom slučaju bajt više adrese se pojavljuje na Portu 2.

Slika 2.5. Izvršavanje programa iz spoljašnje memorije

Konfiguracija hardvera za izvršavanje spoljašnjeg programa je prikazana na Slici 2.5. Vidimo da 16 ulazno/izlaznih linija (Port 0 i Port 2) su posvećeni radu sa magistralom tokom obraćanja spoljaš-njeg programa memoriji. Port 0 (P0 na Slici 2.5) služi kao multipleksirana magistrala adresa/podataka.

Slika 2.6. Pristupanje spoljašnjoj memoriji podataka

On postavlja niži bajt programskog brojača (Program Counter) PCL kao adresu i zatim prelazi u plivajuće stanje, dok čeka na pristizanje bajta kôda iz programske memorije. Tokom vremena kada je PCL važeći na P0, signal ALE (Address Latch Enable) postavlja

Page 19: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

ovaj bajt u adresni leč. U međuvremenu, Port 2 (P2 na Slici 2.5) postavlja viši bajt programskog brojača PCH. Tada PSEN šalje impulsspoljašnjoj memoriji, i mikrokontroler čita bajt kôda. Adrese programske memorije su uvek 16-bitne, čak i kada kapacitet upotrebljene memorije može da bude manja od 64 Kb. Izvršavanje spoljašnjeg programa “troši” (“žrtvuje”) dva 8-bitna porta (P0 i P2), zbog operacije adresiranja prog-ramske memorije.

Ukoliko je programska memorija unutrašnja, ostali bitovi P2 dostupnisu kao ulaz/izlaz. Unutraš-nja memorija podataka je prikazana na Slici 2.6. Memorijski prostor je podeljen u tri bloka, koji se uglavnom nazivaju niži 128, gornji 128, i SFR prostor.

Adrese unutrašnje memorije podataka su uvek dužine 1 bajt, što znači da se adresira samo prostor od 256 bajtova. Ipak, način adresiranja unutrašnjeg RAM-a može da, u stvari, smesti 384 bajtova. Direktne adrese veće od 7FH pristupaju jednom memorijskom prostoru, a indirektne adrese veće od 7FH pristupaju različitom memorijskom prostoru. Prema tome, Slika 2.7 ilustruje Gornji 128 i SFR prostor koji zauzima isti blok adresa, od 80H do FFH, iako su oni fizički odvojeni entiteti.

Slika 2.7. Unutrašnja memorija podataka

Page 20: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

Slika 2.8. Nižih 128 bajtova unutrašnjeg RAM-a

Slika 2.9. Gornjih (viših) 128 bajtova RAM-a

Page 21: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

Slika 2.8 ilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano u 4 banke od 8 registara. Programske instrukcije pozivaju ove registre kao R0 do R7. Dva bita u registru programske statusne reči PSW (Program Status Word) selektuju koja je registarska banka u upotrebi. Ova arhitektura omogućava efikasniju upotrebu kôdnog prostora, pošto su registarske in-strukcije kraće od instrukcija koje koriste direktno adresiranje. Sledećih 16 bajtova iznad registarskih banki formira blok bit-adresibilnog memorijskog prostora. Skup instrukcija mikrokontrolera uključuje veliki broj instrukcija sa jednim bitom, i ove instrukcije mogu direktno da adresiraju 128 bitova u ovom prostoru. Ove bit-adrese su od 00H do 7FH. Svi bajtovi u donjih 128 bajtova prostora mogu da se adresiraju ili direktno ili indirektno. Gornjih 128 (Slika 2.9) može da se adresira samo indirektno. Gornjih 128 bajtova RAM-a su samo u uređajima sa 256 bajta RAM-a.

Na Slici 2.10 prikazan je prostor registara specijalnih funkcija SFR (Special Function Register). SFR uključuje lečeve porta, tajmere, kontrolu periferala itd. Ovi registri mogu da se adresiraju samo direktno, tj. pristupa im se direktnim adresiranjem.

Slika 2.10. Prikaz registara specijalne namene

2.5. Programski statusni registar

Programski statusni registar (PSW) sadrži bitove statusa koji ukazuju na trenutno stanje mikroprocesora. PSW, prikazan na Slici 2.11, smešten je u SFR prostor. PSW

Page 22: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

sadrži bit prenosa (carry bit), bit pomoćnog prenosa (auxiliary carry bit) za BCD operacije, dva bita za selekciju ban-ke registara, marker prekoračenja (overflow flag), bit parnosti (parity bit), i dva korisnička statusna markera.

Bit prenosa, služi kao bit prenosa u aritmetičkim operacijama, a takođe služi i kao akumulator za veliki broj logičkih operacija. Bitovi RS0 i RS1 selektuju jednu od četiri registarke banke prikazane na Slici 2.8. Veliki broj instrukcija se obraća ovim lokacijama kao R0 do R7. Status bitova RS0 i RS1 u vreme izvršenja određuje koja je od četiri banke selektovana.

Bit parnosti ukazuje na broj jedinica u akumulatoru: P=1 – ukoliko akumulator sadrži neparan broj jedinica, i P=0 – ukoliko akumulator sadrži paran broj jedinica. Prema tome, broj jedinica u aku-mulatoru plus P uvek je paran broj.

Dva bita u PSW su neiskorišćeni i mogu da se upotrebe kao statusni bitovi opšte namene.

Slika 2.11. PSW registar u Atmelovim flash mikrokontrolerima

2.6. Taktovanje mikroprocesora

Svi Atmelovi flash mikrokontroleri poseduju ugrađeni oscilator, koji se može da se koristi kao iz-vor za njegov mikroprocesor. Da bi se koristio ugrađeni oscilator, treba povezati kristalni ili kera-mički rezonator između pinova XTAL1 i XTAL2 mikrokontrolera, i da se povežu kondenzatori pre-ma masi, kao što je prikazano na Slici 2.12.

Primer napajanja sa taktom iz spoljašnjeg oscilatora je prikazan na Slici 2.13. Unutrašnji takt ge-nerator definiše sekvence stanja koje čine mašinski ciklus.

Page 23: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

Napomenuto je u uvodu kako mikroprocesor mikrokontrolera AT89S8253 može da se taktuje frekvencijom. Vrednosti kondenzatora na Slikama 2.12 i 2.13 mogu da uzimaju vrednosti 30±10 pF.

Slika 2.12. Korišćenje ugrađenog oscilatora

Slika 2.13. Povezivanje oscilatora (A) i konfiguracija sa spoljašnjim taktom (B)

2.7. Mašinski ciklusi

Mašinski ciklus čini sekvenca od šest stanja, numerisanih od S1 do S6. Svako stanje traje dve pe-riode oscilatora. Prema tome, mašinski ciklus traje 12 perioda oscilatora ili 1μs ako je frekvencija os-cilatora 12 MHz. Svako stanje podeljeno je na dve faze.

2.8. Brojači/Tajmeri

Mikrokontroler AT89S8253 ima tri šesnaestobitna tajmersko-brojačka registra. Tajmeri se mogu kofigurisati da rade u četiri moda rada, izuzetak je tajmer 2 koji može da radi u tri

Page 24: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

moda rada. Kada rade kao brojači, sadržaj tajmerskog registra se uvećava za jedan na svaku silaznu ivicu odgovarajućeg ulaza mikrokontrolera (T0 za tajmer 0, T1 za tajmer 1 i T2 za tajmer 2).

Maksimalna frekvencija ulaznog signala koju brojač može da prati je 24 puta manja od radnog takta mikrokontrolera. Kada rade kao tajmeri sadržaji tajmerskih registara se uvećava za jedan u svakom mašinskom ciklusu. Jedan mašinski ciklus traje 12 perioda radnog takta mikrokontrolera. Npr , ako je radni takt 24MHz, registri se uvećavaju svakih 500 ns.

Svakom tajmeru pripadaju po dva osmobitna registra:

tajmeru 0: TH0 i TL0,

tajmeru 1: TH1 i TL1 i

tajmeru 2: TH2 i TL1.

Kontrola rada tajmera

Radom tajmera 0 i 1 upravlja se pomoću registara TMOD i TCON.

Page 25: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

Značenje pojedinih bita je sljedeće:

GATE – kontrola gejta. Kada je ovaj bit na jedinici odgovarajući tajmer može da broji kada je pripadajući TR bit jedinica i pripadajući INTx ulaz mikrokontrolera visok. Ako je vrijednost GATE bita 0, onda je dovoljno da odgovarajući bit TR bude visok.

C/`T- ovaj bit određuje da li odgovarajući tajmer radi kao brojač opadajućih ivica na odgovarajućem T ulazu (C/`T= 1) ili kao tajmer (C/`T= 0).

M1 M0 Način rada (mod)

0 0 Mod 0 – tajmer radi kao 13-bitni brojač

0 1 Mod 1 – tajmer radi kao 16-bitni brojač

1 0 Mod 2 – tajmer radi kao osmobitni brojač. Brojački registar TL, nakon preticanja se puni sadržajem TH registra (auto reload)

1 1 Mod 3 – tajmer 1 je u ovom modu zaustavljen, a tajmer 0 radi kao dva odvojena osmobitna tajmera

Struktura TCON registra:

Značenje pojednih bita je sljedeće:

TF1 – zastavica preteka tajmera 1 automatski se briše kada se skoči na potprogram za opsluživanje prekida.

TR1 – postavljanje ovog bita tajmer 1 počinje da broji, dok u suprotnom ne broji.

TF0 – zastavica preteka tajmera 0 automatski se briše kada se skoči na potprogram za opsluživanje prekida.

TR0 – postavljanje ovog bita tajmer 0 počinje da broji, dok u suprotnom ne broji.

Page 26: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

IE1 – zastavica detektovanog spoljašnjeg zahtjeva za prekidom 1. Kada je zahtjev detektovan postavlja se na jedinicu, a briše se automatski kada se skoči na potprogram za opsluživanje prekida.

IT1 – određuje da li je ulaz spoljašnjeg prekida osjetljiv na na opadajuću ivicu (IT1=1) ili na nizak nivo (IT1=0).

IE0 – zastavica detektovanog spoljašnjeg zahtjeva za prekidom 0. Kada je zahtjev detektovan postavlja se na jedinicu, a briše se automatski kada se skoči na potprogram za opsluživanje prekida.

IT0 – određuje da li je ulaz spoljašnjeg prekida osjetljiv na na opadajuću ivicu (IT0=1) ili na nizak nivo (IT0=0).

Modovi rada tajmera 0 i 1

Preticanje: Kada svi bitovi registra tajmera/brojača postanu jedinice, sledećim uvećanjem sadržaja svi bitovi postaju nule.

Mod 0:

U ovom modu tajmer predstavlja 13-bitni tajmer/brojač. Preticanje tajmera izaziva postavljanje odgovarajućih interapt zastavica (TF2, TF1, TF0). Postavljanje interapt zastavice izaziva prelazak na izvršenje servisne rutine, ako je odgovarajući interapt dozvoljen. Biti TF1, TF0 automatski se brišu prilikom skoka na prekidnu rutinu.

Mod 1:

Mod 1 je isti kao mod 0, s tim da se koristi svih 8 bita registra TL1 tako da imamo 16-bitni registar tajmera.

Page 27: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

Slika 2.14. Mod 0 ili 1 tajmera 0 ili 1

Mod 2

U ovom modu tajmer je kao osmobitni sa automatskim punjenjem incijalne vrijednosti nakon preticanja. timer 0 At89S8253.

Page 28: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

Slika 2.15. Mod 2 tajmera 0 ili 1

2.9. Opis prekida kod mikrokontrolera

U mikroprocesorskim sistemima često je potrebno istovremeno pratiti rad više perifernih jedinica. To se može postići neprestanim prozivanjem jedne po jedne jedinice, proveravajući njihova stanja. Ako se utvrdi da je došlo do neke promene na nekoj od tih periferija na koju treba reagovati, preduzimaju se odgovarajuće akcije kao odgovor na promene. Na primer, nakon startovanja konverzije A/D konvertora neprekidno se vrši čitanje stanja BUSY nožice konvertora, koje označava da li je konverzija u toku ili je završena. Ako neko očitavanje pokaže da je konverzija završena, tada se učita odgovarajući podatak sa konvertora. U ovom slučaju mikrokontroler je neprestano zauzet proverom stanja na liniji BUSY A/D konvertora.

Drugi način praćenja rada više perifernih jedinica je da same jedinice jave kada je potrebno opsluživanje. Ta metoda se naziva metodom prekida, dok se prethodno opisana naziva metodom prozivanja (pooling). Dakle, kada se koristi metoda prekida, periferna jedinica posebnim signalom javlja kada je neophodna reakcija upravljačkog uređaja tj. mikrokontrolera. Taj signal se zove zahtev za prekidom odnosno interaptom (interrupt request). Slučaj iz prethodnog primera bi se mogao rešiti povezivanjem BUSY nožice konvertora na odgovarajuću INT (spoljašnji prekid) nožicu mikrokontrolera. Kada se BUSY deaktivira izaziva se prekid. Nakon što mikrokontroler uvaži zahtev, prelazi na podprogram za opsluživanje prekida (u ovom slučaju čitanje vrednosti konverzije), a nakon toga nastavlja sa izvršavanjem programa gde je prekinut u trenutku stizanja zahteva za prekidom. U ovom slučaju mikrokontroler se ne opterećuje proverom stanja na periferiji nego samo izvodi odgovarajuću akciju kada je to potrebno. Iz ovoga je jasno da u ovom slučaju mikrokontroler potroši mnogo manje vremena za opsluživanje periferija, zbog čega i program može biti mnogo efikasniji.

Page 29: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

Izvori prekida

Kod ovog mikrokontrolera postoje šest izvora prekida. Dva spoljašnja (0INT i 1INT), tri prekida tajmera (tajmer 0,1 i 2) i prekid serijskog porta.

Sa ciljem da se koriste bilo koji od prekida u flash mikrokontroleru, treba preduzeti sledeća tri koraka.

1. Postaviti EA (bit dozvole) u IE registru na 1.

2. Postaviti odgovarajući pojedinačni bit prekida u IE registru na 1.

3. Započeti prekidnu servisnu rutinu na odgovarajućoj adresi vektora prekida. Videti sledeću tabelu.

Prekid tajmera 2 se generise logickim OR ili bitovima TF 2 I EXF 2 u registru T 2 CON.Nijedan od ovih markera se neb rise hardverom u toku servisnih uobicajenih procesa.U stvari,servisne uobicajeni procesi odredjuju koji od stanja TF 2 ili EXF 2 generisu prekide I taj bit ce biti obrisan softwerom.

Serijski prekid je logicki OR od bitova RI I TI u registru SCON I takodje bit SPIF u SPSR(ako je SPIE u SPCR setovan).Nijedan od ovih markera se neb rise pomocu hardwera u toku servisnih uobicajenih procesa.Servisni uobicajeni procesi mogu odrediti koji od SPI ili UART generisu prekide .

Timer 0 I timer 1 markeri, TF0 I TF 1,se setuju S5P2 ciklusa u toku timer-ovih prezasicenja.Vrednosti se zatim upisuju u sledecem ciklusu.Medjutim markeri Timera 2,TF 2, setuju S5P2 I upisuju u istom ciklusu kada je Timer prepunjen(prezasicen).

PrekidIzvorVektorske adreseSistem resetRST ili POR ili BOD0000HSpoljasnji prekid 0IE 00003HPrekid tajmera 0TF 0000BHSpoljasnji prekid 1 IE 10013HPrekid tajmera 1TF 1001BHPrekid serijskog portaRI ili TI0013H

Slede struktrure nekih registara:

Page 30: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

Registar koji omogucava prekide je na sledecoj slici:

Registar prioriteta prekida je prikazan na sledecoj slici:

Simbol FunkcijePT2 Timer 2- prekid niskog prioritetaPS Serijski port- prekid niskog prioritetaPT1 Timer 1- prekid niskog prioriteta

Page 31: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

PX1 Spoljasnji prekid 1 niskog prioritetaPT0 Timer 0- prekid niskog prioritetaPX0 Spoljasnji prekid 0- prekid niskog prioriteta

Registar visokog prioriteta prekida je prikazan na sledecoj slici:

Izvor prekida je prikazan na sledecoj slici:

Simbol FunkcijePT2H Timer 2- prekid visokog prioritetaPSH Serijski port- prekid visokog prioritetaPT1H Timer 1- prekid visokog prioritetaPX1H Spoljasnji prekid 1 visokog prioritetaPT0H Timer 0- prekid visokog prioritetaPX0H Spoljasnji prekid 0- prekid visokog prioriteta

Page 32: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

Slika 2.16. Izvor prekida

Na slici ispod se može videti da se prekid može jednostavno onemogućiti brisanjem bita EA u istom registru.

Slika 2.17. Ilustracija dozvole prekida

Kao dodatak, za spoljašnje prekide, pinovi INT0 i INT1 (P3.2 i P3.3) moraju biti postavljeni na 1, i u zavisnosti od toga da li se prekid aktivira nivoom ili prelazom, bitovi IT0 ili IT1 u TCON registru moraju se postaviti na 1.

Page 33: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

ITx = 0 okidanje nivoom

ITx = 1 okidanje prelazom

Maskiranje prekida

Svaki od pomenutih prekida se može dozvoliti ili zabraniti tj. maskirati. Kada je prekid maskiran, odgovarajući bitovi (TF0, TF1,TF2, IE0 i IE1) se postavljaju na 1, ali to ne izaziva prelazak na odgovarajući servisni potprogram. Kod AT89S52 svaki od izvora prekida se može maskirati, to se kontroliše preko registra IE (interrupt enable, sl.). Kao što se vidi na sl., postavljanjem određenog bita na 1 odgovarajući prekid biva dozvoljen. U suprotnom je maskiran. Najviši bit EA (enable all) kontroliše maskiranje svih prekida. Ukoliko je on 0, svi prekidi su maskirani bez obzira na stanje bitova istog registra koji kontrolišu maskiranost pojedinačnih izvora prekida.

IE: Registar dozvole prekida (bit-adresabilan)

Ako je bit 0, odgovarajući prekid je onemogućen. Ako je bit 1, odgovarajući prekid je dozvoljen.

EA — ET2 ES ET1 EX1 ET0 EX0EA IE.7 Onemogućava sve prekide. Ako je EA=0, nema potvrde

prekida. Ako je EA=1, svaki izvor prekida se pojedinačno omogućava ili onemogućava postavljanjem njegovog bita dozvole

— IE.6 Nije implementirano, rezervisano za buduću upotrebu.ET2 IE.5 Omogućava ili onemogućava prekoračenje tajmera 2 ili

zahavtanje prekida (samo kod AT89C52)ES IE.4 Omogućava ili neomogućava prekid serijskog porta.

ET1 IE.3 Omogućava ili onemogućava prekoračenje tajmera 1.

Page 34: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

EX1 IE.2 Omogućava ili onemogućava spoljašnji prekid 1.ET0 IE.1 Omogućava ili onemogućava prekoračenje tajmera 0.EX0 IE.0 Omogućava ili onemogućava spoljašnji prekid 0.

Prioriteti prekida

Na primer, možete omogućiti Tajmer 1 prekid koji se automatski poziva svaki put kada se Tajmer 1 overflow-je. Naknadno, možete omogućiti serijski prekid koji se poziva svaki put kada se primi karakter preko serijskog porta. Medjutim, vi možete smatrati da je prijem karaktera mnogo važniji od tajmerskog prekida. U ovom slučaju, ako se tajmer 1 prekid već izvršava vi možete poželeti da sam serijski prekid interrupt-uje tajmer 1 prekid. Kada se serijski prekid kompletira, upravljanje se vraća nazad na Tajmer 1 prekid opslužuje ga i konačno se vraća u glavni program. Ovo možete ostvariti dodeljivanjem visokog nivoa prioriteta serijskom prekidu i niskog nivoa prekida tajmer 1 prekidu.

Prioriteti prekida se kotrolišu od strane IP SFR registra (B8h). IP SFR registar ima sledeći format:

Name Bit Address Explanation of Function- - Undefined- - Undefined- - Undefined

PS BCh Serial Interrupt PriorityPT1 BBh Timer 1 Interrupt PriorityPX1 BAh External 1 Interrupt PriorityPT0 B9h Timer 0 Interrupt PriorityPX0 B8h External 0 InPriorit

Razmatranjem liste prioriteta prekida, dolazimo do sledećih pravila koja primenjujemo:- ništa ne može da prekine prekid visokog nivoa prioriteta – čak ni drugi prekid visokog

nivoa prioriteta;- prekid visokog nivoa može prekinuti izvršenje prekida niskog nivoa;- prekid niskog nivoa prioriteta može jedino da se opsluži ako nema drugih prekida koji

se već izvršavaju;- ako se dva prekida dogode u isto vreme, prekid sa višim nivoom prioriteta će se prvi

izvršiti. Ako su oba prekida istog prioriteta prekid koji je prozvan prvi sekvecnom prozivke prvi će se izvršiti.

Page 35: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

Šta se dogadja kada se prekid dogodi ?

Kada se dogodi prekid automatski se preuzimaju sledeće akcije od strane mikrokontrolera:

- tekuća vrednost Pc-a se smesti na stek, prvo niži bajt;- prekidi istog ili nižeg nivoa prioriteta se blokiraju;- u slučaju tajmerskog ili spoljašnjeg prekida, odgovarajući prekidni markeri se brišu;- programsko izvršenje se prenosi na odgovarajuću vektor adresu prekidnog

opslužioca (handler-a);- rutina prekidnog opslužioca se izvršava.

Posebno istaknimo treći korak: Ako prekidi opslužuju tajmerski ili spoljašnji prekid, mikrokontroler automatski briše prekidni marker pre nego što prenese upravljanje na rutinu koja opslužuje vaš prekid. Ovo znači da nije neophodno da vi brišete bit softverski u vašem kôdu.

Šta se dogadja kada se prekid završi ?

Prekid se završava kada vaš program izvrši RETI (Return from Interrupt) instrukciju. Kada se RETI instrukcija izvrši mikrokontroler preuzima sledeće akcije:

- dva bajta se prenesu sa steka u programski brojač da se ponovo uspostavilo normalno programsko izvršenje;

- prekidni status se ponovo vraća na svoj status pre prekida.

Serijski prekidi

Serijski prekidi su neznatno različiti od ostalih prekida. Ovo je posledica činjenice da postoje dva prekidna markera: RI i TI. Ako je bilo koji marker postavljen, serijski prekid je trigerovan. Kao što smo istakli u sekciji o serijskom portu, RI bit se postavlja kada se bajt primi od strane serijskog porta dok se TI postavlja kada se bajt šalje.

Ovo znači da kada se vaš serijski prekid izvršava, on može biti trigerovan zato što je RI marker postavljen ili zato što je TI marker postavljen – ili zato što su oba postavljena. Dakle vaša rutina mora da proveri status ovih markera da bi odredila koju akciju da preuzme. Takodje, pošto 8051 ne briše automatski markere RI i TI morate da ih obrišete u vašem softveru koji opslužuje prekid.

Kratak kôdni primer je u sledećem redosledu:

INT_SERIAL - JNB RI, CHECK_TI; ako RI marker nije postavljen, sakačemo na proveru TI MOV A,SBUF ;ako dodjemo do ove linije, to zato što je RI bio postavljen

CLR RI - brišemo RI bit posle njegovog procesiranja

CHECK_TI - JNB TI,EXIT_INT ;ako marker TI nije postavljen skočimo na izlaznu tačku

CLR TI - brišemo TI bit pre slanja drugog karaktera

MOV SBUF,#'A' - šaljemio drugi karakter na serijski port

Page 36: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

EXIT_INT - RETI

Kao što vidimo, naš kôd proverava oba prekidna markera. Ako su oba markera postavljena, obe sekcije kôda će biti izvršene. Takodje podvučimo da svaka sekcija kôda briše svoj odgovarajući prekidni marker. Ako ste zaboravili da obrišete bitove prekida serijski prekid će se izvršavati ponavljajući se sve dok ne obrišite bit. Dakle veoma je važno da vi uvek obrišete prekidne markere serijskog prekida.

Važno prekidno razmatranje: Zaštita registara

Vrlo važno pravilo koje se primenjuje na sve opslužioce prekida: Prekid mora da ostavi procesor u isto stanje kakvo je bilo kada se prekid pokrenut.

Zapamtite, ideja je da iza prekida glavni program ne bude svestan da se oni izvršavaju u ''pozadini''.

Ipak, razmotrimo sledeći kôd:

CLR C ;obrišimo prenos

MOV A,#25h ;loaduj akumulator sa 25h

ADDC A,#10h ;saberi 10h sa prenosom

Nakon izvršenja prethodne tri instrukcije, akumulator će sadržati vrednost 35h.Ali šta će se desiti ako se upravo posle MOV instrukcije dogodi prekid. U toku prekida,

bit prenosa je postavljen i vrednost akumulatora je promenjena na 40h. Kada se prekid završi i upravljanje prenese nazad u glavni program, instrukcija ADDC će dodati 10h na 40h i dodatno dodati dodatni bt 1h zato što je bit prenosa postavljen. U ovom slučaju, akumulator će sadržati vrednost 51h nakon izvršenja instrukcije.

U ovom slučaju, glavni program kako se čini izračunava pogrešan rezultat. Kako može 25h + 10h da proizvede 51h kao rezultat ? Ovo nema smilsa. Programer koji nije familijaran sa prekidima izazvan problemom matematičkog proračuna uveriće se da je mikrokontroler na neki način oštećen.

Šta se dogadja, u stvarnosti, ako prekid ne štiti prethodni sadržaj registra prilikom njihovog korišćenja. Preformulišimo: Prekid mora da ostavi procesor u isto stanje kao što je bilo kada je prekid započeo

Šta ovo znači ? To znači da ako vi u prekidnoj rutini koristite akumulator, morate da budete sigurni da je vrednost akumulatora ista na kraju prekida kao što je bila na njegovom početku. Ovo je generalno izvodljivo sa PUSH i POP sekvencom. Na primer:

PUSH ACC

PUSH PSW

MOV A,#0FFh

ADD A,#02h

Page 37: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

POP PSW

POP ACC

''Opustošenje'' prekidom je od strane MOV i ADD instrukcije. Ma koja od ove dve instrukcije modifikuje Akumulator (MOV i ADD instrukcija) i takodje modifikuje vrednost bita prenosa (ADD instrukcija će usloviti da bit prenosa bude postavljen). Pošto prekidna rutina mora da garantuje da registri ostaju ne promenjeni primenom rutine, rutina smešta originalne vrednosti na stek korišćenjem PUSH iinstrukcije. Nakon toga ona je slobodna da koristi registre pošto je zaštitila njihove suštinske vrednosti. Pošto prekid završi svoj zadatak, on uzima originalne vrednosti i vraća ih u registre. Dok se prekid izvršava, glavni program neće nikad da zna razliku zbog toga što su registri egzaktno isti kao što su bili pre nego što se prekid izvršio.

U principu, prekidna rutina mora da zaštiti sledeće registre:

- PSW (Program Status Word)

- DPTR (DPH/DPL) (Data Pointer)

- ACC

- B

- Registri R0 – R7

Zapamtite da PSW sadrži mnoge individualne bitove koji su postavljeni od strane različitih 8051 instrukcija. Ako niste apsolutno sigurni šta radite i ako ne razumete potpuno koja instrukcija koji bit postavlja najbolja ideja je da uvek zaštite PSW smeštajući ga na i uzimajući ga sa steka na početku i kraju prekida.

Istaknimo takodje da većina asemblera (u suštini, svi koje ja znam) neće vam dozvoliti da izvršite instrukciju:

PUSH R0

Ovo je posledica činjenice da zavisi koja je registarskih banaka selektovana, tj. R0 se može odnositi na adresu unutrašnje memorije ili 00h, ili 08h, ili 10h, ili 18h. R0, ++++, nije validna memorijska adresa koju instrukcije PUSH i POP mogu da koriste.

Prema tome, ako vi koristite bilo koji ''R'' registar u vašu prekidnu rutinu, vi ćete staviti apsolutnu adresu registra na stek umesto da samo kažete PUSH R0. Na primer, umesto PUSH R0 vi ćete izvršiti:

PUSH 00hNaravno ovo funkcioniše jedino u slučaju ako ste selektovali default-ni set registara

(registarska banka 0). Ako koristite alternativni registarski set, morate da PUSH adresu koja odgovara registru koji vi koristite.

Najčešći problemi sa prekidima

Page 38: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

Prekidi su veoma moćno sredstvo dostupno 8051 korisnicima, ali kada ih koristite nekorektno mogu biti izvor velikog broja časova debagovanja. Greške u prekidnim rutinama je često veoma tečko dijagnosticirati i korigovati.

Ako ste koristili prekide i vaš je program doživeo krah ili vam se čini da se ne izvršava kako ste očekivali, uvek ponovo razmotrite sledeće prekide povezane odlukama:

Zaštita registra: Budite sigurni da ste zaštitili sve vaše registre, kako smo objasnili u prethodnom delu. Ako ste zaboravili da zaštitite registar koji koristi vaš glavni program, možete dobiti vrlo čudne rezultate. U našem prethodnom primeru pokazali smo kako greške kod zaštite registara uslovljavaju da glavni program očigledno izračunava da je 25h + 10h = 51h. Ako ste svedok problema sa registrima kao što su neočekivana promena vrednosti ili rezultat operacije je nekorektna vrednost, vrlo je verovatno da ste zaboravili da zaštitite registre. Uvek zaštitite vaše registre.

• Zaboravili ste da vratite vaše zaštićene vrednosti: Druga česta greška je da stavite vrednosti registara na stek da bi ih zaštitili, i onda zaboravite da ih preuzmete sa steka pre napuštanja prekidne rutine. Na primer, stavili ste ACC, B, i PSW na stek u cilju njihove zaštite i zatim preuzmete samo ACC i PSW sa steka pre napuštanja prekidne rutine. U o stavite vrednost ''B'', ekstra vrednost ostaje na steku. Nakon izvršavanja RETI instrukciju 8051 će koristiti vrednost kao vraćenu adresu umesto korektne vrednosti. U ovom slučaju, vaš program će skoro sigurno pasti. Uvek budite sigurni da ste POP onaj broj vrednosti sa steka koji ste i stavili.

• Koristite RET umesto RETI: Zapamtite da se prekidne rutine uvek završavaju sa RETI instrukcijom. Lako može da se desi da nepažnjom umestio RETI instrukcije koristitite RET. Prema tome RET instrukcija nesme da završi vašu prekidnu rutinu. Obično, korišćenje instrukcije RET umesto RETI stvoriće iluziju da vaš program radi normalno.

Page 39: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

2.10. Načini programiranja

Programiranje, čitanje i brisanje sadržaja EEPROM-a i flash memorije mikrokontrolera može da se ostvari paralelno ili serijski. Ovde se nećemo zadržavati oko opisa jednog ili drugog načina progra-miranja, već ćemo naglasiti da se serijsko programiranje ostvaruje preko tri pina mikrokontrolera: MOSI (P1.5), MISO (P1.6) i SCK (P.1.7), uz dovedeni takt, napajanje i masu (GND).

Page 40: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

3. Projekat

Cilj ovog projekta je da se realizuje mreža tipa Token Ring, pomoću 4 mikrokontrolera AT89S8253. Potrebno je povezati mikrokontrolere tako da se može ostvariti njihova međusobna komunikacija i razmena poruka, koju će inicirati korisnik. Prema tome, svaki mikrokontroler ima i svoje tastere kojima mu se zadaju komande koje on treba da ispuni, a sve to u cilju ostvarivanja prenosa željenih informacija.

3.1. Električna šema

Da bi se omogućilo programiranje i ispravno funkcionisanje mikrokontrolera, kao i prikaz toka komunikacije u skladu sa projektnim zadatkom, potrebno je obezbediti dodatne hardverske komponente, kao što su: napajanje, električna kola koja omogućavaju fizičko povezivanje sa računarom (MAX232, 74LVC244), displej za grafički prikaz. Sve ove komponente zajedno čine razvojni sistem, čija je el. šema data na slici 3.1. u i šemi na kraju rada.

Page 41: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

Slika 3.1. Razvojni sistem mikrokontrolera

Štampana ploča na kojoj je smešten razvojni sistem prikazana je na sledećoj slici:

Layout pločice:

Page 42: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

Slika 3.2. Štampana ploča (PCB) razvojnog sistema mikrokontrolera

Da bi se realizovala mreža tipa Token Ring potrebno je međusobno povezati mikrokontrolere. Veza među mikrokontrolerima se ostvaruje veoma jednostavno. Naime, svaki mikrokontroler ima pin za prijem (P3.0) kao i pin za predaju podataka (P3.1), tako da mikrokontroleri mogu lako da komuniciraju ukoliko im se ovi pinovi povežu (TX jednog sa RX-om drugog i obrnuto). Međutim, pošto se u projektnom zadatku traži da se četiri mikrokontrolera povežu u mrežu tipa token ring, veza među mikrokontrolerima, u ovom slučaju, mora se ostvariti na modifikovan način. Ovde će TX pin prvog mikrokontrolera biti povezan sa RX pinom drugog mikrokontrolera, TX pin drugog sa RX pinom trećeg, itd, sve dok se krug ne zatvori. Zbog toga je ovakav tip mreže i dobio ime Ring (prsten, krug).

Svi mikrokontroleri su opremljeni tasterima i LED diodama. Tasteri se koriste za definisanje rada mikrokontrolera i načina komunikacije. Drugim rečima, pomoću tastera se vrši odabir poruke koju korisnik želi da pošalje, kao i odabir mikrokontrolera kome se šalje željena poruka. LED diode se koriste kao vizuelna indikacija komunikacije, tj. diode prikazuju poruku koju je posmatrani mikrokontroler primio od MASTER mikrokontrolera.

Deatljan opis povezivanja sistema

Sistem se sastoji iz 4 mikrokontrolerske ploče (logičkog naziva MCU), i svaka od njih je označena svojim brojem resprektivno 0,1,2 i 3. „Srce“ kontrolerskih ploča čini Atmel-ov AT89S8253.Na svaku od mikrokontrolerskih ploča povezana je dodatna pločica sa tasterima i diodama (logičkog naziva IO – input output), led diode se vezuju na portove P2.0 do P2.3, a tasteri na portove P2.4 do P2.7 respektivno.

Glavna ili master kontrolerska ploča na sebi ima povezan i LCD displej sa mogućnošću prikaza 16 karaktera u 2 reda. LCD je sa mikrokontrolerom povezan na portove P0.0 do P0.7 (za detaljniji uvid u povezivanje pogledati šemu u prilogu na kraju teksta). LCD displej se koristi zaprikaz trenutnog toka komunikacije u token ringu.

Da bi smo ostavrili mrežu tipa token ring, povezali smo port P3.1 (TX) prvog kontrolera sa portom P3.0 (RX) drugog kontrolera i tako u prsten povezali 4 kontrolera, omogućivši prijem informacije i prosleđivanje po prstenu. Portovi P3.0 i P3.1 su pinovi 1 i 2 na konektoru JP4 (pogledati šemu u prilogu na kraju)

Napajenje se nalazi na MCU 0 ploči i ravodi se na sve četiri kontrolerske ploče, ovim se želela postići ušteda u komponenetama.

Programiranje se vrši povezivanjem programatora na konektor JP1, stavljanjem prekidača S1 u stanje uključeno i prebacivanjem jumpera JP6 u mod „program“ . Time smo doveli potrebne signale za In Sistem Programiranje i reset procesora prebacili na programator. Nakon završenog programiranja prekidač i jumper vratiti u prethodni položaj.

Blok šema opisane mreže, kao i izgled štampane ploče sa tasterima i LED diodama dati su na slikama 3.3 i 3.4, respektivno

Page 43: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

Slika 3.3. Električna šema mreže tipa Token Ring realizovane pomoću mikrokontrolera AT89S8253

Slika 3.4. Štampana ploča (PCB) za tastere i LED diode

Page 44: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

3.2 Softversko rešenje

3.2.1.Format poruke

Komunikacija između mikrokontrolera, kao što je već rečeno, je serijskog tipa. Prema tome, svaki od mikrokontrolera šalje poruku drugom kontroleru bit po bit. Pošto su i prijemni i predajni bafer podataka kod mikrokontrolera veličine 1 bajt, tj. 8 bita, i prijem i predaja poruke trajaće 8 mašinskih ciklusa. Poruka, u našem slučaju, je upravo veličine 1 bajt. U okviru ovog jednog bajta sadržane su sve informacije i komande potrebne za pravilno funkcionisanje sistema, tj. Token Ring mreže. Format poruke prikazan je na sledećoj slici:

Slika 3.5. Format poruke

3.2.2. Adresa primaoca:

Adresa primaoca, tj. Adresa odredišnog mikrokontrolera se definiše pomoću dva bita najmanje težine. Pošto imamo četiri mikrokontrolera u Token ring mreži, dva bita su dovoljna za dodelu adresa, tako da svaki mikrokontroler ima jedinstvenu adresu. Adrese mikrokontrolera su prikazane u sledećoj tabeli:

MikrokontrolerAdresa mikrokontrolera 0.001.012.103.11

3.2.3. Adresa pošiljaoca:

Adresa pošiljaoca se odnosi na mikrokontroler koji šalje poruku i za njen prikaz su takođe potrebna dva bita. I ovde se koriste iste adrese mikrokontrolera kao i kod adrese primaoca.

Page 45: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

3.2.4. Poruka:

Kao što se može videti sa slike 3.5., za prikaz poruke koriste se tri bita. Tri bita su neophodna zato što pored četiri poruka koje se prenose između mikrokontrolera, imamo i petu, tzv. token poruku. Token poruka nam kazuje kada je token slobodan, tj. kada token kruži na mreži. To je veoma bitno, jer se samo u tom slučaju, mikrokontroler može javiti za preuzimanje tokena, čime on postaje Master, a svi ostali kontroleri u mreži Slave kontroleri. Samo u tom slučaju, slučaju kada preuzme token, Master kontroler može izvršiti slanje poruke. Kada je jedan od mikrokontrolera preuzeo token, tj. kada je postao Master kontroler, on može modifikovati ova tri bita i time izabrati poruku koju želi da pošalje određenom mikrokontroleru u mreži. Nakon izvršenja slanja i prijema poruke, i unapred definisanog vremena, potrebno je modifikovati poruku, tj. upisati tri bita koja odgovaraju Token poruci, čime se Token vraća na mrežu (Token kruži u mreži sve dok ga neki mikrokontroler ponovo ne preuzme). Poruke koje se koriste u ovoj Token ring mreži su prikazane u sledećoj tabeli:

PorukaBitski prikaz porukeToken poruka111Poruka 0.000Poruka 1.001Poruka 2.010Poruka 3.011

Poruke koje se prenose između mikrokontrolera se ustvari sastoje u različitom paljenju i blinkanju LED dioda.

Poruka 0: Sve četiri diode se pale i gase istovremeno, tj. blinkaju istom frekvencijom.

Poruka 1: Diode se pale po šablonu koji se naziva trčeće svetlo. Naime, najpre se upali prva dioda. Druga dioda se pali tek nakon gašenja prve, treća nakon gašenja druge, a četvrta nakon gašenja treće, i tako u krug.

Poruka 2: Istovremeno se pale prva i treća dioda, a kada se one ugase, pale se druga i četvrta. Drugim rečima, ovde imamo naizmenično blinkanje prve i treće diode sa drugom i četvrtom.

Poruka 3: Naizmenično blinkanje prve i četvrte diode sa drugom i trećom.

Mikrokontroler prilikom slanja jednog bajta podataka, ustvari šalje 10 bita, zato što je kontroler tako projektovan. Naime, sam kontroler svakom bajtu podataka dodaje po jedan bit na početku i kraju, tj. Dodaje Start i Stop bit. Start bit, kontroleru koji očekuje prijem poruke, signalizira da prijem počinje, dok stop bit signalizira završetak prijema poruke. Ovi bitovi nisu navedeni na prethodnoj slici zato što ih sam kontroler automatski implementira prilikom slanja poruke.

4.Kod

Page 46: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

Kod je pisan u Asembleru i kompajliran u softveru Arhimedes bez simulacije.U oblasti 4 prikazane su sve funkcije ponaosob, kao i glavni program. Opis funkcije se nalazi ispred, a postoje i dodatni in-line komentari.

Analiza algoritma na nivou jednog modula prikazanog na slici 4.1.

Nakon uključenja sistema napajanja ulazi se u fazu inicijalizacije. U toku ove faze obavljaju se sledeće aktivnosti:

definisanje funkcija i promenljivih koji se koriste u kodu (poglavlje 4.1.); definisanje hardverskih zahteva (poglavlje 4.2.); postavljanje rada tajmera T0 i T1 (poglavlje 4.3.). U okviru postavljanja rada

tajmera, definisana je i procedura za obradu prekida kod tajmera, što se može videti u poglavlju 4.3.1.;

resetovanje RAM-a (poglavlje 4.4.); postavljanje rada displeja (poglavlje 4.7.) U okviru ovog poglavlja definisane

su i tabele za prikaz tekstova, tj. definisan je tekst koji se pojavljuje u prvom i drugom redu displeja (poglavlja 4.7.1. i 4.7.2.).

Nakon završetka inicijalizacije, prelazi se na ispisivanje početne poruke (važi samo za Master modul) i LED test. Početna poruka glasi:

“Elektronski fak.MIPS LAB”

Početnu poruku na displeju ispisuje samo Master mikrokontroler, dok sva četiri mikrokontrolera odrađuju LED test. LED test se sastoji u blinkanju svih dioda 10s. Sve ovo se može videti u poglavlju 4.5.

Po završetku ispisivanja početne poruke Master kontroler pušta Token da kruži mrežom (poglavlje 4.6.).

Sve prethodno izvršene faze bile su postavljanje sistema za ispravno funkcionisanje. Sada, nakon izvršenja ovih faza sledi beskonačna petlja u okviru koje se izvršava glavni program (poglavlje 4.9.). U okviru glavnog programa čeka se događaj. Događaj može biti pritisak na neki taster, čime kontroler preuzima token i postaje Master, ili serijski prekid. U zavisnosti od toga koji se od ovih događaja javi, izvršava se rutina koja će obraditi taj događaj, kao što se iz algoritma može videti.

Ukoliko dođe do pritiska tastera, ulazi se u meni (SWITCH stanje u algoritmu). Iz menija se u svakom trenutku može izaći pritiskom na taster ESC. U meniju se vrši odabir ciljnog mikrokontrolera kome se šalje poruka, i poruka koja se šalje (poglavlje 4.9.).

U toku odabira odredišnog kontrolera, kao i poruke koja će biti poslata, sve promene tih parametara se mogu videti na displeju (poglavlje 4.9.1.). Takođe, u okviru koda koji je opisan u poglavlju 4.9.1. se pozivaju podprogrami čiji je opis dat u poglavljima 4.9.3. i 4.9.4. Tada se na displeju ispisuje tekst sledećeg sadržaja:

Page 47: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

“Prima kontr. __Od: __ Poruka: __”

Na osnovu ovog teksta se može pratiti tok komunikacije, tj. ko šalje, kome šalje i šta šalje.

U drugom slučaju, u okviru glavnog podprograma, događaj može biti serijski prekid. Ukoliko dođe do serijskog prekida, kontroler odmah prelazi na rutinu za obradu serijskog interrupt-a (poglavlje 4.8.). Serijski prekid će se javiti kada mikrokonroler primi poruku. Nakon prijema, a u okviru rutine za obradu prekida, vrši se ispitivanje da li je poruka koja je primljena namenjena tom kontroleru, ili nekom drugom. Ukoliko je poruka stigla na pravu adresu, ide se na izvršavanje te poruke (poglavlje 4.9.2.). Ali, ukoliko se ustanovi da je primljena poruka namenjena nekom drugom mikrokontroleru, poruka se prosleđuje, tj. šalje dalje ka narednom kontroleru u mreži.

ALGORITAM

Page 48: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

Slika 4.1

4.1 Definisanje funkcija i promenljivih

-definišemo funkcije i promenljive koje koristimo u našem programu

STATUS EQU 20H

Page 49: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

TIME EQU STATUS.0 ;MERENJE VREMENA U INTERAPTU TR0BLSLOW EQU STATUS.1 ;BLINK SLOWBLFAST EQU STATUS.2 ;BLINK FASTSLBLINK EQU STATUS.3 ;slow blink on/offFABLINK EQU STATUS.4 ;fast blink on/offMENUFLAG EQU STATUS.5 ;promena parametara u potpr. MENUKOMFLAG EQU STATUS.6 ;VALIDNA KOMANDA IZ MREZELCDISPIS EQU STATUS.7 ;ZAHTEV ZA ISPIS NA LCD

STATUS1 EQU 21HZAHSLA EQU STATUS1.0 ;ZAHTEV ZA PROMENU 'tokena'RESKOM EQU STATUS1.1 ;FLAG ZA RESETOVANJE KOMANDE PRIKADR EQU 30H ;BAJT ZA PRIKAZ ADRESIRANOG KONTROLERAPRIKPOR EQU 31H ;BAJT ZA PRIKAZIVANJE PORUKECHARBRO EQU 32H ;BROJAC KARAKTERA ZA ISPISPOMLO EQU 33HPOMHI EQU 34HPAUSE EQU 35H ; PAUZE U INTERAPTU U KORACIMA OD 1mSSLOWCNT EQU 36H ;BROJAC VREMENA ZA SLOW BLINKFASTCNT EQU 37H ;BROJAC VREMENA ZA FAST BLINKADRESA EQU 38H ;ADRESA KONTROLERA KOJI SALJE PORUKUKOMANDA EQU 39HPRIJEM EQU 3AH ;PRIMLJENI BAJT SA SERIJSKOG PORTAKOPIJA EQU 3BH ;KOPIJA PRIMLJENOG BAJTA

4.2 Hardverski zahtevi

-definišemo hardverske zahteve, na kojim portovima će nam biti tasteri ESC, ENTER, LEVO, DESNO

Page 50: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

ENABLE EQU P3.7 ;ENABLE LCDRS EQU P3.6 ;REGISTAR SELECTBLIGHT EQU P3.5 ;BACK LIGHT LCD-a

ESC EQU P2.4 ;TASTER ESCENTER EQU P2.5 ;TASTER ENTERLEFT EQU P2.6 ;TASTER LEVORIGHT EQU P2.7 ;TASTER DESNO

4.3 Inicijalizacija tajmera

- inicijalizujemo tajmer, podešavamo tajmer T1 u autoreload režim i koristicemo ga za definisanje baud rate-a, a T0 kao 16bit tajmer koji ćemo koristi za definisanje vremenskih intervala potrebnih za izvršenje programa.

GLAVNI MOV IE,#00H ;zabrana svih interapta MOV SP,#70H ;definisanje steka

;(0FDH - 9600 Q=11.0592MHz)INIC: MOV TH1,#0FDH ;definisanje brzine tajmera T1 MOV TL1,TH1 MOV TMOD,#021H ;T1 = AUTORELOAD, T0 = 16b_TIMER MOV IP,#010H ;definisanje prioriteta MOV SCON,#050H ;dozvola serijskog prijema SETB TR1 ;STARTUJE tajmer 1 MOV TH0,#0FCH MOV TL0,#067H ;INT T0 NA 1mS SETB TR0 ;STARTUJE tajmer 0

4.3.1. Obrada prekida tajmera T1, i definisanje paljenja dioda

TR0IRQ PUSH ACC PUSH PSW

BLINKER JNB BLSLOW,MABYF ;BLSLOW= flag 'slow' blinkanja DEC SLOWCNT ;dekrementira brojac za slow blink na

100msec MOV A,SLOWCNT JNZ MERIVRE MOV SLOWCNT,#0200 ;slow blink na 200msec CPL SLBLINK ;komplementira flag od koga zavisi

da li su diode upaljene ili ugasene JB SLBLINK,PALISL MOV A,PRIKADR ;promenljiva PRIKADR je uvek 0000+

0001,0010,0100,1000b CPL A ;tako da mora da se komplementira,

jer se diode pale sa '0' ANL A,#00001111B

Page 51: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

ORL P2,A ;gasi diode, osim one koja je definisana sa PRIKADR

JMP MERIVRE ;skace na labelu za merenje vremena

PALISL ANL P2,#11110000B ;pali sve LED JMP MERIVRE

MABYF JNB BLFAST,MERIVRE ;BLFAST= flag 'fast' blinkanja DEC FASTCNT

MOV A,FASTCNT ;FASTCNT= brojac za fast blink na 75msec JNZ MERIVRE MOV FASTCNT,#075 CPL FABLINK JB FABLINK,PALIFA MOV A,PRIKPOR CPL A ANL A,#00001111B ORL P2,A JMP MERIVRE

PALIFA ANL P2,#11110000B ;pali sve LED

MERIVRE JNB TIME,IZIRQ ;merenje vremena u interaptu tr0 dekrementiranjem promenljive PAUSE,

DEC PAUSE ;ako je setovan flag za merenje vremena TIME

MOV A,PAUSE JNZ IZIRQ CLR TIME ;brise flag TIME po odbrojavanju PAUSE

milisekundi

IZIRQ MOV TH0,#0FCH ;definisanje vremena za ponovno generisanje interapta tr0

MOV TL0,#067H ;INT T0 NA 1mS POP PSW POP ACC RETI

4.4 Resetovanje RAM-a

- poželjno je resetovati RAM na početku izvršavanja programa, i to na lokacijama od 08-70H

MOV R0,#08RESR MOV A,#0 MOV @R0,A

Page 52: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

INC R0 MOV A,R0 CJNE A,#070H,RESR ;RESETUJE RAM OD 08-70H

4.5 Startna sekvenca

- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski fak. MIPS LAB”, kao dodatnu proveru stavili smo blinkanje LED dioda u trajanju od 10sec. Time će studenti imati uvid kada je sistem stvarno resetovan i da li je u funkciji.

MOV IE,#092H ;ENABLE INTERRUPTS, T0, SPI CALL PAUSE10MS ;PAUZA 10mS CALL LCDINIC ;INICIJALIZACIJA DISPLEJA

MOV R7,#0 ;BROJ PORUKE ZA PRIKAZ CALL PORPRIK1 ;PRIKAZ PORUKE NA LCD_U PRVI RED CALL PORPRIK2 ;PRIKAZ PORUKE NA LCD_U DRUGI RED

MOV R0,#040 ;PAUZA 40X250mS=10secPAU10S ANL P2,#11110000B ;UKLJUCUJE LED MOV PAUSE,#0125 SETB TIME

JB TIME,$ ORL P2,#00001111B ;ISKLJUCUJE LED

MOV PAUSE,#0125 SETB TIME

JB TIME,$ DJNZ R0,PAU10S

MOV R7,#01 CALL PORPRIK CALL PORPRIK2

MOV PRIKADR,#00000001B ;PROMENLJIVA ZA PRIKAZIVANJE CILJNE ADRESE

MOV PRIKPOR,#00000001B ;PROMENLJIVA ZA PRIKAZIVANJE PORUKE ZA SLANJE

4.6 Adresiranje kontrolera i puštanje tokena na mrežu

-program je univerzalan, tj. jedina razlika u kodu među kontrolerima je usledećih nekoliko linija. Ovde definišemo adresu uredjaja, i master kontroleru upisujemo naredbu za puštanje tokena.

***Adrese kontrolera su 00, 01, 10, 11

MOV ADRESA,#00 ;ADRESA KONTROLERA

Page 53: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

*** Prilikom generisanja softvera za ostale kontrolere ovaj kod treba ukoloniti

MOV A,#01110000B ;INICIJALNO SLANJE MOV SBUF,A ;SALJE SAMO '0'-ti KONTROLER

-kao početni string puštamo bajt u formatu 0111000

4.7 Inicijalizacija displeja

-inicijalizujemo displej, 2-redni sa 16 karaktera 5x7Displej je sa kontrolerom povezan u 8-bit modu

LCDINIC CLR ENABLE CLR RS NOP MOV P0,#00111000B ;8-bit int,2-redni LCD, 5x7 font SETB ENABLE MOV R0,#050 DJNZ R0,$ CLR ENABLE MOV R0,#050 ;PAUSE 40uS DJNZ R0,$ ;MAX. EXECUTE TIME =40uS

MOV P0,#00001100B ;DISPLAY ON/OFF CONTROL SETB ENABLE MOV R0,#050 DJNZ R0,$ CLR ENABLE MOV R0,#050 ;PAUSE 40uS DJNZ R0,$ ;MAX. EXECUTE TIME =40uS

MOV P0,#00000001B ;CLEAR DISPLAY SETB ENABLE MOV R0,#050 DJNZ R0,$ CLR ENABLE MOV R1,#017 ;PAUSE 1.7mS, MAX.EXE TIME=1.64mSPAU100uS MOV R0,#0100 DJNZ R0,$ DJNZ R1,PAU100uS

MOV P0,#00000110B ;ENTRY MODE SET SETB ENABLE MOV R0,#050 DJNZ R0,$

Page 54: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

CLR ENABLE MOV R0,#050 ;PAUSE 40uS DJNZ R0,$ ;MAX. EXECUTE TIME =40uS RET

4.7.1 Prikazivanje poruka

**** Prikazivanje poruka 1.red ****

PORPRIK MOV R1,#0 CALL ADRLCD ;adresira I red LCD-a MOV CHARBRO,#0 ;brojac karaktera za ispis MOV DPTR,#PORUKE ;adresa tablice s porukama za I red se

smesta u DPH,DPL CALL PRIK12 ;zajednicki potprogram za ispis u I ili

II redu posle adresiranja pocetka reda RET

**** Prikazivanje poruka 2.red ****

PORPRIK2 MOV R1,#040H ;adresa pocetka II reda LCD-a CALL ADRLCD MOV CHARBRO,#0 MOV DPTR,#PORUKE2 ;adresa tablice sa porukama za II red CALL PRIK12 RET

;ispisivanje poruke u I ili II redu posle adresiranja odgovarajuceg reda LCD-a i tablice za I ili II red ispisa

PRIK12 CLR C MOV A,R7 ;U R7 JE BROJ PORUKE (0-15) ANL A,#00001111B RL A ;mnozi broj poruke sa 16(max broj karaktera u

redu), da bi mogao da se pozicionira na odgovarajucu RL A RL A RL A

ADDC A,DPL ;dodaje broj poruke pomnozen sa 16 (R7x16) na pocetnu adresu tablice

MOV DPL,A MOV A,DPH ADDC A,#0 MOV DPH,A MOV POMLO,DPL ;POMHI,POMLO su pomocne promenljive za

smestaj data pointera, za citanje odgovarajuceg karaktera odgovarajuce poruke iz tablice

MOV POMHI,DPHNEXTchr MOV DPL,POMLO MOV DPH,POMHI MOV A,CHARBRO MOVC A,@A+DPTR ;konstanta iz tablice u akumulator CALL LCDSTAMP ;stampa 1 karakter (iz acc) na LCD

Page 55: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

INC CHARBRO ;povecava brojac karaktera do 16 MOV A,CHARBRO CJNE A,#016,NEXTchr RET

4.7.2. Tabele za prikaz testova

****Tabele tekstova za ispis 1. reda****

PORUKE DB 'Elektronski fak.' ;00 DB 'Prima kontr. ' ;01

****Tabele tekstova za ispis 2. reda****

PORUKE2 DB ' MIPS LAB ' ;00 DB 'Od: Poruka: ' ;01

4.8 Obrada serijskog prekida

-u trenutku pojave serijskog prekida sve bitne radnje za iyvršavanje podataka čuvamo u steku, tj trenutno stanje akumulatora, registra R0, PSW guramo u stek kako bi smo oslobodili date registre za obradu prekida

RECEIVE PUSH ACC ;akumulator na 'stack' MOV A,R0 ;registar R0 na stack

PUSH ACC PUSH PSW ;psw gura na stack

CLR RI ;fleg primljenog bajta

-kopiramo primljeni bajt u promenljivu “PRIJEM” i vršimo analizu poruke

MOV PRIJEM,SBUF ;primljeni bajt u promenljivu 'prijem'

MOV A,PRIJEM ANL A,#01110000B ;IZDVOJI PORUKU CJNE A,#01110000B,IMAPOR

JMP SALJI ;AKO JE PORUKA 111, MOZE DA PROMENI PORUKU

IMAPOR JMP DEKOD

-slanje poruke nakon izlaska iz menija

Page 56: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

SALJI JNB ZAHSLA,SLAMNU CLR ZAHSLA

MOV A,PRIJEM ANL A,#11110011B ;RESETUJE POCETNU ADRESU MOV PRIJEM,A CLR C MOV A,ADRESA RLC A RLC A ;POMERI POC.ADRESU DVA MESTA ULEVO ORL A,PRIJEM MOV PRIJEM,A

MOV R0,#0 CLR C MOV A,PRIKADR ;na osnovu promenljive PRIKADR

ROTRADR RRC A ;racuna ciljnu adresu u R0, moze da bude 0,1,2 ili 3

JC DODADR INC R0

JMP ROTRADR

DODADR MOV A,PRIJEM ANL A,#11111100B ;RESETUJE CILJNU ADRESU

MOV PRIJEM,A MOV A,R0 ;U R0 SE NALAZI CILJNA ADRESA ORL A,PRIJEM MOV PRIJEM,A

MOV R0,#0 CLR C MOV A,PRIKPOR ;na osnovu promenljive PRIKPOR definise

poruku za ciljni kontroler u R0

ROTRPOR RRC A JC UBACPOR

INC R0 JMP ROTRPOR

UBACPOR MOV A,PRIJEM ANL A,#10001111B

MOV PRIJEM,A ;RESETUJE PORUKU MOV A,R0 SWAP A ORL A,PRIJEM ;ubacuje novu por. u vec primljeni bajt MOV PRIJEM,A JMP SAMOSL

; SLANJE DOK JE NEKI OD KONTROLERA U PODESAVANJU MENIJA

SLAMNU JNB MENUFLAG,SAMOSL

Page 57: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

MOV A,PRIJEM ANL A,#11110011B ;RESETUJE POCETNU ADRESU MOV PRIJEM,A CLR C MOV A,ADRESA RLC A RLC A ;POMERI POC.ADRESU DVA MESTA ULEVO ORL A,PRIJEM MOV PRIJEM,A

MOV R0,#0 CLR C MOV A,PRIKADR

ROTADR RRC A JC ADRKOD

INC R0 JMP ROTADR

ADRKOD MOV A,PRIJEM ANL A,#11111100B ;RESETUJE CILJNU ADRESU

ORL A,R0 ;U R0 SE NALAZI CILJNA ADRESA MOV PRIJEM,A JMP SAMOSL

-dekodiranje primljenjog bajta

DEKOD MOV A,PRIJEM ANL A,#00000011B ;IZDVOJI CILJNU ADRESU

CJNE A,ADRESA,LOSAADR ;AKO SE ADRESA NE ODNOSI NA TAJ KONTROLER, SAMO PROSLEDI

JMP OKADR

LOSAADR JMP SAMOSL

-poruka nije prazna, sledi izvršavanje komande

OKADR MOV A,PRIJEM SWAP A ANL A,#00000011B ;KOMANDA 0-3

MOV KOMANDA,A JB RESKOM,RESETK ;FLAG ZA RESETOVANJE KOMANDE SETB KOMFLAG JMP SAMOSL

-reset komande

RESETK MOV A,PRIJEM ORL A,#01110000B

MOV PRIJEM,A CLR RESKOM

-prosledjivanje dalje

SAMOSL MOV SBUF,PRIJEM ;slanje u sledeci kontroler

Page 58: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

MOV KOPIJA,PRIJEM ;kopija za ispis na LCD SETB LCDISPIS ;zahtev za ispis posle svakog

primljenog bajta

- završetak obrade serijskog prekida i povratak na izvršenje glavnog programa

POP PSW ;'povlaci' psw sa steka POP ACC MOV R0,A ;R0 sa steka

POP ACC ;akumulator sa steka RETI

- predaja

TRANS CLR TI ;reset transmit flag-a, na kraju slanja svakog bajta

RETI

4.9 Glavni program

-funkcija glavnog programa je detekcija pritiska tastera, obrada pritiska tastera, ispis na displej osnovnih podataka (ko salje poruku, tj kod koga je token, kome se šalje poruka i koja poruka se šalje), izvršavanje komandi (ispis poruka).

Page 59: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

-tasterima je dodat softverski debouncing, tj. sprečeno istitravanje i time eventualne greške prilikom kretanja kroz meni

-tasterom ESC je uvek moguće izaći iz menija, samim tim se kontroler resetuje i spreman je za nove komande

GP JNB LCDISPIS,GP1 CLR LCDISPIS ;ZAHTEV ZA ISPISIVANJE NA LCD-u CALL PRINT ;POTPROGRAM ZA ISPIS

GP1 JNB KOMFLAG,GP2 ;ZAHTEV ZA IZVRSENJE KOMANDE CALL IZVRSI

GP2 MOV A,P2 ;ISPITIVANJE TASTATURE -definisali smo da je dovoljan pritisak na bilo koji taster da bi se ušlo u meni

ANL A,#11110000B ;PRITISAK NA BILO KOJI TASTER JE DOVOLJAN ZA ULAZAK U MENI

CJNE A,#11110000B,ISPTAST JMP GP

ISPTAST MOV PAUSE,#010 ;PAUZA 5ms SETB TIME

JB TIME,$ MOV A,P2 ANL A,#11110000B CJNE A,#11110000B,MENU ;STVARNI ULAZAK U MENU JMP GP

-razlikovanje ismeđu dela menija za odabir kontrolera kome se šalje i dela menija za odabir poruke je u brzini blinkanja dioda, pritom dioda koja ne blinka već svetli konstantno odredjuje željenu opciju

MENU SETB MENUFLAG CLR BLFAST SETB BLSLOW ;SPORIJE BLINKANJE DIODA

MOV SLOWCNT,#01OTPUSTI MOV A,P2 ANL A,#0F0H

CJNE A,#0F0H,OTPUSTI ;CEKA DA SE OTPUSTI BILO KOJI OD TASTERA

MOV PAUSE,#050 ;PAUZA 50mS POSLE ULASKA U MENU SETB TIME JB TIME,$

-podešavanje adrese ciljnog kontrolera

TARGET JB ESC,TMENU ;TASTERI SU AKTIVNI '0' JMP EXMENU ;IZLAZAK IZ MENIJA NA ESC TASTER

TMENU JB RIGHT,ISPDES CLR C

Page 60: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

MOV A,PRIKADR RLC A CJNE A,#00010000B,OKTL ;granica za Shiftovanje ulevo

MOV A,#00000001B

OKTL MOV PRIKADR,A CALL STAMPA ;ispisivanje promena na LCD-u JNB RIGHT,$ ;ceka da se otpusti taster

MOV PAUSE,#050 ;pauza 5mS po otpustanju tastera SETB TIME JB TIME,$

ISPDES JB LEFT,ISPENDT ;ispitivanje tastera 'levo' CLR C MOV A,PRIKADR

RRC A ;shiftovanje udesno JNC OKTR ;granica za shift desno je cary flag MOV A,#00001000B

-tokom kretanja kroz meni, tj. odabir stavki, vrši se ispis na LCD, poruka za ispis na LCD se šalje po otpustanju tastera

OKTR MOV PRIKADR,A JNB LEFT,$ ;ceka da se otpusti taster levo

CALL STAMPA ;ispisivanje promene na LCD-u MOV PAUSE,#050 ;pauza po otpustanju zbog istitravanja SETB TIME JB TIME,$

ISPENDT JB ENTER,TARGET ;petlja ispitivanja promene ciljne adrese

-podešavaje poruke za ciljni kontroler

CLR BLSLOW SETB BLFAST ;brzo blinkanje LED-ova MOV FASTCNT,#01 MOV PAUSE,#050 ;pauza zbog istitravanja SETB TIME JB TIME,$ JNB ENTER,$ ;ceka otpust tastera 'enter' MOV PAUSE,#050 SETB TIME JB TIME,$

KOMND JNB ESC,EXMENU ;izlaz iz menija

JB RIGHT,ISPPORD CLR C ;pritisnut taster right MOV A,PRIKPOR RLC A ;shiftovanje ulevo CJNE A,#00010000B,OKPL ;granica za shift ulevo

MOV A,#00000001B

OKPL MOV PRIKPOR,A CALL STAMPA ;prikaz promena na lcd-u

Page 61: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

JNB RIGHT,$ MOV PAUSE,#050 ;pauza po otpustanju tastera desno SETB TIME JB TIME,$

ISPPORD JB LEFT,ISPPEND CLR C ;pritisnut taster levo MOV A,PRIKPOR

RRC A JNC OKPR ;granica za shift desno je setovanje cary

fleg-a MOV A,#00001000B

OKPR MOV PRIKPOR,A CALL STAMPA JNB LEFT,$ ;ceka otpust tastera levo

MOV PAUSE,#050 ;pauza po otpustanju tastera levo SETB TIME JB TIME,$

-nakon završenog prolaska kroz meni, tj. pritiska na taster enter nakon odabira poruke, sledi zahtev za slanje poruke

ISPPEND JB ENTER,KOMND SETB ZAHSLA ;ZAHTEV ZA SLANJEM KOMANDE

-izlazak iz menija i gase se LED

EXMENU CLR BLSLOW ;nema vise blinkanja CLR BLFAST ;ni sporo, ni brzo ORL P2,#00001111B ;GASI sve LED JNB ENTER,$ ;ceka otpustanje tastera 'enter' JNB ESC,$ ;ili 'esc' MOV PAUSE,#050 SETB TIME JB TIME,$ CLR MENUFLAG

JMP GP

4.9.1.ispis na LCD-u dok se menjaju parametri Ovaj deo koda je upisan u sa četiri kontrolera ali se izvršava samo na glavnom koji ima displej

STAMPA MOV KOPIJA,#0 ;u promenljivu 'kopija' smesta se primljeni bajt sa serijskog porta

CLR C MOV A,ADRESA RLC A

Page 62: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

RLC A ;POMERI POC.ADRESU DVA MESTA ULEVO ORL A,KOPIJA MOV KOPIJA,A

MOV R0,#0 CLR C MOV A,PRIKADR

POMERIR RRC A JC CILJADR

INC R0 JMP POMERIR

CILJADR MOV A,R0 ;U R0 SE NALAZI CILJNA ADRESA ORL A,KOPIJA MOV KOPIJA,A MOV R0,#0 CLR C MOV A,PRIKPOR

POMPORR RRC A JC SLOZIKOM

INC R0 JMP POMPORR

SLOZIKOM MOV A,R0 ; U R0 JE PORUKA KOJA SE PODESAVA SWAP A ORL A,KOPIJA MOV KOPIJA,A

CALL PRINT RET;STAMPA NA LCD-UPRINT MOV R1,#00EH ;broj ADRESIRANOG KONTROLERa se ispisuje

u prvom redu na poziciji 0Eh CALL ADRLCD ;postavlja adresu na LCD-u

MOV A,KOPIJA ANL A,#00000011B

- dodajemo 48, jer su brojevi 0-9 predstavljeni u ASCII kao 48,49,50,51...

ORL A,#00110000B CALL LCDSTAMP

-pozicija za kontorler koji šalje poruku ispisuje se u 2. redu na poziciji 44h

MOV R1,#044H CALL ADRLCD MOV A,KOPIJA ANL A,#00001100B CLR C RRC A RRC A

ORL A,#00110000B ;DODAJE 48 CALL LCDSTAMP

Page 63: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

-pozicija za broj poruke koja se šalje ispisuje se u 2. redu na poziciji 4Eh, poruka 111 na poziciji za broj poruke ispisuje blanko ‘ ’

MOV R1,#04EH CALL ADRLCD MOV A,KOPIJA ANL A,#01110000B SWAP A CJNE A,#07,OKPORUKA ;PORUKA 111 NA POZICIJI ZA BROJ PORUKE

ISPISUJE ' ' MOV A,#' ' CALL LCDSTAMP SETB BLIGHT ;GASI BACK LIGHT

JMP EXPRINT

OKPORUKA ORL A,#00110000B ;DODAJE 48 CALL LCDSTAMP CLR BLIGHT ;UKLJUCUJE POZADINSKO SVETLO LCD-a

EXPRINT RET

4.9.2. Izvršenje komandi

-u ovom delu koda definisali smo komande tj. poruke koje se salju.Radi lakse prezentacije pojednostavili smo rešenje i implementirali 4 poruke koje se razlikuju u načinu blinkanja LED dioda

IZVRSI MOV A,KOMANDA ;PRIMLJENA KOMANDA SA SER. PORTA JZ KOM0

-poruka 00; blinkanje sve četiri LED

KOM0 MOV R0,#050IKOM0 ANL P2,#11110000B

MOV PAUSE,#0100 SETB TIME JB TIME,$ ORL P2,#00001111B MOV PAUSE,#0100 SETB TIME JB TIME,$

DJNZ R0,IKOM0

-poruka 01; pomeranje jedne upaljene LED u desno

Page 64: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

KOM1 CJNE A,#01,KOM2 MOV R0,#050

MOV CHARBRO,#00000001B

IKOM1 ORL P2,#00001111B MOV A,CHARBRO CPL A

ANL P2,A MOV PAUSE,#0200 SETB TIME JB TIME,$

CLR C MOV A,CHARBRO RLC A CJNE A,#00010000B,IKOM2 MOV A,#00000001B

IKOM2 MOV CHARBRO,A DJNZ R0,IKOM1

ORL P2,#00001111B ;PALI SVE LED JMP EXKOM

-poruka 10; naizmenično paljenje 1. i 3. LED pa 2. i 4. LED

KOM2 CJNE A,#02,KOM3 MOV R0,#050IZKOM2 MOV P2,#0FFH ;SVE DIODE SU UGASENE ANL P2,#11111010B ;PALI 1. I 3.

MOV PAUSE,#0200 SETB TIME JB TIME,$

ORL P2,#11111111B ANL P2,#11110101B ;PALI 2 I 4. LED

MOV PAUSE,#0200 SETB TIME JB TIME,$ DJNZ R0,IZKOM2 ORL P2,#00001111B

JMP EXKOM

-poruka 11; naizmenično paljenje 2. i 3. LED pa 1. i 4. LED

KOM3 CJNE A,#03,EXKOM MOV R0,#050

IZKOM3 MOV P2,#0FFH ;SVE DIODE SU UGASENE ANL P2,#11111001B ;PALI 2. I 3.

MOV PAUSE,#0200 SETB TIME JB TIME,$

ORL P2,#11111111B ANL P2,#11110110B ;PALI 1 I 4. LED

MOV PAUSE,#0200 SETB TIME JB TIME,$

Page 65: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

DJNZ R0,IZKOM3 ORL P2,#00001111B JMP EXKOM

EXKOM MOV R0,#020 ;PAUZA 20x250mS= 5sec POSLE IZVRSENJA KOMANDE

PAU5S MOV PAUSE,#0250 SETB TIME

JB TIME,$ DJNZ R0,PAU5S

-reset komande, tj upis 111 na poziciju poruke

SETB RESKOM ;ZAHTEV ZA RESET KOMANDE, TJ UPIS 111 na poziciji poruke

CLR KOMFLAG ;brise zahtev za izvrsenjem komande

RET

4.9.3. Potprog. za postavljanje adrese reda ili karaktera na LCD

ADRLCD CLR ENABLE CLR RS MOV R0,#050 ; 50 uS DJNZ R0,$

MOV A,R1 ;U R1 JE ZELJENA ADRESA SETB ACC.7 ;ACC.7 je uvek setovan kod postavljanja

adrese MOV P0,A ;DISPLAY DATA RAM ADRESS SETB ENABLE MOV R0,#050 DJNZ R0,$ CLR ENABLE MOV R0,#050 ;PAUSE 50uS DJNZ R0,$ ;MAX. EXECUTE TIME =40uS

RET

4.9.4. Potprogram za štampanje jednog karaktera na LCD

LCDSTAMP SETB RS CLR ENABLE MOV R0,#050 ; 50 uS DJNZ R0,$

MOV P0,A SETB ENABLE

Page 66: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

MOV R0,#050 DJNZ R0,$ CLR ENABLE MOV R0,#050 ;PAUSE 50uS DJNZ R0,$ ;MAX. EXECUTE TIME =40uS RET

;--- SOFT. PAUZA 10mS ---PAUSE10MS MOV R1,#040 ;40x250uS=10mSPET250u MOV R0,#0250 DJNZ R0,$ DJNZ R1,PET250u RET

5. Programiranje mikrokontrolera AT89S8253

Page 67: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

Program koji smo napisali u asembleru možemo istestirati i kompajlirati pomoću više programa kao sto su Arhimed 8051, A51 makro asembler koji je u sastavu Keil uVision 3.

Ukoliko je program ispravan vršimo kreiranje hex fajla. Hex fajl upisujemo u mikrokontroler na način koji je opisan u slikovito prikazanom postupku koji sledi.

Za upis hex fajla koristimo ISP_PROG v1.3 Flexible Atmel AT89xx Flash programmer koji se moze download-ovati sa sajta www.8052.com Programator se sa racunarom povezuje preko serijske 232 veze (na COM port kompjutera).

Programiranje se vrši povezivanjem programatora na konektor JP1, stavljanjem prekidača S1 u stanje uključeno i prebacivanjem jumpera JP6 u mod „program“ . Time smo doveli potrebne signale za In Sistem Programiranje i reset procesora prebacili na programator. Napajanje programatora se vrši sa mikrokontrolerske ploče.

Nakon završenog programiranja (opisano u daljem tekstu) iskopčati programator sa ploče a prekidač i jumper vratiti u prethodni položaj i izvršiti reset mikrokontrolera pritiskom na taster S2 – RESET.

Opis softvera koji se koristi za upis koda je opisan u odeljku 5.1.

Sema programatora prikazana je na sledećoj slici:

Page 68: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

5.1 ISP PROG 1.3

Softver za ovaj programator je spakovan u jednoj izvršnoj datoteci i nije potrebna njegova instalacija, što pojednostavljuje njegovu upotrebu i mobilnost.

Pokretanje programa se vrši dvostrukim klikom na izvršnu datoteku.

Nakon pokretanja programa, ako vam isti prijavi grešku u konektovanju. Treba podesiti odgovarajući COM port na koji ste povezali vaš programator.Primer je prikazan na na sledećoj slici:

Page 69: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

Sledeći korak je odabir kontrolera koji programiramo:

Page 70: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

Zatim učitavamo HEX fajl koji želimo da upišemo u kontroler File – Load Flash File

Na kraju vršimo sledeće radnje u datom redosledu:- brisanje sadržaja kontrolera (CHIP ERASE)- upisivanje zeljenog HEX fajla u kontroler (WRITE FLASH)- provera upisanog sadrzaja (VERIFY FLASH)

Page 71: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

Kao dodatne opcije korisniku se pruzaju i:-ostavljanje svog potpisa (WRITE USER SIGNATURE)-zaključavanje kontrolera (LOCK DEVICE)

Page 72: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

8. LITERATURA

1. ARHITEKTURE I PROGRAMIRANJE RAČUNARSKIH SISTEMA ZASNOVANIH

NA FAMILIJI PROCESORA 80x86, Mile K. Stojčev, Branislav D. Petrović, I izdanje, Elektronski fakultet, Niš, 1999.

2. Flash microcontroller – Architectural Overview, http://www.atmel.com 3. Flash microcontroller – Memory Organization, http://www.atmel.com 4. ATMEL, SPI AT Microcontrollers, Datasheets, http://www.atmel.com5. Migration from AT89S8252/53 to AT89S8253, http://www.atmel.com6. Obrada prekida kod mikrokontrolera AT89S8253, Saša Đorđević, Seminarski rad, Elektronski fakultet, Niš, 2007.

Page 73: UNIVERZITET U NIŠUes.elfak.ni.ac.rs/Files/MMiljkovic-JJovanovic-Mreza tipa... · Web view- Ovde omogućavamo serijski interapt, inicijalizujemo displej i ispisujemo na displeju “Elektronski

PRILOG 1 – Električna šema razvojnog sistema za AT89S8253