|
|
  |
LVDS deserializer, Можно ли реализовать в ПЛИС Cyclone II |
|
|
|
Nov 28 2007, 05:06
|
Частый гость
 
Группа: Свой
Сообщений: 76
Регистрация: 6-03-05
Из: Новосибирск
Пользователь №: 3 121

|
Разрядность данных 10 бит, частота до 27 МГц. На прикрепленных картинках представлена функциональная схема десериалайзера и формат последоватльных данных. Я не понимаю как работает схема восстановления клока из принятого битового потока, как-нибудь можно реализовать это с помощью циклоновской ПЛЛ?
Эскизы прикрепленных изображений
|
|
|
|
|
Nov 28 2007, 08:08
|
Участник

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

|
Цитата(studert @ Nov 27 2007, 13:49)  Можно ли реализовать в Cyclone II функции преобразования обратно из последовательного LVDS сигнала в параллельный(производителем матрицы рекомендован DS92LV1212), или с такой задачей спрвятся только стратиксы и им подобные? Думаю, возможно.  Посмотрите Altera’s application notes AN344 & AN356. Несмотря на то, что в этих документах используется 8В10В кодирование, а сенсор выдает в старт-стоп фреймах, это не принципиальный момент, если писать функцию самостоятельно. Сенсор также выдает сопроводительный данным клок. Возможно построить синхронизированный источником приемник.
|
|
|
|
|
Nov 28 2007, 08:13
|
Частый гость
 
Группа: Свой
Сообщений: 76
Регистрация: 6-03-05
Из: Новосибирск
Пользователь №: 3 121

|
Цитата(dinam @ Nov 28 2007, 13:45)  Я тоже неделю назад стал делать камеру на этой матрице и Cyclone II  . Насколько я сейчас разобрался тактовую частоту над будет гнать вместе с последовательными данными, т. к. поток данных с камеры не закодирован так, чтобы из него можно было получить тактовую  . Да и altlvds_rx вроде не позволяет этого сделать. В качестве десериалайзера используй altlvds_rx megafunction. А матрицы уже купили? Если да то где? С матрицами пока окончательно не определились, но что-то небольшой выбор, подходят только микроновские mt9v022/032/403, скорее всего на 032 остановимся. Кстати вы полную документацию на mt9v032 у микрона выбили, или урезанной версией пользуетесь? Мне пока это не удалось.
|
|
|
|
|
Nov 28 2007, 10:05
|
Профессионал
    
Группа: Свой
Сообщений: 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, а он на такое расстояние не пойдет  .
|
|
|
|
|
Nov 28 2007, 13:19
|
Участник

Группа: Новичок
Сообщений: 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. Мы ее пользуем во Циклонах всех трех поколений В вашем случае необходимо будет только продумать, как находить границы слов.
|
|
|
|
|
Nov 29 2007, 07:33
|
Частый гость
 
Группа: Свой
Сообщений: 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 Мгц?
|
|
|
|
|
Nov 30 2007, 10:12
|
Участник

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

|
Цитата(studert @ Nov 29 2007, 11:33)  Я как раз так и понял. Умножаем входной клок 27 Мгц на разрядность параллельных данных, с полученной частотой загружаем входной битовый поток в сдвиговый регистр, а дальше нужно поставить логическую схему, которая будет отлавливать границы пачек. Как раз в этом и вопрос: у меня пока одна идея, сделать сдвиговый регистр на 2-3 пачки и искать в нем позиции старт/стоп битов и по этому событию считывать регист? Или лучше точно выяснить связь фазы начала кадра в битовом потоке с фазой тактового сигнала 27 Мгц? Насчет границ слов подход правильный. Но перед тем как искать границы слов необходимо найти границы символов, ибо в общем случае 270MHz приемника и 270MHz передатчика это не одно и тоже. В упомянутой мною системе прием ведется на утроенной битовой частоте и оперативно выбирается лучшая из трех фаз, а уже после этого накопленые правильно принятые битовые последовательности подаются на схему определения границ слов. А вообще лучше один раз увидеть самому, поэтому, если Вы знакомы с VERILOG, могу поискать и выслать проект.
|
|
|
|
|
Dec 1 2007, 00:11
|
Частый гость
 
Группа: Свой
Сообщений: 172
Регистрация: 8-10-04
Пользователь №: 824

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