Echtzeituhr
Eine Echtzeituhr (englisch real-time clock, RTC) oder physikalische Uhr ist eine Uhr, welche die physikalische Zeit misst. Der Begriff wird meistens in der Computertechnik bzw. Informatik benutzt, um eine Unterscheidung zu logischen Uhren zu treffen. In diesem Zusammenhang werden Hardware- und Software-Echtzeituhren unterschieden. Im engeren Sinne sind mit Echtzeituhr (Hardware-)Uhren gemeint, welche die Uhrzeit (wie in praktisch allen modernen PCs) auch beim Ausschalten des Geräts fortschreiben.
Inhaltsverzeichnis
Typen
Hardware-Uhr
Eine Hardware-Uhr ist ein Chip, der im Wesentlichen wie eine Quarzuhr einen Zähler und einen Uhrenquarz als Taktgeber enthält. Der Zähler wird bei jedem Takt des Frequenzgebers erhöht. Damit die Uhr nicht stehenbleibt, wenn das Gerät ausgeschaltet wird, wird der Chip ständig von einem Energiespeicher versorgt. Bei modernen PCs ist dies meist eine auswechselbare Lithiumzelle (3 V) vom Typ CR2032 in einem Sockel auf der Hauptplatine. Bei älteren Hauptplatinen wurden für diesen Zweck drei Nickel-Cadmium-Akkus in Reihenschaltung (3,6 V) eingesetzt.
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. Die dabei benötigten Schwingquarze werden als „Uhrenquarz“ in sehr großen Stückzahlen produziert und daher besonders preisgünstig angeboten. Außerdem sind CMOS-Schaltungen bei solch niedrigen Frequenzen besonders stromsparend, was für die Lebensdauer der Batterie bzw. der Akkuladung wichtig ist.
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.
Auf den gängigen Uhrenchips ist zusätzlich ein sogenanntes NVRAM untergebracht, des ebenfalls ständig von der Stromquelle gespeist („gepuffert“) wird. In PCs wird dieser NVRAM zum Erhalt der BIOS-Einstellungen benutzt. Eine Zeitlang wurde auch ein Uhrenbaustein mit integrierter Batterie verbaut („Dallas-Chip“), was den Austausch erschwerte bzw. unmöglich machte.
Software-Uhr
Bei einer Software-Uhr kommt nur das Taktsignal über eine Unterbrechungsanforderung (Interrupt Request) von der Hardware, der Zähler wird vom Betriebssystem (also der Software) geführt und in Datum/Uhrzeit umgerechnet.
Alternative Schaltung
In einigen Radioweckern und Mikrowellengeräten wird, um den Quarz 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). Stromausfälle werden über einen ungenauen und driftenden RC-Oszillator überbrückt, sofern diese Teilschaltung implementiert ist.
Verwendung
Die meisten Betriebssysteme führen zusätzlich zur meist eingebauten Hardware-Uhr auch eine Software-Uhr, die beim Booten mit der Hardware-Uhr oder auch fortlaufend mit einem Zeitserver abgeglichen wird.
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 mit der tatsächlichen Uhrzeit zu synchronisieren. Das verbreitetste Verfahren ist, 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.