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


e140, формат данных АЦП

Вы не вошли.

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

Clark
06.07.2004 10:27:57
#1

Гость

e140, формат данных АЦП

Может я какую-нить глупость спрашиваю, и тем не менее.
Данные с АЦП приходят в формате SHORT.
В документации сказано, что формат слова АЦП - 14-ти битные двухбайтовые знаковые целые от -8192 до 8191.
Реально я получаю данные выходящие из этого диапозона и вверх и вниз.
Как нужно преобразовать приходящие данные, чтобы получить реальные данные?
Может необходимо гасить два лишних бита,

DKorolkov
06.07.2004 10:39:24
#2

Гость

Re: e140, формат данных АЦП

Насколько я понимаю, данные с E-140 не должны выходить за указанный диапазон. Приведите, пожалуйста, пример данных, не укладывающихся в указанные границы (числа, которые вы реально получили с E-140).

alexandr
06.07.2004 10:52:16
#3

Гость

Re: e140, формат данных АЦП

дело обстоит так:
ацп выдает 14-ти битные знвчения в дополнительном коде
далее это 14-ти битное значение расширяется до 16-ти битного(знаковый бит дублируется в 14-том и 15-том битах). сделано это для удобства обработки данных в PC.

таким образом, в PC поступают 16-ти разрядные значения в дополнительном коде - этот формат по традиции называют SHORT.

диапазон значений должен быть -8192..+8191.

Clark
06.07.2004 11:24:04
#4

Гость

Re: e140, формат данных АЦП

Вот примеры полученных данных:

1-ый ReadData, nNumberOfWordsToRead = 32:
    117     120     129     120
    121     131     123     122
    135     128     124     136
    134     127     137     137
    126     139     140     129
    140     141     131     139
    145     134     138     149
    137     138     150     143

2-ой ReadData, nNumberOfWordsToRead = 32:
    139     153     148     140
    152     150     141     155
    154     145     154     156
    146     154     159     149
    151     163     152     152
    164     154     153     166
    160     154     168     163
    155     166     165     157

3-ий ReadData, nNumberOfWordsToRead = 32:
    168     170     159     167
    171     161     167     175
    163     167     178     166
    166     178     169     166
    180     174     168     179
    178     169     179     181
    168     178     181     170
    178     184     172     177

4-ый ReadData, nNumberOfWordsToRead = 32:
    184     174     178     187
    175     175     188     181
    176     186     183     177
    187     185     175     185
    186     177     182     185
    180     180     181     180
    183     182     178     181
    181     177     178     181

5-ый ReadData, nNumberOfWordsToRead = 32:
-23131  -23131  -23131  -23131
-23131  -23131  -23131  -23131
    170     182     176     171
    184     180     171     183
    182     171     183     184
    174     182     187     176
    180     189     180     179
    191     181     181     195

6-ой ReadData, nNumberOfWordsToRead = 32:
-23131  -23131  -23131  -23131
-23131  -23131  -23131  -23131
    174     187     178     176
    191     182     178     190
    186     179     190     189
    179     190     193     180
    192     198     181     192
    197     186     193     200

7-ой ReadData, nNumberOfWordsToRead = 32:
-23131  -23131  -23131  -23131
-23131  -23131  -23131  -23131
   -237    -238    -239    -242
   -244    -247    -249    -249
   -250    -252    -254    -254
   -257    -261    -262    -266
   -268    -270    -274    -277
   -279    -280    -283    -286

8-ой ReadData, nNumberOfWordsToRead = 32:
-23131  -23131  -23131  -23131 
-23131  -23131  -23131  -23131
     15      17      18      21
     22      21      26      28
     27      32      32      32
     37      39      38      42
     44      44      48      53
     51      54      59      60

9-ый ReadData, nNumberOfWordsToRead = 32:
-23131  -23131  -23131  -23131
-23131  -23131  -23131  -23131
-23131  -23131  -23131  -23131
-23131  -23131  -23131  -23131
   -365    -366    -378    -368
   -366    -379    -373    -367
   -379    -377    -368    -380
   -381    -370    -380    -384

10-ый ReadData, nNumberOfWordsToRead = 32:
-23131  -23131  -23131  -23131
-23131  -23131  -23131  -23131
   -168    -170    -172    -175
   -177    -178    -180    -184
   -185    -188    -191    -193
   -194    -197    -199    -200
   -203    -206    -209    -211
   -214    -216    -217    -221

Я был не прав, когда говорил, что выходят за пределы диапозона в обе стороны - можно заметить только число -23131.
Кроме этого, можно видеть, что этот выброс всегда происходит в начале получаемого пакета.

Clark
06.07.2004 11:25:39
#5

Гость

Re: e140, формат данных АЦП

Да, забыл добавить, что в настоящее время к E140 ничего не подключено!

alexandr
06.07.2004 11:53:22
#6

Гость

Re: e140, формат данных АЦП

у вас система не успевает выставлять запросы на шину usb и из-за этого данные в fifo-буфере модуля портятся. вам следует увеличить число сэмплов запрашиваемых в одном вызове ReadData или уменьшить частоту дискретизации.

Clark
06.07.2004 12:11:07
#7

Гость

Re: e140, формат данных АЦП

Ok, спасибо!
Число сэмплов я установил минимальным для теста - проверял динамическое увеличение буфера.
Однако, как программно можно узнать о том, что система не справляется? Ведь программа работает под Windows, да еще на разных компьютерах, и параметры, установленные в одном случае, могут не походить для другого.

alexandr
06.07.2004 12:22:21
#8

Гость

Re: e140, формат данных АЦП

узнать наверное можно только эксперементально sad

если в модуле возникнет переполнение fifo, то в качестве данных он выдаст число -23131 (в шестнадцатеричной это 0xA5A5).

Clark
06.07.2004 12:53:06
#9

Гость

Re: e140, формат данных АЦП

Спасибо еще раз, буду эксперементировать.