Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Промышленные технологии

Внутреннее устройство реальных часов микроконтроллеров (RTC): дизайн, точность и безопасность

Часть 3 серии таймеров микроконтроллеров: Внутри Real-Time Clocks (RTC)

В этом выпуске мы погружаемся в сердце микроконтроллерных реальных часов (RTC). Предыдущие посты охватывали основы таймеров и широтно-импульсную модуляцию. Эта статья объясняет, как RTC поддерживают точные интервалы в одну секунду, управляют временем и датой, компенсируют дрейф и защищают от подделок.

Что делает RTC

RTC — это выделенное оборудование, генерирующее стабильный тик в одну секунду и поддерживающее непрерывный счётчик. Простая временная диаграмма показывает генератор тиков, программную рутину, читающую секундный счётчик, и аларм, срабатывающий через три секунды. Ключевые требования — точность и непрерывная работа.

Внутреннее устройство реальных часов микроконтроллеров (RTC): дизайн, точность и безопасность

Рисунок 1. Базовая временная диаграмма RTC

Типичные аппаратные особенности

Современные микроконтроллерные RTC обычно включают:

Внутреннее устройство реальных часов микроконтроллеров (RTC): дизайн, точность и безопасность

Рисунок 2. Общие аппаратные особенности RTC

Точность и компенсация частоты

Сердце RTC — его кварц 32 768 Гц. В хорошо спроектированном генераторе сам кварц является главным источником ошибки. Внешние TCXO могут давать суб-ppm стабильность, в то время как внутренние генераторы могут быть скомпенсированы для достижения сравнимой производительности.

Типичные источники ошибки включают:

График ниже, любезно предоставленный Texas Instruments, иллюстрирует, как температура и начальная ошибка комбинируются, и как тщательная калибровка может привести общую ошибку в жёлтую зону — достижимую цель после измерения на уровне платы.

Внутреннее устройство реальных часов микроконтроллеров (RTC): дизайн, точность и безопасность

Рисунок 3. Ошибка против температуры (Texas Instruments)

С точностью 1 ppm за год часы отклоняются примерно на 30 секунд — намного лучше большинства хоббийных проектов, но всё ещё стоит учитывать в миссионно-критичных системах.

Компенсация ошибок тайминга

Существует две распространённые стратегии исправления малого дрейфа без жертвы простотой оборудования:

Настраиваемый предделитель. Если RTC предоставляет программируемый предделитель, ПО может корректировать модуль каждые несколько секунд. Например, часы, бегущие на 0.00010 с быстро, могут изменить предделитель с 32 768 на 32 781 раз в четвёртую секунду, добавляя недостающие 0.00010 с каждый раз.

Внутреннее устройство реальных часов микроконтроллеров (RTC): дизайн, точность и безопасность

Рисунок 4. Корректировка предделителя для борьбы с дрейфом

Преимущества: тонкая коррекция и минимальный код. Недостаток: требует настраиваемого предделителя и дополнительных регистров.

Программная коррекция. Когда оборудование не имеет программируемого предделителя, прошивка может вести накопленный счётчик секунд. Когда накопленная ошибка достигает одной секунды, она добавляет или вычитает тик. Коррекция видна только раз за цикл, что может ощущаться как резкий скачок.

Внутреннее устройство реальных часов микроконтроллеров (RTC): дизайн, точность и безопасность

Рисунок 5. Программная коррекция тайминга

Преимущество: работает с любым RTC. Недостаток: заметные скачки частоты тиков.

Вопросы безопасности

В приложениях, где время привязано к биллингу, лимитам использования или критической последовательности, защита RTC от взлома обязательна. Многие микроконтроллеры предоставляют:

Например, MCU, используемый в этой статье, имеет бит блокировки, который, будучи установленным, не может быть сброшен до перезагрузки чипа, предотвращая изменение часов вредоносным кодом.

Управление временем и датой

Некоторые RTC интегрируют полные счётчики времени суток и календаря. Если оборудование их не имеет, прошивка может выводить дату из 32-битного секундного счётчика, используя стандартные алгоритмы. Стандартная библиотека C time.h ожидает функцию, возвращающую секунды с эпохи (обычно 1 янв 1970). Простая обёртка get_time(), читающая счётчик RTC, кормит библиотеку, которая затем обрабатывает високосные годы, летнее время и форматирование.

Ограничения 32-битных секундных счётчиков

32-битный счётчик переполнится после 2³² секунд — чуть более 136 лет. Однако, когда эпоха начинается в 1970 году, счётчик перевернётся в 2038 году (проблема Y2038). Системы, полагающиеся на библиотеку C, могут столкнуться с неопределённым поведением, когда счётчик достигнет 2³¹ – 1.

Миссия NASA Deep Impact потеряла связь в 2013 году после того, как 32-битный таймер, отслеживавший время в 0.1-секундных инкрементах, переполнился, потенциально повредив команды управления.

«Хотя точная причина потери неизвестна, анализ выявил потенциальную проблему с временными метками компьютера, которая могла привести к потере управления ориентацией Deep Impact».

— NASA News Release, 2013

Проектировщики должны использовать счётчики, комфортно превышающие ожидаемую жизнь системы, или реализовать обработку переполнения в прошивке.

Дальнейшие шаги

Финальная статья этой серии охватит сторожевые таймеры (watchdog timers), сеть безопасности, поддерживающую микроконтроллер живым даже при зависании ПО.

Промышленные технологии

  1. Трансформация управления облаком в стратегическую IT-практику
  2. Заряд и разряд конденсатора: Практический эксперимент с RC-цепью
  3. Расчет напряжения и тока в реактивных DC цепях
  4. Раскрытие промышленного роста: как IoT движет новой промышленной революцией
  5. Когда обновлять рабочее оборудование: умные бизнес-решения
  6. Семь ключевых драйверов ускорения цифровой трансформации
  7. Внедряйте высокопроизводительную обработку: повысьте скорость, точность и ROI
  8. Робот в реальном времени обнаруживает 3D-изменения и повышает безопасность солдата через AR
  9. Продвинутый авиационный сенсор обеспечивает обнаружение льда в реальном времени и мониторинг скорости таян…
  10. OPC Unified Architecture: достижение реального времени Enterprise Interoperability