Rtc что это такое
Rtc что это такое
генератор импульсов истинного времени
—
[Я.Н.Лугинский, М.С.Фези-Жилинская, Ю.С.Кабиров. Англо-русский словарь по электротехнике и электроэнергетике, Москва, 1999 г.]
Тематики
концентратор удаленных терминалов
—
[Е.С.Алексеев, А.А.Мячев. Англо-русский толковый словарь по системотехнике ЭВМ. Москва 1993]
Тематики
региональный центр подготовки
(напр. специалистов для АЭС)
[А.С.Гольдберг. Англо-русский энергетический словарь. 2006 г.]
Тематики
регулирование времени пребывания
(напр. тепловыделяющего элемента в активной зоне ядерного реактора, частиц угля в зоне горения топки котла и др.)
[А.С.Гольдберг. Англо-русский энергетический словарь. 2006 г.]
Тематики
устройство для отсчета текущего времени
внутренние часы
Прибор для отсчета текущего времени, являющийся частью конструкции СИ, используемый при применении методов измерений показателей КЭ, установленных в настоящем стандарте.
Примечание. Взаимосвязь между текущим временем СИ и временем «Национальной шкалы координированного времени Российской Федерации UTC (SU)» (см. 3.2) установлена в 4.6.
[ГОСТ Р 51317.4.30-2008 (МЭК 61000-4-30:2008)]
Real-Time Clock
RTC
local timekeeping device used for implementing certain methods in this standard.
NOTE The relationship between the real-time clock and UTC is defined in 4.6.
[IEC 61000-4-30, ed. 2.0 (2008-10)]
Horloge Temps Réel
RTC
système d’horloge locale utilise pour implémenter certaines méthodes dans cette norme
NOTE La relation entre l’horloge temps réel et le temps UTC est défini en 4.6
[IEC 61000-4-30, ed. 2.0 (2008-10)]
Тематики
Синонимы
часы реального времени
Микросхема, которая сообщает операционной системе отсчеты времени.
[http://www.morepc.ru/dict/]
Тематики
Полезное
Смотреть что такое «RTC» в других словарях:
RTC — Saltar a navegación, búsqueda RTC puede referirse a: Real Time Clock, es un reloj de ordenador. Red Telefónica Conmutada. Rádio e Televisão CaboVerdiana, ente público de radio y televisión de Cabo Verde. Dirección General de Radio, Televisión y… … Wikipedia Español
RTC — steht für: Radiotelevisão Caboverdiana, Öffentliche Rundfunk und Fernsehanstalt auf den Kapverdischen Inseln Rene Tondeur Co. Ltd., ein britischer Automobilhersteller (1921–1923) Rad Touristik Club (seit 1972). Der RTC Köln e.V. ist Mitbegründer… … Deutsch Wikipedia
RTC — is an initialism that may refer to: * Radiative transfer code, a numerical model of radiation in the atmosphere * Rail traffic controller, a person who oversees the movement of trains and controls railway signals * Rails to Trails Conservancy, a… … Wikipedia
RTC — Resolution Trust Corp. Short Dictionary of (mostly American) Legal Terms and Abbreviations … Law dictionary
RTC — [Abk. für Realtime Clock], Echtzeituhr … Universal-Lexikon
RTC — (Real Time Clock) clock (inside a computer) that shows the current time by the TIME command in DOS (continues running even when the computer is turned off) … English contemporary dictionary
RTC — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. Sigles d’une seule lettre Sigles de deux lettres > Sigles de trois lettres Sigles de quatre lettres … Wikipédia en Français
RTC — ● sg. m. ►COMM ● 1. réseau Téléphonique Commuté. PSTN ou PTSN en anglais. C est le réseau de téléphone que tout le monde connaît, mais la distinction est nécessaire du fait de l apparition des RNIS. Le RTC est peut être intra intelligent, mais… … Dictionnaire d’informatique francophone
RTC — Real Time Clock (Computing » General) Real Time Clock (Computing » Drivers) * Resolution Trust Corporation (Business » Firms) * Religious Technology Center (Community » Religion) * Road Traffic Collision (Governmental » Police) * Residential… … Abbreviations dictionary
RTC — rape treatment center; regional tuberculosis centre; renal tubular cell; residential treatment center; return to clinic; reverse thrust catheter … Medical dictionary
rtc — return to clinic … Medical dictionary
Для выполнения каких-либо задач, связанных с автоматизацией, часто нужно отсчитывать определенные временные промежутки. Иногда это делают с помощью отсчета определенного числа периодов тактового генератора или машинных циклов.
Однако хоть они и следуют с заданной частотой и чаще всего зависят от кварцевого резонатора, но при выполнении операций в режиме реального времени, а особенно если они привязаны к времени суток — происходит их смещение во времени. Чтобы решить эту проблему используют микросхемы часов реального времени или RTC.
Что это такое
RTC (real time clock, рус. часы реального времени) — это вид микросхем, предназначенных для отсчета времени в «реальных» единицах (секунды, минуты, часы и т.д.).
Они зависимы от источника питания, который может быть как внешним, в виде сменной батареи или литиевого аккумулятора, так и встроенным в корпус микросхемы (см. фото ниже). Тактовые сигналы для отчета времени могут быть получены с внешнего кварцевого резонатора, а реже — из питающей электросети.
Точность отсчета как раз и зависит от качества и точности настройки внутреннего генератора или внешнего кварцевого резонатора. При этом точность кварца и RTC соответственно, указывается не в герцах и не в процентах, а в «ppm», например ±12 ppm, ±50 ppm. Это расшифровывается, как Parts Per Million, т. е. количество миллионных частей от какой-то средней величины.
Часы реального времени могут быть реализованы на базе микроконтроллеров, однако, использование специальных чипов позволяет снизить энергопотребление, поскольку большинство микроконтроллеров даже в спящем режиме (или режиме пониженного энергопотребления) потребляют больше энергии чем специальные интегральные микросхемы (ИМС). RTC могут быть и встроенными в сам микроконтроллер (как в STM32).
Именно благодаря часам реального времени на вашем компьютере не сбивается время и дата после его отключения от сети, в этом случае они работают от батарейки CR2032, установленной в разъёме на материнской плате, она же и питает микросхему BIOS, чтобы не сбивались выставленные в нем настройки.
Классификация
Классификация микросхем RTC может отличаться от производителя к производителю. Наиболее распространены часы реального времени таких производителей, как: Maxim Integrated и STMicroelectronics. На рынке есть микросхемы и других компаний:
Intersil Corporation (д.к. Renesas Electronics);
Cymbet (линейка EnerChip™ RTC, отличительная особенность — встроенная твердотельная батарея);
NXP (RTC с календарем, с поддержкой протоколов I2C или SPI)
Компания Maxim Integrated в качестве основного критерия для классификации микросхем RTC использует тип интерфейса управления, а именно:
1. Микросхемы RTC с последовательным интерфейсом управления: I2C, 3-wire, SPI.
2. С параллельным интерфейсом управления:
с мультиплексированной шиной «адрес/данные»;
с разделенными шинами адреса и данных;
с однопроводным интерфейсом 1-wire.
Можно классифицировать и по формату представления данных:
Календарный. В виде шаблона YY-MM-DD для даты и HH-MM-SS для времени время и другие их форматы;
Бинарный. В виде непрерывного двоичного счетчика единиц времени (секунд или их долей).
В зависимости от назначения микросхемы в схеме устройства и выбирается её тип, если ИМС с календарным представлением — она будет выполнять функцию обычных часов, а в случае с бинарным — для таких применений, как отчеты периодов времени, например срока действии лицензии, гарантийного срока или в устройства для учета чего-либо (например, электросчетчиках), например в каталоге Maxim Integrated они называются «Elapsed Time Counter» — счетчик прошедшего времени, пример такой ИМС — DS1683.
В других случаях микросхемы часов реального времени могут классифицироваться по функционалу или другим характеристикам:
Наличие встроенного генератора или необходимо использовать внешний генератор (кварцевый).
По наличию встроенного источника питания или возможности использования внешней батареи.
По типу и объёму внутренней памяти и протоколам связи с «внешним» миром (описывались выше).
По наличию фантомного (phantom) интерфейса для доступа к внутренним регистрам микросхемы (для настройки, установки режимов или считыванию значений).
Другие функции: сторожевой таймер (watchdog), будильника (alarm), секундный выход, контроль питания, возможность зарядки внешней батареи и пр.
И, наконец, многие производители классифицируют свои устройства по уровню энергопотребления, в среднем потребляемый ток лежит в пределах от 200 до 1500 нА, но может и выходить из этого диапазона в зависимости от конкретной ИМС и производителя.
Применение в радиолюбительской практике
Часы реального времени нередко используются в паре с такими популярными платформами для разработки и прототипирования, как семейство Arduino, и при разработке устройств на любых других микроконтроллерах, а также микрокомпьютерах семейства Raspberry Pi и подобные.
Сегодня промышленность выпускает модули с RTC, в виде отдельной печатной платы или шилда. Преимущество такого вида модулей состоит в том, что нет необходимости разводить плату и распаивать микросхему, обвязку, держатель батареи питания и прочее.
В среде ардуинщиков и современных самодельщиков наибольшее распространение получили микросхемы часов реального времени компании Maxim Integrated и модули на их базу, а именно:
Их отличия приведены в таблице ниже.
Как видите, все из них поддерживают связь с микроконтроллером по шине I2C, а DS1302 и по SPI, хотя в даташите сказано «простой 3-проводной последовательный интерфейс, подходящий для большинства микроконтроллеров». И может подключаться не только к 10-13 пинам Ардуино, на которых назначены выводы шишны SPI, но и к други, установленным в скетче, схемы будут ниже. Даташиты на эти ИМС со всеми техническими данными прилагаем к статье.
Даташиты на микросхемы реального времени:
Arduino UNO поддерживает оба этих протокола, что вы можете увидеть на схеме ниже (помечено фиолетовым и серым цветом для SPI и I2C соответственно).
Как и Raspberry pi.
Это значит, что вы можете использовать любой из этих модулей с каждой из платформ. Внешние отличия модулей вы можете видеть на иллюстрации ниже, но компоновка платы может отличаться, смотрите на маркировку ИМС.
Для того чтобы Arduino работала с RTC нужна библиотека, но так как её нет в стандартном пакете Arduino IDE, её нужно скачать. В сети есть библиотеки для каждой из рассмотренных ИМС, а есть и универсальные, что выбрать, и какая будет удобнее решать уже вам.
include // Подключаем библиотеку
iarduino_RTC time(RTC_DS3231); // Создаём объект time, для ИМС DS3231
iarduino_RTC time(RTC_DS1307); // ДЛЯ DS1307
iarduino_RTC time(RTC_DS1302, RST, CLK, DAT); // для DS1302.
// Вместо RST, CLK и DAT номера пинов ардуино,
// к которым подключены соответствующие пины модуля часов
Схема для DS1302, еще раз напомним, что выводы могут быть другими:
А вот линия данных DS1307 и DS3231 подключается только к пинам A5 и A4 Arduino UNO (для других ревизий и версий платы смотрите распиновку).
Заключение
Часы реального времени позволяют делать проекты, в которых какие-либо процессы должны запускаться по расписанию. Почти в любом относительно сложном проекте для практического использования есть такая потребность неважно это автоматическая система полива растений или же система управления технологическими процессами на производстве.
Благодаря дешевизне деталей и простоте подключения и программирования сейчас подобные системы может реализовать каждый, даже не имея углубленных знаний в электронике и микроконтроллерах. Но это не значит, что раз есть ардуино с присущей ей простотой, то не нужно изучать программную и аппаратную часть. Наоборот, знание железа и структуры кода позволит делать более быстрые и сложные программы, которые при этом занимают меньше места.
Часы реального времени или RTC: как работает это оборудование
Любой поклонник электроники или компьютеров знает, что компьютеры, которые мы используем каждый день, оснащены часы реального времени и что благодаря аккумулятору, встроенному в материнскую плату, часы всегда идут вовремя, даже когда компьютер отключен от сети. ручей. Но вы когда-нибудь задумывались Как это работает и особенно, каково использование ПК с этими внутренними часами?
У внутренних часов реального времени ПК есть утилита, которая выходит далеко за рамки показа времени на панели задач, и это означает, что, как мы буквально объясним ниже, ПК не мог бы работать без них. Почему? Мы сразу же подробно объясним вам это, но в качестве предварительного просмотра мы скажем вам, что без этих часов процессор ПК не знал бы, когда он должен выполнять вычисления.
Что такое часы реального времени или RTC и для чего они нужны?
RTC можно найти как в компьютерах (настольных и портативных), так и в интегрированных системах, серверах и любых электронных компонентах, имеющих процессор, поскольку для этих элементов требуется точный хронометр для их работы, как мы вскоре объясним. Очень важно иметь возможность продолжать работать, даже когда компьютер выключен или если батарея разряжена, поэтому обычно они носят с собой батарея в формате CR1220 или CR2032 что гарантирует автономную работу на долгие годы.
ИС RTC регулируют время с помощью кварцевого генератора, поэтому они не зависят от тактовых сигналов, как большинство аппаратных часов (например, ЦП, который зависит от этих часов реального времени). Помимо функции синхронизации системы и ее часов, часы реального времени гарантирует, что все процессы в системе правильно синхронизированы, что важно для работы ЦП. Хотя некоторые могут возразить, что это работа внутренних системных часов, на самом деле это зависит от часов реального времени.
Преимущества использования RTC на ПК:
Как работает RTC на ПК?
Некоторые RTC имеют встроенную температурную компенсацию, которая может расширить и повысить точность кварцевого генератора. Кристаллы также стареют, и это меняет их физическую природу, так что со временем они теряют точность. Типичные недорогие кристаллы, используемые в аппаратном обеспечении ПК, имеют допуск по частоте +/- 20 ppm (частей на миллион). Это означает, что кристалл с такой погрешностью может дрейфовать до 72 мс в час или 1.7 секунды в день, поэтому иногда потребуется калибровка.
Процессор, подключенный к RTC, получает обновленное системное время и постоянно записывает это новое значение в RTC, чтобы избежать этих отклонений, то есть CPU постоянно калибрует RTC чтобы всегда быть точным.
Виртуальное время. Часть 1: источники времени в компьютере
Человек, имеющий одни часы, твердо знает, который час. Человек, имеющий несколько часов, ни в чём не уверен.
Закон Сегала
Требования на источники времени
Конечно же, достаточный набор свойств источника зависит от способа использования в программах. Например, одно устройство может предоставлять низкое разрешение и высокую длительность считывания, но при этом быть энергонезависимым и очень стабильным, а другое позволять измерять очень короткие промежутки времени, но при этом быстро переполняться, да ещё и не быть синхронизированным ни с чем больше.
Обзор таймеров в архитектуре PC
Источников времени в системе может быть несколько. Прикладные программы редко обращаются к каким-либо из них напрямую. Вместо этого используются всевозможные API, предлагаемые использованным языком программирования (например, C++11 < chrono >), средой исполнения (например, gettimeofday из POSIX или QueryPerformanceCounter на MS Windows), или даже системными вызовами используемой операционной системы.
Самой ОС также необходимо знать время и уметь отмерять его отрезки для планирования работы пользовательских потоков, учёта потреблённых ими ресурсов, профилировки производительности, управления энергопотреблением и т.п. При этом сама ОС работает напрямую с интерфейсами, предоставляемыми аппаратурой. Так как таймеров присутствует много, современные ОС умеют выбирать один «центрально» используемый в начале загрузки, исходя из своих представлений о «качестве» обнаруженных устройств (например, на некоторых системах часть таймеров может быть занесена в «чёрный список» из-за известных проблем в работе) или же настроек пользователя (параметр clocksource у ядра Linux и опции useplatformclock, tscsyncpolicy, disabledynamictick у BCDEDIT в Windows).
Опишу наиболее часто встречаемые устройства, являющиеся часами и таймерами в PC.
Общераспространённые
Часы реального времени (Real Time Clock, RTC) — источник текущей даты и времени для нужд ОС. Типичное разрешение этого таймера — одна секунда. Все системы, удовлетворяющие стандарту ACPI, имеют чип RTC, совместимый с Motorola MC146818, присутствовавшем в оригинальном IBM PC/AT с 1984 года. В современных системах RTC обычно интегрирован в набор системной логики южного моста на материнской плате (что означает довольно большую задержку при чтении). Энергонезависимость этого таймера обеспечивается специальной батарейкой. Принципы программирования RTC вызывают ностальгию по BCD-числам и проблеме Y2K.
Programmable Interval Timer (PIT) 8253 или 8254 от Intel — стандартный счётчик и таймер, имеющийся в PC с самого начала существования этой платформы (1981 год). Как и RTC, изначально был отдельной микросхемой, а ныне является частью системной логики. Довольно интересное устройство, содержащее три таймера (хотя последние два всегда были зарезервированы под задачи обновления ОЗУ и работу PC-спикера соответственно) и позволяющее запрограммировать их в различные режимы: периодические прерывания, однократное (one-shot) прерывание по таймауту, меандр и т.д.
Первый канал PIT до сих пор может использоваться ОС как источник прерываний для работы вытесняющего планировщика задач. Однако по современным меркам он не очень удобен в работе: низкая частота осциллятора 1193181,8 Гц (странное значение — это историческое наследие от частоты развёртки NTSC), ширина счётчика всего 16 бит (частое переполнение) при ширине регистров статуса и команд всего в восемь бит (т.е. приходится передавать или читать значение по частям), да и доступ к регистрам через медленный и негибкий механизм PIO (команды IN/OUT процессора).
Local APIC (advanced programmable interrupt controller), встроенный во все современные процессоры Intel (начиная с архитектуры P54C) и который в своём составе имеет ещё и таймер. Более того, каждый логический процессор имеет свой собственный LAPIC, что может быть удобно для выполнения работы, локальной для текущего ядра, без необходимости управления ресурсами. Однако, данное устройство не имеет фиксированной известной частоты; последняя скорее привязана к частоте ядра. Поэтому перед использованием программе необходимо её вычислить (калибровать), а для этого нужно дополнительное референсное устройство. Режимы, поддерживаемые LAPIC: однократное прерывание, периодические прерывание, и период, определяемый TSC.
Таймер в составе ACPI, почему-то называемый Performance Monitoring Timer (PMTIMER) — ещё одно устройство, которое поддерживается всеми системами, реализующими стандарт ACPI, с 1996 года. Данный таймер имеет частоту 3.579545 МГц, ширина регистра-счётчика может быть 24 или 32 бита. Сам таймер всегда активен при включенном питании системы и не зависит от режима работы центрального процессора.
High Precision Event Timer (HPET) — устройство, созданное как замена устаревшему PIT. Согласно стандарту, HPET должен содержать осциллятор, работающий с фиксированной частотой по крайней мере в 10 МГц, величину которой можно программно прочитать из его статусного регистра, и монотонно увеличивающий значение счётчик шириной в 64 бита. Также он должен содержать минимум три компаратора шириной в 32 или 64 бита, которые и используются для генерации прерываний по истечении запрограммированных периодов времени. Как и PIT, он способен работать в периодическом режиме или в режиме однократного прерывания. При этом метод его программирования (MMIO вместо PIO) удобнее и быстрее, чем у PIT, что вместе с повышенным разрешением, позволяет задавать интервалы более точно и с меньшей задержкой. Требуемая стабильность генератора равна 0,05% для интервалов длиннее 1 мс и 0,2% для промежутков короче 100 мкс; много это или мало — зависит от приложений.
Несмотря на то, что HPET уже давно присутствует в PC (с 2005 года), операционные системы не торопятся начать его использовать. Частично это вызвано не самым удобным способом задания интервалов с помощью возрастающего счётчика вместо убывающего — из-за немгновенности операций существует риск «не успеть» и задать событие в прошлом. Зачастую ОС используют таймер из APIC или PMTIMER, или же функциональность TSC, использующую такты процессора в качестве источника времени.
Трудная судьба инструкции RDTSC
История TSC достаточно интересна и поучительна, чтобы остановиться на ней подольше.
Сама идея очень прозрачная — использовать в качестве источника времени сам процессор, а точнее его тактовый генератор. Текущий номер такта сохраняется в регистре TSC (timestamp counter).
С помощью TSC можно как узнавать время от начала работы, так и замерять интервалы времени с помощью двух чтений. TSC также работает как будильник в связке с APIC в режиме TSC deadline.
Что ж, TSC — вполне естественная штука с простой логикой и простым сценарием использования, которая должна обладать многими полезными свойствами: высокое разрешение (один такт ЦПУ), низкая задержка при чтении (десятки тактов), редкие переполнения (64-битного счётчика должно хватать минимум на 10 лет), монотонность чтений (ведь счётчик всегда увеличивает своё значение), равномерность (процессор всегда работает), согласованность с другими таймерами (при старте системы можно выставить нужное значение записью в MSR).
Разве что-то могло пойти не так? На пути к успешному использованию TSC в качестве основного средства измерения времени в PC встала последующая эволюция процессоров. Новые возможности, появившиеся в процессорах после Pentium, «испортили» RDTSC и много лет мешали использовать её как основной таймер в популярных ОС. Так, в 2006 году один из Linux-разработчиков Ingo Molnar писал:
Мы наблюдали, что в течение 10 лет ни одной реализации gettimeofday, основанной на TSC и работающей в общем случае, не было написано (а я написал первую версию для Pentium, так что и я в этом повинен), и что лучше мы обойдёмся без неё.
We just observed that in the past 10 years no generally working TSC-based gettimeofday was written (and i wrote the first version of it for the Pentium, so the blame is on me too), and that we might be better off without it.
Отмечу, что со временем в архитектуру IA-32 вносились коррективы, устранявшие проявившиеся недостатки, и в настоящий момент TSC может (пока опять не сломали) быть использован в том качестве, в котором он задумывался.
Прочие устройства
Выше я описал наиболее часто распространённые и используемые устройства по определению времени. Конечно же, конкретные системы могут иметь дополнительные устройства, уникальные для процессора, интегрированной логики или даже в форме специализированных периферийных устройств (например, сверхточные атомные часы). Степень их доступности из программ зависит от того, существует ли драйвер для конкретного устройства в выбранной ОС. Так, пробежавшись по исходникам Linux, я нашёл как минимум ещё два поддерживаемых источника времени для сборок x86: устройство NatSemi SCx200 в системах AMD Geode, и Cyclone для систем IBM x440. К сожалению, в Интернете не очень много документации по ним.
Заключение
Я надеюсь, что из этой заметки стало понятно, что работа со временем внутри компьютера на системном уровне на самом деле далека от тривиальной. Требования к устройствам, поставляющим время, зависят от решаемой задачи, и не всегда легко найти полностью подходящий вариант. При этом сами устройства зачастую содержат «архитектурные особенности», способные сломать голову несчастному программисту.
Однако это всё архитектурная присказка к симуляционной сказке. На самом деле мне хотелось рассказать о том, как можно моделировать весь этот зоопарк устройств. В следующей статье я опишу, как проявляется капризная природа времени при создании виртуальных окружений — симуляторов и мониторов виртуальных машин. Спасибо за внимание!