320 likes | 504 Views
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
E N D
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 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).
Oddajni pomikalni register Sprejemni pomikalni register Prenosna pot, tipično nekaj metrov ali poljubno več b7 b7 b7 b7 b6 b6 b6 b6 b5 b5 b5 b5 b4 b4 b4 b4 b3 b3 b3 b3 b2 b2 b2 b2 b1 b1 b1 b1 b0 b0 b0 b0 Oddajni podatkovni register Sprejemni podatkovni register Serijske komunikacije • Potrebna je torej pretvorba iz (bitno) paralelne v (bitno) serijsko obliko (ter obratno) in • Usklajevanje med sprejemno in oddajno napravo (npr.: sprejet je nov podatek, oddaja je možna, ...)
Sprejemni takt (Urin signal) Oddajni takt (Urin signal) b7 b7 b6 b6 b5 b5 b4 b4 b3 b3 b2 b2 b1 b1 b0 b0 Podatkovni signal Sprejemni pomikalni register Oddajni pomikalni register Asinhroni 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,...)
Sprejemni takt (Urin signal) Oddajni takt (Urin signal) b7 b7 b6 b6 b5 b5 b4 b4 b3 b3 b2 b2 b1 b1 b0 b0 Podatkovni signal Sprejemni pomikalni register Oddajni pomikalni register Sinhroni 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 Interface). Urin signal • Opomba: sinh. takt se lahko prenaša skupaj z inf. signalom
p 0 1 b0 0 b1 0 b2 b3 0 b4 1 b5 1 b6 1 b7 0 Asinhroni 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”. Mirovno stanje Start bit Stop bit(a)
Asinhroni 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č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.
p 0 1 b0 0 b1 0 b2 b3 0 b4 1 b5 1 b6 1 b7 0 Asinhroni serijski način • Načelna skica sprejemanja (odčitavanja) signala Ustrezno Prepočasi Prehitro • Za asinhrone prenose se večinoma 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 - 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 Oddajna sponka SCI0 Sprejemna sponka SCI1 Sprejemna sponka SCI0 Oddajna sponka SCI1
HCS12 – SCI blok diagram Sprejeti podatek Od sprejemne sponke Zahteva za prekinitev Takt Sprejemnika in oddajnika Podatek za oddajo K oddajni sponki
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 SCI • Vsakemu od vmesnikov SCI pripada • 8 registrov • prekinitveni vektor. • Registri določajo: • način delovanja, • stanje oddajnika/sprejemnika, • hranijo sprejeti/oddani podatek.
Registri SCI • Začetni naslov za SCI0 = $00C8 • Začetni naslov za SCI1 = $00D0
Vektorji 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 • Register SCIxBDH/L (npr.SCI0BDH, SCI0BDL): register (registra) za izbiro hitrosti odd./spr. • Hitrost [b/s] = Osnovni takt / (16 x vsebina registrov)
SCI - nastavitev hitrosti • Hitrost oddajnika/sprejemnika • Standardne hitrosti [b/s oziroma bps] 1200, 2400, 4800, 9600, 19200, 36400, ... • Pri dani osnovni frekvenci (na vodilu) 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 • 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 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 bi omogočili prekinitve.
SCI – register SCICR2 • Register SCICR2 (nadaljevanje) TCIE: Transmission Complete Interrupt Enable ILIE: Idle Line Interrupt Enable RWU: Receiver Wakeup SBK: Send Break
SCI – 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 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 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 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 – register SCICR1 • Zančno delovanje • Enožično delovanje
SCI – registra SCISR1/2 • Registra SCISR1 in SCISR2 (SCI Status Register). Ta dva registra odražata stanje oddajnika/sprejemnika.
SCI – 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 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 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
SCI – register SCIDRH/L • Podatkovna registra SCIDRH/L • Ta registra služita za sprejem/oddajo podatkov Vrednost sprejetega bita za 9-bitni podatek Vrednost oddajanega bita za 9-bitni podatek