Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
DAQ_uchebnik.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
6.01 Mб
Скачать

Счет с запуском и паузой (стробируемый)

При счете с паузами требуется дополнительный ТТЛ сигнал, который разрешает или запрещает счет. Значение счетчика инкрементируется, когда уровень сигнала на входе Gate высокий или низкий в зависимости от настроек, заданных с помощью узла свойств DAQmx Trigger.

Рисунок 6-6. Стробируемый счет

Pause Trigger – сигнал паузы, Counter Source – сигнал на входе Source, Counter Value – значение в счетчике

Непрерывный буферизированный счет фронтов

При непрерывном буферизированном счете фронтов по дополнительному ТТЛ сигналу текущее значение счетного регистра записывается в буфер. Т.е., значение буфера обновляется только по активному фронту сигнала. На рис. 6-7 показана пересылка значения из счетного регистра в буфер.

Рисунок 6-7. Непрерывный буферизированный счет фронтов

Sample Clock – синхроимпульсы отсчетов, Input Signal – входной сигнал, Buffer – буфер, Counted Events – подсчитанные события

При счете фронтов с буферизацией DAQ-устройство фиксирует количество фронтов, подсчитанных по каждому активному фронту синхроимпульсов отсчетов (Sample Clock), и сохраняет его в буфере. Поскольку для счета с буферизацией нет встроенного генератора синхроимпульсов отсчетов, необходимо использовать внешний генератор.

Счет фронтов с буферизацией конечного числа отсчетов

Счет фронтов с буферизацией конечного числа отсчетов осуществляется также как простой непрерывный счет, за исключением того, что запоминается конечное количество отсчетов, которое можно задать с помощью VI DAQmx Timing.

C. Генерация импульсов

Счетчик служит не только для измерения параметров ТТЛ сигналов, но и для их генерирования. На рис. 6-8 показан сигнал, формируемый на выходе Out счетчика. Счетчик может генерировать одиночный импульс или непрерывную (бесконечную) последовательность импульсов. Импульсный сигнал формируется из опорного сигнала на входе Source. Чтобы запрограммировать формирование импульсов, необязательно знать, как они формируются из опорного сигнала, и этот материал находится за рамками настоящего курса. Вам не нужно физически подключать опорный сигнал к входу Source, поскольку драйвер DAQmx сделает это за вас.

Рисунок 6-8. Генерация импульсов

Single Pulse – одиночный импульс, Pulse Train – последовательность импульсов, Timebase – опорный сигнал, Count Register – счетный регистр, Single Pulse or Pulse Train – одиночный импульс или последовательность импульсов

Характеристики импульсного сигнала

Чтобы сгенерировать импульсный сигнал, необходимо понимать смысл некоторых его характеристик.

Импульс – это быстрое изменение амплитуды сигнала от пассивного значения до активного значения в течение короткого интервала времени. В качестве пассивного может быть принят высокий или низкий уровень напряжения. Импульс с низким пассивным уровнем начинается с низкого уровня (как правило, нуля), затем происходит перепад до высокого уровня и возврат к низкому уровню. Импульс с высоким пассивным уровнем, начинается с высокого уровня, переходит к низкому, а затем возвращается обратно к высокому уровню.

Последовательность импульсов состоит более чем из одного импульсов. Одиночный импульс или импульсную последовательность можно использовать в качестве тактового сигнала, стробирующего сигнала или сигнала запуска в процессе измерений или генерации импульсов. Кроме того, с помощью одиночного импульса известной длительности можно измерять неизвестную частоту сигнала или осуществлять запуск измерений аналоговых сигналов. Импульсную последовательность можно использовать для измерения неизвестной длительности импульсов.

Любой одиночный импульс или последовательность импульсов состоит из трех частей (рис. 6-9, 6-10):

  • High Time (длительность высокого уровня) – интервал времени, в течение которого импульс имеет высокий уровень.

  • Low Time (длительность низкого уровня) – интервал времени, в течение которого импульс имеет низкий уровень.

  • Initial Delay (начальная задержка) – интервал времени, в течение которого выходной сигнал находится в пассивном состоянии до генерации импульсного сигнала. В зависимости от того, какой из уровней является пассивным, при генерации первого импульса увеличивает время удержания высокого или низкого уровней.

Длительность высокого уровня и длительность низкого уровня вместе представляют собой характеристики импульса.

Рисунок 6-9. Компоненты импульса

Counter Starts – начало счета

Рисунок 6-10. Компоненты последовательности импульсов

Counter Starts – начало счета

Прежде, чем генерировать импульсный сигнал, вам следует определиться, какими параметрами будет характеризоваться одиночный импульс или импульсную последовательность: частотой, временем или количеством тактов опорного сигнала счетчика. Если выбрана частота, то нужно задать скважность (коэффициент заполнения генерируемого сигнала). При выборе времени следует задать длительность высокого уровня и длительность низкого уровня. Если вы работаете со счетчиком, у которого неизвестна частота опорного сигнала, то нужно будет использовать количество тактов. Генерируемый импульсный сигнал выдается на выход Out счетчика.

Период повторения импульсов – это интервал времени, в течение которого формируется один полный импульс. Значение периода получается путем сложения длительности высокого уровня и длительности низкого уровня. Величина, обратная периоду, - это частота повторения импульсов.

Поскольку длительность высокого уровня и длительность низкого уровня не всегда равны между собой, то соотношение между ними следует задавать с помощью специального параметра, который называется коэффициентом заполнения (скважностью) и принимает значения в диапазоне от 0 до 1. Этот коэффициент нередко переводят в проценты. Если длительность высокого уровня равна длительности низкого уровня, то коэффициент заполнения равен 0.5 или 50%. Если коэффициент заполнения больше 50%, это означает, что длительность высокого уровня больше длительности низкого уровня, а если коэффициент заполнения меньше 50%, то, наоборот, длительность низкого уровня больше длительности высокого уровня.

Длительность периода = Длительность высокого уровня + Длительность низкого уровня.

Частота повторения импульсов = 1/ период повторения импульсов

Коэффициент заполнения = Длительность высокого уровня/Период повторения импульсов

Генерация одиночных импульсов, последовательностей конечного числа импульсов и непрерывных последовательностей импульсов

При генерации импульсов можно выбрать один из трех режимов: формирование одиночного импульса, генерация последовательности из конечного числа импульсов, или генерация бесконечной последовательности импульсов. По умолчанию одиночные импульсы формируются независимо от типа синхронизации, который вы используете в DAQmx Timing VI: Implicit или Sample Clock.

В режиме Implicit значение на входе Samples per Channel определяет количество импульсов, генерируемых в последовательности конечной длительности. На рис. 6-11 показан пример формирования трех импульсов:

Рисунок 6-11. Режим Implicit генерации последовательности конечной длительности

В режиме Sample Clock, в котором используется программный буфер, значение на входе Samples per Channel определяет количество различных значений коэффициента заполнения генерируемого сигнала. В примере на рис. 6-12 на вход Samples per Channel подается число «три». Обратите внимание на то, что счетчик инкрементируется после появления импульсов на линии Sample Clock и переключения сигнала счетчика с высокого уровня на низкий. DAQ-устройство формирует высокий и низкий уровни, заданные в DAQmx Create Virtual Channel VI, пока не появится первый синхроимпульс на линии Sample Clock.

Рисунок 6-12. Генерация последовательности импульсов в режиме Sample Clock

Как было проиллюстрировано ранее, для формирования последовательностей, в которых параметры импульсов задаются и изменяются детерминировано с использованием аппаратной синхронизации, необходим программный буфер, если он поддерживается вашим DAQ-устройством.

Размер буфера можно задать перед запуском задачи путем вызова DAQmx Configure Output VI Buffer, с помощью соответствующего узла свойств, или путем записи количества параметров импульсов с помощью DAQmx Write Counter MultiPoint VI. Это идеально подходит для приложений, где требуется широтно-импульсная модуляция, например, систем с обратной связью, реализующих пропорционально-интегрально-дифференциальный (ПИД) закон регулирования. В данном случае длительности высокого и низкого уровней, заданные в DAQmx Create Virtual Channel VI игнорируются.

Если вы не пользуетесь программным буфером, то все импульсы сформируются так же, пока вы не обновите длительности высокого и низкого уровней в процессе выполнения приложения. Это приведет к тому, что параметры импульсы будут формироваться с программной синхронизацией и изменяться по запросу.

Для обновления параметров формируемой последовательности импульсов можно пользоваться теми же свойствами, что и для создания канала. Поскольку для задания параметров последовательности импульсов требуется два свойства, эти параметры будут обновляться только в том случае, если вы зададите один из них.

Например, если вы задаете генерацию импульсов параметрами частоты, то частота и скважность определяют параметры формируемого сигнала. Однако, параметры импульсов обновляются только в том случае, если вы установили значение свойства Frequency. То же самое справедливо, если вы задаете генерацию импульсов параметрами времени или в количестве тактов: длительность или количество тактов, соответствующие низкому уровню, оказывают воздействие, когда обновляются параметры импульсного сигнала. При обновлении параметров генерируемого импульсного сигнала, перед тем, как новые параметры вступают в силу, должно завершиться формирование полного периода сигнала с текущими параметрами. В режиме генерации последовательности импульсов с буферизацией обновление параметров в процессе работы приложения не поддерживается.

В некоторых устройствах, например M и S серии, формирование импульсных последовательностей конечной длительности требует применения пары счетчиков. В этом случае первый счетчик (например, Counter 0) формирует импульс желаемой длительности, а второй счетчик (Counter 1) генерирует последовательность импульсов, которая стробируется импульсом с первого счетчика. Маршрутизация сигналов выполняется внутри счетчика. На рис. 6-13 приведена временная диаграмма формирования последовательности импульсов конечной длительности с помощью двух счетчиков.

Рисунок 6-13. Формирование последовательности импульсов конечной длительности с помощью двух счетчиков

В устройствах с микросхемой STC3, например, устройствах X серии, не требуются двух счетчиков.

D. Измерение параметров импульсов

Измеряемый импульсный сигнал подается на вход Gate в качестве стробирующего, а на вход Source подается опорный сигнал известной частоты (рис. 6-14). На основе частоты опорного сигнала и значения в счетном регистре вы можете определить такие параметры измеряемого сигнала, как период и длительность.

Рисунок 6-14. Измерение параметров импульсного сигнала

Period Measurement – измерение переиода, Pulse Width Measurement – измерение длительности импульса, Your Signal – ваш сигнал, Timebase – опорный сигнал, Gate – строб, Source – источник, Out – выход, Count Register – счетный регистр

Измерение периода

Измерение периода – это один из видов измерений параметров импульсного сигнала. При измерении периода также происходит счет активных фронтов сигнала на входе Source. Однако, в отличие от простого счета фронтов, в данном случае счетчик инкрементируется в течение периода сигнала на входе Gate. На рис. 6-15 приведен пример измерения периода, которое начинается и заканчивается по нарастающему фронту сигнала на входе Gate.

Рисунок 6-15. Измерение периода

Вы можете также запускать и останавливать счет между ниспадающими фронтами. Значение счетчика отражает количество нарастающих фронтов сигнала на входе Source между двумя нарастающими фронтами на входе Gate. Таким образом, чтобы выполнить измерение периода, вам требуется сигнал с двумя нарастающими фронтами или двумя ниспадающими фронтами. Одиночный импульс имеет только один нарастающий фронт и один ниспадающий фронт, так что измерить период одиночного импульса невозможно.

В приведенном выше примере один период сигнала на входе Gate соответствует четырем инкрементам счетчика. Не забывайте о том, что на сигнал на входе Source – это опорный сигнал известной частоты. Допустим, он имеет частоту 100 кГц. Период сигнала на входе Gate вычисляется по формуле:

Период = Результат счета × (1/Частота сигнала на входе Source)

Для рассматриваемого примера (опорная частота 100 кГц):

Период = 4 × (1/100 000) = 0.04 мс

Измерение полупериода

Измерение полупериода очень похоже на измерение периода, только в этом случае измеряется интервал времени между соседними фронтами.

Рисунок 6-16. Измерение полупериода

Измерение полупериода с буферизацией происходит аналогично измерению длительности импульса с буферизацией как для интервала с низким уровнем, так и интервала с высоким уровнем сигнала на входе Gate. Как и другие измерения с буферизацией, в такой задаче можно непрерывно измерять параметры соседних импульсов, не сбрасывая счетчик. Первый фронт с полярностью, заданной пользователем, запускает процесс измерения, а каждый последующий фронт (как ниспадающий, так и нарастающий) фиксирует текущее значение счетного регистра в памяти. Этот вид измерений позволяет измерять период и скважность импульсной последовательности на входе Gate, поскольку измерение интервалов времени выполняется между всеми фронтами.

Рисунок 6-17. Измерение полупериода с буферизацией

Измерение длительности импульса

Измерение длительности импульса очень похоже на измерение периода. Здесь различными являются моменты, в которые счет останавливается. При измерении периода запуск и останов счета происходят по двум нарастающим фронтам на входе Gate. При измерении длительности импульса счет ведется только в течение самой длительности импульса, т.е. счета начинается по одному фронту, а завершается – по противоположному фронту. Значение счетчика инкрементируется только между этими двумя противоположными фронтами (рис. 6-18).

Рисунок 6-18. Измерение длительности импульса

Длительность импульса вычисляется по той же формуле, что и период:

Длительность импульса = Результат счета × (1/Частота сигнала на входе Source)

Для рассматриваемого примера (опорная частота 100 кГц):

Период = 2 × (1/100 000) = 0.02 мс

0.02 мс – это половина значения, полученного при измерении периода, т.е. скважность сигнала на входе Gate равна 50%.

Результат измерения длительности импульса может выражаться в секундах, тактах или в пользовательском масштабе.

Измерение параметров одиночных импульсов

Некоторые DAQ-устройства поддерживают специальные измерения частоты, длительности и количества тактов импульсов. Эти устройства могут возвращать результаты измерений в виде кортежа параметров: частота/ скважность, длительность высокого/низкого уровня или количество тактов для высокого/количество тактов для низкого уровня.

E. Измерение частоты

Далее описываются три способа измерения частоты последовательности ТТЛ импульсов с помощью одного или нескольких счетчиков. В любой заданный момент времени частота сигнала обратно пропорциональна периоду. Таким образом, простейшим способом измерения частоты является всего лишь вычисление значения, обратного результату измерения периода. Поскольку этот способ становится все более грубым из-за приближения частоты сигнала на входе Gate к опорной частоте счетчика, требуется применять другие два способа измерения частоты.

Измерения частоты DAQ-устройствами с микросхемой STC2

Здесь рассматриваются три способа измерения частоты последовательности ТТЛ импульсов с помощью одного или нескольких счетчиков DAQ-устройств с микросхемой контроллера STC2. В любой заданный момент времени частота сигнала обратно пропорциональна периоду. Таким образом, простейшим способом измерения частоты является всего лишь вычисление значения, обратного результату измерения периода. Поскольку этот способ становится все более грубым из-за приближения частоты сигнала на входе Gate к опорной частоте счетчика, приходится применять другие два способа измерения частоты.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]