32
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 komunikacije

Embed Size (px)

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.

Registri SCIRegistri SCI Začetni naslov za SCI0 = $00C8 Začetni naslov za SCI1 = $00D0

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, ....

Registri SCIRegistri SCI

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 – register SCICR1SCI – register SCICR1 Enožično delovanje Zančno delovanje

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

SCI – register SCIDRH/LSCI – 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