U ovom radu predstavljeno je jedno rešenje dvosmerne bežične RS-232 veze između dva mikrokontrolera PIC16F887. Opisan je prvobitni RS-232 standard kao i USART modul na mikrokontroleru. Pošto je za prenos podataka korišćen snop infracrvene svetlosti predstavljeni su i pojmovi infracrvena svetlost, standard za korišćenje infracrvene svetlosti kao i IrDA2 pločica koja je korišćena pri praktičnoj realizaciji. Budući da predstavljaju sastavni deo ove pločice opisani su i elementi MCP2120 i TFDU4101.
RS-232 standard nastao je daleke 1960.godine, kada je prihvaćen od strane EIA (Electronics Industry Association). Standard se stalno dopunjavao, tako da je 1969.godine izdat RS232-C standard, koji koriste i PC računari. 1987.godine izdata je četvrta revizija ovog standarda pod oznakom RS-232D. U ovom standardu dodate su tri nove testne linije. Poslednji standard ovog načina prenosa nastao je 1991.godine pod oznakom RS232-E.
Električne osobine serijskog porta RS232-C standarda su sledeće:
- Logička nula "SPACE" nalazi se u opsegu napona +3 V do +25 V,
- Logička jedinica "MARK" je u opsegu -3 V do – 25 V,
- Oblast između -3 do + 3 V nije definisana,
- Napon na kolu ne sme da pređe 25V u odnosu na masu (GND),
- Struja kola ne sme preći 500 mA.
Slika 1. Oblik signala kod RS-232 standarda.
Stanje kada nema slanja podatka, tj. linija je slobodna, označeno je MARK naponom. Prenos počinje kada linija pređe u SPACE stanje, što predstavlja START bit. Iza START bita dolaze bitovi podataka i to tako da je jedinica predstavljena negativnim naponom, a nula pozitivnim. Ovo je najčešće u suprotnosti sa ustaljenom logikom da je +5 V logička jedinica, a 0 V logička nula. Problem rešava prijemno kolo (npr. MAX232, ST232, ICL232, MAX3232, ST3232, ICL3232 itd.) konvertujući napone tako da su prilagođeni naponima interfejsa koji se koristi. Posle bita podatka dolazi bit parnosti koji se koristi za detekciju jednostruke greške u prenosu. Iza bita parnosti signal se postavlja u MARK stanje što označava početak STOP bita. Prema RS232 standardu broj stop bitova može biti: 1, 1.5 ili 2. Nakon završetka STOP bitova, linija je spremna za slanje novog karaktera. PC računari koriste kao DATA bite najčešće 7 ili 8 bita. Između slanja dva karaktera linija se nalazi u MARK stanju, a u toku prenosa više puta prelazi iz MARK u SPACE stanje u zavisnosti od broja jedinica i nula. To znači da se linija može nalaziti u SPACE stanju najviše u slučaju kada karakter sadrži sve nule. Ova osobina prenosa upotrebljena je za uvođenje specijalnog znaka nazvanog BREAK (prekid). Ovaj se signal koristi kako bi se dala prijemniku signalizacija da je došlo do problema u slanju podataka. Serijski prenos počinje tako da predajna strana šalje prijemnoj strani signal RTS – zahtev za slanje, dok prijemnik ako je spreman za prijem odgovara signalom CTS – spreman za prijem. Predajnik zatim šalje podatke prijemniku. Nakon prijema podataka, prijemnik proverava da li su podaci primljeni bez greške i za to vreme javlja predajniku da je zauzet. Ako su podaci primljeni bez greške, prijemnik šalje predajniku signal potvrde ACK (Acknowledgment – ASCII 6), a u slučaju ako se pojavila neka greška, šalje signal negativne potvrde NAK (ASCII 21). Zavisno od upotrebljenog protokola, odgovor predajnika na dobijeni NAK signal može biti ponovno slanje podataka.
PIC 16F887
Jedan od novijih proizvoda kompanije Microchip je PIC16F887 (Slika 2.) i u njega je ugrađeno sve ono što poseduju savremeni mikrokontroleri. Predstavlja integraciju mikroprocesora (CPU), memorije i periferija. Ovaj mikrokontroler je izrađen u CMOS tehnologiji sa ugrađenim FLASH i EEPROM memorijama, za čuvanje programa i podataka.
PIC16F887 ima tipičnu RISC arhtekturu (karakteriše se manjim skupom instrukcija koje se brže izvšavaju u odnosu na CISC arhitekturu). Zbog svoje niske cene, velikih mogućnosti i lagane nabavke, on predstavlja idealan izbor u primenama kao što su: kontrola različitih procesa u industriji, upravljanje mašinama i uređajima, merenje različitih veličina itd.
Većina mikrokontrolera koji se danas primenjuju je bazirano na Harvard arhitekturi, koja jasno definiše četiri osnovne komponente potrebne za embedded sistem – mikroprocesorsko (CPU) jezgro, memoriju za program (ROM, EPROM ili Flash memorija), memoriju za podatke (RAM), jedan ili više tajmera (podesive i watchdog tajmere), kao i I/O linije za komunikaciju sa eksternim periferijama i dopunskim resursima – sve to treba da bude smešteno u jednom integrisanom kolu.
Slika 2. PIC 16F887.
Serijski port mikrokontrolera sadrži USART (Universal Synchronous Asynchronous Receiver Transmitter) kontroler, koji predstavlja najvažniju komponentu za ostvarivanje serijske komunikacije. USART predstavlja interfejs između mikroprocesora i ulazno-izlaznog perifernog uređaja, tako da ima dvojak zadatak:
- Prihvata bajtove podataka od mikroprocesora, transformiše ih u bitski niz (string) i šalje ka periferiji bit po bit.
- Prihvata niz bitova koji stižu sa periferije, pakuje ih u bajtove i predaje mikroprocesoru (CPU).
Modul serijske veze EUSART. EUSART (Enhanced Universal Synchronous Reciver Transmitter) je unapređeni sinhrono-asinhroni modul za serijsku komunikaciju. Poznat je i pod imenom SCI (Serial Communications Interface) interfejs. Kao što se već iz samog naziva vidi, pored toga što u toku rada koristi taktni signal za sinhronizaciju, ovaj modul može da ostvari i asinhronu vezu što ga čini nezamenjivim u nekim situacijama. Na primer, u slučaju da je otežano ili nemoguće ostvariti posebne kanale za prenos takta i podataka (npr. daljinsko upravljanje radio vezom, infracrvenim zracima itd.), EUSART komunikacija se nameće kao očigledno rešenje.
Karakteristike EUSART sistema koji je ugrađen u mikrokontroler PIC16F887 su sledeće:
- Asinhroni prijem i predaja su full-duplex tipa,
- Svaki podatak se sastoji iz 8 ili 9 bitova,
- U 9-bitnoj razmeni podataka, moguće je koristiti adresiranje,
- Moguća je detekcija greške u primljenom kodu,
- Kada radi u sinhronom modu (master ili slave), komunikacija je half-duplex tipa.
EUSART u asinhronom modu. U toku razmene podataka, EUSART koristi standardni NRZ (eng. Not Return to Zero) format. Svaki podatak se šalje na sledeći način:
- U stanju mirovanja na liniji za prenos je visok logički nivo,
- Prvi bit je uvek logička nula,
- Svaki podatak se sastoji iz 8 ili 9 bitova (prvo se prenosi LSB bit),
- Slanje svakog podatka se završava logičkom jedinicom (STOP bit).
Prenos informacija između mikrokontrolera
Infracrvena svetlost nalazi se u oblasti elektromagnetnog spektra čija je talasna dužina veća od talasne dužine vidljive svetlosti, a frekvencija manja. Reč potiče od latinskog pojma infra, što znači ispod (ispod spektra vidljive svetlosti). Ljudsko oko može videti do crvene boje, koja ima najveću talasnu dužinu od svih nama vidljivih boja, tako da se u svakodnevnom jeziku ova svetlost ponekad naziva i infracrvena boja, odnosno boja koja se nalazi ispod crvene. Područje infracrvenog spektra obuhvata talasne dužine od 750 nm do 1 mm odnosno frekvencije od 3×10-11 do 4×10-14 Hz. Zraci infracrvenog svetla su isto kao i u spektru vidljive svetlosti-fotoni.
Koriščenje infracrvene svetlosti za prenos digitalnih podataka pruža niz prednosti kao što su:
- Univerzalni standard za prenos podataka između prenosivih uređaja,
- Jednostavna implementacija,
- Ekonomski isplativa alternativa za druge tipove komunikacije,
- Velika brzina prenosa podataka.
IrDA2 pločica. IrDA primopredajnici vrše radio emisiju infracrvenih talasa u obliku konusa koji se širi za ugao od 15 do 30° u odnosu na centar. Fizičke specifikacije zahtevaju da zračenje bude tako izvedeno da signal bude vidljiv sa udaljenosti od 1 m. Isto tako, ove specifikacije ograničavaju snagu zračenja predajnika da u prijemniku ne bude interferencije kada se približi predajniku. Na tržištu postoje mnoge vrste ovih uređaja – od onih kod kojih rastojanje ne može da premaši 1 m do onih kod kojih rastojanje može da bude nekoliko metara. Postoje uređaji kod kojih postoje ograničenja u pogledu minimalnog rastojanja. IrDA komunikacija se obično ostvaruje na rastojanjima od 5 do 60 cm. Savetuje se da predajnik i prijemnik budu tako postavljeni da se komunikacija ostvaruje kroz centar konusa infracrvenog snopa. IrDA komunikacija realizuje samo veze tipa poludupleks (half duplex), zato što je predajnik “zaslepljen” svetlošću koju sam predaje tako da je veza tipa potpuni dupleks (fullduplex) praktično neostvariva.
Slika 3. Izgled IrDA 2 pločice.
Osnovni elementi IrDA 2 su integralno kolo MCP2120 i TFDU4101. MCP2120 je 14-pinski infracrveni-IR (infrared) koder/dekoder. Prema proizvođaču (Microchip), osnovne karakteristike ovog uređaja su niska cena i visoke perfomanse. Ovo kolo predstavlja vezu između USART modula na mikrokontroleru i optičkog IR primopredajnika. Primljeni podaci sa USART modula se modulišu i na izlazu se generišu električni impulsi koji se šalju na IR primopredajnik. S druge strane, kada IR primopredajnik radi kao prijemnik, on prima podatke u obliku električnih impulsa koje MCP2120 dekodira i prenosi na interni USART modul. Postupci modulacije i demodulacije (kodiranja i dekodiranja) izvode se u skladu sa IrDA standardom.
TFDU4101 je infracrveni primopredajnik koji je u saglasnosti sa standardom za prenos podataka po fizickom nivou i podržava brzine prenosa do 115.2 kbit/s.
Šema povezivanja mikrokontrolera sa opisanim elementima (koji su interpretirani na IrDA2 pločici) data je na Slici 4. Jasna je uloga kola MCP2120 koje predstavlja spregu između USART modula na mikrokontroleru i TXD i RXD pinova na infracrvenom primopredajniku TFDU4101 koji imaju ulogu izlaznih i ulaznih pinova pri prijemu podataka, respektivno.
Slika 4. Blok-šema povezivanja elemenata IR predajnika/prijemnika.
Praktična realizacija
Ovaj projekat realizovan je kao bežična dvosmerna RS-232 komunikacija između dva mikrokontrolera koristeći IrDA2 pločicu koja je opisana u prethodnom delu rada. Pločica se napaja preko računara koristeći USB konektor B tipa. Izgled maske za štampanu pločicu za kolo predajnika i prijemnika je ista i predstavljena je na Slici 5.
Slika 5. Izgled maske za štampanu pločicu.
Softverski deo projekta realizovan je prilično jednostavno. Za potrebe pisanja programskog koda za mikrokontroler korišćen je C kompajler kompanije mikroElektronika iz Beograda. Nakon inicijalizacije USART modula predajnik ulazi u beskonačnu petlju u kojoj samo pri prvom prolasku kroz program vrši prosleđivanje vrednosti i=1 na port B na kom su vezane LED diode i po isteku zadatog vremenskog kašnjenja od 1 s šalje taj podatak preko USART modula. Po završetku ove operacije predajnik vrši stalnu proveru da li postoje podaci u prihvatnom baferu. Ovaj uslov je neophodan za nastavak rada.
Kada predajnik primi podatak, on dalje vrši njegovo prosleđivanje na port B i po isteku zadatog vremenskog kašnjenja od 1 s vrši inkrementiranje tog podatka i prosleđujega na port B. Nakon pauze od 1 s predajnik šalje ovaj podatak preko USART modula i ponovo prelazi u stanje prijema.
Prijemnik nakon inicijalizacije USART modula ulazi u beskonačnu petlju u kojoj prvo vrši proveru postojanja podatka u prihvatnom baferu. Kada se podatak pojavi on vrši prijem podatka koji zatim prosleđuje na port B na kom su vezane LED diode. Po isteku zadatog vremenskog kašnjenja od 1 s prijemnik vrši inkrementiranje tog podatka i prosleđuje ga na port B. Nakon pauze od 1 s prijemnik šalje ovaj podatak preko USART modula i ponovo prelazi u stanje prijema.
Slika 6. Izgled realizovanog sistema.
Zaključak
U ovom radu je opisana primena infracrvene svetlosti za prenos podataka između dva mikrokontrolera. U tu svrhu korišćena je IrDA2 pločica. Osnovna prednost koja se uočava je nepostojanje fizičke veze između kontrolera koji učestvuju u komunikaciji te se nagoveštava primena u sistemima za daljinsko uključenje i isključenje uređaja. Takav sistem bi se lako mogao dobiti dodavanjem tastera na predajnoj strani i promenom koda mikrokontrolera. Na taj način bi se dobio improvizovani IR daljinski upravljač.
Postavljanjem jednog senzora temperature ili vlažnosti na predajnoj strani i LCD displeja na prijemnoj strani može se dobiti sistem pomoću koga se može vrlo lako izvršiti kontrola uslova u više prostorija (koje poseduju predajnik) pomoću jednog prijemnika. Dodavanjem određenih elemenata može se dobiti sistem za akviziciju ovih podataka u bazu podataka.
Međutim, osnovni zadatak ovog rada je bio ostvarivanje bežične komunikacije uzmeđu dva mikrokontrolera te se autor zadržao na sistemu koji je predstavljen u radu a gotovo sigurno predmet daljeg istraživanja će biti usavršvanje ovog uređaja tako da dobije veću upotrebnu vrednost.
Osnovna zamisao ovog rada da se konstruiše potpun uređaj sa jasno definisanim funkcijama i namenom je uspešno završena. Međutim, naravno da je reč o jednostavnom sistemu koji bi mogao biti baza za razvoj nekog mnogo složenijeg i korisnijeg sistema. Osim što bi se mogli ispraviti uočeni nedostaci, takođe bi se moglo razmisliti o uvođenju novih funkcija.
Napomena: Učestvovanjem u nagradnoj igri Automatika.rs zadržava pravo objavljivanja teksta i nakon završetka nagradne igre. Takođe ne snosimo troškove eventualno nastale štete zbog krivo objavljenih ili pogrešno napisanih tekstova. Za istinitost tekstova, vlasništvo nad autorskim pravima, na fotografije ili tekstove koji se koriste, a preuzeti su s drugih web stranica odgovara isključivo vlasnik teksta.