Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года


FIFO Буфер, ReadData и компания

Вы не вошли.

 Поиск | Регистрация | Вход 

Андрей
22.05.2008 16:38:46
#1

Гость

FIFO Буфер, ReadData и компания

Здравствуйте.

Работаю с E440 в LabVIEW. Драйвер lusbapi.

Что-то никак не могу разобраться! Максимальный размер FIFO буфера 12288 отсчетов. В документации сказанно, что данные нужно читать половинками. НО во многих примерах для функции ReadData указывается 1024*1024 отсчетов, в частности в примерах для LabVIEW (архив e440lv). Может быть отсчеты там разные? Но 1024*1024 больше 12288 в 85 раз! Просветите меня пожалуйста.

И еще! Если я задаю, например, 8 входных каналов, то АЦП все равно оцифровывает все 16, но сохраняет в буфер только первые 8?

Заранее спасибо!

26.05.2008 11:19:35
#2

Сотрудник "Л Кард"
Здесь с 24.04.2014
Сообщений: 1,518

Re: FIFO Буфер, ReadData и компания

1. На самом деле функция ReadData() "обеспечивает асинхронный режим получения очередных NumberOfWordsToRead отсчетов из FIFO буфера АЦП". При этом ни о каком получении данных строго по половинкам FIFO буфера речи не идёт. Более того, собственно сама эта функция совершенно ничего не знает о каком бы то ни было FIFO буфере модуля. Единственная задача этой функции получить с модуля ровно NumberOfWordsToRead отсчётов. Другое дело, что модуль передаёт данные в РС порциями по 1/2 FIFO буфера модуля. Но Функция ReadData() совершенно не обязана вычитывать полностью половину FIFO буфера. Она вполне законно может вычитать только необходимое кол-во данных из этой половинки FIFO буфера. Невычитанная чать данных может быть получена при выполнении следующей функции ReadData().
Смотри также:
http://www.lcard.ru/forumthreads/875
http://www.lcard.ru/forumthreads/1128
2. Оцифровываются только те каналы АЦП, которые заказаны в управляющей таблице.

Андрей
26.05.2008 13:54:33
#3

Гость

Re: FIFO Буфер, ReadData и компания

А можно тогда задать функции ReadData, к примеру срезу 4 000 000 отсчетов? Это сбор данных в течение 10 секунд с частотой 400кГц. Я так подозреваю, что будет плохо работать?

26.05.2008 15:02:53
#4

Сотрудник "Л Кард"
Здесь с 24.04.2014
Сообщений: 1,518

Re: FIFO Буфер, ReadData и компания

В руководстве написано, что "величина параметра NumberOfWordsToRead должна находиться в диапазоне от 32 до (1024*1024), а также быть кратной 32".

Андрей
28.05.2008 07:00:26
#5

Гость

Re: FIFO Буфер, ReadData и компания

Ага... Пасибо!

Антон
01.06.2008 18:35:39
#6

Гость

Re: FIFO Буфер, ReadData и компания

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

Подскажите может есть возможность чистить этот буфер? или всётаки проблема может быть в другом?

Антон
02.06.2008 06:49:44
#7

Гость

Re: FIFO Буфер, ReadData и компания

Хотя всётаки мне кажется что с ЦАПом я как-то не правильно работаю и именно он мне так синус и выдаёт sad
Но всё равно возможна ли ситуация, описанная выше?