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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> как подружить камеру с ПЛИС и SRAM?, запись данных с камеры в память через ПЛИС
NaughtyFreak
сообщение Aug 2 2013, 13:18
Сообщение #1


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

Группа: Участник
Сообщений: 90
Регистрация: 7-10-11
Из: Москва
Пользователь №: 67 593



Категорически приветствую, тов. плисоводы!

Сабж: подружить кмос-камеру mt9d111 от Aptina со стандартным digital camera интерфейсом, тот что v_sync, h_sync, pix_clk и d0...d7 с плисиной типа MAX II или 4-м циклоном (что под рукой есть), чтоб оная швиденько закидывала 16-битные слова в 16-битную статическую память. Камера выдает 2 клок-такта на пиксель c периодом такта 12-13нс (~80МГц), за каждый клок она выдает 8 бит информации с параллельной шины. 10-наносекундная статика подключена по стандартноу 8080 интерфейсу. Т.к. плисы я пока раскуривал на уровне начальных шажков типа "помигать светодиодиком", и никак не могу привыкнуть к ее "параллельности" процессов после армов, встал вот такой вопрос:
Можно ли физически реализовать след. алгоритм работы сих девайсов:

Сначала камера выдает v_sync (начало кадра)+h_sync (начало строки) и далее 2 такта на пиксель. после выставления v_sync ставим А0...А19 линии памяти в начало (0х000), WE=1, CS=0, OE=1. Далее пока h_sync=1 (читаем строку) по 1му клоку p_clk кладем 1й байт в рег-защелку d0...d7 линии данных памяти, по 2-му клоку одновременно кладем 2й байт в рег d7...d15 и выставляем строб WE=0. Первый пиксель готов. Далее начиная со 2го цикла пикселя:
-по 1му клоку пикселя сбрасываем WE в 1,пишем 1й байт в рег-защелку d0...d7 линии данных памяти, инкриминируем адрес+0х01;
-по 2му клоку пикселя одновременно кладем 2й байт в рег d7...d15 и выставляем строб WE=0.
.... ну и так далее N раз до конца считывания. Т.е. по идее клок пикселей тактирует все процессы в ПЛИС (так ведь можно?)

Вопросы: 1. теоретически можно ли сделать алгоритм "проглатывания" 1го цикла чтения пикселя, чтобы плис не щелкала адресами? 2. Будет ли такая схема работоспособной?
Знаю что можно сделать на том же арме, но тогда скорости уже другие, да и физически в проекте у меня не получается, слишком заморочено.
P.S. SDRAM не предлагать, я с ней ни разу не работал smile3046.gif

Заранее благодарю! cheers.gif

Сообщение отредактировал NaughtyFreak - Aug 2 2013, 13:19
Go to the top of the page
 
+Quote Post
Vacik
сообщение Aug 2 2013, 14:12
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 2-10-10
Из: Москва
Пользователь №: 59 883



Привет.

По идее все правильно.
1. Тактирует клок из камеры.
2. По поводу не щелканья, не понял сути вопроса.
3. Должна работать.

Только один вопрос, а что потом с данными собираешься делать. Которые в статике.
Go to the top of the page
 
+Quote Post
NaughtyFreak
сообщение Aug 2 2013, 18:28
Сообщение #3


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

Группа: Участник
Сообщений: 90
Регистрация: 7-10-11
Из: Москва
Пользователь №: 67 593



Цитата(Vacik @ Aug 2 2013, 18:12) *
2. По поводу не щелканья, не понял сути вопроса.

Суть проста: каждый цикл чтения пикселя из камеры (2 тика) в первый тик инкрементирется адрес статики и убирается строб записи, во второй выставляем остатки данных (см. выше) и подаем строб записи. НО, в самый 1й цикл инкрементировать по 1му тику адрес статики не надо, т.к. стартуем с 0х000. В от и вопрос: как сделать так, чтобы 1й цикл чтения был уникальным, грубо говоря...
Цитата(Vacik @ Aug 2 2013, 18:12) *
Только один вопрос, а что потом с данными собираешься делать. Которые в статике.

Потом вытаскиваю неторопясь данные и делаю DSP.
Go to the top of the page
 
+Quote Post
zombi
сообщение Aug 2 2013, 18:52
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(NaughtyFreak @ Aug 2 2013, 21:28) *
чтобы 1й цикл чтения был уникальным, грубо говоря...

Зачем?
По кадру стартуйте с адреса 0xFFFFF и инкрементируйте всегда одинаково.
Go to the top of the page
 
+Quote Post
NaughtyFreak
сообщение Aug 2 2013, 19:25
Сообщение #5


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

Группа: Участник
Сообщений: 90
Регистрация: 7-10-11
Из: Москва
Пользователь №: 67 593



Ага, спасибо! Я правильно понимаю что после инкремента 0xffff на еденицу регистр в плиске автоматом сбросится в ноль?
Go to the top of the page
 
+Quote Post
zombi
сообщение Aug 2 2013, 19:40
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(NaughtyFreak @ Aug 2 2013, 22:25) *
Ага, спасибо! Я правильно понимаю что после инкремента 0xffff на еденицу регистр в плиске автоматом сбросится в ноль?

biggrin.gif
100% сбросится если перед инкрементом установите его в максимально возможное значение.
В Вашем случае это 0xFFFFF, а не 0xffff.
А0...А19 это 20-ть линий адреса.
Go to the top of the page
 
+Quote Post
NaughtyFreak
сообщение Aug 2 2013, 20:14
Сообщение #7


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

Группа: Участник
Сообщений: 90
Регистрация: 7-10-11
Из: Москва
Пользователь №: 67 593



Тьфу, точно же!Сказывается пятница, мозги кипят sm.gif Спасибо, буду пробовать!
Go to the top of the page
 
+Quote Post
_pv
сообщение Aug 4 2013, 13:14
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(NaughtyFreak @ Aug 3 2013, 00:28) *
Потом вытаскиваю неторопясь данные и делаю DSP.

чем, если не секрет, вытаскиваете, потому что, как правило, процессор, который может хоть как-то вменяемо обработать картинки, имеет параллельные интерфейсы для втягивания картинок с матрицы напрямую.
Go to the top of the page
 
+Quote Post
DASM
сообщение Aug 4 2013, 13:22
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



На 4-ом циклоне умножителей достаточно, даже для Н264 кодирования на лету. Да и вообще ресурсов.
Go to the top of the page
 
+Quote Post
Maverick
сообщение Aug 4 2013, 13:37
Сообщение #10


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(DASM @ Aug 4 2013, 16:22) *
На 4-ом циклоне умножителей достаточно, даже для Н264 кодирования на лету. Да и вообще ресурсов.

Вы это проверяли в "железе"?
Какие результаты получили?
Какие параметры кодера Н264 использовались?
Какое видео поток по разрешению кодировали?
Что действительно в реалтайме без задержек?
Наверно хоть какая-то статическая задержка на несколько тактов имеется или и ее нету?
Какую ПЛИС использовали и на какой частоте работала, сколько логики было "скушано" и какой?


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
DASM
сообщение Aug 4 2013, 15:28
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Стоп, стоп, зачем допрос такой. VHDL корка, которая уже обсуждалась, заняла менее половина SmartFusion A2f500. Пиксель клок вышел 145 Мгц. Считаем, для означенной 2 мег. матрицы это порядка 70 фпс. Накладные расходы на NAL не считаю - их удобнее имхо реализовывать в процессорном ядре того же Смартфузена. Ну а на 4-ом циклоне НИОС. Пока все на стадии собранного макета и запущенной матрицы - синки идут, клоки,тестовая таблица. Копая Модельсим - надо наверстывать упущенное. Но в том, что означенные параметры достижимы на 2 мега - сомнений нет у меня. Про задержку не понял, там на несколько кадров задержка, а не тактов
Go to the top of the page
 
+Quote Post
NaughtyFreak
сообщение Aug 4 2013, 17:31
Сообщение #12


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

Группа: Участник
Сообщений: 90
Регистрация: 7-10-11
Из: Москва
Пользователь №: 67 593



Цитата(_pv @ Aug 4 2013, 17:14) *
чем, если не секрет, вытаскиваете, потому что, как правило, процессор, который может хоть как-то вменяемо обработать картинки, имеет параллельные интерфейсы для втягивания картинок с матрицы напрямую.

Да, имеют, но у меня потребность быстро свалить кадр в ram, а потом его обработать, через DMA получится медленнее. Да и потом во-первых для самообразования, во-вторых под DSP я подразумеваю обработку изображений с выделением контуров, горизонтов и т.д.
Go to the top of the page
 
+Quote Post
Maverick
сообщение Aug 4 2013, 19:27
Сообщение #13


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(DASM @ Aug 4 2013, 18:28) *
Стоп, стоп, зачем допрос такой...

это не допрос, просто любопытство sm.gif
Цитата(DASM @ Aug 4 2013, 16:22) *
даже для Н264 кодирования на лету

Цитата(DASM @ Aug 4 2013, 18:28) *
Про задержку не понял, там на несколько кадров задержка, а не тактов

если задержка на несколько кадров, то уже не совсем реалтайм ("на лету") wink.gif

PS Просто подумал, что Вы свою корку написали ...


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
DASM
сообщение Aug 4 2013, 20:18
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Не, латентность и риалтайм в данном случае совершенно невзаимоисключающие вещи. Входной FPS ессно равен выходному.
Go to the top of the page
 
+Quote Post
Maverick
сообщение Aug 4 2013, 20:35
Сообщение #15


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(DASM @ Aug 4 2013, 23:18) *
Входной FPS ессно равен выходному.

это понятно sm.gif
иначе ооочень много памяти надо или потери кадров будут ...


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post

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

 


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


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