Точная синхронизация времени по PTP: full-stack разработка
Все знают и используют NTP-протокол. Он позволяет синхронизировать время с удалённым сервером. Но в ряде случаев его точности не хватает и требуется использовать другие механизмы. Один из них - протокол PTP. Он позволяет получить точность в десятки наносекунд.
Для получения таких характеристик программной реализации не достаточно. Требуется аппаратная поддержка в виде timestamping'а сетевых пакетов, а также часы точного времени (PTP hardware clock). Это легко реализуемо, если у вас "под рукой" есть Linux + FPGA, а тем более - система на кристалле (SoC).
Покажем полный цикл разработки программно-аппаратного решения для точной синхронизации времени (протокол PTP) на базе наших плат, использующих систему на кристалле (SoC). Мы сможем синхронизировать два устройства с точностью порядка +/- 50 нс.
В мастер-классе мы:
* узнаем про платформу, под которою будет проходить разработка (аппаратная часть, сетевой контроллер в FPGA, сетевой драйвер, linux, etc...)
* реализуем часы точного времени в FPGA (PTP Hardware Clock, PHC), поддерживающие гибкую подстройку
* напишем драйвер для управления PHC
* реализуем timestamping сетевых пакетов в FPGA в сетевом контроллере
* свяжем все компоненты друг с другом и сравним полученные результаты с чисто программной реализацией