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

 
 
> Вывод видео на монитор., Организация кадровых буферов
LAS9891
сообщение Aug 11 2017, 11:45
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 206
Регистрация: 18-06-15
Пользователь №: 87 194



Здравствуйте! Прошу совета. Задача следующая. Требуется вывести видеоизображение с КМОП матрицы на стандартный монитор. Проект реализую на Cyclone IV. На плате также имеется SRAM 2 MB и SDRAM 64 MB. Пиксельная частота камеры 2 МГц, пиксельная частота монитора 40 МГц. Разрешение кадра 800х600. Матрица выдает кадры друг за другом без остановки. Поскольку частоты не совпадают необходимо использовать кадровый буфер. Предполагаю два варианта:

1) организовать кадровый буфер в SRAM на два кадра. При этом считывать данные из матрицы сначала в FIFO1 затем в SRAM. Когда первый кадр будет записан в SRAM начать выводить первый кадр SRAM->FIFO2->Монитор, при этом записывать второй кадр.

При такой реализации возникают вопросы. Поскольку частоты разные, что делать, в случае, если первый кадр выведен на монитор, а второй кадр еще не считан? Шина адреса и шина данных у SRAM одни для записи и чтения, поэтому придется обеспечить корректное чередование записи и чтения? Как этого добиться?

2) организовать кадровый буфер на два кадра в разных микросхемах: в SRAM первый кадр, в SDRAM второй кадр. В этом случае шины адреса и шины данных раздельные и можно одновременно писать второй кадр в SDRAM и считывать первый из SRAM.

При такой реализации возникают такие вопросы. В случае если кадр на монитор выведен, а новый еще не считался, можно будет повторить вывод старого кадра, после чего вывести новый кадр. Но вот в чем проблема, матрица выдает кадры друг за другом без остановки, и если новый кадр не считался (не успел) точно к моменту, когда старый закончил выводиться на монитор, то будет постоянно выводиться старый кадр. Как добиться этой синхронности? или необходимо считывать кадры с матрицы не постоянно, а только по требованию? типа считал первый кадр, начинаешь выводить первый и считывать второй, выводишь первый кадр несколько раз, до тех пор, пока не считается второй, когда считался второй, начинаем выводить второй и писать третий и так по кругу.

Сообщение отредактировал LAS9891 - Aug 11 2017, 11:59
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Burenkov Sergey
сообщение Aug 11 2017, 20:58
Сообщение #2


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

Группа: Участник
Сообщений: 86
Регистрация: 10-01-13
Пользователь №: 75 145



У вас с матрицы идет 8 или 10 бит? И Bayer filter вы делаете сами или контроллер матрицы? Какая SDRAM на плате установлена, на какой частоте вы ее запускаете?
Go to the top of the page
 
+Quote Post
LAS9891
сообщение Aug 14 2017, 05:12
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 206
Регистрация: 18-06-15
Пользователь №: 87 194



Цитата(Burenkov Sergey @ Aug 12 2017, 00:58) *
У вас с матрицы идет 8 или 10 бит? И Bayer filter вы делаете сами или контроллер матрицы? Какая SDRAM на плате установлена, на какой частоте вы ее запускаете?

C матрицы идёт 8 бит. На счёт Bayer filter - матрица монохромная. Пока пробую использовать асинхронную SRAM:
Прикрепленный файл  61WV102416ALL_ISSI_1M_x_16_SRAM_.pdf ( 162.83 килобайт ) Кол-во скачиваний: 23


Цитата(_pv @ Aug 11 2017, 17:37) *
если доступ к памяти быстрее 80МГц, значит в каждый цикл чтения данных для монитора можно ещё впихнуть цикл записи, если очередной пиксель с камеры пришёл.
даже если цикл доступа медленнее 80МГц, но быстрее чем 42, то в 21 цикл обращения к памяти можно впихнуть 20 чтений и одну запись, но так как чтение теперь не совпадает по частоте с частотой монитора, читать надо через небольшое фифо, откуда монитор с частотой 40МГц данные будет забирать.

Возможно ли использовать такой алгоритм с вот такой памятью:
Прикрепленный файл  61WV102416ALL_ISSI_1M_x_16_SRAM_.pdf ( 162.83 килобайт ) Кол-во скачиваний: 36
Go to the top of the page
 
+Quote Post
Burenkov Sergey
сообщение Aug 14 2017, 08:37
Сообщение #4


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

Группа: Участник
Сообщений: 86
Регистрация: 10-01-13
Пользователь №: 75 145



[quote name='LAS9891' date='Aug 14 2017, 08:12' post='1513239']
C матрицы идёт 8 бит. На счёт Bayer filter - матрица монохромная. Пока пробую использовать асинхронную SRAM:
Прикрепленный файл  61WV102416ALL_ISSI_1M_x_16_SRAM_.pdf ( 162.83 килобайт ) Кол-во скачиваний: 23
[/quote ]

Можно конечно вручную высчитывать когда прочитать или записать байт в память, чтобы синхронизировать вход и выход, но по моему гораздо проще абстрагироваться от этого. Если вы работаете в Qsys, то общий доступ к памяти сделаем за вас avalon interconnect. Вам нужно взять готовые модули Avalon Master https://www.altera.com/support/support-reso...-avalon-mm.html , обернуть их в несложную логику, по алгоритму который я выше приводил. Вы просто будете запускать чтение и запись с нужных адресов выставлением всего нескольких сигналов(адрес и старт) а все остальное сделает за вас контроллер памяти и interconnect.
Размера и скорости SRAM хватит в вашем случае. Вам надо около 3,84мегабита для тройной буферизации, память у вас 16М, скорость нужна 336Мб/с, если у вас память имеет время доступа 20 ns, то ее пропускная способность 800Мб/с, так что все с запасом

Сообщение отредактировал Burenkov Sergey - Aug 14 2017, 08:39
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- LAS9891   Вывод видео на монитор.   Aug 11 2017, 11:45
- - _pv   организовать кадровый буфер на один кадр где угодн...   Aug 11 2017, 12:18
|- - LAS9891   Цитата(_pv @ Aug 11 2017, 16:18) и без до...   Aug 11 2017, 13:07
- - Burenkov Sergey   У альтеры есть такая кора - frame buffer, один из ...   Aug 11 2017, 12:41
- - _pv   если доступ к памяти быстрее 80МГц, значит в кажды...   Aug 11 2017, 13:37
- - Volkov   Тут важна кадровая частота матрицы. Вывод лучше сд...   Aug 12 2017, 11:52
|- - novikovfb   Цитата(Volkov @ Aug 12 2017, 15:52) Для б...   Aug 14 2017, 08:51
|- - Volkov   Цитата(novikovfb @ Aug 14 2017, 11:51) В ...   Aug 14 2017, 09:21
- - LAS9891   Использую мегафункцию DCFIFO. Возник вопрос. Возмо...   Aug 15 2017, 06:09
|- - Flip-fl0p   Цитата(LAS9891 @ Aug 15 2017, 09:09) Испо...   Aug 15 2017, 06:10
|- - Maverick   Цитата(Flip-fl0p @ Aug 15 2017, 09:1...   Aug 15 2017, 06:13
|- - Flip-fl0p   Цитата(Maverick @ Aug 15 2017, 09:13) Доп...   Aug 15 2017, 06:25
- - andrewkrot   https://od.lk/fl/NDVfMzU4NzA1Xw качаете здесь файл...   Aug 15 2017, 07:43
- - Flip-fl0p   ЦитатаЗдравствуйте! Прошу совета. Задача следу...   Aug 15 2017, 08:20
- - _pv   со статической памятью конечно всё гораздо проще, ...   Aug 15 2017, 08:58


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

 


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


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