Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: LVDS deserializer
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
studert
Очень заманчиво использовать в проекте последовательный LVDS канал связи с Cmos Image Sensor, это позволит сделать длинное (как я понял до 8 метров) соединение между платами матрицы и управляющей плис. Можно ли реализовать в Cyclone II функции преобразования обратно из последовательного LVDS сигнала в параллельный(производителем матрицы рекомендован DS92LV1212), или с такой задачей спрвятся только стратиксы и им подобные?
AndyBig
Вы бы отписали разрядность данных и частоту клока от этой матрицы.
studert
Разрядность данных 10 бит, частота до 27 МГц. На прикрепленных картинках представлена функциональная схема десериалайзера и формат последоватльных данных. Я не понимаю как работает схема восстановления клока из принятого битового потока, как-нибудь можно реализовать это с помощью циклоновской ПЛЛ?
dinam
Я тоже неделю назад стал делать камеру на этой матрице и Cyclone II smile.gif . Насколько я сейчас разобрался тактовую частоту над будет гнать вместе с последовательными данными, т. к. поток данных с камеры не закодирован так, чтобы из него можно было получить тактовую sad.gif . Да и altlvds_rx вроде не позволяет этого сделать. В качестве десериалайзера используй altlvds_rx megafunction. А матрицы уже купили? Если да то где?
Andy-P
Цитата(studert @ Nov 27 2007, 13:49) *
Можно ли реализовать в Cyclone II функции преобразования обратно из последовательного LVDS сигнала в параллельный(производителем матрицы рекомендован DS92LV1212), или с такой задачей спрвятся только стратиксы и им подобные?


Думаю, возможно. smile.gif Посмотрите Altera’s application notes AN344 & AN356. Несмотря на то, что в этих документах используется 8В10В кодирование, а сенсор выдает в старт-стоп фреймах, это не принципиальный момент, если писать функцию самостоятельно.

Сенсор также выдает сопроводительный данным клок. Возможно построить синхронизированный источником приемник.
studert
Цитата(dinam @ Nov 28 2007, 13:45) *
Я тоже неделю назад стал делать камеру на этой матрице и Cyclone II smile.gif . Насколько я сейчас разобрался тактовую частоту над будет гнать вместе с последовательными данными, т. к. поток данных с камеры не закодирован так, чтобы из него можно было получить тактовую sad.gif . Да и altlvds_rx вроде не позволяет этого сделать. В качестве десериалайзера используй altlvds_rx megafunction. А матрицы уже купили? Если да то где?

С матрицами пока окончательно не определились, но что-то небольшой выбор, подходят только микроновские mt9v022/032/403, скорее всего на 032 остановимся. Кстати вы полную документацию на mt9v032 у микрона выбили, или урезанной версией пользуетесь? Мне пока это не удалось.
AndyBig
Если сенсор умеет гнать клок с данными, то без проблем можно использовать функцию десериалайзер altlvds_rx. А восстанавливать клок из старт-стоповых бит потока врядли получится, хотя могу и ошибаться.
dinam
Цитата(studert @ Nov 28 2007, 14:13) *
С матрицами пока окончательно не определились, но что-то небольшой выбор, подходят только микроновские mt9v022/032/403, скорее всего на 032 остановимся. Кстати вы полную документацию на mt9v032 у микрона выбили, или урезанной версией пользуетесь? Мне пока это не удалось.
Зарегистрировался и получил доступ ко всем докам под NDA. Остановился на 032, т. к. у других корпус BGA, а с ним связываться не хочется. Да datasheeta на 023 пока нет на сайте Microna.
На счет связи до 8 метров, как мне кажется Micron лукавит, т.к. есть ещё же I2C, а он на такое расстояние не пойдет sad.gif .
alex5991
Цитата(studert @ Nov 28 2007, 09:06) *
Разрядность данных 10 бит, частота до 27 МГц. На прикрепленных картинках представлена функциональная схема десериалайзера и формат последоватльных данных. Я не понимаю как работает схема восстановления клока из принятого битового потока, как-нибудь можно реализовать это с помощью циклоновской ПЛЛ?

Циклоновской PLL восстановление клока из потока данных не по зубам. Однако проект в принципе на Циклоне реализуем.
Мы делаем подобную штуку для асинхронного приема SDI (270Mb/s - 10bit x 27MHz).
За основу взяли ASI интерфейс от Alterы, только немного подшаманили под себя.
Ресурсов требется порядко 200 cell + PLL + FIFO.
Оригинальная МегаФункция была под CycloneI. Мы ее пользуем во Циклонах всех трех поколений
В вашем случае необходимо будет только продумать, как находить границы слов.
studert
Цитата(alex5991 @ Nov 28 2007, 19:19) *
Циклоновской PLL восстановление клока из потока данных не по зубам. Однако проект в принципе на Циклоне реализуем.
Мы делаем подобную штуку для асинхронного приема SDI (270Mb/s - 10bit x 27MHz).
За основу взяли ASI интерфейс от Alterы, только немного подшаманили под себя.
Ресурсов требется порядко 200 cell + PLL + FIFO.
Оригинальная МегаФункция была под CycloneI. Мы ее пользуем во Циклонах всех трех поколений
В вашем случае необходимо будет только продумать, как находить границы слов.


Я как раз так и понял. Умножаем входной клок 27 Мгц на разрядность параллельных данных, с полученной частотой загружаем входной битовый поток в сдвиговый регистр, а дальше нужно поставить логическую схему, которая будет отлавливать границы пачек. Как раз в этом и вопрос: у меня пока одна идея, сделать сдвиговый регистр на 2-3 пачки и искать в нем позиции старт/стоп битов и по этому событию считывать регист? Или лучше точно выяснить связь фазы начала кадра в битовом потоке с фазой тактового сигнала 27 Мгц?
alex5991
Цитата(studert @ Nov 29 2007, 11:33) *
Я как раз так и понял. Умножаем входной клок 27 Мгц на разрядность параллельных данных, с полученной частотой загружаем входной битовый поток в сдвиговый регистр, а дальше нужно поставить логическую схему, которая будет отлавливать границы пачек. Как раз в этом и вопрос: у меня пока одна идея, сделать сдвиговый регистр на 2-3 пачки и искать в нем позиции старт/стоп битов и по этому событию считывать регист? Или лучше точно выяснить связь фазы начала кадра в битовом потоке с фазой тактового сигнала 27 Мгц?

Насчет границ слов подход правильный. Но перед тем как искать границы слов необходимо найти границы символов, ибо в общем случае 270MHz приемника и 270MHz передатчика это не одно и тоже.
В упомянутой мною системе прием ведется на утроенной битовой частоте и оперативно выбирается лучшая из трех фаз, а уже после этого накопленые правильно принятые битовые последовательности подаются на схему определения границ слов.
А вообще лучше один раз увидеть самому, поэтому, если Вы знакомы с VERILOG, могу поискать и выслать проект.
tvv
Цитата(studert @ Nov 29 2007, 10:33) *
Я как раз так и понял. Умножаем входной клок 27 Мгц на разрядность параллельных данных, с полученной частотой загружаем входной битовый поток в сдвиговый регистр, а дальше нужно поставить логическую схему, которая будет отлавливать границы пачек. Как раз в этом и вопрос: у меня пока одна идея, сделать сдвиговый регистр на 2-3 пачки и искать в нем позиции старт/стоп битов и по этому событию считывать регист? Или лучше точно выяснить связь фазы начала кадра в битовом потоке с фазой тактового сигнала 27 Мгц?

Все же стоит сначала ознакомиться с описанием altlvds, как Вам советовали. В результате, Вы получите на выходе, в параллельной шине, 8бит данных и два строба (кадра и линий), плюс синхронный клок на 27MHz. Их дальнейшая обработка не должна вызывать трудности. Успехов.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.