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

 
 
> Передача данных UART => SDRAM память, Как правильно передать данные между UART и SDRAM контроллером
Flip-fl0p
сообщение Nov 6 2016, 16:14
Сообщение #1


В поисках себя...
****

Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Добрый вечер уважаемые форумчане. Хочу попросить вашего совета по правильной организации передачи данных между UART и SDRAM контроллером.
Хочу записать изображение в SDRAM память, и вывести его на LVDS матрицу.
Изображение представляет собой набор пикселей, где каждый пиксель состоит из 3 байтов данных. Каждый байт передает данные о базовой составляющей цвета (RGB). Передача изображения из компьютера в SDRAM память будет через UART (9600/8-N-1).
Мой UART приемник работает по классической схеме: через частоту в 16 раз больше бодовой и выборкой трех значений с середины битового интервала, с последующим мажорированием. После принятия байта приемником он поступает на модуль, который после принятия трех байт, отбрасывает ненужные мне разряды цвета, и объединяет их в одно слово, являющееся цветом пикселя, которое будет записываться в SDRAM память.
Таким образом каждые 3 байта я должен передавать данные SDRAM контроллеру (который может работать на частоте до 133 МГц) для их записи в память.
Соответственно мы в итоге должны передать данные между 2 клоковыми доменами UART => SDRAM контроллер.
У меня есть 2 варианта по организации передачи данных: использовать протокол Handshake (рукопожатие) или FIFO буфер. Первый вариант кажется предпочтительным, поскольку применение FIFO буфера неоправданно из-за того, что скорость записи данных в него будет несопоставимо ниже, чем я могу этот буфер читать, и буфер будет всегда пустой. Можно накопить данные в буфере, и периодически его считывать по мере заполнения. Но не вижу рациональных причин так делать. Вот и хотелось бы услышать Ваше мнение, как правильнее организовать передачу данных. Естественно UART приемник и SDRAM контроллер реализованы в ПЛИС.

Сообщение отредактировал Flip-fl0p - Nov 6 2016, 16:31
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ViKo
сообщение Nov 7 2016, 03:24
Сообщение #2


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Сделать счетчик таймаута приема. Если он сработал, сбрасывать счетчик, он же адрес, байтов.
Передавать сплошным потоком, не допуская больших разрывов. Впрочем, можно выбрать нужный тамаут.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Flip-fl0p   Передача данных UART => SDRAM память   Nov 6 2016, 16:14
- - iosifk   Цитата(Flip-fl0p @ Nov 6 2016, 19:14...   Nov 6 2016, 19:10
|- - Flip-fl0p   Цитата(iosifk @ Nov 6 2016, 22:10) Все кр...   Nov 6 2016, 22:29
|- - Александр77   Цитата(Flip-fl0p @ Nov 7 2016, 01:29...   Nov 7 2016, 04:16
|- - Flip-fl0p   Цитата(Александр77 @ Nov 7 2016, 07:16) С...   Nov 7 2016, 05:06
|- - Bad0512   Вижу 2 проблемы в вашем дизайне : 1. Вы не придума...   Nov 7 2016, 05:13
||- - Flip-fl0p   Цитата(Bad0512 @ Nov 7 2016, 08:13) Вижу ...   Nov 7 2016, 05:24
||- - Bad0512   Цитата(Flip-fl0p @ Nov 7 2016, 12:24...   Nov 7 2016, 06:59
||- - Flip-fl0p   Цитата(Bad0512 @ Nov 7 2016, 09:59) Ну хо...   Nov 7 2016, 07:29
||- - Bad0512   Цитата(Flip-fl0p @ Nov 7 2016, 14:29...   Nov 7 2016, 09:12
|- - iosifk   Цитата(Flip-fl0p @ Nov 7 2016, 08:06...   Nov 7 2016, 08:24
|- - iosifk   Цитата(Flip-fl0p @ Nov 7 2016, 08:06...   Nov 7 2016, 09:39
- - ViKo   Что мешает ускорить скорость передачи до 250 кбит/...   Nov 7 2016, 06:31
- - tvcam   Я могу ошибиться, но не две минуты, 9600/8 = 1200 ...   Nov 7 2016, 06:46
- - warrior-2001   Реализуйте что-то типа Манчестера и будет вам счас...   Nov 7 2016, 09:15
- - Flip-fl0p   Реализовал я передачу данных между UART => ПЛИС...   Nov 8 2016, 11:11


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

 


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


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