v/i prenosi

Post on 12-Jan-2016

47 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

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

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

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

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

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

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

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

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

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

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.

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

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

Sponke

(signali)

vrat P, H, J

lahko

služijo

tudi kot

prekinitveni

vhodi.

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.

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.

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

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

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)

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.

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

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.

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.

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č

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

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

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

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.

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

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

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

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

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

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

top related