![]() |
|
|
Реферат: Ответы к Экзамену по Микропроцессорным Системам (микроконтроллеры микрокопроцессоры)Индикация может осуществляться с использованием: светодиодов сегментных индикаторов Индикаторы могут быть как светодиодные, так и жидкокристаллические, и иметь различное число сегметов. Как светодиоды, так и сегментные индикаторы могут подключаться к портам микроконтроллера напрямую, либо через дешифратор/демультиплексор. Набор символов отображаемых сегментными индикаторами может определяться программно через таблицу декодирования, либо аппаратно логикой внешней микросхемы дешифратора. Схемы подключения индикаторов к системе могут быть разными: Простая: один порт – один индикатор Различные варианты распараллеливания канала данных либо канала выбора индикатора Динамическая индикация (число знаков ограничивается скважностью) Рис. 1 Динамическая индикация методом досчета (скважность постоянная) Рис. 2
Аналоговые компараторы (АК) осуществляют сравнение двух напряжений. Результатом сравнения является логический сигнал, фиксирующий момент равенства входных сигналов. Выход компаратора может быть использован в качестве запроса на прерывание. При этом пользователь может программировать формирование запроса по переднему или заднему фронту сигнала, либо по любому его изменению. Схема компаратора микроконтроллера ATmega163. Аналоговый компаратор сравнивает уровни на положительном (АС+) и отрицательном (АС-) входах. При напряжениии на входе АС+ большем, чем напряжение на входе АС- , выход аналогового компаратора АСО устанавливается в состояние 1. В микроконтроллере ATmega163 качестве входа АС+ может быть использован внутренний источник напряжения 1,22 В либо вход AIN0(PB2). К АС- подключается AIN1(PB3), либо один из входов PA0..PA7 через мультиплексор. Компаратор формирует запрос на прерывание если бит ACIE регистра ACSR установлен в 1. Формирование запроса возможно по переднему или заднему фронту сигнала, либо по любому его изменению. Установка прерывания битами ACIS0/ACIS1.
При изменении состояния битов ACIS0/ACIS1 прерывание по аналоговому компаратору должно быть запрещено очисткой бита разрешения прерывания (ACIE) в регистре ACSR, иначе при изменении состояния битов может произойти прерывание. В работе компаратора используются регистры: ACSR (Analog Comparator Control and Status Register) – управления АК SFIOR (Special Function Input Output Register) – специальных функций ввода/вывода ADCSR (ADC Status Register) – состояния аналого-цифрового преобразователя ADCMUX (ADC Multiplexer) – мультиплексора аналого-цифрового преобразователя SREG (Status Register) – состояния микроконтролера
Подключение отрицательного входа компаратора
Значения битов: 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. Преобразователь последовательного приближения Преобразование выполняется за несколько тактов. В первом такте в старший разряд регистра последовательных приближений записывается единица. Если в результате сравнения на выходе компаратора устанавливается единичный сигнал, единица в старшем разряде регистра сохраняется. В противном случае - сбрасывается. Далее, в том же порядке, формируется второй по старшинству разряд результата, потом - третий и т.д. Для получения результата необходимо n тактов, где число n равно разрядности преобразователя. Интегрирующий преобразовательИнтегрирующий
ADC для сравнения входного сигнала с эталонным использует заряд конденсатора.
Сначала (рис. 3) конденсатор в течении фиксированного промежутка времени Т1
заряжается током, пропорциональным входному сигналу. После это он разряжается
постоянным током с определенным значением. Время разряда конденсатора Т2
пропорционально значению входного напряжения. Оно фиксируется с помощью
счетчика и поступает на выход схемы (рис. 4). Рис. 3. Интегрирование сигнала в преобразователе
Рис. 10.4. Интегрирующий ADC
Сигма-дельта преобразователь Сигма-дельта преобразователи являются разновидностью интегрирующих ADC, в которых входной ток компенсируется коммутируемым зарядом от встроенного источника (рис. 5). Импульсы тока фиксированной длительности на каждом такте могут быть подключены к входу интегратора. В суммирующей точке интегратора поддерживается нулевой средний ток. Счетчик подсчитывает количество импульсов, поступающих в суммирующую точку за фиксированный период времени. Результат счета пропорционален входному напряжению. Рис. 5. Сигма-дельта преобразователь Управление АЦП микроконтроллера В состав микроконтроллеров обычно включают 8 - 16-битные многоканальные преобразователи с большим набором встроенных функций. При этом все функции преобразователя программируются и могут быть изменены в процессе работы.
Рис. 6. Структура аналого-цифрового преобразователя Аналого-цифровой преобразователь преобразует напряжение аналогового входного сигнала в 10-разрядное цифровое значение методом последовательных приближений. Минимальное значение входного напряжения равно напряжению на контакте AGND. максимальное значение не должно превышать напряжение на контакте AREF. Результат в виде 10-битного двоичного числа D равен: |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
|
Рефераты бесплатно, реферат бесплатно, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, сочинения, курсовые, дипломы, научные работы и многое другое. |
||
При использовании материалов - ссылка на сайт обязательна. |