# Echtzeituhr

Eine Echtzeituhr (englisch real-time clock, RTC) oder physikalische Uhr ist eine Uhr, welche die physikalische Zeit misst. Im Gegensatz dazu misst eine logische Uhr eine relative Zeit, die nicht der aktuellen Uhrzeit entspricht. Im Bereich der Elektrotechnik bzw. technischen Informatik ist eine Echtzeituhr Teil eines computergesteuerten Gerätes bzw. des Betriebssystems und hält die Uhrzeit vor. Es werden Vorkehrungen getroffen, damit die Uhrzeit nach erneutem Einschalten wieder zur Verfügung steht. Insbesondere ist eine Echtzeituhr ein Schaltkreis, welcher die Uhrzeit (mittels eines eigenen Energiespeichers, etwa einer Batterie) auch bei ausgeschaltetem Gerät fortschreiben kann.

## Typen
### Hardware-Uhr

Die Funktionalität ist prinzipiell ähnlich der einer Digital-Quarzuhr-Schaltung. Es läuft ein Zähler, von einem Schwingquarz getaktet. Ein angeschlossener Mikroprozessor oder -controller liest dann die Registerstände aus, um sie weiterzuverarbeiten.
Eine Hardware-Uhr ist ein Chip, der im Wesentlichen Zählerregister und einen Uhrenquarz als Taktgeber enthält. Der Zähler wird bei jedem Takt des Frequenzgebers erhöht. Um die Zähler einfach zu halten, wird häufig eine Frequenz des Taktgebers von 32.768 Hz gewählt. Damit kann auf einfache Art durch wiederholtes Halbieren eine Frequenz von 1 Hz als Sekundentakt erzeugt werden. Damit die Uhr nicht stehenbleibt, wenn das Gerät ausgeschaltet wird, wird der Chip ständig von einem Energiespeicher, also einer Batterie oder einem Akku, versorgt. Die dabei benötigten Schwingquarze sind oft Uhrenquarze und werden in großen Stückzahlen produziert und sind daher besonders preisgünstig. Außerdem sind CMOS-Schaltungen bei solch niedrigen Frequenzen besonders stromsparend, was für die Lebensdauer der Batterie bzw. der Akkuladung wichtig ist.

### Software-Uhr

Bei einer Software-Uhr kommt das Taktsignal über eine Unterbrechungsanforderung (Interrupt Request) von der Hardware, der Zähler wird vom Betriebssystem (also der Software) geführt und in Datum und Uhrzeit umgerechnet. Die Bedingung, dass die Uhr bei ausgeschaltetem Gerät weiterläuft, ist somit nicht gegeben. Die Software-Uhr muss also nach dem Einschalten erst synchronisiert werden. Sie wird mit der Hardware-Uhr oder auch fortlaufend mit einem Zeitserver abgeglichen.
In einem PC arbeitet das Betriebssystem nach dem Booten ausschließlich mit der Software-Uhr weiter. Wird im Betriebssystem die Uhrzeit vom Benutzer oder von einem Zeitserver geändert, so wird die Hardware-Uhr, oft auch als BIOS-Uhr bezeichnet, vom Betriebssystem ebenfalls geändert. Die Uhrzeit der Echtzeituhr besteht zunächst nur aus einem Zählerstand (meistens in Sekunden seit der Unix-Epoche). Die Umrechnung in eine für Menschen verständliche Form sowie die Einbeziehung von Zeitzonen und Schaltjahren wird vom Betriebssystem übernommen. Viele Uhren-Chips jedoch enthalten Register, die die Uhrzeit im vom Menschen gewohnten Format (Sekunden, Minuten, Stunden, Tag, Monat, Jahr (oft nur zweistellig), Wochentag) fortschreiben. Einfache Mikrocontroller-Systeme können direkt mit diesen Werten arbeiten. In komplexeren Systemen (wie Betriebssystemen) werden die ausgelesenen Werte jedoch meist in ein Sekundenformat (wie die Unixzeit) umgewandelt, das erst bei der Ausgabe wieder in ein vom Menschen verständliches Format zurückgewandelt wird.
Es gibt verschiedene Ansätze, die Echtzeituhr eines Computers bzw. einer Mikrocontroller-Systems mit der tatsächlichen Uhrzeit zu synchronisieren. Sofern ein Zugang zum Internet zur Verfügung steht, ist das verbreitetste Verfahren, die Uhrzeit von einem oder mehreren Zeitservern zu erfragen und zusätzlich durch geschickte Umrechnungen die Verzögerung durch die Übertragungszeit auszugleichen. Siehe dazu Cristians Algorithmus, Berkeley-Algorithmus und das Network Time Protocol. Andere Möglichkeiten sind, das Signal eines Zeitzeichensenders (z. B. DCF77) auszuwerten oder die Uhr vom Benutzer manuell einstellen zu lassen.

### Alternative Schaltung

In einigen Geräten wird, um den Quarz und die Batterie einzusparen, als Zeitreferenz die Frequenz der Netzspannung genutzt. Sie wird zwischen Transformator und Gleichrichter kapazitiv entkoppelt und auf den Sekundentakt geteilt (/50 oder /60 je nach Netzfrequenz). Auch hier läuft die Uhr bei ausgeschaltetem Gerät zumeist nicht weiter. Ggf. werden Stromausfälle über einen ungenauen und driftenden RC-Oszillator überbrückt, sofern diese Teilschaltung implementiert ist.

## Anwendungen

Die häufigste und wohl bekannteste Anwendung ist der PC. Hier liegt die oben beschriebene Kombination aus Software-Uhr und Hardware-Uhr vor. Die ersten Heimcomputer in den 1980er Jahren hatten keine Echtzeituhr, sondern nur eine logische Uhr.
Weitere Anwendungen sind verschiedene elektronische Haushaltsgeräte wie beispielsweise Radiowecker, Mikrowellengerät, Steuereinheit einer Heizungsanlage.

## Weitere Eigenschaften der PC-internen Uhr

Bei PCs erfolgt die Batteriepufferung meist mit Knopfzelle in Form einer auswechselbaren Lithiumzelle (3 V) vom Typ CR2032 in einem Sockel auf der Hauptplatine. Bei älteren Hauptplatinen wurden für diesen Zweck Akkus bestehend aus drei Nickel-Cadmium-Zellen (3,6 V) eingesetzt. Je nach Einsatzzweck erfolgt auch die Versorgung aus einem Doppelschicht- bzw. Superkondensator.
Auf den gängigen Uhrenchips ist zusätzlich ein sogenanntes NVRAM untergebracht, das ebenfalls ständig von der Stromquelle gespeist („gepuffert“) wird. In PCs wird dieser NVRAM zum Erhalt der Systemfirmware-Grundeinstellungen (bei älteren Geräten BIOS-Einstellungen genannt und die Uhr daher auch BIOS-Uhr) benutzt. Eine Zeitlang wurde auch ein Uhrenbaustein mit integrierter Batterie verbaut („Dallas-Chip“), was den Austausch erschwerte bzw. unmöglich machte.
Sollte die Uhr bei ausgeschaltetem PC nicht weiter laufen oder gar auf die Vergangenheit zurückgestellt sein, so ist häufig die Batterie auf dem Mainboard leer. In einem Notebook tritt das erst dann auf, wenn auch der Akku entladen ist bzw. entnommen wird, da der Akku das NVRAM ebenfalls puffert. Gelegentlich ist im Notebook die BIOS-Batterie ebenfalls als Akku ausgeführt.
Ein Teil des Jahr-2000-Problems bei PCs rührte daher, dass der noch bei älteren Geräten eingesetzte Uhrenbaustein das Datum nicht selbständig auf das Jahrhundert umstellen konnte, was weder vom BIOS noch von MS-DOS oder Windows 98 automatisch korrigiert wurde.