Jump to content

    
Sign in to follow this  
Dec_NN

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

Recommended Posts

Добрый день!

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

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

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
Так вот получается, что запись в буфера со стороны принятого Е2 идет рваным темпом, т.к. имеются пропуски на временных интервалах служебных символов потока Е2 и команд согласования скоростей.

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

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

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

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

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

 

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

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

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

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

 

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

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

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

 

Share this post


Link to post
Share on other sites
А куда потом поступают Ваши потоки Е1 ?

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

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

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

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

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

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

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

Share this post


Link to post
Share on other sites
Ну да, поток далее идет на 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};

 

Share this post


Link to post
Share on other sites

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

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

 

Share this post


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

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

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

 

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

 

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

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

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

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

 

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

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

Edited by x736C

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this