Добры день
Если ошибся веткой - простите и подскажите куда правильнее закинуть такой вопрос.
Столкнулся проблемой синхронизации часов между 2-я разными устройствами.
Для этого есть источник синхронизации master , который посылает пакет с текущим временем. Считаем его эталоном. Мастер выдает значение времени с точностью до 1 нс.
Устройство на ФПГА , которое принимает пакет синхронизации - slave, в соответствии с содержимым пакета устанавливает локальное значение времени и продолжает тикать. Задающий генератор 4 ppm 20 мгц из него я делаю 100 мгц с помощью пллки. В качестве часов выступает счетчик , к которому прибавляется значение 10 на каждом такте в 100 мгц. И при приеме пакета загружается эталонное значение. Проблема в том что при приеме каждого нового эталонного пакета отклонение локального времени от эталона все время разное. Когда задумывали систему думали, что к примеру если +-50 PPM то частота может быть соответствующих пределах т.е чуть чуть больше 100 или чуть чуть меньше 100 и при этом значение будет постоянным. Далее это отклонение можно было бы компенсировать (увеличивать или уменьшать значение на 1 нс через N тактов в счетчике). Но по данным которые сейчас читаются выходит что частота на каждом отдельном периоде в 30 сек разная бывает что количество тиков чуть больше чем эталон а бывает чуть меньше. Из этого выходит что PPM определяет не предел отклонения частоты , а гуляние частоты в определенных границах. Но на сколько это соответствует действительности ?
|