View
49
Download
3
Category
Preview:
DESCRIPTION
Serijske komunikacije. Serijske komunikacije – prenos podatkov v bitno serijski obliki. Binarne simbole (bite) prenašamo med napravami s (časovnim) zaporedjem signalov (signalnih elementov ali impulzov). Pravzaprav je takih komunikacij največ, čim sta napravi v ločenih - PowerPoint PPT Presentation
Citation preview
http://vision.fe.uni-lj.si/classes/GSPV
GSPV (9)
Serijske komunikacije,
HCS12 in SCI
Stanislav Kovačič
Univerza v Ljubljani
Fakulteta za elektrotehniko
Serijske komunikacijeSerijske komunikacije
Serijske komunikacije – prenos podatkov v bitno serijski obliki. Binarne simbole (bite) prenašamo med napravami
s (časovnim) zaporedjem signalov (signalnih elementov
ali impulzov).
Pravzaprav je takih komunikacij največ, čim sta napravi v ločenih
ohišjih (RS232, RS485, USB, FireWire, Ethernet, xDSL, ...).
Po vodilih računalnika (mikrokrmilnika) se prenašajo podatki v bitno
paralelni obliki (npr.: osem bitov, če je širina vodila 8).
Serijske komunikacijeSerijske komunikacije
Potrebna je torej pretvorba iz (bitno) paralelne v (bitno)
serijsko obliko. Usklajevanje med sprejemno in oddajno napravo (npr.: sprejet je
nov podatek, oddaja je možna, ...)
Oddajni pomikalni
registerb0b1b2b3b4b5b6b7
b0b1b2b3b4b5b6b7
Oddajni podatkovni
register
Sprejemni pomikalni
registerb0b1b2b3b4b5b6b7
b0b1b2b3b4b5b6b7
Sprejemni podatkovni
register
Prenosna pot,
tipično nekaj
metrov ali
poljubno več
Asinhroni serijski načinAsinhroni serijski način Takt se ne prenaša.
Hitrost sprejemnika se ne sme preveč razlikovati od hitrosti
(frekvence) oddajnika (praktično pravilo - največ 1 %). Uporablja se za nižje hitrosti prenosa, tja do 100 Kb/s. Tak način realizira asinhroni serijski komunikacijski vmesnik. V uporabi so različne oznake komunikacijskih vmesnikov,
(UART, ACIA, DART, SCI,...)
Oddajni pomikalni
register
b0b1b2b3b4b5b6b7
Podatkovni signalSprejemni pomikalni
register
b0b1b2b3b4b5b6b7
Oddajni takt
(Urin signal)Sprejemni takt
(Urin signal)
Sinhroni serijski načinSinhroni serijski način
Takt oddajnika se prenaša. Sprejemnik se na podlagi sinhronizacijskega signala
sinhronizira z oddajnikom (se “ujame” po frekvenci in fazi).
Na ta način se dosega višje hitrosti prenosa. Tak način realizira SPI (Serial Peripheral Inteface).
Oddajni pomikalni
register
b0b1b2b3b4b5b6b7
Podatkovni signalSprejemni pomikalni
register
b0b1b2b3b4b5b6b7
Oddajni takt
(Urin signal)Sprejemni takt
(Urin signal)Urin signal
Opomba: sinh. takt se lahko prenaša skupaj z inf. signalom
Asinhroni serijski načinAsinhroni serijski način
Krajšemu zaporedju informacijskih bitov oziroma
simbolov (tipično osmim) se doda začetni bit (start bit)
in eden ali dva končna bita (stop bita). Na ta način nastane t.i. asinhrona serijska oblika
podatka ali “okvir”. Po potrebi se na koncu (pred končnim(a) bitom(a)) doda
še “parnostni bit”.
b0 b1 b2 b3 b4 b5 b6 b7p
1 0 0 0 1 1 1 0 0
Start bit Stop bit(a)
Mirovno
stanje
Asinhroni serijski načinAsinhroni serijski način
Sprejemnik začne odčitavati informacijski signal,
ko zazna začetni bit oziroma “prepričljiv” prehod signala z visokega
(angl. “mark”) na nizek logični nivo (angl. “space”).
Sprejemnik nato odčitava signal s taktom svojega urinega signala.
Hitrost odčitavanja je običajno nekajkrat (16x) višja od bitne hitrosti.
Zato lahko sprejemnik opravi več odčitkov signala v času trajanja
enega bita, da loči stanje logične enica od ničle.
Če je razlika v taktu sprejemnika in taktu oddajnika prevelika,
sprejemnik napačno odčita sprejemani signal.
Asinhroni serijski načinAsinhroni serijski način
V primeru, da sprejeti signal ne ustreza pravilom oblike okvirja
(pogoj parnosti, začetni bit, stop biti), sprejemnik javi napako.
Končni biti pravzaprav zagotavljajo minimalen časovni presledek
pred nastopom naslednjega začetnega bita. Na nek način poskrbijo
za izravnavo razlike v hitrostih sprejemnika in oddajnika.
Časovni presledek med zaporednima podatkoma je seveda lahko
poljubno daljši.
Asinhroni serijski načinAsinhroni serijski način
Načelna skica sprejemanja (odčitavanja) signala
b0 b1 b2 b3 b4 b5 b6 b7p
1 0 0 0 1 1 1 0 0
Ustrezno
Prepočasi
Prehitro
Za asinhrone prenose se uporablja NRZ oblika signala
(Non Return to Zero). NRZ pomeni, da ostane signal v času trajanja bita
nespremenjen (visok ali nizek), kot na skici.
HCS12 - SCIHCS12 - SCI
HCS12 ima dva (enakovredna) asinhrona serijska
komunikacijska vmesnika: SCI0 in SCI1.
Vsak omogoča: Sočasno oddajanje in sprejemanje (“polni dupleks”). Različne (programsko nastavljive) hitrosti delovanja. Različne oblike okvirja (8,9 bitov, parnost). Odkrivanje napak pri sprejemu (parnost, hitrost, šum, ...). Različne načine delovanja (“dvo/eno žično, “bujenje”, ...). Proženje zahteve za prekinitev ob sprejemu/oddaji/napaki,...
HCS12 - SCI HCS12 - SCI
Sprejemna sponka SCI0
Oddajna sponka SCI0
Oddajna sponka SCI1
Sprejemna sponka SCI1
HCS12 – SCI blok diagram HCS12 – SCI blok diagram
Od sprejemne
sponke
K oddajni
sponki
Sprejeti podatek
Podatek za oddajo
Takt
Sprejemnika
in
oddajnika
Zahteva za
prekinitev
HCS12 – uporaba SCI HCS12 – uporaba SCI Priprava vmesnika:
Določimo oz. izberemo hitrost delovanja, t.j. hitrost
pošiljanja/sprejemanja. Določimo obliko podatkov, t.j. število podatkovnih bitov,
parnost, ... Določimo način delovanja, t.j. način pošiljanja/sprejemanja,
po potrebi omogočimo prekinitve. Pošiljanje:
Pošiljanje posameznega podatka, t.j. vpis v oddajni register,
ko oddajnik to omogoča. Sprejemanje:
Sprejemanje posameznega podatka,t.j. branje podatka iz
podatkovnega registra in obravnavanje napak, ko je podatek
sprejet.
HCS12 – registri SCIHCS12 – registri SCI
Vsakemu od vmesnikov SCI pripada 8 registrov prekinitveni vektor.
Registri določajo: način delovanja, stanje oddajnika/sprejemnika, hranijo sprejeti/oddani podatek.
Vektorji SCIVektorji SCI
Vsakemu vmesniku pripada (samo) en
prekinitveni vektor, vzrokov za prekinitev pa je več: sprejet je podatek, oddaja je končana, ponovna oddaja je možna, sprejemna linija je prazna, ....
SCI – register SCIBDH/L SCI – register SCIBDH/L
Register SCIxBDH/L (npr.SCI0BDH, SCI0BDL):
register (registra) za izbiro hitrosti odd./spr. Hitrost [b/s] = Osnovni takt / (16 x vsebina registrov)
SCI - nastavitev hitrostiSCI - nastavitev hitrosti Hitrost oddajnika/sprejemnika
Standardne hitrosti [b/s oziroma bps]
1200, 2400, 4800, 9600, 19200, 36400, ... Pri dani osnovni frekvenci se ne da z deljenjem
natančno doseči katerekoli prenosne hitrosti. Sprijazniti se moramo s še sprejemljivim odstopanjem. Npr. 8 MHz / (16 x BR) = 9600 b/s; BR = 52
8 MHz / (16 x 52) = 9615 b/s;
napaka 15/9600 = 0.0015, kar je še dopustno.
..........
MOVW #52, SCI0BDH
ali:
LDD #52
STD SCI0BDH
SCI – registra SCICR1/2 SCI – registra SCICR1/2 Registra SCICR1 in SCICR2 (SCI Control Register)
Označeni so biti, ki jih moramo določiti v večini primerov
uporabe, drugi so precej manj pogosto uporabljani.
SCI – register SCICR2SCI – register SCICR2 S tem registrom omogočamo oddajnik, sprejemnik
in omogočamo različne vzroke prekinitev,... RE, TE: Receiver Enable, Transmitter Enable.
Omogočimo sprejemnik (RE=1) in/ali oddajnik (TE=1),
sicer sta neaktivna. RIE, TIE: Receiver Interrupt Enable, Transmitter Interrupt En.
Omogočimo zahtevo za prekinitev ob sprejemu (RIE=1)
in/ali oddaji (TIE=1), seveda pa je delovanje možno tudi
ne da omogočimo prekinitve.
SCI – register SCICR2SCI – register SCICR2 Register SCICR2 (nadaljevanje)
TCIE: Transmission Complete Interrupt Enable
ILIE: Idle Line Interrupt Enable
SBK: Send Break
RWU: Receiver Wakeup
SCI – register SCICR1SCI – register SCICR1 S tem registrom izberemo obliko podatka in različne možnosti
delovanja, ...: M : (Mode) oblika podatkov
M = 1, izberemo 9 bitni podatek M = 0, izberemo 8 bitni podatek
PE, PT: (Parity Enable, Parity Type) PE = 1, omogočimo parnost PT = 1, liha parnost, PT = 0, soda parnost
SCI – register SCICR1SCI – register SCICR1 Primer za 8-bitni podatek
To je najpogostejša oblika,
8 bitni podatek,
brez parnosti,
en stop bit,
M = 0, PE = 0 Primer za 9-bitni podatek
SCI – register SCICR1SCI – register SCICR1 Register SCICR1 (nadaljevanje)
Sprejemnik omogoča avtomatično bujenje. Dokler ni izpolnjen pogoj za “bujenje”, je sprejemnik neaktiven. Uporaba: komunikacija običajno poteka v obliki daljših
zaporedij bajtov (paketov oz. okvirjev). WAKE (Wake condition)
WAKE = 1, bujenje z naslovnim bitom WAKE = 0, bujenje s prazno linijo
SCI – register SCICR1SCI – register SCICR1 Register SCICR1 (nadaljevanje)
LOOPS (Loop operation): LOOPS = 1, Oddajna in sprejemna sponka sta interno sklenjeni
RSRC (Receiver Source) ILT (Idle Line Type) SCISWAI (Stop in Wait mode)
SCI – registra SCISR1/2 SCI – registra SCISR1/2 Registra SCISR1 in SCISR2 (SCI Status Register).
Ta dva registra odražata stanje oddajnika/sprejemnika.
SCI – register SCISR1SCI – register SCISR1 Register SCISR1
TDRE: Transmitter Data Register Empty TDRE = 1, oddajnik je prazen, oddaja je možna TDRE = 0, oddaja je v teku
TC: Transmission Complete, TC = 1, oddaja je končana.
Cakaj: LDAB SCISR1
BITB #$80 ;oddajni register prazen?
BNE Cakaj
STAA SCIDRL ;oddaj naslednji podatek
SCI – register SCISR1SCI – register SCISR1 Register SCISR1 (nadaljevanje)
RDRF: Receiver Data Register Full RDRF = 1, podatek sprejet RDRF = 0, svež podatek (še) ni sprejet
IDLE: Idle Line Detect IDLE = 1, zaznana prazna linija
OR,NF,PF,FE: Overrun, Noise Flag, Framing Error, Parity Flag biti v stanju 1 pomenijo prisotnost napake
SCI – register SCISR2SCI – register SCISR2
Register SCISR2 BK13, 13 bitni “break” signal
TXDIR: smer TX sponke v enožičnem načinu TXDIR = 1, TX je izhod TXDIR = 0, Tx je vhod
RAF: Receiver Active Flag
Recommended