1 / 32

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

giona
Télécharger la présentation

V/I prenosi

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Oddajna naprava Sprejemna naprava Podatki 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).

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

  4. 1 2 3 Podatki Oddajna naprava Sprejemna naprava V/I – usklajen način 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).

  5. 1 2 3 4 Podatki Oddajna naprava Sprejemna naprava V/I – usklajen način 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.

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

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

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

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

  10. V/I – s prekinitvijo Zahteva za prekinitev CPE Vmesnik Zunanja naprava Stanje Klik 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

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

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

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

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

  15. HCS12 – vrata H – registri vrat ODMIK POMEN • 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 )

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

More Related