Zeratul 0 15 апреля, 2009 Опубликовано 15 апреля, 2009 · Жалоба Доброе время суток у меня такой вопрос Ко мне приходит поток 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 не синтезабельна из за отсутствия возможности синхронизации!! ВОПРОС как поймать фазу!!Сделать привязку к фазе!!Вообще я за вариант с тактовой по-моему так проще!!Кто сталкивался подскажите!!ЖДУ!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Builder 0 15 апреля, 2009 Опубликовано 15 апреля, 2009 · Жалоба Вопрос состоит в седеющем из за нестабильности генераторов на приемной и передающих платах погодных условий и космического ветра)) Может произойти перекос фаз и за сутки накопится неслабая ошибка! Поэтому я хотел бы захватывать фазу сигнала каждый предний фронт я придумал два пути в общем то это 1 путь просто в немного разных исполнениях Не совсем понял в чём нужнапридумывать что-то новое, с ходу видится 2 стандартных варианта: 1) как в обычном UART; 2) с испльзованием цифрового ФАПЧ; Чем они не устраивают? Покапайте поиском оба подхода. Для того что-б решить что лучше, мало информации: как информация кодирутся, какие опорные частоты есть и т.п. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
wolfman 0 15 апреля, 2009 Опубликовано 15 апреля, 2009 · Жалоба а в каком виде данные то идут? У меня есть устройство, которое принимает/передает Е1 в HDB3, вытаскиваю тактовую из потока и отдаю дальше на маппер, сбоев не было как в синхронном режиме так и в асинхронном. Если у вас похожая задача могу выложить исходник, но он на AHDL и на выходе у него NRZ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zeratul 0 15 апреля, 2009 Опубликовано 15 апреля, 2009 · Жалоба Да там все просто идет непрерывный поток 2 Мб/с надо его правильно принять и отослать накомп по изернету. а исходники посмотрел бы, выложите либо сюда либо на мыло [email protected] если не сложно Информация никак не кодируется тоесть: лог 1 = 1, лог 0 = 0 вот и все просто главное не сбиться И кстати гже можно почитать про pll по русски ну или хотябы полезное что нить по английски!! А что за захват частоты в обычном уарте??Там же протоколсвой есть стартоывй стоповый зачем там это ФАПЧ в смысле??!??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 16 апреля, 2009 Опубликовано 16 апреля, 2009 · Жалоба Да там все просто идет непрерывный поток 2 Мб/с надо его правильно принять и отослать накомп по изернету. Информация никак не кодируется тоесть: лог 1 = 1, лог 0 = 0 вот и все просто главное не сбиться хмм, ну какой то протокол у вас должен же быть. Как-то же вы должны были синхронизовать потоки. есть много вариантов. асинхронный UART самый простой, за счет расширения полосы вы получаете возможность привязки данных по фазе по старт-стоп битам. Есть варианты с канальным кодированием, есть с цифровой петлей ФАПЧ и т.д. Выбор конкретного варианта зависит от требований к реализации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 16 апреля, 2009 Опубликовано 16 апреля, 2009 · Жалоба Ещё посмотрите в сторону эластичного буфера,он как раз применяется в подобных ситуациях(при плезиохронной связи). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Builder 0 16 апреля, 2009 Опубликовано 16 апреля, 2009 · Жалоба Информация никак не кодируется тоесть: лог 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zeratul 0 16 апреля, 2009 Опубликовано 16 апреля, 2009 (изменено) · Жалоба хмм, ну какой то протокол у вас должен же быть. Как-то же вы должны были синхронизовать потоки. есть много вариантов. асинхронный 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??? Изменено 16 апреля, 2009 пользователем Serg` Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Builder 0 16 апреля, 2009 Опубликовано 16 апреля, 2009 · Жалоба Так дело все и в том что поток синхронизировать по переднему фронту больше не за что зацепиться!! 8b/10b??? И??? Что не понятно? Если кратко: UART, фронт используется для старта синхронизации, в процессе приёма коррекция часов не происходит. Поэтому приём длинных сообщений невозможен из-за рассинхронизации: при приеме каждого байта синхронизация ловится заново. ФАПЧ - используются внутренние часы с автоподстройкой, для автоподстройки используется информация от тех-же фронтов. Синхронизация отслеживается постоянно. Поэтому, для тго, что-б часы не рассинхронизировались, фроныты нужны более менее постоянно. Много последовательных нулей или единиц могут привести к рассинхронизации и сбою. Для того что-б этого не происходило, используют специальные приёмы кодирования, например 8b/10b. Вы лучше прочитайте ссылки на материалы, котрые я привёл, описание UART, после чего думаю отпадут многие вопросы... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 16 апреля, 2009 Опубликовано 16 апреля, 2009 · Жалоба если есть доступ к источнику и хороший кабель то самое простое перевести все HDB3 и резать на тактовой в 4-8 раз выше. Синхронизация отслеживается постоянно. Поэтому, для тго, что-б часы не рассинхронизировались, фроныты нужны более менее постоянно. Много последовательных нулей или единиц могут привести к рассинхронизации и сбою. пройтись скремблером 7 кой самосинхронным, нарезать на тактовой в 4-8 раз выше и собрать сигнал(в доках у хилых такое есть) %). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Builder 0 16 апреля, 2009 Опубликовано 16 апреля, 2009 · Жалоба если есть доступ к источнику и хороший кабель то самое простое перевести все HDB3 и резать на тактовой в 4-8 раз выше. Только HDB3 - это 3 уровня, а не 2, и насколько помню, кодирование HDB3 решает ту-де проблему что и 8b/10b, только чуть по другому (http://www.ci.ru/inform16_99/p_05_bil.htm). А так да, тоже вариант. Сам не использовал, но кажись у связистов используется HDB3. пройтись скремблером 7 кой самосинхронным, нарезать на тактовой в 4-8 раз выше и собрать сигнал(в доках у хилых такое есть) %). Не использовал, ткните носом, где почитать для общего развития, если не трудно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zeratul 0 16 апреля, 2009 Опубликовано 16 апреля, 2009 (изменено) · Жалоба если есть доступ к источнику и хороший кабель то самое простое перевести все HDB3 и резать на тактовой в 4-8 раз выше. пройтись скремблером 7 кой самосинхронным, нарезать на тактовой в 4-8 раз выше и собрать сигнал(в доках у хилых такое есть) %). HDB3??? Что значит пройтись скремблером 7 кой самосинхронным в каких доках??Есть ссылка или хотяб что нить чтоб облегчило поиск!!?? http://www.ci.ru/inform16_99/p_05_bil.htm) Почитал по ссылке стало немного понятнее!!тока не нашел там 8б/10б!! Прочитав статью я понял что код ко мне приходит в NRZ! Кстати еще Насколько я понял чтоб правильно перекодировать куданибудь из NRZ нужно сначала зацепитьсяза фазу а уж потом алгоритм свой пускать! Если так то какойсмысл перекодировать!?? Если поймав фазу я смогу спокойно принять NRZ сигнал!?? Для меня главное подстраиваться каждый передний фронт под фазу входного сигнала!!Подстраевать свой клок под него!! Изменено 16 апреля, 2009 пользователем Serg` Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 17 апреля, 2009 Опубликовано 17 апреля, 2009 · Жалоба 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 нужно сначала зацепитьсяза фазу а уж потом алгоритм свой пускать! Надо закодировать сигнал на передающей стороне!!! кодирование на приемной смысла не имеет. Почему я вас и спрашивал : есть ли у вас доступ к передатчику или нет, если доступа нет, то все вышеизложенное не имеет смысла. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zeratul 0 17 апреля, 2009 Опубликовано 17 апреля, 2009 · Жалоба Надо закодировать сигнал на передающей стороне!!! кодирование на приемной смысла не имеет. Почему я вас и спрашивал : есть ли у вас доступ к передатчику или нет, если доступа нет, то все вышеизложенное не имеет смысла. К передатчику доступа не имею!! Но вроди кое что придумал!! Сейчас потестирую! Потом выложу ВД если все получится!! Спасиби за содействие и информащию!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться