Ацп в групповом режиме

АЦП в микроконтроллерах STM32: периферия решает многое

Как вы думаете, в чем отличие между микропроцессорами различных производителей с одним и тем же ARM-ядром? Правильно — разница в периферии! Ведь, по сути, ядро — только лишь вычислитель, замкнутый сам на себя, а общаться с внешним миром ему помогают периферийные устройства: порты ввода/вывода, АЦП, счетчики и т.п. Следовательно, разнообразие этих устройств и качество их исполнения во многом определяют применяемость данного МК при решении тех или иных задач. Давайте посмотрим, что же может нам предложить семейство микроконтроллеров STM32.

Основные параметры АЦП различных семейств микроконтроллеров STM32 представлены в таблице 1.

Таблица 1. Параметры АЦП в различных семействах МК STM32

Количество АЦП в одном МК Частота дискретизации, Мвыб/сек Время
преобразования, мкс
STM32F10012162…5
1 STM32F1021,2…18
2…31…18
21…18
324 STM32L11…25 STM32W0,15Независимая работа

Этот режим имеет место, когда в составе МК имеется только один АЦП, или когда несколько АЦП настроены на работу без взаимодействия друг с другом. В этом случае возможны следующие режимы работы.

1. Одноканальный (Single-channel)

АЦП исполняет одно преобразование одного канала, записывает полученное значение в собственный выходной регистр и останавливается. Данный режим может быть применен для однократной проверки определенного параметра и принятия некоторого решения на его основе. Например, проверяем напряжение батареи, и если она разряжена, то не запускаем прибор, а только выдаем пользователю сообщение о необходимости замены элементов питания.

2. Многоканальный (Scan)

В этом режиме возможно сконфигурировать АЦП для выполнения определенного количества (например, 16) последовательных преобразований значений из различных каналов в любой последовательности (например, Канал1-Канал7-Канал12-Канал12-Канал5…). Делается это с помощью записи в специальный регистр последовательности номеров каналов в том порядке, в котором мы желаем осуществить преобразование. Время преобразования также настраивается отдельно для каждого канала. После обработки указанного числа каналов (от 1 до 16) АЦП останавливается. Этот режим может быть полезен, например, при периодическом оценивании среды или обстановки с помощью нескольких датчиков.

3. Одноканальный продолжительный (Single continuous)

Этот режим аналогичен первому, за тем исключением, что после окончания однократного преобразования АЦП не останавливается, а продолжает выбирать отсчеты из одного определенного канала. Широко применяется при непрерывном мониторинге аналоговых сигналов. Для хранения результатов всех обычных каналов выделен один и тот же регистр. Поэтому перед получением следующего значения необходимо позаботиться о сохранении в памяти предыдущего (например, с помощью контроллера DMA).

4. Многоканальный продолжительный (Scan continuous)

То же самое что многоканальный (Scan), только АЦП не останавливается после опроса всех каналов, а снова продолжает выбирать отсчеты, начиная с первого.

5. Прерывистый (Discontinuous)

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

Парная работа

Необходимо отметить, что парный режим работы возможен, если в составе МК имеются два или более АЦП. Это значительно расширяет возможности по оцифровке сигналов и добавляет несколько более сложных режимов работы.

1. Одновременный для обычных и приоритетных каналов
(Regular/Injected simultaneous)

При наступлении внешнего события первый АЦП будет сканировать каналы начиная с 0 до 15 для регулярных каналов или с 0 до 3 для инжектированных, а второй — наоборот, с 15 до 0 или с 3 до 0. Таким образом, каждый канал за тот же период времени будет обработан дважды. Необходимо обеспечить, чтобы период между событиями, запускающими преобразование, был как минимум в два раза больше, чем время, необходимое на само преобразование. Нужно вовремя извлекать результаты из регистра данных АЦП в оперативную память. Причем результат преобразования для АЦП2 будет содержаться в старшем полуслове регистра данных, а для АЦП1 — в младшем.

2. Быстрый попеременный
(Fast interleaved)

Доступен только для одного выбранного регулярного канала. При наступлении внешнего события АЦП2 стартует немедленно, а АЦП1 — с задержкой в семь тактов. Если установлен продолжительный (continuous) режим, то такая последовательность будет повторяться далее, что дает возможность удвоить частоту семплирования входного сигнала.

3. Медленный попеременный
(Slow interleaved)

Все как в предыдущем режиме, только АЦП1 стартует с задержкой в 14 тактов, а после окончания первого преобразования АЦП2 тоже выдержит задержку 14 тактов перед повторным стартом.

4. Переменный по триггеру
(Alternate trigger)

Доступен только для инжектированных каналов. При наступлении внешнего события АЦП1 начинает последовательно преобразовывать все инжектированные каналы. При наступлении следующего внешнего события АЦП2 начинает делать то же самое. Если установлен прерывистый (discontinuous) режим, то будет преобразован только один следующий канал на каждое наступившее событие. Этот режим позволяет получить два значения выборки, максимально близкие друг к другу (вплоть до 1…1,5 такта).

5. Комбинированный одновременный режим для регулярных/инжектированных каналов (combined regular/injected simultaneous mode)

Происходит преобразование обоих групп каналов. Но особенность заключается в том, что инжектированная группа каналов может прервать регулярную группу (рис. 1).

Рис. 1. Комбинированный одновременный режим

Данный режим может быть полезен в системах с критичным временем реакции на измерение каких-либо параметров, например — в управлении двигателями. При завершении преобразования группы останавливаются все остальные преобразования обеих групп, и результаты обработки сохраняются в регистрах данных каждого АЦП.

6. Комбинированные одновременный регулярный и переменный по триггеру режимы (combined regular simultaneous + alternate trigger mode)

Регулярная группа каналов может быть прервана поочередным запуском инжектированных каналов (рис. 2.). При завершении преобразования группы останавливаются все остальные преобразования обеих групп, и результаты обработки сохраняются в регистрах данных каждого АЦП.

Рис. 2. Комбинированные одновременный и переменный по триггеру режимы

7. Комбинированные инжектированный одновременный режим и режим со смещением каналов (combined regular simultaneous + alternate trigger mode)

Преобразование регулярных каналов осуществляется со смещением по времени и происходит одновременное преобразование двух групп инжектированных каналов (рис. 3).

Рис. 3. Комбинированные инжектированный одновременный режим и режим со смещением каналов

Заключение

Несомненно, множество режимов работы совместно с высокими собственными параметрами обеспечивают отличную перспективу применения 32-битных микроконтроллеров компании ST. Причем с каждой следующей серией заметна тенденция к дальнейшему повышению как частот семплирования, так и разрядности встроенных в МК АЦП. По предварительным данным, в новых линейках STM32 на ядре ARM Cortex-M4 будет доступен 16-битный сигма-дельта АЦП с дифференциальными входами. Это делает его не просто дополнением для приблизительной оценки каких-либо параметров, но и полноценным измерительным инструментом. Там где ранее при построении устройства необходимо было делать выбор в сторону внешнего стороннего АЦП, теперь есть возможность упростить схемотехническое, алгоритмическое решение и в результате получить более простое, дешевое, ремонтопригодное, а следовательно — более конкурентоспособное конечное изделие.

Интерфейсы АЦП

Важную часть аналого-цифрового преобразователя составляет цифровой интерфейс, т.е. схемы, обеспечивающие связь АЦП с приемниками цифровых сигналов. Структура цифрового интерфейса определяет способ подключения АЦП к приемнику выходного кода, например, микропроцессору, микроконтроллеру или цифровому процессору сигналов. Свойства цифрового интерфейса непосредственно влияют на уровень верхней границы частоты преобразования АЦП.

Наиболее часто применяют способ связи АЦП с процессором, при котором АЦП является для процессора как бы одной из ячеек памяти. При этом АЦП имеет необходимое число адресных входов, дешифратор адреса и подключается непосредственно к адресной шине и шине данных процессора. Для этого он обязательно должен иметь выходные каскады с тремя состояниями.

Другое требование совместной работы АЦП с микропроцессорами, называемое программным сопряжением, является общим для любых систем, в которые входят ЭВМ и АЦП. Имеется несколько способов программного сопряжения АЦП с процессорами. Рассмотрим основные.

Читайте также:  Как бесплатно звонить домой с сотового телефона

Проверка сигнала преобразования. Этот способ состоит в том, что команда начала преобразования “Пуск” периодически подается на АЦП от таймера. Процессор находится в цикле ожидания от АЦП сигнала окончания преобразования “Готов”, после которого выходит из цикла, считывает данные с АЦП и в соответствии с ними приступает либо к следующему преобразованию, либо к выполнению основной программы, а затем вновь входит в цикл ожидания. Здесь АЦП выступает в роли ведущего устройства (master), а процессор – ведомого (slave). Этот способ почти не требует дополнительной аппаратуры, но пригоден только в системах, где процессор не слишком загружен, т.е. длительность обработки данных от АЦП меньше времени преобразования АЦП. Указанный способ позволяет максимально использовать производительность АЦП.

Если длительность обработки данных от АЦП составляет заметно больше времени преобразования АЦП, можно использовать вариант этого способа, отличающийся тем, что сигнал “Пуск” поступает от процессора. Процессор выполняет основную программу обработки данных, а затем считывает данные с АЦП и вновь запускает его. В этом случае процессор выступает в роли ведущего устройства, а АЦП – ведомого.

Простое прерывание. Выдав команду “Пуск”, процессор продолжает работу по основной программе. После окончания преобразования формируется сигнал прерывания, который прерывает в процессоре вычисления и включает процедуру поиска периферийного прибора, пославшего сигнал прерывания. Эта процедура состоит в переборе всех периферийных устройств до тех пор, пока не будет найден нужный. Преимущество этого способа по сравнению с предыдущим проявляется в большем числе преобразований за одно и то же время, если используемый АЦП работает медленно. Если же АЦП быстродействующий, то этот способ работы может оказаться даже медленнее предыдущего, так как на обработку прерывания требуется значительное время.

Векторное прерывание. Этот способ отличается от предыдущего тем, что вместе с сигналом прерывания посылается и адрес программы обращения к данному АЦП. Следовательно, не нужно перебирать все периферийные приборы.

Прямой доступ к памяти. Здесь также используется прерывание, но в отличие от предыдущих двух способов, управление по системе прерывания передается на специальный интерфейс, который и производит перезапись данных преобразования в память, минуя регистры процессора. Это позволяет сократить длительность прерывания до одного такта. Номера ячеек памяти хранятся адресном регистре интерфейса. Для этой цели выпускаются ИМС контроллеров прямого доступа к памяти.

В зависимости от способа пересылки выходного слова из АЦП в цифровой приемник различают преобразователи с последовательным и параллельным интерфейсами выходных данных. Последовательный интерфейс медленнее параллельного, однако он позволяет осуществить связь с цифровым приемником значительно меньшим количеством линий и в несколько раз сократить число выводов ИМС. Поэтому обычно параллельный интерфейс используется в параллельных и последовательно-параллельных АЦП, а последовательный – в интегрирующих. В АЦП последовательного приближения применяются как параллельный (например, 1108ПВ2), так и последовательный (например, АD7893) интерфейсы. Некоторые АЦП последовательного приближения (например, AD7892) имеют интерфейс обоих типов.

АЦП с параллельным интерфейсом выходных данных. В простейших случаях, характерных для параллельных АЦП и преобразователей ранних моделей, интерфейс осуществляется с помощью N-разрядного регистра хранения, имеющего три состояния выхода. Здесь N – разрядность АЦП. На рис. 20 представлена функциональная схема такого АЦП и временные диаграммы работы интерфейса.

На нарастающем фронте сигнала “Пуск” УВХ преобразователя переходит в режим хранения и инициируется процесс преобразования. Когда преобразование завершено, на выходную линию “Готов” выводится импульс, что указывает на то, что в выходном регистре АЦП находится новый результат. Сигналы “CS” (выбор кристалла) и “RD” (Чтение) управляют выводом данных для передачи приемнику.

Для того, чтобы упростить связь многоразрядного (N>8) АЦП с 8-разрядным микропроцессором или микроконтроллером в некоторых ИМС (например, МАХ167) реализована побайтовая выдача выходного слова. Если сигнал HВEN, управляющий режимом вывода, имеет низкий уровень, то старшие биты выходного слова поступают на соответствующие им выводы (для 12-разрядного АЦП на выводы DO8. DO11). В противном случае они подаются на выводы, соответствующие младшему байту (для 12-разрядного АЦП на выводы DO0. DO3).

АЦП с последовательным интерфейсом выходных данных. В АЦП последовательного приближения, оснащенных простейшей цифровой частью, таких как 12-битный МАХ176 или 14-битный МАХ121 выходная величина может быть считана в виде последовательного кода прямо с компаратора или регистра последовательного приближения (РПП), как это указано в п. 4.1. На рис. 21 представлена функциональная схема такого интерфейса (а) и временные диаграммы его работы (б).

Здесь приведена схема, реализующая SPI-интерфейс. Процессор является ведущим (master). Он инициирует начало процесса преобразования подачей среза на вход “Пуск” АЦП. С тактового выхода процессора на синхровход АЦП поступает последовательность тактовых импульсов. Начиная со второго такта после пуска на выходе данных АЦП формируется последовательный код выходного слова старшими битами вперед. Этот сигнал поступает на MISO (master – input, slave – output) вход процессора.

Простейший интерфейс обеспечивает наименьшее время цикла “преобразование – передача данных”. Однако он обладает двумя существенными недостатками. Во-первых, переключение выходных каскадов АЦП во время преобразования привносит импульсную помеху в аналоговую часть преобразователя, что вызывает уменьшение соотношение сигнал/шум (например, для АЦП AD7893 среднеквадратическое значение шума при передаче данных во время преобразования почти в три раза больше, чем при считывании данных после преобразования). Во-вторых, если АЦП имеет большое время преобразования, то процессор будет занят приемом информации от него существенную часть вычислительного цикла. По этим причинам современные модели АЦП с последовательной передачей выходных данных оснащаются выходным сдвиговым регистром, в который загружается результат преобразования из РПП. Временные диаграммы такого интерфейса приведены на рис. 22.

Режимы работы АЦП

АЦП использует специальный тактовый генератор, частота которого задаётся относительно частоты главного тактового генератора (Master Clock). АЦП может работать в двух режимах: нормальном и «спящем». В нормальном режиме после выполнения преобразования АЦП продолжает тактироваться от собственного тактового генератора, в то время как при работе в «спящем» режиме тактовый генератор останавливается после каждого одиночного преобразования или последовательности из нескольких преобразований по заданным каналам мультиплексора. Этот режим используется для снижения энергопотребления.

Способы запуска преобразования

Поддерживается несколько способов запуска преобразования:

◦ запуск по внешнему сигналу;

◦ запуск от встроенного таймера/счётчика.

Программный запуск преобразования осуществляется путём записи определённых данных в регистр управления АЦП. Для осуществления аппаратного запуска преобразования АЦП имеет специальных вход, который программно подключается либо к каналу внутреннего таймера/счётчика, либо к специальному внешнему контакту на корпусе микроконтроллера. Аппаратный запуск происходит в момент переднего фронта импульса запускающего сигнала.

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

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

Временные характеристики аналого-цифрового преобразования

Время выборки — это период времени, в течение которого аналоговый канал ввода подключается к устройству выборки-хранения. Устройство выборки-хранения содержит конденсатор выборки, к которому аналоговый сигнал подключается на некоторое время. Это

время называется временем выборки и устанавливается программно в некотором диапазоне. При выполнении преобразования конденсатор выборки подключается непосредственно к АЦП. Если время выборки будет слишком мало, конденсатор не успеет полностью зарядиться; если же время выборки будет слишком велико, входной сигнал может за это время значительно измениться и возникнет динамическая погрешность.

Программный интерфейс для работы с АЦП

Работа с АЦП осуществляется через ячейки в верхней части адресного пространства, называемые регистрами (не следует путать их с регистрами процессора: r0, r1, … r15). Большинство таких регистров предназначены либо только для записи данных в них, либо только для чтения. С помощью регистров, предназначенных для записи осуществляется управление АЦП, предназначенных для чтения — получение результатов и определение состояния.

Программный интерфейс АЦП позволяет:

• выбрать способ запуска преобразования;

• выбрать источник сигнала, по которому произойдёт запуск преобразования;

• установить разрядность преобразования;

• выбрать временные параметры преобразования;

• выбрать каналы мультиплексора, по которым будет производиться преобразование;

• определить, что результаты преобразований готовы;

• получить результаты преобразований в виде кода;

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

Работа с результатами преобразований возможна следующими способами:

• работа с результатами преобразований с привязкой по каждому каналу;

• работа с результатом последнего преобразования.

Для программного запуска преобразования используется регистр ADC_CR, называемый также регистром управления АЦП (Control Register). При запуске происходит либо выполнение одиночного преобразования, либо последовательности преобразований по нескольким каналам в зависимости от того, какие из них были включены с использованием регистра разрешения работы каналов ADC_CHER (см. далее) или выключены с использованием регистра запрещения работы каналов ADC_CHDR .

Выбор режима преобразования (нормальный/спящий), разрядности преобразования, источника сигнала для аппаратного запуска АЦП, а также установка временных параметров преобразования осуществляется с помощью регистра выбора режима ADC_MR (Mode Register).

Разрешение, запрет и проверка разрешения выполнения преобразования по каналам мультиплексора осуществляется с помощью регистров разрешения работы каналов ADC_CHER (Channel Enable Register), запрета работы каналов ADC_CHDR (Channel Disable Register) и проверки состояния разрешения работы каналов ADC_CHSR (Channel Status Register) соответственно.

Если необходимо «за один раз» выполнить преобразование по нескольким каналам, следует установить сразу несколько разрядов в регистре разрешения работы каналов. Тогда при программном или аппаратном запуске преобразования произойдёт последовательное выполнение преобразований по всем указанным каналам. Результаты преобразований в таком

случае можно получить только с использованием регистров результатов преобразований по каналу : ADC_CDR0, ADC_CDR1, . , ADC_CDR7 (Channel Data Register). Если же необходимо выполнить преобразование только по одному каналу, то результат преобразования может быть прочитан как из соответствующего регистра результата преобразования по каналу (ADC_CDRn), так и из регистра результата последнего преобразования ADC_LCRD (Last Converted Data Register).

Регистр состояния ADC_SR (Status Register) позволяет определить, завершено ли последнее преобразование, а также завершено ли преобразование по указанным каналам в случае работы с привязкой по каналам.

Регистр

Основными элементами устройства являются компаратор (К), цифро-аналоговый преобразователь (ЦАП) и схема логического управления. Принцип преобразования основан на последовательном сравнении уровня входного сигнала с уровнями сигналов соответствующих различным комбинациям выходного кода и формировании результирующего кода по результатам сравнений. Очередность сравниваемых кодов удовлетворяет правилу половинного деления. В начале преобразования входной код ЦАП устанавливается в состояние, в котором все разряды кроме старшего равны 0, а старший равен 1. При этой комбинации на выходе ЦАП формируется напряжение, равное половине диапазона входного напряжения. Это напряжение сравнивается со входным напряжением на компараторе. Если входной сигнал больше сигнала, поступающего с ЦАП, то старший разряд выходного кода устанавливается в 1, в противном случае он сбрасывается в 0. На следующем такте частично сформированный таким образом код снова поступает на вход ЦАП, в нем устанавливается в единицу следующий разряд и сравнение повторяется. Процесс продолжается до сравнения младшего бита. Т.о. для формирования N -разрядного выходного кода необходимо N одинаковых элементарных тактов сравнения. Это означает, что при прочих равных условиях быстродействие такого АЦП уменьшается с ростом его разрядности. Внутренние элементы АЦП последовательных приближений (ЦАП и компаратор) должны обладать точностными показателями лучше величины половины младшего разряда АЦП.

Читайте также:  Имитатор охранной сигнализации

Структурная схема параллельного ( Flash ) АЦП представлена на рис.3.4.

В этом случае входное напряжение подается для сравнения на одноименные входы сразу N -1 компараторов. На противоположные входы компараторов подаются сигналы с высокоточного делителя напряжения, который подключен к источнику опорного напряжения. При этом напряжения с выходов делителя равномерно распределены вдоль всего диапазона изменения входного сигнала. Шифратор с приоритетом формирует цифровой выходной сигнал, соответствующий самому старшему компаратору с активизированным выходным сигналом. Т.о. для обеспечения N -разрядного преобразования необходимо 2 N резисторов делителя и 2 N -1 компаратор. Это один из самых быстрых способов преобразования. Однако, при большой разрядности он требует больших аппаратных затрат. Точность всех резисторов делителя и компараторов снова должна быть лучше половины величины младшего разряда.

Структурная схема АЦП двойного интегрирования представлена на рис.3.5.

Счетчик

Выходной

Основными элементами системы являются аналоговый коммутатор, состоящий из ключей SW 1, SW 2, SW 3, интегратор И, компаратор К и счетчик С. Процесс преобразования состоит из трех фаз (рис.3.6).

На первой фазе замкнут ключ SW 1, а остальные ключи разомкнуты. Через замкнутый ключ SW 1 входное напряжение подается на интегратор, который в течение фиксированного интервала времени интегрирует входной сигнал. По истечение этого интервала времени уровень выходного сигнала интегратора пропорционален значению входного сигнала. На втором этапе преобразования ключ SW 1 размыкается, а ключ SW 2 замыкается, и на вход интегратора подается сигнал с источника опорного напряжения. Конденсатор интегратора разряжается от напряжения, накопленного в первом интервале преобразования с постоянной скоростью, пропорциональной опорному напряжению. Этот этап длится до тех пор, пока выходное напряжение интегратора не упадет до нуля, о чем свидетельствует выходной сигнал компаратора, сравнивающего сигнал интегратора с нулем. Длительность второго этапа пропорциональна входному напряжению преобразователя. В течение всего второго этапа на счетчик помтупают высокочастотные импульсы с калиброванной частотой. Т.о. по истечению второго этапа цифровые показания счетчика пропорциональны входному напряжению. С помощью данного метода можно добиться очень хорошей точности не предъявляя высоких требований к точности и стабильности компонентов. В часности, стабильность емкости интегратора может быть не высокой, поскольку циклы заряда и разряда происходят со скоростью, обратно пропорциональной емкости. Болле того, ошибки дрейфа и смещения компарптора компенсируются благодаря тому, что каждый этап преобразования начинается и заканчивается на одном и том же напряжении. Для повышения точности используется третий этап преобразования, когда на вход интегратора через ключ SW 3 подается нулевой сигнал. Поскольку на этом этапе используется тот же интегратор и компаратор, то вычитание выходного значения ошибки при нуле из результата последующего измерения позволяет компенсировать ошибки, связанные с измерениями вблизи нуля. Жесткие требования не предъявляются даже к частоте тактовых импульсов, поступающих на счетчик, т.к. фиксированный интервал времени на первом этапе преобразования формируется из тех же самых импульсов. Жесткие требования предъявляются только к току разряда, т.е. к источнику опорного напряжения. Недостатком такого способа преобразования является невысокое быстродействие.

АЦП характеризуютя рядом параметров, позволяющих реализовать выбор конкретного устройства исходя из требований, предъявляемых к системе. Все параметры АЦП можно разделить на две группы: статические и динамические. Первые определяют точностные характеристики устройства при работе с неизменяющимся либо медленно изменяющимся входным сигналом, а вторые характеризуют быстродействие устройства как сохранение точности при увеличении частоты входного сигнала.

Уровню квантования, лежащему в окрестностях нуля входного сигнала соответствуют напряжения межкодовых переходов –0.5 ULSB и 0.5 ULSB (первый имеет место только в случае биполярного входного сигнала). Однако, в реальных устройствах, напряжения данных межкодовых переходов могут отличаться от этих идеальных значений. Отклонение реальных уровней этих напряжений межкодовых переходов от их идеальных значений называется ошибкой биполярного смещения нуля ( Bipolar Zero Error ) и ошибкой униполярного смещения нуля ( Zero Offset Error ) соответственно. При биполярных диапазонах преобразования обычно используют ошибку смещения нуля, а при униполярных – ошибку униполярного смещения. Эта ошибка приводит к параллельному смещению реальной характеристики преобразования относительно идеальной характеристики вдорль оси абсцисс (рис.3.7).

Аналого-цифровые преобразователи

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

Рис. 8.4 Структурная схема АЦП.

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

В ЦИП значение сигнала измеряется только в фиксированные моменты времени . Частота дискретизации выбирается из противоречивых условий. Действительно, чем больше частота дискретизации , тем меньше потери измерительной информации, но это приводит к ужесточению требований по быстродействию АЦП и, следовательно, к его усложнению.

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

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

Рис. 8.5 Квантование и дискретизация аналогового сигнала.

Из сравнения реальной и идеальной функции преобразования следует, что погрешность квантования:

. (8.1)

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

. (8.2)

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

Рис. 8.6 Диаграммы, поясняющие погрешность квантования: а – реальная и идеальная функции преобразования; б – кривая погрешности квантования.

Погрешность АЦП определяется суммой методической и инструментальной составляющих:

. (8.3)

Методическая погрешность определяется принципом работы преобразователя и зависит от погрешности дискретизации и квантования, а инструментальная погрешность определяется нестабильностью работы узлов и элементов АЦП.

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

В измерительных устройствах используют АЦП прямого и уравновешивающего преобразования.

Прямое АЦП реализуется одним из следующих способов:

· время – импульсное кодирование;

· число – импульсное кодирование;

· частотно – импульсное кодирование.

В ЦИП наибольшее распространение получили время – импульсное и частотно – импульсное кодирование.

АЦП время – импульсного кодирования работает на основе последовательного преобразования измеряемого напряжения в пропорциональный ему временной интервал. В течение этого интервала времени на электронный счетчик поступают импульсы с известной частотой повторения, число которых пропорционально величине измеряемого постоянного напряжения.

Последовательность работы рассматриваемого АЦП поясняется временными диаграммами. При подаче на вход АЦП измеряемого напряжения по сигналу с устройства управления показания счетчика и ЦОУ сбрасывается, а генератор ГЛИН начинает формировать пилообразное напряжение. В это же время на выходе компаратора начинается формироваться импульс. При поступлении этого импульса на временной селектор последний открывается и пропускает на вход счетчика импульсы с генератора счетных импульсов. При достижении равенства напряжения ГЛИН и измеряемого напряжения формирование импульса на выходе компаратора прекращается, схема «И» закрывается и счет импульсов прекращается. В результате счетчик регистрирует некоторое число импульсов N за интервал времени, а ЦОУ отображает соответствующее ему число. В дальнейшем рассмотренная процедура работы продолжается.

Рис. 8.7 АЦП время-импульсного действия: а – структурная схема; б – временная диаграмма.

Длительность интервала подсчета импульсов:

. (8.4)

С другой стороны,

. (8.5)

После соответствующих преобразований получим:

. (8.6)

Поскольку значение численно соответствует скорости изменения пилообразного напряжения V, то

. (8.7)

Для конкретных схем АЦП значение выбирается равным , при этом:

. (8.8)

Суммарная погрешность АЦП данного типа определяется следующими причинами:

· погрешностью преобразования измеряемого напряжения в длительность прямоугольного импульса (нелинейность и нестабильность ГЛИН, погрешность компаратора);

· погрешностью преобразования интервала времени в код.

Общая погрешность такого АЦП составляет обычно 0,1 %.

Более помехоустойчивой является схема с двойным интегрированием (0,01%). Это объясняется тем, что рассматриваемый АЦП преобразует не мгновенное, а среднее значение входного напряжения.

Что такое АЦП

Что нужно для того, чтобы стать профессиональным разработчиком программ для микроконтроллеров и выйти на такой уровень мастерства, который позволит с лёгкостью найти и устроиться на работу с высокой зарплатой (средняя зарплата программиста микроконтроллеров по России на начало 2017 года составляет 80 000 рублей). Подробнее.

АПЦ – это Аналого-Цифровой Преобразователь. По английски ADC (Analog-to-Digital Converter). То есть специальное устройство, которое преобразует аналоговый сигнал в цифровой.

АЦП применяется в цифровой технике. В частности, почти все современные микроконтроллеры имеют встроенный АЦП.

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

Например, если вы создаёте программу для микроконтроллера, которая отслеживает температуру, то микропроцессор должен каким-то образом понять, что, например, напряжение 1В на его аналоговом входе соответствует температуре 10 градусов, а 5В – температуре 100 градусов (это просто пример, пока не обращайте внимание на числа).

Читайте также:  Программные таймер и счетчик

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

Принцип работы АЦП

Итак, мы узнали, что АЦП преобразует аналоговый сигнал в цифровой. Но как он это делает?

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

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

Как вы уже знаете, аналоговый сигнал – это непрерывный сигнал. То есть такой сигнал может принимать бесконечное количество значений, и ни у какого процессора не хватит “мозгов” для обработки всех этих значений.

Поэтому первая задача АЦП – это разбить измеряемый диапазон на какое-то конечное количество значений.

Например, мы хотим измерить напряжение в диапазоне от 0 до 9 В. Допустим, нам достаточно точности в 1В. Тогда мы разбиваем этот диапазон на 10 значений и получаем, что каждому значению напряжения соответствует такое же число. То есть 0 – это 0 В, 5 – 5 В и т.п.

А как же, например, напряжение 4,3 В? Да никак. Оно просто округляется, и АЦП преобразует его в число 4. Этот простой пример отображён на рисунке ниже.

Возникает вопрос – а как измерять большие напряжения? Или как повысить точность (например, если мы хотим измерять напряжение с точностью до 0,1В)?

Расскажу и об этом, но сначала о разрядности АЦП.

Разрядность АЦП

Разрядность АЦП – это разрядность его выходного сигнала. То есть количество битов в числе, которое получается на выходе АЦП.

Например, 8-разрядный АЦП может выдать 2 8 = 256 значений – от 0 до 255 (если речь идёт о положительных числах).

Это значит, что измеряемый диапазон (сигнал на входе АЦП или на аналоговом входе микроконтроллера) мы можем разбить на 256 значений. Таким образом мы можем определить точность измеряемого значения, которую может обеспечить данный АЦП. Сделать это можно по формуле:

Где Р – это разрядность АЦП, Д – диапазон измеряемых значений, Х – точность (дискретность).

Например, если вам надо измерять напряжение в диапазоне 0. 9В, то Д = 10. А если в диапазоне -5. 15В, то Д = 21 (не забываем про ноль).

Например, если у нас 8-разрядный АЦП, и мы хотим измерять напряжение в диапазоне 0. 255В, то точность измерений будет:

256 / 2 8 = 256 / 256 = 1 В

Если же мы хотим измерять напряжение с этим же АЦП в диапазоне 0. 15В, то точность измерений будет:

16 / 2 8 = 16 / 256 = 0,0625 В

Из этого следует, что для того, чтобы повысить точность, требуется либо сузить диапазон измеряемых значений, либо повысить разрядность АЦП. Например:

256 / 212 = 256 / 4096 = 0,0625 В

То есть 12-разрядный АЦП обеспечит уже довольно высокую точность даже при измерении сигналов с относительно большим диапазоном значений.

Разумеется, измерять можно не только напряжение, но и другие физические величины – это зависит от датчика, который подключен к АЦП. Но для АЦП безразлично, что измерять. Он всего лишь преобразует аналоговый сигнал в цифровой. А о том, как получить аналоговый сигнал нужной формы на входе АЦП, должен позаботиться разработчик устройства на микроконтроллере.

АЦП микроконтроллера обычно измеряет только напряжение в диапазоне от 0 до напряжения питания микроконтроллера.

Характеристики АЦП

АЦП бывают разные, с разными характеристиками. Основная характеристика – это разрядность. Однако есть и другие. Например, вид аналогового сигнала, который можно подключать к входу АЦП.

Все эти характеристики описаны в документации на АЦП (если он выполнен в виде отдельной микросхемы) или в документации на микроконтроллер (если АЦП встроен в микроконтроллер).

Кроме разрядности, о которой мы уже говорили, можно назвать ещё несколько основных характеристик.

Least significant bit (LSB) – младший значащий разряд (МЗР). Это наименьшее входное напряжение, которое может быть измерено АЦП. Определяется по формуле:

1 LSB = Uоп / 2 Р

Где Uоп – это опорное напряжение (указывается в характеристиках АЦП). Например, при опорном напряжении 1 В и разрядности 8 бит, получим:

1 LSB = 1 / 2 8 = 1 / 256 = 0,004 В

Integral Non-linearity – интегральная нелинейность выходного кода АЦП. Понятно, что любое преобразование вносит искажения. И эта характеристика определяет нелинейность выходного значения, то есть отклонение выходного значения АЦП от идеального линейного значения. Измеряется эта характеристика в LSB.

Иными словами, эта характеристика определяет, насколько “кривой” может быть линия на графике выходного сигнала, которая в идеале должна быть прямой (см. рис.).

Абсолютная точность. Также измеряется в LSB. Иными словами, это погрешность измерения. Например, если эта характеристика равна +/- 2 LSB, а LSB = 0,05 В, то это означает, что погрешность измерений может достигать +/- 2*0,05 = +/- 0,1В.

Есть у АЦП и другие характеристики. Но для начала и этого более чем достаточно.

Подключение АЦП

Напомню, что аналоговые сигналы, в основном, бывают двух видов: токовые и напряжения. Кроме того, сигналы могут иметь стандартный диапазон значений, и нестандартный. Стандартные диапазоны значений аналоговых сигналов описаны в ГОСТах (например, ГОСТ 26.011-80 и ГОСТ Р 51841-2001). Но, если в вашем устройстве используется какой-то самодельный датчик, то сигнал может и отличаться от стандартного (хотя я советую в любых случаях выбирать какой-нибудь стандартный сигнал – для совместимости со стандартными датчиками и другими устройствами).

АЦП в основном измеряют напряжение.

Попробую рассказать о том (в общих чертах), как подключить аналоговый датчик к АЦП и как потом разобраться с теми значениями, которые будет выдавать АЦП.

Итак, допустим, что мы хотим измерять температуру в диапазоне -40…+50 градусов с помощью специального датчика со стандартным выходом 0. 1В. Допустим, что у нас есть датчик, который может измерять температуру в диапазоне -50…+150 градусов.

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

Что такое линейный закон? Это когда диапазон значений на графике выглядит как прямая линия (см. рис.). Зная, что температура от -50 до +150 даёт на выходе датчика напряжение, изменяемое по линейному закону, мы, как я уже сказал, можем вычислить это напряжение для любого значения температуры на заданном диапазоне.

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

Определить напряжение по температуре визуально можно по графику (см. рис. выше). Но микроконтроллер глаз не имеет (хотя, конечно, можно поразвлекаться и создать устройство на микроконтроллере, способное распознавать образы и определять значение температуры по напряжению на графике, но оставим эти развлечения фанатам робототехники)))

Первым делом определяем диапазон температур. Он у нас от -50 до 150, то есть 201 градус (не забываем про ноль).

А диапазон измеряемых напряжений – от 0 до 1 В.

То есть в шкалу от 0 до 1 нам надо впихнуть диапазон от 0 до 200 (всего 201).

Находим коэффициент преобразования:

К = U / Tд = 1 / 200 = 0,005 (1)

То есть при изменении температуры на 1 градус напряжение на выходе датчика будет меняться на 0,005 В. Здесь Тд – это температурный диапазон. Не значения температуры, а количество единиц измерения (в нашем случае градусов) на температурной шкале, сопоставляемой со шкалой напряжения (ноль не учитываем для упрощения, так как в диапазоне напряжений тоже есть ноль).

Проверяем характеристики АЦП микроконтроллера, который мы планируем использовать. Значение LSB не должно быть более К (более 0,005 в нашем случае, точнее, это допустимо, если вас устроит погрешность более 1 единицы измерения – более 1 градуса в нашем случае).

По сути К – это вольт на градус, то есть так мы узнали, на какое значение изменяется напряжение при изменении температуры на 1 градус.

Теперь у нас есть все необходимые данные, чтобы в программе микроконтроллера преобразовать значение на выходе АЦП в значение температуры.

Мы помним, что мы сместили диапазон температур на 50 градусов. Это надо учитывать при преобразовании значения на выходе АЦП в температуру.

А формула будет такая:

Например, если на выходе АЦП 0,5 В, то

Т = (U / К) – 50 = (0,5 / 0,005) – 50 = 100 – 50 = 50 градусов

Теперь нам надо определить дискретность, то есть желаемую точность измерений.

Как вы помните, абсолютная погрешность может составлять несколько LSB. К тому же ещё существуют нелинейные искажения, которые обычно равны 0,5 LSB. То есть общая погрешность АЦП может доходить до 2-3 LSB.

В нашем случае это:

Uп = 3 LSB * 0,005 = 0,015 В

Если в вашем случае не так всё гладко, то снова используем формулу, выведенную из (1):

Тд = Uп / K = 0,015 / 0,005 = 3

Если погрешность в 3 градуса вас устраивает, то можно ничего не менять. Ну а если нет, то придётся подобрать АЦП с большей разрядностью либо подыскать другой датчик (с другим температурным диапазоном или с другим выходным напряжением).

Например, если вам удастся найти датчик с диапазоном -40…+50, как мы и хотели, и с таким же выходом 0. 1В, то

Тогда абсолютная погрешность будет:

Тд = Uп / K = 0,015 / 0,01 = 1,5 градуса.

Это уже более-менее приемлемо. Ну а если у вас будет датчик с выходом 0. 5В (это тоже стандартный сигнал), то

А абсолютная погрешность будет:

Тд = Uп / K = 0,015 / 0,05 = 0,3 градуса.

Это уже вообще ништяк.

Но! Не забывайте, что здесь мы рассматриваем только погрешность АЦП. Но и у самого датчика тоже есть погрешность, которую также надо учитывать.

Но всё это уже из области электроники и метрологии, поэтому данную статью я здесь и закончу.

А в конце на всякий случай приведу формулу обратного преобразования температуры в напряжение:

Рейтинг
( Пока оценок нет )
Загрузка ...
Adblock
detector