Аналоговый ввод-вывод
Часто микроконтроллер должен взаимодействовать с аналоговыми устройствами, которые работают с сигналами, имеющими уровень между напряжением питания Vcc и "землей", вводить и выводить такие аналоговые сигналы. Многие модели микроконтроллеров в различных семействах содержат аналогово-цифровые (ADC Analog-to-Digital Converter) и цифро-аналоговые (DАС - Digital-to-Analog Converter) преобразователи.
Существует три способа ввода аналогового сигнала в микроконтроллер. Первый способ — использование датчика, с помощью которого микроконтроллер определяет физическое положение движка потенциометра. Второй способ — включение аналогового компаратора, который определяет, находится ли значение поступающего напряжения выше или ниже заданного уровня (опорного напряжения). Третий тип - использование микроконтроллера с интегрированным на кристалле аналого-цифровым преобразователем (АЦП), который обеспечивает измерение значения поступающего на вход напряжения. Каждый из этих источников имеет определенные преимущества для различных областей применения.
В первом способе аналого-цифровое преобразование фактически не реализуется, а текущее значение сопротивления потенциометра определяется с помощью ввода-вывода цифровых данных. Для определения сопротивления потенциометра к выводу микроконтроллера подключается RC-цепь (рис. 18). Сопротивление определяется путем измерения времени, в течение которого потенциал на конденсаторе остается больше порога переключения. Чем больше сопротивление, тем большее число I будет считано на входе за время измерения (рис. 19). Чтобы выполнить измерение, вывод параллельного порта переводится в режим вывода, па котором устанавливается I (высокий потенциал). Конденсатор разряжается через сопротивление Rsub, которое ограничивает ток, предотвращая короткое замыкание в начале разряда. Когда конденсатор полностью разрядился, выходной драйвер закрывается, и конденсатор начинает заряжаться через потенциометр. Измерение заканчивается, когда напряжение на выводе упадет ниже порога переключения. Обычно для измерения времени используется таймер.
Рис.
19. Изменение входного потенциала при
измерении сопротивления потенциометра
Рис.
18. Использование
цифрового входа для определения
сопротивления потенциометр
На практике эта схема используется в приложениях, которые не требуют высокой точности измерения. Данная схема может определять относительное положение движка потенциометра. Например, в компьютерах IBМ PC такая схема используется для определения текущего положения джойстика. Неточность измерения отражается в том, что пользователя просят переместить джойстик в крайние положения, чтобы произнести его калибровку. Обычно в такой схеме используется танталовый конденсатор емкостью 0,1 мкФ и потенциометр с сопротивлением 10 кОм. Время заряда составляет около 22 мс. Этого значения достаточно, чтобы микроконтроллер смог измерить его с необходимой точностью, в то же время такая задержка слишком мала, чтобы ее мог заметить пользователь. Проблема заключается в том, что разброс емкостей для танталовых конденсаторов может достигать 100% от их номинала. Это означает, что необходимо производить калибровку перед использованием такого устройства.
Рис.
21. Получение опорных напряжений с
помощью резистивного делителя
Рис.
20. Сигналы
на входе и выходе компаратора
Рис.
22. Параллельный аналогово-цифровой
преобразователь
Другой способ аналого-цифрового преобразования - это использование параллельно включенных компараторов (рис. 22). Этот метод является наиболее быстрым по сравнению с другими методами преобразования типами ADC. Время преобразования определяется задержкой компараторов и приоритетного дешифратора. Этот способ относительно дорогой, так как требует использования большого числа компараторов, например, чтобы получить 8-разрядную точность преобразования потребуется 256 компараторов.
В последнем способе аналого-цифрового преобразования используется Встроенный АЦП. компаратор
Этот метод обеспечивает весьма высокую точность преобразования. Однако при его реализации возникает ряд проблем. Первая — это время, требуемое для преобразования.
Рис.
24. Неверная выборка сигнала
Последняя проблема - это выбор времени преобразования при измерении очень быстро изменяющихся сигналов. В примере, показанном на рис. 24, полученная в результате преобразования форма сигнала существенно отличается от реальной. Частота выборки сигнала должна быть в два раза больше верхней граничной частоты сигнала.
Рис.
25. Схема реализации аналогового выхода
Существует схема, которая может быть использована совместно с микроконтроллером для реализации аналогового вывода (рис. 25). В этой схеме выводы микроконтроллера используются в качестве выходов. Значение напряжения, поступающего на вход операционного усилителя, зависит от того, на каких выходах установлен низкий уровень сигнала (логический 0). Таким образом, можно получить различные значения напряжения на входе операционного усилителя. Операционный усилитель работает в режиме аналогового повторителя, обеспечивая развязку цепи нагрузки от резистивного делителя. Значения сопротивлений делителя выбираются в зависимости от количества выводов, используемых для управления выходным напряжением.
С помощью этой схемы нельзя получить выходное напряжение больше, чем напряжение питания из-за ограничительных диодов, которые подключены к выводам микроконтроллера, чтобы предотвратить поступление слишком большого напряжения. Для получения более высокого выходного напряжения следует использовать операционный усилитель в режиме усиления.
Для обработки высокочастотных аналоговых сигналов следует использовать внешний параллельный АЦП совместно с цифровым процессором сигналов (DSP).
