Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Budintis laikmatis (Watchdog Timer)

Lituaniana


Budintis laikmatis (Watchdog Timer).

Budinčio taimerio (Watchdog Timer) pirminė funkcija - sistemos perkrovimas atsiradus programinėms problemoms. Jei praėjo nurodytas laiko intervalas, budintis taimeris (WDT) formuoja pertraukimo signalą ir sistema per 21121u2024v kraunama. Jei si apsaugos funkcija konkrečiu atveju nereikalinga, budintis taimeris gali dirbti kaip laikmatis, kuris generuoja pertraukimo signalą po pasirinkto laiko intervalo. Mikrovaldiklio MSP430 Budinčio taimerio savybės:



keturi programiniu būdu parenkami laiko intervalai;

Budinčio taimerio (WDT) rezimas;

Laikmačio rezimas;

apsaugotas slaptazodziu WDT valdymo registras;

įėjimo RST/NMI (Reset / Non Mascable Interrupt) valdymas;

galimybė isrinkti WDT sichronizacijos saltinį;

WDT gali būti isjungtas energijos taupimo rezime.

WDT darbas Budičio taimerio rezime: valdančio registro WDTCTL pagalba WDT taimeris gali guti nustatytas darbui Budičio taimerio arba Intervalų taimerio rezimuose. Rasymas į WDTCTL registrą apsaugotas slaptazodziu, t.y. rasant į sį registrą, vyresnysis rasomo zodzio baitas turi būti lygus "5Ah". 16-kos bitų WDT taimerio skaitiklis (WDTCNT) nera tiesiogiai pasiekiamas programiniu būdu. Skaitiklis WDTCNT valdymui ir laiko intervalų nustatymui naudojamas valdantis registras WDTCTL. Skaitklis gali būti sinchronizuojamas zemo daznio signalu ACLK ir auksto daznio signalu SMCLK. Po pradinės padėties nustatymo (Reset) WDT taimeris nustatomas į Budinčio taimerio rezimą ir 32 msek Reset intervalą. Iki sio laiko tarpo pabaigos naują intervalą, vartotojas turi nustatyti sustabdyti SKAITKLĮ WDTCNT, arba jį isvalyti. Priesingu atveju mikrovaldiklis bus perkrautas. Mikrovaldiklis taip pat bus perkrautas, jeigu bus bandoma rasytu į valdantį registrą WDTCTL naudojant neteisingą slaptazodį. Abiem siais atvejais bus formuojamas perkrovimo signalas PUC (Power Up Reset).

WDT darbas Intervalų taimerio rezime: nustačius į 1 valdančio registro WDTTNSEL skiltį WDT taimeris pervadamas į Intervalų taimerio rezimą. Siame rezime po nustatyto laiko intervalo formuojami (periodiskai) pertraukimo signalai ir įjungiama WDTIFG vėliavėlė pertraukimų registre IFG1. Tačiau perkrovimo signalas PUC neformuojamas ir WDTIFG leidimo vėliavėlė WDTIE islieka nepakitusi. WDT taimerio pertraukimai leidziami, kai nustatytos WDTIE ir GIE vėliavėlės.

Pertraukimų vektoriai dirbant Budinčio taimerio ir Intervalų taimerio skirtingi. Pirmuoju atveju WDT taimerio pertraukimo vektorius sutampa su perkrovimo (Reset) vektoriumi - 0FFFEh. Antruoju atveju pertraukimų vektorius - 0FFF4h.

Programinio valdymo pavyzdziai:

; Periodinis WDT gesinimas

mov #5A08h, &WDTCTL (5Ah- slaptazodis, ir įjungiama valdymo registro WDTCNTCL skiltis)

; WDT sustabdymas

mov #5A80h, &WDTCTL (5Ah- slaptazodis, ir įjungiama valdymo registro WDTHOLD skiltis)

26 pav. Budinčio taimerio blokinė schema

Budinčio taimerio registrai Budintį taimerį sudaro: valdantysis registras, skaitiklis, daznio daugiklis ir įėjimo selektorius. Budinčio taimerio skaitiklis WDTCNT (16 bitų) nėra tiesiogiai prieinamas programiniu būdu. Budinčio taimerio registras WDTCTL yra valdomas WDTCNT registru. Registras WDTCTL yra 16 bitų (adresas 0120h). Bitai 8 - 15 slaptazodis (rasant - 5Ah, skaitant - 69h).

27 pav. Budinčio taimerio kontrolės registras

Bitai 0, 1: bitai (IS0 ir IS1) parenka vieną is keturių daugiklių esančių skaitiklyje WDTCNT.

SSEL IS1 IS0 Intervalai, (ms)

1 1 0.064 (TMCLK x 26)

1 0 0.5 (TMCLK x 29)

1 1 1.9 (TACLK x 26)

0 1 8 (TMCLK x 213)



1 0 16.0 (TACLK x 29)

0 0 32 (TMCLK x 215)

0 1 250 (TACLK x 213)

0 0 1000 (TACLK x 215)

Bitas 2: bitas WDTSSEL parenka taktinių impulsų saltinį WDTCNT skaitikliui.

SSEL= 0, WDTCNT taktinių impulsų saltinis yra MCLK = 1 MHz.

SSEL= 1, WDTCNT taktinių impulsų saltinis yra ACLK=32768 Hz.

Bitas 3: bitas WDTCNTCL abiejuose darbo rezimuose perkrauna WDTCNT skaitiklį į 00000h.

Bitas 4: bitas WDTTMSEL parenka darbo rezimą.

WDTTMSEL = 0: budinčio taimerio rezimas.

WDTTMSEL = 1: intervalų formavimo rezimas.

Bitas 5: bitu WDTNMI parenkame valdiklio isėjimo funkciją.

0 - Perkrovimo (Reset) funkcija.

1 - NMI funkcija.

Bitas 6: bitas NMIES parenka frontą RST/NMI isvadai, jeigu NMI signalas aktyvus, mikrovaldiklis perkraunamas PUC (Power Up Clear) signalu.

NMIES = 0: kylantis signalo frontas NMI pertraukimui.

NMIES = 1: krentantis signalo frontas NMI pertraukimui.

Bitas 7: bitas WDTHOLD sustabdo operacijų vykdymą budinčio taimerio skaitiklyje. Tokiu būdu pasiekiama mazesnis energijos vartojimas.

WDTHOLD = 0: visos funkcijos yra aktyvuotos.

WDTHOLD = 1: taktinių impulsų formavimas ir skaitiklio darbas yra sustabdytas.

Skaitymo rezimas WDTCTL gali būti nuskaitytas tik su slaptazodziu. Jaunesnysis baitas yra tiesiogiai suristas su WDTCTL registru. Skaitymo metu vyresnysis baitas turi būti lygus 069h.

28 pav. Duomenų zodzio formatas skaitant kontrolės registrą

Rasymo rezimas Rasymas į WDTCTL registrą galimas tik tada, kai yra naudojamas teisingas slaptazodis. Rasymo metu vyresnysis baitas turi būti lygus 05Ah.

29 pav. Duomenų zodzio formatas rasant į kontrolės registrą

Budinčio taimerio pertraukimo funkcijų kontroliuojamos naudojami mikrovaldiklio specialios paskirties registrus SFR (Special Function Register) nustatant budinčio taimerio pertraukimo vėliavėlę WDTIFG ir pertraukimo leidimo vėliavėlę WDTIE.

30 pav. Specialios paskirties registrai

Budinčio taimerio pertraukimo vėliavėlė WDTIFG gesinama, kai įjungiamas maitinimas arba perkrovimo signalas yra suformuotas isvade RST/NMI. Toks signalas yra vadinamas POR (POWER-ON RESET). Po sio signalo arba po sisteminio perkrovimo budintis taimeris automatiskai pereina į budinčio taimerio rezimą, kontrolės registras WDTCTL ir skaitiklis WDTCNL visiskai isvalomi.

Kai budintis taimeris nustatytas dirbti intervalų formavimo rezimu ir parinktas konkretus laiko intervalas WDTIFG vėliavėlė automatiskai nustatoma į "1". Tokie nustatymai reikalauja pertraukimų aptarnavimo. Budinčio taimerio pertraukimo vėliavėlė WDTIFG yra automatiskai perkraunama, kada procesoriaus sistema aptarnauja pertraukimus. Budinčio taimerio pertraukimo leidimo vėliavėlė WDTIE ir GIE (General Interrupt Enable) nustatoma "1", kai vykdomi pertraukimai.




Document Info


Accesari: 1924
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2025 )