es.elfak.ni.ac.rses.elfak.ni.ac.rs/files/djstevanovic-mstojanovic - varijacije pri... · web...
TRANSCRIPT
1VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
UNIVERZITET U NI[U ELEKTRONSKI FAKULTET
PROJEKATVARIJACIJE PRI MERENJU NAPONA
SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
2VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
MENTOR: STUDENTI:PROF. DR. MILE STOJ^EV DJORDJE STEVANOVIC 11314
MARIO STOJANOVIC 11323SADR@AJ
1. PRENOS PODATAKA / 41.1. UPOREDNE KARAKTERISTINE PARALELNOG I SERIJSKOG PORTA
/ 41.2. KOMBINACIJE PARALELNOG I SERIJSKOG PORTA / 51.3. HANDSHAKE PARALELNI U/I PRENOS / 6 1.4. ZAKLJU^AK / 8
2. [TA SU MIKROKONTROLERI? / 92.1. UVOD / 92.2. MIKROKONTROLERI:TIPOVI AHHITEKTURA I BLOK [EMA / 102.3. MIKROKONTROLERI U ODNOSU NA MIKROPROCESORE / 122.4. STRUKTURA MIKROPROCESORA / 132.5. STRUKTURA MIKROKONTROLERA / 132.6. RAZLIKE IZMEDJU MIKROPROCESORA I MIKROKONTROLER / 14
3. MIKROKONTROLER AT89S8253 / 153.1. UNUTRA[NJA STRUKTURA MIKROKONTROLERA / 153.2. OPIS PINOVA / 163.3. REDUKOVANI RE@IM NAPAJANJA / 193.4. PROGRAMSKA MEMORIJA / 203.5. MEMORIJA PODATAKA / 213.6. PROGRAMSKI STATUSNI REGISTAR / 253.7. TAKTOVANJE MIKROPROCESORA / 263.8. MA[INSKI CIKLUSI / 273.9. BROJA^I/TAJMERI / 27
3.9.1. KONTROLA RADA TAJMERA / 283.9.2. MODOVI RADA TAJMERA 0I1 / 29
3.10. OPIS PREKIDA KOD MIKROKONTROLERA / 314. A/D KONVERTORI / 32
4.1. UVOD U A/D KONVERTORE / 324.2. UVOD U A/D KONVERTOR AD9243AS / 344.3. ANALOGNI ULAZ / 374.4. SINGLE-ENDED MODE OPERACIJA / 39
3VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
4.5. OPERACIONI POJAČAVAČ SA DC POMERANJE NIVOA / 404.6. DIGITALNI ULAZI I IZLAZI / 414.7. VAN OPSEGA (OTR-Out Of Range) / 42
5. MAX232 - 232 DRAJVER/PRIJEMNIK / 436. 74LS244N – OKTALNI BAFER I LINIJSKI DRAJVER / 447. TS272CN - DVOSTRUKI CMOS OPERACIONI POJA^AVA^
VISOKIH PERFORMANSI / 458. NAPAJANJE / 479. ELEKTRI^NA [EMA, BLOK [EMA, LAYOUT SLOJEVI,
REALIZOVAN PROJEKAT I SPECIFIKACIJA KORI[]ENIH KOMPONENTI / 48
10. KEIL uVision3 / 5210.1. UVOD / 5210.2. OPIS PROGRAMA / 5210.3. STATUS BAR / 5410.4. LOGI^KI ANALIZATOR / 5510.5. MEMORIJSKI PROZOR / 5610.6. SERIJSKI PROZOR / 5710.7. KREIRANJE PROJEKTA U uVision3 / 5810.8. SIMULACIJA PROJEKTA / 6610.9. ISPRAVLJANJE GRE[AKA U PROGRAMU / 6810.10.GENERISANJE HEX FAJLA / 6910.11.UPUTSTVO ZA PROGRAMIRANJE MIKROKONTROLERA / 72
11. PROGRAMIRANJE MIKROKONTROLERA / 7711.1. ALGORITMI GLAVNOG PROGRAMA I POTPROGRAMA / 7711.2. KÔD PROGRAMA / 80
12. PC PROGRAM “MERENJA” / 9012.1. UVOD / 9012.2. PREGLED TEHNOLOGIJA / 90
12.2.1. Mictosoft .NET Framework / 9012.2.2. SharpDevelop / 91
12.3. OPIS PC PROGRAMA “MERENJA” / 9212.4. IZGLED I UPUTSTVO ZA RAD PC PROGRAMA “MERENJA” / 93
13. LABORATORIJSKE VE@BE / 9713.1. UPUTSTVO ZA LABORATORIJSKU VE@BU / 9713.2. UPUTSTVO ZA KORI[]ENJE APLIKACIJE “MERENJA” / 9713.3. ZADATAK ZA STUDENTE / 101
4VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
14.LITERATURA / 102
1. PRENOS PODATAKA
Prenos podataka predstavlja prenošenje kôdirane informacije kroz prenosni medijum (kabl, ma-gistralu 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 KARAKTERISTINE PARALELNOG I SERIJSKOG PORTA
Na Slici 1.1 i Slici 1.2 ilustrovani 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.
5VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Slika 1.1. Ilustracija paralelnog prenosa (n=8)
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
6VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
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 15m)
- 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).
Komunikacija u okviru mikroprocesorskog sistema ostvaruju se preko sistemske magistrale u paralelnoj formi. Da bi se ostvarilla sprega sistema koji sa jedne strane obavljaju paralelni, a sa druge strane serijski prenos podataka, neophodno je izvršiti paralelnoserijsku konverziju. Za tu svrhu se najčešće koriste pomerački registri. Nisu retke aplikacije koje koristi oba tipa konverzije, i paralelno-serijsku i serijsko-paralelnu, kako bi se ostvario prenos n-tobitnih paralelnih podataka od predajnika do prijemnika preko serijske komunikacione linije.
1.2. PRIMER KOMBINACIJE PARALELNOG I SERIJSKOG PORTA
Slika 1.3. Ilustracija paralelnog i serijskog prenosa unutar mikroprocesorskog sistema
U samom mikroprocesorskom sistemu prisutne su istovremeno i serijska i paralelna komunikacija. Na Slici 1.3. upravo je ilustrovan jedan takav primer. Naime, na mikrokontroler PIC18F452, koji čini jezgro sistema, povezane su sledeće komponente/uređaji:
7VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
- Flash memorija 29F040B (paralelni prenos podataka)- SPI EEPROM 25LC640 (serijski prenos)- LCD modul, 2x16 karaktera (paralelni prenos)- GSM/GPRS modul Siemens TC35 (serijski prenos)- PC računar (serijski prenos).
Kao što se vidi na slici, multipleksiranjem (preko integrisanog kola MC14052) i GSM/GPRS modul i PC ostvaruju komunikaciju sa internim UART modulom mikrokontrolera. Naravno, pošto se koriste samo tri linije (Rx, Tx i masa) komunikacija je bez handshaking-a.
Napomena: U ovom poglavlju pomenuti su termini USB (Universal Serial Bus), UART (Universal Asyncronus Receiver Transmitter) i SPI (Serial Peripheral Interface). S obzirom da je u radustavljen akcenat na paralelnu komunikaciju, pomenuti tipovi serijske komunikacije nisu detaljnije objašnjavani. Za informacije o pomenutim načinima komunikacije treba konsultovati odgovarajuću literaturu.
1.3. HANDSHAKE PARALELNI U/I PRENOS
Handshake U/I prenos podrazumeva da se podaci iz spoljnjeg okruženja prihvataju od strane mikroprocesora (CPU) preko ulaznog bafera, dok se podaci koje procesor predaje spoljnom okruženju prenose preko izlaznog bafera. Na Slici 1.4 prikazan je primer povezivanja D/A konverora preko paralelnog izlaznog interfejsa.
Mikroprocesor lečuje podatke u izlazni bafer podataka. Izlazne linije pomenutog bafera direktno su povezane na izlazno kolo/uređaj (u ovom slučaju je u pitanju D/A konvertor). Izlazni napon D/A konvertora menjaće vrednost u skladu sa stanjem izlaznog bafera podataka.
Razmotrićemo sada još jedan primer paralelnog interfejsa kod kojeg se tokom komunikacije ko-riste handshake upravljačke linije (Slika 1.5) . Kada U/I uređaj preda podatke interfejsu, on prvo postavlja važeće podatke na linijama Ulazni_podaci, a zatim aktivira liniju Pod_Ul_spreman. Interfejs odgovara lečovanjem podatka u Ulazni_bafer i aktivira liniju Potvrda_Ul_Podataka. U/I uređaj nakon prijema signala Potvrda_Ul_Podataka deaktivira podatke i signal Pod_Ul_Spreman.
8VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Slika 1.4. Povezivanje paralelnog izlaznog interfejsa sa D/A konvertorom
Slika 1.5. Povezivanje ulaznog i izlaznog interfejsa
Interfejs nakon primanja podatka postavi statusni bit Ready i aktivira liniju IRn . Kada mikroprocesor prihvati podatak, interfejs deaktivira statusni bit Ready. Zahtev za prekid (IRn), kao i obrada
9VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
prekida, prihvataju se i obrađuju standardno.U slučaju izlaza, interfejs će postaviti Ready statusni bit i generisati zahtev za prekid kada je Izlazni_bafer podataka dostupan. Kada procesor upiše podatke, interfejs resetuje izlazni statusni bit Ready, postavlja podatke na magistralu (Izlazni_podaci) i signalizira U/I uređaju preko linije Pod_Izl_Spremni. Kada je uređaj spreman da prihvati podatke, on lečuje podatke i vraća signal Potvrda_Izl_Signala. Nakon toga, interfejs deaktivira signal Pod_Izl_Spremni i ponovo postavlja izlazni statusni bit na Ready.
1.4. ZAKLJU^AK
Sa pojavom USB porta (najpre kod računara, a zatim kod mikrokontrolera i GSM/GPRS/3G mo-dula) paralelna komunikacija između nekih eksternih uređaja (štampača, skenera itd.) i mikroprocesora polako odlazi u istoriju. Razlog tome su komparativne prednosti koje poseduje USB port, a ovde će se navesti tri najvažnije:
- komunikacija se ostvaruje preko samo četiri linije (napajanje, masa i dve linije za podatke)
- veoma velike brzine prenosa podataka (teoretski, 120MB/s)- moguće je iskoristiti USB port kao izvor napajanja.
Međutim, kao što je napomenuto, ima slučajeva kada je paralelna komunikacija neophodna (sis-temska magistrala kod mikroprocesora, komunikacija mikrokontroler – flash memorija i slično).
Veliki broj potrebnih veza (jedna žica po bitu n-bitnog podatka) ograničava primenu paralelnog prenosa isključivo na relativno kratka rastojanja. Tipičan primer je paralelna magistrala IEEE-488 GPIB, koja je projektovana za komunikaciju između pojedinih sistema/uređaja (najčešće je u pitanju merno-informaciona tehnika), koji su međusobno udaljeni maksimalno 20 m. Uređaji svih renomiranih proizvođača merno-informacione opreme (digitalni osciloskopi, digitalni izvori napajanja, logički analizatori, analizatori spektra itd.) poseduju IEEE-488 GPIB magistralu.
Kada se vrši prenos podataka na veća rastojanja koristi se jedinstvena veza, a ne veliki broj veza kao što je to slučaj kod IEEE-488 GPIB.
10VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
2. [TA SU MIKROKONTROLERI?
2.1. UVOD
Svi današnji računari su realizovani od istih gradivnih blokova. To su centralni procesor ili CPU, memorijski podsistem, ulazno-izlazni podsistem, generatora taktne pobude, i sistemska magistrala koja međusobno povezuje pomenute gradivne blokove. Sistemska magistrala se sastoji od adresne magistrale, magistrale podataka, i upravljačke magistrale.
Najveći broj standardnih računara, kakav je na primer PC mašina, se smešta u jedistveno kučište. Periferije kakvi su štampač, displej, skener, tastatura, miš, i druge se povezuju na računarski sistem preko konektora koji su montirani na kučištu. Druge sistemske komponente kakvi su diskovi, memorije proširenja, mrežne kartice i dr., su locirane u samom kučištu ili pak na osnovnoj ploči (motherboard) računara.
Mikroprocesor je integrisano kolo ili čip lociran na osnovnoj ploči koje u suštini predstavlja CPU računarskog sistema. Uglavnom svet PC mašina je taj koji je bio glavni pokretač razvoja sistema baziranih na mikroprocesorima. Imajući u vidu ovakve zahteve za mikroprocesore kažemo da su u novije vreme postali relativno specijalozovane komponente, posebno pogodne (prilagođene) za veoma brzo manipulisanje podacima.
No kod određenih aplikacija veoma često je neophodno ugraditi određeni iznos lokalnog procesiranja na licu mesta procesa. Tako na primer, automat za izdavanje karata na autobuskim stanicama treba da ima određeni nivo autonomnosti u radu (pameti) tako da za unete podatke preko lokalne tastature sam izračuna cenu karte i izda je. Zbog ovakvog načina rada računarske mašine opšte namene ne predstavljaju dobro rešenje (izbor) za ovakav tip aplikacije, prvenstveno zbog velikog gabarita
11VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
(dimenzije) mašine, a takođe i zbog visoke cene. Upravo su ovo idealne aplikacije za mikrokontrolere. Nasuprot mikroprocesorima, mikrokontroleri su više orijentisani ka postizanju superiornijih performansi kod aplikacija namemjenih upravljanju, bezbednosti i pouzdanosti u radu. Imajući u vidu da je cena uređaja baziranih na mikrokontrolerima od izuzetne važnosti za krajnjeg korisnika, mikrokontroleri su integrisali na čipu veliki broj standardnih periferala, kontrolere raznih tipova uređaja, kao i memoriju. Na osnovu prethodnog mogli bi da kažemo sledeće: Mikrokontroler je računar na čipu. On sadrži skoro sve osnovne gradivne blokove računarskog sistema (CPU, ROM, RAM, U/I periferije tipa AD i DA konvertore, serijske komunikacione interfejse (UART), paralelne interfejs portove (PIA), tajmere/brojače, LCD drajvere, i dr.) koje se mogu integrisati na jedinstvenom čipu. Danas su mikrokontroleri najviše prodavan tip procesora. Ne bez razloga projektanti sistema relativno male složenosti kažu da su to čipovi upravo projektovani po njihovoj meri, tj. čipove o kojima sanjaju.
Nasuprot mikroprocesorima, cena mikrokontrolera je veoma niska (do nekoliko dolara u odnosu na cenu od stotinu dolara kakva je cena mikroprocesora). Za određene aplikacije niska cena mikrokontrolera je idealno rešenje. Taktna frekvencija na kojoj rade, obim adresibilne memorije, i obim podataka sa kojima manipulišu varira od jednog mikrokontrolera do drugog, šta više i kod jednog istog proizvođača, tako da je posao projektanta da izabere najbolji mikrokontroler za datu aplikaciju.
Drugi važan razlog korišćenja mikrokontrolera, u odnosu na PC mašinu, predstavlja njegova kompaktnost koja se može iskazati konstatacijom: Računar na jednom čipu. Svi mikrokontroleri imaju usađenu memoriju na čipu kao i veći broj ulazno-izlaznih interfejs linija. Veliki broj mikrokontrolera poseduje AD i DA konvertore, impulsno-širinski modulisane (PWM) generatore, sofisticirani sistem prekida, veći broj seriskih i paralelnih ulazno-izlaznih portova, fleksibilni sistem tajmer-brojač događaja, LCD drajver, i dr.
Mikrokontroleri se danas koriste u embedded sistemima za upravljanje raznim funkcijama koje sistem treba da obavi. Na primer, u današnjim automobilima ugrađuje se veliki broj (reda 100) mikrokontrolera koji se koriste za upravljanje radom kočionog sistema, ubrizgavanjem goriva, klima sistemom za grejanje-hlađenje, prikazom informacije na pokaznoj tabli, i td. Drugim rečima, jedno-čipni računar omogućava projektantima da
12VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
ugrade računar u bilo kom uređaju koji postavlja makar i minimalne zahteve za određenim iznosom izračunavanja.
Mikrokontroleri se veoma često koriste i u situacijama kada treba da se veoma brzo reaguje na spoljne signale posebno ako se takvi sistemi koriste za rad u realnom vremenu pa zbog toga koriste procesiranje bazirano na obradu prekida. Mikrokontroleri mogu takođe da rade po nadzorom operativnih sistema za rad u realnom vremenu (RTOS) čiji je obim manji, pri čemu ovakvi sistemi bolje reaguju (za kraće vreme) na odzive sistema koji se odnose na rad u realnom vremenu, nego što je to slučaj sa operativnim sistemima opšte namene koji se instaliraju na večim mašinama kakve su recimo PC mašine.
2.2. MIKROKONTROLERI: TIPOVI AHHITEKTURA I BLOK [EMAArhitekture mikrokontrolera se mogu podeliti na sledeća dva tipa:
- Harvard tip - karakteriše se razdvojenim memorijama za program i podatke. Svaki tip memorije ima svoj sopstveni fizički adresni prostor i koristi sopstvenu internu adresnu magistralu. Prednost ove arhitekture je ta što se pristup programskoj memoriji i memoriji za podatke ostvaruje konkurentno. Obvakvim pristupom se skraćuje ukupno vreme izvršenja programa. Proizvođači mikrokontrolera Microchip, Zilog, National Semiconductor i Cypress zasnivaju svoje proizvode na Harvard arhitekturi, mada postoje neke neznatne ali važne razlike u pristupima kako ove kompanije implementiraju arhitekturu. Arhitekture ovih mikrokontrolera su tipične za RISC pristup.
- Princeton tip (tzv. von Neumann) - programska memorija i memorija za podatke dele isti adresni prostor. To znači da se instrukcioni kôd može izvršavati kako iz programske tako i iz memorije za podatke. Poznati proizvođači ovih tipova mikrokontrolera su Intel, Atmel, Motorola i dr. Ključna osobina ovih proizvoda je povećan broj instrukcija i adresnih načina rada koji u kombinaciji sa relokatibilnim softverskim magacinom (stack) omogućavaju efikasno korišćenje programskog jezika visokog nivoa C. Arhitekture ovih mikrokontrolera su tipične za CISC pristup.
Mikrokontroleri i digitalni signal procesori (DSP) su poznati tipovi aplikaciono integrisanih procesora (ASIP). U suštini mikrokontroler je mikroprocesor koji je optimiziran za embedded upravljačke aplikacije. Kod ovakvih aplikacija se obično nadgledaju (monitorišu) i postavljaju brojni jedno-bitni upravljački (control) signali, a pri tome se ne obavlja neko intenzivno izračunavanje nad podacima. Zbog ovoga mikrokontroleri imaju jednostavne staze podataka (datapaths) koje su prilagođene za brzo
13VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
izvršenje operacija na nivou-bita (bit manipulation) kao i operacija čitanja i upis sadržaja bitova sa spoljnih pinova čipa. Pored jednostavne CPU, na istom čipu, mikrokontroleri imaju inkorporirano nekoliko periferalnih komponenata tipične za upravljačke aplikacije, kakve su serijske komunikacione periferije, tajmere/brojače događaja, PWM generatore, AD i DA konvertore, i dr. Pored ostalog programska memorija i memorija za podatke su takođe inkorporirane na samom čipu.
Inkorporiranjem periferala i memorije na istom integrisanom kolu smanjuje se broj dodatnih integrisanih kola koje treba ugraditi u sistem, što rezultira kompaktijoj implementaciji i globalno posmatrano smanjenoj potrošnji, tj rešenje postaje tipa low-power. Činjenica da se programskim putem može direktno pristupati spoljnim pinovima čipa omogućava da program može lako da monitoriše stanje senzora, postavlja u definisano stanje aktuatore, i vrši prenos podataka ka/iz drugih uređaja. Veliki broj proizvođača naziva mikrokontrolere embedded procesore. Razlika između embedded procesora i mikrokontrolera često nije jasna, mada se u stručnoj literaturi termin embedded procesor najčešće koristi za veće (32-bitne) procesore, a termin mikrokontroler za manje (4-, 8-, i 16-bitne) procesore.Opšti blok dijagram mikrokontrolera je prikazan na slici 2.1.
Slika 2.1. Blok dijagram mikrokontrolera
14VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
2.3. MIKROKONTROLERI U ODNOSU NA MIKROPROCESORE
Da bi ukazali na to kakva razlika postoji između mikroprocesora i mikrokontrolera analiziraćemo sliku 2.2. koja predstavlja jedan detaljan blok dijagram mikroracunarskog sistema.
Dok je mikroprocesor (CPU) integrisana komponenta na jedinstvenom čipu, sam mikrokontroler,na jedinstvenom cipu ima integrisano CPU, RAM i ROM memoriju i ostale ulazno-izlazno orijentisane gradivne blokove (paralelni i serijski interfejsi, tajmeri, logika za prihvatanje prekida, A/D i D/A konvertore i dr.).
Slika 2.2. Detaljni blok dijagram mikroračunarskog sistema
2.4. STRUKTURA MIKROPROCESORA
Na slici 2.3 prikazan je blok dijagram mikroprocesora.CPU čine sledeći blokovi: ALU, PC, SP, određeni broj radnih registara, kola za taktovanje i sinhronizaciju i kola koja se koriste za prihvatanje zahteva za prekid.
15VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Slika 2.3. Blok dijagram mikroprocesora(CPU-a)Da bi se kompletirao mikroračunarski sistem pored mikroprocesora potrebno je dodati ROM, RAM memorijske dekodere, oscilator, određeni broj ulazno-izlaznih uređaja kakvi su paralelni i serijski portovi za podatke, A/D i D/A konvertore i drugo. Pored ulazno-izlaznih uređaja specijalne namene, često se javlja i potreba da se ugrade i kontroleri prekida, DMA kontroleri, kao i brojaci/tajmeri čiji je zadatak da oslobode CPU-a od obavljanja U/I aktivnosti. Kada se u sistem instaliraju i uređaji za masovno memorisanje (hard disk, CD drajver), kao i tastatura, mis i CRT displej, tada se taj ''mali racunar'' moze koristiti za razlicite aplikacije opste namene.
Osnovna namena CPU-a je da pribavlja podatke, obavlja izračunavanja nad podacima i memorise rezultate izračunavanja na disku, kao i da za potrebe korisnika prikaže te rezultate na displeju (CRT, TFT, LED i dr.). Programi koje koristi mikroprocesor memorisani su na disku odakle se čitaju i smeštaju u RAM. Deo programa, najčešće malog obima, se obično smešta i u ROM-u.
2.5. STRUKTURA MIKROKONTROLERA
Blok dijagram mikrokontrolera prikazan je na slici 2.4. Mikrokontroler je u suštini pravi ''mali računar'' na čipu, koji sadrzi sve gradivne blokove CPU-a (ALU, PC, SP, registre i dr.), ali takođe i RAM, ROM, paralelne i serijske U/I portove, generatore takta i dr.Kao i mikroprocesor, i mikrokontroler je uređaj opšte namene, koji pribavlja podatke, obavlja ograničenu obradu nad tim podacima, i upravlja svojim okruženjem na osnovu rezultata izračunavanja. Mikrokontroler u toku svog rada koristi fiksni program koji je smešten u ROM-u i koji se ne menja u toku životnog veka sistema.
16VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Slika 2.4. Blok dijagram mikrokontrolera
Mikrokontroler koristi ograničen skup jedno ili dvo-bajtnih instrukcija koje se koriste za pribavljanje programa i podataka iz interne memorije. Veliki broj ulazno-izlaznih pinova mikrokontrolera se može koristiti za više namena, što se softverski definiše.Mikrokontroler komunicira sa spoljnim svetom (pribavlja i predaje podatke) preko svojih pinova, pri čemu je arihitektura i skup instrukcija projektovan za manipulisanje sa podacima obima bajt ili bit.
2.6. RAZLIKE IZMEDJU MIKROPROCESORA I MIKROKONTROLERA
Razlike su brojne ali one koje su najvaznije su sledeće:
Mikroprocesori najcešće CISC tipa za kopiranje podataka iz spoljne memorije u CPU koriste veći broj op-kodova, dok mikrokontroleri jedan ili dva.Za manipulisanje sa podacima tipa bit mikroprocesori koriste jedan ili dva tipa instrukcija, dok kod mikrokontrolera taj broj je veći.
Mikroprocesori su projektovani za brzi prenos podataka iz programa sa spoljno adresiranih lokacija u čip, dok se kod mikrokontrolera brzi prenos bitova obavlja u okviru čipa.
17VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Mikrokontroler moze da funkcioniše kao računar bez dodataka spoljnih gradivnih blokova (memorije i U/I uređaja), dok operativnost mikroprocesora bez spoljne memorije i U/I podsistema nije moguća.
3. MIKROKONTROLER AT89S8253
Atmelov 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 1. – dok je unutrašnja struktura mikrokontrolera prikazana na Slici 2. U programerskom smislu, AT89S8253 je gotovo identičan sa mikrokontrolerom AT89S53.
3.1. UNUTRA[NJA STRUKTURA MIKROKONTROLERA
18VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
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.
3.2. OPIS PINOVA
19VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Slika 3.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;
20VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
- 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 Iil=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
21VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
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:
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 uPOWER-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.
22VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
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.
Slika 3.2. Unutrašnja struktura mikrokontrolera AT89S8253
3.3. 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:
23VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
- 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 taktovanje. To znači da frekvencija takta mikrokontrolera može usporiti ili čak zaustaviti, dok se čeka na unutrašnji događaj.
3.4. PROGRAMSKA MEMORIJA
Svi Atmel-ovi flash mikrokontroleri imaju odvojene adresne prostore za programsku i memoriju podataka, što je prikazano na Slici 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 samo č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 3.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.
24VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Slika 3.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 .Mapa donjeg dela programske memorije prikazana je na Slici 3.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.
25VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
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 3.4. Programska memorija
3.5. MEMORIJA PODATAKA
Desna polovina Slike 3. prikazuje unutrašnje i spoljašnje memorijske prostore dostupne kod Atmel-ovih flash mikrokontrolera. Slika 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 drugih ulazno/izlaznih linija za straničenje RAM-a, kao što je prikazano na Slici 3.5. Dvo-bajtne adrese se takođe mogu koristiti, i u tom slučaju bajt više adrese se pojavljuje na Portu 2.
26VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Slika 3.5. Izvršavanje programa iz spoljašnje memorije
Konfiguracija hardvera za izvršavanje spoljašnjeg programa je prikazana na Slici 3.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 5) služi kao multipleksirana magistrala adresa/podataka.
Slika 3.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 ovaj bajt u adresni leč. U međuvremenu, Port 2 (P2 na Slici 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
27VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
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 3.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 3.7 ilustruje Gornji 128 i SFR prostor koji zauzima isti blok adresa, od 80H do FFH, iako su oni fizički odvojeni entiteti.
Slika 3.7. Unutrašnja memorija podataka
28VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Slika 3.8. Nižih 128 bajtova unutrašnjeg RAM-a
Slika 3.9. Gornjih (viših) 128 bajtova RAM-a
Slika 3.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 instrukcije 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 3.9) može da se adresira samo indirektno. Gornjih 128 bajtova RAM-a su samo u uređajima sa 256 bajta RAM-a.
29VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Na Slici 3.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 3.10. Prikaz registara specijalne namene
3.6. PROGRAMSKI STATUSNI REGISTAR
Programski statusni registar (PSW) sadrži bitove statusa koji ukazuju na trenutno stanje mikroprocesora. PSW, prikazan na Slici 3.11, smešten je u SFR prostor. PSW sadrži bit prenosa (carry bit), bit pomoćnog prenosa (auxiliary carry bit) za BCD operacije, dva bita za selekciju banke 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 3.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.
30VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
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 3.11. PSW registar u Atmelovim flash mikrokontrolerima
3.7. TAKTOVANJE MIKROPROCESORA
Svi Atmelovi flash mikrokontroleri poseduju ugrađeni oscilator, koji se može da se koristi kao izvor za njegov mikroprocesor. Da bi se koristio ugrađeni oscilator, treba povezati kristalni ili keramički rezonator između pinova XTAL1 i XTAL2 mikrokontrolera, i da se povežu kondenzatori prema masi, kao što je prikazano na Slici 12.
Primer napajanja sa taktom iz spoljašnjeg oscilatora je prikazan na Slici 3.13. Unutrašnji takt ge-nerator definiše sekvence stanja koje čine mašinski ciklus.
Napomenuto je u uvodu kako mikroprocesor mikrokontrolera AT89S8253 može da se taktuje frekvencijom. Vrednosti kondenzatora na Slikama 3.12 i 3.13 mogu da uzimaju vrednosti 30±10 pF.
31VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Slika 3.12. Korišćenje ugrađenog oscilatora
Slika 3.13. Povezivanje oscilatora (A) i konfiguracija sa spoljašnjim taktom (B)
3.8. 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.
3.9. 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 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).
32VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
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.
3.9.1. KONTROLA RADA TAJMERA
Radom tajmera 0 i 1 upravlja se pomoću registara TMOD i TCON.
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
33VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
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č. Brojaregistar
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.
34VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
TR0 – postavljanje ovog bita tajmer 0 počinje da broji, dok u suprotnom ne broji.
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).
3.9.2. 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.
35VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Slika 3.14. Mod 0 ili 1 tajmera 0 ili 1
Mod 2U ovom modu tajmer je kao osmobitni sa automatskim punjenjem incijalne vrijednosti nakon preticanja. timer 0 At89S8253.
Slika 3.15. Mod 2 tajmera 0 ili 1
36VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
3.10. 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.
37VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
4. A/D KONVERTORI
4.1. UVOD U A/D KONVERTORE
Analogno-digitalna konverzija predstavlja generisanje digitalnog kodovanog broja koji odgovara analognom ulaznom signalu. Elektronsko kolo koje vrši konverziju naziva se analogno-digitalni konvertor, ili skraćeno A/D konvertor (ADC).
Kod savremenih tehnika merenja, dominantnu grupu instrumenata i merne opreme, čine digitalni merni instrumenti. Oni često ne samo da poseduju naprednije performanse u odnosu na odgovarajuće analogne instrumente (brzina, propusni opseg, pouzdanost, otpornost na smetnje, minijaturizacija, itd.), već imaju i znatno nižu cenu, a omogućavaju i veoma jednostavnu automatizaciju procesa merenja. Nažalost, veličine koje je potrebno dovesti na ulaze u merni sistem, samo su u veoma malom broju slučajeva, po svojoj prirodi digitalne. Pa čak i tada, često je potrebno analizirati parametre ovih digitalnih veličina na najnižem, fizičkom nivou, naročito u postupcima overe i atestiranja sistema ili dijagnostike, kod neregularnog rada usled otkaza ili ispada. Sa stanovišta merenja, jedini način da se ovakvi signali ispravno okarakterišu i u tim situacijama, jeste da se tretiraju kao analogne veličine i opišu odgovarajućim analognim parametrima.
Elementaran analogno-digitalni konvertor je naponski komparator. Ulazni analogni signal -Vul, komparator konvertuje u jednobitnu digitalnu informaciju D=d0, tako da d0=0 označava da je Vul<V1, a d0=1 da je Vul>V1, gde je V1 unapred određen naponski prag. Ako je potrebno da se veličina analognog napona odredi sa većom preciznošću i predstavi u digitalnom obliku, potrebno je porediti ulazni napon sa više naponskih pragova. Šema ovakvog jednog konvertora prikazana je na Slici 4.1.
38VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Slika 4.1. Principijelna šema A/D konvertora
Na Slici 4.1. je prikazana principijelna šema A/D konvertora koja sadrži m komparatora i koder sa m ulaza i n izlaza. Ako se naponi Vi rasporede ekvidistantno unutar naponskog opsega od 0 do Vps, na osnovu izlaza kom-paratora ki može da se odredi u kom se naponskom opsegu nalazi ulazni signal Vul. Digitalnu informaciju sa komparatora koder koduje u digitalni broj izabranog binarnog brojnog sistema. Na Slici 4.2. prikazana je idealna karakteristika prenosa A/D konvertora u slučaju da postoji 8 nivoa komparacije ulaznog napona.
Slika 4.2. Karakteristika prenosa idealnog A/D konvertora
Ako se ulazni napon linearno menja od 0 do napona pune skale Vps , izlazna digitalna informacija može da ima m + 1 = 9 diskretnih stanja: 0 za Vul<V1 , 1 za V1<Vul<V2, 2 za V2<Vul<V3 , ... 7 za V7<Vul<V8 i ''PREKORAČENJE'' ako je ulazni napon Vul>V8.
39VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Karakteristika prenosa na Slici 1.2. pretpostavlja ekvidistantno raspoređene napone Vi , idealne komparatore bez histerezisa i nulto vreme propagacije signala kroz komparatore i koder. Realna karakteristika prenosa će odstupati od idealne i mogu se definisati statičke i dinamičke greške koje unosi realan A/D konvertor.
Statičke karakteristike A/D konvertora se definišu tako što se definišu apsolutna linearnost, greška (ofset) nule, greška pune skale, greška pojačanja i diferencijalna linearnost. U slučaju velike diferencijalne nelinearnosti, kada je narušena monotonost karakteristike prenosa, za A/D konvertore se češće koristi termin "izgubljen kôd" (missed code), umesto nemonotonost.
Pošto je izlazna informacija A/D konvertora digitalni broj, dinamičke karakteristike A/D kovertora se svode na specificiranje potrebnog vremena da se od trenutka početka konverzije na izlazu A/D konvertora postavi digitalni ekvivalent ulaznog analognog signala. Ovo vreme se naziva vreme konverzije. Rezolucija, odnosno, broj nivoa kvantizacije ulaznog signala se najčešće definiše brojem bita izlazne digitalne informacije, ako je primenjen prirodni binarni kôd, ili brojem decimalnih cifara, za A/D konvertore koji generišu izlaznu informaciju u BCD kodu. Povećanje rezolucije A/D konvertora sa Slike 1.1. se može postići jedino povećanjem broja naponskih nivoa, odnosno, brojem komparatora. Za povećanje rezolucije za samo jedan bit, potrebno je duplirati broj komparatora i srazmerno proširiti kombinacionu mrežu kodera. Tako je za 8-bitni konvertor potrebno 256 komparatora. Pošto je u praksi potrebno obavljati A/D konverziju i sa mnogo većom rezolucijom, direktna konverzija sa 2n komparatora i kodne mreže postaje neekonomična zbog velikog broja komponenti. U cilju smanjenja broja sastavnih elektronskih kola, primenjuju se različite metode za A/D konverziju.
Uglavnom se A/D konvertori klasifikuju po načinu ili brzini konverzije. Najčešće se proizvode i koriste tri klase A/D konvertora:
Vrlo brzi A/D konvertori, formirani korišćenjem paralelnih komparatora koji se jos nazivaju i direktni ili fleš A/D konvertori.
Konvertori srednje brzine, koji napon na ulazu porede sa referentnim naponom generisanim D/A konvertorom.
Konvertori male brzine, koji najčešće proces konverzije napona u digitalni broj obavljaju merenjem vremena za koje napon, koji raste linearno sa vremenom, dostigne vrednost ulaznog napona. Ovakvi konvertori se još nazivaju i serijski A/D konvertori , A/D konvertori sa vremenskim ekvivalentom, ili integratorski A/D konvertori.
4.2. UVOD A/D KONVERTOR – AD9243AS
40VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
AD9243 ima 3 MSPS, jednosmerno napajanje i on je 14-bitni analogo-digitalni konvertor (ADC). Predstavlja kombinaciju niske cene, velike brzine CMOS procesa i moderne arhitekture i može da postigne rezoluciju i brzinu postojećih hibridnih primena na delu potrošnje snage i cene. On je potpuno monolitan ADC čip, visokih performansi, niskog šuma sample-and-hold pojačavača (SHA) i programirajuće voltaže. Spoljašnje definisanje takođe može biti izabrano tako da podesi tačnost i temperaturni drift zavisno od zahteva programa. Uređaj koristi višestepenu diferencijalnu pipeline strukturu sa korekcijskom logikom na digitalnim izlazima koja garantuje ne nestajanje kodova u celom temperaturnom opsegu.
Ulaz je vrlo prilagodljiv, omogućava lak priključak za projektovanje, komunikaciju, medicinu i akviziciju podataka. Diferencijalna ulazna struktura omogućava single-ended i diferencijalni mod. SHA je jednako svrsishodno za oba multipleksirana sistema koji prebacuju punu skalu naponskog nivoa u susednim kanalima isto kao i uzorkovanje iz pojedinačnog kanala ulaza sa frekvencijom do i izvan Nikvistove brzine. AD9243 se pokazao dobro i u komunikacijskim sistemima koji koriste Direct-If Down konverziju pošto SHA u diferencijalnom input modu može postići odlične dinamičke karakteristike well beyond njegove Nikvistove frekvencije od 1.5 MHz.
Jedan clock ulaz se koristi za kontrolu svih unutrašnjih konverzijskih ciklusa. Izlazni digitalni podaci se prikazuju u binarnom sistemu. OTR signal prikazuje prekoračenje i sa MSB definiše nisko ili visoko prekoračenje.
AD9243 je smešten u kućištu 44-lead Metric Quad Flatpack
Niska snaga i jednosmerno napajanje Troši 110 mW na +5 V jednosmernom napajanju.
Odlične DC karakteristike pri temperaturi AD9243 omogućava ne gubljenje kodova i odlične karakteristike temperaturnog drifta u celom random temperaturnom opsegu.
Odlične AC karakteristike i nizak šum AD9243 omogućava skoro 13 ENOB karakteristike i ima propisan šum od 0.36 LSB rms.
Prilagodljiv analogni ulazni opseg Prilagodljiv SHA može biti konfigurisan za single-ended ili diferencijalni ulaz menjanja ulaznog raspona.
Prilagodljiv digitalni izlaz Digitalni izlaz može biti konfigurisan za priključak na +3 V i +5 V CMOS logičku familiju.
41VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Slika 4.3 Funkcionalna blok {ema
42VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
AD9243 koristi četvorostepenu pipeline strukturu sa širokopojasnim ulaznim SHA pojačavačem izrađenog u ekonomičnom CMOS procesu. Svaki stepen pipeline, isključujući poslednji, sastoji se od fleša A/D male rezolucije povezanog sa komutacijskim kondezatorom DAC i međustepenim pojačavačem ostatka (MDAC). Pojačavač ostatka pojačava razliku između obnovljenog DAC izlaza i fleš ulaza za sledeći stepen pipelina. Jedan bit redundancije se koristi u svakom stepenu da omogući digitalno ispravljanje fleš grešaka. Poslednji stepen se sastoji samo od A/D fleša.
Pipeline struktura omogućava veći protok brzine po ceni kašnjenja. To znači da dok konvertor hvata novi ulazni uzorak u svakom clock ciklusu, potrebno je tri clock ciklusa da se izvrši konverzija i da se pojavi na izlazu. Ovo kašnjenje se ne uzima u obzir u mnogim programima. Digitalni izlaz zajedno sa OTR-om je zapamćen u izlaznim baferima i dovodi se na izlazne pinove. Izlazni drajveri mogu biti konfigurisani za priključak na +5V ili +3.3V logičkim familijama.
AD9243 koristi obe ivice takta u njegovom unutrašnjem vremenskom podešavanju kola. A/D uzorci analognog ulaza uzimaju se pri uzlaznoj ivici taktnog ulaza. Za vreme trajanja niskog clocka, između opadajuće i uzlazne ivice clocka,ulaz SHA je u sample modu; za vreme trajanja visokog clocka nalazi se u hold modu. Sistem smetnji ispred uzlazne ivice takta i/ili prekomeran clock džiter može uzrokovati da ulaz SHA stekne pogrešnu vrednost i treba biti minimizovan.
43VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Slika 4.4 Vremenski dijagram4.3. ANALOGNI ULAZ
Slika 4.5. pokazuje odnos između analognog ulaza, VINA, VINB i preporučene voltaže, VREF. Kao što je voltaža dodeljena najvišem otporniku na lestvici u A/D konvertoru, vrednost VREF definiše maksimume ulazne voltaže u A/D jezgro. Minimalna ulazna voltaža u A/D jezgru je automatski definisano na –VREF.
Slika 4.5. Ekvivalentno funkcionalno kolo
Dodavanje diferencijalnog ulaza daje korisnicima dodatni nivo prilagodljivosti koji nije moguć sa tradicionalnim fleš konvertorima. Ulazni stepen dozvoljva korisnicima da jednostavno konfigurišu za single-ended operacije ili diferencijalne. A/D ulazna struktura dozvoljava da dc offset ulaznog signala bude različit nezavisno od raspona konvertora. Ulaz A/D jezgra je razlika između voltaže dovedene na VINA i VINB pinove.
Vcore=VINA-VINB
Vcore mora da zadovolji uslov, -VREF≤Vcore≤VREF
VREF je napon na VREF pinu.
Dok postoji bezbroj kombinacija na VINA i VINB ulazima koje zadovoljavaju prethodnu jednačinu, postoji dodatno ograničenje na ulazu od napajanja AD9243. Napajanje ograničava radni opseg za VINA i VINB.
44VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
AVSS-0.3 V<VINA<AVDD+0.3 V
AVSS-0.3 V<VINB<AVDD+0.3 V
AVSS je nominalno 0 V i AVDD je nominalno +5 V
U tabeli 4.1 i tabeli 4.2 je prikazan pregled različitih ulaznih vrednosti analognog napona i preporučene konfiguracije.
Tabela 4.1
Tabela 4.2Efektivni nominalni napon, koji koristi unutrašnje kolo AD9243, pojavlju je se na CAPT i CAPB pinovima. Za pravilan rad kada koristimo unutrašnje ili
45VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
spoljašnje definisanje, neophodno je dodati kapacitivnu mrežu na ovim pinovima kako bi se izvršilo decoupling mreže.
Slika 4.6. Preporučen decoupling mreže
AD9243 ima visoko fleksibilnu ulaznu strukturu koja omogućava priključak za single-ended ili diferencijalni mod. DC coupled single-ended ulaz može biti pogodan za akviziciju podataka i projektovanja aplikacija. Mnogo komunikacijskih programa koji zahtevaju DC coupled ulaz za odgovarajuću demodulaciju imaju prednosti odličnih single-ended distorzionih performansi AD9243. Ulazni opseg treba biti konfigurisan tako da realne performanse sistema i tehničke karakteristike operacionog pojačavača budu sinhrono ispunjene.
Diferencijalni mod omogućava najbolje THD i SFDR karakteristike na široki frekvencijski opseg. Coupled transformator diferencijalnog ulaza treba uzeti za najveći broj spektarski baziranih programa, koje dozvoljavju ac coupling. DC coupled diferencijalni mod omogućava i povećanje distorzije i šuma u najvećem delu ulaznog opsega. AD9243 može biti konfigurisan za opseg od 5V koristeći operacioni sa +5V ili ±5V.
4.4. SINGLE-ENDED MODE OPERACIJA
AD9243 može biti konfigurisan za single-ended operacije koristeći dc ili AC coupling. U oba slučaja ulaz u A/D mora biti doveden iz operacionog pojačavača koji neće pokvariti A/D karakteristike. Pošto je jednosmerno napajanje, neophodno je da se pomeri nivo uzemljenja bipolarnog signala da bude u skladu sa ulazim zahtevima. Oba i DC i AC coupling omogućava neophodne funkcije, ali svaki metod daje različitu realizaciju sklopa koji može uticati na karakteristike i projektovani sistem.
Mnogo programa zahteva da analogni ulazni signal bude DC coupled. Operacioni pojačavač može biti konfigurisan da pomeri nivo ulaznog signala tako da bude u opsegu A/D. Ovaj ulazni opseg A/D treba biti izabran na bazi realnih karakteristika sistema i raspoloživosti analognog napajanja, tako da imamo ograničenja u izboru operacionog pojačavača.
Mnogo novih operacionog pojačavača sa visokim performansama rade na ±5V i imaju ograničenja sa ulazno/izlazim rasponom. Ulazni opseg AD9243 treba biti osetljiv na tehničke karakteristike operacionog pojačavača da bi
46VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
se izbeglo odsecanje signala. Takođe, pošto izlaz iz operacionog pojačavača sa dvojnim napajanjem može imati raspon ispod -0.3V, u nekim programima treba razmatrati stvaranje nivoa na izlazu. U nekim programima je korisno koristiti operacionog pojačavače sa jednostrukim napajanjem +5V to će bitno ograničiti njegov raspon na izlazu u opsegu granica napajanja. U programima koji zahtevaju veći single-ended ulazni opseg od (0V-5V) kod AD9243, operacionog pojačavač će zahtevati veće napajanje. U našem slučaju ulazni signal AD9243 već je jednostrano na nivo u saglasnosti sa ulaznim opsegom. Neophodno je omogućiti adekvatnu nisku impedansu za VINA i VINB analogne ulazne pinove A/D konvertora. Na slici 4.7. imamo ogovarajuću konfiguraciju za single-ended drajv korišćenjem operacionogpojačavača.U ovom slučaju signal dovodimo na neinvertujući ulaz operacionogpojačavača , zatim na VINA pin. Unutrašnja referentna veličina se dovodi na VINB pin. Otpornici od 30 Ω do 50Ω vezani za VINA i VINB će se naći u skoro svim slučajevima. Na slici 2.5 je odgovarajuća šema za merenje od 0 V do 5 V ulaznog napona. Sa odgovarajućim izborom VREF ova konfiguracija se može upotebiti i za merenje od 0 V do 2xVREF.
Slika 4.7. Single-Ended AD9243 Op Amp Drive Circuit
4.5. OPERACIONI POJA^AVA^ SA DC POMERANJE NIVOA
Slika 4.8. pokazuje DC-coupled pomeranje nivoa kola koristeći operacionog pojačavača A1 za sabiranje ulaznog signala sa željenim dc ofsetom. Konfiguracija operacionog pojačavača u invertujućem modu sa datim vrednostima otpornika rezultuje u ac signalu pojačanja -1. Ako je inverzija signala neželjena, zamena VINA i VINB veze promeniće polaritet originalnog signala. DC voltaža za VREF podešava uobičajni mod voltaže za AD9243. Npr. VREF=2.5 V, izlazni nivo operacionog pojačavača se smatra takođe oko 2.5 V. Koristeći pomenut odnos, tanki slojni otpornici mreže će
47VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
minimizovati pojačanje i ofset greške. Opcioni pull-up otpornik Rp, može se koristiti za smanjenje opterećenja VREF na ±1mA.
Slika 4.8. Single-Ended AD9243 Input With DC-Coupled Level Shift
4.6. DIGITALNI ULAZI I IZLAZI
Izlazni podaci se prikazuju jasno,tačno i verno u binarnom sistemu za sve ulazne opsege. Tabela 4.3. pokazuje format izlaznih podataka za različite ulazne opsege bez obzira na izabrani ulazni opseg. Invertovanjem MSB-a mogu se dobiti dva kompleta formata izlaznih podataka. Tabela 4.3. pokazuje odnos između VINA, VINB, VREF i digitalnog izlaza.
Tabela 4.3.
48VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Slika 4.9. Format izlaznih podataka
4.7. VAN OPSEGA (OTR-Out Of Range)
OTR se događa kada je analogni ulazni napon izvan ulaznog opsega konvertora. OTR je digitalni izlaz koji se ažurira zajedno sa izlaznim podacima koji odgovaraju posebnim uzorcima analognog ulaznog napona. Odatle, OTR ima istu liniju kašjenja kao digitalni podatak. On je NIZAK ako je analogni ulazni napon u okviru analognog ulaznog napona. VISOK je kada analogni ulazni napon prelazi ulazni opseg kao što je prikazano na slici 4.10..OTR ostaje VISOK dok se analogni ulaz vrati u granicama ulaznog opsega i izvrši još jedna konverzija. Korišćenjem logičkih ILI kola, OTR sa MSB i njegovim komplementom može se detektovati prekoračenje opsega (overrange high) ili ispod opsega (underrange low). Tabela 4.4 prikazuje logiku za kolo na slici 2.8 koja koristi NILI kola. Sistem zahteva programirane uslove za snagu tako da se ulazni signal može detektovati
49VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
ako je van opsega, time se eliminišu ponovne iteracije sa snagom. Takođe OTR se može koristiti za digitalni offset i kalibraciju snage.
Tabela 4.4
Slika 4.10. Overrange ili undrrange logika
CML je unutrašnji analogni prednapon koji koristi AD9243. Ovaj priključak se mora rastaviti sa najmanje 0.1μF kao što je prikazano na slici. DC nivo je približno AVDD/2. Ovaj napon treba zapamtiti ako se želi koristiti za neki spoljašnji prednapon
Slika 4.11. CML Decoupling
Digitalne aktivnosti na AD9243 čipu se mogu podeliti u dve kategorije: korekcijska logika i izlazni drajveri. Unutrašnja korekcijska logika izvlači relativno male talase struje, najčešće u toku promene clock-a. Izlazni drajveri daju velike strujne impulse dok se izlazni biti menjaju.Veličina i trajanje ovih struja je u funkciji od učitavanja na izlaznim bitima: veliki kapacitivni sklopovi su izbegnuti. Unutršnja korekcijska logika koristi DVDD a izlazni drajveri DRVDD.
5. MAX232 - DRAJVER/PRIJEMNIK
50VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
ODGOVARA ILI PREVAZILAZI TIA/EIA0232 ITU PREPORUKE V.28
USPOSTAVLJA RAD POMO]U JEDNOG NAPAJANJA OD 5V SA KONDENZATORIMA OD 1.0µF
DVA DRAJVERA I DVA PRIJEMNIKA
ULAZNI NIVOI OD ±30V NISKA STRUJA NAPAJANJA ...
OBI^NO 8mA ESD ZA[TITA PREVAZILAZI
JESD22 NADOGRADNJA SA POBOLJ[ANIM
ESD-OM APLIKACIJE: TIA/EIA-232-F,
SISTEMI NAPAJANI OD STRANE BATERIJA, TERMINALI, MODEMI I KOMPJUTERI
OPIS UREDJAJA
MAX232 je dvostruki drajver/prijemnik koji sadr`i kapacitivni generator koji uspostavlja odredjene nivoe napona uz pomo}u samo jednog napajanja od 5V. Svaki prijemnik konvertuje TIA/EIA-232-F ulaze u 5-V-TTL/CMOS nivoe. Ovi prjemnici imaju tipi~an prag od 1.3V, tipi~an histerezis od 0.5V i mogu primiti ulazne nivoe od ±30V. Svaki drajver konvertuje TTL/CMOS ulazne nivoe u TIA/EIA-232-F nivoe.
51VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
6. 74LS244N – OKTALNI BAFER I LINIJSKI DRAJVER
TRI STANJA MAGISTRALNIH IZLAZNIH LINIJA ILI BAFERI REGISTARA MEMORIJSKIH ADRESA
PNP ULAZ SMANJUJE DC PUNJENJE
ULAZNI HISTEREZIS POBOLJ[AVA PRAG [UMA
OPIS UREDJAJA
Ovi oktalni baferi i linije su napravljeni tako da pobolj{aju performanse i gustinu izmedju drajvera koji poseduju tri stanja memorijskih adresa, drajvera za klokovanje, magistralnih prijemnika i predajnika. Konstruktor ima izbor da pravi kombinacije od, invertuju}eg ili ne invertuju}eg izlaza, simetri~nog izlaza, aktivnog kontrolisanog izlaza i komplamentarnog kontrolisanog izlaza. Ovi uredjaji imaju visok fan-out, pobolj{an fan-in i magrinu {uma od 400 mV.
52VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
7. TS272CN - DVOSTRUKI CMOS OPERACIONI POJA^AVA^ VISOKIH PERFORMANSI
IZLAZNI NAPON SE MO@E “ZALJULJATI” NA MASU
ODLI^NE FAZNE MARGINE PRILIKOM KAPACITIVNOG PUNJENJA
[IRINA OPSEGA GAINA: 3,5 MHz
STABILAN I NIZAK NAPON OFFSETA
IZBOR TRI NAPONA OFFSETA
OPIS UREDJAJA
Uredjaji serije TS272, gde pripada i operacioni poja~ava~ TS272CN imaju nisku cenu. Dizajnirani su tako da mogu raditi sa jednim ili dva izvora. Ovi operacioni poja~ava~i koriste ST CMOS silikonski gejt koji omogu}ava izuzetan odnos potro{nje i brzine. Uredjaji ove serije su idealni za primenu male potro{nje.
Tri napona potro{nje su dostupna koji dozvoljavaju najbolji mogu}i odnost potro{nje i brzine:
ICC = 10µA/amp.: TS272L2 (veoma mala snaga)
KONEKCIJE PINOVA (pogled odozgo)
53VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
ICC = 150µA/amp.: TS272M2 (slaba snaga)
ICC = 1mA/amp.: TS272 (standardna snaga)
Ovi CMOS poja~ava~i imaju veoma veliku impedansu i izrazito male ulazne struje. Njihova glavna prednost u odnosu na JFET uredjaje su male ulazne struje no{ene temperaturom.
Slika 7.1. Blok {ema uredjaja
54VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
8. NAPAJANJE
Napajanje mikrokontrolera je ostvareno klasičnom procedurom i komponentama kao i kod drugih kontrolera. Naizmenični napon napajanja iz mreze 220V se preko transformatora tansformiše na 9V pa zatim ispravlja preko greca i kondenzatora. Posle toga se signal vodi na stabilizator napona realizovan kao IC LM 7805 i takav signal se vodi na procesor i ostale digitalne periferne uredjaje i služi kao napajanje konstantnom vrednošću napona. Električna šema izvora napajanja je data na sledećoj slici:
55VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
9. ELEKTRI^NA [EMA, BLOK [EMA, LAYOUT SLOJEVI, REALIZOVAN PROJEKAT I SPECIFIKACIJA KORI[]ENIH KOMPONENTI
56VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Električna šema uređaja
57VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Blok {ema
Layout donje strane PCB-a
58VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Layout gornje strane PCB-a
Layout komponenti sa gornje strane PCB-a
Svi layout slojevi PCB-a
59VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Izgled realizovanog projekta
KOMPONENTE KOJE SU KORI[]ENE PRILIKOM IZRADE PROJEKTA:
Komponente Br.komadaOP177FP (SO-8) 1LED 2 zelene, 2 crvene 5Elektrolitski kondenzator 10F 4Keramicki kondenzator 100nF 12Otpornik 50 2Otpornik 220 1Otpornik 330 4Otpornik 10K 1Potenciometar 10k 1Prekidaci SW-SPDT 3Konektori 374LS373 174ALS373 174ALS00 2LM 7805 2
60VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
10. KEIL uVision3
10.1. UVOD
Programiranje mikrokontrolera u asembleru predstavlja optimalan nacin programiranja sa stanovišta iskoriš}enja ograni}enih ugra~enih resursa, kao na primer, programske memorije i dr. S druge strane za složenije projekte program napisan u asembleru može biti komplikovan za ~itanje i razumevanje. Zato se danas mikrokontroleri programiraju u višim programskim jezicima, a najpoznatiji i naj~ešce koriš}eni je programski jezik C. Pretpostavimo da student poseduje osnovna znanja o programskom jeziku C i njegovim osnovnim strukturama podataka. Takođe, pretpostavlja se znanje tzv. ANSI C-a. Efikasnost programiranja je povećana i zbog upotrebe elemenata strukturalnog programiranja i širokog skupa operatora.U odnosu na ANSI (American National Standards Institute) C programski jezik, C za mikrokontrolere je prilagođena varijanta koja koristi specijalizovan kompajler (prevodlac). C jezik sam po sebi nije u mogucnosti da obavlja operacije (kao što su ulaz i izlaz), te su ove mogucnosti obezbeđene kao deo standardne biblioteke. Zbog toga što su ove funkcije odvojene od samog jezika. C je naročito pogodan za generisanje programa lako prenosivih izmedu različitih platformi. Ukratko, interakcija programa sa okolinom u programskom jeziku C je sadržana u njegovoj standardnoj biblioteci, a C51 kompajler je specijalizovan za ugrađene (embedded) mikroprocesore.
10.2. OPIS PROGRAMA
uVision3 pruža vam: menu bar naredbu za ulazak, alat bar gde možete brzo odabrati naredbe i prozori za izvorne datoteke, dijaloške okvire, i prikazuje informacije. uVision3 Vam omogućava istovremeno otvaranje i pregled više izvornih datoteka.
uVision3 sadr`i: - Build Mode: Omogućava vam prevođenje aplikacija i datoteka i generisanje izvršnog programa. - Debug Mode: Nudi vam program za pronalaženje grešaka na vaš zahtev.
61VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Tipi~na konfiguraciju uVision3 u Debug ModuProject Workspace (radni proctor projekta) vam daje pristup: -Datoteci i grupi u okviru projekta. -CPU registrima -Alatima-Tekstualnim predlozima za najčešće korišćene blokove teksta. Funkcija u projektu za brzu navigaciju Output Window (izlazni prozor) daje poruke o grešci i brz pristupMemory Window (memorijski prozor) daje pristup memorijiWatch & Call Stack prozor vam omogućava pregled i izmenu programa i prikazuje trenutnu funkciju poziva stabla. Radni prozor se koristi za uređivanje datoteka,Peripheral Dialog će vam pomoći da proverite status periferija.Kada koristite Keil uVision3, projekt razvoja ciklusa je otprilike isti kao što je za bilo koji drugi softver:- Izradi projekt,odaberi ciljni čip iz baze podataka i konfiguriši(podesi) postavke alata. - Napravi source(izvornu) datoteku u C. - Izradi dokumentaciju korišćenjem projekt menadžera. - Ispravi greške u izvornu datoteku. - Ispitaj povezane aplikacije.
62VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Potpuni uVision3 softver
uVision3 IDE uVision3 IDE kombinuje projektni menadžment,interaktivni editor za ispravljanje grešaka,mogućnost čitanja i on-line pomoć. Pomoću uVision3 stvaramo svoje izvorne datoteke i organizujemo ih u projekt koji definiše ciljnu aplikaciju.uVision3 automatski kompajlira,prikuplja i povezuje aplikacije.
C & prevodilac makroasembler Source datoteke stvorene od strane uVision3 i IDE se propušta delje ka višem programskom jeziku ili kompajleru. Asemblerski prevodilac na osnovu izvorne datoteke stvara ciljnu datoteku.
Manager Menager vam omogućava da izradite dokumentaciju iz datoteka kreirane od strane prevodioca i asemblera. Dokumentacija je posebno formirana. Kada se pristupi povezivanju biblioteka,koriste se samo oni moduli koji su potrebni za stvaranje programa.
63VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Linker/ Locator Linker / Locator stvara izvršnu datoteku programa pomoću objekt modula i one koju su stvarali prevodilac i asembler. Izvršna datoteka programa (koja se naziva i apsolutni objekt modul) ne sadrži prenosivi kôd ili podatak. Kod i podaci imaju svoja memorijska mesta.
Ovaj program izvr š nu datoteku koristi: -Za jedan program Flash ROM memorije ili drugih uređaja, -S in-circuit emulator program za testiranje. -uVision3 program za pronalaženje grešaka
DebuggerProgram za pronalaženje grešaka je prvenstveno brz i pouzdan program. Program za pronalaženje grešaka uključuje high-speed simulator da vam simulira jedan mali deo na čipu, uključujući i spoljne uređaje. Atributi u čipu koji koristite automatski se konfigurišu kada odaberete uređaj iz uređaja baze podataka. uVision3 program za pronalaženje grešaka nudi nekoliko načina da testirate svoj program na pravi hardver.
10.3. STATUS BAR
Status Bar prikazan na ekranu prikazuje poruke i informacije o trenutnim u Vision komandama i druge informacije kako je objašnjeno u nastavku:
Debug Channel prikazuje aktivan alat za ispravljanje i prikazuje ime ili simulacije kada je program testiran.
Vreme izvršenja prikazuje vreme trajanja simulacije.
Pozicija kursora pokazuje trenutnu poziciju u editor datoteci (L: broj linija, C: broj kolona).
Keyboard Editor prikazuje informacije: CAP: tipka je trenutno unutar tastature za velika slova. NUM: tipka je trenutno u NUM LOCK statusu. SCRL: tipka je trenutno u zaključanom stanju. OVR: označava pisanje preko editor načina koji zamenjuje znakove kao što ste upisali. R / W čitanje / pristup pisanju; R / O read-only pristup-sprečava modifikacije iz teksta.
64VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
10.4. LOGI^KI ANALIZATOR
uVision3 Logic Analyzer daje grafički prikaz promene vrednosti varijable (promenljive) ili VTREGs koje ste naveli.
Logic Analyzer prozor sadrži u vrhu granice nekoliko tastera i polja za prikaz. Instalacijski ... dialog definiše varijable (promenljive) signala za snimanje i konfiguriše prikaz izlaza. Neke konfiguracijske postavke mogu biti promijenjen iz menija koji se otvara s desnim klikom na signal ime (name).
Vreme polja prikazuje: - Min Time: Vreme početka signala - Max Time: Vreme završetka signala- Raspon: Vremensko rastojanje od trenutnog prikaza. - Grid: Vremensko rastojanje od jedne linije. - Zoom pokazuje kompletan sadržaj signala. Zoom je promene prikaza na izbor koji ste prethodno označili mišem povlačenjem dok držite tipku SHIFT.
- Kod otvara prozor ili rastavljanje na broj pozicija koje uzrokuje signal u pomeranju. - Postava Min / Max konfiguriše se za prikaz raspona signala. Auto konfigurira, max. / Min. vrednosti temelji se na vrednosti iz trenutnog snimanja.- Undo vraća prethodne postavke pre Auto.
65VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
- Logic Analyzer vam omogućava da pregledate ili promeniti podatke koristeći sledeće naredbe kursor miša i:
Postavite kursor u skladu s mišem i kliknite. Pokazivač linije prikazuje sve varijable (promenljive) vrednosti u odabrana vremena. Okvir informacija pokazuje signal delta vrednosti i temelji se na trenutnu poziciju kursora linije.
10.5. MEMORIJSKI PROZOR
Memory prozor prikazuje sadržaj u raznim područjima memorije. Do četiri različita područja može se pregledati u različitim stranicama. U kontekstu meni vam omogućava izbor dozvoljenog izlaznog formata.
U polje Adresa, (Memory Window), možete uneti bilo koji izraz koji ocenjuje početak adresa iz područja koje želite prikazati. Da biste promenili sadržaj memorije, dvaput kliknite na vrednosti. To otvara jedan okvir koji vam omogućuje da unesete nove memorijske vrednosti. Memorijska karta Omogućava da odredite memorijsko područje koje vaš ciljni program koristi za podatke i izvršenje programa. Obično se ne zahtijeva karta dodatnih adresa. Potrebna je samo karta za memorijska područja u kojima se pristupa bez izričite deklaracije varijable (promenljive), tj. memorije preslikavaju I / O prostor.
66VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
10.6. SERIJSKI PROZOR
uVision3 nudi dva serijska prozora za serijski ulaz i izlaz. Serijski izlaz podataka iz simuliranog CPU je prikazan u ovom prozoru.
Ovo Vam omogućava simulaciju CPU's UART bez potrebe za spoljnim hardverom. Za serijski izlaz će isto tako biti dodeljen PC COM port koristeći naredbu dodeliti u Output Window - Command stranicu.
67VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
10.7. KREIRANJE PROJEKTA U uVision3
Pokrenite Keil uVison3 program.
Kreirajte novi dizajn projekta.Odaberite novi projekt iz padajućeg menija
68VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Otvoriće vam se sledeći prozor koji vas pita da sačuvate (save) kod vašeg projekta npr.na desktopu. Napišete ime projekta npr. displej.
69VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Nakon što ste kliknuli na save (sačuvaj),otvara se prozor koji će vas pitati koji čip želite koristiti. Na primer, ako želite koristiti CC1010 iz Chipcon, morate odabrati Chipcon CC1010 i sl. Pobrinite se da "Koristite proširena povezivanja".U ovom slučaju odaberite Atmel AT89S8253 mikrokontroler kao cilj.
Pojaviće se novi prozor koji će vas pitati da li želite kopirati standard 8051 kod pokretanja u folder projekta. Osim ako ste stari korisnik, trebate kliknuti No,u suprotnom kliknite Yes.
Možete sada izraditi projekt, ali ne postoji izvorni kôd.
70VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Koristite “Obnovi sve ciljne datoteke” -Rebuild all target iz padajućeg menija Project. Sada imate izvorni kôd koji je dodat grupi.
71VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Zatim kliknite na označenu ikonicu koja vam služi za kreiranje novog fajla. Otvoriće vam se nova radna površina “Text 1”.
U radnoj površini Text 1 napišite kôd vašeg projekta.
72VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Zatim sačuvajte kôd opcijom Save iz padajućeg menija File.
Naravno sačuvajte kôd pod ekstenzijom src. Ekstenzija sačuvanog fajla zavisi od toga u kom je programu pisan. Ekstenzija src. pokazuje da je kôd pisan u programskom jeziku C.
73VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Sledeće šta treba uraditi jeste da se taj fajl doda u prozoru Project Workspace 1 to desnim klikom na Source Group 1,pa na opciju Add Files Group.
Pronađite gde vam je smešten taj fajl i kliknite na Add.
74VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Zatim idite na opciju “Obnovi sve ciljne datoteke”-Rebuild all target iz padajućeg menija Project.
Pojaviće vam se sledeći prozor. Ako postoje greške u programu,kao što je ovde slučaj pisaće vam u Output Window (izlazni prozor) kakva je greška i u kom se redu nalazi.
75VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Po ispravljanju grešaka ponovo idite na opciju “Obnovi sve ciljne datoteke”-Rebuild all target iz padajućeg menija Project, i dobićete naredni prozor. Potrebno je da piše 0 Errors (s).
76VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
10.8. SIMULACIJA PROJEKTA
Pre simulacije kliknite na Target 1 i desnim klikom miša odaberite opcije za Target 1,da bi se osigurala brzina za ciljni sklop. Brzina zavisi od tipa mikrokontrolera. Za ovaj slučaj izaberite 24.0 MHz ciljno polje i postavite kristal (XTAL) na frekvenciji 24.0 MHz.
Da biste pokrenuli simulaciju odaberite Start / Stop Debug Sesion opciju iz padajućeg menija Debug.
77VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Prozor projekta uVision sada sadrži pod - prozore. Radni prozor pokazuje trenutni sadržaj najvažnijih registara. Takođe se prikazuje vreme izvršavanja koda u sekundama. Editor prozor pokazuje C k^d,a disassembly prozor pokazuje kodove koji grade ceo projekt. Tokom naših simulacija želimo imati mogućnost nadziranja statusa Port 2 pin 0. Zaokruživanje pina znači da je na visokoj logici(1). Prazno polje na pinu je niska logika(0). Alternativa je metoda za dodavanje varijable(promenljive) na prozor.
78VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
10.9. ISPRAVLJANJE GRE[AKA U PROGRAMU
Za ispravljanje programa idite na korak Debug Step Over. Step Over The command će ispravljati jedan red ili celi potprogram, zavisno od toga
79VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
gde je pokazivač postavljen. Pritisnite F11 i pojaviće se mali žuti pokazivač koji vam omogućava da prtite korak po korak - svaku liniju programa.
10.10. GENERISANJE HEX FAJLA
80VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Programiranje je proces prenošenja heksadecimalne vrednosti jedne datoteke iz računara u mikrokontroler putem RS232 konektora. Mi moramo obezbediti da se prenese svaka heksadecimalna vrednost u datoteci koja je stvorena za vreme dok se gradio proces. Odaberite opciju “project”,zatim u tom padajućem meniju izaberite "Opcije za Target “Target 1”. Odaberite izlaz (output) na kartici i čekirajte “Create Hex File” okvir.
Sada koristite “Obnovi sve ciljne datoteke”-Rebuild all target iz padajućeg menija Project.
81VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Sada idete na opciju “Open file” iz padajućeg menija “File” da bi ste videli generisani HEX fajl,naravno on je snimljen tamo gde vam je izvorni kôd pa se može pokrenuti i otuda. Za tip fajla(Files of type) izaberite svi fajlovi(All files).
Sledeće šta treba uraditi jeste da čekirate odnosno označite fajl sa ekstenzijom .hex. To vam je generisani HEX fajl,odnosno heksadecimalna vrednost koju treba prebaciti u mikrokontroler.
82VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Ovde se vidi dobijeni HEX fajl.
83VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
10.11. UPUTSTVO ZA PROGRAMIRANJE MIKROKONTROLERA
Programiranje je proces prenošenja heksadecimalne vrednosti jedne datoteke iz računara u mikrokontroler putem RS232 konektora. Hex fajl upisujemo u mikrokontroler na način koji je opisan u slikovito prikazanom postupku koji sledi. Za upis hex fajla koristimo atmelov softver koji se moze Atmel Isp download - ovati sa njihovog sajta. Vrši se serijsko programiranje priključivanjem programatora na pinove 5 i 6 porta P1 mikrokontrolera.
84VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Sledeći korak je izbor ATMEL - ovog mikrokontrolera, a kako smo mi koristili AT89S8253 biramo njega, što je prikazano na sledećoj slici:
Kad se otvori folder AT89 dobija se sledeći prozor.
85VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
U oskovnoj verziji programa nije nam dostupan mikrokontroler AT89S8253 pa je potrebno nadograditi program.
Posle nadogradnje dobija se slede}i prozor u kome se jasno vidi da nam je sada na raspolaganju potrebni mikrokontroler.
86VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Posle izbora komponente u prozoru softvera se moze videti prazan buffer mikrokontrolera koji je prikazan na sledećoj slici:
Zatim vršimo učitavanje hex fajla na sledeći način:
87VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Upis u mikrokontroler vršimo na sledeći način koji je prikazan na slici:
11. PROGRAMIRANJE MIKROKONTROLERA
88VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
11.1. ALGORITMI GLAVNOG PROGRAMA I POTPROGRAMA
ALGORITAM GLAVNOG PROGRAMA ALGORITAM POTPROGRAMA WAIT
ALGORITAM POTPROGRAMA XMIT ALGORITAM POTPROGRAMA T0_INT
89VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
ALGORITAM POTPROGRAMA TEST_T1
ALGORITAM POTPROGRAMA TEST_T2
90VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
ALGORITAM POTPROGRAMA KEYSCAN
ALGORITAM POTPROGRAMA SPRINT
91VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
11.2. KÔD PROGRAMA
U daljem tekstu je priložen asemblerski kôd koji predstavlja “uputstvo” za rad mikrokontrolera AT89S8253. Naime, mikrokontroler treba da upravlja paralelnim periferijskim interfejsom 8255, a to ostvaruje preko četiri upravljačka signala CS (Selekcija čipa), RD (Read), WR (Write), A0 i A1. Poslednja dva signala definišu mod (režim) rada 8255.
Asemblerski kôd treba da se prevede u heksadecimalni kôd preko odgovarajuće kompilatora, odnosno kompajlera. Za tu svrhu može poslužiti program Keil koji smo ve} opisali.___________________________________________________________________________
; raspored signala na portovima kontrolera:; port0 se ne koristi; port1:; P1.0 - T1 (taster za start konverzije); P1.1 - T2 (taster za slanje rezultata konverzije na pc); P1.2 - CLOCK (klokovanje ad konvertora); P1.3 - LED_CSTART (led za start konverzije); P1.4 - LED_CEND (led za kraj konverzije); P1.5 - LED_SSTART (led za start slanje na pc); P1.6 - LED_SEND (led za kraj slanja na pc); P1.7 - ne koristi se; port2:; P2.0 - bit 14 ad konvertora (lsb); P2.1 - bit 13 ad konvertora; P2.2 - bit 12 ad konvertora; P2.3 - bit 11 ad konvertora; P2.4 - bit 10 ad konvertora; P2.5 - bit 9 ad konvertora; P2.6 - bit 8 ad konvertora; P2.7 - bit 7 ad konvertora
92VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
; port3:; P3.0 - RXD (linija za prijem podataka serijskog porta); P3.1 - TXD (linija za slanje podataka serijskog porta); P3.2 - bit 6 ad konvertora; P3.3 - bit 5 ad konvertora; P3.4 - bit 4 ad konvertora; P3.5 - bit 3 ad konvertora; P3.6 - bit 2 ad konvertora; P3.7 - bit 1 ad konvertora (msb)
;bit promenljive (int. ram):BSEG AT 20H
XMITF BIT 20H.0;setuje se kad je uart spreman da salje novi karakter;SECF BIT 20H.1 ;setuje se na svaku sekundu u t0_intT1PRESSF BIT 20H.2;setuje se kada je prihvacen pritisak na t1T2PRESSF BIT 20H.3;setuje se kada je prihvacen pritisak na t2T1UNPRESSF BIT 20H.4;prethodno stanje tastera t1T2UNPRESSF BIT 20H.5;prethodno stanje tastera t2 ;promenljive u int. ramu:
DSEG AT 20HFLAGS1 DATA 20H ;bajt sa flagovima
TIMER5MS DATA 30H ;inkrementuje se svakih 5 ms u t0_intSCANCNT DATA 31H ;brojac ciklusa skeniranja tasteraT1CNT DATA 32H ;inkrementuje se svaki put kad je pritisnut t1 (brise se posle scanc skeniranja)T2CNT DATA 33H ;inkrementuje se svaki put kad je pritisnut t2 (brise se posle scanc skeniranja)TEMPW DATA 34H ;privremena promenljiva (koristi se u pp-u wait)CSUM DATA 35H ;pamcenje ceksume niza bajtova koji se salje na pc
;promenljive u indirektno adresibilnom ramu:ISEG AT 80H
ADSTART IDATA 80H ;prva lokacija niza u kome se pamte rezultati merenja
93VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
;konstante:STCK EQU 60H ;po resetu stek se postavlja na stckSCANC EQU 4 ;scanc-1 je broj ciklusa skeniranja tasteraCLOCK EQU P1.2LED_CSTART EQU P1.3LED_CEND EQU P1.4LED_SSTART EQU P1.5LED_SEND EQU P1.6
CSEG AT 0USING 0 ; Register-Bank 0
; Execution starts at address 0 on power-up.JMP START
CSEG AT 0003H ;External Interrupt 0RETICSEG AT 000BH ;Timer 0 Overflow;RETIJMP T0_INT ;skok na obradu interapta
od tajmera 0CSEG AT 0013H ;External Interrupt 1RETICSEG AT 001BH ;Timer 1 OverflowRETICSEG AT 0023H ;Serial PortJMP SERINT ;skok na obradu interapta
od uarta;RETI
CSEG AT 0030H;System Reset:START: MOV IE,#00H ;zabrana interapta
MOV SP,#STCK ;inicijalizacija stekaCALL RESET_RAM ;reset int rama (ispod
steka)CALL RESET_IRAM ;reset indirektno
adresibilnog ram-a (gornjih 128 bajtova)CALL PORTS_INIT ;inicijalizacija portova
94VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
CALL TIMERS_INIT ;inicijalizacija tajmera
CALL UART_INIT ;inicijalizacija uartaCALL VARS_INIT ;postavljanje inicijalne
vrednosti promenljivihCALL INTERRUPTS_INIT ;inicijalizacija interaptaSETB TR0 ;start tajmera 0SETB TR1 ;start tajmera 1
;glavna petlja:LOOP: CALL TEST_T1 ;testiranje stanja tastera t1
CALL TEST_T2 ;testiranje stanja tastera t2
JMP LOOP
; -----;potprogram koji, ukoliko je ustanovljen pritisak na taster t1:; - gasi led led_start; - izvrsava 5 uvodnih klokovanja ad konvertora (dovoljno je 3 - videti datasheet za ad konv.); - u petlji posle svakog kloka uzima visi i nizi bajt rezultata ad konverzije i zapisuje u int ram; (16 klokova - zapis 32 bajta); Posto 6 visih bitova (14-bitnog ad kovertora) uzimamo sa p3.2-p3.7 potrebno je iz procitanog; bajta sa p3 izdvojiti potrebne bitove - siftujemo dva puta udesno; - pali led led_cendTEST_T1: JNB T1PRESSF,TST1E
CLR T1PRESSF
SETB LED_SSTART
MOV B,#5TT100: CLR CLOCK
CALL WAITSETB CLOCKCALL WAITDJNZ B,TT100
MOV B,#32MOV R0,#ADSTART
95VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
TT101: CLR CLOCKCALL WAITSETB CLOCKCALL WAITMOV A,P3CLR CRRC ACLR CRRC AMOV @R0,AINC R0MOV A,P2MOV @R0,AINC R0DJNZ B,TT101
CLR LED_CEND
TST1E: RET
; -----;potprogram koji, ukoliko je ustanovljen pritisak na taster t2:; - gasi led led_cend; - pali led led_cstart; - salje na pc podatke u formatu:; <55><55><55><l><m1 14-8><m1 7-0><m2 14-8><m2 7-0>.......<m16 14-8><m16 7-0><cs>; gde je:; <55><55><55> : niz uvodnih bajtova (55h); <l> : (l-duzina) - broj bajtova koji se salje, u ovom slucaju 32 (20h); <m1 14-8> : visi bajt prvog merenja (bitovi od 14 do 8); <m1 7-0> : nizi bajt prvog merenja (bitovi od 7 do 0); .; .; <m16 14-8> : visi bajt (poslednjeg) 16. merenja; <m16 7-0> : nizi bajt (poslednjeg) 16. merenja; <cs> : ceksum u koji ulaze samo bajtovi sa merenjima - bez uvodnog niza; i broja bajtova l; (predstavlja najnizi bajt zbira svih bajtova); - gasi led led_cstart
96VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
; - pali led led_sstartTEST_T2: JNB T2PRESSF,TST2E
CLR T2PRESSF
SETB LED_CENDCLR LED_CSTART
MOV A,#55H ;slanje uvodnog niza (tri bajta 55h)
CALL XMITMOV A,#55HCALL XMITMOV A,#55HCALL XMIT
MOV A,#20H ;slanje broja bajtova (16 dvobajtnih merenja - 32 bajta)
CALL XMIT
MOV CSUM,#0 ;reset ceksumaMOV R0,#ADSTART ;priprema
parametara za petlju slanjaMOV B,#32
T200: MOV A,@R0CALL XMITCALL ADDCSUMINC R0DJNZ B,T200MOV A,CSUMCALL XMIT
SETB LED_CSTARTCLR LED_SSTART
TST2E: RET
; -----;potprogram za pauzu koja se koristi za odredjivanje trajanja kloka za ad konvertor;trajanje pauze je priblizno 100 mikrosekundi (50 dvociklusnih instrukcija djnz)WAIT: MOV TEMPW,#50
97VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
DJNZ TEMPW,$RET
; -----;potprogram za inicijalizaciju promenljivih (razlicitih od nule):VARS_INIT: MOV TIMER5MS,#200 ;200x5ms~1s
MOV SCANCNT,#SCANCRET
; -----;potprogram koji resetuje interni ram ispod steka:RESET_RAM: MOV R0,#STCK-1RR00: MOV @R0,#0
DJNZ R0,RR00RET
; -----;potprogram za reset indirektno adresibilnog ram-a:RESET_IRAM: MOV R0,#80HRIR0: MOV @R0,#0
INC R0CJNE R0,#0,RIR0RET
; -----;za ocitavanje vrednosti ad konvertora koristi se ceo port2 (p2.0 je lsb ad konvertora) i p3.2 - p3.7;(p3.7 je msb ad konvertora); za ocitavanje tastera se koriste p1.0 (t1) i p1.1 (t2);;za upravljanje le diodama koriste se p1.3 - p1.6; za klokovanje ad konvertora se koristi p1.2;za komunikaciju sa pc-jem koriste se p3.o (rxd - opciono) i p3.1 (txd)PORTS_INIT: ORL P2,#11111111B ;svi pinovi porta 2 su ulazni (8 nizih bitova ad konvertora)
ORL P1,#00000011B ;dva najniza bita za skeniranje tastera
ORL P3,#11111100B ;p3.2-p3.7 ulazni (6 visih bitova ad konvertora)
RET
; -----;potprogram koji inicijalizuje tajmera:;kvarc = 11.0592 MHz
98VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
;tajmer 0 generise inerapt na ~ 5ms:;mod 1 (16 bitni tajmer), reload vrednost -1200 (EE00H) ;tajmer 1 generise bodovu brzinu za uart;mod 2 (auto reload mod), reload vrednost FDH za 9600 bodaTIMERS_INIT:
MOV TMOD,#00100001BMOV TH0,#0EEHMOV TL0,#00HMOV TH1,#0FDHRET
; -----;poptrogram za inicijalizaciju uarta:;mod 1 (8-bit uart), prijem zabranjen, bodovu brzinu generise tajmer 1; !!! ako bude potvrde poruke koju saljem od pc-ja onda dozvoliti i prijemUART_INIT: MOV SCON,#01000000B
SETB XMITF ;inicijalizacija promenljive
RET
; -----;dozvola interapta od serijskog porta i tajmera 0;i globalna dozvola interaptaINTERRUPTS_INIT:
MOV IE,#10010010BRET
;potprogram za slanje karaktera ,iz akumulatora , preko serijskog porta:XMIT: JNB XMITF,XMIT ;cekamo da se isprazni sbuf (posalje prethodni karakter)
MOV SBUF,ACLR XMITFRET
; -----;potprogram za racunanje ceksume:ADDCSUM: ADD A,CSUM
MOV CSUM,A RET
; -----;na svakih 5ms (svaki ulazak u interapt od t0) ocitavaju se vrednosti p1.0 (t1) i p1.1 (t2) pri cemu
99VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
;se smatra da je neki od tastera pritisnut ukoliko je stanje odgovarajuceg pina na logickoj nuli ;u tri uzastopna ocitavanja (eliminacija greske zbog smetnji kod prelaznog rezima mehanickog tastera);a detektovani pritisak tastera bice proglasen validnim (prihvacen) ukoliko su prethodno bila otpustena;(nisu pritisnuta) oba tastera.KEYSCAN: DJNZ SCANCNT,KEY00
MOV SCANCNT,#SCANC
;zavrsen ciklus od scanc ocitavanja:;provera tastera t1:
MOV A,T1CNTCJNE A,#SCANC-1,KEY03JNB T1UNPRESSF,KEY02SETB T1PRESSFCLR T1UNPRESSF
KEY02: MOV T1CNT,#0JMP KEYN
KEY03: MOV T1CNT,#0SETB T1UNPRESSF
;provera tastera t2:
KEYN: MOV A,T2CNTCJNE A,#SCANC-1,KEY05JNB T2UNPRESSF,KEY04SETB T2PRESSFCLR T2UNPRESSF
KEY04: MOV T2CNT,#0JMP KEYE
KEY05: MOV T2CNT,#0SETB T2UNPRESSFJMP KEYE
KEY00: MOV A,P1ANL A,#00000011B ;sa p1 uzimam samo
dva najniza bita (p1.0 i p1.1)CJNE A,#1,KEY01 INC T2CNT ;pritisnut je t2
pa inkrementujem brojacJMP KEYE
100VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
KEY01: CJNE A,#2,KEYEINC T1CNT ;pritisnut je t1
pa inkrementujem brojac
KEYE: RET
;***obrada interapta serijskog porta:***SERINT: JNB TI,SI01
CLR TISETB XMITF ;poslat je karakter, setujemo
xmitf kao dozvolu za slanje sledeceg karakteraSI01: JB RI,SI02
RETI
SI02: PUSH PSWPUSH ACCPUSH BPUSH 0PUSH 1PUSH DPHPUSH DPL
;obrada primljenog karaktera:
CLR RI
POP DPLPOP DPHPOP 1POP 0POP BPOP ACCPOP PSWRETI
;***obrada interapta tajmera 0:***;interapt se desava na ~ 5msT0_INT: PUSH PSW
PUSH ACCPUSH B
101VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
PUSH 0PUSH 1PUSH DPHPUSH DPL
CLR TF0 ;brisem interap flag
MOV TH0,#0EEH ;upisujem reload vrednosti
MOV TL0,#00H
DJNZ TIMER5MS,T0INT00MOV TIMER5MS,#200 ;reset brojaca
;desavanja na ~ 1 sekundu:
;SETBSECF
;desavanja na ~ 5 milisekundi:
T0INT00: CALL KEYSCAN ;ocitavanje tastera
POP DPLPOP DPHPOP 1POP 0POP BPOP ACCPOP PSW
RETI
END
102VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Heksadecimalni kôd posle kompilacije asemblerskog koda:
:02000000802E50:0100030032CA:02000B00217062:0100130032BA:01001B0032B2:02002300214674:1000300075A80075816011C311CA11D311DD11EAD1:1000400011BC11F0D28CD28E114E118280FA300286:1000500030C202D29575F005C29211B5D29211B597:10006000D5F0F575F0207880C29211B5D29211B515:10007000E5B0C313C313F608E5A0F608D5F0E9C24E:10008000942230032FC203D294C293745511F47496:100090005511F4745511F4742011F47535007880FD:1000A00075F020E611F411FC08D5F0F7E53511F4F0:1000B000D293C29522753432D534FD227530C8757D:1000C000310422785F7600D8FC227880760008B868:1000D00000FA2243A0FF43900343B0FC227589211C:1000E000758CEE758A00758DFD22759840D20022C0:1000F00075A892223000FDF599C200222535F5350C:1001000022D53131753104E532B4030C300404D208:1001100002C2047532008005753200D204E533B4A2:10012000030C300504D203C2057533008017753304:1001300000D2058010E5905403B401040533800516:10014000B40202053222309904C299D200209801EB:1001500032C0D0C0E0C0F0C000C001C083C082C2C5:0901600098D082D083D001D000B8:10016900D0F0D0E0D0D032C0D0C0E0C0F0C000C0E4:1001790001C083C082C28D758CEE758A00D53003AB:100189007530C83101D082D083D001D000D0F0D0F1:04019900E0D0D032B0:00000001FF__________________________________________________________________________________________
Naravno, heksadecimalni kod nije sređen po bankama, međutim, to je zadatak softverskog alata (IC-Prog, PonyProg, Atmel Microcontroller ISP software, itd.)
103VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
12. PC PROGRAM “MERENJA”
12.1. UVOD
„Merenja“ je klijentski program za tabelarni prikaz merenja sa AD konvertora. Povezivanje sa AD konvertorom je realizovano preko serijskog porta (RS232). Program je napisan u programskom jeziku C# (CSharp).
12.2. PREGLED TEHNOLOGIJA
Pri izradi programa „Merenje“ korišćene su sledeće softverske tehnologije:
12.2.1. Mictosoft .NET Framework
UVOD
Softversko okruženje koje se izvršava na Microsoft Windows operativnom sistemu. Sastoji se od biblioteka sa unapred razvijenim rešenjima za veliki broj programerskih potreba i virtuelne mašine koja upravlja izvršenjem programa pisanih za ovo okruženje. Verzija korišćenog okruženja je 2.0.50727.
Arhitektura .NET-a
Osnovu .NET-a predstavlja svakako .NET Framework. Najjednostavnije rečeno, to je sistem koji nadograđuje mogućnosti samog operativnog sistema. Radi se o posebnoj infrastrukturi koja programerima nudi gotova rešenja i funkcionalnosti da bi ubrzala i pojednostavila razvoj aplikacija svih vrsta i oblika.
Najvažniji deo .NET Frameworka zove se Common Language Runtime ili skraćeno CLR. CLR je softverski sistem u kojem se kôd izvršava. Kada korisnik pokrene aplikaciju pisanu za .NET Platformu, CLR ju je izvršava
104VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
kako bi joj osigurao stabilnost i funkcionalnost. Instrukcije u programu se u realnom vremenu prevode u izvorni strojni kôd koji razume računar. Za taj je posao zaslužan JIT - kompajler (eng. Just In Time). Upravo prevođenje u izvorni strojni kôd računara, omogućilo je .NET-u prelazak na druge operativne sisteme kao što su Linux ili MacOS (putem pomoćnog third-party MONO sustava).
Kako kompajliranje zasigurno usporava izvršavanje aplikacija, ono će se izvršavati samo jednom, a njegov će se rezultat spremiti kako bi se kasnije mogao koristiti bez ponovnog kompajliranja.
Aplikacije za .NET platformu mogu se pisati u raznim programskim jezicima, gotovo svim poznatijim. CLR, međutim, ne poznaje niti jedan taj jezik - on dobija naredbe isključivo u jeziku nazvanom Microsoft Intermediate Language (sraćeno MSIL), temeljen na pravilima koja se nazivaju Common Language Specifications (CLS). Stoga je jasno da mora postojati kompajler koji će programski jezik u kojem programer piše kôd prevesti u MSIL kako bi ga CLR razumio. Ovi kompajleri nazivaju se IL-kompajleri te su dostupni za velik broj programskih jezika. Microsoft je izdao kompajlere za pet jezika: C#, J#, C++, Visual Basic JScript, dok su se ostali proizvođači softvera potrudili oko brojnih drugih kao što su: Perl, Python, Cobol, Eiffel…
Kako se svi ovi jezici prvo pretvaraju u MSIL, sasvim je svejedno u kojem ćete od njih pisati aplikacije. Iz ovoga takođe proizlazi i druga velika mogućnost .NET-a - višejezično pisanje aplikacija. Tako sada više nije nužno da svi programeri koji rade na određenom projektu poznaju isti programski jezik, važno je samo da je podrška za njihov jezik dostupna u .NET-u, odnosno da postoji IL-kompajler za njihov jezik.
Mogućnosti koje CLR nudi su izuzetne, no same po sebi nisu dovoljno uporabljive iz ljudskog aspekta. Upravo zbog toga u .NET Frameworku postoje setovi klasa koje omogućavaju brzo i jednostavno korištenje mogućnosti koje CLR nudi.
Osnovne klase
Prvi i osnovni skup klasa zove se Base Class Library ili skraćeno BCL te sadrži osnovne funkcionalnosti koje se koriste u programiranju (funkcije za transformaciju teksta, mrežnu komunikaciju, proveravanje sigurnosnih prava, hvatanje unosa s tastature…)
Svojevrsna nadogradnja osnovne biblioteke sadrži set klasa zaduženih za komunikaciju s bazama podataka (ADO.NET) te XML-om. One omogućuju povezivanje aplikacija s bazama podataka (kao MS Access, SQL Server, Oracle…), kao i manipulaciju podacima u XML-dokument
105VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
12.2.2. SharpDevelop
UVOD
C# je objektno-orijentisani programski jezik koji je razvio Microsoft u okviru svoje Microsoft .NET inicijative. Jezik su kao standard odobrile ISO i ECMA međunarodne organizacije. C# ima proceduralnu, objektno-orijentiranu sintaksu, zasnovanu većinom na C++-u, ali takođe uključuje i neke aspekte iz drugih jezika, kao što su Delphi, Visual Basic, te Java, sa posebnim fokusom na pojednostavljenje (manje simbola od C++ i manje dekorativnih zahtjeva od Jave).
Besplatno integrisano razvojno okruženje (IDE) otvorenog koda. Omogućava razvoj programa u jezicima C#, VB .NET, F# itd. Nastalo je kao alternativa Microsoft Visual Studio .NET okruženju. Verzija u kojoj je program razvijan je 2.2.1.2648. Najvažnije mogućnosti su: grafičko dizajniranje formi, integrisan debugger, automatsko dovršavanje koda (code completion), refactoring i slično.
VERZIJA C# 2.0
U julu 2003. Microsoft je predstavio specifikaciju za C# 2.0 za po~etak 2004. godine. Ova verzija sadr`i neke nove mogu}nosti programskog jezika, od kojih su najzna~ajnije gde su generici sada parametrizovani tipovi, mnogo vi{e nego {to su bili C++ {abloni. Oni se implementiraju generisanjem po tipu nezavisnog bajtkoda u vremenu prevodjenja (kompajliranja), a kada se u vremenu izvr{enja (run-time) {ablon prvi put instancira za konkretan tip, tada se generi{e bajtkod zavisan od tipa. Ta mogu}nost daje visoke performanse i mnogo vi{e tipizirane generike koje ne zahtevaju mnogo izvornog koda.
PRIMER IZVORNOG KODA using System;
namespace HelloNameSpace{ public class HelloWorld { static void Main() { Console.WriteLine("Zdravo, svete!");
106VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
} }}
PISANJE PROGRAMA
Tipovi podataka se mogu podeliti u dve velike grupe:
Vrednosni tipovi (Value Types): - Strukture (Structs)
- Numeri~ki tipovi - Integralne (cele)
- sbyte- byte- char- short- ushort- int- uint- long- ulong
- Tipove sa plutaju}om ta~kom (Floating-point types) - float- double
- Decimalne - decimal
- Bulovi tipovi - bool
- Korisni~ki definisani tipovi- Enumeratori (Enumerations)
- Referentni tipovi (Reference Types): - class- interface- delegate
KLJU^NE RE^I
Klju~ne re~i C# verzije 2.0 su: abstract, as, base, bool, break, byte, case, catch, char, checked, class, const, continue, decimal, default, delegate, do, double, else, enum, event, explicit, extern, false, finally, fixed, float, for, foreach, goto, if, implicit, in, int, interface, internal, is, lock, long,
107VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
namespace, new, null, object, operator, out, override, params, private, protected, public, readonly, ref, return, sbyte, sealed, short, sizeof, stackalloc, static, string, struct, switch, this, throw, true, try, typeof, uint, ulong, unchecked, unsafe, ushort, using, virtual, volatile, void и while
12.3. OPIS PC PROGRAMA “MERENJA”
Nakon startovana programa, pojavljuje se forma koja se sastoji iz tri dela:
Podaci – sadrži tabelu sa kolonama za smeštaj merenja u heksadekadnom i dekadnom obliku, kao i preračunatu vrednost u voltima, dok je ispod tabele indikator koji jednu sekundu svetli zeleno u slučaju prijema merenja
Podesavanja – sadrži listu za izbor serijskog porta preko koga se vrši povezivanje sa AD konvertorom i polje za unos koeficijenta za preračunavanje merenja u volte
Poruke – prikaz komentara i prijemu podataka
Povezivanje sa AD konvertorom počinje izborom serijskog porta, dok je koeficijenat podrazumevano postavljen na 0.0003 (da bi vrednosti sa AD konvertora bile prikazane u opsegu 0 - 5V). Izmene u podešavanjima neće uticati na trenutno prikazane podatke, već na buduću komunikaciju.Izlazak iz programa je preko sistemskog tastera u gornjem desnom uglu ekrana (crveni taster sa oznakom „X“).
108VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
12.4. IZGLED I UPUTSTVO ZA RAD PC PROGRAMA “MERENJA”
Po otvaranju PC Programa “Merenja”, pre po~etka bilo kakvih merenja potrebno je izabrati serijski port preko koga je vezan na{ uredjaj. U na{em slucaju to je serijski port COM1, {to se mo`e videti sa Slike 12.1.
Slika 12.1. Odabir odgovaraju}eg serijskog porta
Sada kada smo odabrali odgovaraju}i serijski port merenje mo`e da po~ne. Merenja se vr{e pomo}u dva tastera moja se nalaze na samom uredjaju, Slika 12.2. TASTER 1, upro{temo re~eno, slu`i za merenje zadatog napona preko potenciometra, dok se pritiskom na TASTER 2 {alje informacija ra~unaru o izmerenom naponu. Ukoliko se vi{e puta pretisne TASTER 2 ista informacija }e se slati ra~unaru, sve dok se novi napon ne podesi preko potenciometra i izmeri pritiskom na TASTER 1.
Postavljanjem potenciometra u krajnju desnu stranu posti`e se najmanji mogu}i napon koji bi oko 10mV. Naravno, minimalan napon u ovom slu~aju bi trebao da ima vrednost od 0V, ali usled postojanja {umova i brumova komponenti koje ~ine ovaj uredjaj to je te{ko izvodljivo. Izmerene vrednosti u slu~aju kada smo hteli minimalan napon da postignemo preko potenciometra dat je na Slici 12.3.
109VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Slika 12.2. Raspored tastera na uredjaju
Slika 12.3. Minimalna vrednost napona
Daljim pomeranjem potenciometra u levu stranu dobijaju se sve ve}e i ve}e vrednosti napona. Merenjem ovog napona pomo}u TASTERA 1 i slanjem izmerene informacije na ra~unar pomo}u TASTERA 2, dobijaju se vrednosti koje se mogu videti na Slici 12.4 i Slici 12.5.
110VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Slika 12.4. Primer izmerenog napona u PC Programu “Merenja”
Slika 12.5. Primer izmerenog napona u PC Programu “Merenja”
111VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Dovodjenjem potenciometra u krajnju levu stranu dobijamo maksimalnu vrednost napona. Ta vrednost iznosi oko 3.71V kao {to se mo`e i videti na Slici 12.6.
Slika 12.6. Maksimalna vrednost napona
112VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
13. LABORATORIJSKE VE@BE
13.1. UPUTSTVO ZA LABORATORIJSKU VE@BU
- PRIKLJU^ITE NAPAJANJE UREDJAJA- POVE@ITE UREDJAJ SA RA^UNAROM PREKO SERIJSKOG PORTA- NA RA^UNARU POKRENITE APLIKACIJU POD NAZIVOM “MERENJA”- PRATITE UPUTSTVO ZA KORI[]ENJE POMENUTE APLIKACIJE
13.2 UPUTSTVO ZA KORI[]ENJE APLIKACIJE “MERENJA”
Po otvaranju PC Programa “Merenja”, pre po~etka bilo kakvih merenja potrebno je izabrati serijski port preko koga je vezan na{ uredjaj. U na{em slucaju to je serijski port COM1, {to se mo`e videti sa Slike 1.
Slika 1. Odabir odgovaraju}eg serijskog porta
Sada kada smo odabrali odgovaraju}i serijski port merenje mo`e da po~ne. Merenja se vr{e pomo}u dva tastera moja se nalaze na samom uredjaju, Slika 2. TASTER 1, upro{temo re~eno, slu`i za merenje zadatog
113VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
napona preko potenciometra, dok se pritiskom na TASTER 2 {alje informacija ra~unaru o izmerenom naponu. Ukoliko se vi{e puta pretisne TASTER 2 ista informacija }e se slati ra~unaru, sve dok se novi napon ne podesi preko potenciometra i izmeri pritiskom na TASTER 1.
Postavljanjem potenciometra u krajnju desnu stranu posti`e se najmanji mogu}i napon koji bi oko 10mV. Naravno, minimalan napon u ovom slu~aju bi trebao da ima vrednost od 0V, ali usled postojanja {umova i brumova komponenti koje ~ine ovaj uredjaj to je te{ko izvodljivo. Izmerene vrednosti u slu~aju kada smo hteli minimalan napon da postignemo preko potenciometra dat je na Slici 3.
Slika 2. Raspored tastera na uredjaju
114VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Slika 3. Minimalna vrednost napona
Daljim pomeranjem potenciometra u levu stranu dobijaju se sve ve}e i ve}e vrednosti napona. Merenjem ovog napona pomo}u TASTERA 1 i slanjem izmerene informacije na ra~unar pomo}u TASTERA 2, dobijaju se vrednosti koje se mogu videti na Slici 4 i Slici 5.
Slika 4. Primer izmerenog napona u PC Programu “Merenja”
115VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Slika 5. Primer izmerenog napona u PC Programu “Merenja”
Dovodjenjem potenciometra u krajnju levu stranu dobijamo maksimalnu vrednost napona. Ta vrednost iznosi oko 3.71V kao {to se mo`e i videti na Slici 6.
116VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
Slika 6. Maksimalna vrednost napona
117VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
13.3. ZADATAK ZA STUDENTE
Cilj ove laboratorijske ve`be je da se studenti upoznaju sa postojanjem i uticajem {uma u elektronskim komponentama.
ZADATAK 1.
Izmeriti napone preko aplikacije “Merenja” u koracima od po 0.5V, u rasponu od 0 do 5V. Za dobijene vrednosti napona pri svakom merenju iscrtati na milimetarskom papiru promenu napona usled uticaja {uma.
ZADATAK 2.
Za ove izmerene vrednosti napona (ukupno ih ima 16) na}i srednje vrednosti i upisati ih u tabelu.
Napon na ulazu [V]
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Srednja vrednost [V]
ZADATAK 3.
Za dobijene srednje vrednosti napona izracunati standardnu devijaciju.
118VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM
14. LITERATURA
ARHITEKTURE I PROGRAMIRANJE RAČUNARSKIH SISTEMA ZASNOVANIHNA FAMILIJI PROCESORA 80x86, Mile K. Stojčev, Branislav D. Petrović, I izdanje, Elektronski fakultet, Niš, 1999.
ATMEL, SPI AT Microcontrollers, Datasheets - http://www.atmel.com
MIKROKONTROLER AT89S8253 – www.atmel.com
Flash microcontroller – Architectural Overview - http://www.atmel.com
Flash microcontroller – Memory Organization - http://www.atmel.com
Obrada prekida kod mikrokontrolera AT89S8253, Saša Đorđević, Seminarski rad, Elektronski fakultet, Niš, 2007.
AD KONVERTOR AD9243AS – http://www.analog.com
232 DRAJVER/PRIJEMNIK – http://www.ti.com
74LS244N – OKTALNI BAFER I LINIJSKI DRAJVER – http://www.ti.com
TS272CN - DVOSTRUKI CMOS OPERACIONI POJA^AVA^ VISOKIH PERFORMANSI – http://www.ti.com
KEIL uVision3 - http://www.keil.com
PC PROGRAM “MERENJA” - http://msdn.microsoft.com/en-us/vcsharp/default.aspx i http://www.microsoft.com/NET/
OSTALO - http://www.wikipedia.org/
119VARIJACIJE PRI MERENJU NAPONA SISTEMOM REALIZOVANIM AT89S8253 MIKROKONTROLEROM