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

Прием потока 2 Мб/с

Доброе время суток у меня такой вопрос

 

Ко мне приходит поток 2Мб/с причем он идет постоянно может идти сутки в принципе сам прием не сложен нарезал по тактовой на куски забил в фифо и вперед!!

 

Вопрос состоит в седеющем из за нестабильности генераторов на приемной и передающих платах погодных условий и космического ветра)) Может произойти перекос фаз и за сутки накопится неслабая ошибка! Поэтому я хотел бы захватывать фазу сигнала каждый предний фронт я придумал два пути в общем то это 1 путь просто в немного разных исполнениях

1-ый вариант

Есть 2а автомата 1 следит за фазой и обнуляет в торой по переднему фронту сигнала

2-ой Считает до середины импульса и забирает сигнал затем еще столько же и сбрасывается в 0

 

2-ойвариант

Есть 2а автомата 1 следит за фазой и обнуляет в торой в по переднему фронту сигнала

2-ой выделяет тактовую из сигнала

После чего по тактовой забираем по заднему фронту информацию.

 

Задумка то хороша!!Но исполнение!!Вот вариант №2

 

Process (Signal, CLK)

Variable st : integer range 0 to 31;

begin

 

If signal’event and signal = ‘1’ then

 

St := 0;

 

End if;

 

If ( CLK’event and CLK = ‘1’ ) then

 

--Сдесь делаем тактовую

 

Case st is

When 0 => CLK_dcm = ‘1’;st++;

When 15 =>CLK_dcm = ‘0’;st++;

When 31 =>st:=0;

When others =>st++;

End case;

 

End if;

End process;

 

Так вот Xilinx Пишет что эта конструкция с st не синтезабельна из за отсутствия возможности синхронизации!!

 

ВОПРОС как поймать фазу!!Сделать привязку к фазе!!Вообще я за вариант с тактовой по-моему так проще!!Кто сталкивался подскажите!!ЖДУ!!

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


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

Вопрос состоит в седеющем из за нестабильности генераторов на приемной и передающих платах погодных условий и космического ветра)) Может произойти перекос фаз и за сутки накопится неслабая ошибка! Поэтому я хотел бы захватывать фазу сигнала каждый предний фронт я придумал два пути в общем то это 1 путь просто в немного разных исполнениях

Не совсем понял в чём нужнапридумывать что-то новое, с ходу видится 2 стандартных варианта:

1) как в обычном UART;

2) с испльзованием цифрового ФАПЧ;

Чем они не устраивают?

Покапайте поиском оба подхода.

Для того что-б решить что лучше, мало информации: как информация кодирутся, какие опорные частоты есть и т.п.

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


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

а в каком виде данные то идут?

У меня есть устройство, которое принимает/передает Е1 в HDB3, вытаскиваю тактовую из потока и отдаю дальше на маппер, сбоев не было как в синхронном режиме так и в асинхронном.

 

Если у вас похожая задача могу выложить исходник, но он на AHDL и на выходе у него NRZ.

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


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

Да там все просто идет непрерывный поток 2 Мб/с надо его правильно принять и отослать накомп по изернету.

 

а исходники посмотрел бы, выложите либо сюда либо на мыло [email protected] если не сложно

 

Информация никак не кодируется тоесть: лог 1 = 1, лог 0 = 0 вот и все просто главное не сбиться

 

И кстати гже можно почитать про pll по русски ну или хотябы полезное что нить по английски!!

 

А что за захват частоты в обычном уарте??Там же протоколсвой есть стартоывй стоповый зачем там это ФАПЧ в смысле??!???

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


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

Да там все просто идет непрерывный поток 2 Мб/с надо его правильно принять и отослать накомп по изернету.

Информация никак не кодируется тоесть: лог 1 = 1, лог 0 = 0 вот и все просто главное не сбиться

 

хмм, ну какой то протокол у вас должен же быть. Как-то же вы должны были синхронизовать потоки.

 

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

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


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

 

Ещё посмотрите в сторону эластичного буфера,он как раз применяется в подобных ситуациях(при плезиохронной связи).

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


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

Информация никак не кодируется тоесть: лог 1 = 1, лог 0 = 0 вот и все просто главное не сбиться

Так не пойдёт, по крайней мере для DPLL (для UART можно и так), т.к. будет сбиваться чифровая ФАПЧ.

Как вариант, кодирование 8b/10b, что-бы небыло много последовательных нулей или единиц, или ещё Манчестерский код.

 

И кстати гже можно почитать про pll по русски ну или хотябы полезное что нить по английски!!

А что за захват частоты в обычном уарте??Там же протоколсвой есть стартоывй стоповый зачем там это ФАПЧ в смысле??!???

В общем, курите поиск и описания, Вам нужно подковаться сначала, что-б вопросы были предметными.

Вот для затравки ссылки, которые когда-то собирал:

 

Chip News #9 2002 Характеристики цифровой системы автоподстройки частоты. стр 16 - 19

Chip News #1 2003 Аппаратная реализация двоичной полностью цифровой системы автоподстройки частоты. стр 40 - 42

 

Hisao Yamamoto, Shinsaku Mori

Performance of a binary Quantized All Digital Phased-Locked Loop

with a New Class of Sequantial Filter

IEEE Trans. on Communications Vol. COM-26, No.1, January 1978 pp.35-45

Приведены схема и анализ полностью цифровой ФАПЧ, рекомендую.

 

Это не помню что, но гляньте:

2)74HC4046 datasheet (Philips, Texas Instr. etc)

3)http://gtmkorea.co.kr/DATABOOK/PDF/AN8017.PDF

 

Стр. 7 (138):

http://www.e-insite.net/ednmag/archives/19...8/pdfs/24di.pdf

 

http://www.e-insite.net/ednmag/archives/19...997/13di_05.htm

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


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

хмм, ну какой то протокол у вас должен же быть. Как-то же вы должны были синхронизовать потоки.

 

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

 

Так дело все и в том что поток синхронизировать по переднему фронту больше не за что зацепиться!!

 

Так не пойдёт, по крайней мере для DPLL (для UART можно и так), т.к. будет сбиваться чифровая ФАПЧ.

Как вариант, кодирование 8b/10b, что-бы небыло много последовательных нулей или единиц, или ещё Манчестерский код.

 

 

В общем, курите поиск и описания, Вам нужно подковаться сначала, что-б вопросы были предметными.

Вот для затравки ссылки, которые когда-то собирал:

 

Chip News #9 2002 Характеристики цифровой системы автоподстройки частоты. стр 16 - 19

Chip News #1 2003 Аппаратная реализация двоичной полностью цифровой системы автоподстройки частоты. стр 40 - 42

 

Hisao Yamamoto, Shinsaku Mori

Performance of a binary Quantized All Digital Phased-Locked Loop

with a New Class of Sequantial Filter

IEEE Trans. on Communications Vol. COM-26, No.1, January 1978 pp.35-45

Приведены схема и анализ полностью цифровой ФАПЧ, рекомендую.

 

Это не помню что, но гляньте:

2)74HC4046 datasheet (Philips, Texas Instr. etc)

3)http://gtmkorea.co.kr/DATABOOK/PDF/AN8017.PDF

 

Стр. 7 (138):

http://www.e-insite.net/ednmag/archives/19...8/pdfs/24di.pdf

 

http://www.e-insite.net/ednmag/archives/19...997/13di_05.htm

 

8b/10b???

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

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


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

Так дело все и в том что поток синхронизировать по переднему фронту больше не за что зацепиться!!

8b/10b???

И??? Что не понятно?

Если кратко: UART, фронт используется для старта синхронизации, в процессе приёма коррекция часов не происходит.

Поэтому приём длинных сообщений невозможен из-за рассинхронизации: при приеме каждого байта синхронизация

ловится заново.

ФАПЧ - используются внутренние часы с автоподстройкой, для автоподстройки используется информация от тех-же фронтов.

Синхронизация отслеживается постоянно. Поэтому, для тго, что-б часы не рассинхронизировались, фроныты нужны более менее

постоянно. Много последовательных нулей или единиц могут привести к рассинхронизации и сбою.

Для того что-б этого не происходило, используют специальные приёмы кодирования, например 8b/10b.

 

Вы лучше прочитайте ссылки на материалы, котрые я привёл, описание UART, после чего думаю отпадут многие вопросы...

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


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

если есть доступ к источнику и хороший кабель то самое простое перевести все HDB3 и резать на тактовой в 4-8 раз выше.

 

Синхронизация отслеживается постоянно. Поэтому, для тго, что-б часы не рассинхронизировались, фроныты нужны более менее

постоянно. Много последовательных нулей или единиц могут привести к рассинхронизации и сбою.

 

пройтись скремблером 7 кой самосинхронным, нарезать на тактовой в 4-8 раз выше и собрать сигнал(в доках у хилых такое есть) %).

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


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

если есть доступ к источнику и хороший кабель то самое простое перевести все HDB3 и резать на тактовой в 4-8 раз выше.

Только HDB3 - это 3 уровня, а не 2, и насколько помню, кодирование HDB3 решает ту-де проблему что и 8b/10b, только чуть по другому (http://www.ci.ru/inform16_99/p_05_bil.htm). А так да, тоже вариант. Сам не использовал, но кажись у связистов используется HDB3.

 

пройтись скремблером 7 кой самосинхронным, нарезать на тактовой в 4-8 раз выше и собрать сигнал(в доках у хилых такое есть) %).

Не использовал, ткните носом, где почитать для общего развития, если не трудно.

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


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

если есть доступ к источнику и хороший кабель то самое простое перевести все HDB3 и резать на тактовой в 4-8 раз выше.

 

 

 

пройтись скремблером 7 кой самосинхронным, нарезать на тактовой в 4-8 раз выше и собрать сигнал(в доках у хилых такое есть) %).

 

HDB3???

 

Что значит пройтись скремблером 7 кой самосинхронным в каких доках??Есть ссылка или хотяб что нить чтоб облегчило поиск!!??

 

 

Почитал по ссылке стало немного понятнее!!тока не нашел там 8б/10б!!

 

Прочитав статью я понял что код ко мне приходит в NRZ!

 

Кстати еще Насколько я понял чтоб правильно перекодировать куданибудь из NRZ нужно сначала зацепитьсяза фазу а уж потом алгоритм свой пускать!

 

Если так то какойсмысл перекодировать!??

 

Если поймав фазу я смогу спокойно принять NRZ сигнал!??

 

Для меня главное подстраиваться каждый передний фронт под фазу входного сигнала!!Подстраевать свой клок под него!!

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

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


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

HDB3???

 

http://ru.wikipedia.org/wiki/%D0%9C%D0%B5%...0%BE%D0%B2#HDB3

 

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

 

Что значит пройтись скремблером 7 кой самосинхронным в каких доках??Есть ссылка или хотяб что нить чтоб облегчило поиск!!??

 

кодирование 4/5, 8/10 и т.д. несет цель увеличить количество переходов в сигнале, для облегчения работы системы синхронизации. но имеет недостаток в виде расширения полосы(для передачи того же объема информации нужна тактовая выше). если расширение полосы не возможно то как вариант обработать данные аддитивным скремблером в приемнике и передатчике.

 

http://en.wikipedia.org/wiki/Scrambler

 

но в случае возникновения битовой ошибки у вас будет размножение ошибок.

 

Кстати еще Насколько я понял чтоб правильно перекодировать куданибудь из NRZ нужно сначала зацепитьсяза фазу а уж потом алгоритм свой пускать!

 

Надо закодировать сигнал на передающей стороне!!! кодирование на приемной смысла не имеет.

 

Почему я вас и спрашивал : есть ли у вас доступ к передатчику или нет, если доступа нет, то все вышеизложенное не имеет смысла.

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


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

Надо закодировать сигнал на передающей стороне!!! кодирование на приемной смысла не имеет.

 

Почему я вас и спрашивал : есть ли у вас доступ к передатчику или нет, если доступа нет, то все вышеизложенное не имеет смысла.

 

К передатчику доступа не имею!!

 

Но вроди кое что придумал!!

 

Сейчас потестирую! Потом выложу ВД если все получится!!

 

Спасиби за содействие и информащию!!

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


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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...