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

6. Счетчики

Основное внимание в данной лекции уделено функциональности счетчиков в составе DAQ-устройства. Эта лекция содержит общие сведения о счетчиках, включая сигналы, с которыми работает счетчик; элементы, из которых он состоит; контакты, на которые выводится сигналы со счетчика; основные термины, относящиеся к счетчикам; различные типы микросхем счетчиков. Здесь же рассматриваются DAQmx VI, которые используются в операциях таймерного ввода-вывода.

Темы

  1. Сигналы, с которыми работает счетчик

  2. Подсчет количества фронтов

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

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

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

  6. Измерение перемещений

  1. Сигналы, с которыми работает счетчик

Счетчики работают с ТТЛ- совместимыми сигналами (далее – ТТЛ сигналами), которые имеют следующие характеристики:

0 – 0.8 В = низкий уровень (логический «0»);

2 – 5 В = высокий уровень (логическая «1»);

Максимальная длительность фронта нарастания/спада = 50 нс

Рисунок 6-1. Характеристики ТТЛ-сигнала

Низкий уровень – от 0 до +0.8 В, неопределенный уровень – от +0.8 до +2.0 В, высокий уровень от +2.0 до +5.0 В, минимальная длительность импульса = 10 нс, максимальная длительность фронта нарастания/спада = 50 нс

Устройства цифрового ввода-вывода могут изменять или контролировать состояние цифровой линии. Однако, для счетчиков важно не только состояние сигнала, а также переход от одного состояния в другое. Счетчик может обнаруживать нарастающие фронты (переход от логического нуля к логической единице) и ниспадающие фронты (переходы от логической единицы к логическому нулю). Два важных параметра необходимо учитывать при счете: время нарастания/спада и минимальная длительность импульса. Время нарастания/спада фронта является мерой того, насколько быстро сигнал переходит от низкого к высокому уровню или наоборот. Чтобы счетчик зафиксировал фронт, длительность перехода должна быть не более 50 нс согласно спецификациям на ТТЛ сигнал.

Кроме того, должно быть некоторое минимальное время между моментом фиксации нарастающего или ниспадающего фронта до момента, когда счетчик сможет фиксировать следующий фронт. Это время называют минимальной длительностью импульса, которая зависит от типа используемой микросхемы счетчика. В устройствах E серии применяется микросхема типа DAQ-STC, у которой минимальная длительность импульса составляет 10 нс, как для линии Source (линии, на которую подается входной сигнал), так и линии Gate (линии, на которую подается стробирующий сигнал). Чтобы определить минимальную длительность импульса для счетчиков, обратитесь к документации по аппаратным средствам соответствующего DAQ-устройства.

В составе многофункциональных DAQ-устройств M серии используется специализированная заказная микросхема NI-STC 2, которая управляет синхронизацией и тактированием операций ввода-вывода как для внутри устройства, так и между несколькими устройствами. В микросхеме NI-STC 2, используемой во всех устройствах M серии, была также предусмотрена совместимость с АЦП, выполняемыми по самой современной технологии, в том числе с 18-битовыми АЦП, применяемыми в высокоточных устройствах.

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

Элементы, из которых состоит счетчик

Счетчик состоит из следующих основных компонентов:

  • Count Register (Cчетный регистр) – в нем хранится текущее значение счетчика, которое можно прочитать программно.

  • Source – входной сигнал, который изменяет текущее состояние счетчика, хранящееся в регистре. Счетчик ищет нарастающие и ниспадающие фронты этого сигнала. Выбор режима – подсчитывать положительные или отрицательные фронты выполняется программно. Выбранный тип фронта называют активным фронтом сигнала. Когда на вход Source приходит активный фронт, состояние счетчика изменяется. Направление счета по активному фронту – инкремент или декремент, также выбирается с помощью программного обеспечения (ПО). Сигнал на входе Source должен быть совместим с ТТЛ уровнями.

  • Gate – входной сигнал, который разрешает (стробирует) изменение состояния счетчика по активному фронту на входе Source. Счет может происходить, когда этот сигнал имеет либо высокий, либо низкий уровень, либо представляет собой различные комбинации нарастающих и ниспадающих фронтов. Настройки сигнала Gate выполняются с помощью ПО. Этот сигнал по сути своей похож на маску линий цифрового ввода-вывода, поскольку он позволяет учитывать или игнорировать активные фронты сигнала Source.

  • Out – выходной сигнал, который служит для генерации одиночных импульсов или последовательностей импульсов и совместим с ТТЛ уровнями.

Контакты, связанные со счетчиком

Все линии аналогового ввода, аналогового вывода и цифрового ввода-вывода имеют соответствующие контакты для выполнения операций ввода и вывода. Для счетчиков используются как контакты программируемых линий PFI (Programmable Function Input), так и специальные контакты. Выходные контакты счетчиков используются только для генерации импульсов. Линии Source и Gate соответствуют контактам PFI, и их можно использовать для других целей, не связанных со счетчиком. Например, контакт 3 68-контактного разъема можно использовать в качестве линии PFI9, линии Gate счетчика Counter 0, или того и другого одновременно. Возможность применения одного контакта для нескольких целей дает большую гибкость. Например, вы могли бы подать ТТЛ сигнал на контакт 3 и использовать его для запуска операции аналогового ввода или в качестве сигнала Gate для счетчика.

Термины, относящиеся к счетчику

  • Terminal Count – (последнее значение счетчика, после которого он перейдет в состояние 0). Например, при инкрементировании число в счетчике достигает максимально возможного значения, после которого возникнет переполнение и счет возобновится с 0.

  • Resolution (разрядность) – Определяет, сколько может продолжаться счет, прежде, чем счетчик достигнет завершающего состояния. Разрядность счетчика оценивается в битах. Разрядность используется в формуле для вычисления максимального значения (max count) в счетчике:

max count = 2(resolution) – 1

Типовые значения разрядности: 16 бит, 24 бита, 32 бита.

  • Timebase (опорный сигнал) – сигнал известной частоты, который генерируется DAQ-устройством, и для которого типичен диапазон частот от 100 Гц до 80 МГц. Сигнал опорной частоты может быть скоммутирован внутри устройства на входы счетчика в качестве сигнала известной частоты.

Микросхемы счетчиков

В DAQ-устройствах используются различные микросхемы для таймерного ввода-вывода – NI-STC2, NI-STC3 или NI-TIO.

NI-TIO

NI-TIO – микросхема 32-битового счетчика, поставляемая в составе устройств производства компании NI. Эта микросхема может считать на сложение и вычитание, поддерживает энкодеры и сигнал аппаратного запуска, имеет цифровые фильтры для подавления импульсных помех, может мгновенно изменять частоту повторения импульсов, а также выдает опорные сигналы частотой 100 кГц, 20 МГц и 80 МГц. Данная микросхема применяется в устройствах семейства 660x. Модули M серии также поддерживают такие свойства микросхемы NI-TIO, как разделение двух фронтов и квадратурное кодирование, кроме того в этих модулях может быть реализована синхронизация счетчика.

NI-STC2

Микросхема NI-STC2, используемая в устройствах M серии – это заказная интегральная микросхема (ASIC), которая управляет синхронизацией внутри платы и между платами, а также тактированием операций, выполняемых многофункциональным DAQ-устройством. Эта микросхема контролирует все цифровые сигналы, с которыми работает DAQ-устройство, в том числе сигналы, приходящие с АЦП, сигналы, подаваемые на ЦАП, а также сигналы на линиях цифрового ввода-вывода и счетчиках/таймерах. Кроме того, что микросхема NI-STC2 предоставляет дополнительные линии цифрового ввода-вывода, она также имеет шесть каналов DMA специально для операций ввода-вывода, с помощью которых все шесть операций (аналоговый ввод, аналоговый вывод, цифровой ввод, цифровой вывод, изменение состояния таймера-счетчика 0, изменение таймера-счетчика 1) могут выполняться одновременно, со своим собственным каналом DMA. За счет этого существенно повышается быстродействие и скорость передачи данных при одновременном выполнении нескольких операций. В состав микросхемы NI-STC2 входят два 80-мегагерцовых 32-битовых таймера/счетчика со встроенной поддержкой энкодера.

NI-STC3

Микросхема NI-STC3, применяемая в устройствах X-серии – это заказная интегральная микросхема (ASIC), которая управляет синхронизацией внутри платы и между платами, а также тактированием операций, выполняемых многофункциональным DAQ-устройством. Эта микросхема контролирует все цифровые сигналы, с которыми работает DAQ-устройство, в том числе сигналы, приходящие с АЦП, сигналы, подаваемые на ЦАП, а также сигналы на линиях цифрового ввода-вывода и счетчиках/таймерах. В этой микросхеме восемь каналов DMA, которые предназначены для прямой потоковой передачи данных между DAQ-устройством и памятью компьютера без участия центрального процессора или дополнительных программных операций. С помощью этих каналов организуются параллельные потоки данных для аналогового ввода-вывода, цифрового ввода-вывода и всех четырех таймеров/счетчиков. С использованием расширенной памяти типа FIFO емкостью 127 отсчетов для каждого из 32-битовых счетчиков, микросхема NI-STC3 может выполнять таймерные операции с буферизацией, такие, как подсчет количества событий или генерация ШИМ-сигнала на более высоких частотах, чем ранее произведенные устройства. В состав микросхемы NI-STC3 входят четыре 100-мегагерцовых 32-битовых таймера/счетчика с встроенной поддержкой энкодера. Кроме того, операции, для которых ранее на микросхемах NI-STC2 и NI-TIO нужны были два счетчика, теперь можно выполнять с помощью одного канала счетчика на микросхеме NI-STC3. Микросхема NI-STC3 вырабатывает полностью независимые сигналы синхронизации отсчетов и запуска для каждой отдельной группы линий ввода-вывода многофункционального устройства.

Таймерный ввод-вывод

Как и при аналоговом вводе, аналоговом выводе и цифровом вводе-выводе, в операциях таймерного ввода-вывода применяется DAQmx Read VI. Для этого выберите вариант использования счетчика, с которым будет работать DAQmx Read VI. DAQmx Write VI при работе со счетчиками не используется. DAQmx Create Virtual Channel VI, DAQmx Timing VI и DAQmx Triggering VI служат для конфигурирования режимов измерений или генерации сигналов с использованием счетчика.

DAQmx Create Virtual Channel VI

Чтобы создать программным путем канал таймерного ввода или вывода, выберите вариант Counter Input или Counter Output в выпадающем меню DAQmx Create Virtual Channel VI.

Канал Counter Input позволяет измерять частоту, период, длительность импульса или полупериод, подсчитывать количество фронтов.

Вариант конфигурации канала Counter Output позволяют генерировать импульсный сигнал с заданной частотой, в течение заданного времени или количества тактов.

DAQmx Read VI

Чтобы прочитать один или несколько отсчетов из задачи таймерного ввода, выберите соответствующий вариант в выпадающем меню DAQmx Read VI. Одновременно считывать данные можно только с одного канала счетчика, так что окно выбора одного или нескольких каналов недоступно.

Рисунок 6-2. Выпадающее меню DAQmx Read VI – вариант Counter

Здесь следует выбрать, сколько отсчетов нужно одновременно считать: один или несколько. При считывании одного отсчета выберите тип возвращаемых данных: число с плавающей точкой с двойной точностью (DBL) или 32-разрядное целое число без знака (U32). При считывании нескольких отсчетов возвращается одномерный массив чисел с плавающей точкой с двойной точностью или 32- разрядное целое число без знака.

DAQmx Timing VI

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

DAQmx Trigger VI

DAQmx Trigger VI служит для конфигурирования запуска задачи. Варианты выпадающего меню этого полиморфного VI соответствуют конфигурированию запуска и типа запуска. Сделайте такие же настройки сигналов запуска счетчиков как при конфигурировании сигналов запуска аналогового ввода и аналогового вывода. Кроме того, для настройки параметров счета с паузами следует использовать узел свойств DAQmx Trigger Property Node. За подробной информацией по настройке сигналов запуска обратитесь к лекции 4, Аналоговый вывод настоящего пособия.

B. Счет фронтов

Счет фронтов импульсного сигнала – это важнейшая из основных операций, при выполнении которой входным является сигнал на входе Source. В этом разделе описывается простой счет фронтов и измерение времени.

Простой счет фронтов

Простой счет фронтов соответствует базовым понятиям о счетчике –значение счетного регистра (Count Register) инкрементируется по активнjve фронтe сигнала на вход Source. Программно можно задать, какой из фронтов активный: нарастающий или ниспадающий. В этом режиме вход Gate и выход Out не используются.

Рисунок 6-3. Простой счет фронтов

Измерение времени

Измерение времени является разновидностью простого счета фронтов. При простом счете фронтов сигнал на входе Source считается неизвестным. В этом случае счетчик служит вам для измерения этого сигнала. При измерении времени частота импульсов на входе Source известна, этот сигнал является опорным (Timebase), что позволяет измерить прошедшее время. Таким образом, при измерении времени на вход Source вместо измеряемого сигналf подается опорный.

Рисунок 6-4. Простой счет фронтов – измерение времени

Прошедшее время вычисляется по формуле:

прошедшее время = (значение в счетном регистре) × (период опорного сигнала),

где период опорного сигнала = 1/(частота опорного сигнала).

Единственным различием между измерением времени и простым счетом фронтов является сигнал, подаваемый на вход Source.

Активный фронт

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

На рис. 6-5 в качестве активного выбран нарастающий фронт. В данном случае счетчик инкрементируется каждый раз, когда появляется нарастающий фронт.

Рисунок 6-5. Счет нарастающих фронтов на входе Source

Обратите внимание на то, что счетчик не может инкрементироваться до тех пор, пока не будет запущен счет (Counter Armed). Счетчик может считать до некоторого фиксированного значения, которое определяется его разрядностью. Например, 24-разрядный счетчик может считать до:

2(разрядность счетчика) – 1 = 2(24) – 1 = 16 777 215

Это значение в счетчике является максимальным (Terminal Count), и по следующему активному фронту счетчик переполняется и начинает считать с нуля.

Модификации счета фронтов

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

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