v/i prenosi

32
http://vision.fe.uni-lj.si/classes/GSPV GSPV (8) HCS12, V/I in vrata H,(P,J) Stanislav Kovačič Univerza v Ljubljani Fakulteta za elektrotehniko

Upload: giona

Post on 12-Jan-2016

47 views

Category:

Documents


0 download

DESCRIPTION

V/I prenosi. Dve napravi, na primer: mikrokrmilnik z drugim mikrokrmilnikom, mikrokrmilnik s tipkovnico, mikrokrmilnik s stikalom, mikrokrmilnik z ventilom, .... načeloma komunicirata na enega od dveh načinov: brez usklajevanja (“neusklajen” način) ali - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: V/I prenosi

http://vision.fe.uni-lj.si/classes/GSPV

GSPV (8)

HCS12, V/I in

vrata H,(P,J)

Stanislav Kovačič

Univerza v Ljubljani

Fakulteta za elektrotehniko

Page 2: V/I prenosi

V/I prenosi V/I prenosi

Dve napravi, na primer: mikrokrmilnik z drugim mikrokrmilnikom, mikrokrmilnik s tipkovnico, mikrokrmilnik s stikalom, mikrokrmilnik z ventilom, ....

načeloma komunicirata na enega od dveh načinov: brez usklajevanja (“neusklajen” način) ali z usklajevanjem (“usklajen” način).

Page 3: V/I prenosi

V/I – neusklajen način V/I – neusklajen način

Brez usklajevanja (“neusklajen” način): Prenašajo se samo podatki brez nadzornih signalov, to je

ena naprava enostavno postavi signale in druga jih odčita. Med napravama se ne prenašajo (nadzorni) signali,

kdaj naj ena naprava da podatek in kdaj, če sploh, naj

ga druga prevzame. Na primer: mikrokrmilnik odčita stanje stikala, ali mikrokrmilnik

prižge LED diodo (ni potrebe po usklajevanju).

Oddajna

naprava

Sprejemna

napravaPodatki

Page 4: V/I prenosi

V/I – usklajen način V/I – usklajen način

Z usklajevanjem (angl. Hand Shaking): Prenos podatkov spremlja izmenjava nadzornih signalov,

načeloma takole:

1. Oddajna naprava zahteva od sprejemne naprave naj

se pripravi na prevzem podatka.

2. Sprejemna naprava javi pripravljenost na sprejem podatka.

3. Oddajna naprava pošlje podatek in javi prisotnost podatka.

4. Sprejemna naprava prevzame podatek in javi

prevzem podatka....

Obstaja več načinov usklajevanja, včasih jih imenujemo

tudi “delno” usklajen, (“polno”) usklajen in

“dvojno” usklajen....

Page 5: V/I prenosi

V/I – usklajen način V/I – usklajen način

1. Oddajna naprava postavi podatek.

2. Oddajna naprava postavi nadzorni signal “podatek je prisoten”.

3. Sprejemna naprava zazna nadzorni signal in prevzame podatek.

Opomba:

Temu načinu bi lahko rekli tudi delno usklajen (Angl. Strobed I/O).

Oddajna

naprava

Sprejemna

naprava

Podatki1

2

3

Page 6: V/I prenosi

V/I – usklajen način V/I – usklajen način

1. Oddajna naprava postavi podatek.

2. Oddajna naprava postavi nadzorni signal “podatek prisoten”.

3. Sprejemna naprava zazna nadzorni signal in prevzame podatek.

4. Sprejemna naprava javi prevzem podatka.

Opomba: to lahko (hkrati) pomeni zahtevo za pošiljanje (novega)

podatka oziroma pripravljenost na prevzem naslednjega podatka.

Oddajna

naprava

Sprejemna

naprava

Podatki1

2

3

4

Page 7: V/I prenosi

V/I prenosi in CPE V/I prenosi in CPE

V/I prenos poteka načeloma na enega od naslednjih načinov: S posredovanjem procesorja (pod nadzorom programa):

Enostavno brez preverjanja stanja V/I. S preverjanjem stanja V/I vmesnika. Z zahtevo za prekinitev.

Brez posredovanja procesorja: Z neposrednim dostopom do pomnilnika (DMA).

V tem primeru opravi prenos (namesto procesorja)

krmilnik za neposreden dostop (o tem ne bomo govorili).

Vmes-

nik

Zuna-

nja

napra-

va

CPE

Pomnilnik

Page 8: V/I prenosi

V/I V/I – brez preverjanja stanja– brez preverjanja stanja

Enostavno prevzamemo (beremo) ali postavimo (pišemo) V/I

sponke (signale) – to je torej neusklajen način.

.........

LDAA PortA ;beremo stanje na vhodu

......... Ta način je primeren, kadar sinhronizacija z drugo napravo

(npr. stikalom ali lučko) ni potrebna (o tem smo že govorili).

VmesnikZunanja naprava CPE

PodatekLDAA PortA

Page 9: V/I prenosi

V/I V/I – s preverjanjem stanja– s preverjanjem stanja

Pred prenosom podatka, preverimo prisotnost podatka:

CAKAJ: LDAA PortStatus ;zanima nas stanje V/I

BITA #$80 ;je podatek prisoten (b7 =1)?

BEQ CAKAJ ;ne, čakaj podatek

; Ali bolj kompaktno

; CAKAJ: BRCLR PortStatus,#$80,CAKAJ

LDAA PortData ;da, prevzemi podatek Ta način je primeren, kadar je potrebna sinhronizacija z zunanjo

napravo – ko pride podatek, ga je potrebno prevzeti pred prihodom

naslednjega podatka, i.t.d.

VmesnikZunanja naprava CPE

Podatek

LDAA PortStatusStanje

LDAA PortA

Page 10: V/I prenosi

V/I V/I – s preverjanjem stanja– s preverjanjem stanja

Preverjanje stanja – druga možnost

;

LDAA PortStatus ;zanima nas stanje V/I

BITA #$80 ;je podatek prisoten (b7 =1)?

BEQ NAPREJ ;ne, nadaljuj z delom

;Ali kar BRCLR PortStatus,#$80,NAPREJ

LDAA PortData ;da, prevzemi podatek

NAPREJ: .......... ;npr. preveri drugo napravo

Ta način je primeren, kadar imamo več V/I naprav, ki

jim strežemo ‘v zanki’ s predvidenim taktom.

Page 11: V/I prenosi

V/I – s prekinitvijo V/I – s prekinitvijo

; --- poljuben program

....... ;ustrezno pripravimo V/I vmesnik

CLI ;omogočimo I maskirane zahteve

PROG: ....... ;kadarkoli lahko nastopi prekinitev

BRA PROG

; --- prekinitveni strežnik V/I

ISR: LDAA PortData ;prevzamem podatek

STAA Nekam ;nekaj naredim z njim in

RTI ;se vrnem v prekinjeni program

VmesnikZunanja naprava CPE

Podatek

Zahteva za

prekinitev

Stanje

LDAA PortA

Page 12: V/I prenosi

HCS12 – PIMHCS12 – PIM (Port Integration Module)(Port Integration Module)

Sponke

(signali)

vrat P, H, J

lahko

služijo

tudi kot

prekinitveni

vhodi.

Page 13: V/I prenosi

HCS12 – HCS12 – vrata P, H in Jvrata P, H in J

Vrata P, H in J so si v vlogi splošno namenskih vrat (GPIO)

enakovredna.

Lahko jih uporabljamo podobno, kot npr. vrata A in B,

ki smo jih že spoznali.

Omogočajo pa tudi proženje zahtev za prekinitev, kar

npr. vrata A in B ne omogočajo.

Sicer pa vrata (P,H,J) služijo oz. so prek njih dosegljivi

tudi (drugi) notranji periferni moduli: Vrata P: za PWM in SPI, Vrata H: za SPI, Vrata J: IIC in CAN.

Page 14: V/I prenosi

HCS12HCS12––vrata H kot splošnonamenski V/Ivrata H kot splošnonamenski V/I

8 digitalnih vhodov ali izhodov, posamično programljivih za vhod

ali izhod s pomočjo smernega registra.

Vhodi z/brez zaključnega upora na napajanje/maso.

Polna ali zmanjšana gonilna moč izhodov.

Možnost proženja zahteve za prekinitev pri aktivnem prehodu

signala na kateremkoli od 8 vhodnih (v tem primeru prekinitvenih)

sponk.

Page 15: V/I prenosi

HCS12 – HCS12 – vrata H – registri vrat vrata H – registri vrat

S stališča programerja zadostuje poznavanje V/I registrov in

njihovega pomena (pravzaprav to velja za vse V/I prenose). Registri vrat H spadajo k modulu PIM

Skica je izrezana iz dokumenta 9s12DP256BDGV2.pdf

Page 16: V/I prenosi

HCS12 – HCS12 – vrata H – registri vrat vrata H – registri vrat

Naslovi registrov = Osnovni (začetni) naslov + Odmik Osnovni naslov modula PIM = $0240 Naslov registra PTH je $0240 + $20 = $0260 Naslov registra PTIH je $0240 + $21 = $0261 i.t.d. (Ta skica je v bistvu ponovitev prejšnje, izrezana iz dokumentacije PIM )

ODMIK POMEN

Page 17: V/I prenosi

HCS12 – HCS12 – vrata H – vektor vrata H – vektor

Pri streženju prekinitvenih zahtev iz teh vrat pa moramo poznati

še naslov pripadajačega prekinitvenega vektorja.

Opomba: To je del tabele vektorjev (glej prejšnje predavanje)

Page 18: V/I prenosi

HCS12 – HCS12 – vrata H: V/I registervrata H: V/I register

V primeru, da so sponke vrat programirane kot izhodne, bo

operacija branja vrnila vsebino tega registra. V nasprotnem primeru operacija branja vrne stanje sponk.

Page 19: V/I prenosi

HCS12–HCS12–načelna skica sponke vratnačelna skica sponke vrat

V primeru, da so sponke vrat programirane kot izhodne, bo

operacija branja vrnila vsebino tega registra. V nasprotnem primeru operacija branja vrne stanje sponk.

Celica (bit) smernega registra

Celica (bit) V/I registra

Page 20: V/I prenosi

HCS12 – HCS12 – vrata H: vhodni registervrata H: vhodni register

Branje tega registra vedno vrne stanje (vhodnih) sponk.

Na ta način se da ugotoviti tudi preobremenjenost ali kratek stik,

kadar so sponke programirane kot izhodne.

Page 21: V/I prenosi

HCS12 – HCS12 – vrata H: smerni registervrata H: smerni register

Vsebina smernega registra izbere smer pripadajoče (istoležne)

sponke:

vrednost bita = 0 vhodna sponka

vrednost bita = 1 izhodna sponka Možna je poljubna kombinacija vhodnih/izhodnih sponk.

Page 22: V/I prenosi

HCS12 – HCS12 – vrata H: register RDRHvrata H: register RDRH

Register za zmanšanje izhodne gonilne moči sponke na tretjino:

vrednost bita = 0 polna moč

vrednost bita = 1 zmanjšana moč

Page 23: V/I prenosi

HCS12 – HCS12 – vrata H: register PERHvrata H: register PERH

Register za priklop zaključnega upora vhodne sponke:

vrednost bita = 0 upor odključen

vrednost bita = 1 upor priključen

Page 24: V/I prenosi

HCS12 – HCS12 – vrata H: register PPSHvrata H: register PPSH

Izbira polaritete. Register ima dvojni pomen: Za zaključni upor:

vrednost bita = 0 upor na napajalno napetost

vrednost bita = 1 upor na maso Za proženje zahteve za prekinitev:

vrednost bita = 0 prehod navzdol

vrednost bita = 1 prehod navzgor

Page 25: V/I prenosi

HCS12 – HCS12 – vrata H: register PIEHvrata H: register PIEH

Omogočanje zahtev za prekinitev na posameznih sponkah

vrednost bita = 0 prekinitev ni omogočena

vrednost bita = 1 prekinitev je omogočena

Page 26: V/I prenosi

HCS12 – HCS12 – vrata H: register PIFHvrata H: register PIFH

Register zastavic:

vrednost bita = 0 ni zahteve

vrednost bita = 1 zahteva Stanje bita 1 je posledica aktivnega prehoda na pripradajočem

vhodu. Bit brišemo z vpisom enice.

Page 27: V/I prenosi

HCS12 – HCS12 – vrata H – primer 1/3vrata H – primer 1/3

PimBase EQU $0240 ;Port Integration Module

PortHoffset EQU $0020 ;Odmik od PimBase za vrata H

PortHbase EQU PimBase+PortHoffset

PTH EQU PortHbase ;V/I register

PTIH Equ PortHbase+1 ;vhodni register

DDRH EQU PortHbase+2 ;smerni register

RDRH EQU PortHbase+3 ;zmanjsana gonilna moc

PERH EQU PortHbase+4 ;izbira zakljucnih uporov

PPSH EQU PortHbase+5 ;izbira prožile fronte

PIEH EQU PortHbase+6 ;omogočanje prekinitev

PIFH EQU PortHbase+7 ;zastavice prekinitev

;

PHIV EQU $FFCC ;vektor za vrata H

Page 28: V/I prenosi

HCS12 – HCS12 – vrata H – primer 2/3vrata H – primer 2/3

; zacetna vzpostavitev --- poljubno zaporedje ukazov

;

.......

; sedaj priprava vrat H

CLRA

STAA DDRH ;vse sponke so vhodne

STAA PPSH ;aktiven prehod navzdol – za vse vhode

COMA

STAA PERH ;vklopimo zakljucne upore na napajanje

LDAA #$01

STAA PIEH ;omogočimo zahtevo za prekinitev na sponki PH0

CLI ;omogočimo prekinitve

.........

; poljubno zaporedje ukazov

BRA * ;čakamo na prekinitev

Page 29: V/I prenosi

HCS12 – HCS12 – vrata H – primer 3/3vrata H – primer 3/3

; --- strežnik prekinitve

;

ISR: ......... ;

LDAA PIFH ;

ANDA #$01 ;zahteva na PH0?

BEQ ISR0 ;ne

STAA PIFH ;da, brišemo zahtevo

......... ;npr. prevzamemo podatek, i.t.d.

ISR0: RTI

; --- vektor prekinitve

ORG PHIV ;definicija vektorja vrat H

FDB ISR

Page 30: V/I prenosi

HCS12 – HCS12 – vrata H – programcek 1/3vrata H – programcek 1/3

;********************************************************************************************************

;* Preprost primer zehteve za prekinitev na vratih H, sponka PH0. Ob vsaki zahtevi za prekinitev

;* spremenimo stanje vrat A, kamor je prikljucen 7 segmentni LED element, tako da se pikica izmenicno

;*priziga in ugasa. Program dela pod D-Bug12

XDEF Entry

ABSENTRY Entry ;vstopna tocka

; definicije konstant

RamStart EQU $1000 ;Zacetek pomnilnika RAM

RamEnd EQU $2000 ;Konec pomnilnika RAM

RomStart EQU $2000 ;Zacetek pomnilnika za program

; Vrata H

PimBase EQU $0240 ;zacetek naslovov modula PIM

PortOff EQU $0020 ;zacetek naslovov vrat H

PortBase EQU PimBase+PortOff

PTH EQU PortBase ;V/I register

PTIH EQU PortBase+1 ;V register

DDRH EQU PortBase+2 ;smerni register

RDRH EQU PortBase+3 ;zmanjsanje gonilne moci

PERH EQU PortBase+4 ;vklop uporov

PPSH EQU PortBase+5 ;izbira prozenja

PIEH EQU PortBase+6 ;omogocanje prekinitev

PIFH EQU PortBase+7 ;zastavice

PortHvect EQU $3e4c ;Pomni, to je d-bug12 psevdo vektor

Page 31: V/I prenosi

HCS12 – HCS12 – vrata H – programcek 2/3vrata H – programcek 2/3

; vrata A

PORTA EQU $0000

DDRA EQU $0002

; --- podatkovni del in sklad

ORG RamStart

ds.b $100

Sklad: equ *

; --- Program

ORG RomStart

Entry:

lds #Sklad ;tu bo zacetek sklada

jsr InitPortA ;priprava vrat A

JSR InitH ;priprava vrat H

CLI ;omogocimo prekinitve

loop:

BRA loop ;neskonca zanka

; --- priprava vrat A

InitPortA:

ldaa #$FF

staa DDRA

ldaa #$7f ;na vratih je 7-segmentni LED,

staa PORTA ;prizgemo piko

rts

Page 32: V/I prenosi

HCS12 – HCS12 – vrata H – programcek 3/3vrata H – programcek 3/3

; --- priprava vrat H

InitH: clra

staa DDRH ;vhodi

staa PPSH ;obcutljivost na zadnji rob

ldaa #$FF

staa PERH ;vkljucimo upore

ldaa #$01

staa PIEH ;omogocimo prekinitev na PH0

ldaa #$FF

staa PIFH ;brisemo morebitne postavljene zastavice

rts

; --- prekinitveni streznik zahteve za prekinitev na vratih H

IsrH: LDAA #$ff ;brisemo kar vse zastavice

STAA PIFH

ldaa PORTA

eora #$80

staa PORTA ;spremenimo LED prikaz

rti

; --- Vektor vrat H

ORG PortHvect

FDB IsrH