moved libs to the lib directory

This commit is contained in:
2025-11-13 18:40:06 +03:00
parent 4d1f7fdbe9
commit b80ad585da
634 changed files with 3 additions and 2 deletions

View File

@ -0,0 +1,70 @@
Работа с метками времени в потоке данных{#sect_tstp_descr}
==============================================================
Режим синхронизации времени по протоколу PTP {#sect_ptp_descr}
==============================================================
В модификации E502-P1 добавлен механизм внутренних часов с возможностью их плавной подстройки.
Также добавлена поддержка протокола PTP для синхронизации времени по сети Ethernet и реализована возможность вставки меток времени в поток данных "на ввод",
Таким образом при включении меток времени появилась возможность вычислять точное время для конкретных слов из потока.
E502-P1 поддерживает только Peer-to-Peer режим протокола PTP, поэтому сервер реального времени с которым происходит синхронизация должен быть настроен именно на этот режим.
В режиме PTP Peer-to-Peer каждый узел сети (в т.ч. коммутаторы) должен быть PTP - совместимым и учитывать задержку до ближайшего соседнего, иначе работа PTP синхронизации не возможна.
Если все условия для работы PTP соблюдены, то синхронизация внутреннего значения времени (внутренних часов) в E502-P1 должна заработать автоматически, устройство будет получать значение точного времени с сервера и корректировать внутренние часы.
Для того чтобы метки времени появились в потоке "на ввод", необходимо специально включить такой режим через соотвтствующее API, по умолчанию этот режим выключен.
Для работы с PTP в E502-P1 были добавлены несколько новых регистров.
Ранее зарезервированный бит в слове "на ввод" теперь означает что слово является меткой времени и для нее вводится признак "захват PTP".
Признак "захват PTP" - атрибут слова метки времени, означает что для потока слов полученных между двумя метками времени с установленным признаком захвата можно вычислить время каждого слова с определенной точностью.
Для обеспечения требуемой точности синхронизации в E502-P1 введены несколько настроек.
- <B>Допустимая рассинхронизация часов, +-нс/с.</B>
При каждом получении значения точного времени от сервера, E502-P1 вычисляет разность значения внутренних часов со значением принятым от сервера. Далее эта разность делится на время прошедшее после последней синхронизации (вычисленное по внутренним часам).
Вычисленное значение сравнивается с заданным параметром. Синхронизация считается успешной, если вычисленное значение не выходит за заданный интервал.
- <B>Минимальное кол-во успешных синхронизаций.</B>
Для того чтобы признак "захват PTP" появился, должно произойти минимальное количество успешных синхронизаций.
В случае неудачной синхронизации, признак "захват PTP" сбрасывается и цикл ожидания минимального количества успешных синхронизаций повторяется.
Работа с модулем при использовании меток времени {#sect_gen_ptp_in}
----------------------------------------------------------
Работа с метками времени из API реализована отдельно от функций управления потоком и функций получения данных из потока.
1. Включение вставки меток времени в поток данных "на ввод": X502_FpgaRegWrite(hnd, E502_REGS_ARM_TIME_CTRL, 1);
2. Установка настроек захвата: X502_FpgaRegWrite(hnd, E502_REGS_PTP_LOCK_LIMIT, (ptp_limit_ns & 0xffff) | (ptp_req_hits << 16))
2. Узнать состояние признака "захват PTP": X502_FpgaRegRead(E502_REGS_ARM_TIME_CTRL, &status);
3. Инициализировать контекст для обработки меток времени: X502_tstp_init(&tstp_state, adc_freq, din_freq).
4. Обработка меток времени из прочитанных данных с помощью X502_tstp_process_wrd(&tstp_state, cur_wrd), где cur_wrd - очередное слово полученное с помощью X502_Recv()
Описание регистров PTP
-------------------------------------------
E502_REGS_ARM_TIME_CTRL
Address: 0x110
| Bit | `Name ` | Access | Description | Reset<br>Value |
|---------|----------------------------|--------|---------------------------------------|-------------|
| [1] | STATUS | R | признак "захват PTP"<br>1: признак "захват PTP" присутствует, условия захвата выплнены<br>0: признак "захват PTP" отсутствует | 0 |
| [0] | ENABLE | RW| 1: добавлять метки времени в поток ввода<br>0: поток ввода без меток времени | 0 |
E502_REGS_PTP_LOCK_LIMIT
Address: 0x706
| Bit | `Name ` | Access | Description | Reset<br>Value |
|---------|----------------------------|--------|---------------------------------------|-------------|
| [31:16] | ENABLE | RW | Минимальное кол-во успешных синхронизаций | 0 |
| [15:0] | STATUS | R | Допустимая рассинхронизация часов, +-нс/с | 0 |
PTP-совместимое оборудование
-------------------------------------------
Оборудование, совместная работа которого с E502-P1 по протоколу PTP была проверена.
Сервер времени: блок коррекции времени ЭНКС-2 производства ООО «Инженерный центр „Энергосервис“» (www.enip2.ru)
Сетевой коммутатор с поддержкой PTP: блок L-VIMS-SWITCH производства ООО "Л КАРД" (www.lcard.ru)