Un reloj de tiempo real ( RTC ) es un dispositivo electrónico (normalmente en forma de circuito integrado ) que mide el paso del tiempo.
Aunque el término a menudo se refiere a dispositivos en computadoras personales , servidores y sistemas integrados , los RTC están presentes en casi cualquier dispositivo electrónico que necesite mantener la hora exacta del día .
El término reloj en tiempo real se utiliza para evitar confusiones con los relojes de hardware ordinarios que son sólo señales que gobiernan la electrónica digital y no cuentan el tiempo en unidades humanas. RTC no debe confundirse con la informática en tiempo real , que comparte su acrónimo de tres letras pero no se relaciona directamente con la hora del día.
Aunque se puede controlar el tiempo sin un RTC, [1] usarlo tiene beneficios:
Un receptor GPS puede acortar su tiempo de inicio comparando la hora actual, según su RTC, con la hora en la que tuvo una señal válida por última vez. [3] Si han pasado menos de unas pocas horas, entonces las efemérides anteriores todavía se pueden utilizar.
Algunas placas base se fabrican sin RTC. Se puede omitir el RTC por deseo de ahorrar dinero o reducir posibles fuentes de fallas de hardware.
Los RTC suelen tener una fuente de energía alternativa, por lo que pueden seguir manteniendo el tiempo mientras la fuente de energía principal está apagada o no está disponible. Esta fuente alternativa de energía es normalmente una batería de litio en los sistemas más antiguos, pero algunos sistemas más nuevos usan un supercondensador , [4] [5] porque son recargables y se pueden soldar . La fuente de alimentación alternativa también puede suministrar energía a la RAM respaldada por batería . [6]
La mayoría de los RTC utilizan un oscilador de cristal , [7] [8] pero algunos tienen la opción de utilizar la frecuencia de la línea eléctrica . [9] La frecuencia del cristal suele ser de 32,768 kHz, [7] la misma frecuencia utilizada en los relojes de cuarzo . Al ser exactamente de 2 a 15 ciclos por segundo, es una velocidad conveniente para usar con circuitos contadores binarios simples. La baja frecuencia ahorra energía y se mantiene por encima del rango de audición humana . El diapasón de cuarzo de estos cristales no cambia mucho de tamaño con la temperatura, por lo que la temperatura no cambia mucho su frecuencia.
Algunos RTC utilizan un resonador micromecánico en el chip de silicio del RTC. Esto reduce el tamaño y el costo de un RTC al reducir su número de piezas. Los resonadores micromecánicos son mucho más sensibles a la temperatura que los resonadores de cuarzo. Entonces, estos compensan los cambios de temperatura mediante un termómetro electrónico y una lógica electrónica. [10]
Las especificaciones típicas de precisión de RTC de cristal son de ±100 a ±20 partes por millón (8,6 a 1,7 segundos por día), pero hay disponibles circuitos integrados de RTC con temperatura compensada con una precisión de menos de 5 partes por millón. [11] [12] En términos prácticos, esto es lo suficientemente bueno para realizar la navegación celeste , la tarea clásica de un cronómetro . En 2011, estuvieron disponibles relojes atómicos a escala de chip . Aunque son mucho más caros y consumen mucha energía (120 mW frente a <1 μW), mantienen el tiempo dentro de las 50 partes por billón (5 × 10-11 ) . [13]
Muchos fabricantes de circuitos integrados fabrican RTC, incluidos Epson , Intersil , IDT , Maxim , NXP Semiconductors , Texas Instruments , STMicroelectronics y Ricoh . Un RTC común utilizado en computadoras de placa única es el Maxim Integrated DS1307.
El RTC fue introducido en PC compatibles por IBM PC/AT en 1984, que utilizaba un RTC Motorola MC146818. [14] [15] Más tarde, Dallas Semiconductor fabricó RTC compatibles, que a menudo se usaban en computadoras personales más antiguas y se encuentran fácilmente en las placas base debido a su distintiva tapa de batería negra y su logotipo serigrafiado . Para el PC RTC está disponible una interfaz CMOS estándar. [dieciséis]
En los sistemas informáticos más nuevos, el RTC está integrado en el chip Southbridge . [17] [18]
Algunos microcontroladores tienen incorporado un reloj en tiempo real, generalmente solo los que tienen muchas otras características y periféricos .
Algunas computadoras modernas reciben información del reloj por radio digital y la utilizan para promover estándares horarios. Hay dos métodos comunes: la mayoría de los protocolos de telefonía móvil (por ejemplo, LTE ) proporcionan directamente la hora local actual. Si hay una radio por Internet disponible, una computadora puede usar el protocolo de hora de la red . Los ordenadores utilizados como servidores de hora local utilizan ocasionalmente GPS [19] o transmisiones de radio de frecuencia ultrabaja transmitidas por una organización nacional de normalización (es decir, un radioreloj [20] ).
El siguiente sistema es bien conocido por los programadores de sistemas integrados , quienes a veces deben construir RTC en sistemas que carecen de ellos. La mayoría de las computadoras tienen uno o más temporizadores de hardware que utilizan señales de sincronización de cristales de cuarzo o resonadores cerámicos . Estos tienen una sincronización absoluta inexacta (más de 100 partes por millón) que, sin embargo, es muy repetible (a menudo menos de 1 ppm). El software puede hacer los cálculos para convertirlos en RTC precisos. El temporizador de hardware puede producir una interrupción periódica, por ejemplo, 50 Hz , para imitar un RTC histórico (ver más abajo). Sin embargo, utiliza matemáticas para ajustar la cadena de distribución con precisión:
tiempo = tiempo + tasa.
Cuando la variable "tiempo" excede una constante, generalmente una potencia de dos, el tiempo nominal calculado del reloj (por ejemplo, 1/50 de segundo) se resta del "tiempo" y se invoca el software de la cadena de sincronización del reloj para contar fracciones de segundos, segundos, etc. Con variables de 32 bits para tiempo y velocidad, la resolución matemática de "velocidad" puede exceder una parte por mil millones. El reloj sigue siendo preciso porque ocasionalmente se salta una fracción de segundo o se incrementa en dos fracciones. El pequeño salto (" jitter ") es imperceptible para casi todos los usos reales de un RTC.
La complejidad de este sistema es determinar el valor instantáneo corregido de la variable "tasa". El sistema más simple rastrea el tiempo RTC y el tiempo de referencia entre dos configuraciones del reloj y divide el tiempo de referencia por el tiempo RTC para encontrar la "tasa". La hora de Internet suele tener una precisión de menos de 20 milisegundos, por lo que 8000 o más segundos (2,2 horas o más) de separación entre configuraciones generalmente pueden dividir los cuarenta milisegundos (o menos) de error en menos de 5 partes por millón para obtener una precisión similar a un cronómetro. exactitud. La principal complejidad de este sistema es convertir fechas y horas en segundos, pero los métodos son bien conocidos. [21]
Si el RTC funciona cuando una unidad está apagada, normalmente funcionará a dos velocidades, una cuando la unidad está encendida y otra cuando está apagada. Esto se debe a que la temperatura y el voltaje de la fuente de alimentación en cada estado son consistentes. Para ajustarse a estos estados, el software calcula dos tasas. Primero, el software registra la hora RTC, la hora de referencia, los segundos de encendido y apagado para los dos intervalos entre las últimas tres veces que se configura el reloj. Con esto, puede medir la precisión de los dos intervalos, y cada intervalo tiene una distribución diferente de segundos de encendido y apagado. La matemática de tasas resuelve dos ecuaciones lineales para calcular dos tasas, una para encendido y otra para apagado.
Otro enfoque mide la temperatura del oscilador con un termómetro electrónico (por ejemplo, un termistor y un convertidor analógico a digital ) y utiliza un polinomio para calcular la "velocidad" aproximadamente una vez por minuto. Estos requieren una calibración que mida la frecuencia a varias temperaturas y luego una regresión lineal para encontrar la ecuación de temperatura. Los cristales de cuarzo más comunes en un sistema son los cristales cortados SC y sus tasas de variación de temperatura se pueden caracterizar con un polinomio de tercer grado. Entonces, para calibrarlos, se mide la frecuencia a cuatro temperaturas. Los cristales de estilo diapasón comunes que se usan en relojes y muchos componentes RTC tienen ecuaciones de temperatura parabólicas (segundo grado) y se pueden calibrar con solo 3 mediciones. Los osciladores MEMS varían, desde polinomios de tercer grado a quinto grado, dependiendo de su diseño mecánico, por lo que necesitan de cuatro a seis mediciones de calibración. Algo como este enfoque podría usarse en circuitos integrados RTC comerciales, pero los métodos reales de fabricación eficiente de alta velocidad son propietarios.
Algunos diseños de computadoras , como los IBM System/360 más pequeños , [22] PDP-8 [23] y Novas, utilizaban un reloj en tiempo real que era preciso, simple y de bajo costo. En Europa, América del Norte y algunas otras redes, la frecuencia de la red eléctrica de CA se ajusta a la precisión de frecuencia a largo plazo de los estándares nacionales. En esas redes, los relojes que funcionan con corriente alterna pueden mantener la hora perfecta sin necesidad de ajustes. Estos relojes no son prácticos en ordenadores portátiles o en redes (por ejemplo, en el sur de Asia) que no regulan la frecuencia de la red eléctrica de CA.
Las fuentes de alimentación de estas computadoras utilizan un transformador o un divisor de resistencia para producir una onda sinusoidal con voltajes lógicos. Esta señal está condicionada por un detector de cruce por cero, ya sea mediante un amplificador lineal , o un disparador Schmitt . El resultado es una onda cuadrada con flancos únicos y rápidos en la frecuencia de la red. Esta señal lógica desencadena una interrupción. El software de manejo de interrupciones generalmente cuenta ciclos, segundos, etc. De esta manera, puede proporcionar un reloj y un calendario completos. En IBM 360, la interrupción actualiza un recuento de microsegundos de 64 bits utilizado por el software de sistemas estandarizados. El error de fluctuación del reloj es la mitad si el reloj se interrumpe en cada cruce por cero, en lugar de en cada ciclo.
El reloj también solía constituir la base de las cadenas de sincronización del software de las computadoras; por ejemplo, normalmente era el temporizador utilizado para cambiar de tarea en un sistema operativo. Los temporizadores de conteo utilizados en las computadoras modernas brindan características similares con menor precisión y pueden atribuir sus requisitos a este tipo de reloj. (Por ejemplo, en el PDP-8, el reloj de red, modelo DK8EA, fue el primero, y luego fue seguido por un reloj de cristal, DK8EC.)
Se debe configurar un reloj basado en software cada vez que se enciende la computadora. Originalmente esto lo hacían operadores de computadoras. Cuando Internet se volvió algo común, se utilizaron protocolos horarios de red para configurar automáticamente relojes de este tipo.