реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Аппаратная поддержка протокола синхронизации времени STM32F407+LAN8720A.
Pridnya
сообщение Oct 7 2016, 06:49
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 139
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159



Здравствуйте, товарищи!

Совсем запутался. Разъясните пожалуйста!

У Microchip поддержка PTP v2 заявлена только в многопортовых Ethernet Switch, например: KSZ8463...и других из этой серии, LA9313, LAN9355...и других, но не в микроконтроллерах, ни в PIC32MX, ни в PIC32MZ. У STM32F407 поддержка PTP v2 заявлена в самом микроконтроллере, к этому микроконтроллеру присоединена LAN8720A.

Не пойму, как связаны часы микроконтроллера (модуль RTC с точностью до секунд или даже до субсекнд в случае с STM32F407) и высокоточные часы в соответсвии с PTP с точностью до 20 наносекунд, в которых время хранится 32.32 (секунды.наносекунды).

У KSZ8463 даже есть выход 1PPS (один импульс в секунду), тактируемый через протокол PTP. Но аналогичый вывод есть и у STM32F407. Не пойму, для чего он должен использоваться? Вроде как устройства на основе MCU+KSZ8463 или на STM34F407 при использовании протокола PTP могут быть мастерами, рассылать сообщения с метками времени и выдавать импульс 1PPS? Так?

И еще, в описании к KSZ8463 есть упоминание про IEC61850 (протокол цифровых подстанций), там как раз используется PTP v2 и сигналы 1PPS, по этому импульсу ежесекундно корректируются (синхронизируются) внутренние часы ведомых устройств.
Go to the top of the page
 
+Quote Post
Sekat
сообщение Oct 7 2016, 15:54
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 13-02-12
Пользователь №: 70 242



Цитата(Pridnya @ Oct 7 2016, 09:49) *
Не пойму, как связаны часы микроконтроллера (модуль RTC с точностью до секунд или даже до субсекнд в случае с STM32F407) и высокоточные часы в соответсвии с PTP с точностью до 20 наносекунд, в которых время хранится 32.32 (секунды.наносекунды). ...

Для STM32F4.
RTC и PTP - это разные таймеры.
1PPS выход реализуется как переход PTP таймера через границу секунды.
Как корректируются часы (как PTP, так и RTC), а так же быть вам мастером или слэйвом по протоколу PTP - определите вы, когда напишите софт.
Go to the top of the page
 
+Quote Post
Pridnya
сообщение Oct 7 2016, 17:58
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 139
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159



Цитата(Sekat @ Oct 7 2016, 18:54) *
Для STM32F4.
RTC и PTP - это разные таймеры.
1PPS выход реализуется как переход PTP таймера через границу секунды.
Как корректируются часы (как PTP, так и RTC), а так же быть вам мастером или слэйвом по протоколу PTP - определите вы, когда напишите софт.

Спасибо!

У меня есть микроконтроллер с модулем RTC,
RTC тактируется от кварца 32768 Гц,
предделители равны 16 и 2048, поэтому разрешение
по субсекундам равно 1/2048=0,5мс,
этого достаточно для фактического разрешения 1 мс,
итого в модуле RTC имеем ДД.ММ.ГГ ЧЧ:ММ:СС.sss,
где sss = 0...2048 субсекунд или 0...999мс.

Также в микроконтроллере есть модуль Ethernet
c поддержкой Time Stamp, в нем метки времени
в соответсвии со стандартом IEEE1588 хранятся в
виде чисел с фиксированной запятой 32.32, т.е.
32 бита для секунд (Unix time) и 32 бита для
наносекунд. Там несколько регистров для меток времени
и свое системное время System Time, возможно, что это
внутренние часы модуля IEEE1588 Ethernet, которые
тактируются частотой 50 MHz со стороны трансивера
LAN8720A. Я прав или ошибаюсь? Эти внутренние часы могут
синхронизироваться с внешними (мастер часы IEEE1588),
мой микроконтроллер в режиме Slave (PTP-клиент).

Не пойму еще один момент: после синхронизации
часов модуля IEEE1588 каким-то образом произойдет
(может, через прерывание) синхронизация часов модуля RTC?

Как они связаны? Может кто-нибудь ответить?
Go to the top of the page
 
+Quote Post
Sekat
сообщение Oct 7 2016, 19:48
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 13-02-12
Пользователь №: 70 242



Про какой микроконтроллер вы говорите? Если про STM32F4, то:
1. Тактирование PTP таймера происходит от системного клока. Хотя это не имеет значения от чего. Важно, что по факту, частота тактирования PTP всегда асинхронна к истинному времени PTP таймера.
2. Синхронизацию с RTC в обе стороны напишите сами, просто занесением соответствующих значений в регистры
3. Все синхронизации высокой точности (микросекундной и субмикросекундной) внутренних процессов нужно осуществлять от PTP таймера, а не от RTC.

Go to the top of the page
 
+Quote Post
jcxz
сообщение Oct 8 2016, 06:07
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 4 390
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Pridnya @ Oct 7 2016, 23:58) *
У меня есть микроконтроллер с модулем RTC,

Что Вы так привязались к этому RTC??? Он Вам нужен только для хранения времени во время выключенного состояния МК. Как только МК включается, следует просто переписать время из RTC в один из системных таймеров (или PTP если там такой имеется) и брать время уже оттуда и синхронизировать уже этот таймер (корректируя соответственно и RTC конечно). А если связь по Ethernet есть всегда и не может пропадать, то RTC вообще не нужен - время будет получено после включения при первой же синхронизации.
Go to the top of the page
 
+Quote Post
Pridnya
сообщение Oct 8 2016, 19:47
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 139
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159



Цитата(jcxz @ Oct 8 2016, 09:07) *
Что Вы так привязались к этому RTC??? Он Вам нужен только для хранения времени во время выключенного состояния МК. Как только МК включается, следует просто переписать время из RTC в один из системных таймеров (или PTP если там такой имеется) и брать время уже оттуда и синхронизировать уже этот таймер (корректируя соответственно и RTC конечно). А если связь по Ethernet есть всегда и не может пропадать, то RTC вообще не нужен - время будет получено после включения при первой же синхронизации.

Просто странно как-то:

STM32F100 (старый МК), модуль RTC не имеет аппаратных часов-календаря, там просто 32-х разрядный таймер (Unix Time), значение которого с помощью стандартной библиотеки time.h пересчитывается в дату, время.

STM32F407 (новый МК ), модуль RTC имеет аппаратные часы-календарь, дату и время (с субсекндами, с разрешением по времени до примерно 30 мкс) можно брать из соответствующих регистров, при этом не нужна стандартная библиотека time.h И соответственно нет потерь времени на пересчет. Модуль RTC имеет функцию Time Stamp, т.е. метки времени с субсекундами (до 30 мкс), но это не те метки времени, которые используются в модуле Ethernet.
Я всегда брал время из регистров модуля RTC, в случае синхронизации корректировал регистр субсекунд.

Все путает наличие в STM32F407 модуля Ethernet c аппаратной поддержкой протокола IEEE1588 и в нем модуля TSU (Time Stamp Unit), вот эти метки времени хранятся в виде 64-х битного числа с фиксированной запятой 32.32, где старшие 32 бита - секунды (Unix Time), младшие 32 бита - наносекнды. И вроде как протокол синхронизации PTP позволяет синхронизировать время в формате 32.32, которое должно храниться где-то (как я понимаю в модуле Ethernet с поддержкой IEEE1588).

Если бы синхронизация часов в формате 32.32 проиводила бы к обнулению наносекунд, т.е. момент синхронизации совпадал бы с началом новой секнды, то в этот момент можно было бы синхронизировать и аппаратный RTC, у него после записи времени ЧЧ:ММ:СС обнуляется регистр субсекунд, и например, каждую секунду синхронизируем 32.32 и затем RTC. Т.е. по более точным часам синхронизируем менее точные (я использую время до 1 мс, мне наносекунды в журналах не нужны), при этом не тратим время на преобразование с помощью time.h.

Но я не знаю, как часто происходит синхронизация по PTP, ежесекундно или с каким -то другим периодом. Сервера точного времени с поддержкой PTP у меня нет, нет даже эмулятора протокола PTP. С тем же протоколом NTP все относительно просто - в Windows XP есть служба времени, она есть клиент для северов времени верхнего уровня и сервер для клиентов нижнего уровня. Т.е. запросы можно отправлять хоть Windows-у, хоть на какой публичный сервер в Интернете. А в случае с PTP должно быть оборудование с поддержкой этого PTP. И даже вроде как для Windows нет эмуляторов, т.к. сама Windows не есть операционная система реального времени. И спросить не у кого.
Go to the top of the page
 
+Quote Post
Pridnya
сообщение Oct 10 2016, 06:37
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 139
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159



Цитата(jcxz @ Oct 8 2016, 09:07) *
Как только МК включается, следует просто переписать время из RTC в один из системных таймеров (или PTP если там такой имеется) и брать время уже оттуда и синхронизировать уже этот таймер (корректируя соответственно и RTC конечно). А если связь по Ethernet есть всегда и не может пропадать, то RTC вообще не нужен - время будет получено после включения при первой же синхронизации.

Прецизионные часы в модуле Ethernet (PTP clock) есть и тактируются они частотой 168 МГц (вот откуда берется наносекундное разрешение по времени), а сам модуль Ethernet тактируется частотой 50 МГц, которая приходит от микросхемы LAN8720A. Т.е. PTP clock тактируются и в отсутствии подключения к интерфейсу Ethernet, с помощью этого интерфейса они синхронизируются с более точными (PTP сервер).

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
jcxz
сообщение Oct 11 2016, 06:47
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 4 390
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Pridnya @ Oct 10 2016, 12:37) *
Т.е. PTP clock тактируются и в отсутствии подключения к интерфейсу Ethernet, с помощью этого интерфейса они синхронизируются с более точными (PTP сервер).

Тогда зачем Вам вообще RTC сдался? Используйте только этот PTP- таймер и всё.
Go to the top of the page
 
+Quote Post
Pridnya
сообщение Oct 12 2016, 05:37
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 139
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159



Цитата(jcxz @ Oct 11 2016, 09:47) *
Тогда зачем Вам вообще RTC сдался? Используйте только этот PTP- таймер и всё.

Изначально я использовал RTC, который синхронизировался по RS485 (широковещательные запросы Modbus RTU). Это бюджетное решение (не требуется сервер точного времени). Затем я добавил интерфейс Ethernet, добавил протокол Modbus TCP, естественно, что пользователь, увидев интерфейс Ethernet задаст вопрос "а как синхронизировать время по при наличии сети Ethernet". Ответить "по Modbus TCP" или "широковещательными запросами по UDP от вот этой удивительной коробки с её нестандартным протоколом синхронизации, которой ни у кого нет" - будет глупостью. Да и вообще в случае интеграции девайса в какую-либо систему с наличием синхронизации в девайсе потребуется поддержка Precision Time Protocol (в промышленных сетях используется уже много лет).
Бывают случаи, когда систем синхронизации на удаленных необслуживаемых объектах нет и нет там Ethernet-а, поэтому придется брать время из RTC. Ну или добавлять в девайсы SNTP-клиенты и NTP-серверы и синхронизироваться по одним из внутренних часов девайса.

Сообщение отредактировал Pridnya - Oct 12 2016, 05:39
Go to the top of the page
 
+Quote Post
Sekat
сообщение Oct 12 2016, 06:42
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 13-02-12
Пользователь №: 70 242



1. Не надо удивительных коробок. Используйте SNTP. Сервера с SNTP доступны и недороги. Точность после 485-го вас более чем устроит.
2. Сделайте клиента SNTP на PTP таймере STM32F4. Так будет значительно проще, чем на RTC.
3. 1588 v2 - это микросекундная и субмикросекундная точность. Зачем она вам? Сервера с PTP нераспространены и дороги.
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 12 2016, 07:18
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 861
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Sekat @ Oct 12 2016, 09:42) *
1. Не надо удивительных коробок. Используйте SNTP.

+1.
SNTP крайне прост. Сам наваял себе по-быстрому. Получилось около 150 строк.
Go to the top of the page
 
+Quote Post
Pridnya
сообщение Oct 12 2016, 11:00
Сообщение #12


Частый гость
**

Группа: Свой
Сообщений: 139
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159



Цитата(Sekat @ Oct 12 2016, 09:42) *
1. Не надо удивительных коробок. Используйте SNTP. Сервера с SNTP доступны и недороги. Точность после 485-го вас более чем устроит.
2. Сделайте клиента SNTP на PTP таймере STM32F4. Так будет значительно проще, чем на RTC.
3. 1588 v2 - это микросекундная и субмикросекундная точность. Зачем она вам? Сервера с PTP нераспространены и дороги.

Спасибо! Вот уже разбираюсь с UDP-клиентом, затем перепишу его под SNTP-клиент. А таки идея хорошая (использовать PTP таймер).
Но все же нужно и PTP знать. Промышленные сети, например на цифровых подстанциях стандарта IEC61850 используют PTP для синхронизации всего оборудования, на этих подстанциях могут устанавливаться цифровые датчики тока и напряжения, которые данные (выборки сигнала) передают по оптоволокну (Ethernet), там даже сообщения о срабатывании сигнализаций, защит, каких-то событиях идут только в цифровом виде с метками времени. И без PTP в таких сетях никак.
Go to the top of the page
 
+Quote Post
Sekat
сообщение Oct 12 2016, 11:15
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 13-02-12
Пользователь №: 70 242



Цитата(Pridnya @ Oct 12 2016, 14:00) *
Спасибо! Вот уже разбираюсь с UDP-клиентом, затем перепишу его под SNTP-клиент. А таки идея хорошая (использовать PTP таймер).
Но все же нужно и PTP знать. Промышленные сети, например на цифровых подстанциях стандарта IEC61850 используют PTP для синхронизации всего оборудования, на этих подстанциях могут устанавливаться цифровые датчики тока и напряжения, которые данные (выборки сигнала) передают по оптоволокну (Ethernet), там даже сообщения о срабатывании сигнализаций, защит, каких-то событиях идут только в цифровом виде с метками времени. И без PTP в таких сетях никак.

Если хотите генерить Sample Values, тогда да. Если только принимать SV от цифровых трансформаторов - тогда оно вам не нужно.
Сообщения MMS никак не связаны с PTP синхронизацией, если вы только не желаете привязать с субмикросекундной точностью что-то свое. Видимо только SV генерация, либо прием SV и совмещение его с собственными мгновенными значения аналогов потребуют PTP.
Go to the top of the page
 
+Quote Post
Pridnya
сообщение Oct 12 2016, 12:26
Сообщение #14


Частый гость
**

Группа: Свой
Сообщений: 139
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159



[attachment=103572:_________________.PNG]
Цитата(Sekat @ Oct 12 2016, 14:15) *
Если хотите генерить Sample Values, тогда да. Если только принимать SV от цифровых трансформаторов - тогда оно вам не нужно.
Сообщения MMS никак не связаны с PTP синхронизацией, если вы только не желаете привязать с субмикросекундной точностью что-то свое. Видимо только SV генерация, либо прием SV и совмещение его с собственными мгновенными значения аналогов потребуют PTP.

Так вот, в соответствии с требованиями стандарта может потребоваться Sample Value (если я правильно понмаю, то это выборки аналоговых сигналов привязанные к реальному времени ) и тогда без PTP не обойтись.
Я что-то не пойму, а как тогда устройства защиты обмениваются сообщениями о событиях, если они не привязаны к реальному времени. Как же тогда определить последовательность событий в случае аварии?
А так вообще один из ведущих российских производителей в руководстве по синхронизации (в девайсах заявлена поддержка PTP и я сразу подумал, что точность субмикросекундная) приводит таблицу, где наносекундная точность протокола PTP "округляется" до 1 мс.

Сообщение отредактировал Pridnya - Oct 12 2016, 12:27
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Sekat
сообщение Oct 12 2016, 12:42
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 13-02-12
Пользователь №: 70 242



Цитата(Pridnya @ Oct 12 2016, 15:26) *
[attachment=103572:_________________.PNG]
Так вот, в соответствии с требованиями стандарта может потребоваться Sample Value (если я правильно понмаю, то это выборки аналоговых сигналов привязанные к реальному времени ) и тогда без PTP не обойтись.
Я что-то не пойму, а как тогда устройства защиты обмениваются сообщениями о событиях, если они не привязаны к реальному времени. Как же тогда определить последовательность событий в случае аварии?
А так вообще один из ведущих российских производителей в руководстве по синхронизации (в девайсах заявлена поддержка PTP и я сразу подумал, что точность субмикросекундная) приводит таблицу, где наносекундная точность протокола PTP "округляется" до 1 мс.

Для синхронизации сообщений и прочих событий в большинстве случаев достаточно точности SNTP. Точность округляется именно по этой причине - никому для синхронизации событий субмикросекундная точность не нужна. Для синхронизации мгновенных отсчетов нужна микросекундная точность, а этим в Ethernet наиболее перспективным является PTP.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th April 2018 - 11:52
Рейтинг@Mail.ru


Страница сгенерированна за 0.00925 секунд с 7
ELECTRONIX ©2004-2016