Синхронизация времени ГНСС приемниками. B-код.
Всем известно, что ГНСС приемники имеют функционал получения точного времени и могут предоставлять информацию о точном времени. В этой статье мы продолжаем рассматривать различные формы интерфейсов для вывода временной информации ГНСС приемниками. В настоящее время, наиболее используемые формы интерфейсов для вывода временной информации следующие:
- PPS+TOD
- B-код
- Сетевая синхронизация NTP
- Сетевая синхронизация PTP
В предыдущей статье мы познакомились с наиболее простым интерфейсом PPS+TOD. В этот раз мы перейдем к рассмотрению другого интерфейса выдачи временной информации: B-код.
Недостатки PPS+TOD
Метод PPS+TOD требует выдачи аппаратурой приемника синхроимпульса PPS, извещающего о наступлении новой секунды, а по последовательному порту выдачи информации о времени дня. Временная информация передается по двум аппаратным интерфейсам и двум независимым каналам. Для получения корректной и полной временной информации принимающей стороне необходимо принять и PPS и данные TOD по последовательному порту в одно и то же время.
В условиях присутствия электромагнитной интерференции, линейного шума, и пр., если в канале PPS появляются всплески или сбои, либо информация о времени дня (TOD) по последовательному порту утеряна или случились битовые ошибки, синхронизация времени закончится неудачей, и принимающая сторона не сможет получить текущее время.
Кроме того, при работе в режиме PPS+TOD, передача временной информации требует использования двух аппаратных интерфейсов. При передаче большего числа каналов требуется добавление большего числа аппаратных интерфейсов. Например, в следующем сценарии, где источник синхронизации обеспечивает передачу временной информации на восемь устройств. Используя метод PPS+TOD, необходимо задействовать восемь интерфейсов PPS и восемь асинхронных последовательных портов.
Передача PPS требует двух линий (PPS и земля GND), соответственно используются два кабеля; передача TOD требует двух линий (TXD и GND), используются также два кабеля. Суммируя, источник синхронизации потребует подключения 16+16=32 внешних кабеля. Если PPS и TOD передаются по дифференциальному интерфейсу RS422, потребуется больше кабелей.
Особенности и преимущества B-кода
Возможно ли объединить синхроимпульс PPS и информацию TOD в одном канале для передачи временной информации, и обойтись только двумя кабелями при этом (Data и GND)?
Естественно, мы подумали об использовании кадров данных для представления определенного времени, и установке специального флага в начале кадра данных. Этот специальный флаг представляет момент целой секунды PPS. Не будет ли этот подход решением задачи по объединенной передаче момента и временной информации?
На этом принципе и основан B-код.
Формат B-кода
Код IRIG-B (DC) использует импульс TTL с модуляцией для передачи временной информации, и использует импульсы (элементы кода) различной длительности для представления двоичных данных (0/1) и идентификаторы позиций (P-коды). Ниже приводим детальное описание формата кода:
• Период одного кадра данных – 1 секунда, содержит 100 кодов символов, каждый символ занимает (длится) 10 мс.
• В срезе времени 10 мс импульс длительностью (временем высокого уровня) 2 мс представляет "0" и называется кодом символа 0:
Рис. 1. Код 0.
• В срезе времени 10 мс импульс длительностью (временем высокого уровня) 5 мс что представляет "1" и называется кодом символа 1:
Рис. 2. Код 1.
• В срезе времени 10 мс импульс длительностью (временем высокого уровня) 8 мс является идентификатором позиции, представляет собой начало кадра данных и начало поля временной информации, и называется кодом символа P.
Рис. 3. Код 2.
• Метка начала кадра данных:
Два последовательно идущих символа P представляют начало кадра. Восходящий фронт второго символа P (Pr) представляет целую секунду, то есть, момент PPS, который служит как "точная точка отсчета"
Рис. 4. Заголовок кадра.
Содержимое кадра данных после заголовка сформировано в формате кода BCD, и содержит следующую информацию:
• Время: год, день, час, минута, секунда;
• Извещение о корректировочной секунде, ее знак;
• Смещение между временем B-кода и временем UTC;
• Идентификатор статуса работы.
Более детальную информацию можно получить в описании протокола IRIG-B и соответствующей литературе.
Итак:
• Восходящий фронт второго символа P-кода (Pr) представляет момент PPS.
• Содержимое кадра данных представляет временную информацию.
Сигнал B-кода реализует передачу временных импульсов и информацию о времени посредством аппаратного интерфейса. Для одновременной передачи временной информации на восемь устройств вам потребуется всего 8 каналов (и 16 кабелей). Что более важно, импульсы времени и информация о времени передаются совместно, а это понижает вероятность ошибки.
Применение B-кода
Генератор B-кода B-код это интерфейс для передачи времени, он не формирует абсолютное время. Время, передаваемое в B-коде, формируется ГНСС приемником. Ниже представлена внутренняя структура генератора B-кода:
Рис. 5. Генератор В-кода.
ГНСС приемник передает PPS и TOD. После получения этой информации, генератор B-кода формирует специальную метку начала кадра, своего рода контрольная последовательность символов (два символа P, восходящий фронт Pr второго из них представляет момент выдачи PPS) в момент PPS в соответствии с форматом кадра данных, и затем формирует соответствующий код времени согласно формату кадра данных B-кода для времени из полученной и обработанной информации TOD, и подставляет ее в сегмент данных кадра B-кода.
Демодулятор B-кода
Будучи интерфейсом и протоколом для передачи временной информации, B-код не может быть использован принимающей стороной напрямую сразу при получении. Необходимо преобразовать кадр B-кода, по заголовку кадра определить контрольный символ и получить PPS сигнал по второму символу P и наконец получить временную информацию (TOD) из сегмента данных кадра.
Рис. 6. Демодулятор В-кода.
Соединив ГНСС приемник и генератор B-кода вместе, получим таймер B-кода:
Рис. 7. Таймер В-кода.
Точность B-кода
Сам по себе B-код не формирует время, поэтому для оценки производительности генератора B-кода используют точность синхронизации. Точность синхронизации представляет собой задержку между временем выдачи B-кода (код «точной точки отсчета» и времени) и временем выдачи ГНСС приемником PPS+TOD.
В случае с таймером B-кода, так как применяется встроенный ГНСС приемник, для оценки производительности можно использовать точность определения времени. Точность определения времени есть смещение между временем выдачи B-кода (код «точной точки отсчета» и времени) и стандартным временем. Это смещение включает точность определения времени собственно ГНСС приемником, равно как и точность синхронизации B-кода.
Два типа B-кода: DC и AC
Существуют два типа B-кода, один тип для постоянного тока (DC) и второй тип для переменного тока (AC).
B-код типа DC передается посредством уровней TTL или по дифференциальному интерфейсу RS-422. Точность синхронизации B-кода типа DC составляет порядка 100 нс.
B-код типа AC используется для передачи на дальние расстояния. B-код типа AC формируется амплитудной модуляцией (AM) B-кода типа DC синусоидальной волной частотой 1 кГц. Точность синхронизации B-кода типа AC обычно составляет около 10 мкс.
Делитель B-кода
В таких областях применения как электроэнергетика, коммуникации, оборудование для специальных задач, и т.п., часто требуется передавать время от источника времени на несколько устройств для обеспечения синхронизации времени на каждом устройстве. Для этих целей используется делитель (сплиттер) B-кода.
Рис. 8. Делитель В-кода.
Это схематичная диаграмма 8-канального делителя B-кода. Когда сигнал B-кода проходит через делитель, он делится на 8 выходных каналов, при этом важным моментом является обеспечение постоянства задержки по каждому каналу.
Разница в межканальной задержке B-кода типа DC не должна выходить за рамки диапазона в ±5 нс. Разница в межканальной задержке B-кода типа AC не должна выходить за рамки диапазона в ±20 нс.
Для обеспечения постоянства необходимо учитывать флуктуации задержек, вызываемые разницей в сигнальных трактах (таких как разводка печатной платы, сопротивление интерфейса) и влияние электромагнитной интерференции (EMI). При необходимости для поддержания стабильности задержки могут быть применены технологии цифровой компенсации и динамической подстройки задержки по каждому каналу.
Применение тайминговых модулей B-кода
В настоящий момент область временной синхронизации относительно зрелая. При разработке таймингового оборудования B-кода, если размер и интерфейс позволяют, для системной интеграции можно выбрать имеющиеся на рынке платы генераторов B-кода, платы приемников B-кода и платы делителей B-кода. Нет особой необходимости применения ПЛИС для самостоятельной генерации или демодуляции сигналов B-кода.
Однако, все еще следует понимать основные принципы формата кадров данных B-кода и метод его модуляции. При системных ограничениях и недоступности подходящих под технические требования проектов плат и модулей может потребоваться самостоятельно разрабатывать и проектировать оборудование для временной синхронизации B-кода.
Испытания системы синхронизации времени
Наиболее критическим аспектом систем синхронизации времени является надежность. B-код наиболее часто применяется в таких областях как электроэнергетика, коммуникации, сектор специальных задач, а также промышленная автоматизация, где требуется соблюдать очень высокие требования к надежности систем времени.
С точки зрения функциональности и основного принципа, B-код относительно прост, но создать удачный и надежный модуль B-кода нелегко. Действительные сложности кроятся в следующем:
• Необходимо гарантировать корректность выводимых данных в различных нештатных ситуациях.
• При долговременной продолжительной работе, что может занимать месяцы и даже годы, система должна оставаться надежно стабильной и безошибочной.
Источник: Блог «Коммуникации и Навигация» (通信与导航), 05.05.2025. Перевод и адаптация: ООО «ГНСС плюс», 2025.