Hodiny reálneho času

Hodiny reálneho času alebo (ak majú podobu integrovaného obvodu aj) obvod reálneho času či hodinový obvod (angl. "real-time clock", skr. RTC) sú hardvérové alebo menej často softvérové hodiny, merajúce fyzikálny čas. Používajú sa najmä v počítačoch, ale napríklad aj vo videorekordéroch, domácich spotrebičoch a iných vstavaných systémoch.
Ide zvyčajne o integrovaný obvod, napájaný samostatnou zálohovacou batériou, obsahujúci kryštálom stabilizovaný oscilátor s nízkym odberom, často teplotne kompenzovaný; kaskádu čítačov, počítajúcich kmity oscilátoru a komunikačné rozhranie (paralelné alebo sériové – I²C, SPI a pod.), umožňujúce nadradenému systému čítať/modifikovať stav čítačov a konfigurovať obvod. Navyše k samotnému meraniu času integrujú RTC obvody často aj nízkoobjemovú pamäť SRAM, rovnako zálohovanú batériou, do ktorej si môže nadradený systém ukladať konfiguračné údaje. Bežný je tiež výstup, umožňujúci vyvolať prerušenie resp. preberať nadradený systém z pohotovostného (stand-by) režimu – vo vopred nastavený čas, prípadne periodicky.
V prípade počítačov, načíta operačný systém pri zavádzaní po zapnutí reálny čas z obvodu. Bez tohoto zariadenia by bolo potrebné (pri nedostupnosti iného zdroja, napr. prostredníctvom sieťovej konektivity) nastavovať reálny čas a dátum manuálne pri každom zapnutí počítača. V prípade osobných počítačov IBM PC, bol obvod RTC štandardnou súčasťou od modelu PC/AT (286) z roku 1984, do starších modelov bolo možné funkčnosť doplniť vo forme rozširujúcej karty.
Princíp činnosti.
Obvody RTC pracujú obvykle s 32,768 kHz kryštálom, podobne ako elektronické hodinky. Oscilátor je teda relatívne pomalobežný (v porovnaní napr. s oscilátormi pre taktovanie mikroprocesorov), čo je výhodné ako z hľadiska presnosti kryštálu, tak aj nízkej spotreby oscilátoru a deličiek. Odber obvodu RTC, vyrobeného technológiou CMOS je pri napájaní zo zálohovacej batérie obvykle v ráde jednotiek μA. Kvalitná lítiová gombíková batéria CR2032 s kapacitou ~200 mAh tak môže obvod napájať rádovo jednotky až desiatky rokov.
Frekvencia oscilátora umožňuje po vydelení 15-stupňovou binárnou deličkou (215 = 32 768) získať 1 Hz signál – s periódou 1 sekunda. Ten je vedený do kaskádovo radených čítačov do 60 pre sekundy a minúty, do 24 pre hodiny a následne do komplexnejšieho sekvenčného obvodu pre počítanie dní, mesiacov a rokov podľa gregoriánskeho kalendára, vrátane logiky pre priestupné roky. Obsah čítačov je cez registre obvodu sprístupnený pre nadradený systém, ktorý tak môže čítať/zapisovať kompletný aktuálny dátum a čas.
Implementácia v mikrokontroléroch.
Mnohé mikrokontroléry (MCU) majú integrovaný samostatný 32,768 kHz RTC oscilátor, umožňujúci v kombinácii s niektorým integrovaným čítačom vytvoriť úspornú softvérovú implementáciu hodín reálneho času. MCU môže byť uvedený do režimu spánku s nízkou spotrebou, z ktorého je periodicky (napr. každú sekundu) preberaný prerušením časovača, inkrementovaného RTC oscilátorom. Obslužná rutina prerušenia inkrementuje premenné, buď priamo evidujúce jednotlivé zložky reálneho dátumu a času, alebo prostý lineárny počet sekúnd od nejakého referenčného okamihu, čo je v prípade potreby dodatočne softvérovo prevediteľné na reálny čas a dátum. Následne sa MCU znova vráti do režimu spánku.
Obdobné riešenie je, hoci zvyčajne s vyššími nárokmi na spotrebu, možné aj bez dedikovaného oscilátora, s využitím hlavného zdroja taktu MCU, pokiaľ je dostatočne stabilný.
Iné alternatívy.
Alternatívou k batériou zálohovaným obvodom RTC môžu byť moduly rádiových prijímačov časového signálu (v Európe DCF77), GPS moduly, dekódujúce časové údaje zo signálov navigačných družíc, prípadne synchronizácia času pomocou internetových protokolov (NTP).