Jak działa watchdog w procesorze 8051 i co z pamięcią RAM po resecie?
Dzialanie watchdoga z C51
From: wkunda_at_nospam_polbox.com (Wojciech Kunda)
Subject: Dzialanie watchdoga z C51
Date: Fri, 01 Aug 1997 10:46:20 GMT
Czy ktos moze mnie oswiecic?
W chwili zadzialania WD w wyniku jakiegosc powaznego zaklocenia
resetowany jest procesor. Ale czy pamiec RAM w 8051 ulega
wyczyszczeniu? Wyobrazam sobie, ze program, aby poprawnie
wykorzystywal funkcjonalnosc WD musi przy gdzies zapamietywac aktualny
krok programu. Jesli RAM zostanie skasowany, to pomysl nie jest
najlepszy. Pomyslalem o EEPROM, np. w procesorze 80851. Ale czas
zapisu do tej pamieci jest (wg mnie) zdecydowanie za dlugi.
Pozdrowienia
Wojciech Kunda
wkunda_at_nospam_polbox.com
From: amart_at_nospam_pol.JUNKMAILPROTECTION.pl (Jaroslaw Cichorski Jr.)
Subject: Re: Dzialanie watchdoga z C51
Date: Fri, 01 Aug 1997 15:14:52 GMT
Maciej Czapla <caltek_at_nospam_wroclaw.top.pl> wrote:
W chwili zadzialania WD w wyniku jakiegosc powaznego zaklocenia
resetowany jest procesor. Ale czy pamiec RAM w 8051 ulega
wyczyszczeniu? =
Od resetu - nie. Od zak=B3=F3cenia - mo=BFe si=EA zdarzy=E6.
I o ile nie spada zasilanie
Po resecie sa jednak zerowane/ustawiane niektore SFR'y
Wyobrazam sobie, ze program, aby poprawnie
wykorzystywal funkcjonalnosc WD musi przy gdzies zapamietywac aktualny
krok programu. Jesli RAM zostanie skasowany, to pomysl nie jest
najlepszy.
Odtworzenie stanu sprzed resetu nie jest tylko zachowaniem zawartosci
RAM i zapamietaniem kroku programu.
W ogole w przypadku 51 pelne odtworzenie stanu procesora sprzed resetu
nie jest mozliwe.
Poza tym watchdog resetuje procesor, aby ten od nowa poprawnie
wystartowal z programem. Jezeli program sie zapetla i przestaje
przerzucac watchdog, a Ty po resecie wprowadzilbys go ten sam stan
(rozwazanie teoretyczne) to program dalej bedzie sie zle wykonywal
(np. dlatego, ze PC w wyniku zaklocenia przesunal sie o 1 byte)
<snip>
--------
Jaroslaw Cichorski Jr.
e-mail amart_at_nospam_pol.JUNKMAILPROTECTION.pl
UWAGA Adres niewazny!
Prosze usunac JUNKMAILPROTECTION. zeby otrzymac prawidlowy adres.
E-mail address is invalid due to stop junk mail.
Please remove 'JUNKMAILPROTECTION.'
This message was not tested on animals.
From: lis_at_nospam_papuga.ict.pwr.wroc.pl (Jaroslaw Lis)
Subject: Re: Dzialanie watchdoga z C51
Date: 1 Aug 1997 16:09:18 GMT
Maciej Czapla <caltek_at_nospam_wroclaw.top.pl> wrote:
WD nie gwarantuje niezakłóconego działania we wszystkich możliwych
wypadkach - znakomicie jednak podnosi prawdopodobieństwo prawidłowego
działania układu mimo zakłóceń.
Moze sformulujmy to tak: powrotu do prawidlowego dzialania mimo zaklocen.
Silnik zgasnie, ale ruszy, telewizor zglupieje, ale da sie kanal zmienic i
dalej bedzie poprawnie, kasa zamruga wyswietlaczem ... ale cala transakcje
trzeba bedzie podliczyc od nowa..
J.
From: Maciej Czapla <caltek_at_nospam_wroclaw.top.pl>
Subject: Re: Dzialanie watchdoga z C51
Date: Fri, 01 Aug 1997 18:41:38 -0700
Jaroslaw Lis wrote:
=
Maciej Czapla <caltek_at_nospam_wroclaw.top.pl> wrote:
WD nie gwarantuje niezak=B3=F3conego dzia=B3ania we wszystkich mo=BF=
liwych
wypadkach - znakomicie jednak podnosi prawdopodobie=F1stwo prawid=B3o=
wego
dzia=B3ania uk=B3adu mimo zak=B3=F3ce=F1.
=
Moze sformulujmy to tak: powrotu do prawidlowego dzialania mimo =
zaklocen. Silnik zgasnie, ale ruszy, telewizor zglupieje, ale da sie
kanal zmienic i dalej bedzie poprawnie, kasa zamruga wyswietlaczem ...
ale cala transakcje trzeba bedzie podliczyc od nowa..
=
J.
Mo=BFesz na to popatrzy=E6 inaczej:
cykl regulacji obiegu ch=B3odzenia reaktora zostanie wznowiony i nie
b=EAdziemy mieli chi=F1skiego syndromu (tylko nie pisz =BFe 51 tam si=EA =
nie
stosuje bo nie mam ochoty si=EA przekomarza=E6). Pozdrowka
M
;-> Nie widzia=B3em jeszcze m=B1drego telewizora ale pewnie si=EA nie zna=
m ;->
From: lis_at_nospam_papuga.ict.pwr.wroc.pl (Jaroslaw Lis)
Subject: Re: Dzialanie watchdoga z C51
Date: 1 Aug 1997 19:56:29 GMT
Maciej Czapla <caltek_at_nospam_wroclaw.top.pl> wrote:
Moze sformulujmy to tak: powrotu do prawidlowego dzialania mimo
zaklocen. Silnik zgasnie, ale ruszy, telewizor zglupieje, ale da sie
kanal zmienic i dalej bedzie poprawnie, kasa zamruga wyswietlaczem ...
ale cala transakcje trzeba bedzie podliczyc od nowa..
Możesz na to popatrzyć inaczej:
cykl regulacji obiegu chłodzenia reaktora zostanie wznowiony i nie
będziemy mieli chińskiego syndromu
Co nie znaczy ze zresetowany system nie zacznie od wlaczenia wszystkich
pomp, nie baczac na fakt ze jedna obsluga wylaczyla wczesniej i
wlasnie ja ludzie rozkrecaja :-)
J.
From: lis_at_nospam_papuga.ict.pwr.wroc.pl (Jaroslaw Lis)
Subject: Re: Dzialanie watchdoga z C51
Date: 1 Aug 1997 16:17:26 GMT
Wojciech Kunda <wkunda_at_nospam_polbox.com> wrote:
W chwili zadzialania WD w wyniku jakiegosc powaznego zaklocenia
resetowany jest procesor. Ale czy pamiec RAM w 8051 ulega
wyczyszczeniu? Wyobrazam sobie, ze program, aby poprawnie
wykorzystywal funkcjonalnosc WD musi przy gdzies zapamietywac aktualny
krok programu. Jesli RAM zostanie skasowany, to pomysl nie jest
najlepszy. Pomyslalem o EEPROM, np. w procesorze 80851. Ale czas
zapisu do tej pamieci jest (wg mnie) zdecydowanie za dlugi.
Niestety - WD dziala troche inaczej. On resetuje niedzialajacy procesor
lub zle dzialajacy na nim program. A program moze dzialac zle bo
np przeklamal sie jakis bit pamieci.
51 co prawda po resecie pamieci nie kasuje, ale tez zwykle
jej zawartosci nie mozesz juz ufac. Wiec nie chodzi o 'wznowienie'
programu od ostatniej instrukcji, a wlasnie o wystartowanie
calego programu od poczatku.
Natomiast sam program moze byc tak zapisany ze gdzies zapisuje sobie
operacje do wykonania, i przy starcie stara sie kontynuowac poprzednio
wykonywane czynnosci. Ale "czynnosc" to cos znacznie wiekszego niz
instrukcja mikroprocesora...
P.S. EEPROM tez moze przeklamac...
J.
From: wkunda_at_nospam_polbox.com (Wojciech Kunda)
Subject: Re: Dzialanie watchdoga z C51
Date: Tue, 05 Aug 1997 11:48:05 GMT
On 1 Aug 1997 16:17:26 GMT, lis_at_nospam_papuga.ict.pwr.wroc.pl (Jaroslaw Lis)
wrote:
51 co prawda po resecie pamieci nie kasuje, ale tez zwykle
jej zawartosci nie mozesz juz ufac. Wiec nie chodzi o 'wznowienie'
programu od ostatniej instrukcji, a wlasnie o wystartowanie
calego programu od poczatku.
Ale co ma sie dziac po wystartowaniu na nowo?
Natomiast sam program moze byc tak zapisany ze gdzies zapisuje sobie
operacje do wykonania, i przy starcie stara sie kontynuowac poprzednio
wykonywane czynnosci. Ale "czynnosc" to cos znacznie wiekszego niz
instrukcja mikroprocesora...
Czyli co takiego, na przyklad?
P.S. EEPROM tez moze przeklamac...
Czy jest zatem jakas sensowna alternatywa?
Pozdrowienia
Wojciech Kunda
wkunda_at_nospam_polbox.com
From: lis_at_nospam_papuga.ict.pwr.wroc.pl (Jaroslaw Lis)
Subject: Re: Dzialanie watchdoga z C51
Date: 5 Aug 1997 15:45:16 GMT
Wojciech Kunda <wkunda_at_nospam_polbox.com> wrote:
On 1 Aug 1997 16:17:26 GMT, lis_at_nospam_papuga.ict.pwr.wroc.pl (Jaroslaw Lis)
51 co prawda po resecie pamieci nie kasuje, ale tez zwykle
jej zawartosci nie mozesz juz ufac. Wiec nie chodzi o 'wznowienie'
programu od ostatniej instrukcji, a wlasnie o wystartowanie
calego programu od poczatku.
Ale co ma sie dziac po wystartowaniu na nowo?
To juz na szczecie decyduje programista. Jesli to ma dzialac w miare
nieprzerwanie, to trzeba z jakiejs pamieci odczytac zadanie postawione
systemikowi [np - siodmy krok prania, temp 60st], i starac sie kontynuowac.
Oczywiscie trzeba sie przy tym zdrowo napocic, zeby
to mialo rece i nogi [zeby sie nie okazalo ze po zaniku napiecia w
sieci, pralka juz zawsze po wlaczeniu kontynuuje pranie].
P.S. EEPROM tez moze przeklamac...
Czy jest zatem jakas sensowna alternatywa?
Dla WD ? Raczej nie, to jest po prostu pierwsze z zabezpieczen.
A przede wszystkim zalezy co ten mikroprocesor robi - inaczej
sie programuje zegarek, inaczej marsjanska sonde :-)
J.
From: wkunda_at_nospam_polbox.com (Wojciech Kunda)
Subject: Re: Dzialanie watchdoga z C51
Date: Wed, 06 Aug 1997 08:55:32 GMT
On 5 Aug 1997 15:45:16 GMT, lis_at_nospam_papuga.ict.pwr.wroc.pl (Jaroslaw Lis)
wrote:
To juz na szczecie decyduje programista. Jesli to ma dzialac w miare
nieprzerwanie, to trzeba z jakiejs pamieci odczytac zadanie postawione
systemikowi [np - siodmy krok prania, temp 60st], i starac sie kontynuowac.
Oczywiscie trzeba sie przy tym zdrowo napocic, zeby
to mialo rece i nogi [zeby sie nie okazalo ze po zaniku napiecia w
sieci, pralka juz zawsze po wlaczeniu kontynuuje pranie].
P.S. EEPROM tez moze przeklamac...
Czy jest zatem jakas sensowna alternatywa?
Dla WD ? Raczej nie, to jest po prostu pierwsze z zabezpieczen.
A przede wszystkim zalezy co ten mikroprocesor robi - inaczej
sie programuje zegarek, inaczej marsjanska sonde :-)
Bede pisal program do maszyny, ktora krotko mowiac, bedzie sterowala
ramieniem wyposazonym w wiertarke i cos tam wiercila. Ramie bedzie
poruszac sie w osiach X, Y, Z oraz przechylac w kazda strone. Zwracam
sie do Was - profesjonalistow - na co zwrocic uwage projektujac taki
program - zwlasza jesli chodzi o wykorzystanie WD.
Pozdrowienia
Wojciech Kunda
wkunda_at_nospam_polbox.com
From: lis_at_nospam_papuga.ict.pwr.wroc.pl (Jaroslaw Lis)
Subject: Re: Dzialanie watchdoga z C51
Date: Fri, 08 Aug 1997 11:29:54 GMT
On Wed, 06 Aug 1997 08:55:32 GMT, wkunda_at_nospam_polbox.com (Wojciech Kunda)
Bede pisal program do maszyny, ktora krotko mowiac, bedzie sterowala
ramieniem wyposazonym w wiertarke i cos tam wiercila. Ramie bedzie
poruszac sie w osiach X, Y, Z oraz przechylac w kazda strone. Zwracam
sie do Was - profesjonalistow - na co zwrocic uwage projektujac taki
program - zwlasza jesli chodzi o wykorzystanie WD.
Jak na moj gust, to sie mocno zastanow czy nie wolisz zeby maszyna sie
zawiesila, i poprawiac zasilacz tak dlugo az przestanie sie zawieszac
czesciej niz co pol roku.
Dane naplywaja przez RS ?
To wez pod uwage, ze reset przez WD wznawiajacy prace spowoduje ze
maszynka prawdopodobnie zgubi pare instrukcji, straci synchronizacje,
i efekt pracy i tak bedzie do wyrzucenia.
Jesli chcesz to koniecznie zrobic, to po resecie musisz:
1) sprawdzic pozycjonowanie - a ze pewnie bedzie to wymagalo
przejechania do pozycji krancowej, to masz problem
jak bezpiecznie wycofac glowice.
2) odtworzyc stan sterownika, jesli takowy jest - ktore narzedzie bylo
wybrane, jaka ma byc pozycja jesli sa komendy relatywne
[i jak bezpiecznie osiagnac ta pozycje], skalowanie, przesuniecia,
itp
3) odtworzyc komunikacje [adresy w buforach np]
4) powtorzyc ostatnia komende
5) zadbac o wykrycie ze to nie jest reset od WD, wiec krokow 2-4 nie
wykonywac..
I jesli dane naplywaja faktycznie serialem, to nie wiem jak chcesz
miec pewnosc ze nic nie zgubiles...
czyli raczej WD wykrywajacy fakt ze mikroprocesor stracil kontrole,
hardwareowo wylaczajacy wszelkie silniki, a program tak napisany, ze
po resecie zapala lampke "niegotowy" i czeka az obsluga nacisnie
przycisk ze juz mozna zaczac startowac.
A w instrukcji tlustym drukiem napisane, ze przed nacisnieciem tego
przycisku nalezy doprowadzic ramie recznie do pozycji startowej,
zatrzymac wszelkie transmisje danych, itp...
J.
From: wkunda_at_nospam_polbox.com (Wojciech Kunda)
Subject: Re: Dzialanie watchdoga z C51
Date: Mon, 11 Aug 1997 10:53:07 GMT
On Fri, 08 Aug 1997 11:29:54 GMT, lis_at_nospam_papuga.ict.pwr.wroc.pl (Jaroslaw
Lis) wrote:
Jak na moj gust, to sie mocno zastanow czy nie wolisz zeby maszyna sie
zawiesila, i poprawiac zasilacz tak dlugo az przestanie sie zawieszac
czesciej niz co pol roku.
A przeciez zawieszenie moze byc spowodowane nie tylko przez zasilacz.
A co z zakloceniami zewnetrznymi, ktore moga wystepowac zwlaszcza
wsrod wielu innych duzych maszyn w hali produkcyjnej? A jesli mowa o
takim idealnym zasilaczu, to co on w sobie takiego powinien posiadac,
by byl tak sprawny?
Dane naplywaja przez RS ?
Raczej bezposrednio do portow uP. Ewentulanie do jakiegos 8255 - to
tylko wstepna koncepcja. Ale wg wstepnych danych ilosc dostepnych
portow (linii) jest wystarczajaca.
Jesli chcesz to koniecznie zrobic, to po resecie musisz:
1) sprawdzic pozycjonowanie - a ze pewnie bedzie to wymagalo
przejechania do pozycji krancowej, to masz problem
jak bezpiecznie wycofac glowice.
A gdybym po kazdym przesunieciu zapamietywal pozycje glowicy - stan
jakiegos licznika, ktory zmienialby sie w trakcie przemieszczania
glowicy. Czy ta wartosc moze byc inna od rzeczywistej po zadzialaniu
WD?
2) odtworzyc stan sterownika, jesli takowy jest - ktore narzedzie bylo
wybrane, jaka ma byc pozycja jesli sa komendy relatywne
[i jak bezpiecznie osiagnac ta pozycje], skalowanie, przesuniecia,
itp
3) odtworzyc komunikacje [adresy w buforach np]
4) powtorzyc ostatnia komende
5) zadbac o wykrycie ze to nie jest reset od WD, wiec krokow 2-4 nie
wykonywac..
I jesli dane naplywaja faktycznie serialem, to nie wiem jak chcesz
miec pewnosc ze nic nie zgubiles...
Prosze jasniej ;) Cos z tym serialem jest nie tak?
czyli raczej WD wykrywajacy fakt ze mikroprocesor stracil kontrole,
hardwareowo wylaczajacy wszelkie silniki, a program tak napisany, ze
po resecie zapala lampke "niegotowy" i czeka az obsluga nacisnie
przycisk ze juz mozna zaczac startowac.
A w instrukcji tlustym drukiem napisane, ze przed nacisnieciem tego
przycisku nalezy doprowadzic ramie recznie do pozycji startowej,
zatrzymac wszelkie transmisje danych, itp...
Rzeczywiscie tak zle moze to wygladac?
Pozdrowienia
Wojciech Kunda
wkunda_at_nospam_polbox.com
From: lis_at_nospam_papuga.ict.pwr.wroc.pl (Jaroslaw Lis)
Subject: Re: Dzialanie watchdoga z C51
Date: 11 Aug 1997 16:17:49 GMT
Wojciech Kunda <wkunda_at_nospam_polbox.com> wrote:
On Fri, 08 Aug 1997 11:29:54 GMT, lis_at_nospam_papuga.ict.pwr.wroc.pl (Jaroslaw
Jak na moj gust, to sie mocno zastanow czy nie wolisz zeby maszyna sie
zawiesila, i poprawiac zasilacz tak dlugo az przestanie sie zawieszac
czesciej niz co pol roku.
A przeciez zawieszenie moze byc spowodowane nie tylko przez zasilacz.
A co z zakloceniami zewnetrznymi, ktore moga wystepowac zwlaszcza
wsrod wielu innych duzych maszyn w hali produkcyjnej?
Solidna metalowa obudowa, optoizolacja na wejsciach, itp...
A jesli mowa o
takim idealnym zasilaczu, to co on w sobie takiego powinien posiadac,
by byl tak sprawny?
W zasadzie nic. A jednak jedne dzialaja lepiej, inne gorzej :-)
1) sprawdzic pozycjonowanie - a ze pewnie bedzie to wymagalo
przejechania do pozycji krancowej, to masz problem
jak bezpiecznie wycofac glowice.
A gdybym po kazdym przesunieciu zapamietywal pozycje glowicy - stan
jakiegos licznika, ktory zmienialby sie w trakcie przemieszczania
glowicy. Czy ta wartosc moze byc inna od rzeczywistej po zadzialaniu
WD?
Wlasnie o to chodzi. Mikroprocesor sie wiesza, po chwili jest resetowany,
i nie wie co sie w miedzyczasie z urzadzeniem dzialo. Jesli na
silownikach masz enkodery absolutne, to nie ma problemu.
Ale zwykle sa relatywne, i jak zgubisz pare impulsow, to
musisz sie spozycjonowac.
I jesli dane naplywaja faktycznie serialem, to nie wiem jak chcesz
miec pewnosc ze nic nie zgubiles...
Prosze jasniej ;) Cos z tym serialem jest nie tak?
Nie ma potwierdzen po kazdym bajcie, wiec leci strumien danych i musisz
go w calosci odebrac do bufora. A tu w srodku transmisji uP sie wiesza,
a potem jeszcze reset dostaje.
Owszem - dac zewnetrzny port, z duzym FIFO, resetowany softwareowo,
wtedy jest szansa ze sie dane nie zgubia.
Albo zrobic odpowiedni protokol z potwnierdzeniami bloku i retransmisja.
A w instrukcji tlustym drukiem napisane, ze przed nacisnieciem tego
przycisku nalezy doprowadzic ramie recznie do pozycji startowej,
zatrzymac wszelkie transmisje danych, itp...
Rzeczywiscie tak zle moze to wygladac?
W zasadzie nie widze szansy na zrobienie tego.
Musialbys naprawde wszystko gleboko przemyslec, nie wiem jeszcze
ile to ma miec stopni swobody, ale samo wyciagniecie wiertla
z ukosnego otworu ktorego dane sa przeklamane, to moze byc
ciekawa nauka :-)
J.
From: Maciej Czapla <caltek_at_nospam_wroclaw.top.pl>
Subject: Re: Dzialanie watchdoga z C51
Date: Fri, 01 Aug 1997 13:15:45 -0700
W chwili zadzialania WD w wyniku jakiegosc powaznego zaklocenia
resetowany jest procesor. Ale czy pamiec RAM w 8051 ulega
wyczyszczeniu? =
Od resetu - nie. Od zak=B3=F3cenia - mo=BFe si=EA zdarzy=E6.
Wyobrazam sobie, ze program, aby poprawnie
wykorzystywal funkcjonalnosc WD musi przy gdzies zapamietywac aktualny
krok programu. Jesli RAM zostanie skasowany, to pomysl nie jest
najlepszy. Pomyslalem o EEPROM, np. w procesorze 80851. Ale czas
zapisu do tej pamieci jest (wg mnie) zdecydowanie za dlugi.
WD nie gwarantuje niezak=B3=F3conego dzia=B3ania we wszystkich mo=BFliw=
ych
wypadkach - znakomicie jednak podnosi prawdopodobie=F1stwo prawid=B3owego=
dzia=B3ania uk=B3adu mimo zak=B3=F3ce=F1.
Pozdrowienia dla wszystkich
Maciej Czapla