serijski_interfejs_port_elektronika_mikrokontroleri_8051_programiranje_elektronika_automatika.rs.jpgSerijski port je tzv. puni dupleksni, što znači da predaja i prijem mogu da teku istovremeno. Prijemni deo serijskog porta je dopunjen jednim paralelnim registrom, u koji se iz prijemnog pomeračkog registra automatski upisuje bajt koji je preko RxD nožice upravo pristigao na port. To omogućava da se odmah nastavi prijem sledećeg bajta. Pošto postoji samo jedan takav prijemni (hold) registar, ako se bajt ne pročita do kraja prijema sledećeg, tada se primljeni bajt nepovratno gubi.

Zbog toga treba voditi računa o organizaciji softvera, tako da se u najgorem slučaju ne može dogoditi ova greška (overrun). Jedan od načina za izbegavanje ove greške je rad prijemnika pod prekidom.

SBUF (Serial Data Buffer) registar, čine dva fizički odvojena registra. U jednom se nalazi bajt koji je upravo stigao na serijski port, a drugi služi za upis bajta koji ce biti poslat. Upis u predajni i čitanje iz prijemnog bafera se interno sinhronizuje pomoću dva ready-busy handshaking bita: TI bit se automatski setuje kada se predajni bafer isprazni, a RI bit kad se prijemni bafer napuni. Ova dva bita se softverski moraju resetovati.

 

Kontrola rada serijskog porta

Kontrola rada serijskog porta se obavlja pomoću registra SCON, ciji je sadržaj dat u tabeli 1.

1_serijski_interfejs_port_elektronika_mikrokontroleri_8051_programiranje_baza_znanja_automatikars.jpg
Tabela 1. Kontrolni registar serijskog porta SCON
SM0 i SM1 određuju mod u kom radi serijski port na način dat u tabeli 2.
2_serijski_interfejs_port_elektronika_mikrokontroleri_8051_programiranje_baza_znanja_automatikars_2.jpg
Tabela 2. Izbor moda rada serijskog porta
SM2 omogućava multiprocesorsku komunikaciju u modovima 2 i 3. U ova dva moda, za SM2=1, RI se aktivira samo ako je primljeni deveti bit RB8=1. U modu 1, ako je SM2=1 tada se RI neće aktivirati ako nije primljen ispravan stop bit. U modu 0, SM2 treba uvek da bude 0.
REN omogućava (REN=1) ili zabranjuje (REN=0) serijski prijem. Postavlja se i briše softverski.
TB8 u modu 2 i 3 je deveti bit koji ce biti poslat preko serijskog porta narednim upisom u SBUF. Postavlja se i briše softverski, a može se koristiti i kao bit parnosti.
RB8 u modu 2 i 3 je deveti bit koji je primljen preko serijskog porta (može se koristiti kao bit parnosti). U modu 1, ako je SM2=0 onda RB8 sadrži stop bit koji je primljen. U modu 0, RB8 se ne koristi.
TI (Transmit Interrupt Flag) je bit koji hardver automatski setuje na kraju slanja osmog bita u modu 0 ili na kraju slanja stop bita u ostalim modovima. Mora se resetovati softverski.
RI (Receive interrupt Flag) je bit koji hardver automatski setuje na kraju prijema osmog bita u modu 0 ili na sredini stop bita u ostalim modovima, osim tokom multiprocesorske komunikacije kada nastupa izuzetak opisan kod bita SM2. Mora se resetovati softverski.
Modovi rada serijskog porta
MOD 0: Brza sinhrona komunikacija sa pomeračkim registrima.
  Ovaj mod nije namenjen za standardnu asinhronu komunikaciju, već za proširivanje ulaznih i izlaznih portova pomoću pomeračkih (shift) registara. Ulaz ili izlaz serijskih podataka od 8 bita je preko nožice RxD (P3.0) a izlaz takta je preko TxD (P3.1). Učestanost ovog takta je fiksna i iznosi 1/12 učestanosti oscilatora. Na slikama 1. i 2. je prikazan pojednostavljeni funkcionalni dijagram serijskog porta u modu 0, kao i odgovarajući vremenski dijagram signala.
3_serijski_interfejs_port_elektronika_mikrokontroleri_8051_programiranje_baza_znanja_automatikars_3.jpg
Slika 1. Serijski port u modu 0, logička šema
4_serijski_interfejs_port_elektronika_mikrokontroleri_8051_programiranje_baza_znanja_automatikars_4.jpg
Slika 2. Serijski port u modu 0, vremenski oblik signala
  Slanje podataka započinje bilo koja instrukcija koja koristi SBUF kao odredišni registar. Pri upisu u SBUF, u trenutku S6P2, dovodi se 1 na devetu poziciju predajnog pomeračkog registra i time inicira TX Control blok da započne predaju. Nakon jednog punog mašinskog ciklusa se aktivira signal SEND, koji omogućava postavljanje izlaza pomeračkog registra na nožicu P3.0 kao i postavljanje signala SHIFT CLOCK na nožicu P3.1. Kada se biti podataka pomeraju u desno i šalju van pomeračkog registra, nule ulaze sa leve strane. Nakon slanja svih bita podataka, TX Control jedinica deaktivira signal SEND i postavi TI=1. Prijemnik priključen na ovu predajnu sekciju treba da vrši odmeravanje na rastuću ivicu SHIFT CLOCK signala.
  Prijem podataka započinje kada je REN=1 i R1=1. Nakon jednog mašinskog ciklusa od pojave internog signala S6P2, RX Control jedinica upisuje 11111110 u prijemni pomerački registar i u sledećem taktu aktivira interni signal RECEIVE, koji omogućava postavljanje signala SHIFT CLOCK na nožicu P3.1. Kada je signal RECEIVE aktivan, sadržaj prijemnog pomeračkog registra se pomera u levo za po jednu poziciju (odabira) na svaku prednju ivicu SHIFT CLOCK signala. Nakon osam taktova, RX Control jedinica završava poslednje pomeranje u levo i učitava paket podataka u SBUF. Na kraju se resetuje signal RECEIVE.
MOD 1: asinhroni 8 – bitni prenos.
Ovaj mod se koristi za standardnu 8-bitnu RS232 komunikaciju. Ukupno deset bita se šalje preko TxD ili prima preko RxD: jedan start bit (0), 8 bita podataka (prvo LSB) i stop bit (1). Prilikom prijema stop bit se automatski upisuje u RB8 u registru SCON. Brzina komunikacije (baud rate) se određuje konfigurisanjem tajmera 1 kod 8051, a dodatno i tajmerom 2 kod 8052. Na slici 3. prikazan je funkcionalni dijagram serijskog porta u modu 1, a na slici 4. odgovarajući signali.
5_serijski_interfejs_port_elektronika_mikrokontroleri_8051_programiranje_baza_znanja_automatikars_5.jpg
Slika 3. Serijski port u modu 1, logička šema
6_serijski_interfejs_port_elektronika_mikrokontroleri_8051_programiranje_baza_znanja_automatikars_11.jpg
Slika 4. Serijski port u modu 1, vremenski oblici signala
   Slanje podataka započinje bilo koja instrukcija koja koristi SBUF kao odredišni registar. Pri upisu u SBUF, upisuje se 1 na devetu poziciju predajnog pomeračkog registra, čime se startuje predaja. Nakon slanja svih 10 bita setuje se bit TI.

Prijem podataka započinje kada je detektovana silazna ivica na nožici RxD. Prilikom prijema, svaki bit se očitava po 3 puta u sredini bit-intervala, a za određivanje važećeg nivoa se koristi majoritetna logika (bar 2 iste od 3 vrednosti). Nakon prijema zadnjeg (stop bita), primljeni podatak se prebacuje u SBUF i postavlja se bit RI. Prijem će biti izvršen samo ako je stop bit pravilno primljen i ako je prethodno stanje RI bita bilo 0.

 
MODOVI 2 i 3 : asinhroni 9 – bitni prenos.

Ova dva načina rada odgovaraju modu 1, sa tom razlikom što se, umesto ukupno 10 bita, šalje 11 bita (jedan start bit, osam bita podataka, deveti bit – TB8/RB8 – i jedan stop bit). U modu 2 brzina prenosa je fiksirana na 1/32 (SMOD=1) ili 1/64 (SMOD=0) učestanosti oscilatora, a u modu 3 je promenljiva kao i u modu 1. Mod 2 je pogodan za brzu komunikaciju na malim udaljenostima, a mod 3 za standardni RS-232 prenos sa bitom parnosti.
U modovima 2 i 3 omogućena je multiprocesorska komunikacija. Kada je SM2=1 i ako je deveti primljeni bit RB8=0, tada RI neće biti setovan. U ovom načinu komunikacije, preko serijskog porta se šalju i primaju višebajtni paketi. Prvi bajt svakog paketa uvek ima setovan deveti bit, a sadržaj bajta je adresa odredišta. Svi ostali bajtovi u paketu imaju resetovan deveti bit i predstavljaju sadržaj podataka. Ako prijemnik ima setovan SM2, on će primiti samo prvi (adresni) bajt paketa. Ukoliko prijemnik ima odgovarajuću adresu, on resetuje bit SM2 da bi mogao da primi sve ostale bajtove iz paketa. Nakon prijema kompletnog paketa podataka, ispravno adresiran prijemnik ponovo setuje bit SM2 i prelazi u režim čekanja adresnog bajta. Svi ostali prijemnici (sa neodgovarajućom adresom) ostavljaju setovan bit SM2, čime ignorišu bajtove podataka i čekaju naredni adresni bajt.
Na slikama 5, 6, 7 i 8, prikazani su funkcionalni dijagrami serijskog porta u modu 2 i 3. Prijemni deo je potpuno isti kao u modu 1. Predajni deo se razlikuje od onog u modu 1 samo zbog devetog bita koji se prenosi pomeračkim registrom.
7_serijski_interfejs_port_elektronika_mikrokontroleri_8051_programiranje_baza_znanja_automatikars_6.jpg
Slika 5.  Serijski port u modu 2, logička šema
8_serijski_interfejs_port_elektronika_mikrokontroleri_8051_programiranje_baza_znanja_automatikars_8.jpg
Slika 6.  Serijski port u modu 2, vremenski oblik signala
 9_serijski_interfejs_port_elektronika_mikrokontroleri_8051_programiranje_baza_znanja_automatikars_9.jpg
Slika 7.  Serijski port u modu 3, logička šema
 10_serijski_interfejs_port_elektronika_mikrokontroleri_8051_programiranje_baza_znanja_automatikars_10.jpg
Slika 8. Serijski port u modu 3, vremenski oblik signla
Literatura:
 

  Fakultet tehničkih nauka, Katedra za elektroniku

POSTAVI ODGOVOR

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.