УДК 004.414.2:681.518.3
Г. П. Мартынов, А. Ю. Грицаенко, Э. В. Донченко, Н. Б. Молошникова
СИНХРОНИЗАЦИЯ ГЕОФИЗИЧЕСКОЙ АППАРАТУРЫ НА МИКРОПРОЦЕССОРАХ С МИКРОСЕКУНДНОЙ ТОЧНОСТЬЮ
В работе рассматриваются методы синхронизации во времени устройств на микропроцессорах. Предложен программно-аппаратный способ синхронизации микропроцессоров STM32, реализованный в комплексе встроенного программного обеспечения микросейсмических регистраторов.
Ключевые слова: синхронизация измерений по времени, GPS, сейсмические станции, микропроцессорная техника.
Введение. Источником тактовых импульсов для большинства 32-разрядных микроконтроллеров (МК) являются два функциональных блока: генератор опорной частоты и встроенный умножитель частоты с функцией фазовой автоподстройки. Первый блок - это внутренний или внешний генератор с определёнными параметрами. Второй блок - это встроенный формирователь многофазной последовательности импульсов непосредственного тактирования ядра центрального процессора, разнообразной периферии МК и его межмодульных магистралей [1].
Различные модификации внутреннего блока генератора МК позволяют выбирать внешний относительно низкочастотный пассивный времязадающий элемент: кварцевый или керамический резонатор, или RC-цепь. К внешним активным генераторам относятся, например, управляемые напряжением кварцевые генераторы или МЭМС-генераторы (генераторы с микроэлектромеханической системой).
Все перечисленные источники опорной частоты не являются абсолютно стабильными для работы в распределённых системах,
нуждающихся в высокоточной синхронизации автономных устройств на протяжении длительных интервалов времени. К подобным системам относятся современные микросейсмические регистраторы [2], для работы которых требуется поддержание точного времени в автономном режиме на протяжении многих часов или суток.
Поэтому актуальной является задача разработки программно-аппаратного способа синхронизации множества однотипных устройств на МК, в частности синхронизация работы микросейсмических регистраторов данных.
Методы синхронизации устройств на МК. Одним из наиболее известных методов синхронизации микропроцессоров является использование общего внешнего тактового генератора или генератора периодических синхроимпульсов. Подобный метод широко применяется в системах, допускающих соединение устройств посредствам проводной сети. Очевидным недостатком данного метода является необходимость прокладки между устройствами кабельных линий и ограничение длины последних из-за искажения формы тактовых импульсов [3].
Другая известная группа методов синхронизации - это сетевые протоколы точного времени - Network Time Protocol (NTP) и Precision Time Protocol (PTP), которые де-факто являются наиболее используемыми стандартами сетевой синхронизации по проводным и беспроводным каналам передачи данных [4]. Реализовав в устройствах эти протоколы можно получить микросекундную точность синхронизации, а расширенный стандарт PTP направлен на достижение субмикросекундной точности. И хотя обсуждению приложений данных протоколов посвящено много литературы, основным ограничением их применения для синхронизации работы микросейсмических регистраторов является необходимость организации всех устройств в сеть с топологией «ведущий-ведомый». В этом случае в конструктиве ведущего устройства предусматривается высокоточный источник времени. Тогда наихудшая точность синхронизации PTP будет коррелировать с точностью выполнения всех сетевых операций.
Поэтому есть несколько основных ограничений, которые влияют на практически достигаемую точность синхронизации часов по протоколу PTP:
а) это первичный метод отсчёта времени;
б) реализация алгоритма корректировки часов отдельного подчинённого устройства;
в) задержки в каналах связи при пакетной передаче данных. Всё это делает затруднительным использование подобных сетевых протоколов для синхронизации микросейсмических регистраторов.
Ещё одна группа сетевых методов синхронизации устройств в распределённых системах сбора данных основана на работе с низкочастотными аппаратными таймерами МК. Преимущество подобного подхода в том, что в устройствах не требуется высокоточный кварцевый генератор. Например, программный алгоритм синхронизации, описанный в [5], устойчив к дрейфу локальных генераторов, топологиям сети и потерям пакетов данных, а также имеет низкие накладные вычислительные расходы. Алгоритм основан на делении каждым устройством времени на блоки, которые называются сетевыми кадрами. Каждый узел передает только один раз в каждом кадре. В предлагаемом методе устройства используют временные метки для измерения смещений между аппаратными таймерами соседей. В течение каждого кадра эти разницы усредняются и используются для корректировки синхронизации так, чтобы она сходилась к локальному среднему. Аналогичный итерационный подход использован в [6] в приложении к динамически масштабируемым сетям устройств сбора данных.
Проблема использования такого подхода в том, что при автономной работе устройств без постоянной внешней коррекции в аппаратных таймерах быстро накапливаются ошибки, что неминуемо приводит к сильному рассогласованию при длительном отсутствии пакетов синхронизации.
В работах [7] и [8] рассматриваются методы синхронизации, основанные на использовании в устройствах недорогих GPS приёмников с выходом PPS (Pulse Per Second) сигнала 1 раз в секунду. При этом утверждается, что GPS-синхронизация локальных часов и таймеров МК может быть организована тремя способами:
а) постоянная коррекция локальной погрешности отсчёта времени МК с приходом каждого импульса PPS;
б) периодическая синхронизация основного задающего тактового генератора МК выравниванием фронта импульса с фронтом PPS-сигнала, т.е. использование генератора, управляемого напряжением;
в) коррекция накапливающейся погрешности отсчёта времени локальным таймером между двумя последовательными импульсами PPS.
Для осуществления такой низкоуровневой синхронизации микросейсмических регистраторов наиболее оптимальным является последний метод коррекции, когда минимизируется накапливающаяся погрешность за счёт измерения запаздывания или опережения таймера МК, т.е. постоянно вычисляется ошибка рассогласования локального таймера с PPS сигналом.
Базовый принцип низкоуровневой синхронизации при работе с аппаратными таймерами МК. Рассмотрим базовую блок-схему алгоритма синхронизации локальных устройств с PPS сигналом, основанную сугубо на цифровой обработке посред-ствам внутренних ресурсов МК (рис. 1а). В устройстве использован 32-разрядный микроконтроллер. На рисунке условно показано наличие нескольких измерительных каналов с внешними ана-логово-цифровыми преобразователями (АЦП), которые подключаются к МК через независимые шины SPI (последовательный периферийный интерфейс).
Все АЦП управляются одним и тем же сигналом начала преобразования, генерируемым тем или иным способом в МК. Синхронизация каждого устройства во времени выполняется с использованием сигнала PPS, поступающего на вход МК, и какого-либо внутреннего модуля таймера, выполняющего роль управляемого тактового генератора. Этот таймер генерирует синхронизированный с PPS тактовый сигнал частотой 1 кГц, который используется для старта процедуры преобразования в каждом АЦП одновременно.
а)
б)
Рис. 1 - Упрощённая структурная схема устройства с синхронизацией по фронту PPS-сигнала (а) и алгоритм, компенсирующий ошибку рассогласования таймера МК с
сигналом PPS (б)
Обобщённая блок-схема модуля синхронизированного генератора показана на рис. 1б. Выходной сигнал таймера частотой
1 кГц, синхронизированный с импульсами PPS, создаётся с помощью вспомогательного 32-битного регистра. На каждой итерации (по приходу сигнала PPS), регистр увеличивается или уменьшается на предварительно рассчитанное значение приращения. Счетчик подсчитывает количество полных периодов сигнала 1 кГц между каждым фронтом PPS сигнала, а значение вспомогательного регистра во время нарастающего фронта PPS используется для вычисления ошибки, суммируемой со значением текущего приращения. Для стабилизации такого контура обратной связи значение приращения вспомогательного регистра постоянно фильтруется фильтром нижних частот.
Практическая реализация алгоритма синхронизации микросейсмических регистраторов на МК STM32. Реализуем задачу как можно точнее синхронизировать какой-либо таймер МК STM32 с PPS сигналом, чтобы фронт каждого импульса запуска АЦП был максимально точно выровнен с передним фронтом импульса PPS при частоте ядра микроконтроллера в 25 МГц. При частоте дискретизации АЦП микросейсмических регистраторов равной 200 Гц период подачи сигнала на запуск преобразования АЦП равен 5 мс. Если в STM32 за запуск АЦП отвечает таймер TIM1 и этот таймер настроен на вызов прерывания каждые 5 мс и тактируется непосредственно частотой работы ядра МК 25 МГц, а в обработчике прерывания этого таймера просто подаётся импульс на запуск АЦП, то между прерываниями TIM1 должно проходить 125 000 тактов (5 мс).
Для связи с PPS сигналом используем таймер TIM2. По переднему фронту сигнала PPS настраивается внешнее прерывание, в котором считывается, сколько тактов насчитал TIM2 за прошедшую секунду, а счётчик таймера обнуляется. Зная эту величину, вычисляется реальная частота работы ядра. Если реальная рабочая частота МК оказалась равной 24,93 МГц, то это значит, что между прерываниями TIM1 проходит 124 650 тактов. Ошибка, связанная с разницей частот составит ER = (125 000-124 650) = 350 тактов.
Эта ошибка может оказаться не целой, а может быть и отрицательной. На величину ошибки влияют:
а) начальная точность выбранного кварцевого резонатора;
б) стабильность частоты системы тактирования МК;
в) возможные программные задержки при вызове обработчиков прерываний.
В течение времени, пока приходит сигнал PPS, на каждом внешнем прерывании с помощью TIM2 вычисляется ошибка и накапливаются значения в большом кольцевом буфере. В пределах небольшого интервала времени значения ошибки не будут сильно отличаться. Условимся таким интервалом считать 1 минуту, за это время будет собрано 60 значений ER. Возьмём их среднее и назовём эту величину ER1. За следующую минуту таким же образом посчитаем ER2 и т.д. При этом каждый раз в буфере будем сдвигать средние значения влево, ER(n-1) = ER(n). Синхронизация таймера TIM1 с PPS, т.е. выравнивание по фазе с импульсом PPS каждого 200 прерывания таймера, происходит при каждом вычислении ошибки ER(n) путём принудительной коррекции счётчика таймера посредствам предварительно отфильтрованной величиной ошибки для стабилизации петли обратной связи.
На рисунке 2 показана блок-схема алгоритма синхронизации TIM1 с сигналом PPS.
Результаты реализации алгоритма. Для проверки работы предложенного алгоритма синхронизации использовалась плата на микроконтроллере STM32F407 в составе микросейсмического регистратора с GPS модулем VK2808G5LF. Тактовая частота работы микроконтроллера была установлена равной 64 МГц. Использованный с МК на плате кварцевый резонатор НС-49/S c первоначальной точностью настройки +/-30 ppm и частотой 8 Мгц не был термоскопенсирован.
Ниже на рисунке 3 показаны осциллограммы импульсов запуска АЦП, сгенерированные таймером TIM1. На первом рисунке случай отсутствия синхронизации таймера с импульсами PPS. Второй и третий рисунки - это результат работы предложенного алгоритма синхронизации через минуту после потери импульса PPS и через 10 минут соответственно. Видно, что средняя величина рассинхронизации увеличилась со 100 нс до 350 нс. Тогда ожидаемая накопленная ошибка рассинхронизации с PPS сигна-
лом каждого 200 импульса запуска АЦП через 1 час составляет < 1,5 мкс.
Рис. 2 - Блок-схема практической реализации алгоритма синхронизации таймера Т1М1 в МК 8ТМ32
Так как начальная точность кварцевого резонатора и его уход частоты, вызванный температурными колебаниями в процессе измерения, влияют на точность измерения каждого интервала времени, то при расчёте среднего значения времени рассин-хронизации нужно использовать данные как минимум 100 измерений, выполненных с периодом в 1 минуту.
PPS
Выхо, ц TIM1
200 нс/деле жие
а)
-4—(—4—I —I—■»■—■■— --+- 4—1— —i—i——i —i—1—— -ч—t-t— I-4--4- 4—1 Ы—4—4 - -4-4—4— — 4—4—1— —1-4-4' 1 -4-I-4-]
■■
Л"—
PPS
—п-
л-
Выхо, д TIM1 1
20 нс/деле >ние
б)
i i i —i—t—i— -i— ■ -4—1—t Ч 1— 1—4-4- —1-1-4—1 ■4—i -t— -4—4-4- -4—1—l-H 1 1 1 1 -1-4- 4- —i—i—i—i
■■
/ V____
PPS
1
Г
Выхо, д TIM1 1
■■ 50 нс/дел< !ние
в)
Рис. 3 - Отсутствие синхронизации с PPS сигналом (а), результат работы алгоритма синхронизации спустя минуту после потери PPS сигнала (б) и спустя 10 минут (в)
Подсчёт реального времени рассинхронизации tn по истечении n минут проводится с учётом девиации ошибки «базовой частоты», т.е. ошибки нестабильности кварцевого резонатора:
К =
( PPS=n 1
s
V 0 KMUL ' füSC ' fPWM 0
где KMUL - коэффициент умножения модуля ФАПЧ МК,
füSC - реально измеренная начальная частота кварцевого резонатора,
fPWM - частота на выходе генератора TIM1 (запуск АЦП).
Можно предложить как минимум два способа повышения точности синхронизации без применения дорогого высокостабильного внешнего тактового генератора для МК.
В случае использования обычного кварцевого резонатора один из способов - это увеличить частоту работы микроконтроллера (ядра и таймеров) в N раз путём перенастройки внутренней ФАПЧ системы тактирования МК. Второй способ - это увеличить длину 32-битного вспомогательного регистра. В обоих случаях прирост точности синхронизации линеен, и, таким образом, можно уменьшить ошибку синхронизации ниже 1 мкс.
Выводы. В работе рассмотрены основные способы синхронизации устройств на микропроцессорах, как наиболее оптимальной выделена синхронизация с помощью сигнала PPS современных GPS-приёмников.
Предложен алгоритм синхронизации на основе вычисления средней ошибки рассогласования и коррекции счётчика выделенного таймера микроконтроллера.
Работа выполнена в рамках научной темы FRSR-2023-0007 «Разработка геолого-геофизической модели формирования аномальных скоплений метана на угольных шахтах в зонах динамического влияния разломов».
ЛИТЕРАТУРА
1. Русанов, В. В. Микропроцессорные устройства и системы: Учебное пособие для вузов. / В. В. Русанов, М. Ю. Шевелёв.
rp m
- Томск: Томский государственный университет систем управления и радиоэлектроники, 2012. - 184 с.
2. Туманов, В. В. Регистратор микросейсм / В. В. Туманов, Г. П. Мартынов, Н. Б. Молошникова, И. В. Деговцов, И. Э. Горбунов, А. А. Сафин // Труды РАНИМИ: сб. науч. тр. -Донецк, 2023. - № 20-21 (35-36). - С. 27-32.
3. Собко, А. А. Способ синхронизации группы разнотипных микроконтроллеров с управлением временем синхронной работы / А. А. Собко, А. В. Осинцев, М. Е. Комнатнов, Т. Р. Газизов // Журнал «Системы управления, связи и безопасности». - Санкт-Петербург, 2019. - № 3. - С. 51-63.
4. Kexin Yuan, Xuebing Guo, Jianying Tian. Research and Implementation of Clock Synchronization Technology Based on PTP. Journal of Physics: Conference Series, 2021, vol. 1757 no 1, Pp 1-7.
5. Boyle J., Reeve J., Weddell A. DiStiNCT: Synchronizing nodes with imprecise timers in distributed wireless sensor networks. IEEE Transactions on Industrial Informatics, 2017, vol. 13, no. 3, Pp. 938-946.
6. Fanrong Shi, Xianguo Tuo, Lili Ran, Zhenwen Ren, Simon X. Yang E. Fast Convergence Time Synchronization in Wireless Sensor Networks Based on Average Consensus. IEEE Transactions on Industrial Informatics, 2020, vol. 16, no. 2, Pp 1-10.
7. David Pallier, Vincent Le Cam, Sebastien Pillement. Energy-effcient GPS synchronization for wireless nodes. IEEE Sensors Journal, 2021, vol. 21 (4), Pp. 5221 - 5229.
8. Бурдинский, Н. Н. Использование OEM GPS-модулей в системах временной синхронизации / И. Н. Бурдинский, Ф. В. Безручко, А. С. Миронов // Журнал «Вестник ТОГУ. Информатика, вычислительная техника и управление». - 2010. -№ 4 (19). - С.33-40.
Мартынов Геннадий Павлович, старший научный сотрудник отдела эколо-го-геофизических исследований РАНИМИ, Россия, ДНР, Донецк, oemi@list.ru.
Грицаенко Антон Юрьевич, научный сотрудник отдела эколого-геофизических исследований, Россия, ДНР, Донецк, anthony.yuriev@ya.ru.
Донченко Элла Валентиновна, научный сотрудник отдела эколого-геофизических исследований, Россия, ДНР, Донецк, ranimi@ranimi.org.
Молошникова Наталья Борисовна, младший научный сотрудник отдела эколого-геофизических исследований, Россия, ДНР, Донецк, ranimi@ranimi.org.
SYNCHRONIZATION OF GEOPHYSICAL EQUIPMENT ON MICROPROCESSORS WITH MICROSECOND ACCURACY
The paper considers methods of synchronization in time for microprocessor devices. A hardware-software method for synchronizing STM32 microprocessors is also proposed that implemented in embedded software complex of microseis-mic recorders.
Keyword: synchronization of measurements in time, GPS, seismic stations, microprocessor technology.
Martynov Gennadiy Pavlovich, Researcher of the Department of Ecological and Geophysical Research, Russia, DPR, Donetsk, oemi@list.ru.
Gritsaenko Anton Yurievich, Researcher of the Department of Ecological and Geophysical Research, Russia, DPR, Donetsk, anthony.yuriev@ya.ru.
Donchenko Ella Valentinovna, Researcher of the Department of Ecological and Geophysical Research, RANIMI, Russia, DPR, Donetsk, ranimi@ranimi.org.
Moloshnikova Natalya Borisovna, Junior researcher scientist of the Department of Ecological and Geophysical Research, Russia, DPR, Donetsk, ranimi@ranimi.org.