Zadání: | Navrhněte WATCHDOG k PC - pokud se během 1 minuty nezapíše na
paralelní port správné číslo, vypne a po 15-ti s opět zapne počítač odpojením a připojením
síťového napájecího napětí. "Správná čísla" tvoří posloupnost o 16-ti prvcích - navrhněte
nebo použijte Grayův kód. |
Zpracování: | Po zapnutí napájení či stisku tlačítka RESET se vynulují
čítač a oba časovače. Hlavní časovač začne odpočítávat jednu minutu. Pokud
během ní pošle PC na paralelní port správný kód, posune se čítač kódů o jeden
krok vpřed a zároveň se vyresetuje hlavní časovač a začne odpočítávat minutu
od začátku. Kódů (i stavů čítače) je 16, po dosažení posledního kódu se očekává
opět první kód a tak pořád dokola. Pokud PC nestihne během minuty poslat správný kód, přejde výstup hlavního časovače do log. 1, tím se vyresetuje čítač kódu a zároveň se aktivuje druhý časovač - AKO, který vygeneruje přibližně 15s impuls. Tento impuls sepne relé a tím rozpojí kontakty v přívodu napájení PC. Nutno dodat, že watchdog musí být napájen z nezávislého zdroje. Po 15s se opět připojí PC k síti a začne bootovat. Během této doby je ještě po zbylých 45s výstup hlavního časovače v log. 1 čímž se blokuje komparátor a čítač a PC má tak čas napotřebnou inicializaci. Po uplynutí 1 min. od vypnutí PC, přejde výstup hlavního časovače zpět do log. 0, odblokuje se komparátor a čítač a cyklus začíná na novo. Pro realizaci byly voleny standardní obvody TTL a paměť ROM, umožňující vysokou flexibilitu kódu. |
výpis paměti ROM: |
0000: F0 - 1111 0000 0001: F1 - 1111 0001 0002: F3 - 1111 0011 0003: F2 - 1111 0010 0004: F6 - 1111 0110 0005: F7 - 1111 0111 0006: F5 - 1111 0101 0007: F4 - 1111 0100 0008: FC - 1111 1100 0009: FD - 1111 1101 000A: FF - 1111 1111 000B: FE - 1111 1110 000C: FA - 1111 1010 000D: FB - 1111 1011 000E: F9 - 1111 1001 000F: F8 - 1111 1000 0010: FF - 1111 1111 0011: FF - 1111 1111 0012: FF - 1111 1111 0013: FF - 1111 1111 0014: FF - 1111 1111 0015: FF - 1111 1111 0016: FF - 1111 1111 0017: FF - 1111 1111 0018: FF - 1111 1111 0019: FF - 1111 1111 001A: FF - 1111 1111 001B: FF - 1111 1111 001C: FF - 1111 1111 001D: FF - 1111 1111 001E: FF - 1111 1111 001F: FF - 1111 1111 |