Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Cетевые протоколы и технологии

Cетевые протоколы и технологии TCP/IP стек

Ответ
 
Опции темы Опции просмотра
Старый 04.10.2016, 09:30   #1
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Orel
Возраст: 38
Сообщений: 4,358
Вес репутации: 4322/117
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Аппаратная поддержка протокола синхронизации времени IEEE1588 PTP

Всем привет!

При поиске документации по теме "синхронизация времени в промышленных сетях" обнаружил у нескольких производителей Ethernet PHY с аппаратной поддержкой протокола. Пока еще не понял как она работает, но она есть, причем документация свежая 2014-2016 год.

Затем обнаружил, что такая поддержка есть даже у старых микроконтроллеров STM32F107 (в статье 2010-го года картинки), т.е. точно есть в серии STM32F Connectivity-Line. Также обнаружил такую поддержку в STM32F407. Т.е. микроконтроллеры с интерфейсом Ethernet уже много лет имеют эту поддержку.

Затем решил поискать у Microchip: в документации для PIC32MX про PTP не упоминается; PIC32MZ (PIC32MZ Embedded Connectivity (EC) Family) то же самое - не упоминается. Это как? Может, я чего-то не понимаю? Есть только внешний чип KSZ8463 (от фирмы Micrel, которую купила Microchip).
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 06.10.2016, 14:22   #2
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Orel
Возраст: 38
Сообщений: 4,358
Вес репутации: 4322/117
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Аппаратная поддержка протокола синхронизации времени IEEE1588 PTP

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Затем обнаружил, что такая поддержка есть даже у старых микроконтроллеров STM32F107 (в статье 2010-го года картинки), т.е. точно есть в серии STM32F Connectivity-Line. Также обнаружил такую поддержку в STM32F407. Т.е. микроконтроллеры с интерфейсом Ethernet уже много лет имеют эту поддержку.
STM32F107 поддерживает IEEE1588 (PTP v1 или v2 ???, про версию в RM не упоминается)
STM32F407 поддерживает IEEE1588-2008 (PTP v2)
PTP используется в локальных сетях, например, на цифровых подстанциях. При этом в локальной сети должен быть сервер точного времени с поддержкой PTP (сервер уровня stratum 1, прием со спутника), коммутаторы с поддержкой PTP, аппаратная поддержка PTP со стороны ведомого девайса и специальный PTP-стек для поддержки протокола PTP.
Из статьи 2011-года с сайта Промэлектроника:
Цитата:
Компания STMicroelectronics выпустила стек PTPd, реализующий обмен по стандартам IEEE 1588 PTP V1 и IEEE 1588 PTP V2.
Исходный код и документацию с примерами можно загрузить бесплатно здесь.
Кто-нибудь использовал протокол PTP для STM32?
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 07.10.2016, 09:33   #3
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Orel
Возраст: 38
Сообщений: 4,358
Вес репутации: 4322/117
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Аппаратная поддержка протокола синхронизации времени IEEE1588 PTP

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Затем решил поискать у Microchip: в документации для PIC32MX про PTP не упоминается; PIC32MZ (PIC32MZ Embedded Connectivity (EC) Family) то же самое - не упоминается. Это как? Может, я чего-то не понимаю? Есть только внешний чип KSZ8463 (от фирмы Micrel, которую купила Microchip).
И никто не поправил. У Microchip поддержка PTP v2 заявлена только в многопортовых Ethernet Switch, например: KSZ8463...и других из этой серии, LA9313, LAN9355...и других, но не в микроконтроллерах. Не пойму, как связаны часы микроконтроллера (модуль RTC с точностью до секунд или даже до субсекнд в случае с STM32F407) и высокоточные часы в соответсвии с PTP с точностью до 20 наносекунд, в которых время хранится 32.32 (секунды.наносекунды).

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

И еще, в описании к KSZ8463 есть упоминание про IEC61850 (протокол цифровых подстанций), там как раз используется PTP, 1PPS.

Неужели и Ethernet Switch от Microchip никто не использует?
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 10.10.2016, 12:19   #4
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Orel
Возраст: 38
Сообщений: 4,358
Вес репутации: 4322/117
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Аппаратная поддержка протокола синхронизации времени IEEE1588 PTP

Всем привет!
Надеюсь, что кто-то подключится к теме.
В STM32F407 обнаружил наличие (я и не догадывался, что они есть) прецизионных часов (PTP clock) и даже удалось их запустить, теперь они идут. Эти часы хранят время в формате 32.32 (секунды.наносекунды), тактируются от системной частоты 168 MHz. Регистры: ETH_PTPTSHR и ETH_PTPTSLR.
The Time stamp high register, along with Time stamp low register, indicates the current value of the system time maintained by the MAC.
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 15.12.2016, 12:36   #5
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Orel
Возраст: 38
Сообщений: 4,358
Вес репутации: 4322/117
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Аппаратная поддержка протокола синхронизации времени IEEE1588 PTP

Здравствуйте, товарищи!
Мне удалось запустить прецизионные часы модуля Ethernet (PTP-clock) в STM32F407. Пробуем код и двигаемся дальше, многое еще нужно сделать. Ни примеров, ни разговоров на эту тему нигде не нашел.

Код инициализации (тактовая частота CPU HCLK 168 МГц):
Код:
void InitPtpClockStm32F407(void)
{
ETH->PTPTSAR = 0x4C30C30C; // 2^32/(168/50) = 2^32/3.36 = 1278264076.19 округляем 0x4C30C30C
ETH->PTPSSIR = 20; // 20 наносекунд.
/* In Fine update mode, the value in this register is added to the system time whenever the accumulator gets an overflow.
Fine update mode: значение ETH->PTPSSIR добавляется к системному времени каждый раз когда аккумулятор переполняется. */        
ETH->PTPTSCR |= ETH_PTPTSCR_TSE;     // Time stamp enable.
ETH->PTPTSCR |= ETH_PTPTSCR_TSSTI;   // Time stamp initialize.
ETH->PTPTSCR |= ETH_PTPTSCR_TSFCU;   // Fine update method.
ETH->PTPTSCR |= ETH_PTPTSCR_TSARU;   // Addend register update. Если закомментировать, то часы не идут.
ETH->PTPTSCR |= ETH_PTPTSCR_TSSSR;   // digital rollover control, 0 - 999 999 999.
ETH->PTPTSCR |= ETH_PTPTSCR_TSPTPPSV2E; // Time stamp PTP packet snooping for version2 format enable. 
ETH->PTPTSCR |= ETH_PTPTSCR_TSSIPV4FE;  // Time stamp snapshot for IPv4 frames enable.
}
Код чтения:
Код:
sprintf(LCD.line_1,"%d%c%d",ETH->PTPTSHR, '_',ETH->PTPTSLR);
PS: Удобно использовать эти часы: два слова, старшее - секунды в UnixTime, младшее - наносекунды. Тактируются от HCLK.
Не нужно даже в системный таймер счетчик секунд (UnixTime) запихивать.
__________________
Прогресс неизбежен.

Последний раз редактировалось Pridnya; 15.12.2016 в 12:43.
Pridnya вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +3, время: 15:37.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd. Перевод: zCarot