Реферат: Ответы к Экзамену по Микропроцессорным Системам (микроконтроллеры микрокопроцессоры)
ACSR (Analog Comparator Control and Status Register) – управления АК
SFIOR (Special Function Input Output Register) – специальных функций ввода/вывода
ADCSR (ADC Status Register) – состояния аналого-цифрового преобразователя
ADCMUX (ADC Multiplexer) – мультиплексора аналого-цифрового преобразователя
SREG (Status Register) – состояния микроконтролера
Регистр | Биты | |||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
ACSR | ADC | ACBG | ACO | ACI | ACIE | ACIC | ACIS1 | ACIS0 |
SFIOR | ACME | |||||||
ADCSR | ADEN | |||||||
ADCMUX | MUX2 | MUX1 | MUX0 | |||||
SREG | I |
Подключение отрицательного входа компаратора
ACME | ADEN | MUX2..0 | Отрицательный вход компаратора |
0 | x | xxx | AIN1 |
1 | 1 | xxx | AIN1 |
1 | 0 | 000 | PA0 |
1 | 0 | 001 | PA1 |
1 | 0 | 010 | PA2 |
1 | 0 | 011 | PA3 |
1 | 0 | 100 | PA4 |
1 | 0 | 101 | PA5 |
1 | 0 | 110 | PA6 |
1 | 0 | 111 | PA7 |
Значения битов:
ACD (Analog Comparator Disable) – если установлен в 1, АК отключен. При изменении бита прерывание от компаратора должно быть заблокировано очисткой бита ACIE.
ACBG (Analog Comparator Bandgap) – когда бит установлен и BOD позволяет (fuse‑бит BODEN запрограммирован), фиксированное напряжение 1,22 В поступает на вход АС+ , иначе к АС+ подключается контакт AIN0.
ACO (Analog Comparator Output) – выход аналогового компаратора
ACI (Analog Comparator Interrupt Flag) – устанавливается в 1 при формировании компаратором прерывания. Подпрограмма обработки прерывания будет выполняться при установленных битах ACIE и I(бит глобального прерывания в регистре SREG). Очищается аппаратно при выполнении подпрограммы обработки прерывания либо вручную. Очищается при модификации командами SBI, CBI других битов регистра ACSR.
ACIE (Analog Comparator Interrupt Enable) – установка в 1 разрешает прерывание по аналоговому компаратору (ANA_COM) при установленном бите I в SREG.
ACIC (Analog Comparator Input Capture Enable) – установка в 1 разрешает захват входа таймера/счетчика1 по переключению АК.
ACIS1,ACIS0 (Analog ComparatorInterrupt Mode Select) выбор режима прерывания.
ACME (Analog Comparator Multiplexer Enable) – 1 подключает мультиплексор к АК. При подключении должен быть сброшен бит ADEN (ADC Enable) в регистре ADCSR (аналогово-цифровой преобразователь выключен).
Битами MUX2..0 в регистре мультиплексора ADMUX выбирается контакт порта PORTA (PA7..PA0).
9. ПОРТЫ ВВОДА-ВЫВОДА
9.1. Организация ввода/вывода
Порты ввода-вывода обеспечивают ввод и вывод данных в параллельном формате. Обычно порты ввода-вывода выполняются 8-разрядными. В режиме ввода данные с внешних контактов порта пересылаются в регистры микроконтроллера. В режиме вывода данные из регистров перемещаются на контакты микроконтроллера. Вывод данных, как правило, производится в «защелку» порта. Данные при этом присутствуют на выходных контактах до новой операции вывода в этот порт. В системе команд микроконтроллера для ввода и вывода данных обычно предусматриваются специальные команды.
В зависимости от выполняемых функций порты могут быть:
0 однонаправленными, предназначенными только для выполнения одной из
операций (ввод или вывод) по всем линиям;
° двунаправленными, предназначенными для выполнения любой из операций
ввода-вывода по всем линиям одновременно; направление передачи может
быть изменено программно в процессе работы;
° с индивидуальной настройкой линий, направление передачи данных по
каждой линии программируется независимо от остальных. Последний вариант построения схемы порта в настоящее время наиболее распространен. Например, микроконтроллер АТтеда163 имеет 32 линии ввода-вывода с индивидуальной настройкой, сгруппированных в 4 параллельных порта: порт А порт В, порт С, порт О. Направление передачи данных любого вывода любого порта может быть изменено независимо от направлений других выводов Для работы с портами в микроконтроллере предусмотрено 12 регистров, по три на каждый из портов (рис. 58):
° регистры данных (Dafa Register): PORTA , POF< tb, PORTC и PORTD;
0 регистры направления (Data Direction Register): DDRA, DDRB, DDRC и
DDRD;
° регистры входных контактов (Port A Input Pins). PINA; PINB, PINC и FIND.
Все выводы портов имеют индивидуальные подтягивающие резисторы (pull-up resistors). Для подключения этих резисторов в регистре специальных функций ввода/вывода SFIOR (Special Function Input Output Register) предусмотрен бит PUD (Pull-up Disabled).
Любая линия порта выполняет функции выхода при записи логической единицы в соответствующий бит регистра направления DDRx (x e А, В, С, D).
Регистры PINx не хранят информацию и фактически не являются настоящими регистрами. Они разрешают доступ к физическим сигналам на линиях соответствующего порта. При чтении PORTx читается защелка данных выбранного порта, а при чтении PINx -значение на контактах порта. Регистры PINx доступны только для чтения, е то время как регистры PORTx и DDRx -для чтения и записи.
Внутренние подтягивающие резисторы подключаются только при PUD=0, если контакты портов сконфигурированы как входы
Выходы портов выдерживают втекающий ток до 20mA и могут быть непосредственно подключены к светодиодным индикаторам. Однако, вытекающий ток порта не должен быть более 4 мА, а суммарная загрузка порта - не более 80 мА.
9.2. Алгоритмы обмена данными
Порты ввода-вывода предназначены для связи микроконтроллера с различными объектами и могут реализовывать различные алгоритмы обмена данными:
0 асинхронный программный обмен,
0 синхронный обмен,
0 ввод-вывод с сигналами квитирования.
Обмен данными между портами и объектами обеспечивается специальными подпрограммами-драйверами, создаваемыми индивидуально для каждого объекта.
АСИНХРОННЫЙ ОБМЕН
В режиме асинхронного программного обмена ввод и вывод данных производится
По программе в моменты выполнения инструкций ввода и вывода данных. Предполагается,
Что объект всегда готов к обмену: при вводе - данные в момент выполнения инструкции in
присутствуют на линиях порта, при выводе -данные будут прочитаны с линий порта до следующего вывода.
Например, микроконтроллер ATmega163 осуществляет асинхронный вывод данных nпри выполнении фрагмента программы:
equporta = $1B ;
.equ ddra = $1А ;
cseg
ldir16,$FF ;запись$РРвг16
out ddra, r16 включение порта А на вывод
out porta, rO ;вывод данных из регистра гО в порт А.
Время выполнения команды вывода равно двум периодам тактового сигнала.
Тот же микроконтроллер в течении двух тактов введет данные с линий порта при имении фрагмента программы:
equpina = $19
cseg
in rO, pina ; ввод данных из порта pina в регистр гО.
По адресу $19 в пространстве ввода-вывода микроконтроллера размещен регистр pina, с входных линий которого и будут взяты данные во время выполнения инструкции.
симплексный обмен
Симплексным считается однонаправленный обмен данными. Такой обмен обычно является синхронным. В этом случае каждое изменение данных на линиях порта •провождается сигналом синхронизации (стробом). Строб генерируется источником данных и предназначается для задания момента записи данных в регистр приемника.
При выводе данных сигнал строба должен сформировать микроконтроллер, используя для этого специальные линии шины управления или отдельные биты портов ввода-вывода.
На рис. 9.2 показан вариант соединения микроконтроллера ATmega163 с посимвольным принтером, имеющим 8-битный вход для приема данных DATA, выход сигнала готовности READY и вход стробирования #STB. Активным на входе стробирования является сигнал низкого уровня.
Порт PORTA микроконтроллера и бит РВ6 порта PORTB программируются на вывод данных, бит РВ2 порта PORTB на ввод. Подпрограмма вывода должна:
0 осуществить проверку готовности принтера (чтение сигнала готовности
принтера READY и его анализ),
° при обнаружении сигнала READY=1 вывести данные в порт PORTA,
° подтвердить вывод данных выводом сигнала стробирования #STB=0 для
записи данных в принтер.
Рис. 9.2. Подключение принтера к микроконтроллеру
Режим синхронного ввода позволяет точно задать момент считывания данных с объекта. В этом режиме сигнал стробирования, подтверждающий готовность данных, поступает с объекта на микроконтроллер. При появлении строба микроконтроллер должен осуществить ввод данных с порта.
полудуплексный обмен
Полудуплексным считается двунаправленный синхронный обмен, при котором в любой момент времени передача данных может производиться только в одном направлении. Направление передачи данных порта меняется в процессе работы в зависимости от решаемой в текущий момент задачи. На рис. 9.3 изображен вариант соединения микроконтроллера ATmega163 с объектом для обмена данными в полудуплексном режиме.
В схеме на рис. 9.3 передача данных в параллельном формате осуществляется по линиям порта PORTA. Для выдачи и приема четырех сигналов управления обменом (сигналы квитирования): строб ввода #STB IN (Strobe Input), строб вывода #STB OUT (Strobe Out), подтверждение ввода SACK IN (Acknowledge Input) и подтверждение вывода #АСК OUT (Acknowledge Out), использованы две линии порта PORTB и входы запросов на прерывания INTO и INT1.
При поступлении сигнала #STB IN = 0 контроллер должен выставить сигнал подтверждения #АСК IN = 0 и осуществить запись во входной регистр порта PORTA.. При низком уровне сигнала ASK IN объекту запрещается формировать новый сигнал #STB !N. По окончании записи контроллер снимает сигнал #АСК IN, разрешая повторную передачу данных.
Работа микроконтроллера в режиме вывода аналогична. Микроконтроллер выводит данные в порт PORTA, подтверждая вывод сигналом #STB OUT = 0. Объект формирует сигнал подтверждения #АСК OUT = 0, сообщая контроллеру о готовности к приему данных. При снятии сигнала #АСК OUT контроллер должен снять сигнал #STB OUT и может вновь перейти к выводу данных.
Одновременная передача данных в двух направлениях при полудуплексном обмене невозможна
дуплексный обмен
Дуплексным считается двунаправленный синхронный обмен, при котором в любой момент времени возможна передача данных в двух направлениях. В этом случае для передачи данных в каждом направлении выделяется свой однонаправленный порт. На рис. И 4 изображен вариант соединения микроконтроллера ATmega 163 с объектом для обмена айнными в дуплексном режиме.
11 схеме на рис. 9.4 порт PORTA работает на ввод данных, порт PORTB - на вывод, | пинии I 'СО и РС1 порта PORTC использованы для вывода сигналов квитирования #АСК И #ЛСК OUT. Для ввода сигналов квитирования от объекта #STB IN и #АСК OUT использованы входы запросов на прерывания INTO и INT1. При таком подключении задача ввода данных в микроконтроллер получает больший приоритет, чем задача вывода.
32. Аналого-цифровые преобразователи. Работа с АЦП микроконтроллера ATmega 163
Аналого-цифровой преобразователь ADC (Analog Digital Converter) осуществляет преобразование напряжения в цифровой код. Он предназначен для оцифровки и ввода в микроконтроллер аналоговых сигналов с различных датчиков физических величин. Схемы преобразователей различны. В зависимости от типа построения меняются и свойства преобразователя.
Параллельный преобразователь
В параллельном преобразователе (рис. 1) входной сигнал подается сразу на множество компараторов, осуществляющих сравнение сигнала с опорным напряжением. Опорные напряжения формируются цепочкой резисторов, делящих эталонное напряжение U0 на равные части.
Рис. 1. Параллельный аналого-цифровой преобразователь
Такие схемы ADC работают очень быстро, но сложны и используются редко.
Преобразователь последовательного приближения
Основными элементами преобразователя (рис. 2) является регистр последовательных приближений, код из которого с помощью цифроаналогового преобразователя преобразуется в напряжение. Компаратор СМР сравнивает входное напряжение с выходным напряжением преобразователя и через устройство управления воздействует на регистр.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8