260 likes | 375 Views
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
E N D
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).
Oddajna naprava Sprejemna naprava V/I – neusklajen način • Brez usklajevanja (“neuklajen” 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 o tem, kdaj ena naprava daje podatek in kdaj, če sploh, ga druga prevzame. • Na primer: mikrokrmilnik odčita stanje stikala, ali mikrokrmilnik prižge LED diodo, .... Podatki
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....
1 2 3 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.
1 2 3 4 Oddajna naprava Sprejemna naprava V/I – usklajen način Podatki 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 je lahko (hkrati) tudi pomeni zahtevo za pošiljanje (novega) podatka.
V/I prenosi • 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. V tem primeru opravi prenos (namesto procesorja) krmilnik za neposreden dostop. (o tem ne bomo govorili).
V/I – brez preverjanja stanja • Brez preverjanja stanja – torej neusklajen način ; LDAA PortA ;beremo stanje na vhodu ......... STAA PortB ;postavimo izhode ......... • Enostavno prevzamemo (beremo) ali postavimo (pišemo) V/I sponke (signale). • Ta način je primeren, kadar sinhronizacija z drugo napravo (npr. stikalom ali lučko) ni potrebna. • O tem smo že govorili ....
V/I – s preverjanjem stanja • 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. ; CAKAJ: LDAA PortStatus ;zanima nas stanje V/I BITA #$80 ;je podatek prisoten (b7 =1)? BEQ CAKAJ ;ne, čakaj podatek ;Namesto zgorjih ukazov lahko bolj kompaktno naredimo ;CAKAJ: BRCLR PortStatus,#$80,CAKAJ LDAA PortData ;da, prevzemi podatek • Ta način pride v poštev, kadar je nadaljevanje izvrševanja programa pogojeno z zunanjim dogodkom ali procesor tako ali drugače nima drugega dela.
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 s predvidenim taktom.
V/I – s prekinitvijo ; --- poljuben program ....... ;ustrezno pripravimo V/I vmesnik CLI ;omogočimo I maskirane zahteve PROG: ....... ....... ;kadarkoli lahko nastopi prekinitev ....... BRA PROG ; ; --- strežnik V/I ; ISR: LDAA PortData ;prevzamem podatek, STAA Nekam ;nekaj naredim z njim in RTI ;se vrnem v prekinjeni program
HCS12 – PIM(Port Integration Module) Sponke (signali) vrat P, H, J lahko služijo tudi kot prekinitveni vhodi.
HCS12 – vrata P, H in J • Vrata P, H in J so si v vlogi splošnonamenskih 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 notranji periferni moduli: • Vrata P: za PWM in SPI, • Vrata H: za SPI, • Vrata J: IIC in CAN.
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 prostih (“ožičeni ALI”, angl. “open drain”) izhodov. • Možnost proženja zahteve za prekinitev pri aktivnem prehodu signala na kateremkoli od 8 vhodnih (v tem primeru prekinitvenih) sponk.
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). ODMIK POMEN • Naslovi registrov = Osnovni (začetni) naslov + Odmik • Osnovni naslov PIM = $0240 • Naslov npr. registra PTH je $0240 + $20 = $0260
HCS12 – vrata H – registri vrat • Pri streženju prekinitvenih zahtev iz teh vrat pa moramo poznati še naslov pripadajačega prekinitvenega vektorja.
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.
HCS12 – vrata H: vhodni register • Branje 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 – 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.
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č
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
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
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
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.
HCS12 – vrata H – primer 1/2 PimBase EQU $0240 ;Port Integration Module PortHoffset EQU $0020 ;odmik od PimBase za vrata H PortHbase EQU PimBase+PortHoffset DDRH EQU PortHbase+2 ;smerni register PIEH EQU PortHbase+6 ;omogočanje prekinitev PIFH EQU PortHbase+7 ;zastavice prekinitev PPSH EQU PortHbase+5 ;izbira prožile fronte PHIV EQU $FFCC ;vektor za vrata H ........ CLRA STAA DDRH ;vse sponke so vhodne LDAA #$01 STAA PPSH ;aktiven prehod na PH0 navzgor STAA PIEH ;omogočimo zahtevo na PH0 CLI ;omogočimo prekinitve ......... BRA * ;čakamo na prekinitev
HCS12 – vrata H – primer 2/2 ; --- 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