![]() |
Библиотека RshUniDriver
SDK 2.1
Документация по программированию
|
Как правило, низкочастотные устройства сбора данных с большим числом аналоговых каналов имеют всего один АЦП, и данные с разных каналов подаются на него по очереди - мультиплексируются (узнать, являются ли каналы синхронными или нет можно с помощью проверки флага RSH_CAPS_DEVICE_SYNCHRO_CHANNELS ) .
Поэтому при использовании нескольких каналов каждый отсчет (точка в буфере) оказывается смещенным по времени на величину dt=1/F, где F - установленная частота дискретизации:
При работе с относительно высокими (десятки и сотни килогерц) частотами дискретизации это не вызывает проблем, т.к. величина dt получается достаточно маленькой, и каждый кадр (набор из отсчетов, по одному отсчету с каждого канала) содержит данные, которые собраны примерно в одно и то же время.
Если же, допустим, частота дискретизации составляет 5Гц, разница по времени между каналами будет составлять 200мс, что может быть неприемлимо.
Можно, конечно, собирать данные с более высокой частотой дискретизации, а затем прореживать, но есть более удобный способ, который позволяет обойти эту проблему - использование режима кадрового сбора. В этом режиме используются две частоты дискретизации - одна из них определяет интервал между каналами внутри кадра, а вторая - частоту следования кадров. Структура данных (для трех измерительных каналов) при работе в режиме кадрового сбора приведена на рисунке:
Таким образом, задав в качестве частоты кадров низкую частоту, а в качестве частоты внтури кадра - высокую, можно получить нужный результат - "мгновенные" данные по блоку каналов с низкой частотой дискретизации на канал.
Пример задания параметров для включения кадрового режима:
1.8.4