Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Разработка киберфизических систем на основе микроконтроллеров. Учебное пособие

.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
Лекция 7. Аналого-цифровой преобразователь микроконтроллера AVR
41
3. Каковы функции процессорного ядра?
4. Какие виды памяти бывают?
5. Что представляют собой функциональные блоки?
6. Опишите архитектурные принципы, реализуемые в процессорном
ядре.
7. Каковы функции АЛУ?
8. Охарактеризуйте архитектуру современного микроконтроллера на
примере микроконтроллера AVR.
9. Опишите внутреннее устройство микроконтроллеров семейства
ATmega.
10. Опишите порты ввода-вывода микроконтроллеров AVR.
Лекция 7. Аналого-цифровой преобразователь
микроконтроллера AVR
Аналого-цифровые преобразователи (АЦП) являются устройствами, которые преобразуют входные аналоговые сигналы в цифровую форму.
Процедура преобразования представляет собой преобразование непре­рывной функции U(t), в последовательность чисел конечной разрядности {U(tn)}, n = 0, 1, 2,…, отнесенных к некоторым фиксированным моментам времени. При этом осуществляется дискретизация по времени и дискрети­зация по уровню (квантование).
В основе равномерной дискретизации лежит теорема отсчетов, соглас­но которой в качестве коэффициентов аn необходимо использовать значе­ние сигнала U(tn) в дискретные моменты времени tn = nΔt, а период дис- кретности выбирается из условия Δt = 1/2Fm, где Fm – максимальная часто­та спектра переходного сигнала.
Тогда
.
)(2
)](2sin[
)()(

n
m
m
tntF
tntF
tnUtU
(1)
Статические параметры АЦП:
- погрешность квантования – погрешность, вызванная конечным зна-
чением шага квантования ( 1/2 единицы младшего разряда (ЕМР));
- погрешность коэффициента передачи (изменение крутизны преобра-
зовательной);
1. Основы проектирования киберфизических систем
42
- нелинейность – отклонение графика характеристики преобразования
от идеальной прямой;
- разрешающая способность АЦП – минимальный уровень, на который
должны отличаться значения сигнала, чтобы АЦП присвоил им различные коды;
- напряжение смещения нуля;
- интегральная и дифференциальная нелинейность. Динамические параметры АЦП:
- частота дискретизации (преобразования) – это частота, с которой
происходит формирование выходных значений сигнала;
- время преобразования – время от начала дискретизации до появления
на выходе кода результата преобразования [7].
АЦП последовательных приближений (SAR ADC). Наиболее часто
встречающимся типом АЦП являются АЦП последовательного приближе­ния (SAR ADC), которые позволяют в течение одного периода тактового сигнала получить один двоичный разряд.
Например, при измерении сначала сравниваем входное напряжение
с половиной опорного напряжения, если входное больше половины опор­ного – то устанавливаем единицу в старший разряд кода АЦП и оставляем напряжение сравнения 0, если меньше – то старший разряд кода АЦП сбрасываем в 0 и сбрасываем напряжение сравнения. В каждом n-м цикле измерения к сравниваемому напряжению прибавляем Uоп/2n, т. е. в одном цикле точность увеличивается на один двоичный разряд. Подобный про­цесс измерения напряжения иллюстрируется рис. 12.
Эталонные напряжения формирует цифроаналоговый преобразова-
тель. Цифровые коды формируются специальной схемой, называемой реги­стром последовательных приближений.
Для сравнения измеряемого напряжения с эталонным напряжением, поступающим с выхода цифроаналогового преобразователя, используется аналоговый компаратор. Структурная схема АЦП последовательного при­ближения приведена на рис. 13.
В первый момент времени после поступления первого тактового им­пульса на выходе регистра последовательного приближения формируется код половины полной шкалы преобразователя. Этот код соответствует дво­ичному числу 01111111. При подаче этого кода на входы цифро­аналогового преобразователя на его выходе появится напряжение, соответ-
Лекция 7. Аналого-цифровой преобразователь микроконтроллера AVR
43
ствующее половине полной шкалы входных напряжений (или, что то же самое, половине опорного напряжения Uоп, подаваемого на соответствую­щий вход цифроаналогового преобразователя).
Рис. 12. Временные диаграммы напряжений на входе компаратора SAR ADC
Рис. 13. Структурная схема SAR ADC
При поступлении следующих тактовых импульсов этот код будет сдвигаться вправо, обеспечивая тем самым уменьшение веса разрядов ров­но вдвое. Таким образом, если после первого тактового импульса на выхо­де цифроаналогового преобразователя присутствует половина полной шка­лы, то после второго тактового импульса там будет присутствовать чет­верть, затем одна восьмая часть полной шкалы и так далее.
1. Основы проектирования киберфизических систем
44
В примере, приведенном на рис. 12, измеряемое напряжение превыша-
ет значение половины полной шкалы АЦП, а значит, на выходе аналогово­го компаратора появится уровень логической единицы. При поступлении второго тактового импульса этот сигнал запишется в старший разряд реги­стра последовательного приближения. В результате на выходе этого реги­стра появится код 10111111, а значит, напряжение на выходе ЦАП станет равным 3/4 от напряжения полной шкалы. Если бы напряжение на выходе УВХ оказалось меньше напряжения, поступающего с выхода ЦАП, то на выходе компаратора появился бы нулевой потенциал, и в регистр последо­вательного приближения был бы записан код 00111111, а значит, на выходе ЦАП сформировалось бы напряжение 1/2 от напряжения полной шкалы.
В примере, приведенном на рис. 12, напряжение на выходе ЦАП при
втором измерении превысит напряжение с выхода УВХ, поэтому на выходе компаратора появится нулевой уровень. При поступлении третьего такто­вого импульса этот сигнал запишется во второй разряд регистра последова­тельного приближения, поэтому код на его выходе станет равным
10011111. На этот раз напряжение на выходе ЦАП уменьшится на 1/8 Uоп от предыдущего значения.
Итак, на вход регистра последовательного приближения поступило три тактовых импульса, и мы получили два разряда цифрового кода. После поступления на вход регистра последовательного приближения девяти так­товых импульсов получится полный 8-разрядный двоичный код, соответ­ствующий входному напряжению. В примере, приведенном на рис. 12, этот код равен 10101000.
После завершения преобразования, на управляющем выходе регистра последовательного приближения появляется нулевой потенциал, показы­вающий, что преобразование закончено.
Итак, для полного преобразования аналогового сигнала в цифровую форму АЦП последовательного приближения требуется, как минимум, N + 1 тактовых импульсов (один такт на выдачу половинного напряжения и N).
АЦП последовательного приближения используются на частотах пре­образования от единиц килогерц до десятков мегагерц. При этом удается достигнуть точности преобразования до 18 двоичных разрядов.
Как и следует из названия аналого-цифровой преобразователь служит для преобразования входных сигналов в цифровой код, для его использова-
Лекция 7. Аналого-цифровой преобразователь микроконтроллера AVR
45
ния в соответствии с назначением прикладной программы. АЦП включает­ся в состав большинства современных микроконтроллеров в качестве одно­го из периферийных модулей. Для повышения функциональности АЦП его вход, как правило, подключается к нескольким выводам микроконтроллера через аналоговый мультиплексор, что позволяет обрабатывать аналоговые сигналы из разных источников с разделением по времени. В микро­контроллерах AVR число каналов мультиплексора обычно равно восьми, но в некоторых моделях с малым числом выводов число каналов уменьше­но до 4. Существуют также модели с повышенным числом каналов АЦП. В микроконтроллере ATmega2560 реализован 16-канальный мультиплексор аналоговых сигналов. Некоторые модели микроконтроллеров позволяют объединять каналы АЦП в дифференциальные пары. Иногда АЦП допол­нительно снабжается усилителем напряжения с фиксированными значени­ями коэффициента усиления 10 и 200.
АЦП микроконтроллеров AVR представляет собой преобразователь последовательного приближения, оснащённый устройствами выборки и хранения. Длительность цикла преобразования АЦП равно 13 тактам си­стемного генератора. Разрешающая способность – 10 двоичных разрядов, чего вполне достаточно для большинства типовых применений. Абсолют­ная погрешность преобразования зависит от ряда факторов и в идеальном случае не превышает ± 2 младших двоичных разрядов, что соответствует общей точности измерения примерно в 8-ми двоичных разрядах.
Конфигурирование АЦП позволяет выбрать один из двух режимов преобразования – одиночный цикл и непрерывное преобразование. Непре­рывное преобразование целесообразно использовать лишь при максималь­ной частоте выборок. В остальных случаях следует избегать использования этого режима, так как возникает необходимость в параллельной обработке цифровых сигналов, что практически означает снижение точности преобра­зования [8].
Регистры управления АЦП. Для управления работой АЦП использу- ется регистр ADCSR.
Для разрешения работы АЦП необходимо записать лог.1 в разряд ADEN (бит 7) регистра ADCSR, а для отключения – лог. 0.
Перед использованием АЦП микроконтроллера AVR необходимо вы­брать тактовую частоту преобразования при помощи младших трёх битов регистра ADCSR/ADCSRA. Двоичное число, содержащееся в этих разрядах
1. Основы проектирования киберфизических систем
46
регистра ADCSR/ADCSRA, определяет коэффициент предделителя АЦП, от основной тактовой частоты микроконтроллера. Увеличение этого числа на единицу изменяет коэффициент предделителя в два раза. Сброс трёх младших битов ADCSR/ADCSRA устанавливает минимальный коэффици­ент предделителя, равный двум. Максимальный коэффициент 128 соответ­ствует установке всех трёх разрядов в единицу. Оптимальная частота пре­образования находится в диапазоне от 50 до 200 кГц, следовательно, при тактовой частоте 16 МГц коэффициент деления должен быть равен 128 (что соответствует состоянию битов 111), так как 16000 кГц / 128 = 125 кГц. При тактовой частоте 8 МГц коэффициент предделителя может быть равен 128 (состояние битов 111) или 64 (состояние битов 011), что соответствует 62,5 кГц и 125 кГц тактовой частоты АЦП [8].
Для запуска преобразования необходимо установить в единицу 6-й бит
регистра ADCSR (бит ADSC). В случае использования непрерывного ре­жима преобразования установка бита ADSC запустит первое преобразова­ние, дальнейшие циклы будут запускаться в автоматическом режиме. Для режима однократного преобразования, а также независимо от установлен­ного режима при запуске через прерывания (в моделях микроконтроллеров, имеющих такую возможность) запись единицы в ADSC просто запустит одно преобразование. В режиме, использующем запуск преобразования по прерыванию, предусмотрена аппаратная установка этого ADSC. После за­вершения цикла преобразования (независимо от режимов) устанавливается бит ADIF (ADCSR/ADCSRA). Прерывание от АЦП разрешается после установки бита ADIE, третьего бита регистра ADCSR/ADCSRA. Коэффи­циент деления указан в табл. 3.
Таблица 3
Коэффициент деления
ADPS2
ADPS1
ADPS0
Коэффициент деления
0 0 0 2 0 0 1 2 0 1 0 4 0 1 1 8 1 0 0
16
Лекция 7. Аналого-цифровой преобразователь микроконтроллера AVR
47
Окончание табл. 3
ADPS2
ADPS1
ADPS0
Коэффициент деления
1 0 1
32
1 1 0
64
1 1 1
128
Следующим регистром управления АЦП является ADMUX. С помо­щью старших битов этого регистра (бит 6 и 7) выбирается источник опор­ного напряжения (ИОН). После подачи напряжения питания на микро­контроллер, эти биты сбрасываются в 0, что соответствует внешнему ИОН. Диапазон напряжений этого источника должен лежать в пределах от 2 В до AVcc (AVcc ≈ Vcc ± 0,3 В). Если выбрать в качестве ИОН напряжение пи­тания аналоговой части, то достаточно соединить между собой выводы AREF и AVcc микроконтроллера. Можно воспользоваться возможностью внутреннего соединения путём установки битов REFS1 и REFS0 в состоя­ние 01, но в таком случае обязательным условием является отключение внешнего источника.
Состоянию битов REFS1 и REFS0 – 11 соответствует выбор в качестве ИОН встроенного источника напряжением 2,56 В ± 0,15 В.
В этом случае к выводу AREF микроконтроллера необходимо под­ключить фильтрующий конденсатор [8] (табл. 4).
Таблица 4
Выбор источника опорного напряжения
REFS1
REFS0
Источник опорного напряжения
0
0
Внешний ИОН, подключенный к выводу AREF, внутрен­ний ИОН отключен
0
1
Напряжение питания AVcc*
1
0
Зарезервировано
1
1
Внутренний ИОН напряжением 2,56V, подключенный к ввыводу AREF*
*Если к выводу AREF подключен источник напряжения, данные варианты исполь-
зоваться не могут
1. Основы проектирования киберфизических систем
48
Для размещения результата преобразования предусмотрены регистры
ADCH, ADCL. Старшие шесть битов регистра ADCH не учитываются. Так как АЦП десятиразрядный, эти биты всегда равны нулю. Считывание ре­зультата преобразования следует начинать с младшего регистра ADCL. Это приводит к защёлкиванию содержимого ADCH до тех пор, пока его содер­жимое не будет считано. Такой алгоритм работы предусмотрен для защиты от возможного считывания в тот момент, когда АЦП изменяет содержимое этих регистров. При чтении этих регистров в обратном порядке, результат может не соответствовать действительности. Биты MUX0...3 регистра ADMUX позволяют выбрать канал аналогового мультиплексора для под­ключения к входу АЦП в обычном (недифференциальном) режиме работы. В табл. 5 приведены возможные значения разрядов MUX0…3. Остальные комбинации разрядов MUX предназначены для установки различных диф­ференциальных режимов, для моделей микроконтроллеров, имеющих встроенный дифференциальный усилитель, в других случаях эти биты за­резервированы (например, в моделях Atmega8, ATmega163 и др.). При пе­реводе АЦП в дифференциальный режим, измеряется разность напряжения между двумя выводами, выбор которых определяется состоянием битов ADMUX4…ADMUX0. Кроме того, состояние этих битов также определяет один из трёх фиксированных коэффициентов усиления (1x, 10x, 200x) встроенного дифференциального усилителя (только для моделей микро­контроллеров, имеющих встроенный усилитель).
Таблица 5
Выбор канала входного мультиплексора АЦП в моделях Atmega16, ATmega32 [8]
MUX 4..0
Недифференци-
альный вход
Неинвертирующий
дифференциальный
вход
Инвертирую-
щий диффе-
ренциальный
вход
Коэффициент
усиления,
GAIN (Ку)
00000
ADC0
Дифференциальных входов и усиления нет
00001
ADC1
00010
ADC2
00011
ADC3
00100
ADC4
00101
ADC5
Лекция 7. Аналого-цифровой преобразователь микроконтроллера AVR
49
Окончание табл. 5
MUX 4..0
Недифференци-
альный вход
Неинвертирующий
дифференциальный
вход
Инвертирую-
щий диффе-
ренциальный
вход
Коэффициент
усиления,
GAIN (Ку)
00110
ADC6
Дифференциальных входов и усиления нет
00111
ADC7
01000
Недифферен-
циальных
входов нет
ADC0
ADC0
10x
01001
ADC1
ADC0
10x
01010
(1)
ADC0
ADC0
200x
01011
(1)
ADC1
ADC0
200x
01100
ADC2
ADC2
10x
01101
ADC3
ADC2
10x
01110
(1)
ADC2
ADC2
200x
01111
(1)
ADC3
ADC2
200x
10000
ADC0
ADC1
1x
10001
ADC1
ADC1
1x
10010
ADC2
ADC1
1x
10011
ADC3
ADC1
1x
10100
ADC4
ADC1
1x
10101
ADC5
ADC1
1x
10110
ADC6
ADC1
1x
10111
ADC7
ADC1
1x
11000
ADC0
ADC2
1x
11001
ADC1
ADC2
1x
11010
ADC2
ADC2
1x
11100
ADC4
ADC2
1x
11101
ADC5
ADC2
1x
11110
1.22 В (VBG)
Дифференциальных входов и усиления нет
11111
0 В (GND)
1. Основы проектирования киберфизических систем
50
Примечание 1: дифференциальные каналы не тестировались для мик-
роконтроллеров в корпусе PDIP40. Работа в таком режиме гарантируется только для микроконтроллеров в корпусах TQFP и QFN/MLF.
Как видно из табл. 5, дифференциальные входы можно также подклю-
чить к одному входному каналу. Такой режим позволяет произвести калиб­ровку дифференциального усилителя, а полученный результат, просто вы­читать из результатов последующих измерений для устранения системати­ческой погрешности.
Окончание цикла преобразования определяется по установлению ло-
гической единицы во флаге ADIF регистра ADCSR. Результат преобразо­вания помещается в регистровую пару ADCH: ADCL.
10-разрядный результат преобразования по умолчанию выравнивается
вправо (старшие 6 разрядов ADCH не учитываются). При необходимости установкой бита ADLAR регистра ADMUX в единицу, результат преобра­зования можно выравнивать влево (не учитываются младшие шесть разря­дов ADCL).
Для недифференциального режима АЦП, когда напряжение отсчиты-
вается от "земли", результат преобразования определяется формулой
Ка = 1024Uвх/Uref,
где Ка – значение выходного кода АЦП; Uвх и Uref – соответственно
входное и опорное напряжения.
Дифференциальному измерению соответствует такая формула
Ка = 512(Upos – Uneg)/Uref,
где Upos и Uneg – соответственно напряжения на положительном и
отрицательном входах. Если напряжение на отрицательном входе больше, чем на положительном, то результат в дифференциальном режиме стано­вится отрицательным и выражается в дополнительном коде от 200h (–512) до 3FFh (–1). Реальная точность преобразования в дифференциальном ре­жиме равна 8 разрядам [9].
Интерфейс USART микроконтроллеров AVR. Для организации по-
следовательного обмена данными с внешними устройствами, в микро­контроллерах AVR предусмотрен полнодуплексный универсальный асин­хронный приёмопередатчик UART (для семейства AVR Mega – универ­сальный синхронно-асинхронный приёмопередатчик USART), который ча-
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]