|
Восстановление частоты из потока цифр, Как получить качественную частоту? |
|
|
|
Apr 21 2011, 08:10
|
Знающий
   
Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543

|
Здравствуйте, уважаемые гуру.
Подскажите пожалуйста, как подступиться к следующей проблеме.
Для начала краткая предыстория.
Есть микросхема Spartan-6LXT. К ней на вход GTP приходит поток STM-1 (155.52Mhz). Надо восстановить из потока опорную частоту в более-менее приличном виде.
Трабла в следующем. GTP Спартана-6 поддерживает частоты от 614МГц. Соответственно, работать напрямую с потоком 155.52 МГц оно не может. Можно использовать передискретизацию - GTP настраивается на частоту в (допустим) 4 раза больше, принимать и передавать каждый бит 4 раза.
И я так делал, оно работало... Одна проблема - устойчивость к джиттеру слишком слабая, на большом джиттере встроенная PLL теряет синхронизацию.
Пришлось пойти по другому пути - GTP настроил на режим lock-to-reference, т.е. входной поток принимался на собственной частоте микросхемы (которая может быть отличной от частоты входного сигнала). Входной поток получался вида: 0000111100001111000001111000011110000111100001111100001111 То есть в случае несоответствия частот принимаемого потока и опорной микросхемы в потоке периодически появляются биты "длиной" пять (или три, смотря в какую сторону расхождение) отсчетов, что довольно легко устраняется, в результате чего извлекаем нужные данные.
Такая реализация позволила поднять устойчивость к джиттеру, но появилась другая проблема. Надо не только извлекать без потерь данные из входного потока, но и восстанавливать частоту, которая в дальнейшем должна идти на вход различных PLLек системы. Описанный выше метод позволяет выдать лишь, по сути, собственную опорную частоту микросхемы, с изменяющейся довольно редко (частота изменения порядка 0...1000Гц в зависимости от разницы частот) фазой, но сразу на 90 градусов. То есть, имеем выходную частоту вида: 001100110011...00110001100110011001100...110011100
В принципе, можно сделать так, чтобы скачки были не на 90, а на 45 градусов (поднять частоту дискретизации в 2 раза).
Собственно, вопрос. Можно ли из этого как-то восстановить "нормальную" частоту входного сигнала?. Так, чтобы с ней можно было работать как с нормальной частотой, подавать на входы PLLек и т.д.. Желательно, конечно, средствами ПЛИС - т.е. DCM&PLL.
Заранее спасибо за любые идеи.
|
|
|
|
|
 |
Ответов
|
Apr 21 2011, 12:23
|
Знающий
   
Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543

|
Цитата Смысл вообще не восстанавливать тактовую, не двигать фазой dcm и частотой pll. Есть стабильная тактовая с pll, по ней снимаются данные со входа. А конечный автомат выдаёт каждый такт либо один бит данных (почти всегда), либо 2 бита данных иногда, если тактовая меньше частоты данных, либо 0 бит данных - если больше. Так я так сейчас и делаю. И трабла именно в том, что тактовая всё равно нужна. Не для работы собственно CDR, а для других нужд.
|
|
|
|
|
Apr 21 2011, 15:55
|
Знающий
   
Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650

|
Цитата(Koluchiy @ Apr 21 2011, 19:23)  Так я так сейчас и делаю. И трабла именно в том, что тактовая всё равно нужна. Не для работы собственно CDR, а для других нужд. Тактовая нужна именно 155МГц или поровну какая, лишь бы что-то было? В системе нет других стабильных источников? Если есть то в чём проблема перейти через фифошку (на входе - recovered clock, на выходе - стабильный клок) в другой домен с заведомо более шустрыми клоками. Поток данных регулировать с помощью дополнительного сигнала валидности. При желании - сгородить автомат на выходе фифошки, который будет "нарезать" поток на блоки определённой длины? Цитата(des00 @ Apr 21 2011, 22:19)  вот именно по этому надо было закладывать нормальный CDR, на такие жертвы порой приходится идти ради получение на приемной стороне чистого клока  ИМХО клок с выхода CDR по определению "чистым" быть не может, ибо он recovered, у него приличный джиттер. Правильнее работать от кварцованного источника, несоответствие частот разруливать средствами протокола.
|
|
|
|
Сообщений в этой теме
Koluchiy Восстановление частоты из потока цифр Apr 21 2011, 08:10 Victor® Цитата(Koluchiy @ Apr 21 2011, 11:10) Здр... Apr 21 2011, 08:22 Koluchiy ЦитатаМне не очень понятно, почему приняли решение... Apr 21 2011, 08:30 des00 Цитата(Koluchiy @ Apr 21 2011, 02:30) Мож... Apr 21 2011, 08:44  Koluchiy Цитата(des00 @ Apr 21 2011, 12:44) я бы с... Apr 21 2011, 09:00   dmitry-tomsk Цитата(Koluchiy @ Apr 21 2011, 12:00) Пла... Apr 21 2011, 12:17 dmitry-tomsk Цитата(Koluchiy @ Apr 21 2011, 12:30) Да ... Apr 21 2011, 08:45 des00 Цитата(Koluchiy @ Apr 21 2011, 07:23) И т... Apr 21 2011, 15:19   Bad0512 Цитата(des00 @ Apr 21 2011, 23:08) ну пря... Apr 21 2011, 16:32    des00 Цитата(Bad0512 @ Apr 21 2011, 11:32) Могу... Apr 21 2011, 16:40  Koluchiy Цитата(Bad0512 @ Apr 21 2011, 19:55) Такт... Apr 22 2011, 07:16   wolfman ЦитатаБыло, да. Но тогда я еще не знал о том, что ... Apr 22 2011, 14:54 wolfman to Koluchiy Я вроде бы Вам, в свое время, указывал... Apr 21 2011, 17:33
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|