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

 
 
 
Reply to this topicStart new topic
> Как оптимально передать сигнал от 10бит АЦП, к 8 битной памяти
ecos-rtos_in_ua
сообщение Jul 1 2008, 04:27
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 209
Регистрация: 15-03-08
Из: Украина, Винница
Пользователь №: 35 931



Собственно вопрос
Как сигнал от 10 битного АЦП передать к 8 битной sdram памяти с максимальной скоростью?
Лишние два разряда АЦП терять не хочется, но с другой стороны хочется максимальной скорости передачи, так как память и так узкое место.

Можно ли эти данные как-то сжать?
Go to the top of the page
 
+Quote Post
BIK14
сообщение Jul 1 2008, 05:22
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 6-02-07
Пользователь №: 25 099



Цитата(ecos-rtos_in_ua @ Jul 1 2008, 08:27) *
Собственно вопрос
Как сигнал от 10 битного АЦП передать к 8 битной sdram памяти с максимальной скоростью?
Лишние два разряда АЦП терять не хочется, но с другой стороны хочется максимальной скорости передачи, так как память и так узкое место.

Можно ли эти данные как-то сжать?


Все зависит от типа оцифровываемого сигнала. Что за сигнал?
Go to the top of the page
 
+Quote Post
Verifi
сообщение Jul 1 2008, 06:25
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 315
Регистрация: 5-05-08
Из: Kursk
Пользователь №: 37 282



Можно попробовать сжать если перед ацп поставить управяемый усилитель или цифровой потенциометр,динамически управляя диапазоном можно передавать 8бит,в низкочастотных применениях это использовалось ещё в советских разработках на к572пв1


--------------------
"Если я в чем-то сомневаюсь, я возвращаюсь к началу"
Go to the top of the page
 
+Quote Post
IceS
сообщение Jul 1 2008, 08:00
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 43
Регистрация: 17-10-06
Из: Санкт Петербург
Пользователь №: 21 387



ставить логику и упаковывать данные перед записью, имеется в виду следующее:
1 слово - старшие 8 бит пишем на прямую в память, а 2 младших запоминаем,
2 слово - старшие 8 бит пишем на прямую в память, а 2 младших запоминаем,
3 слово - старшие 8 бит пишем на прямую в память, а 2 младших запоминаем,
4 слово - старшие 8 бит пишем на прямую в память, а 2 младших запоминаем,
итого запомненных у нас 8 бит, вот их теперь тоже пишем в память.
Но! так с памятью лучше не работать (как писалось выше - узкое место) - лучше поставить еще одну микруху памяти, а этот алгоритм использовать при передаче данных "наружу"
Go to the top of the page
 
+Quote Post
slog
сообщение Jul 1 2008, 10:24
Сообщение #5


Знающий
****

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



Я бы упаковал 4 выборки АЦП в одно слово 40 байт и сохранил бы в память 5 байт. Какой обьём памяти и скорость надо? Если будет достаточно встроенной в FPGA то там нет проблем сделать и память двухпортовую и с разной разрядностью по входу и выходу, и работает на сотнях мегагерц. А варианты со сжатием это слишком сложный путь для такой проблемы. Да и цены на память уже не те, сейчас можно ставить 16-ти разрядные чипы, если это возможно конструктивно.


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Jul 1 2008, 10:24
Сообщение #6


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(ecos-rtos_in_ua @ Jul 1 2008, 04:27) *
Можно ли эти данные как-то сжать?

Зависит от. Для звука и подобных можно попробовать нечто подобное u-law/a-law, для 10бит можно и таблично.
http://www.open.ge/el/?base=&view=0&am...wiki/A-law'
Go to the top of the page
 
+Quote Post
ecos-rtos_in_ua
сообщение Jul 1 2008, 13:58
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 209
Регистрация: 15-03-08
Из: Украина, Винница
Пользователь №: 35 931



Спасибо за ответы
Уточняю ситуацию
У меня есть плата на которой стоит FPGA (Spartan3e-250), SDRAM mt48lc8m8a2-7e (по документации максимальная частота 143МГц) . На ней есть разъем (40 выводов) к которому я хочу подключить платку расширения с АЦП (2 канала, 10 бит, максимальная скорость оцифровки 105 МГц). Реально ли затолкать эти данные в память без потерь на близкой к максимальной скорости оцифровки (100 МГц)?
Go to the top of the page
 
+Quote Post
EvgenyNik
сообщение Jul 2 2008, 10:57
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 597
Регистрация: 24-05-06
Из: г. Чебоксары
Пользователь №: 17 402



Я бы взял частоту 250МГц (меандр):
поделил на 2 - получил 125МГц для SDRAM,
поделил (250МГц) на 2,5 (пользуясь скважностью меандра) - получил 100МГц для АЦП.
При таком соотношении можно на 100МГц (укладываемся в 105МГц) получать 10-битные данные с АЦП и складывать на 125МГц (опять-таки, укладываемся в 143МГц) 8-битные слова в ОЗУ пакетами по 40 бит.
Между приемом данных с АЦП и записью в ОЗУ надо будет сделать буфер и простенький конвеер на 4/5 стадий АЦП/ОЗУ.


--------------------
Почему разработчики систем повышенной надёжности плохо справляются с простыми проектами? :)
Go to the top of the page
 
+Quote Post
ecos-rtos_in_ua
сообщение Jul 2 2008, 15:54
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 209
Регистрация: 15-03-08
Из: Украина, Винница
Пользователь №: 35 931



Цитата(Евгений Николаев @ Jul 2 2008, 13:57) *
Я бы взял частоту 250МГц (меандр):
поделил на 2 - получил 125МГц для SDRAM,
поделил (250МГц) на 2,5 (пользуясь скважностью меандра) - получил 100МГц для АЦП.
При таком соотношении можно на 100МГц (укладываемся в 105МГц) получать 10-битные данные с АЦП и складывать на 125МГц (опять-таки, укладываемся в 143МГц) 8-битные слова в ОЗУ пакетами по 40 бит.
Между приемом данных с АЦП и записью в ОЗУ надо будет сделать буфер и простенький конвеер на 4/5 стадий АЦП/ОЗУ.

Спасибо за совет, попробую.
Go to the top of the page
 
+Quote Post
stells
сообщение Jul 6 2008, 07:02
Сообщение #10


внештатный сотрудник
******

Группа: Участник
Сообщений: 2 458
Регистрация: 10-05-08
Из: МО, Медвежьи озера
Пользователь №: 37 401



Цитата(Verifi @ Jul 1 2008, 10:25) *
Можно попробовать сжать если перед ацп поставить управяемый усилитель или цифровой потенциометр,динамически управляя диапазоном можно передавать 8бит,в низкочастотных применениях это использовалось ещё в советских разработках на к572пв1

можно и еще проще сделать - передавать старшие 3 разряда только тогда, когда они изменяются (3 старших разряда + признак старших при их изменении, все остальное время 7 младших разрядов + признак младших) - вот вам и динамическое сжатие, но тут все зависит от того, что за сигнал
Go to the top of the page
 
+Quote Post
yuri_d
сообщение Jul 6 2008, 21:58
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 292
Регистрация: 28-01-05
Из: МО, Мытищи
Пользователь №: 2 274



Цитата(Евгений Николаев @ Jul 2 2008, 14:57) *
Я бы взял частоту 250МГц (меандр):
поделил на 2 - получил 125МГц для SDRAM,
поделил (250МГц) на 2,5 (пользуясь скважностью меандра) - получил 100МГц для АЦП.
При таком соотношении можно на 100МГц (укладываемся в 105МГц) получать 10-битные данные с АЦП и складывать на 125МГц (опять-таки, укладываемся в 143МГц) 8-битные слова в ОЗУ пакетами по 40 бит.
Между приемом данных с АЦП и записью в ОЗУ надо будет сделать буфер и простенький конвеер на 4/5 стадий АЦП/ОЗУ.

Так работать не будет. У Вас получился темп данных с АЦП в 1000 Мбит/c. При 125 МГц у памяти получим 100% загрузку пропускной способности её шины (125 МГц * 8 бит = 1000 Мбит/c). Но SDRAM это не статика. Для её работы обязательно нужно проводить регенерацию, открывать и закрывать банки.
Go to the top of the page
 
+Quote Post

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

 


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


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