Professional Documents
Culture Documents
Da bi prijemnik i predajnik uspješno komunicirali, potrebno je konfigurisati i prijemnik i predajnik na identičan način. Ova
konfiguracija minimalno podrazumeva definisanje:
1. Brzine serijske komunikacije (engl. baud rate ), izražene brojem bita u sekundi. Tipične brzine RS-232 komunikacije su
9600b/s, 19200b/s, 38400b/s, 57600b/s i 115200b/s
3. Da li se koristi bit pariteta i ako se koristi, da li će on biti setovan za paran ili neparan broj jedinica u okviru bita podataka
Nakon što su prijemnik i predajnik konfigurisani, prijemnik poruke prolazi kroz sledeća stanja čekajući na poruku:
1. Čeka se početak poruke pojavom start bita, tj. opadajuće ivice na prijemnoj RxD liniji.
2. Nakon detekcije početka poruke, prima jedan po jedan bit poruke tako što očitava napon na RxD liniji svakih kT + T/2,
k=0,1,...8, T=1/(baud rate). Da bi ovo bilo moguće, neophodno je da prijemnik i predajnik imaju usklađenu brzinu
komunikacije, jer je slanje asinhrono (prijemnik nema nikakvu indikaciju kada je na liniji dostupan “novi” bit).
3. Nakon prijema cele poruke, proverava da li je bit pariteta u skladu sa bitovima podataka (u slučaju da je konfigurisano
korišćenje bita pariteta). Ukoliko jeste, podatak je prihvaćen, u suprotnom primljeni podatak se odbacuje i neophodno ga je
ponovo primiti.
Paralelno sa prijemom poruke preko RxD linije, moguće je istovremeno slati poruku nezavisne komunikacione linije TxD. To
znači da UART ustvaruje dvosmernu (full-duplex ) komunikaciju.
UART komunikacija
Rad serijskog porta kod PC računara i kod većine savremenih mikrokontrolera zasnovan je na standardizovanom RS-232
protokolu. Hardverska jedinica unutar mikrokontrolera koja je zadužena za ovakav tip komunikacije obično se naziva UART
(engl. Universal Asynchronous Receiver-Transmitter).
Serijska komunikacija se kod PC računara izvodi upotrebom Intelovog UART (Universal Asynchronous Receiver Transmitter)
kola 8250 kod XT ili 16450 kod AT računara, kao i UART kolo 16550. Oba su kola slična, s tim što kolo 16450 ima neka
poboljšanja. Kolo 8250 ima 10 dok kolo 16450 ima 12 programibilnih jednobajtnih registara.
UART je skraćeno od Universal asynchronous receiver/transmitter - univerzalni asinkroni prijemnik/odašiljač. Koristi se zajedno
sa RS-232. UART pretvara podatke između paralelnih i serijskih formata. Može se konfigurirati brzina prijenosa i format slanja
podataka. Za pravilan rad, UART na strani primatelja i na strani odašiljača mora biti podešen na iste parametre veze. Na PC
računalima UART je mapiran na fiksnu adresu. U
tablici 1. prikazane su adrese na koje su mapirani UART
sklopovi pojedinih serijskih priključaka.
Tabela 1. Adrese UART za serijske priključke
Interrupt request – IRQ – prekid signala/ linija prekida
UART čip ima 12 registara koji su mapirani na 8 različitih U/I (ulazno/izlaznih) lokacija. Kako ima više registara nego lokacija,
postoji bit DLAB (Divisor Latch Access Bit). DLAB-om se preko iste memorijske lokacije može pristupiti različitom registru.
UART = Universal Asynchronous Receiver/Transmitter je osnova svake serijske komunikacije bilo na razini računala ili
kontrolera i služi za pretvorbu paralelnog podatka (najčešće 8-bitnih odnosno 1 byte) u serijski oblik sa svrhom da se smanji
potreban broj linija za komunikaciju odnosno omogući prijenos podataka kroz druge medije (npr. optiku). U predajniku se
paralelni podatak pretvara u serijski niz bitova dok ga prijemnik ponovo vrača u paralelni. Za komunikaciju se koriste dva pina,
Tx-predajni i Rx-prijemni. Na razini UART-a komunikacija je dvosmjerna (full duplex) što znači da je moguć istovremeni prijem i
predaja podataka. S obzirom da je komunikacija asinkrona, da bi prijemnik mogao ispravno dekodirati poslani niz bitova
predajnika potrebno je zadovoljiti još nekoliko osnovnih zahtjeva:
UART kolo 16550 sadrži u sebi prijemni i predajni FIFO bafer kapaciteta 16 bajta što mu omogućuje brzinu prenosa do 115.2
kb/s. Glavni zadaci UART kola su sledeci:
Da preuzme podatke koji dolaze sa magistrale u paralelnom formatu i da ih pretvori u serijski prenos.
Obrnuto, kada prima podatke serijskim prenosom da ih pretvori u paralelni format.
Daje signale procesoru o spremnosti za prijem ili predaju podataka.
Omogućava izbor načina rada, dužinu podataka, proveru ispravnosti prenosa, izbor brzine prenosa i sl.
Greška uokvirenja (framing error). Do ove greške dolazi u slučaju kada prijemnik očekuje STOP bit, ali se on ne
pojavljuje.
Greška prekoračenja (overrun error). Nastaje kada se pojavljuje novi znak u prijemniku a prethodni nije upotpunosti
primljen.
Greška pariteta (parity error). Nastaje kada bit pariteta ne odgovara stanju bitova u primljenim bitovima podatka.