Predstavitev se nalaga. Prosimo počakajte.

Predstavitev se nalaga. Prosimo počakajte.

V/I prenosi Dve napravi, na primer:

Podobne predstavitve


Predstavitev na temo: "V/I prenosi Dve napravi, na primer:"— Zapis predstavitve:

1

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

3 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 Podatki

4 V/I – usklajen način Z usklajevanjem (angl. Hand Shaking):
Prenos podatkov spremlja izmenjava nadzornih signalov, načeloma takole: Oddajna naprava zahteva od sprejemne naprave naj se pripravi na prevzem podatka. Sprejemna naprava javi pripravljenost na sprejem podatka. Oddajna naprava pošlje podatek in javi prisotnost podatka. 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....

5 V/I – usklajen način Oddajna naprava postavi podatek.
Sprejemna Podatki 1 2 3 Oddajna naprava postavi podatek. Oddajna naprava postavi nadzorni signal “podatek je prisoten”. Sprejemna naprava zazna nadzorni signal in prevzame podatek. Opomba: Temu načinu bi lahko rekli tudi delno usklajen (Angl. Strobed I/O).

6 V/I – usklajen način Oddajna naprava postavi podatek.
Sprejemna Podatki 1 2 3 4 Oddajna naprava postavi podatek. Oddajna naprava postavi nadzorni signal “podatek prisoten”. Sprejemna naprava zazna nadzorni signal in prevzame podatek. Sprejemna naprava javi prevzem podatka. Opomba: to lahko (hkrati) pomeni zahtevo za pošiljanje (novega) podatka oziroma pripravljenost na prevzem naslednjega podatka.

7 V/I prenosi in CPE CPE Vmes- nik Pomnilnik
Zuna- nja napra- va Vmes- nik CPE Pomnilnik 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).

8 V/I – brez preverjanja stanja
Vmesnik Zunanja naprava CPE Podatek Klik LDAA PortA 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).

9 V/I – s preverjanjem stanja
Vmesnik Zunanja naprava CPE Podatek Klik LDAA PortStatus Stanje LDAA PortA 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.

10 V/I – 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.

11 Klik V/I – s prekinitvijo CPE ; --- poljuben program
Zahteva za prekinitev Zunanja naprava Vmesnik CPE Klik Stanje LDAA PortA Podatek ; --- 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

12 HCS12 – PIM (Port Integration Module)
Sponke (signali) vrat P, H, J lahko služijo tudi kot prekinitveni vhodi.

13 HCS12 – vrata 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.

14 HCS12–vrata 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.

15 HCS12 – 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

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

17 HCS12 – 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)

18 HCS12 – vrata 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.

19 HCS12–načelna skica sponke vrat
Celica (bit) smernega registra Celica (bit) V/I registra V primeru, da so sponke vrat programirane kot izhodne, bo operacija branja vrnila vsebino tega registra. V nasprotnem primeru operacija branja vrne stanje sponk.

20 HCS12 – vrata 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.

21 HCS12 – vrata 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.

22 HCS12 – vrata 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č

23 HCS12 – vrata H: register PERH
Register za priklop zaključnega upora vhodne sponke: vrednost bita = 0  upor odključen vrednost bita = 1  upor priključen

24 HCS12 – vrata 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

25 HCS12 – vrata 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

26 HCS12 – vrata 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.

27 HCS12 – vrata 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

28 HCS12 – vrata 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

29 HCS12 – vrata 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

30 HCS12 – vrata 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

31 HCS12 – vrata 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

32 HCS12 – vrata 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 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


Prenesi ppt "V/I prenosi Dve napravi, na primer:"

Podobne predstavitve


Oglasi od Google