Перейти к содержанию

    

Слежение за клоком с рваным темпом (поток Е2)

Добрый день!

Пытаюсь реализовать на ПЛИС асинхронный мультиплексор/демультиплексор потока Е2.

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

Делаю все согласно G.745. Так вот получается, что запись в буфера со стороны принятого Е2 идет рваным темпом, т.к. имеются пропуски на временных интервалах служебных символов потока Е2 и команд согласования скоростей.

Как в таком случае по науке делают подстройку ФАПЧ? Ведь стандартная схема с фазовым детектором работать не будет. По крайней мере мне так кажется.

Так вот я решил следить за приходящим темпом по разнице указателей чтения и записи в буфер. Если УЧ приближается к УЗ, то снижаем скорость клока чтения 2048, если удаляется то наоборот поднимаем. Насколько такой подход имеет право на жизнь?

И еще сопутствующий вопрос. Можно ли в качестве ГУНа для подстройки частоты применить синтезатор на основе DDS? Что то типа AD9838. Почему то нигде не встречал описание такого решения, а вроде как оно видится достаточно работоспособным, ведь такие синтезаторы перестраиваются с малым шагом, без скачков фазы. Можно было бы плавно крутить частоту при удалении и приближении указаелей в буфере.

Если кто работает в данной теме направьте на путь истинный. Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

на практике приходится использовать спец м/с (например DS3102 или SI5364) или делать свой NCO и затем чистить его выход при помощи внешней аналоговой PLL. Встроенные в плис PLL слишком чувствительны, и для "чистки" джиттера использовать их не получается.

Поделиться сообщением


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

А куда потом поступают Ваши потоки Е1 ?

Если Вы их подаете на микросхему LIU типа DS21448 (или подобную),

то все проблемы с подавлением дрожаний клока Е1 решает эта микросхема.

Мы напрямую подаем на нее "рванный" тактовый сигнал с демультиплексора,

а она на выходе стыка Е1 формирует "чистый" (в соответствии с требованиями ITU-T) сигнал.

 

Как в таком случае по науке делают подстройку ФАПЧ? Ведь стандартная схема с фазовым детектором работать не будет. По крайней мере мне так кажется.

Так вот я решил следить за приходящим темпом по разнице указателей чтения и записи в буфер. Если УЧ приближается к УЗ, то снижаем скорость клока чтения 2048, если удаляется то наоборот поднимаем. Насколько такой подход имеет право на жизнь?

Ну мы примерно так и делали (когда не использовали покупных LIU),

все зависит от Ваших требований к дрожаниям выходного сигнала Е1.

 

И еще сопутствующий вопрос. Можно ли в качестве ГУНа для подстройки частоты применить синтезатор на основе DDS? Что то типа AD9838. Почему то нигде не встречал описание такого решения, а вроде как оно видится достаточно работоспособным, ведь такие синтезаторы перестраиваются с малым шагом, без скачков фазы. Можно было бы плавно крутить частоту при удалении и приближении указаелей в буфере.

Применить то можно, а нужен ли настолько уж чистый тактовый сигнал,

мы обходились DDS реализованном в ПЛИС на частоте 65,536 МГц.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
А куда потом поступают Ваши потоки Е1 ?

Если Вы их подаете на микросхему LIU типа DS21448 (или подобную),

то все проблемы с подавлением дрожаний клока Е1 решает эта микросхема.

Ну да, поток далее идет на LIU Е1. У меня Exar-овские с джиттеродавкой, но я что то сомневаюсь, что она справится с таким сигналом. Надо подумать, попробовать.

Применить то можно, а нужен ли настолько уж чистый тактовый сигнал,

мы обходились DDS реализованном в ПЛИС на частоте 65,536 МГц.

Мне нехватеат знаний, чтобы реализовать DDS в ПЛИС.

Я пробовал подстраивать частоту клоком 2048x64. Делал счетчики с делением на 63 и 65, но получается слишком большой шаг подстройки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Ну да, поток далее идет на LIU Е1. У меня Exar-овские с джиттеродавкой, но я что то сомневаюсь, что она справится с таким сигналом. Надо подумать, попробовать.

С Exar-овскими LIU дела не имел, но не думаю что они хуже Dallas-ких.

В любом случае, надо не сомневаться, а смотреть datasheet, там все написано...

 

Мне нехватеат знаний, чтобы реализовать DDS в ПЛИС.

Я пробовал подстраивать частоту клоком 2048x64. Делал счетчики с делением на 63 и 65, но получается слишком большой шаг подстройки.

Вот пример делителя с подстройкой:

//    Clk - Тактовая 65,536 МГц
    reg [8:0]FreqOffset;                    // Растройка частоты (знаковое -256..0..255)
    reg eClkOutData;                        // Разрешение счета с частотой выходного сигнала: 2,048 + (FreqOffset * 0.5e-6) МГц
    reg [25:0]Div_32;                       // Делитель на 32 с подстройкой

    always @(posedge Clk)
        {eClkOutData, Div_32} <= {1'b0, Div_32} + 27'h200000 + {{18{FreqOffset[8]}}, FreqOffset};

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"...Ведь стандартная схема с фазовым детектором работать не будет..."

Будет, если сравнивать в ФД тактовые сигналы не на частоте 2.048 МГц, а на более низкой. Выберите коэффициенты деления так, чтобы "рваность" такта (уже поделенного) не превышала "плюс/минус два пи", и тогда ФД на двух триггерах не будет срываться из режима слежения. Использовал подавление джиттера во внешней ИМС в ПРИЕМНОМ направлении, и оба параметра по джиттеру потока Е1 были в норме и с запасом, чего и всем желаю :rolleyes:

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Так вот я решил следить за приходящим темпом по разнице указателей чтения и записи в буфер. Если УЧ приближается к УЗ, то снижаем скорость клока чтения 2048, если удаляется то наоборот поднимаем. Насколько такой подход имеет право на жизнь?

Именно такой подход реализован в микросхеме LXT350.

См. раздел Jitter Attenuation.

 

Но это реализовано на стороне приема Е1.

 

Делаю все согласно G.745. Так вот получается, что запись в буфера со стороны принятого Е2 идет рваным темпом, т.к. имеются пропуски на временных интервалах служебных символов потока Е2 и команд согласования скоростей.

Как в таком случае по науке делают подстройку ФАПЧ? Ведь стандартная схема с фазовым детектором работать не будет. По крайней мере мне так кажется.

Возможно, за давностью лет все забыл и мой комментарий будет не в тему. Тем не менее.

При приеме Е2 поток принимается посредством ФАПЧ на постоянной скорости в эластичную память. Служебные символы позволяют Вам изымать их из потока, если объем принимаемых данных начинает преобладать над объемом отправляемых. При этом информационная скорость отправляемого потока может быть тоже постоянной.

 

Шаг подстройки частоты можно сделать условно сколь угодно малым, ограничен ресурсами ПЛИС.

Конечно, со скачком фазы. Но зачем Вам "плавно крутить частоту при удалении и приближении указателей в буфере"? На мой скромный взгляд, это ненужное переусложнение.

Изменено пользователем x736C

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация