1 / 45

Generator talasnih oblika realizovan pomoću mikrokontrolera at89s8253

Generator talasnih oblika realizovan pomoću mikrokontrolera at89s8253. Predmet : Mikroprocesorski sistemi. Predmetni nastavnik : Prof. dr. Mile Stojčev. PROJEKTNI ZADATAK.

kenaz
Download Presentation

Generator talasnih oblika realizovan pomoću mikrokontrolera at89s8253

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Generator talasnihoblikarealizovan pomoću mikrokontrolera at89s8253 Predmet: Mikroprocesorski sistemi Predmetninastavnik:Prof. dr. Mile Stojčev Slađan Stajić & Negovan Stanković

  2. PROJEKTNI ZADATAK • Realizovati generator talasnih oblika pomoću mikrokontrolera AT89S8253. Realizacija je prikazana i objašnjena pomoću tri primera talasnih oblika koji su prikazani na sledećim slikama. •  Preko serijskog porta na računaru zadavati komandu koji od ovih signala treba prikazati na izlaznom portu mikrokontrolera, komandu za start pomoću koje se počinje sa izvršavanjem odgovarajućeg programa i komandu stop pomoću koje stopiramo izvršavanje programa. • Realizovati digitalno analogni konvertor koji nam služi da digitalni signal koji dobijamo na izlaz mikrokontrolera konvertuje u analogni koji možemo posmarati na osciloskopu Slađan Stajić & Negovan Stanković

  3. - Karakteristike mikrokontrolera AT89S8253 -Kompatibilan je sa procesorom 51 -12 k bytes flesh memorija -SPI serijlski unos za ucitavanje programa -10000 read/write ciklusa -2k byres EEPROM -100000 write/read ciklusa(64k byte korisnicka matrica -Napon napajanja 2,7 do 5.5 V -Frekvencija od 0 do 24 MHz -Memorijsko zakljucanvanje iz 3 nivoa Slađan Stajić & Negovan Stanković

  4. Karakteristike mikrokontrolera AT89S8253 • 256 x 8-bit-ni unutrasnji ram • -32 I/O linije za programiranje • -16-bitna clock/timer brojaca • -9 generatora prekida • -Poboljsani UART serijski port sa centriranjem detekcije • greske i automatskim prepoznavanjem adrese • -Male snage napajanja • -Uspostavljanje prekida u niskom rezimu • -Programilni tajmeri • -Dvostruki pokazivac podataka • -Iskljucivanje pomocu znaka(POWER OFF) • -Fleksibilni ISP programator(byte i page mode) • -Page mode:64 byte/page za DATA memoriju • -4-nivo poboljsani kontrolor prekida • -Programabilna x2 clock opcije • -Unutrasnji POWER-ON reset • -42-pin PDIP model kucista za redukovanje EMS emisije • -Zeleni(Pb/Holide-free) opcija kucista Slađan Stajić & Negovan Stanković

  5. AT89S8253 • AT89S8253 je processor visokihperformansi,malepotrosnjesnage.To je CMOS 8-bitni mikrocontrolersa 12 k bytes flash memorijomi 2k EEPROM memorijomi 256 bajtarama.Komponenta je napravljena u Atmel korporacijiikompatibilna je sanadalekopoznatimipopularnimprocesorom 80C51.Repogramiranje memorije je mogucepomocu SPI serijskogulazailipomocukonvekcionalnogprogramatoramemorija.Kombinovanjemrazlicitih 8-bitnih CPU-a saugradjenomprogramibilnomflesmemorijomnamonolitnomcipu, • Atmel AT89S8253 je fleksibilan processor koji je zahvaljujuciniskojceninasaovelikuprimenukodmnogihkontrolnihaplikacijaiprograma. Slađan Stajić & Negovan Stanković

  6. AT89S8253 • Ima 32 ulazno/izlazna pina, raspoređena u 4 porta sa po osam pinova. Poseduje watchdog tajmer, tri 16-bitna tajmera/brojača, devet izvora prekida i ugrađen oscilator (kvarcni oscilator se vezuje na pinove XTAL1 i XTAL2). Radi smanjenja potrošnje, pored normalnog moda rada, mikrokontroler može da radi u Idle modu ili Power-down modu. Slađan Stajić & Negovan Stanković

  7. Serijsko programiranje • P1.5 je ujedno serijski ulaz MOSI (Master Output Slave Input), P1.6 je MISO (Master Input Slave Output), i P1.7je SCK (Sampling Clock). • Sam algoritam serijskog programiranjajesledeći: • priključi se napajanje i pin za reset RST se postavi na visoko, H. • uključi se serijski način programiranja slanjem instrukcije serijskogprogramiranja na pin MOSI/P1.5. Pri tome se na pin SCK/P1.7 dovodi taktfrekvencije barem 16 puta manje od frekvencije rada mikrokontrolera. • programira se fleš slanjem odgovarajuće instrukcije za upis i podataka. Moguse pri programiranju koristiti dva moda: bajtovskiili stranični. • upis na bilo koju lokaciju može se verifikovatislanjem naredbe za čitanje, pričemu se sadržaj memorijskelokacije dobijana pinu MISO/P1.6. • RST se vraća na niski nivo i mikrokontroler može da počne sa izvršavanjemprograma. Slađan Stajić & Negovan Stanković

  8. AT89S8253 SFR Map • SFR (Special Function Registers) deli adresni prostor sa RAM-om. To znači da se adrese za viših 128 bajtova RAM-a koriste za adresiranje SFR-a. U zavisnosti od načina adresiranja pristupa se ili SFR-u ili višem delu RAM-a. Tako se direktnim adresiranjem pristupa SFR-u, dok se samo indirektnim adresiranjem može pristupiti 128 višim bajtovima RAM-a. Slađan Stajić & Negovan Stanković

  9. AT89S8253 SFR Map Slađan Stajić & Negovan Stanković

  10. Preklapanje SFR i RAM adresnog prostora Nižim 128 bajtovima RAM-a može da se pristupa i direktno i indirektno Slađan Stajić & Negovan Stanković

  11. Organizacija nižih 128 bajtova RAM-a Nižih 32 bajtaje podeljeno u četiri banke registara. Svaka banka sadrži osam registra. I zbor banke obavlja se postavljanjem trećeg i četvrtog bita u PSW registru na odgovarajuću vrednost. Podrazumevana vrednost (default) selektuje prvu banku, a Stek Pointer (SP) je postavljen na adresu 07h. To znači da magacin zauzima prostor iznad prve banke. Međutim, ovo se može promeniti po potrebi tako da je položaj magacina proizvoljan kao i njegova veličina. Slađan Stajić & Negovan Stanković

  12. IZVORI PREKIDA • Kod ovog mikrokontrolera postoje šest izvora prekida. Dva spoljašnja (0INT i 1INT), tri prekida tajmera (tajmer 0,1 i 2) i prekid serijskog porta. • Sa ciljem da se koriste bilo koji od prekida u flash mikrokontroleru, treba preduzeti sledeća tri koraka. • 1. Postaviti EA (bit dozvole) u IE registru na 1. • 2. Postaviti odgovarajući pojedinačni bit prekida u IE registru na 1. • 3. Započeti prekidnu servisnu rutinu na odgovarajućoj adresi vektora prekida. Videti sledeću tabelu. Slađan Stajić & Negovan Stanković

  13. Tabelaprekida Slađan Stajić & Negovan Stanković

  14. Registarkojiomogucavaprekide Slađan Stajić & Negovan Stanković

  15. Registar prioriteta prekida Slađan Stajić & Negovan Stanković

  16. RS 232 standard • Pošto komunikaciju mikrokontrolera sa računarom odnosno zadavanje određenih naredbi vršimo preko RS 232 linije u tekstu koji sledi podrobnije ćemo objasniti serijsku komunikaciju između računara i mikrokontrolera AT89S8253. • ‘Telecommunication Industry Association, 1997-e godine izdala je TIA 232 Version F serijsko komunikacijski protokol poznat kao RS 232 (Recommended Standard) protokol. • RS 232 standard je široko korišćen pri prenosu podataka sa brzinama u granicama od 115 do 330 kbipsa a maksimalna razdaljina za komunikaciju je oko 30 metra. • RS 232 predstavlja peer to peer komunikacijski standard, odnosno pogodan je za aplikacije koje sadrže 2 čvora gde je na svakom od njih mikrokontroler ili računar odnosno možemo povezati jedan mikrokontroler za jedan PC. Pretpostavimo da brzina kojom šaljemo podatke sa računara 9600 baud-a odnosno 9600 bita u sekundi, što je inače i široko preporučljiva brzina za bezbedno slanje podataka, onda će za slanje jednog bajta plus jedan start i jedan stop bit biti potrebno 1ms. MAX 232 je iskorišćen kao driver chip između serijskog porta na računaru i mikrokontrolera. Slađan Stajić & Negovan Stanković

  17. Veza MAX232 saserijskimportom Slađan Stajić & Negovan Stanković

  18. SERIJSKA KOMUNIKACIJA Slađan Stajić & Negovan Stanković

  19. SERIJSKA KOMUNIKACIJA • Bitovi SM0 i SM1 definišu serial mod. Četiri moda rada su definisana u prethodnoj tabeli. Kao što možemo videti, selektovanjem Serijskog moda selektujemo operacije (8 bitni/9 bitni, UART ili Shift registar) i takodje odredjujemo kako će baud rate biti proračunata. U modovima 0 i 2 baud rate je fiksno zasnovana na frekvenciji oscilatora. U modovima 1 i 3 baud rate je promenljiva i bazirana na to kako često se Tajmer 1 overflow-je. Slađan Stajić & Negovan Stanković

  20. Određivanje baud rate • Prva stvar koju morate da uradite kada koristite AT89S8253 sa ugradjenim serijskim portom je očigledno da ga konfigurišete. Dakle treba da zadamo mikrokontrolerukoliko bitova podatka mi želimo da pošaljemo, baud rate koja će biti korišćena i kako će željena baud rate biti odredjena. Slađan Stajić & Negovan Stanković

  21. Određivanje baud rate • Čim serijski port bude konfigurisan u odgovarjućem modu, kao što smo objasnili u prethodnom delu, program mora da konfiguriše njegovu baud rate. Ovo se jedino primenjuje kad je serijski port u modovima 1 i 3. Odredjivanje Baud rate u modovima 0 i 2 se bazira na frekveciji oscilatora. U modu 0 baud rate je uvek jednak frekvenciji oscilatora podeljenoj sa 12. To znači da ako imate kristal sa frekvencijom 11.059 MHz baud rate moda 0 će uvek biti 921 583 baud-a. U modu 2 baud rate je uvek frekvencija oscilatora podeljena sa 64, tako da za isti kristal od 11.059 MHz-a brzina će biti 172 979 baud-a. Slađan Stajić & Negovan Stanković

  22. Određivanje baud rate • U modovima 1 i 3, baud rate je odredjen frekventnošću overflow-vanja (prekoračenja) tajmera 1. To znači da ako se tajmer 1 češće overflow-je baudrateće biti veća. Postoje mnogi načini koji mogu da uslove da se tajmer 1 overflow-je odredjenom brzinom, ali najopštija metoda je da stavimo tajmer 1 u 8-bitni auto-reload mod (tajmer mod 2) i postavimo reload vrednost (TH1) koja će usloviti overflow-vanje na pogodnoj frekvenciji koja će generisati baud rate. • Da bi odredili vrednost koja mora biti smeštena u TH1 i da bi generisali datu baud ratemorate koristiti sledeću jednačinu (pretpostavimo daje PCON.7 postavljen na 0). • TH1 = 256 - ((Kristal / 384)/Baud) • Ako je PCON.7 postavljen onda baud rate se efektivno udvostručava, dakle jednačina postaje: • TH1 = 256 - ((Kristal / 192)/Baud) Slađan Stajić & Negovan Stanković

  23. Određivanje baud rate • Baud-ova brzina u našem slučaju je 9600, a oscilovanje kristala 11.059MHz. Tako da prema formuli TH1 = 256 - ((Kristal / 384)/Baud) u TH1 upisujemo vrednost #FDh. • ;(0FDH - 9600 Q=11.0592MHz) • MOV TH1,#0FDH ;definisanje brzine tajmera T1 9600 • MOV TL1,TH1 • MOV TMOD,#021H ;T1 = AUTORELOAD, T0 = 16b_TIMER • MOV SCON,#050H ;dozvola serijskog prijema • SETB TR1 ;STARTUJE tajmer 1 • Čim serijski port bude konfigurisan na način kako smo objasnili u prethodnom delu, on postaje spreman za slanje i primanje podataka. Slađan Stajić & Negovan Stanković

  24. SOFTVER • Komunikaciju sa mikrokontrolerom odnosno slanje određenih naredbi istom smo ostvarili programom koji je napisan u Delphi-u.Izgled izvršnog fajla je dat na sledećoj slici Slađan Stajić & Negovan Stanković

  25. SOFTVER • Klikomnanekiodsignala a zatimnadugme START mikrokontroleru se šaljekomandazagenerisanjeodgovarajućegsignala. Ukoliko je u pitanjuprvi signal nizkaraktera koji se šalje je PRES1S. Ukoliko je u pitanjudrugi signal nizkarakterakoji se šalje je PRES2S a zatreći signal nizkaraktera je PRES3S. Posleklikanadugme START izgledizvršnogfajla je sledeći Slađan Stajić & Negovan Stanković

  26. SOFTVER • U svakomtrenutkumožemozaustavitigenerisanjeodgovarajućegsignalapritiskomnadugme STOP. Kadakliknemona START šalje se nizkaraktera P ONW, kadapretisnemo STOP šaljemonizkaraktera P OFW. Kadaodgovarajućinizkarakterastigne u mikrokontroler u njemunastupaserijskaprekidnarutinakojauslovljavadekodiranjeodgovarajućenaredbeiizvršenjeiste. Slađan Stajić & Negovan Stanković

  27. SOFTVER • Program pomoću kojeg se vrši generisanje odgovarajućih talasnih oblika napisan je u asembleru i njegov izgled je prikazan u tekstu • Talasni oblik 1: Najpre inkrementiramo R1.Nakon toga naredbom CJNE (Compare Jump If Not Equal) uporedjujemo sadrzaj R0 sa 0. Ukoliko nije 0 onda se ide na labelu UPISP1 gde se vrši generisanje prvog talasnog oblika. Posle svake periode vrši se ispitivanje o serijskom interaptu. Ukoliko nije dat zahtev za drugi talasni oblik nastavlja se generisanje prvog. Slađan Stajić & Negovan Stanković

  28. ;---- TALASNI OBLIK 1 ----- • PROG1: INC R1 ; inkrementiranje R1 • CJNE R1,#0,UPISIP1 ;uporedjivanje sadržaja R1 sa nulom i ako nije nula skače se na labelu UPISP1 • JMP ISPSER ; ispitivanje serijskog interapta na kraju periode • UPISIP1: MOV A,R1 ; generisanje prvog talasnog oblika • ANL A,#11100000B • MOV P2,A • JMP PROG1 Slađan Stajić & Negovan Stanković

  29. SOFTVER • Talasni oblik 2: Kod drugog talasnog oblika imamo dva labele PADP2 i RASTP2 koje nam generišu uzlazni i silazni deo drugog signala. Prvo vršimo inkrementiranje R1 do 128 dekadno, dokle nam signal ide uzlaznom putanjom, a zatim se vrši dekrementiranje R1 do 0 čime nam signal ide silaznom putanjom. Slađan Stajić & Negovan Stanković

  30. ;---- TALASNI OBLIK 2 ----- • PROG2: INC R1 ;inkrementiranje R1 • CJNE R1,#0128,RASTP2 ;uporedjivanje sadržaja R1 sa 128 • dekadno i ako nije jednako skače se na RASTP2 • PADP2: DEC R1 ;generisanje padajuće ivice drugog signala • CJNE R1,#0,PADAP2 • JMP ISPSER ;ispitivanje serijskog interapta na kraju periode • PADAP2: MOV P2,R1 ;izbacivanje rezultata na izlaz • JMP PADP2 • RASTP2: MOV P2,R1 ;generisanjerastuće ivice i izbacivanje rezultata na • izlaz • JMP PROG2 Slađan Stajić & Negovan Stanković

  31. SOFTVER • Talasni oblik3: Treći signal se dobija inkrementiranjem R1 do 128, zatim određeni broj taktova signal zadržava stanje 128 nakon čega se opet vrši inkrementiranje R1 od 128 do 256 i na kraju periode opet zadržava novo stanje tj. 255. I kod ovog i kod prethodnog signala se na kraju svake periode vrši ispitivanje serijskog interapta. Slađan Stajić & Negovan Stanković

  32. ;---- TALASNI OBLIK 3 ----- • PROG3: INC R1 ;inkrementiranje R1 • CJNE R1,#0128,RAST1 ;uporedjivanje sadržaja R1 sa 128 dekadno i ako • nije jednako skače se na RAST1 • RAVAN1: MOV P2,#0128 ;prvi ravan deo signala • MOV R0,#0128 • PAURAV1: NOP • DJNZ R0,PAURAV1 • JMP PORAST2 •  RAST1: MOV P2,R1 • JMP PROG3 •  PORAST2: INC R1 • CJNE R1,#0,RAST2 • JMP RAVAN2 •  RAST2: MOV P2,R1 • JMP PORAST2 •  RAVAN2: MOV P2,#0255 ;drugi ravan deo signala • MOV R0,#0128 • PAURAV2: NOP • DJNZ R0,PAURAV2 • JMP ISPSER ; ispitivanje serijskog interapta na kraju periode Slađan Stajić & Negovan Stanković

  33. HARDVER • Za hardversku realizaciju generatora talasnih oblika iskorišćena je PCB koju je projektovao student J. Jovanović. Šema prikazuje kako su povezani mikrokontroler AT89S8253, ispravljač napona od 220V AC 50Hz na 5V DC (trafo je smesten van PCB ploce), kolo max232 za spregu sa računarom preko RS232 porta. Slađan Stajić & Negovan Stanković

  34. Blok šema elemenata smeštenih na PCB ploči Slađan Stajić & Negovan Stanković

  35. HARDVER • Šema po kojoj smo realizovali digitalno analogni konvertor data je na sledećoj slici.Digitalno analogni konvertor je povezan na port P2 atmelovog mikrokontrolera i ima ulogu da digitalni signal, promenljiv u vremenu, koji imamo na izlazu mikrokontrolera pretvori u analogni signal kojeg mozemo posmatrati na osciloskopu. Da nebismo dobili jednosmerni nivo na izlazu konvertora operacioni pojačavači su realizovani sa simetričnim napajanjem. Slađan Stajić & Negovan Stanković

  36. Šema digitalno analognog konvertora Slađan Stajić & Negovan Stanković

  37. HARDVER • Realizovan hardver ima sledeći izgled Slađan Stajić & Negovan Stanković

  38. HARDVER • trafo Digitalno analogni konvertor mikrokontroler Slađan Stajić & Negovan Stanković

  39. HARDVER Konektor preko kojeg vršimo prgramiranje Ispravljač i stabilizator napona RS232 konektor Max232 Slađan Stajić & Negovan Stanković

  40. Testiranje i upis hex fajla • Program koji smo napisali u asembleru možemo istestirati i kompajlirati pomoću više programa kao sto su Arhimed 8051, Keil uVision 3. • Ukoliko je program ispravan vršimo kreiranje hex fajla. Hex fajl upisujemo u mikrokontroler na način koji je opisan u slikovito prikazanom postupku koji sledi. • Za upis hex fajla koristimo atmelov softver koji se moze preuzeti sa njihovog sajta. Vrši se serijsko programiranje priključivanjem programatora na na pinove 5 i 6 porta P1 mikrokontrolera. Slađan Stajić & Negovan Stanković

  41. Testiranje i upis hex fajla -Sledeci korak je izbor ATMEL-ovog mikrocontrolera,a pošto smo mi koristili AT89S8253 biramo njega Slađan Stajić & Negovan Stanković

  42. Upis hex fajla • Posle izbora komponente u prozoru softvera se moze videti prazan buffer mikrocontrolera koji je prikazan na sledecoj slici: Slađan Stajić & Negovan Stanković

  43. Upis hex fajla • Zatim vršimo učitavanje hex fajla na sledeći način Slađan Stajić & Negovan Stanković

  44. Upis hex fajla • Upis u mikrocontroler vršimo na način koji je prikazan na slici Slađan Stajić & Negovan Stanković

  45. ZAKLJUČAK • Generator talasnih oblika je analiziran i razrađen. Jasno postavljene softverske i hardverske zadatke smo izvršili. Nakon učitavanja programa u mikrokontroler izvršeno je testiranje celokupnog sistema. Testiranje je prošlo uspešno tako da se može reći da je generator talasnih oblika uspešno realizovan.Moguća su dalja dorađivanja kao što je kreiranje drugih talasnih oblika, povećanje periode signala odnosno smanjenje frekvencije.Na osnovu ovoga mogu da se baziraju različite laboratorijske vežbe. Možemo napomenuti da na ovaj način izrađen generator talasnih oblika ograničen gornjom graničnom frekvencijom koja zavisi od broja instrukcija koji su upotrebljeni pri pisanju programa za odgovarajući signal. Jedna instrukcija može da traje jedan dva ili više ''mašinska ciklusa''. Ukoliko želimo veću frekvenciju signala onda je bolje realizovati generisanje talasnih oblika na drugačiji način pomoću posebnog generatora signala koji može biti kontrolisan mikrokontrolerom. Slađan Stajić & Negovan Stanković

More Related