nixadmin.ru

О сайте

Ссылки

Поиск на сайте:

Вход на сайт

Имя пользователя: *

Пароль: *

Забыли пароль?

Рубрики

FreeBSD
Linux
Безопасность
Виртуализация
Железо
Полезное
Почта
Работа с прошивками
Система
Хостинг

подробнее

Главная

Сервер времени с синхронизацией от GPS приемника

df-nix пт, 24/10/2014 - 19:41

Linux

Железо

Система

Поступила задача настроить сервер времени, не имеющий выхода в интернет, для синхронизации времени устройств внутри сети. В наличии имеется сервер под Linux и GPS приемник ED170MP. Описываю работоспособный вариант настройки.

Основная идея такая: gps приемник выдает информацию о времени в формате NMEA и сигнал PPS, которые через порт RS232 поступают на сервер. Демон gpsd принимает эту информацию и передает ее демону ntpd который синхронизирует системное время и предоставляет ее клиентам по протоколу ntp.

Вооружившись гуглом, изучаем документацию на gps приемник. Ссылки см. внизу статьи.

Как указано в мануале к gps приемнику, на его задней панели есть два RS232 выхода, через которые он передает информацию gps, а также несколько выходов Pulse Output ( все сигналы имеют TTL уровень ) через которые передаются, в том числе, импульсы PPS частотой 1Гц, которые мы будем использовать в качестве источника сигнала времени. Согласно распиновки разъемов задней панели приемника, мы будем использовать 2-й и 3-й контакты порта DCE2(COM1), на которых имеется RXD и TXD с информацией GPS, и 1-й контакт порта Time Capture, на котором имеется частота 1Гц - Pulse Per Second (PPS). Для соединения портов RS232 и TimeCapture с RS232 портом сервера изготовим кабель требуемой длины согласно схемы, желательно экранированный, см. схему внизу статьи. Не забываем что подключать кабель нужно при обесточенных устройствах.

Согласно мануала gps приемник может управляться программой GPSMON32.

http://www.meinbergglobal.com/download/utils/windows/mbg-gpsmon32-v228.exe

Чтобы он выдавал понятную демону gpsd информацию, необходимо настроить его параметры. Предварительно, прочитав документацию, устанавливаем ip адрес на интерфейсе gps приемника. Подключаемся к ethernet интерфейсу через порт LANXPT. В программе GPSMON32 выбираем Connection - Settings - Network - Find, после установки коннекта вводим пароль для доступа, по умолчанию это meinberg. В Outputs - Serial parameters-COM1 выставить : 9600; 8N1; NMEA; per second. После этого можно проверить наличие информации на COM порту сервера с помощью команды

stty -F /dev/ttyS0 ispeed 9600

cat </dev/ttyS0

Если все сделано правильно, то последняя команда дает вывод с интересующей нас информацие о времени.

Для проверки работы gpsd даем команду ( можно указать опцию D5 - максимально подробный вывод )

gpsd -n -N -D2 /dev/ttyS0

если получаем примерно такой вывод,

gpsd: launching (Version 2.91dev)

gpsd: listening on port gpsd

gpsd: running with effective group ID 0

gpsd: running with effective user ID 0

gpsd: opening GPS data source at '/dev/ttyS0'

...

gpsd: speed 9600, 8N1

gpsd: gpsd_activate(): opened GPS (fd 4)

gpsd: NTPD ntpd_link_activate: 0

gpsd: => Probing device subtype 0

.......

gpsd: PPS cycle: 584180992, duration: 584180992 @ 1263141876.000000

gpsd: PPS pulse rejected

...........

то продолжаем. Настраиваем ntpd, для этого смотрим пример в man gpsd и берем оттуда примерно такой конфиг для ntp.conf:

server 127.127.28.0 minpoll 4 maxpoll 4

fudge 127.127.28.0 time1 0.420 refid GPS

server 127.127.28.1 minpoll 4 maxpoll 4 prefer

fudge 127.127.28.1 refid GPS1

где параметр time1 0.420 подбирается согласно

http://www.catb.org/gpsd/gpsd-time-service-howto.html

Запускаем gpsd и ntpd

/etc/init.d/gpsd start

/etc/init.d/ntpd start

Настраиваем автоматический запуск ntpd и gpsd во время загрузки системы

сhkconfig gpsd on

chkconfig ntpd on

Проверяем работу:

ntpq -p

remote           refid      st t when poll reach   delay   offset  jitter

==============================================================================

+SHM(0)          .GPS.            0 l    3   16  377    0.000    0.061   0.081

*SHM(1)          .GPS1.           0 l    2   16  377    0.000   -0.003   0.004

Из вывода видно, что мы имеем рабочий сервер времени, имеющий стратум 0, т.е. синхронизирующийся непосредственно от источника точного времени. Осталось проверить работу клиентов. Не забываем для этого открыть в iptables 123 udp порт.

Полезные ссылки:

Назначение контактов rs-232

http://www.gpskit.nl/connections-en.htm

http://rs232.net.ru/doc/computer/COM9_rs232.php

http://www.lammertbies.nl/comm/info/GPS-time.html

http://www.catb.org/gpsd/installation.html

http://www.catb.org/gpsd/gpsd-time-service-howto.html

Мануал по ED170MP

ftp://41.208.38.197/Onsite_PC/FWSW/Meinberg/ED170/General/ED170-MQ_OCT-4...

Программа GPSMON32

http://www.meinbergglobal.com/download/utils/windows/mbg-gpsmon32-v228.exe

пароль для доступа по умолчанию

meinberg

Схема кабеля

http://files.nixadmin.ru/9nFelmDP_scheem_cable.gif

Пример настройки конфига ntpd - см man gpsd

Проверка наличия сигналов от gps на последовательном порту

stty -F /dev/ttyS0 ispeed 9600

cat < /dev/ttyS0

Проверка работы gpsd

gpsd -n -N -D2 /dev/ttyS0 ( или -D5 для большей детализации вывода )

»

Добавить комментарий

Последние комментарии

Выбор ядра при загрузке FreeBSD
14 недель 1 день назад

portmaster без лишних вопросов
15 недель 7 часов назад

Отправка вложений с помощью mail и uuencode под freebsd
17 недель 4 дня назад

для версии monit 5.4 под debian
18 недель 3 дня назад

Статья и обсуждение postfix на LF
22 недели 3 дня назад

Путевые точки из Androzic
26 недель 7 часов назад

IBM developerworks: Управление пакетами с помощью RPM и YUM
27 недель 2 дня назад

Полезные команды SSL
29 недель 3 дня назад

кодировка utf-8 в mysql
35 недель 4 дня назад

Отправка почты с помощью php через sendmail
36 недель 1 день назад

nixadmin.ru (C) 2013-2015   Обратная связь - [email-masked]