|
WDT1EX/WDT1EPX/WDT1EPXBL - nízkopříkonové watchdogy
|
- uvedené typy mají nyní vylepšený hw odstraňující nectnosti dřívějších produktů
- watchdogy jsou od nás nastaveny tak, aby jste si vystačili jen s příkazem wdtXXXXs
- můžeme Vám dodat jeden kus i celou sérii s parametry dle Vašich požadavků
- celá instalace spočívá v připojení k počítači a spuštění skriptu (zde pro LINUX)
- pro Windows: stáhněte si program - po spuštění proběhne celé nastavení automaticky, nemusíte se učit sáhodlouhé manuály ani sadu příkazů
|
|
Technické parametry
|
- připojení k počítači na volný asynchronní port (COM, RS232)
- přenosová rychlost 4800 bps, 8 bitů bez parity
- výstupní spínač: nové typy osazujeme výhradně kvalitními optočleny s vyšším zesílením
- jednoduchá komunikace s počítačem - zde popis
- výstupní spínač umožňuje připojení místo resetovacího tlačítka (resp. paralelně k tlačítku)
pro potřeby vypínání/zapínání počítače (tlačítko power-switch) jsou určeny typy WDT2RCE
- výstup: galvanické oddělení, zatížitelnost do 50mA
|
|
Stručný úvod
|
Úkolem watchdogu je nepřetržité hlídání nadřazeného počítače a v případě jeho vytuhnutí tento počítač restartovat. Vhodné využití pro počítače na špatně dostupných nebo odlehlých místech bez obsluhy, pro servery a routery a všude tam, kde je nezbytné počítače neustále udržovat ve správném chodu.
Princip hlídání je v tom, že nadřazený počítač musí do watchdogu periodicky, do vypršení nastaveného času - timeoutu, odesílat určité zprávy, řetězce.
Jakmile však počítač zatuhne, přestane také odesílat tyto zprávy a watchdog jej po nastaveném timeoutu vyresetuje.
Resetovací zprávu zajistí v Linuxu například tento příkaz:
nohup bash -c "while true ; do echo wdt120s > /dev/ttyS0; sleep 20s; done " &
Příkaz je zapotřebí vložit do dávky, která se spouští vždy po restartu, např. /etc/rc.local
Pro x86 routery je následující skript ( pro verze do 3.28 ).
:if ([:len [/interface ppp-client find name="watchdog"]]=1) do={/interface ppp-client remove
[/interface ppp-client find name="watchdog"]; :delay 1}
/interface ppp-client add name="watchdog" port=serial0 modem-init="wdt420s" null-modem=yes
disabled=no
:delay 1
/interface ppp-client remove [/interface ppp-client find name="watchdog"]
Na MT routeboardech nebudou resetátory WDT1EX/EPX/EPXBL pracovat korektně, resp. vůbec, neboť vyžadují napěťové úrovně RS232C ( min. +/-7V ), zatímco MT mají sériové porty "ošizené", většinou v napěťových úrovních jenom +/-3 až +/-5V.
Specielně pro MT proto byly vyrobeny resetátory WDT1EX-RB
|
Důležité upozornění - Linux
|
Pokud připojený resetátor nekomunikuje, zkontrolujte si nastavení portů v BIOSu, zda je vůbec sériový port povolen ( ttyS0 odpovídá COM1, ttyS1 pro COM2 ).
Z OS je někdy zapotřebí com port uvolnit:
setserial /dev/ttyS1 uart none
Dále nastavit správné parametry výstupu - sériového portu:
( nastavení přenosové rychlosti 4800bps )
stty -F /dev/ttyS1 4800
( pro jistotu zakázat paritu )
stty -F /dev/ttyS1 -parenb
Obojí lze i jedním příkazem:
stty -F /dev/ttyS1 -parenb 4800
Pak vyzkoušejte, zda počítač s WDT1EPXBL komunikuje. Např:
echo wdt5s > /dev/ttyS1
Ledka na WDT1EX/EPX/EPXBL by se měla rozsvítit na delší dobu ( cca půl vteřiny ) a po 5 vteřinách by měl watchdog počítač restartovat, pokud je zapojený RESETovací kabílek.
|
Základní ovládací příkazy
|
Resetovací příkaz má obecný formát: wdtXXXXs, kde XXXX je v sekundách a maximální hodnota může být 9999.
Parametr XXXX v příkazu určuje, po kolika sekundách má být počítač restartován.
Nepřijme-li watchdog do uvedeného času další resetovací příkaz, provede ihned zmíněný restart připojeného počítače.
Zpravidla odesíláme stále stejný řetězec, jehož proměnnou XXXX si zvolíme podle vlastní potřeby (nejčastěji wdt120s, wdt180s a pod.).
Vzhledem k nepřesnému časování v PC doporučuji zvolit odesílací čas minimálně 5x kratší, než je parametr XXXX.
Správné přijetí příkazu potvrdí watchdog krátkým bliknutím kontrolky (led).
|
Dalším z příkazů je wdtporYYYYs, který nemá vliv na nastavení probíhajícího časování (timeoutu), ale slouží jako první timeout po zapnutí počítače, resp. každém restartu způsobeného watchdogem.
Tento čas je nutné zvolit s dostatečnou rezervou tak, aby měl počítač po zapnutí ( restartu ) dostatek času k nabootování operačního systému (nejčastěji wdtpor900s).
Maximální hodnota může být až 9999 sekund. Tuto zprávu nevkládejte do skriptu, ale odešlete ji pouze jedenkrát, neboť nastavení je vždy uloženo do vnitřní EEPROM ve watchdogu.
Správné přijetí wdtporYYYYs je potvrzeno dvojitým bliknutím led.
|
Nastavení délky resetovacího pulsu
|
Příkazem wdtlevelXXXXms lze optimalizovat šířku resetovacího pulsu, kde XXXX je čas v milisekundách a rozsah je od 100 do 9900ms.
Hodnota určuje dobu sepnutí výstupního spínače.
Tato funkce byla doplněna na základě praktických zkušeností s novými deskami na bázi P4, kde je často multifunkční resetovací vstup, sdružující jednak funkci resetu (krátký stisk resetovacího tlačítka) nebo vypnutí počítače (delší stisk tlačítka).
Původní watchdogy v některých případech tyto desky při restartu vypnuly a již nedokázaly zapnout. Nastavením vhodné délky resetovacího pulsu podle konkrétního mainboardu tak můžeme zabránit případným problémům.
U většiny desek postačuje nastavení 400ms.
Tuto zprávu nevkládejte do skriptu, ale odešlete ji také pouze jedenkrát a to při konfiguraci, neboť hodnota je vždy uložena do vnitřní energeticky nezávislé paměti ve watchdogu (EEPROM). Správné přijetí řetězce je potvrzeno dvojitým bliknutím led.
|
Rozšířené ovládací příkazy
|
V některých případech požadujeme restartovat počítač, např. pro potřeby nabootování nového sw, upgrade nebo diagnostiky. K tomu nám dobře poslouží
příkaz @RESET=XXXXs, kterým počítač po XXXX vteřinách (od okamžiku odeslání řetězce) restartujeme bez ohledu na probíhající timeout. XXXX v rozsahu 0 až 9999 vteřin (0 ... restart nastane ihned po obdržení příkazu).
Po odeslání tohoto příkazu již nelze restart zastavit. Tento příkaz můžeme odesílat například na základě pingu a tím počítač ovládat ze vzdáleného místa.
Používáme-li watchdog jen pro tento způsob restartu, lze časování timeoutu (viz wdtXXXXs) vypnout příkazem wbreaks.
Nastavení je ihned uloženo do EEPROM. Aktivaci timeoutu provedeme opět kdykoliv příkazem wdtXXXXs a i zde je po přijetí nastavení uloženo do EEPROM (povolovací bit timeoutu).
|
Funkce indikační kontrolky
|
Všechny resetátory jsou vybaveny kontrolkou, která se 1x rozsvítí na jednu vteřinu při přijetí platného řetězce wdtXXXXs a 2x blikne při ostatních příkazech. V případě aktivovaného hesla musí rovněž souhlasit příslušná číselná kombinace.
Kromě této základní funkce je možné dle pravidelného blikání ( krátké záblesky ) určit, ve kterém stavu se resetátor nachází.
Kontrolka na WDT1EPX pravidelně bliká, pokud je wd v provozu, na WDT1EX bliká jen od zapnutí/restartu až do okamžiku přijetí řetězce wdtXXXXs.
U watchdogu WDT1EPXBL lze indikaci sw úplně vypnout nebo nastavit. To je zejména vhodné tam, kde je indikační blikání rušivé nebo naopak potřebujeme určitý stav resetátoru blikáním zvýraznit.
Pro tyto účely je k dispozici řetězec BKSET=Xs, kde lze parametrem X indikační funkci led nastavit.
Příkaz BKSET=Xs nemá vliv na potvrzující bliknutí (přijetí platného příkazu).
X=0 ... indikace vypnuta, led blikne jen při přijetí platného příkazu
X=1 ... blikání od zapnutí/restartu jen do přijetí prvního řetězce wdtXXXXs - viz typ WDT1EX
X=2 ... po zapnutí/restartu blikání vypnuto, začne blikat až po řetězci wdtXXXXs
X=3 ... led bliká stále dokud bude wd napájen - viz typ WDT1EPX
|
Další výhodou příkazu BKSET=Xs je jeho nezávislost na nastaveném heslu. Jinak řečeno, příkaz bude akceptován i bez uvedení hesla narozdíl o všech ostatních příkazů, jejichž akceptování je podmíněno platným heslem, ovšem jen pokud bude heslo využíváno (aktivováno).
Uvedeného příkazu lze tak využít i k ověření funkčnosti WDT1EPXBL, pokud nastavené heslo zapomenete či jej v příkazech uvádíte nesprávně.
Watchdog totiž na příkazy s nesprávným heslem nereaguje, což se pak může zdát, jako že je vadný.
|
Ovládací příkazy podporující vyšší bezpečnost
|
Vyššího zabezpečení lze docílit také tím, že budou všechny odeslané příkazy obsahovat uživatelsky nastavitelné heslo. Heslo je nepovinné a pokud nebude aktivováno, bude watchdog reagovat na výše uvedené příkazy.
Nastavení hesla HHHH provedeme odesláním pinHHHH&s. Tím zakážeme zpracování všech řetězců, které uvedené heslo neobsahují.
Například po nastavení hesla 1234 bude watchdog akceptovat jen následující příkazy: pin1234&wdt120s, pin1234&wdtpor900s, pin1234&wdtlevel500ms, pin1234&@RESET=0s, pin1234&wbreaks.
Heslo musí být číslo s počtem znaků od 1 do 10.
Změna hesla se provádí takto: pinSSSS&pinNNNN&s, kde SSSS je staré a NNNN je nové heslo.
Zadáme-li pinSSSSpin&s, bude funkce heslování zakázána a watchdog bude přijímat i řetězce bez hesla.
Pokud bude učiněn pokus o změnu hesla s chybným zadáním starého hesla, bude několik sekund zablokován přístup k ověřování hesla,
čímž je znesnadněno "pirátské" přeheslování, neboť pro úspěšné přeheslování je nutné počítat s uvedenou prodlevou
a na vyzkoušení všech kombinací bude zapotřebí více jak 1000 let.
Upozornění: pokud nastavíte heslo a zapomenete jej, není možné jednočip odblokovat jinak, než přeprogramováním a je nutné nám jej zaslat zpět. Odblokování provádíme za poplatek 50,-Kč / kus. Watchdogy vždy dodáváme bez hesla.
Heslo lze také použít jako adresu pro výběr konkrétního watchdogu při zapojení několika kusů na stejný port.
Použitím zásuvky ( redukce ) UCOM1/5 lze na jeden port připojit až 5 watchdogů WDT1EX/EPX.
|
|