11.07.2015 Views

rs232 komunikacija mikrokontrolera sa pc microcontroller ... - Infoteh

rs232 komunikacija mikrokontrolera sa pc microcontroller ... - Infoteh

rs232 komunikacija mikrokontrolera sa pc microcontroller ... - Infoteh

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

INFOTEH-JAHORINA Vol. 10, Ref. F-18, p. 980-983, March 2011.RS232 KOMUNIKACIJA MIKROKONTROLERA SA PCMICROCONTROLLER SERIAL COMMUNICATION WITH PCDanijela Živanović, Elektrotehnički fakultet Istočno SarajevoSadržaj - Glavni zadatak ovog projekta jeste ostvarivanje serijske RS232komunikacije između računara i <strong>mikrokontrolera</strong>. Za slanje podataka koristi seaplikacija napravljena u Visual Basic-u. Serijska <strong>komunikacija</strong> se ostvarujeupotrebom serijskog COM porta računara, DSUB konektora i serijskog kabla uzpomoć MAX232. Praktični deo ovog projekta rađen na Elektrotehničkom fakultetu uIstočnom Sarajevu.Abstract – This project is about series connection between PS and PIC 16F4550.Application software (made in Visual Basic) is used for sending data. Serialconnection is implemented using COM port, DSUB connector and MAX232. Thisproject is realised at Faculty for Electrical Engineering in East Sarajevo.1. RS232 STANDARDUobičajen naziv za ovaj standard je RS-232. Defini<strong>sa</strong>n je uANSI (American National Standards Institute) specifikacijikao interfejs između data terminala (DTE – data terminalequipment) i data kola (DCE – data circuit-terminatingequipment), pri čemu se koristi serijski binarni protokpodataka. Električne osobine serijskog porta su defini<strong>sa</strong>neEIA (Electronics Industry Association) RS232C standardom,čiji su parametri: Logičkoj nuli odgovara stanje "SPACE", koji senalazi u opsegu napona +3V do +25V, Logičkoj jedinici odgovara stanje "MARK", koji jeu opsegu -3V do -25V, Naponski nivo između -3 do + 3 V nije defini<strong>sa</strong>n,naziva se mrtvom zonom i sluzi da bi se umanjiouticaj smetnji, Napon na kolu ne sme da pređe 25V u odnosu namasu (GND), Struja kola ne sme preći vrednost 500 mA.Slučaj kada nema slanja podatka, tj. linija je slobodna,označena je MARK naponom. Prenos počinje kada linijapređe u SPACE stanje, što predstavlja START bit. Iza startbita dolaze bitovi podataka i to tako da je jedinicapredstavljena negativnim naponom, a nula pozitivnim.Posle bitova podatka može da dođe bit parnosti koji sekoristi za detekciju jednostruke greške u prenosu. Iza bitaparnosti signal se postavlja u MARK stanje što označavapočetak STOP bita. Prema RS232 standardu, broj stop bitovamože biti: 1, 1.5 ili 2. Nakon završetka STOP bit(ov)a, linijaje spremna za slanje novog karaktera. PC računari za podatak(DATA) najčešće koriste 7 ili 8 bitova. Između slanja dvakaraktera linija se nalazi u MARK stanju, a u toku preno<strong>sa</strong>više puta prelazi iz MARK u SPACE stanje, u zavisnosti odbroja jedinica i nula. To znači da se linija može nalaziti uSPACE stanju najviše u slučaju kada karakter <strong>sa</strong>drži sve nule.Ova osobina preno<strong>sa</strong> upotrebljena je za uvođenje specijalnogznaka nazvanog BREAK (prekid). Ovaj signal se koristi kakobi se prijemniku signaliziralo da je došlo do problema uslanju podataka.Protokol za prenos može se izvesti na dva načina i tohardverski i softverski. Za realizaciju hardverskog protokolaneophodno je da postoje linije: RTS, CTS i linija za prenosbitova poruke. Softverska realizacija koristi umesto linijaRTS i CTS, ASCII znakove XON i XOFF (nazivaju su i DC1i DC3), zbog čega je umesto tri dovoljna <strong>sa</strong>mo jedna linija.Kada se primenjuje ovaj protokol prijemnici i na predaji iprijemu proveravaju svaki prispeli znak radi utvrđivanja da lije to XON, XOFF ili podatak. Strana koja ne može da primikarakter kao indikator tog stanja drugoj strani šalje XOFFznak.Slika1. Oblik signala kod RS-232 standarda1.1 SERIJSKI PORTSerijski port PC računara koristi se za serijskiprenos podataka (bit po bit). Uređaji koji koristeserijsku komunikaciju koriste dve vrste kablova i to:DCE (Data Communications Equipment) i DTE (DataTerminal Equipment). DCE koriste modemi, ploteri i980


slično, dok se DTE koristi za vezu između PCračunara.Slika 3. Povezivanje MAX232 <strong>sa</strong> sistemom i raspored pinovaSlika2. Principijelna blok-šema serijsog porta1.2 USARTSerijski port <strong>sa</strong>drži USART (Univer<strong>sa</strong>l Asynchronous &Synchronous Receiver/Transmitter) kontroler, kojipredstavlja najvažniju komponentu za ostvarivanje serijskekomunikacije. USART predstavlja interfejs izmeđumikroprocesora i ulazno-izlaznog periferijskog uređaja, takoda ima dvojak zadatak:1. Prihvata bajtove podataka od mikroprocesora,transformiše ih u bitski niz (string) i šalje kaperiferiji bit-po-bit.2. Prihvata niz bitova koji stižu <strong>sa</strong> periferije, pakujeih u bajtove i predaje mikroprocesoru (CPU)Pored navedenih, USART mora da obavi i dodatneoperacije – bri<strong>sa</strong>nje prethodno poslatog bita ili podatka, kao ipridruživanje dodatnih bitova (start-bit, stop-bitovi i bitparnosti) karakteru koji se šalje. Dodatne mogućnostipodrazumevaju da USART mora da prepoznaje greške kojemogu da nastanu prilikom prijema podataka:Greška uokvirenja ili greška rama podatka (framingerror). Do ove greške dolazi u slučaju kadaprijemnik očekuje STOP bit, ali se on ne pojavljuje.Greška prekoračenja (overrun error). Nastaje kadase pojavljuje novi znak u prijemniku, a prethodninije upotpunosti primljen.Greška parnosti (parity error). Nastaje kada bitparnosti ne odgovara stanju bitova u bitovimapodatka.1.3 MAX232Pošto su naponski nivoi kod RS232 standarda, kojiodgovaraju logičkim stanjima, suprotni od ustaljene TTLtehnike, kod koje logičkoj nuli odgovara nulti napon, alogičkoj jedinici pozitivan napon (+5V), za prilagođenjenaponskih nivoa koriste se posebna elektronska kola, kao npr.MAX232. MAX232 <strong>sa</strong> jedne strane ima RS232 ulaze, kojimaodgovaraju TTL izlazi <strong>sa</strong> druge strane, i obratno.2. PIC 16F4550PIC18F4550 pripada 18F seriji <strong>mikrokontrolera</strong>kompanije Microchip. S obzirom da poseduju harvardstrukturu, memorijska mapa je podeljena na programsku imemoriju za podatke kao i EEPROM. Procesor (CPU)<strong>mikrokontrolera</strong> koristi tehniku preklapanja, kako bi se sveinstrukcije (osim grananja) izvršavale jedan ciklus. Zbog togase osnovni takt deli <strong>sa</strong> 4, jer se faze izvršenja naredbipreklapaju. Sve naredbe su fiksne dužine od 2 bajta, tako daje adresiranje memorije ograničeno. Zbog toga se memorijadeli na 16 banki, a izbor banke se vrši u odgovarajućimkontrolnim registrima. Ova osobina značajno usporava rad<strong>mikrokontrolera</strong> međutim napredniji kompajleri vršeinteligentno planiranje raspodele memorije kako bi sevarijable koje se zajedno koriste nalazile u istoj memorijskojbanci.Programska memorija je 32KB dok je RAM veličine 2KB. Takođe postoji i 256B EEPROM a. Procesor posedujeprošireni skup instukcija u odnosu na ranije serije (16 i 17)kao i nove načine adresiranja. Tako su dodate naredbe zahardversko množenje i deljenje, inkrementiranje idekrementriranje <strong>sa</strong> uslovnim skokom, naredbe za čitanjetabela i druge. Programski brojač je širine 21 bit i njemu semože pristupati <strong>sa</strong>mo indirektno preko određenih registara.Maksimalni eksterni takt je 48MHz, što daje procesoru<strong>mikrokontrolera</strong> takt od 12MHz. Za tu svrhu se koristi PLLkolo i delitelji frekvencije. Najbitnije je da se za rad USBmodula <strong>mikrokontrolera</strong> mora obezbediti takt od 24MHz.Od perifernih modula PIC18F4550 izdvojićemo veomanapredan integri<strong>sa</strong>ni USB 2.0 modul velike brzine <strong>sa</strong> 1KBmemorije za podatke, 10 bitni 13-to kanalni AD konvertor, 4tajmerske jedinice (dve imaju mogucnost PWM-a), SPI , I2Ci USART modul.Radna frekvencija <strong>mikrokontrolera</strong> je do 48MHz, dok jeefektivna vrednost frekvencije 4 puta manja zbog protočnograda procesora (pipelining-a).981


PIC18F4550 ima 4 porta: PORTA, PORTB, PORTC,PORTD. Portom nazivamo grupu ulazno/izlaznih nožica(pinova) kojima možemmo pristupiti istovremeno. Fizički,port je registar koji je povezan <strong>sa</strong> pinovima <strong>mikrokontrolera</strong>.Svi pinovi portova mogu se defini<strong>sa</strong>ti kao ulazni ili izlazni,prema potrebi. Definišu se upisivanjem nule ili jedinice uregistru TRIS. Upisivanjem „1“ pin postaje ulazni, aupisivanjem „0“ pin postaje izlazni.3. PRAKTIČNA REALIZACIJAZadatak je bio sledeći: potrebno je <strong>sa</strong> računara uz pomoćaplikacije slati osmobitni podatak (preko RS232 portaračunara, zatim MAX232) do <strong>mikrokontrolera</strong>, koji na svomizlazu (PORTB) <strong>sa</strong>drži o<strong>sa</strong>m LED dioda, koje svetle u skladu<strong>sa</strong> poslatim podatkom. Poslata logička jedinica odgovaraupaljenom stanju LED diode, a logička nula isključenomstanju. Mikrokontroler takođe računaru šalje primljenipodatak.Aplikacija je rađena u višem programskom jezikuVisual Basic-u.Slika 4. Arhitektura <strong>mikrokontrolera</strong> PIC18F45502.1 USART MODULUniverzalni sinhroni/asinhroni serijski prmopredajnik imamogućnosti half i full duplex preno<strong>sa</strong>, automatske detekcije ikalibracije bodove brzine. Za komunikaciju se koriste I/Opinovi RC6 kao TX i RC7 kao RX za asinhroni prenos. Radmodula se kontroliše pomoću 3 registra i oni su: TXSTA -predajni statusni i kontrolni registar, TCSTA - prijemnistatusni i kontrolni registar i BAUDCON - kontrolni registargeneratora takta za brzinu preno<strong>sa</strong>. Prenos podaka se vršipreko predajnog i prijemnog kola asinhronogprimopredajnika.Slika 6. Izgled aplikacijeMikrokontroler se nalazi na štampanoj pločici, koja osimnjega <strong>sa</strong>drži: o<strong>sa</strong>m LED dioda i o<strong>sa</strong>m otpornika od po 330Ω (zaPORTB), jedan otpornik od 10kΩ za reset, jednu LED diodu <strong>sa</strong> otpornikom od 330Ω, kojasignalizira postojanje napajanja (napajanje je Vcc =+5V i uzima se <strong>sa</strong> računara preko USB kabla), kvarcni oscilator, učestanosti 8MHz, dva keramičkakondenzatora od po 22pF (za mikrokontroler), MAX232 četiri elektrolitska kondenzatora od po 1 FSlika 5. Predajno i prijemno kolo USART modulaSlika 7. Izgled pločice982


4. ZAKLJUČAKGlavni zadatak ovog projekta jeste ostvarivanje serijskeRS232 komunikacije između računara i <strong>mikrokontrolera</strong>. Zaslanje podataka koristi se aplikacija napravljena u VisualBasic-u. Naravno, umesto opi<strong>sa</strong>ne aplikacije mogu se koristitii drugi programi, kao na primer USART terminal iz programamikroC. Serijska <strong>komunikacija</strong>, odnosno veza se ostvaruje nastandardan način upotrebom serijskog COM porta računara,DSUB konektora i serijskog kabla uz pomoć MAX232. Kolose napaja <strong>sa</strong> računara preko USB-a (Vcc= 5V).Simulacija ovog načina komunikacije rađena je uz pomoćProteus-a i Configure Virtual Serial Port Driver-a. Praktičnideo ovog projekta rađen je u laboratoriji za Embeded sistemena Elektrotehničkom fakultetu u Istočnom Sarajevu.5. LITERATURA[1] RS232 terminal, Miroslav Božić, Alek<strong>sa</strong>ndarAtanasovski, Niš, 2008[2] PIC18F4550, datasheet, Microchip Tecnology Inc, 2004.[3] mikroC Help , Mikroelektronika[4] www.microchip.com[5] www.mikroelektronika.co.yu983

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!