- •О.В. Шишов аналого-цифровые периферийные устройства
- •Введение
- •1. Общие вопросы обработки сигналов в цифровых контроллно-управляющих системах
- •1.1 Непрерывные и дискретные сигналы. Цифровые сигналы.
- •1.2. Предсталение чисел в двоичном коде
- •Представление чисел в различных системах счисления
- •1.3. Достоинства цифровых систем обработки сигналов перед аналоговыми
- •1.4. Выбор частоты дискретизации
- •1.5. Восстановление исходного аналогового сигнала из цифрового
- •1.2 Входные аналоговые цепи измерительных систем
- •2.3. Автоматическая коррекция систематических погрешностей измерительных каналов
- •3. Цифроаналоговые преобразователи
- •3.1 Общие способы реализации
- •3.2 Цап со взвешенным суммированием токов
- •3.3 Параметры и погрешности цап
- •Способы идентификации и коррекции статических погрешностей цап
- •3.5 Особенности применения бис цап
- •4. Аналого-цифровые пребразователи (ацп)
- •4.1. Общие определения и понятия
- •4.1. Параметры и характеристики ацп
- •4.3 Ацп последовательных приближений
- •5.3 Параллельные ацп
- •Параллельно-последовательные ацп
- •Коррекция статических погрешностей ппацп
- •Коррекция динамических погрешностей ппацп
- •Комплексная коррекция статических и динамических погрешностей ппацп
- •Применение комплексных методов коррекции статических и динамических погрешностей в различных структурах ацп
- •5.5 Следящие ацп многоразрядных приращений
- •Развертывающие ацп
- •5.9 Особенности применения бис ацп
- •6. Функциональные преобразователи информации
- •6.1 Табличные фпи
- •6.2 Кусочно-линейные фпи
- •6.3 Диодные кусочно-линейные фпи
- •6.4 Время-импульсные кусочно-линейные фпи
- •6.5. Гибридные кусочно-линейные фпи
- •6.6 Полиномиальные и дробно-рациональные фпи
- •7. Цифровые методы измерения
- •7.1 Формирование частотных и широтно-импульсных сигналов
- •7.2 Цифровые методы измерения частоты
- •7.3 Организация подсчета внешних событий (количества импульсов) в микропроцессорных системах.
- •7.4 Измерение временных интервалов
- •7.5 Формирование импульсного сигнала заданной длительности
- •8. Системное проектирование аналого-цифровых контрольно -управляющих систем
- •8.1 Компоновка структуры аналого-цифровых каналов ввода-вывода, выбор способов реализации операций преобразования и обработки данных.
- •8.2 Особенности проектирования многоканальных кус
- •8.4 Организация работы ацп и цап в микропроцессорных системах
- •Заземление и гальваническая развязка в системах промышленной автоматики
- •9. Тенденции развития микроэлектронных средств преобразования формы информации и ее обработки
- •Библиография
- •Содержание
- •6. Функциональные преобразователи информации 117
- •7. Цифровые методы измерения 129
- •8. Системное проектирование аналого-цифровых контрольно -управляющих систем 138
7.3 Организация подсчета внешних событий (количества импульсов) в микропроцессорных системах.
Подсчет числа импульсов может вестись с помощью обычных счетчиков. Однако если информация со счетчиков должна считываться в микропроцессор это обязательно будет сопряжено со следующей проблемой.
Моменты поступления импульсов на счетчик и, следовательно, моменты смены кода на его выходах определяются только внешними событиями и ни как не связаны с работой программы микропроцессорного ядра системы, т.е. ни как не связаны с моментами считывания кода с выходов счетчиков в микропроцессор. При этом не исключена вероятность того, что считывание будет производиться именно в момент смены информации на выходах счетчиков и чтение будет проведено с ошибкой.
Исключения этого можно добиться только включением на выходе счетчика буфера. Считывание в микропроцессор данных при этом производится из буфера, перезапись данных в буфер из счетчика производится периодически, но она запрещается на время обращения микропроцессора к этому буферу. Управление работой буфера реализуется на аппаратном уровне, поэтому с точки зрения программы он доступен в любой момент времени. Работа счетчика при этом ни на какое временя не блокируется – он постоянно работает, в этом смысле говорят о считывании информации с него "на лету". Примером аппаратной реализации такого счетчика в интегральном исполнении является БИС таймера К580ВИ53.
Подсчет импульсов может осуществляться чисто программно при подаче импульсов на один из опрашиваемых цифровых входов микропроцессорного ядра. При этом программно должна "отлавливаться" каждая смена состояния (уровня) сигнала на этом входе. Понятно, что при этом достижимая в конкретном случае частота опроса цифрового счетного входа будет ограничивать максимальную частоту следования подсчитываемых импульсов.
Для того чтобы исключить ошибки счета программный опрос счетного входа должен производиться непрерывно, однако это исключает выполнение микропроцессором во время счета иных операций. Для исключения этого можно осуществлять подсчет по прерываниям. При этом подсчитываемые импульсы подаются на вход прерывания микропроцессорного ядра. Поступление каждого импульса вызывает прерывание, в процессе обработки которого в программно реализуемом счетчике увеличивается на единицу число подсчитанных импульсов. Ограничение такого способа организации счета связано с тем, что длительность импульса должна быть обязательно меньше времени выполнения подпрограммы обработки прерывания, иначе после окончания этой подпрограммы наличие активного уровня на входе прерывания приведет к тому, что микропроцессор вновь перейдет к подпрограмме увеличения значения счета. Для того чтобы этого не было или ограничивают длину подсчитываемых импульсов с помощью дифференцирующей цепи или используют микропроцессоры с входом прерывания, реагирующим не на уровень, а на фронтальное изменение сигнала.
Проще всего подсчет импульсов реализуется если микропроцессор располагает для этого специальными средствами, предусмотренными для выполнения подобных операций еще при его проектировании и входящими в силу этого в состав его стандартной внутренней функциональной конфигурации. Так в состав функциональных узлов большинства однокристальных микроконтроллеров включается один или несколько аппаратных счетчиков, т.е. счетчиков ведущих счет как таковой без какого-либо участия программы, с помощью программы можно, однако, считывать текущее значение со счетчиков, задавать начальное значение счета (проводить их предустановку). Переполнение счетчиков в таких микроконтроллерах, как правило, приводит еще и к прерыванию основной программы.
