Контроллеры привязки измеряемых параметров к единому времени

В статье рассматривается опыт разработки аппаратно-программного комплекса сервера единого времени на базе процессорного модуля FASTWEL CPC30401/LNX. Описываются назначение, структурная схема, принципы работы изделия, особенности функционирования процессорного модуля.

417
В ЗАКЛАДКИ

Описание решаемой задачи

Открытое акционерное общество «Научно-инженерный центр электротехнического университета» (ОАО «НИЦ ЭТУ»), входящее в научно-производственную корпорацию «Системы прецизионного приборостроения», на протяжении более чем 20 лет занимается разработкой и производством аппаратно-программных комплексов сбора и обработки измерительной информации для различных применений.

Одной из актуальных задач, возникающих в распределённых измерительных и управляющих системах, является синхронизация времени между узлами вычислительной сети и точная привязка результатов измерений к единому времени. Особую значимость эта задача получает в ракетно-космической отрасли, где производится слежение за орбитальными объектами. Высокие скорости этих объектов приводят к значительной ошибке определения их координат при нарушении точной привязки к единой шкале времени. Так, для объекта, движущегося с первой космической скоростью, ошибка определения времени в 1 мс равнозначна ошибке определения координаты в 7,9 м.

В интересах Российского космического агентства и Войск воздушно-космической обороны нами были разработаны и изготавливаются аппаратно-программный комплекс (АПК) сервера единого времени и построенные на его основе модульные системы привязки параметров к единому времени.

АПК сервера единого времени предназначен для совместной работы с внешним источником синхронизации времени. Таким источником может являться, например, атомный эталон частоты системы единого времени (СЕВ), формирующий минутные метки декретного московского времени, или аппаратура потребителя космической навигационной системы ГЛОНАСС/GPS. К этому единому источнику синхронизации привязывается компьютерное время в локальной вычислительной сети и измерения, выполняемые внешними датчиками.

Функции изделия

АПК получает на вход опорные метки времени от источника синхронизации. Эти метки времени используются для привязки и коррекции хода внутреннего термостатированного кварцевого генератора, входящего в состав АПК. На вход изделия поступают также результаты измерений в известном протоколе по одному из интерфейсов, поддерживаемых сменными интерфейсными модулями (например, с интерфейсами CAN, RS-422, RS-232). Эти результаты измерений привязываются изделием к текущему времени и в таком виде рассылаются потребителям.

Поскольку существует задержка между фактическим выполнением измерения и получением измеренных данных нашим аппаратно-программным комплексом, необходимо предпринимать определённые действия для компенсации этой задержки с целью более точной временно'й привязки результата измерений. Простейшим способом является расчёт или измерение временно'го интервала передачи информации между датчиком и регистром привязки АПК и последующий вычет этого интервала из получаемых значений времени. Данный способ, однако, имеет значительную методическую погрешность (обычно порядка 10–100 мкс) в связи с асинхронным характером цифровых протоколов передачи информации от датчика к аппаратуре привязки.

Для увеличения точности привязки используется метод синхронного выполнения измерений. В этом случае датчик сам независимо тактируется сигналом единого времени. Таким образом датчик может фиксировать измерение, например, в начале каждой целой миллисекунды СЕВ. Задачей АПК при этом является идентификация номера периода сигнала СЕВ (в примере – номера миллисекунды), фазовая задержка измерения внутри которого предопределена свойствами датчика. Такой метод позволяет достичь в существующем комплексе оборудования погрешности привязки измерений до 1 мкс.

АПК имеет на выходе интерфейс Ethernet, позволяющий потребителям в локальной сети получать привязанные ко времени измерения и пакеты с метками времени в собственном протоколе с использованием пакетов UDP в сети TCP/IP, а также синхронизировать с изделием машинные часы остальных компьютеров, используя стандартный протокол NTP, который штатно поддерживается всеми современными операционными системами общего назначения.

Изделие настраивается с удалённого компьютера при помощи специальной программы конфигурирования, позволяющей задать используемые сетевые адреса, списки получателей информации, режимы работы, даты наступления дополнительных секунд координации (leap seconds) и пр.

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

Реализация

Аппаратная часть изделия

Внешний вид изделия показан на рис. 1, чертежи передней и задней панелей представлены соответственно на рис. 2 и 3, а структурная электрическая схема приведена на рис. 4.






В качестве основы для построения сервера был выбран процессорный модуль CPC30401/LNX, относящийся к использующейся во многих наших изделиях продуктовой линейке отечественной фирмы FASTWEL.

Процессорный модуль построен в виде одноплатного компьютера форм-фактора PC/104-Plus на базе x86 сов­местимого процессора AMD Geode LX800. Модуль оснащён двумя сетевыми интерфейсами Fast Ethernet, четырьмя последовательными портами, позволяющими работать в режиме RS-232 или RS-422, двумя портами USB 2.0, 8 линиями программируемого дискретного ввода-вывода, встроенным флэш-диском на 128 Мбайт и интерфейсом CompactFlash. К модулю могут также подключаться монитор, клавиатура, мышь, внешний жёсткий диск, имеются порты LPT и аудио. Диапазон рабочих температур составляет –40…+85°C. В модуле используется пассивное охлаждение, отсутствуют движущиеся части. В варианте исполнения LNX он работает под управлением операционной системы Linux для встраиваемых систем, основанной на дистрибутиве Debian 6.0 (Squeeze) и ядре 2.6.30-gentoo-r6.

Низкоуровневые функции управления электрическими сигналами и привязки событий к работе кварцевого генератора и опорных сигналов СЕВ реализованы на микроконтроллере семейства PIC32.

Системное и инструментальное программное обеспечение

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

На диске важнейшими в работе файлами в нашем случае являются следующие:

  • /base/changes.mo – главная корневая файловая система (изменяемые файлы и каталоги);
  • /base/rootfs.mo – главная корневая файловая система (неизменяемые файлы);
  • bzImage – сжатый образ ядра (с разархиватором внутри);
  • initrd.gz – временная корневая файловая система;
  • syslinux.cfg – конфигурационный файл утилиты-загрузчика Syslinux.

В дистрибутив введена специальная команда fwsave, при которой происходит архивация каталогов /etc, /home, /lib/rc, /opt, /root, /var в файл changes.mo. Это позволяет сохранять настройки и пользовательские данные из файловой системы на RAM-диске в файле на CompactFlash. После перезагрузки все эти настройки и данные будут доступны автоматически.

Для полноценной поддержки дистрибутивом оборудования производитель предлагает обновить версии файлов bzImage (ядра) и initrd.gz (временной файловой системы) с адреса на своём сервере ftp://ftp.prosoft.ru/pub/Hardware/Fastwel/CPx/CPC304/Software/Drivers/ Linux-2.6/image/tmp. Данный дистрибутив, настроенный, снабжённый необходимыми утилитами и с установленной управляющей программой используется нами как штатный.

Кроме того, для удобства разработки программ производителем был предложен дополнительный дистрибутив Linux, предусматривающий развёртывание корневой файловой системы на любом подходящем диске – NAND Flash, CompactFlash или на другом IDE-уст­ройстве, а также имеющий в своём составе полезную возможность обновления и скачивания пакетов из репозиториев Debian – инструментов dpkg, apt-get и apt-cache. C официального сайта Debian (http://www.debian.org/distrib/packages) можно скачать нужные пакеты для Debian Squeeze и установить их. Данный дополнительный дистрибутив (cpc304_linux_v100.tar.bz2) доступен по адресу: ftp://ftp.prosoft.ru/pub/Hardware/Fastwel/CPx/CPC304/Software/Drivers/ Linux-2.6/test. Этот дистрибутив развёрнут на отдельном диске CompactFlash для использования при разработке программы, для скачивания необходимых пакетов и для создания в конечном итоге требуемых файлов changes.mo, rootfs.mo штатного диска. Сами по себе эти файлы представляют собой архивы формата squashfs – сжимающей файловой системы, предоставляющей доступ к данным в режиме только для чтения, что необходимо для встраиваемых систем.

Для удобства работы нами была произведена русификация обоих дистрибутивов. В дистрибутив, предназначенный для разработки, была установлена поддержка удалённого управления файлами по протоколу SSH (точнее, его расширению SFTP), что позволило писать код на персональном компьютере с установленной средой разработки Eclipse, а проводить компиляцию, сборку и тестирование кода непосредственно на процессорном модуле CPC30401/ LNX. Естественно, в этот же дистрибутив были установлены пакеты средств разработки программного кода.

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

Принципы работы изделия и достигнутые значения основных технических характеристик

Основой для хранения единого времени в отсутствие сигналов СЕВ является термостатированный кварцевый генератор с номинальной частотой 10,000000 МГц, нестабильностью частоты от температуры ±1•10–10, долговременной нестабильностью частоты за сутки ±0,5•10–9, долговременной нестабильностью частоты за первый год ±50•10–9 и с возможностью точной подстройки частоты управляющим напряжением.

На основе частоты, вырабатываемой термостатированным кварцевым генератором, в изделии ведётся наносекундный счётчик времени, имеющий цену младшего разряда 1 нс, разрядность 64 бита и в текущей реализации обеспечивающий разрешающую способность 200 нс (то есть инкрементируемый каждые 200 нс частотой кварцевого генератора). Этот счётчик хранит привязанное к СЕВ время суток, исчисляемое от полуночи, и обеспечивает в ходе штатной эксплуатации изделия погрешность привязки к СЕВ не хуже 1 мкс в случае устойчивого поступления меток СЕВ и не хуже 10 мкс в случае отдельных некритических сбоев поступления меток.

В базовом модуле имеются часы реального времени с нормированной погрешностью и возможностью коррекции хода. Батарейная поддержка осуществляется с помощью литиевого элемента CR2032. Начальная установка часов реального времени производится при помощи программы конфигурирования.

Интерфейс программы конфигурирования (версия для операционной системы Mac OS X) приведён на рис. 5.


Процессорный модуль CPC30401/ LNX взаимодействует с микроконтроллером через последовательный интерфейс RS-422. От микроконтроллера в процессорный модуль поступают следующие команды и данные:

  • команда на синхронизацию часов операционной системы модуля с наносекундным счётчиком времени микроконтроллера (поступает каждую секунду, учёт задержки на передачу по последовательному интерфейсу проводит программа микроконтроллера, в соответствии с этой командой часы операционной системы постоянно корректируются);

  • команда на выставление времени в часах операционной системы модуля (микроконтроллер посылает её, опираясь на факт появления минутной метки СЕВ и показания своих энергонезависимых батарейных часов);

  • данные наносекундного счётчика о времени суток (они рассылаются по адресам рассылки на рабочие станции в собственном протоколе);

  • данные от датчиков вместе со временем их измерения (они также рассылаются по своим адресам рассылки в собственном протоколе).

От процессорного модуля в микроконтроллер поступают следующие команды:

  • команда выставления времени в батарейных часах микроконтроллера (посылается при получении данных о времени от оператора, использующего программу конфигурирования, выполняющуюся на рабочей станции);

  • команда на ввод данных о добавлении корректировочной секунды в определённый день (также посылается при получении этих данных от оператора).

Наиболее точная привязка ко времени возможна при наличии на входе сигнала минутной метки СЕВ, имеющего передний фронт, начало и конец которого соответствуют наступлению каждой минуты СЕВ с погрешностью не хуже 0,5 мкс. При этих условиях АПК обеспечивает ведение наносекундного счётчика времени, инкрементируемого каждые 200 нс и привязанного к опорному времени СЕВ с погрешностью в любой момент не хуже 1 мкс.

Изделие после первоначальной привязки к СЕВ допускает отсутствие до 9 минутных меток СЕВ подряд. При этом диагностируется отсутствие сигнала СЕВ «1 мин» гашением соответствующего светодиода, однако погрешность привязки наносекундного счётчика времени к опорному времени СЕВ остаётся не хуже 10 мкс. После отсутствия 10 минутных меток СЕВ подряд или в случае сдвига фронта метки СЕВ на величину более 10 мкс от момента истечения кратного минуте интервала после фронта предыдущей метки изделие фиксирует выход из синхронизации с СЕВ (загорается красным светом светодиод «Синхр») и перестаёт обеспечивать точную синхронизацию времени.

Предусмотрен отдельный вход для эталонной частоты СЕВ 100 кГц, которая может использоваться для калибровки кварцевого генератора.

Изделие обеспечивает синхронизацию времени в собственном сервере NTP с погрешностью не хуже 1 мс. Точность привязки часов внешних потребителей, синхронизирующихся с сервером NTP, определяется характеристиками распространения пакетов в IP-сети пользователя и параметрами работы собственных часов потребителя. Рабочие станции на базе компьютеров общего назначения, работающие под управлением ОС типа Windows и Unix/ Linux, синхронизирующиеся через локальную сеть Ethernet, как правило, обеспечивают погрешность синхронизации порядка 10–50 мс.

Выводы

Использование АПК сервера единого времени позволило заказчику решить задачу синхронизации времени на узлах локальной вычислительной сети объекта и привязки измерений к единому времени, поступающему от аппаратуры СЕВ. Основные расчётные временны'́е задержки были подтверждены результатами непосредственных измерений с использованием наносекундного таймера в ходе наладки изделия. ● 

E-mail: wad910@mail.ru



ПОДПИСАТЬСЯ НА НОВОСТИ

Будьте всегда в курсе самых свежих новостей
и узнавайте первыми о содержании нового номера

Подписка на новости

РЕКОМЕНДУЕМ