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

 
 
> Синхронизация нескольких плат
alexeypopov
сообщение Jan 17 2013, 07:00
Сообщение #1





Группа: Новичок
Сообщений: 7
Регистрация: 14-05-12
Пользователь №: 71 821



Уперся в следующую проблему, необходима помощь!
Устройство состоит из 5 совершенно одинаковых плат собранных на FPGA Cyclone IV GX (EP4CGX75DF27С7), все платы оцифровывают входные сигналы. Проблема в том, что платы должны оцифровывать сигналы в одно и тоже время, синхронно. Как синхронизировать работу всех плат?
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 21)
eugen_pcad_ru
сообщение Jan 17 2013, 08:28
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 642
Регистрация: 15-11-07
Пользователь №: 32 353



Используя единый для всех плат источник синхронизации? Фазы выровнять во встроенных ФАПЧ?


--------------------
Правильно сформулированый вопрос содержит в себе половину ответа.
P.S.: Некоторые модераторы в качестве ответа так навязчиво предлагают посетить свой сайт, что иначе как саморекламу такие действия интерпретировать сложно.
Go to the top of the page
 
+Quote Post
alexeypopov
сообщение Jan 17 2013, 09:10
Сообщение #3





Группа: Новичок
Сообщений: 7
Регистрация: 14-05-12
Пользователь №: 71 821



После включения питания смогут ли PLLи в ПЛИСах завестись синхронно? Допустим на вход каждой платы приходит клок 80МHz, в каждой ПЛИС ставлю PLL чтобы сделать 200MHz. Эти 200MHz будут ли синхронными в каждой ПЛИСине или PLLки сдвинут их пока будет идти подстройка частоты?
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Jan 17 2013, 09:50
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(alexeypopov @ Jan 17 2013, 13:10) *
После включения питания смогут ли PLLи в ПЛИСах завестись синхронно? Допустим на вход каждой платы приходит клок 80МHz, в каждой ПЛИС ставлю PLL чтобы сделать 200MHz. Эти 200MHz будут ли синхронными в каждой ПЛИСине или PLLки сдвинут их пока будет идти подстройка частоты?

Если требуется точная синхронизация 200МГц, то сомнительно с моей точки зрения, единственная возможность - попробовать выровнять все пути от источника (одного) тактовой до входов каждой из pll (ну или вручную замерять и пытаться двигать фазу выхода pll с определенной точностью).
Go to the top of the page
 
+Quote Post
alexeypopov
сообщение Jan 17 2013, 10:41
Сообщение #5





Группа: Новичок
Сообщений: 7
Регистрация: 14-05-12
Пользователь №: 71 821



Каждая PLL имеет асинхронный сброс areset, пока он держится в 1, PLL не выдает сигнал, после того как этот areset перейдет в 0, PLL запускается и начинает подстраивать выходной сигнал до тех пор пока не подстроит как задано, после чего выводит locked (сигнал подстроен). Но в документации на PLL не говориться что это время фиксировано, только максимальное время Tlock = 1ms (Cyclone IV Device Handbook / PLL Specifications). Так получается что на всех PLLях этот сигнал locked может выйти в разное время и заведомо все синхросигналы убегут по фазе? Или нет?
Go to the top of the page
 
+Quote Post
litv
сообщение Jan 17 2013, 10:58
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 401
Регистрация: 6-10-04
Из: Воронеж
Пользователь №: 806



Да locked будет в разное время.
Go to the top of the page
 
+Quote Post
Костян
сообщение Jan 17 2013, 11:15
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 740
Регистрация: 24-07-06
Из: Minsk
Пользователь №: 19 059



QUOTE (alexeypopov @ Jan 17 2013, 07:10) *
После включения питания смогут ли PLLи в ПЛИСах завестись синхронно?

Скорее всего нет. Вам прийдется еще давать сигнал старта.

Синхронизировать платы лучше всего от одного источника, соединяя дальше платы цепочкой. Т.е PLLout одной платы идет на PLLin другой.

Разность фаз иногда не нужно выравнивать. Зависит от задачи. Разность фаз можно компенсировать в цифре.
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Jan 17 2013, 11:17
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(alexeypopov @ Jan 17 2013, 14:41) *
Так получается что на всех PLLях этот сигнал locked может выйти в разное время и заведомо все синхросигналы убегут по фазе? Или нет?

Сигнал этот говорит о том, что pll залочилась, т.е. на выходе будет стабильная частота. Но подстройка pll у Вас ведется по изменению фронта/среза входной частоты и если входная частота (общая) имеет разную задержку до разных pll, то выходные частоты будут синхронными (при одинаковых настройках pll), но с разными фазами.
Цитата
Но в документации на PLL не говориться что это время фиксировано, только максимальное время Tlock = 1ms

Pll включает аналогувую часть, и время подстройки зависит от "качества" входной частоты соответственно и время разное, поэтому и приведено максимальное время подстройки.
Go to the top of the page
 
+Quote Post
alexeypopov
сообщение Jan 17 2013, 12:54
Сообщение #9





Группа: Новичок
Сообщений: 7
Регистрация: 14-05-12
Пользователь №: 71 821



По моим соображениям, чтобы все эти 5 плат захватили данные в определенное время причем синхронно, то не возможно в каждой плате вести отсчет времени непосредственно по клоку который будет делать каждая PLL в этой плате. Необходимо сначала в каждой плате PLLкой подогнать синхросигнал к одному значению частоты и фазы и не важно за какое время каждая PLL это сделает, лишь бы они точно подстроились в пределах 1мс установки. Затем необходимо посылать сигнал (захват данных) на все эти платы, которые в свою очередь будут его ловить с помощью уже подстроенных клоков (что-то вроде следящей системы), поймав его делать выборки.



Цитата(Костян @ Jan 17 2013, 14:15) *
Скорее всего нет. Вам прийдется еще давать сигнал старта.

Синхронизировать платы лучше всего от одного источника, соединяя дальше платы цепочкой. Т.е PLLout одной платы идет на PLLin другой.

Разность фаз иногда не нужно выравнивать. Зависит от задачи. Разность фаз можно компенсировать в цифре.


Как разность фаз можно компенсировать в цифре? Что имелось в виду? Подстройкой фазы в PLL или непосредственно логикой?

Сообщение отредактировал alexeypopov - Jan 17 2013, 12:58
Go to the top of the page
 
+Quote Post
telix
сообщение Jan 17 2013, 12:54
Сообщение #10


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

Группа: Свой
Сообщений: 118
Регистрация: 9-12-12
Из: Курск
Пользователь №: 74 767



Ну правильно же написали, подать на все платы сигнал тактовой частоты, чтобы синхронизировать все платы по фронту. И затем на все платы подать еще один сигнал запуска собственно преобразования, тогда все платы начнут работать синхронно с точностью до фазы.


--------------------
улыбаемся ...
Go to the top of the page
 
+Quote Post
alexeypopov
сообщение Jan 17 2013, 12:59
Сообщение #11





Группа: Новичок
Сообщений: 7
Регистрация: 14-05-12
Пользователь №: 71 821



Цитата(Костян @ Jan 17 2013, 14:15) *
Скорее всего нет. Вам прийдется еще давать сигнал старта.

Синхронизировать платы лучше всего от одного источника, соединяя дальше платы цепочкой. Т.е PLLout одной платы идет на PLLin другой.

Разность фаз иногда не нужно выравнивать. Зависит от задачи. Разность фаз можно компенсировать в цифре.


Как разность фаз можно компенсировать в цифре? Что имелось в виду? Подстройкой фазы в PLL или непосредственно логикой?

Сообщение отредактировал alexeypopov - Jan 17 2013, 12:59
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Jan 17 2013, 13:01
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(alexeypopov @ Jan 17 2013, 16:54) *
Допустим мы имеем 2 ПЛИС которые имеют одинаково настроенные PLL (вход 80MHz, выход 200MHz). Пусть входной клок 80MHz на вторую ПЛИС придет с задержкой 3ns. Значит ли это, что полученные 200MHz клоки будут также сдвинуты на 3ns?

Если фронт/срез входной частоты задержан на 3нс (источник один), то да (ну +/- дельта).
Цитата
Ну правильно же написали, подать на все платы сигнал тактовой частоты, чтобы синхронизировать все платы по фронту. И затем на все платы подать еще один сигнал запуска собственно преобразования, тогда все платы начнут работать синхронно с точностью до фазы.

Тактовая никогда не будет иметь одинаковую задержку, поэтому в реальном режиме времени фаза сигналов будет зависеть от нее, сигнал запуска тоже будет иметь разную задержку.
Вот проект с которым я сейчас работаю - 4 ПЛИС, высокая общая частота подается на все плис - выровненности нет, есть мастер-плис который пингует все плисины и вычисляет реальные задержки и раздает их остальным. Все ПЛИС в результате имеют синхронную низкую частоту (формируемую на основе полученных данных и общей высокой частоты с помощью счетчика) с точностью до одного такта высокой. В принципе можно было бы вычислить эту задержку и все засинхронизировать с помощью настроек фаз входных pll, но при существенном изменении входной тактовой вся схема летит из-за того, что сдвиг по фазе завязан на значении частоты.
Go to the top of the page
 
+Quote Post
Костян
сообщение Jan 17 2013, 13:03
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 740
Регистрация: 24-07-06
Из: Minsk
Пользователь №: 19 059



QUOTE (alexeypopov @ Jan 17 2013, 10:59) *
Как разность фаз можно компенсировать в цифре? Что имелось в виду? Подстройкой фазы в PLL или непосредственно логикой?

первый и второй вариант подойдет.
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Jan 17 2013, 13:11
Сообщение #14


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



Я не пойму, как разные блоки/платы узнают на сколько они друг от друга разбежались.
Имхо фазовые ошибки всегда будут не просто разные но и непредсказуемые.
Я вижу решение проблемы только в калибровке - на вход подаётся тестовый сигнал и по нему оценивают разбег фаз.


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Jan 17 2013, 13:17
Сообщение #15


Профессионал
*****

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(Lmx2315 @ Jan 17 2013, 17:11) *
Я не пойму, как разные блоки/платы узнают на сколько они друг от друга разбежались.

За счет чего выходные частоты pll могут разбежаться, если на вход подается частота от одного источника? Фазы у них действительно будут немного отличаться, но синхронными они будут.
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Jan 17 2013, 13:27
Сообщение #16


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



QUOTE (bogaev_roman @ Jan 17 2013, 16:17) *
За счет чего выходные частоты pll могут разбежаться, если на вход подается частота от одного источника? Фазы у них действительно будут немного отличаться, но синхронными они будут.


я говорил про фазу, понятно что частоты будут одинаковые.


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
alexeypopov
сообщение Jan 17 2013, 14:02
Сообщение #17





Группа: Новичок
Сообщений: 7
Регистрация: 14-05-12
Пользователь №: 71 821



Цитата(Lmx2315 @ Jan 17 2013, 16:11) *
Я не пойму, как разные блоки/платы узнают на сколько они друг от друга разбежались.


Они естественно не узнают им и не надо этого знать. Необходимо чтобы эти платы по входной команде смогли забрать данные со своих датчиков в одно и тоже время. Если частоты, на которых будут работать эти платы, будут одинаковыми но сдвинутыми по фазе то соответственно данные с датчиков они соберут в разные моменты времени.... Необходимо синхронизировать их.

Цитата(bogaev_roman @ Jan 17 2013, 16:01) *
Тактовая никогда не будет иметь одинаковую задержку, поэтому в реальном режиме времени фаза сигналов будет зависеть от нее, сигнал запуска тоже будет иметь разную задержку.
Вот проект с которым я сейчас работаю - 4 ПЛИС, высокая общая частота подается на все плис - выровненности нет, есть мастер-плис который пингует все плисины и вычисляет реальные задержки и раздает их остальным. Все ПЛИС в результате имеют синхронную низкую частоту (формируемую на основе полученных данных и общей высокой частоты с помощью счетчика) с точностью до одного такта высокой. В принципе можно было бы вычислить эту задержку и все засинхронизировать с помощью настроек фаз входных pll, но при существенном изменении входной тактовой вся схема летит из-за того, что сдвиг по фазе завязан на значении частоты.


не очень понятно как мастер пингует и вычисляет задержки? Какие задержки? как с помощью полученной информации slave подстраивает свою частоту.
Go to the top of the page
 
+Quote Post
polyakovav
сообщение Jan 17 2013, 16:17
Сообщение #18


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

Группа: Свой
Сообщений: 197
Регистрация: 26-05-06
Из: Воронеж
Пользователь №: 17 486



Решение может сильно отличаться от допустимой величины отклонения шкалы времени.
Есть стандарт PXI для модульных измерительных систем http://www.pxisa.org/Specifications/Default.aspx
Там как-раз описывают способы синхронизации и требования к синхросигналам.
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Jan 17 2013, 18:49
Сообщение #19


Профессионал
*****

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(alexeypopov @ Jan 17 2013, 18:02) *
не очень понятно как мастер пингует и вычисляет задержки? Какие задержки? как с помощью полученной информации slave подстраивает свою частоту.

В Вашем случая это скорее всего не применимо, но используется много где. Есть две частоты - низкая и высокая, на низкой идет вся обработка, мастер имеет с остальными две связи - на прием и передачу (разведены по плате они должны одинаково). Высокая частота синхронна (пусть и с разными фазами) и изначально в каждой ПЛИС генерится низкая посредством счетчиков. Ну а дальше все просто - мастер посылает в ведомый импуль, который совпадает с фронтом его низкой частоты и получает в ответ его же. Вычисляется разница и делится пополам, следующий импульс в ведомый (он же служит сбросом для счетчика) запускает заново счетчик низкой частоты на ведомом. В итоге к примеру - мастер послал импульс (фронт низкой частоты, формируется на высокой) и получил ответ через 4 такта (высокой), т.к. пути одинаковые, то получается что задержка составляет в одну сторону 2 такта (высокой) и сброс счетчика ведомого должен формироваться на 2 такта раньше. Таким образом получается синхронность низкой частоты с точностью до одного такта высокой.
ЗЫ// извиняюсь за мой русский язык, если идея не понятна попробую описать подробней.
to Lmx2315 просто в моем понимании термин "разбежались" означает то, что одна частота больше другой на дельту, т.е. как будто есть два одинаковых генератора частоты на разных плисинах с равными характеристиками, но фактичкески они не одинаковы.
Go to the top of the page
 
+Quote Post
alexeypopov
сообщение Jan 18 2013, 06:28
Сообщение #20





Группа: Новичок
Сообщений: 7
Регистрация: 14-05-12
Пользователь №: 71 821



Все достаточно понятно описано. Так, ради интереса, какова высокая и низкая частота в вашем проекте, если не секрет?
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Jan 18 2013, 11:52
Сообщение #21


Профессионал
*****

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(alexeypopov @ Jan 18 2013, 10:28) *
Все достаточно понятно описано. Так, ради интереса, какова высокая и низкая частота в вашем проекте, если не секрет?

Высокая 100МГц, низкая 10МГц, но естественно, что высокая ограничена только возможностями ПЛИС, а низкая "точностью" синхронизкации в 1 такт высокой.
Go to the top of the page
 
+Quote Post
maksimp
сообщение Jan 18 2013, 16:24
Сообщение #22


Местный
***

Группа: Участник
Сообщений: 313
Регистрация: 2-07-11
Пользователь №: 66 023



Цитата(alexeypopov @ Jan 17 2013, 12:10) *
После включения питания смогут ли PLLи в ПЛИСах завестись синхронно? Допустим на вход каждой платы приходит клок 80МHz, в каждой ПЛИС ставлю PLL чтобы сделать 200MHz. Эти 200MHz будут ли синхронными в каждой ПЛИСине или PLLки сдвинут их пока будет идти подстройка частоты?

Чтобы получить только один возможный вариант работы PLL, нужно чтобы коэффициент деления в PLL был равен 1. Значит входная частота должна быть где то 5...10 МГц, конкретно запускайте мастер в Квартусе и смотрите при каких входных частотах коэффициент деления в PLL равен 1.
В противном случае, PLL должна сама делить. Например, из 80 МГц получать 10 МГц. Счётчик делитель на 8. И выход этого счётчика может переключаться по этому импульсу 80 МГц, по следующему и т.д., всего 8 вариантов.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 08:31
Рейтинг@Mail.ru


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