реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> LVDS deserializer, Можно ли реализовать в ПЛИС Cyclone II
studert
сообщение Nov 27 2007, 10:49
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 76
Регистрация: 6-03-05
Из: Новосибирск
Пользователь №: 3 121



Очень заманчиво использовать в проекте последовательный LVDS канал связи с Cmos Image Sensor, это позволит сделать длинное (как я понял до 8 метров) соединение между платами матрицы и управляющей плис. Можно ли реализовать в Cyclone II функции преобразования обратно из последовательного LVDS сигнала в параллельный(производителем матрицы рекомендован DS92LV1212), или с такой задачей спрвятся только стратиксы и им подобные?
Go to the top of the page
 
+Quote Post
AndyBig
сообщение Nov 27 2007, 14:02
Сообщение #2


Иногдящий
****

Группа: Свой
Сообщений: 691
Регистрация: 28-02-05
Пользователь №: 2 931



Вы бы отписали разрядность данных и частоту клока от этой матрицы.
Go to the top of the page
 
+Quote Post
studert
сообщение Nov 28 2007, 05:06
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 76
Регистрация: 6-03-05
Из: Новосибирск
Пользователь №: 3 121



Разрядность данных 10 бит, частота до 27 МГц. На прикрепленных картинках представлена функциональная схема десериалайзера и формат последоватльных данных. Я не понимаю как работает схема восстановления клока из принятого битового потока, как-нибудь можно реализовать это с помощью циклоновской ПЛЛ?
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
dinam
сообщение Nov 28 2007, 07:45
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 415
Регистрация: 10-06-05
Из: Наукоград Кольцово(Новосибирск)
Пользователь №: 5 898



Я тоже неделю назад стал делать камеру на этой матрице и Cyclone II smile.gif . Насколько я сейчас разобрался тактовую частоту над будет гнать вместе с последовательными данными, т. к. поток данных с камеры не закодирован так, чтобы из него можно было получить тактовую sad.gif . Да и altlvds_rx вроде не позволяет этого сделать. В качестве десериалайзера используй altlvds_rx megafunction. А матрицы уже купили? Если да то где?
Go to the top of the page
 
+Quote Post
Andy-P
сообщение Nov 28 2007, 08:08
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 56
Регистрация: 21-10-04
Пользователь №: 943



Цитата(studert @ Nov 27 2007, 13:49) *
Можно ли реализовать в Cyclone II функции преобразования обратно из последовательного LVDS сигнала в параллельный(производителем матрицы рекомендован DS92LV1212), или с такой задачей спрвятся только стратиксы и им подобные?


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

Сенсор также выдает сопроводительный данным клок. Возможно построить синхронизированный источником приемник.
Go to the top of the page
 
+Quote Post
studert
сообщение Nov 28 2007, 08:13
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 76
Регистрация: 6-03-05
Из: Новосибирск
Пользователь №: 3 121



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

С матрицами пока окончательно не определились, но что-то небольшой выбор, подходят только микроновские mt9v022/032/403, скорее всего на 032 остановимся. Кстати вы полную документацию на mt9v032 у микрона выбили, или урезанной версией пользуетесь? Мне пока это не удалось.
Go to the top of the page
 
+Quote Post
AndyBig
сообщение Nov 28 2007, 09:39
Сообщение #7


Иногдящий
****

Группа: Свой
Сообщений: 691
Регистрация: 28-02-05
Пользователь №: 2 931



Если сенсор умеет гнать клок с данными, то без проблем можно использовать функцию десериалайзер altlvds_rx. А восстанавливать клок из старт-стоповых бит потока врядли получится, хотя могу и ошибаться.
Go to the top of the page
 
+Quote Post
dinam
сообщение Nov 28 2007, 10:05
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 415
Регистрация: 10-06-05
Из: Наукоград Кольцово(Новосибирск)
Пользователь №: 5 898



Цитата(studert @ Nov 28 2007, 14:13) *
С матрицами пока окончательно не определились, но что-то небольшой выбор, подходят только микроновские mt9v022/032/403, скорее всего на 032 остановимся. Кстати вы полную документацию на mt9v032 у микрона выбили, или урезанной версией пользуетесь? Мне пока это не удалось.
Зарегистрировался и получил доступ ко всем докам под NDA. Остановился на 032, т. к. у других корпус BGA, а с ним связываться не хочется. Да datasheeta на 023 пока нет на сайте Microna.
На счет связи до 8 метров, как мне кажется Micron лукавит, т.к. есть ещё же I2C, а он на такое расстояние не пойдет sad.gif .
Go to the top of the page
 
+Quote Post
alex5991
сообщение Nov 28 2007, 13:19
Сообщение #9


Участник
*

Группа: Новичок
Сообщений: 20
Регистрация: 13-10-06
Пользователь №: 21 281



Цитата(studert @ Nov 28 2007, 09:06) *
Разрядность данных 10 бит, частота до 27 МГц. На прикрепленных картинках представлена функциональная схема десериалайзера и формат последоватльных данных. Я не понимаю как работает схема восстановления клока из принятого битового потока, как-нибудь можно реализовать это с помощью циклоновской ПЛЛ?

Циклоновской PLL восстановление клока из потока данных не по зубам. Однако проект в принципе на Циклоне реализуем.
Мы делаем подобную штуку для асинхронного приема SDI (270Mb/s - 10bit x 27MHz).
За основу взяли ASI интерфейс от Alterы, только немного подшаманили под себя.
Ресурсов требется порядко 200 cell + PLL + FIFO.
Оригинальная МегаФункция была под CycloneI. Мы ее пользуем во Циклонах всех трех поколений
В вашем случае необходимо будет только продумать, как находить границы слов.
Go to the top of the page
 
+Quote Post
studert
сообщение Nov 29 2007, 07:33
Сообщение #10


Частый гость
**

Группа: Свой
Сообщений: 76
Регистрация: 6-03-05
Из: Новосибирск
Пользователь №: 3 121



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


Я как раз так и понял. Умножаем входной клок 27 Мгц на разрядность параллельных данных, с полученной частотой загружаем входной битовый поток в сдвиговый регистр, а дальше нужно поставить логическую схему, которая будет отлавливать границы пачек. Как раз в этом и вопрос: у меня пока одна идея, сделать сдвиговый регистр на 2-3 пачки и искать в нем позиции старт/стоп битов и по этому событию считывать регист? Или лучше точно выяснить связь фазы начала кадра в битовом потоке с фазой тактового сигнала 27 Мгц?
Go to the top of the page
 
+Quote Post
alex5991
сообщение Nov 30 2007, 10:12
Сообщение #11


Участник
*

Группа: Новичок
Сообщений: 20
Регистрация: 13-10-06
Пользователь №: 21 281



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

Насчет границ слов подход правильный. Но перед тем как искать границы слов необходимо найти границы символов, ибо в общем случае 270MHz приемника и 270MHz передатчика это не одно и тоже.
В упомянутой мною системе прием ведется на утроенной битовой частоте и оперативно выбирается лучшая из трех фаз, а уже после этого накопленые правильно принятые битовые последовательности подаются на схему определения границ слов.
А вообще лучше один раз увидеть самому, поэтому, если Вы знакомы с VERILOG, могу поискать и выслать проект.
Go to the top of the page
 
+Quote Post
tvv
сообщение Dec 1 2007, 00:11
Сообщение #12


Частый гость
**

Группа: Свой
Сообщений: 172
Регистрация: 8-10-04
Пользователь №: 824



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

Все же стоит сначала ознакомиться с описанием altlvds, как Вам советовали. В результате, Вы получите на выходе, в параллельной шине, 8бит данных и два строба (кадра и линий), плюс синхронный клок на 27MHz. Их дальнейшая обработка не должна вызывать трудности. Успехов.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 08:47
Рейтинг@Mail.ru


Страница сгенерированна за 0.01641 секунд с 7
ELECTRONIX ©2004-2016